According to the official documentation on the Z80 regarding
interrupt mode 2 says that bit 0 of the lower address byte is
always 0. To be short, only the 7 most significant bits are used.

I implemented it this way in NLMSX and UZIX works perfectly now.

> ] > So, it is sufficient to write your pointer to (I + 0xFF, 
> I + 0x100), as shown 
> ] > in Laurens code example.
> ] Thanks for explaining.
> ]  
> ] > Kind regards,
> ] > Alex Wulms

This should not work.

Greetings
Frits


> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of Alex
> Wulms
> Sent: Wednesday, March 01, 2000 11:55 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Interrupt modes?? (coding question) 
> 
> 
>  So to use IM2 the way it on MSX, should for some added 
> hardware gizmo, this 
> ] devices would have to put its dev-ID on the bus during 
> acknowledgment, AND
> ] that resistor must be removed. Just out of curiosity, is 
> this easily done?
> You don't need to remove the pull-up resisters. They have a 
> high resistance 
> so that a device that wants to put something on the bus can 
> do so. They are 
> only there to ensure a well-defined state when no device 
> writes something to 
> the bus while the Z80 reads from it. For example if you do 
> something like 
> inp(30), while there is no device at i/o port 30. The Z80 
> reads from the bus, 
> all data lines are up, so you will see 255.
> 
> For the rest, it is not so difficult to build such a device. 
> Just read a book 
> about the Z80 for the exact timing and behaviour of the 
> different signals on 
> the Z80 bus. Though, when you build such a device you should 
> make sure that 
> you only have one such device in your computer. If you put a 
> second one in 
> the second cartridge slot for example, you will get bus 
> conflicts if they 
> generate an interrupt at the same time... Or to be more 
> precise, if they both 
> generate an interrupt before the Z80 acknowledges it (the 
> interrupt does not 
> get acknowledged as long as the Z80 is in DI mode...)
> 
> 
> ] 
> ] > When you combine 2) and 3) you can safely conclude that 
> any MSX computer has 
> ] > 255 on the databus at the moment that the Z80 reads it 
> during IM 2.
> ] 
> ] > So, it is sufficient to write your pointer to (I + 0xFF, 
> I + 0x100), as shown 
> ] > in Laurens code example.
> ] Thanks for explaining.
> ]  
> ] > Kind regards,
> ] > Alex Wulms
> ] > 
> ] > Ps. I have used IM 2 as well on several occasions.
> ] What added use is it over using the regular 038h?
> To bypass the standard interrupt routine when the ROM-BIOS is 
> enabled. Can be 
> very usefull when playing with line interrupts and you want 
> to have a very 
> fast reaction to the IRQ without the delay of all registers 
> being pushed onto 
> the stack...
> 
> 
> Kind regards,
> Alex Wulms
> 
> -- 
> Alex Wulms - Visit http://www.inter.nl.net/users/A.P.Wulms for info
> on XelaSoft, Merlasoft, Quadrivium, the XSA Disk image distribution
> format, the MSX Hardware list, SD-Snatcher on fMSX and lot's more
> 
> 
> 
> ****
> 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
> ****
> 

****
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