POKEY Documentation

by Fox/Taquart


Registers

 Address  Read register  Write register 
^20POT0AUDF1
^21POT1AUDC1
^22POT2AUDF2
^23POT3AUDC2
^24unusedAUDF3
^25unusedAUDC3
^26unusedAUDF4
^27unusedAUDC4
^28POTSTAUDCTL
^29KBCODESTIMER
^2ARANDOMSKSTRES
^2BunusedPOTGO
^2Cunusedunused
^2DSERINSEROUT
^2EIRQSTIRQEN
^2FSKSTATSKCTL


Description

AUDC1 AUDC2 AUDC3 AUDC4 - Audio control
bits 3-0 - volume control
bit 4 - channel control
0 - synthetize sound
1 - constant level
bits 7-5 - sound distortion
000 - with 5-bit and 17-bit registers
001 - with 5-bit register
010 - with 5-bit and 4-bit registers
011 - with 5-bit register
100 - with 17-bit register
101 - clear sound
110 - with 4-bit register
111 - clear sound

AUDCTL - Audio control
bit 0 - base clock for all channels
0 - 64 kHz
1 - 15 kHz
bit 1 - channel 2 filter controlled by channel 4
bit 2 - channel 1 filter controlled by channel 3
bit 3 - join counters 3 and 4 into 16-bit channel
bit 4 - join counters 1 and 2 into 16-bit channel
bit 5 - base clock for channel 3
0 - according to bit 0
1 - 1.77 MHz (PAL), 1.79 MHz (NTSC)
bit 6 - base clock for channel 1
0 - according to bit 0
1 - 1.77 MHz (PAL), 1.79 MHz (NTSC)
bit 7 - distortion register
0 - 17-bit
1 - 9-bit

AUDF1 AUDF2 AUDF3 AUDF4 - Audio frequency

IRQEN - IRQ enable
1 - enable
bit 0 - timer 1
bit 1 - timer 2
bit 2 - timer 4
bit 3 - end of transmission
bit 4 - serial output
bit 5 - serial input
bit 6 - keyboard
bit 7 - BREAK key

IRQST - IRQ status
0 - requested
bit 0 - timer 1
bit 1 - timer 2
bit 2 - timer 4
bit 3 - end of transmission
bit 4 - serial output
bit 5 - serial input
bit 6 - keyboard
bit 7 - BREAK key

KBCODE - Keyboard code

POT0 POT1 POT2 POT3 - Potentiometrs
Position of potentiometr in range 0-224

POTGO - Potentiometr goes
Any value written to this registers starts measurement of potentiometrs

POTST - Potentiometrs status
0 means POTx contains proper value
1 means POTx is being measured
bit 0 - POT0
bit 1 - POT1
bit 2 - POT2
bit 3 - POT3
bits 7-4 - not used

RANDOM - Random

SERIN - Serial input
Received byte

SEROUT - Serial output
A byte to be send

SKCTL - Serial and keyboard control
bits 1,0 - POKEY control
00 - reset POKEY
11 - normal state
bit 2 - speed of A/D conversion
bit 3 - two-tone transmission
bits 6-4 - transmission speed control
bit 7 - force SPACE signal

SKSTAT - Serial and keyboard status
bit 0 - unused (=0)
bit 1 - transmission
0 - in progress
bit 2 - keyboard status
0 - a key pressed
bit 3 - SHIFT key status
0 - pressed
bit 4 - serial input line state
bit 5 - keyboard buffer overflow
bit 6 - serial input buffer overflow
bit 7 - Framing Error occured

SKSTRES - SKSTAT reset
Any value written to this register resets SKSTAT error flags

STIMER - Start timers
Any value written to this register resets all counters