+ unsigned char chactl; /* (W) character mode control */
+ unsigned char dlistl; /* display list pointer low-byte */
+ unsigned char dlisth; /* display list pointer high-byte */
+ unsigned char hscrol; /* (W) horizontal scroll enable */
+ unsigned char vscrol; /* (W) vertical scroll enable */
+ unsigned char unuse0; /* unused */
+ unsigned char pmbase; /* (W) msb of p/m base address (for when DMACTL has player and/or missile DMA enabled) */
+ unsigned char unuse1; /* unused */
+ unsigned char chbase; /* (W) msb of character set base address */
+ unsigned char wsync; /* (W) wait for horizontal synchronization */
+ unsigned char vcount; /* (R) vertical line counter */
+ unsigned char penh; /* (R) light pen horizontal position */
+ unsigned char penv; /* (R) light pen vertical position */
+ unsigned char nmien; /* (W) non-maskable interrupt enable */
+ union {
+ /* (W) ("NMIRES") nmi reset -- clears the interrupt request register;
+ ** resets all of the NMI status together
+ */
+ unsigned char nmires;
+
+ /* (R) ("NMIST") nmi status -- holds cause for the NMI interrupt */
+ unsigned char nmist;
+ };
+};
+
+
+/*****************************************************************************/
+/* DMACTL register options */
+/*****************************************************************************/
+
+/* Initialized to 0x22: DMA fetch, normal playfield, no PMG DMA, double-line PMGs */