basic implementation done ...
[my-code/atmel.git] / led_plex / port.asm
index eefa04f..f57bda9 100644 (file)
@@ -27,6 +27,12 @@ PORT_INIT:
        ; ser -> low
        cbi PORTD,6
 
+       ; port d 2 -> output (debug clk!)
+       sbi DDRD,2
+
+       ; port d 3 -> output (debug vertical!)
+       sbi DDRD,3
+
        ; release hc595 register clear
        sbi PORTB,3
 
@@ -37,14 +43,26 @@ SET_HC595:
        ; storage clock -> low
        cbi PORTB,1
 
+       ; zero to everything ...
+       cbi PORTB,3 ; clear hc595 registers
+       sbi PORTB,1 ; store shift register data
+       cbi PORTB,1 ; release hc595 register clear
+       sbi PORTB,3 ; storage clock -> low
+
        ; source driver
 
        ; clock -> low
        cbi PORTB,2
        ; set ser line
        cbi PORTD,6
-       sbrc hc595_source,7
+       sbrc hc595_source,0
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_source,0
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
 
@@ -52,8 +70,14 @@ SET_HC595:
        cbi PORTB,2
        ; set ser line
        cbi PORTD,6
-       sbrc hc595_source,6
+       sbrc hc595_source,1
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_source,1
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
 
@@ -61,8 +85,14 @@ SET_HC595:
        cbi PORTB,2
        ; set ser line
        cbi PORTD,6
-       sbrc hc595_source,5
+       sbrc hc595_source,2
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_source,2
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
 
@@ -70,8 +100,14 @@ SET_HC595:
        cbi PORTB,2
        ; set ser line
        cbi PORTD,6
-       sbrc hc595_source,4
+       sbrc hc595_source,3
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_source,3
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
 
@@ -79,8 +115,14 @@ SET_HC595:
        cbi PORTB,2
        ; set ser line
        cbi PORTD,6
-       sbrc hc595_source,3
+       sbrc hc595_source,4
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_source,4
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
 
@@ -88,8 +130,14 @@ SET_HC595:
        cbi PORTB,2
        ; set ser line
        cbi PORTD,6
-       sbrc hc595_source,2
+       sbrc hc595_source,5
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_source,5
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
 
@@ -97,8 +145,14 @@ SET_HC595:
        cbi PORTB,2
        ; set ser line
        cbi PORTD,6
-       sbrc hc595_source,1
+       sbrc hc595_source,6
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_source,6
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
 
@@ -106,8 +160,14 @@ SET_HC595:
        cbi PORTB,2
        ; set ser line
        cbi PORTD,6
-       sbrc hc595_source,0
+       sbrc hc595_source,7
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_source,7
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
 
@@ -119,6 +179,12 @@ SET_HC595:
        cbi PORTD,6
        sbrc hc595_sink,7
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_sink,7
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
        
@@ -128,6 +194,12 @@ SET_HC595:
        cbi PORTD,6
        sbrc hc595_sink,6
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_sink,6
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
        
@@ -137,6 +209,12 @@ SET_HC595:
        cbi PORTD,6
        sbrc hc595_sink,5
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_sink,5
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
        
@@ -146,6 +224,12 @@ SET_HC595:
        cbi PORTD,6
        sbrc hc595_sink,4
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_sink,4
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
        
@@ -155,6 +239,12 @@ SET_HC595:
        cbi PORTD,6
        sbrc hc595_sink,3
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_sink,3
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
        
@@ -164,6 +254,12 @@ SET_HC595:
        cbi PORTD,6
        sbrc hc595_sink,2
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_sink,2
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
        
@@ -173,6 +269,12 @@ SET_HC595:
        cbi PORTD,6
        sbrc hc595_sink,1
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_sink,1
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2
        
@@ -182,6 +284,12 @@ SET_HC595:
        cbi PORTD,6
        sbrc hc595_sink,0
        sbi PORTD,6
+.ifdef DEBUG_PORTS
+       ldi uart_rxtx,0x30
+       sbrc hc595_sink,0
+       ldi uart_rxtx,0x31
+       rcall UART_TX
+.endif
        ; clock -> high
        sbi PORTB,2