I didn't follow the whole discussion about the ROM format, but perhaps
it is a good idea to use 'masks' for emulating the 'sensitive' addresses
in ROM/RAM mappers. In most cases, the hardware only checks certain bits
of the address and not all of them. For example, when only the 3
uppermost bits of the address are checked, writing to #6000 has the same
effect as writing to #6001, #6002, ... #7fff.
You can model this by using ANDmasks (a bit like TCP/IP
subnetaddressing):
entry mask action
#6000 #e000 area from #6000..#7fff is addressed => update mapper
register
#8000 #e000 area from #8000..#9fff is addresses => do something...
...
The emulator should apply the mask to each address and see if the result
matches the entryvalue and perform the necessary actions...
I don't know if this detail of hardware emulation is really necessary,
it was just an idea :)
greetinx,
jon
--
For info, see http://www.stack.nl/~wynke/MSX/listinfo.html