; Mark Crosbie  9/12/98  mark@mastincrosbie.com
; Scope test program. Flash an LED at a high frequency
; to observe changes.
;
;  The Program simply sets up Bit 0 of Port "A" to Output and then
;  loops, setting the value alternatively low and high
;
;  Hardware Notes:
;   Reset is tied through a 4.7K Resistor to Vcc and PWRT is Enabled
;   A 220 Ohm Resistor and LED is attached to PORTA.0 and Vcc
;
;	device	pic16c84

	include "p16c84.h"
   __CONFIG _CP_OFF & _WDT_OFF & _XT_OSC & _PWRTE_ON
 
;  Mainline of FlashFast
 
  org 0
 
  clrf   PORTA                  ;  Clear all the Bits in Port "a"
  clrf   STATUS
  bsf    STATUS, RP0            ;  Goto Bank 1 to set Port Direction
  bcf    TRISA, 0               ;  Set RA0 to Output
  bcf    STATUS, RP0            ;  Go back to Bank 0
 
Loop
  movlw 1                       ;  Turn on the LED on Port A
  movwf PORTA                   ;

  movlw 5
  call mdelay			; 5 uS delay
 
  movlw 0                       ;  Turn off the LED on Port A
  movwf PORTA                   ;

  movlw 5
  call mdelay			; 5uS delay 

  goto Loop

; counter variables

CNT	dt	0
CNT1	dt	0
CNT2	dt	0
CNT3	dt	0
CNT4	dt	0

; delay for w uS. Set the w register to the desired delay value

MDELAY:
	MOVWF	CNT		;LOAD DELAY TIME
COUNT:	NOP			;TWO NO OPERATIONS
	NOP			;TO OBTAIN THE DELAY
	DECFSZ	CNT,1		;DECREMENT THE COUNTER
	GOTO	COUNT		;GOTO COUNT IF NOT FINNISHED
	RETURN
 
  end
