szívok a megszakításrutinnal...
Az eredeti játék im2-es megszakítást használ. Na, nem is ez a baj, de megszakításból szól a zene (amit most egyelőre nem hívok meg, és egy villogás is, de ez viszont fontos).
Szóval fogtam a játék eredeti megszakítás-rutin beállító rutinját, és átírtam úgy, hogy a 0x38 címről ugorjon az int rutinra (ne az 256 byte-os táblázatról)
ehelyett:
l8c47: di
ld hl,0d900h
ld de,0d901h
ld bc,0100h
ld (hl),0dah
ldir
ld a,0c3h
ld hl, l8c89
ld (0dadah),a
ld (0dadbh),hl
ld a,0d9h
ld i,a
im 2
call l9590 ; init music
ei
halt
ez:
SetInterrupt:
; nincs zene a megszakitasi rutinban
xor a ; NOP opcode
ld (0x8cc4), a
ld (0x8cc5), a
ld (0x8cc6), a
; interrupt rutin beallitasa
di
ld a, 0xc3 ; JP opcode
ld hl, 0x8c89
ld (0x0038), a
ld (0x0039), hl
;call 0x9590 ; init music
ei
halt
Nade.
A megszakítási rutin beállítódik, és innét kezdve (a SetInterrupt hívása után) gyakorlatilag állandóan a megszakítási rutinra ugrik, nem akar továbblépni a program...