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


Previous 199869 Revisions Next


© 1997-2024 The MAME Team