// Hardware addresses for C64 #if not(CBM_64) #warn c64_cia module should be only used on C64-compatible targets #endif // CIA1 volatile byte cia1_pra @$DC00 volatile byte cia1_prb @$DC01 byte cia1_ddra @$DC02 byte cia1_ddrb @$DC03 volatile byte cia2_pra @$DD00 volatile byte cia2_prb @$DD01 byte cia2_ddra @$DD02 byte cia2_ddrb @$DD03 macro asm void cia_disable_irq() { ? LDA #$7f ! LDA $dc0d ! LDA $dd0d ! LDA $dc0d ! LDA $dd0d } macro void vic_bank_0000() { cia2_ddra = 3 cia2_pra = 3 } macro void vic_bank_4000() { cia2_ddra = 3 cia2_pra = 2 } macro void vic_bank_8000() { cia2_ddra = 3 cia2_pra = 1 } macro void vic_bank_C000() { cia2_ddra = 3 cia2_pra = 0 }