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

Reply via email to