Display List Interrupts

Eric Ball Wrote

For those of you who haven't started attempting to program the 7800 a bit of background first.

If the high bit of a DLL entry is set, MARIA will generate an NMI (non-maskable interrupt, vector at $FFFA) when it completes processing the last line of the previous DLL.

What can this be used for? Lots of stuff; I've used it for:

It could also be used to change between 160 and 320 graphics modes.

Some important items to remember:

Can anyone else think of useful things to do with a 7800 DLI?

* as opposed to slow CPU cycles when accessing the TIA or RIOT registers

Dennis Debro Asked

I think I've finally got the display list concept. Of course I won't know for sure until I actually write something :-)

Now I have a question about the DLI. In the MARIA doc it states… "One of the bits of a DLL entry tells MARIA to generate a Display List Interrupt (DLI) for that zone. The interrupt will actually occur following DMA on the last line of the PREVIOUS zone."

Is it possible to have a DLI point to another DLL? From reading this it says it's limited to a scan line unless I'm reading it wrong. It would be nice to have a DLI spin off to another DLL so the screen could be split vertically with two "kernels" running.

Eric Ball Answered

Nope, to point to a different DLL you'd have to change the DPPL/H registers and those only get read at the start of every screen.