- Formerly, the floppy controller buffered an entire diskette image
in memory using the unit buffer, and flushed it out on detach or
shutdown. This worked well enough, but it's better to have the
device use the SIMH disk sector read and write routines and
behave like a true disk.
- Read Only (Write Protect) logic has also been enabled in the
floppy controller, allowing users to mount images that do not
have write permissions.
- The IF (Integrated Floppy) and ID (Integrated Disk)
device names were poorly chosen. They conflict with built-in
scp commands and mess up the help system. This commit
changes them to IFLOPPY and IDISK, respectively.
NOTE!! THIS IS A BREAKING CONFIG CHANGE!!
This change cleans up warnings issued when compiled with
-Wall.
- Removed unused functions and variables.
- Moved static declarations out of headers and into source files
- Added braces around initialization where suggested.
Adds a skeleton framework for CIO ("Common I/O") feature cards. The
first feature card to be implemented will be the "PORTS" serial MUX.
Part of this support involved reworking IRQ handling in the CPU. It
now respects both IRQ Vector and IPL.
This change also removes all 'assert(0)' calls from the simulator and
replaces them with generic "Simulator Error" halts. These should only
happen if there's a genuine logic error lurking somewhere.
This change is a major refactor of how DMA and the DUART interact.
DMA implementation can now be overridden by individual devices that
require DMA. Disk and Floppy both continue to use a generic DMA
implementation, but the DUART code replaces the generic DMA with its
own implementation that correctly rate-limits TX. Among other things,
this allows the simulator to work correctly with real serial
terminals. This functionality has been tested on an AT&T 5620 "Blit"
terminal, which can run the 'layers' windowing software from the
simulator.