STATUS      equ       03h       ; Status Register
TRISA       equ       85h       ; TrisA  Register
PORTA       equ       05h       ; A Port
TRISB       equ       86h       ; TrisB  Register
PORTB       equ       06h       ; B Port
COUNT1      equ       0Ch       ; delay loop counter

P           equ       0Eh       ; pointer
C           equ       0Fh       ; display counter

FSR         equ       04h       ; File Select Register
INDF        equ       00h       ; Uses contents of FSR to address Data Memory


bsf         STATUS,5            ; ==> Bank 1
movlw       00h                 ; B port
movwf       TRISB               ; output
bcf         STATUS,5            ; ==> Bank 0

               
            
movlw       b'11000000'
movwf       10h
movlw       b'01111111'
movwf       11h
movlw       b'00010000'
movwf       12h
movlw       b'00001000'
movwf       13h
movlw       b'00010100'
movwf       14h
movlw       b'00100010'
movwf       15h
movlw       b'11000001'
movwf       16h
movlw       b'00000000'
movwf       17h
movlw       b'00000000'
movwf       18h
movlw       b'00111100'
movwf       19h
movlw       b'01001010'
movwf       1ah
movlw       b'01001010'
movwf       1bh
movlw       b'00101100'
movwf       1ch
movlw       b'00000000'
movwf       1dh
movlw       b'00000010'
movwf       1eh
movlw       b'00011100'
movwf       1fh
movlw       b'01100000'
movwf       20h
movlw       b'00110000'
movwf       21h
movlw       b'00001110'
movwf       22h
movlw       b'00000000'
movwf       23h
movlw       b'00000000'
movwf       24h
movlw       b'01111101'
movwf       25h
movlw       b'00000000'
movwf       26h
movlw       b'01111110'
movwf       27h
movlw       b'00000100'
movwf       28h
movlw       b'00000100'
movwf       29h
movlw       b'01111000'
movwf       2ah
movlw       b'00000000'
movwf       2bh
movlw       b'00000000'
movwf       2ch
movlw       b'00000000'
movwf       2dh
movlw       b'00000000'
movwf       2eh
movlw       b'00000000'
movwf       2fh
movlw       b'00000000'
movwf       30h
movlw       b'01000000'
movwf       31h
movlw       b'01000100'
movwf       32h
movlw       b'01111100'
movwf       33h
movlw       b'01000000'
movwf       34h
movlw       b'01000000'
movwf       35h
movlw       b'00000000'
movwf       36h
movlw       b'00000000'
movwf       37h
movlw       b'01000100'
movwf       38h
movlw       b'01010100'
movwf       39h
movlw       b'01010100'
movwf       3ah
movlw       b'01101100'
movwf       3bh
movlw       b'00000000'
movwf       3ch
movlw       b'00000000'
movwf       3dh
movlw       b'01000100'
movwf       3eh
movlw       b'01010100'
movwf       3fh
movlw       b'01010100'
movwf       40h
movlw       b'01101100'
movwf       41h
movlw       b'00000000'
movwf       42h
movlw       b'00000000'
movwf       43h
movlw       b'00000000'
movwf       44h
movlw       b'01000100'
movwf       45h
movlw       b'00100100'
movwf       46h
movlw       b'00011100'
movwf       47h
movlw       b'00000100'
movwf       48h
movlw       b'00000000'
movwf       49h
movlw       b'00000000'
movwf       4ah
movlw       b'00000000'
movwf       4bh



Restart     movlw     10h       ; Load 0x10 in P (first led combination) 
            movwf     P
            movlw     3Ch       ; load 0x3C in C (0x3C=60 led combination)
            movwf     C

Start       movf      P,0       ; W = P
            movwf     FSR       ; FSR = W
            movf      INDF,0    ; W = INDF (INDF is the value pointed by FSR)
            movwf     PORTB     ; Display W on the led row
            incf      P,1       ; P++
            call      Delay     ; wait a little bit
            decfsz    C,1       ; c--;if(C!=0){goto start} else {goto restart}
            goto      Start
            goto      Restart

   

Delay
Loop1       decfsz    COUNT1,1  ; goto loop1 while COUNT1!=0
            goto      Loop1
return 



end 

