Specifically:
1. Changed ram_device to expose specific options, removing the burden for clients to parse RAM strings
2. Moved validation of command line arguments out of device_validity_check(); that method is only intended for checking the device itself
3. Miscellaneous polishing
Various InterPro changes:
* fixed cpu/mmu ssw bug
* added preliminary nscsi support
* added preliminary mmu address translation
* expanded memory maps for several devices
* improved irq and dma handling (still not working properly)
* stubbed out more sga registers, added srarb
For the following, I don't really know what I'm doing, so please check carefully:
* WARNING: includes a naïve addition of ncr53c94 support to ncr5390.cpp
* WARNING: adds a start/stop unit command to t10spc.cpp
After these changes, ip2800 boots to FDM prompt with a ton of memdiag test failures, but not much else is visibly improved.
* move rarely-used output and pty interfaces out of emu.h
* consolidate and de-duplicate forward declarations, also remove some obsolete ones
* clean up more #include guard macros
* scope down a few more things
(nw) Everyone, please keep forward declarations for src/emu in src/emu/emufwd.h -
this will make it far easier to keep them in sync with declarations than having
them scattered through all the other files.
(nw) This is a pretty minimal change. The point where the root device is added has been moved
from the MACHINE_CONFIG_START macro to the constructor of the machine configuration class (made
possible by giving drivers their own device types). This isn't the final change in this area.
The root device is still being handled specially in that its configuration comes from the game
driver structure. This needs to be harmonised with regular devices. But that's a job for
another day.