Register |
Function |
0xFF00 |
timer 1 low byte |
0xFF01 |
timer 1 high byte |
0xFF02 |
timer 2 low byte |
0xFF03 |
timer 2 high byte |
0xFF04 |
timer 3 low byte |
0xFF05 |
timer 3 high byte |
0xFF06 |
bit 7 test bit
bit 6 ecm on
bit 5 hires on
bit 4 screen on
bit 3 25 rows (0 24 rows)
bit 2-0 vertical scroll position
|
0xFF07 |
bit 7 reverse off (0 on)
bit 6 read only NTSC (0 PAL)
bit 5 freeze horicontal position?
bit 4 multicolor on
bit 3 40 columns (0 38 columns)
bit 2-0 horizontal scroll position
|
0xFF08 |
input latch (0 input low), write reloads latch |
0xFF09 |
interrupt request
7: interrupt
6: timer 3
5: 1
4: timer 2
3: timer 1
2: lightpen
1: rasterline
0: 1 (asl quitting)
|
0xFF0A |
interrupt enable
7: 1
6: timer 3
5: 1
4: timer 2
3: timer 1
2: lightpen
1: rasterline
0: irq rasterline bit 8
|
0xFF0B |
7-0: irq rasterline 7-0 |
0xFF0C |
7-2: 1
1,0: cursorpos bit 9,8
|
0xFF0D |
cursorpos bit 7-0 |
0xFF0E |
tone channel 1: frequency 7-0 |
0xFF0F |
tone channel 2: frequency 7-0 |
0xFF10 |
7-2: 1
1,0: tone channel 2 bit 9,8
|
0xFF11 |
7: sound reload
6: tone 2 noise on (tone 2 must be off for noise)
5: tone 2 tone on
4: tone 1 on
3-0: volume 0-8 (above 8 are all 8)
|
0xFF12 |
7,6: 1
5-3: bitmap address bit 15-13
2: charactermemory in rom (0 ram)
1,0: tone 1 frequency bit 9,8
|
0xFF13 |
7-2: chargen address bit 15-11
2: chargen address bit 10 (only used when reverse is off)
1: single clock in overscan area (0 double clock)
0: ram (0)/rom status
|
0xFF14 |
7-2: video address bit 15-10
1,0: 1
|
0xFF15 |
7: 1
6-0: backgroundcolor
|
0xFF16 |
7: 1
6-0: color1
|
0xFF17 |
7: 1
6-0: color2
|
0xFF18 |
7: 1
6-0: color3
|
0xFF19 |
7: ?
6-0: framecolor
|
0xFF1A |
7-2: 1
1,0: bitmap reload(cursorpos2) bit 9-8
|
0xFF1B |
bitmap reload bit 7-0 |
0xFF1C |
7-1: 1
0: current rasterline bit 8
|
0xFF1D |
current rasterline bit 7-0 |
0xFF1E |
7-0: current rastercolumn /2 (0 begin visible window area) |
0xFF1F |
cursorblink?
7: ?
6-3: blink counter
2-0: vsub
|
0xFF3E |
write switches to rom |
0xFF3F |
write switches to dram |