radix dec
rowproc macro row
local addr,bit
addr = array + (row>7)
bit = row%8
clrf PORTC ; SR_Clock & SR_Data = 0 |00
btfsc addr+00,bit ; column 00 |00
bsf SR_Data ; |00
bsf SR_Clock ; strobe SR_Clock |00
clrf PORTC ; clear SR_Data |00
btfsc addr+02,bit ; column 01 |00
bsf SR_Data ; |00
bsf SR_Clock ; strobe SR_Clock |00
clrf PORTC ; clear SR_Data |00
btfsc addr+04,bit ; column 02 |00
bsf SR_Data ; |00
bsf SR_Clock ; strobe SR_Clock |00
clrf PORTC ; clear SR_Data |00
~~~~~
btfsc addr+56,bit ; column 29 |00
bsf SR_Data ; |00
bsf SR_Clock ; strobe SR_Clock |00
clrf PORTC ; |00
;
clrf PORTB ; blank the display |00
clrf PORTD ; " |00
bsf SR_Latch ; strobe SR_Latch |00
bcf SR_Latch ; " |00
if(row<8)
bsf PORTB,bit ; turn on new row 00..07 |00
else
bsf PORTD,bit ; turn on new row 08..15 |00
endif
goto isrexit ; |00
endm