Address | Name | Bit 7 | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 | Description |
---|---|---|---|---|---|---|---|---|---|---|
DD00 | CIA2PRA | SBDI | SBCI | SBDO | SBCO | SBAO | TXD/PA2 | VICMEM[] | Data Port A[1,2,3] | |
DD01 | CIA2PRB | PB7 DSR | PB6 CTS | PB5 UPJ | PB4 DCD | PB3 RI | PB2 DTR | PB1 RTS | PB0 RXD | User Port PB0-7[4] |
DD02 | CIA2DDRA | DDA7 | DDA6 | DDA5 | DDA4 | DDA3 | DDA2 | DDA1 | DDA0 | Data Direction Port A |
DD03 | CIA2DDRB | DDB7 | DDB6 | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 | Data Direction Port B |
DD04 | CIA2TIMAL | TIMAL | Timer A Low byte | |||||||
DD05 | CIA2TIMAH | TIMAH | Timer A High byte | |||||||
DD06 | CIA2TIMBL | TIMBL | Timer B Low byte | |||||||
DD07 | CIA2TIMBH | TIMBH | Timer B High byte | |||||||
DD08 | CIA2RTCT | RTCT | Real time clock 1/10s | |||||||
DD09 | CIA2RTCS | RTCS | Real time clock seconds | |||||||
DD0A | CIA2RTCM | RTCM | Real time clock minutes | |||||||
DD0B | CIA2RTCH | RTCH | Real time clock hours | |||||||
DD0C | CIA2SR | SR | Shift register | |||||||
DD0D | CIA2ICS | NMI[14] Source | Always 0 Unused | NMI Flag[15] IntRel | SDR IntRel | Alarm IntRel | UTB IntRel | UTA IntRel | Interrupt Control & Status Read top, Write bottom | |
DD0E | CIA2CTA | RTC[5] | SRC[6] | TSRC[7] | Load[8] | RES[9] | OVFL[10] | UNFL1[11] | START | Control Timer A |
DD0F | CIA2CTB | TCOUNT[13] | Load[8] | RES[9] | OVFL[10] | UNFL2[12] | START | Control Timer B |
Multiple address ranges
CIA2 is mapped to addresses 0xDDxx but only occupies 16 bytes. Referencing any address from 0xDD1x…0xDDFx will mirror those at 0xDD0x.
Notes:
- SBxx Serial Bus, D=Data, C=Clock, A=Attention, I=In, O=Out
- Bit 2 is RS232 TXD output or the userport PA2 (Pin M)
- Bits 0 & 1 VIC-II memory base, %00 = Bank 3 0xC000-0xFFFF, %01 = Bank 2 0x8000-0xBFFF, %10 = Bank 1 0x4000-0x7FFF, %11 = Bank 0 0x0000-0x3FFF
- Port B is the user port data, either 8 I/O pins or RS232
- RTC 0=60Hz 1=50Hz
- Shift register direction SP pin 0=read, 1=write
- TSRC 0=count system cycles, 1=positive slope at CNT pin
- 1 = Load latic into the timer once
- 0 = Timer restart after underflow (latch reloaded), 1 = timer stops after underflow
- 0 = Timer overflow, port B bit 6 high 1 cycle, 1 = underflow, port B bit 6 inverted
- 1 = Indicates timer underflow at port B bit 6
- 1 = Indicates timer underflow at port B bit 7
- Timer counts: %00 System cycle, %01 +ve slope CNT-pin, %10 Timer A underflow, %11 Timer A underflow if CNT-pin high
- CIA-2 is connected to the NMI line
- NMI Signal occured at FLAG-pin RS232 data received