Some disk drivers still had internal code for multi-sector I/O. With the read supervisors, this is no longer needed. Removed the extraneous code from these drivers.
The Microdrives behave slightly differently than either normal spinning drives or CF Cards. This update removes the "short" timeout that is used in the IDE/PPIDE drivers which caused timeout issues for the Microdrives.
The short timeout was originally used to workaround excessive wait/stall during boot of some media. I don't think it is necessary any more because of additional intelligence in the initialization routines.
- Rearranged HBIOS code to improve colocation of related code.
- Implemented macros to improve control over assembly diagnostic output.
- Improved handling of diagnostic LEDs.
- Improved application boot bank management.
- Implemented application boot for Z280 systems.
- Moved Z280_BNKSEL into proxy.
-
- The post-reset delay of both the IDE and PPIDE drivers has been extended. The SD-IDE adapters need more time to initialize before being ready to behave as proper IDE devices.
- Added support for the FDC section of the Duodyne Disk-IO board.
Added a new driver category for DSKY (Display/Keypad) devices. Existing DSKY devices were converted into drivers ICM and PKD. These devices were previously DSKY and DSKYNG.
This removes substantial code duplication and recovers significant space in romldr and dbgmon.
- Modified the Disk Device function call (DIODEVICE) to provide new attributes related to disk size and removability.
- Leveraged API change to allow handling drive assignment differently depending on ATAPI vs. ATA interface.
- Support is limited to 512 byte sectors. So, devices such as ATAPI Zip Drives will work. CD-ROM devices will not because they use a larger sector size.
- The use of hardware reset has been improved such that it is generally only used at initial boot up.
- Minor improvements to CF card detection and initialization.
- Implement a simple wait mechanism to accommodate the startup time of the RC2014 SD Pico module.
- Front panel I/O port for SC series of systems has been moved to 0x00 which is consistent with all other systems and avoids some I/O conflicts.
Prior improvement to IDE device detection broke detection of spinning hard disks. IDE registers cannot be used prior to device init completion (spin up). Not a problem for CF, but special steps required to ensure devices are fully initialized before register testing.
In the IDE and PPIDE drivers, a CF Card is differentiated from a Hard Disk using the first word of the result of the IDENTIFY DEVICE command. The value 0x045A was recently added because it was seen from a CF<->SD Card adapter. However, the value has now been seen from a spinning hard disk. Since the value is ambiguous and not defined in the CF Card specs, I am removing it from the list of CF Card signatures.
Credit to Mark Elkin for identifying this and helping me track it down.
As suggested by Laszlo Szolnoki, I have added an additional CF Card signature to the IDE and PPIDE drivers. He also pointed out a deficiency in the disk size printing which has been addressed.
- The DSKY(ng) can display disk I/O activity as the system runs. This capability was implemented very erratically. This update overhauls the mechanism, makes it consistent, and implements it across all disk drivers.
Supports double-buffered disk i/o to read/write to/from any memory bank specified.
NOTE: Disk I/O will be temporarily slower than normal because all I/O is being forced thru double-buffering for testing.