Previous | 199869 Revisions | Next |
r197659 Sunday 11th June, 2023 at 21:47:00 UTC by michael.r..furman |
---|
coco_fdc: Allow FLEX to work on CoCo machines (#11329) There are two parts to the change. First is a correction to the coco_fdc hardware emulation. Second is file format ordering adjustments wich make things easier for using FLEX on CoCos. For the hardware change: Before the change FLEX was unable to boot on CoCo machines. The behaviour and troubleshooting showed that while the FLEX kernel started up it was unable to read anything from Track 0. Standard FLEX disks have SD(FM) on Track 0, and the remainder of the disks (for CoCo FLEX) are normally DD(MFM) or could also be SD(FM). The bug was in the handling of the WDC FDC's INTRQ line. Reviewing the available documentation and schematics showed that when the FDC asserts INTRQ two things happen. NMI is asserted on the CoCo bus and the HALT signal is cleared. The MAME code added an incorrect condition on clearing HALT: It only happened when Double-Density operation was selected. This change fixes the logic to work the same way as is shown in the schematics, that HALT is cleared any time INTRQ is asserted. SD(FM) disk operations work properly and FLEX boots completely and runs correctly after making this change. File Format Ordering Adjustments: This part of the change makes it easiser to use FLEX in CoCo emulation with a wider variety of FLEX-formatted disk images. The issue here is that due to the way the JVC disk format works it winds up being a catch-all for disk images. Because FLEX has specific formatting requirements and code to handle this and JVC has no support for this special formatting, FLEX formats along with DMK and SDF are moved to come before JVC in the formats list. This allows a wider variery of FLEX-formatted disk images to be properly detected. The DMK disk image from the following recent restoration of FHL Color FLEX was used for testing: https://archive.org/details/color-flex-5.0.4-frank-hogg-laboratory |
[/branches/vga_modern-2/src/devices/bus/coco] | coco_fdc.cpp |
https://github.com/mamedev/mame/commit/cc4deb034f52cf9f16e52207e86f572ed4acdfe2 |
Previous | 199869 Revisions | Next |