mirror of
https://github.com/uffejakobsen/acme.git
synced 2025-02-07 06:31:03 +00:00
clarified CIA info
git-svn-id: https://svn.code.sf.net/p/acme-crossass/code-0/trunk@320 4df02467-bbd4-4a76-a152-e7ce94205b78
This commit is contained in:
parent
836227f9da
commit
9f4817951a
@ -6,11 +6,26 @@ lib_cbm_c64_cia1_a = 1
|
||||
!source <cbm/cia.a> ; chip stuff (same for both cias)
|
||||
; stuff for cia 1 only:
|
||||
!addr cia1_base = $dc00
|
||||
cia1_pra = cia1_base + cia_port_a ; PA0..PA4 are joy port 2 PA6+PA7 select paddle port(s)
|
||||
cia1_prb = cia1_base + cia_port_b ; PB0..PB4 are joy port 1
|
||||
; both ports are used for keyboard matrix
|
||||
cia1_ddra = cia1_base + cia_data_direction_a
|
||||
cia1_ddrb = cia1_base + cia_data_direction_b
|
||||
; both port A and port B are connected to the keyboard matrix.
|
||||
; in addition to that, they are used for:
|
||||
cia1_pra = cia1_base + cia_port_a
|
||||
; %7....... writing 0 selects paddles at port 1
|
||||
; %.6...... writing 0 selects paddles at port 2
|
||||
; %...4.... reading 0 means JOY2_BUTTON
|
||||
; %....3... reading 0 means JOY2_RIGHT
|
||||
; %.....2.. reading 0 means JOY2_LEFT
|
||||
; %......1. reading 0 means JOY2_DOWN
|
||||
; %.......0 reading 0 means JOY2_UP
|
||||
; kernal's keyboard scanner writes values where a single bit is cleared, going from lsb to msb.
|
||||
; so most of the time, the last value written will be $7f.
|
||||
cia1_prb = cia1_base + cia_port_b
|
||||
; %...4.... reading 0 means JOY1_BUTTON
|
||||
; %....3... reading 0 means JOY1_RIGHT
|
||||
; %.....2.. reading 0 means JOY1_LEFT
|
||||
; %......1. reading 0 means JOY1_DOWN
|
||||
; %.......0 reading 0 means JOY1_UP
|
||||
cia1_ddra = cia1_base + cia_data_direction_a ; kernal writes $ff to set to output for keyboard scanner
|
||||
cia1_ddrb = cia1_base + cia_data_direction_b ; kernal writes $00 to set to input for keyboard scanner
|
||||
cia1_ta_lo = cia1_base + cia_timer_a_low
|
||||
cia1_ta_hi = cia1_base + cia_timer_a_high
|
||||
cia1_tb_lo = cia1_base + cia_timer_b_low
|
||||
|
@ -15,8 +15,16 @@ lib_cbm_c64_cia2_a = 1
|
||||
; %.....2.. PA2 (pin M at user port, 0 means GND)
|
||||
; %......10 VIC bank (gets inverted, so value %11 means address $0000)
|
||||
cia2_prb = cia2_base + cia_port_b
|
||||
cia2_ddra = cia2_base + cia_data_direction_a
|
||||
cia2_ddrb = cia2_base + cia_data_direction_b
|
||||
; %7....... PB7 (pin L at user port, 0 means GND)
|
||||
; %.6...... PB6 (pin K at user port, 0 means GND)
|
||||
; %..5..... PB5 (pin J at user port, 0 means GND)
|
||||
; %...4.... PB4 (pin H at user port, 0 means GND)
|
||||
; %....3... PB3 (pin F at user port, 0 means GND)
|
||||
; %.....2.. PB2 (pin E at user port, 0 means GND)
|
||||
; %......1. PB1 (pin D at user port, 0 means GND)
|
||||
; %.......0 PB0 (pin C at user port, 0 means GND)
|
||||
cia2_ddra = cia2_base + cia_data_direction_a ; kernal writes $3f
|
||||
cia2_ddrb = cia2_base + cia_data_direction_b ; kernal writes $00 (all input)
|
||||
cia2_ta_lo = cia2_base + cia_timer_a_low
|
||||
cia2_ta_hi = cia2_base + cia_timer_a_high
|
||||
cia2_tb_lo = cia2_base + cia_timer_b_low
|
||||
|
Loading…
x
Reference in New Issue
Block a user