list p=16f88
radix hex
status equ 0x03
porta equ 0x05
ncount equ 0x21
mcount equ 0x22
osccon equ 0x8f
rp0 equ 5
org 0x00
start bsf status,rp0 ;bank 1
movlw b'01011110' ;8Mhz internal clock
movwf osccon
bcf status,rp0 ;bank 0
movlw 0x00
tris porta
loop movlw b'00010101'
movwf porta
movlw 0xFF ;prepare a 0x40 pause
call pause ;longer pause
movlw b'00001010'
movwf porta
movlw 0xFF ;prepare a 0x40 pause
call pause ;longer pause
goto loop
pause movwf mcount ;move set W to mcount
loadn movlw 0xff ;load n with FF
movwf ncount ;load ncount with W
decn decfsz ncount,f ;decrement ncount
goto decn ;if ncount is not 0 go back to decn
decfsz mcount,f ;decrement mcount
goto loadn ;if mcount is not 0 go back to loadn
; this restarts n with a fresh val
return
end