Login
Back to forumSee the full topicGo to last reply

Posted By

Mad
on 2017-01-14
07:50:51
 Re: VB interrupt. How do you get it to trigger?

Ok, I looked into the rom dissasembly and jmp ($0312) is only called once in the rom at $ce3f, at an address where the normal interrupt ($0314) normally finishes. If you do a $0314 rasterinterrupt and want everything including basic to behave normal afterwards, you should jmp to the rom address at $ce0e to finish your interrupt (instead of popping the registers and rti). So I suppose the "vertical blank interrupt" is just an extension of the normal $0314 interrupt. Perhaps it's used for the basic splitscreen (does anyone here know this?).

If you want to scroll the whole screen in an interrupt and have other interrupts enabled this could be a little tricky. Most of the times I do the hardscroll (e.g. the ramshift) in the mainloop (waiting for a specific rasterline before), because it doesn't really make a difference and you have a simple way to do other stuff in the rasterirq.

If you want to do it in the irq, than you need nested irqs (if the interrupts overleap), which is a bit tricky. You need to cli (i think. clear $ff09 also) at your interrupt call, set the interrupt vector to a new address and write a new rasterlineposition.

(btw. if you use yape you can do a rom listing in the monitor by "d 0000 ffff file.asm".



Back to top


Copyright © Plus/4 World Team, 2001-2024