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