; copyright 2008 all rights reserved

row0 equ 10h
row1 equ 11h
row2 equ 12h
row3 equ 13h
row4 equ 14h
ct1 equ 16h
ct2 equ 18h
position equ 1Ah

BSF          03h,5           
MOVLW   b'0000'              
MOVWF   85h
MOVLW   b'00000000'            
MOVWF   86h              
BCF          03h,5           

main

movlw 06h
movwf position

movlw 9Fh
movwf ct1

mainloop
call fetchframe
loop1
call refresh
decfsz ct2,1
goto loop1
loop3
call refresh
decfsz ct2,1
goto loop3
loop4
call refresh
decfsz ct2,1
goto loop4
incf position,1

decfsz ct1,1
goto mainloop

goto main


fetchframe
movf position,W
call table
MOVWF row0
movf position,W
ADDLW 01h
call table
MOVWF row1
movf position,W
ADDLW 02h
call table
MOVWF row2
movf position,W
ADDLW 03h
call table
MOVWF row3
movf position,W
ADDLW 04h
call table
MOVWF row4
return

refresh
CLRF 05h
CLRF 06h
nop
nop
movlw b'00001'
movwf 05h
movf row0,W
movwf 06h
nop
nop
nop
nop
nop
CLRF 05h
CLRF 06h
nop
nop
movlw b'00010'
movwf 05h
movf row1,W
movwf 06h
nop
nop
nop
nop
nop
CLRF 05h
CLRF 06h
nop
nop
movlw b'00100'
movwf 05h
movf row2,W
movwf 06h
nop
nop
nop
nop
nop
CLRF 05h
CLRF 06h
nop
nop
movlw b'01000'
movwf 05h
movf row3,W
movwf 06h
nop
nop
nop
nop
nop
CLRF 05h
CLRF 06h
nop
nop
movf row4,W
movwf 06h
BSF 06h,7
nop
nop
nop
nop
nop
nop
nop
nop
CLRF 05h
CLRF 06h
return

table     
addwf   02h
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000001'
retlw b'0000001'
retlw b'1100001'
retlw b'0011001'
retlw b'0000111'
retlw b'0000000'
retlw b'1000100'
retlw b'0101000'
retlw b'0010000'
retlw b'0101000'
retlw b'1000100'
retlw b'0000000'
retlw b'1001111'
retlw b'1001001'
retlw b'1001001'
retlw b'0110001'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'1111111'
retlw b'1000000'
retlw b'1000000'
retlw b'1000000'
retlw b'0000000'
retlw b'1111111'
retlw b'1001001'
retlw b'1001001'
retlw b'1000001'
retlw b'0000000'
retlw b'1111111'
retlw b'1000001'
retlw b'1000001'
retlw b'0111110'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'1111111'
retlw b'0000100'
retlw b'0001000'
retlw b'0000100'
retlw b'1111111'
retlw b'0000000'
retlw b'1111100'
retlw b'0001010'
retlw b'0001001'
retlw b'0001010'
retlw b'1111100'
retlw b'0000000'
retlw b'0000001'
retlw b'0000001'
retlw b'1111111'
retlw b'0000001'
retlw b'0000001'
retlw b'0000000'
retlw b'1111111'
retlw b'0001001'
retlw b'0001001'
retlw b'1110110'
retlw b'0000000'
retlw b'1111111'
retlw b'0000000'
retlw b'1100011'
retlw b'0010100'
retlw b'0001000'
retlw b'0010100'
retlw b'1100011'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'1111100'
retlw b'0010100'
retlw b'0001000'
retlw b'0000000'
retlw b'0111000'
retlw b'1000100'
retlw b'0111000'
retlw b'0000000'
retlw b'1111100'
retlw b'0100000'
retlw b'1111100'
retlw b'0000000'
retlw b'1111100'
retlw b'1010100'
retlw b'1000100'
retlw b'0000000'
retlw b'1111100'
retlw b'0010100'
retlw b'1101000'
retlw b'0000000'
retlw b'1111100'
retlw b'1010100'
retlw b'1000100'
retlw b'0000000'
retlw b'1111100'
retlw b'1000100'
retlw b'0111000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'1111100'
retlw b'1010100'
retlw b'0101000'
retlw b'0000000'
retlw b'0000100'
retlw b'1111000'
retlw b'0000100'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'1111111'
retlw b'0000000'
retlw b'0111110'
retlw b'1001001'
retlw b'1001001'
retlw b'0110000'
retlw b'0000000'
retlw b'0001000' 
retlw b'1111110'
retlw b'0001001'
retlw b'0000000'
retlw b'0110110'
retlw b'1001001'
retlw b'1001001'
retlw b'0110110'
retlw b'0000000'
retlw b'0000000'
retlw b'0001111'
retlw b'0001000'
retlw b'1111111'
retlw b'0001000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'
retlw b'0000000'

return


end
