3 ; author: hackbard@hackdaworld.dyndns.org
10 ; rst card --- rst cam --- atmel t0 (pd4)
11 ; clk card --- clk cam --- atmel t1 (pd5)
12 ; gnd card --- gnd cam --- atmel gnd
13 ; i/o card --- atmel int0 (pd2)
14 ; i/o cam --- atmel int1 (pd3)
16 .include "../include/2313def.inc"
20 ; stupid mode only by now. just see what cam/card do and redirect
23 ; next implementation:
25 ; try to read one byte of card/cam communication and output via uart.
26 ; output time information in some way.
30 ; buffer/parse whole strings and decide whether to send to card or not.
45 ; timer/counter capt 1
48 ; timer/counter compare
51 ; timer/counter overflow 1
54 ; timer/counter overflow 0
60 ; uart data register empty
79 ; enable interrupts int0,int1
80 ldi r16,((1<<INT0)|(1<<INT1))
83 ldi r16,((1<<ISC01)|(1<<ISC00)|(1<<ISC10)|(1<<ISC11))
93 ; enable t/c overflow interrupt
97 ldi r16,((1<<CS12)|(1<<CS11)|(1<<CS10))
100 ; init bitcounter and overflow counter
101 ldi r20,0 ; bitcounter
102 ldi r21,0 ; register for constructing the byte
103 ldi r22,0 ; overflow counter
109 ; enable interrupts (global)
118 ; int0 -> input, int1 -> output
129 ; output high on port to cam
142 ; output low on port to cam
159 ; int1 -> input, int0 -> output
170 ; output high on port to card
183 ; output low on port to card
195 ; t1_overflow routine
200 add r22,r1 ; inc counter overflow register