Hi chains,
Nice to see you working the QL
. As far as my research goes, the vectors to deal with interrupts are pointing to addresses in ROM, which has a generic interrupt handler. This in turn also has hardcoded addresses, to for example the pointer location of the vblank interrupt handing. For JS this lies in the $28000 range, and for the Minerva ROM I believe it lies in the $38000 range. As such, since its hardcoded; you can either disable all interrupts and use the memory, and live without programmable interrupts (well, programmable vblank anyway); or isolate the memory needed for the interrupt (well vblank
), and work around the limitation.
In the case of Minerva the memory location does not collide with the 2nd screen buffer.
I chose to use the vblank interrupt as my demosystem handler, so I worked around the memory limitation thing.
Hope this helps. I'm cool to share the approach, similarly both Minerva and JsRom can this way be supported I believe by 'just' writing the interrupt handler vector to both jsrom and Minerva locations .
Long story summarized, you can trash the whole os and just use only the vblank vector pointer, and have your 2nd screen buffer (bar a few pixels
).
Kind regards
Wietze