Commit graph

157 commits

Author SHA1 Message Date
Peter Schorn
65542cd46d AltairZ80: Fix showdata in MDS-AD device 2021-02-28 08:20:45 +01:00
Howard M. Harte
6c72231177 AltairZ80: Add MDS-AD support for single-density
The North Star MDS-AD disk controller supports both single- and
double-density operation.  While mixed-density is supported by the
controller, it is not supported by AltairZ80 due to a limitation of the
.nsi image file format.  The .nsi image file format requires all sectors
to be of the same density.
2021-02-15 13:48:47 -08:00
Howard M. Harte
f0dd8184d8 AltairZ80: Fix North Star MDS-AD for NSDOS
The "Window" bit was getting cleared too late, causing the "next" sector
to be written under North Star DOS.  Due to differences between CP/M and
North Star disk access routines, this was not an issue under CP/M.

Test: Verify that North Star DOS and CP/M can format, copy and verify an
entire disk.

North Star Disk Operating System, Version 2.1.1, at  100
+GO DT 2
SINGLE(S) OR DOUBLE(D) DENSITY TEST? D
BOTH SIDES (Y OR N)? Y
LOAD DISKETTE THEN PRESS RETURN TO BEGIN TEST
PASS COMPLETE
PASS COMPLETE
PASS COMPLETE
PASS COMPLETE
PASS COMPLETE
CONTROL-C STOP
+GO CD 1 2
COPY BOTH SIDES (Y OR N)? Y
LOAD DISKETTES AND PRESS RETURN WHEN READY.
COPY COMPLETED.
+GO CK 1
DISKETTE CHECK, VERSION 1
CHECK CODE: 46513
+GO CK 2
DISKETTE CHECK, VERSION 1
CHECK CODE: 46513
+
2021-02-15 11:01:07 -08:00
Peter Schorn
ddea510008 AltairZ80: Updated ICOM device 2021-02-09 13:34:53 +01:00
Peter Schorn
9f064db561 AltairZ80: Updated Morrow Disk Jockey disk controller and minor code cleanup 2021-01-18 20:43:56 +01:00
Howard M. Harte
dc0236bc77 AltairZ80: vfdhd: Fix unit detach. 2021-01-17 12:20:33 -08:00
Howard M. Harte
cc464d4acb AltairZ80: mdfc: Fix unit detach. 2021-01-16 14:20:03 -08:00
Peter Schorn
2911b3a440 AltairZ80: Added Morrow Disk Jockey disk controller 2021-01-03 14:24:30 +01:00
Peter Schorn
5f2470904b AltairZ80: Updated M2SIO device 2020-12-17 09:31:53 +01:00
Howard M. Harte
c32b3ab054 AltairZ80: HDC-1001: Complete the implementation.
The ADC HDC-1001 in SIMH was incomplete and non-functional.

Finish the simulation to be functional under CP/M 2.2, CP/M 3.0,
and OASIS 5.6.
2020-12-13 16:18:50 -08:00
Howard M. Harte
0eb14db0a7 AltairZ80: wd179x: Improve accuracy of the simulation.
* Properly handle the case when a disk is not attached.
    * Add register access for debugging.
    * Assert DRQ as well as IRQ for software that checks DRQ.
    * Add API to get the number of heads for the currently-selected
      disk.
    * Follow SIMH conventions for debug logging.
    * Add ability to debug IMD from the wd179x debug settings.

Tests:
    * Format and disk access on Cromemco CP/M 2.2, CDOS, 86-DOS,
      MS-DOS 1.25, OASIS 5.6.
2020-12-13 15:41:08 -08:00
Howard M. Harte
898d7cbdbb AltairZ80: Add Z80 Interrupt Mode register (IM.) 2020-12-12 20:43:21 -08:00
Howard M. Harte
d0c009504b AltairZ80: Add support for the AB Digital B810.
The AB Digital Design B810 RAM card is a 256K Dynamic RAM card
with onboard refresh logic.  AltairZ80 support emulates four of
these cards for a total of 16 banks.

As used for the OASIS operating system, the B810 is configured
with common memory at the low addresses (0000h-3FFFh) with 16
banks of 48K from 4000h-FFFFh.

In order to have the common memory appear from 0000-3FFFh, set
the COMMONLOW register to 1:

D COMMONLOW 1
2020-12-12 20:43:07 -08:00
Peter Schorn
5211c1134a AltairZ80: New iCOM device, PTP port command, code cleanup 2020-11-28 14:02:01 +01:00
Peter Schorn
199adf7641 AltairZ80: Additional updates for SCP internal time base 2020-10-30 09:52:56 +01:00
Mark Pizzolato
263e0e7ed5 AltairZ80, BESM6, I7094: Adopt internal SCP internal time base 2020-10-29 13:28:41 -07:00
Peter Schorn
85858b1287 AltairZ80: Removal of unnecessary variable in s100_pmmi.c 2020-10-09 09:13:09 +02:00
Patrick Linstruth
91bce50a5f AltairZ80: Adds support for the Tarbell 2022 double density controller
The 'tarbell' device now supports Tarbell model 1011 single density
and model 2022 double density floppy disk controllers. The model is
selected using the "SET TARBELL MODEL={SD|DD}" command. Also removed
some unused local variables.
2020-10-07 09:15:35 -07:00
Peter Schorn
8aaf4598d0 AltairZ80: Minor code clean up to avoid compiler warning 2020-09-08 08:55:25 +02:00
Mark Pizzolato
ae825c9afb All: Declare sim_stop_messages as an array SCPE_BASE long
This avoids a potential invalid pointer dereference when formatting
the return value from sim_instr() if it is < SCPE_BASE but greater
than the previously defined static array size.sizeof

Update simh.doc to reflect this generic change.
2020-09-02 15:56:07 -07:00
Peter Schorn
f64a32d0e8 AltairZ80: Added Hayes modem and minor bug fix 2020-08-16 09:31:19 +02:00
Peter Schorn
c49f4c552b AltairZ80: SS1 bug fix and unused variable removal 2020-07-17 08:34:52 +02:00
Patrick Linstruth
2a18f0cfd9 AltairZ80: fixes incorrect types used for t_stat return values in 88-2SIO device 2020-06-22 15:09:43 -07:00
Patrick Linstruth
f0798ba014 AltairZ80: fixes incorrect types used for t_stat return values in PMMI device 2020-06-22 15:01:46 -07:00
Patrick Linstruth
54a102ca86 AltairZ80: adds "PMMI" MM-103 modem device
This commit adds a "PMMI" device to the AltairZ80 VM that emulates
the PMMI Communications MM-103 MODEM & Communications Adapter.

This device was added at the request of a Facebook user that is
attempting to preserve and document various relevant communications
programs for CP/M and allow users to experience communicating and
sharing information with other remote computers of the same time
period, all on modern hardware.

This device attempts to emulate the MC6860L digital modem chip in
such a way that communications software written for the PMMI MM-103 can
communicate over a serial port or socket without a phone line or
the ability to MOdulate/DEModulate data over a phone line.
2020-06-22 09:26:59 -07:00
Patrick Linstruth
482e6b2ff9 AltairZ80: adds MITS 88-2SIO "M2SIO0" and "M2SIO1" devices
This commit adds two new devices, "M2SIO0" and "M2SIO1", to the AltairZ80
VM. These two independent devices emulate "raw" 88-2SIO ports that can
be used instead of the "SIO" device for attaching socket and serial
ports using TMXR.
2020-06-22 09:08:34 -07:00
Peter Schorn
f91d56c60f AltairZ80: Fixed breakpoint detection after PC wrap around 2020-06-08 09:25:13 +02:00
Peter Schorn
d92805f258 AltairZ80: Removed tabs from sources 2020-06-07 13:37:45 +02:00
Peter Schorn
d3426c3d6d AltairZ80: Removed obsolete platform dependency 2020-06-07 11:49:18 +02:00
Peter Schorn
f8a1e56637 AltairZ80: Improved resource mapping diagnostics. 2020-05-27 10:30:47 +02:00
Peter Schorn
6a816001ef AltairZ80: Minor cleanup 2020-05-24 09:36:10 +02:00
Peter Schorn
cb23bca33a AltairZ80: Update m68kasm.y.txt 2020-05-23 19:06:21 +02:00
Peter Schorn
cf1e609275 AltairZ80: Using Bison 3.6.2 to generate m68kasm.c 2020-05-23 19:04:26 +02:00
Patrick Linstruth
5dc8898e0c ALTAIRZ80: Add JADEDD Jade Double D disk controller device 2020-05-23 07:30:43 -07:00
Peter Schorn
02fc4b0e3c AltairZ80: Added symbolic assembler for M68K CPU including bison/yacc source. 2020-05-15 09:45:58 +02:00
Peter Schorn
494e68fcbf AltairZ80: Documentation update and small formatting cleanup 2020-04-30 19:01:38 +02:00
Patrick Linstruth
807005553b ALTAIRZ80: Add "SET CPU HISTORY" and "SHOW CPU HISTORY" for 8080/Z80 2020-04-29 20:28:33 -07:00
Peter Schorn
9b71968ada AltairZ80: Use non blocking socket for net device 2020-04-14 19:14:12 +02:00
Peter Schorn
5a293ac4ff AltairZ80: Additional register updates 2020-03-06 15:34:03 -08:00
Mark Pizzolato
2e41007e0d AltairZ80: Adjust REG array descriptors (BRDATA) to provide array object addrs
No address value are changed, by a pointer the the array object is
explicitly provided which allows validation logic to determine the
size of the array object rather than merely it's first element.
2020-03-03 07:50:33 -08:00
Peter Schorn
504aad14cf AltairZ80: Update clock register definitions 2020-03-03 02:31:51 -08:00
Mark Pizzolato
e06a5d7821 AltairZ80: Fix spelling in register description 2020-02-26 22:03:01 -08:00
Peter Schorn
6c84387ec0 AltairZ80: Fix error handling of bad IMD disks and sector size computation 2020-02-18 11:55:29 +01:00
Peter Schorn
8198bac160 AltairZ80: Fix Coverity detected issues in s100_tarbell.c 2020-01-30 09:55:05 +01:00
Mark Pizzolato
8a858c181d SCP: Clean up WEAK definition and rework deprecated references to sim_vm_init
As discussed in #794
2020-01-29 12:30:25 -08:00
Patrick Linstruth
020bf31457 AltairZ80: Adjust head unload timer usec value for SIO sleep/no sleep setting.
AltairZ80: Properly use sim timer support routines.
2019-12-19 21:45:55 -08:00
Patrick Linstruth
e261a2fa28 AltairZ80: Properly set current Tarbell drive and drive not ready flag on reset 2019-12-10 21:21:30 -08:00
Peter Schorn
17356d9093 AltairZ80: Replace WIN32 dependencies with SIMH API calls and remove redundant includes 2019-12-10 08:42:22 +01:00
Patrick Linstruth
dde74c25b4 Fixed -Wall warnings
Corrected name in comment block
2019-12-08 22:08:13 -08:00
Patrick Linstruth
5a3a535437 Updated top comment block 2019-12-07 20:12:51 -08:00