Commit graph

167 commits

Author SHA1 Message Date
Howard M. Harte
86f65093bc AltairZ80: s100_hdc1001: Resolve CID 1515006. 2022-03-14 22:43:56 -07:00
Peter Schorn
8f3a2057e1 AltairZ80: Fix Coverity identified issues in s100_jd2d.c 2022-03-14 14:55:50 +01:00
Howard M. Harte
2cede2fb99 AltairZ80: HDC-1001: Resolve CID 1514860, 1514861. 2022-03-08 12:31:04 -08:00
Howard M. Harte
e293731e35 AltairZ80: Resolve CID 1514796. 2022-03-08 12:29:49 -08:00
Peter Schorn
ab6c2c043e AltairZ80: Improved vector interrupt implementation 2021-12-04 20:42:03 +01:00
Howard M. Harte
08a0ad2d88 2SIO: add support for interrupts.
Add vectored interrupt support for the Altair 2SIO card.
2021-10-11 08:50:29 -07:00
Howard M. Harte
81afea160c AltairZ80: Add support for Z80 Mode 2 interrupts.
Add support for Z80 Mode 2 interrupts to altairz80_cpu.c
Also implement interrupts for the WD179x floppd controller.
2021-10-11 08:50:20 -07:00
Peter Schorn
105975feb4 AltairZ80: Fix reset routine for DJ2D device 2021-08-31 08:48:35 +02:00
Howard M. Harte
9865180990 wd179x: Keep WD179X_INFO_PUB in sync. 2021-07-27 20:28:21 -07:00
Howard M. Harte
d743cf9f45 wd179x: Add support for wd1795/7 side select output. 2021-07-25 17:35:54 -07:00
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