   ifnd HARDWARE_CIA_I
HARDWARE_CIA_I set 1

; cia register offsets
ciapra    equ 0
ciaprb    equ $100
ciaddra   equ $200
ciaddrb   equ $300
ciatalo   equ $400
ciatahi   equ $500
ciatblo   equ $600
ciatbhi   equ $700
ciatodlow equ $800
ciatodmid equ $900
ciatodhi  equ $A00
ciasdr    equ $C00
ciaicr    equ $D00
ciacra    equ $E00
ciacrb    equ $F00

; interrupt control register bit numbers
CIAICRB_TA     equ 0
CIAICRB_TB     equ 1
CIAICRB_ALRM   equ 2
CIAICRB_SP     equ 3
CIAICRB_FLG    equ 4
CIAICRB_IR     equ 7
CIAICRB_SETCLR equ 7

; control register A bit numbers
CIACRAB_START   equ 0
CIACRAB_PBON    equ 1
CIACRAB_OUTMODE equ 2
CIACRAB_RUNMODE equ 3
CIACRAB_LOAD    equ 4
CIACRAB_INMODE  equ 5
CIACRAB_SPMODE  equ 6
CIACRAB_TODIN   equ 7

; control register B bit numbers
CIACRBB_START   equ 0
CIACRBB_PBON    equ 1
CIACRBB_OUTMODE equ 2
CIACRBB_RUNMODE equ 3
CIACRBB_LOAD    equ 4
CIACRBB_INMODE0 equ 5
CIACRBB_INMODE1 equ 6
CIACRBB_ALARM   equ 7

; interrupt control register bit masks
CIAICRF_TA     equ 1<<0
CIAICRF_TB     equ 1<<1
CIAICRF_ALRM   equ 1<<2
CIAICRF_SP     equ 1<<3
CIAICRF_FLG    equ 1<<4
CIAICRF_IR     equ 1<<7
CIAICRF_SETCLR equ 1<<7

; control register A bit masks
CIACRAF_START   equ 1<<0
CIACRAF_PBON    equ 1<<1
CIACRAF_OUTMODE equ 1<<2
CIACRAF_RUNMODE equ 1<<3
CIACRAF_LOAD    equ 1<<4
CIACRAF_INMODE  equ 1<<5
CIACRAF_SPMODE  equ 1<<6
CIACRAF_TODIN   equ 1<<7

; control register B bit masks
CIACRBF_START   equ 1<<0
CIACRBF_PBON    equ 1<<1
CIACRBF_OUTMODE equ 1<<2
CIACRBF_RUNMODE equ 1<<3
CIACRBF_LOAD    equ 1<<4
CIACRBF_INMODE0 equ 1<<5
CIACRBF_INMODE1 equ 1<<6
CIACRBF_ALARM   equ 1<<7

; control register B INMODE masks
CIACRBF_IN_PHI2   equ 0
CIACRBF_IN_CNT    equ CIACRBF_INMODE0
CIACRBF_IN_TA     equ CIACRBF_INMODE1
CIACRBF_IN_CNT_TA equ CIACRBF_INMODE0|CIACRBF_INMODE1

; ciaa port A
CIAB_GAMEPORT1 equ 7
CIAB_GAMEPORT0 equ 6
CIAB_DSKRDY    equ 5
CIAB_DSKTRACK0 equ 4
CIAB_DSKPROT   equ 3
CIAB_DSKCHANGE equ 2
CIAB_LED       equ 1
CIAB_OVERLAY   equ 0

; ciab port A - serial and printer control
CIAB_COMDTR   equ 7
CIAB_COMRTS   equ 6
CIAB_COMCD    equ 5
CIAB_COMCTS   equ 4
CIAB_COMDSR   equ 3
CIAB_PRTRSEL  equ 2
CIAB_PRTRPOUT equ 1
CIAB_PRTRBUSY equ 0

; ciab port B - disk control
CIAB_DSKMOTOR equ 7
CIAB_DSKSEL3  equ 6
CIAB_DSKSEL2  equ 5
CIAB_DSKSEL1  equ 4
CIAB_DSKSEL0  equ 3
CIAB_DSKSIDE  equ 2
CIAB_DSKDIREC equ 1
CIAB_DSKSTEP  equ 0

; ciaa port A
CIAF_GAMEPORT1 equ 1<<7
CIAF_GAMEPORT0 equ 1<<6
CIAF_DSKRDY    equ 1<<5
CIAF_DSKTRACK0 equ 1<<4
CIAF_DSKPROT   equ 1<<3
CIAF_DSKCHANGE equ 1<<2
CIAF_LED       equ 1<<1
CIAF_OVERLAY   equ 1<<0

; ciab port A - serial and printer control
CIAF_COMDTR   equ 1<<7
CIAF_COMRTS   equ 1<<6
CIAF_COMCD    equ 1<<5
CIAF_COMCTS   equ 1<<4
CIAF_COMDSR   equ 1<<3
CIAF_PRTRSEL  equ 1<<2
CIAF_PRTRPOUT equ 1<<1
CIAF_PRTRBUSY equ 1<<0

; ciab port B - disk control
CIAF_DSKMOTOR equ 1<<7
CIAF_DSKSEL3  equ 1<<6
CIAF_DSKSEL2  equ 1<<5
CIAF_DSKSEL1  equ 1<<4
CIAF_DSKSEL0  equ 1<<3
CIAF_DSKSIDE  equ 1<<2
CIAF_DSKDIREC equ 1<<1
CIAF_DSKSTEP  equ 1<<0

   endif


