68k interrupts

There are 3 interrupt levels on the AES and MVS. Only 2 on the CD hardware.

Interrupts need to be acknowledged by writing to register $3C000C (REG_IRQACK).
 * bit2: Ack VBlank
 * bit1: Ack RLI
 * bit0: Ack level 3

move	#$0007,REG_IRQACK    ; Acknowledges all interrupts

Bits 8~10 of the SR register are used to mask them. $2000 enables them all, $2700 disables them.

Vertical Blank Interrupt
VBlank interrupt is almost always used. It occurs everytime a new frame is traced (~60Hz).

Raster Line Interrupt
The RLI interrupt's behavior can be programmed through memory mapped registers. It's made to occur at (the start/end ? of) specific horizontal lines of the video output. See the Sammy logo at the start of Viewpoint for an example of its use. Sengoku 3 and Neo Turf Masters are also known to rely on them to do scanline effects.

AES/MVS interrupts

 * VBlank: 0
 * RLI: 1
 * Pending at startup ?: 2

CD interrupts

 * VBlank: 1
 * RLI: 0