- Much improved CS4031 emulation, added DMA, interrupt controller, timer, RTC directly to the device as sub devices and added the generic functions needed for AT compatibility
- Moved the ct486 driver to its own file, to avoid all the legacy stuff in at.c
- Added support for the IOCHCK signal to the ISA bus, this is used instead of directly issuing an NMI to the main CPU
- Moved ISA device slot definitions to its own file to avoid copy & pasting the same list to different drivers
- Updated MC146818 RTC for devcb2
(MESS) bw2: Fixed memory mapping. (nw)
(MESS) msm6255: Refactored to use device_memory_interface. (nw)
(MESS) floppy: Added macros for declaring modern floppy formats. The generic floppy formats (D88/DFI/IMD/IPF/MFI/MFM) are now automatically supported in each driver using the modern floppy code. [Curt Coder]
Remaining TODO list:
- take WP into account
- test the amstrad, implement its observational format (edsk) using
pasti as a start. Or find the legendary amstrad IPFs. Or both.
- correct read track, the implementation is completely wrong. See
previous for testing, it's only used in protections the check the
inter-sector gaps.
- shake and bake on the amstrad, protections are the best to find bugs
in a fdc
- add the scan id commands, but nothing seems to use them
- debug the 2.88M formatting which is unreliable. Fix its IDAM/DAM
gap size on formatting too (but that's not what's making it
unreliable)
- test all the systems that were hit, and fix what needs to be fixed.
Beware that multiple problems may happen:
- upd765 may be wrong
- the driver may not be working
- the hookup may be wrong/incomplete (bitrate selection and floppy
rpm in particular)
- the driver may be too limited for the new implementation (the x68k
dma device does not handle non-instant dma yet for instance)
- report invalid command when appropriate depending on the actual chip
emulated
- add the russian clones with their real names
device_memory_interface::space() assert against NULL and
return a reference, and pushed references throughout all
address space usage in the system. Added a has_space()
method to check for those rare case when it is ambiguous.
[Aaron Giles]
Also reinstated the generic space and added fatal error
handlers if anyone tries to actually read/write from it.
READ/WRITE_DEVICE*_HANDLERs are now passed an
address_space &, and the 8-bit variants get a mem_mask
as well. This means they are now directly compatible
with the member function delegates. Added a generic
address space to the driver_device that can be used
when no specific address space is available. Also
added DECLARE_READ/WRITE_DEVICE*_HANDLER macros to
declare device callbacks with default mem_mask
parameters. [Aaron Giles]
device_execute/memory_interfaces respectively in order
to catch unnecessary usage of the corresponding device_t
methods. Removed all existing redundant usage.
[Aaron Giles]