* Add support for 8259 interrupt controller.
* Add support for Cromemco and Tarbell Monitor ROMs.
* To allow port 0xFE to be used by the simh_dev.
* Use the CPU's SR instead of a SCP300F-specific one.
* 9513 RTC support.
MASM generates REP CS:MOVSW as:
REP
CS:
MOVSW
The Seattle Computer Products 8086 assembler allows the segment override
as a discrete opcode. This means that:
CS:
REP
MOVSW
is also possible, and in fact used in the SCP Monitor v1.6.
The i86 emulator was clearing the override flags when REPE/REPNE,
is encountered, which causes the segment override to be lost.
Verifying the behavior of a real 80286 processor in an IBM PC/AT
(5170) using MS-DOS 6.22 DEBUG shows that both instruction sequences
yield the desired segment override.
* AltairZ80: SS1: Fix disable after reset.
The CompuPro System Support 1 could not be disabled after enabled and
used due to timers causing it to be busy. Reset properly so that "set
ss1 disabled" works after reset.
* AltairZ80: wd179x: Properly reset 179x state.
* AltairZ80: M68K: Fix compile with VS2008.
* Musashi: Fix compilation with Visual Studio 2008.
* AltairZ80: M68K: Resolve warnings in softfloat.
* AltairZ80: Add headers to .vcproj
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.
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
+
* 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.
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
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.
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.