] You probably won't get problems.
] However, in Dos it is easiest to replace the bytes at adress #38, for
] example putting a JP Interrupt there. In Basic, it is -to my opinion- better
] if you swith away the ROM, however you could also set the other interrupt
] mode (mode 2?) in which the high byte of the adress of a jumptable is set in
] the I-register and the low byte of the adress is determined by the devie.
] For example, set I to #C0, and then fill adresses #C000-#C0FF with words of
] the adress the interrupt should jump to (yes, indeed, the device can only
] set odd adresses) (there are no devices delivering this lower byte of the
] adress on the MSX. So #C000 can be assumed as the set adress. However, it is
] still safe to fill the omplete 128 words with the right value, just in
] case...)
Hi people,
Thinking that you should set the interruptvector at #C000 when you set I to
#C0 is a commonly made mistake in the MSX world. You should set your
interruptpointer at address #C0FF instead. As some of you might know, the
databus in the MSX is connected to VCC with pull-up resistors. As a
consequence the Z80 will always fetch the value 0xFF when reading from the
databus at a moment that no device is writing to the databus. For example,
when the Z80 reads the databus in IM2 after having received an interrupt
request.
This is for example a codefragment, which I used in the 'No Waste' demo:
intvector: equ #88ff ; int. vector int mode 2
scroll: di
im 2
ld a,.high. intvector
ld i,a ; Startoffset for int table
ld hl,vertint
ld (intvector),hl ; Set interruptvector
ei
ret
vertint: in a,(#99)
; some code cut-out
ei
reti
Kind regards,
Alex Wulms
--
Alex Wulms/XelaSoft - MSX of anders NIX - Linux 4 ever
See my homepage for info on the *** XSA *** format
http://www.inter.nl.net/users/A.P.Wulms
****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****