For the people who haven't noticed: Yes, Z80 has 64kB I/O space (16 bit).

For "IN A,(n)" and "OUT (n),A" A is used as the upper 8 bit.
For "IN r,(C)", "OUT (C),r" and OTI/OTD/OTIR/OTDR, actually BC is used as 
the I/O address!

The reason it's not used much (although I think I remember something about 
Spectrum using it), is because of obvious reasons.
IN A,(n)/OUT (n),A are close to useless to access 16 bit I/O devices, but 
can ofcourse be used on 8 bit devices. The same counts for 
OTI/OTD/OTIR/OTDR, since is constantly being decremented, so is the upper 8 
bit of the I/O address!
IN r,(C)/OUT (C),r are the only I/O instructions to reliably work with 16 
bit I/O devices.

Z380 supports 32 bit I/O addresses in the same manner. For IN A,(n)/OUT 
(n),A the upper 16 bit are always zero (handy), and for all others the 
entire 32 bit BC is used.
To enable a sane use of the 'extra' I/O space, I/O devices should just 
ignore the the 2nd 8 bit (high byte of the low word) of the I/O address.

                Patriek


****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED]
and put "unsubscribe msx [EMAIL PROTECTED]" (without the quotes) in
the body (not the subject) of the message.
Problems? contact [EMAIL PROTECTED]
More information on MSX can be found in the following places:
 The MSX faq: http://www.faq.msxnet.org/
 The MSX newsgroup: comp.sys.msx
 The MSX IRC channel: #MSX on Undernet
****

Reply via email to