CIA Memory Map

From Amiga Coding
Revision as of 15:52, 22 September 2016 by Daedalus (talk | contribs)
Jump to: navigation, search

All accesses must be in single bytes.

CIA Address Register Function
Odd CIA (CIA-A) BFE001 pra Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
_FIR1

(Joystick port 1)

Port 1 fire button

_FIR0

(Joystick port 0)

Port 0 fire button

_RDY

(Floppy drive)

Drive ready

_TK0

(Floppy drive)

Track 0 indicator

_WPRO

(Floppy drive)

Write protected

_CHNG

(Floppy drive)

Disk change signal

_LED

(Audio filter)

Audio filter enabled/disabled

OVL

(Address decoding)

Sets ROM overlay on boot to map Kickstart to address 0

BFE101 prb Parallel port data
BFE201 ddra Direction for Port A (BFD000), bit set = output
BFE301 ddrb Direction for Port B (BFD100), bit set = output
BFE401 talo Timer A low byte (.715909 Mhz NTSC; .709379 Mhz PAL)
BFE501 tahi Timer A high byte
BFE601 tblo Timer B low byte (.715909 Mhz NTSC; .709379 Mhz PAL)
BFE701 tbhi Timer B high byte
BFE801 todlo Vertical sync event counter bits 7-0 (50/60Hz)
BFE901 todmid Vertical sync event counter bits 15-8
BFEA01 todhi Vertical sync event counter bits 23-16
BFEB01 Not used
BFEC01 sdr Serial data register (used for keyboard)
BFED01 icr Interrupt control register
BFEE01 cra Control register A
BFEF01 crb Control register B
Even CIA (CIA-B) BFD000 pra Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
_DTR

(Serial port)

Data Terminal Ready

_RTS

(Serial port)

Request To Send

_CD

(Serial port)

Carrier Detect

_CTS

(Serial port)

Clear To Send

_DSR

(Serial port)

Data Set Ready

SEL

(Parallel port)

Select

POUT

(Parallel port)

Paper Out

BUSY

(Parallel port)

Busy

BFD100 prb Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
_MTR

(Floppy drive)

Motor on

_SEL3

(Floppy drive)

Select DF3:

_SEL2

(Floppy drive)

Select DF2:

_SEL1

(Floppy drive)

Select DF1:

_SEL0

(Floppy drive)

Select DF0:

_SIDE

(Floppy drive)

Side select

DIR

(Floppy drive)

Head direction

_STEP

(Floppy drive)

Step heads

BFD200 ddra Direction for Port A (BFD000), bit set = output
BFD300 ddrb Direction for Port B (BFD100), bit set = output
BFD400 talo Timer A low byte (.715909 Mhz NTSC; .709379 Mhz PAL)
BFD500 tahi Timer A high byte
BFD600 tblo Timer B low byte (.715909 Mhz NTSC; .709379 Mhz PAL)
BFD700 tbhi Timer B high byte
BFD800 todlo Horizontal sync event counter bits 7-0
BFD900 todmid Horizontal sync event counter bits 15-8
BFDA00 todhi Horizontal sync event counter bits 23-16
BFDB00 Not used
BFDC00 sdr Serial data register (not used)
BFDD00 icr Interrupt control register
BFDE00 cra Control register A
BFDF00 crb Control register B