	;Beacon.asm
        ;Project: "Rotating Beacon" - for a 508A, Try2  at 110 bytes down memory
	;List P = 12C508A, F = INHX8M 
	;#include <p12C508A.inc> 
	; __CONFIG 09h  _MCLRE_OFF & _CP_OFF & _WDT_OFF & _IntRC_OSC

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP


	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP

	

SetUp	MOVLW 08	;Load W with 0000 1000
	TRIS 06		;Make RB3, (GP3) input	
	OPTION 0DFh  	;Make GP2 an output & disable weak pullups	
	MOVLW 17h 	;Make GP0, GP1, GP2, GP4, GP5  HIGH 
	MOVWF 06	
	GOTO Main

Main	BSF 06,5	;Turn on LHS sinking transistor
	NOP
	NOP
	BCF 06,0
	MOVLW 42h	;Create 50mS delay
	MOVWF 1B
Del1	DECFSZ 1A,1	
	GOTO Del1
	MOVLW 01h
	XORWF 06,1	
	DECFSZ 1B,1
	GOTO Del1
	BSF 06,0	
	BCF 06,1
	MOVLW 42h	;Create 50mS delay
	MOVWF 1B
Del2	DECFSZ 1A,1	
	GOTO Del2
	MOVLW 02h
	XORWF 06,1	
	DECFSZ 1B,1
	GOTO Del2
	BSF 06,1
	BCF 06,2
	MOVLW 42h	;Create 50mS delay
	MOVWF 1B
Del3	DECFSZ 1A,1	
	GOTO Del3
	MOVLW 04h
	XORWF 06,1	
	DECFSZ 1B,1
	GOTO Del3
	BSF 06,2
	BCF 06,4
	MOVLW 42h	;Create 50mS delay
	MOVWF 1B
Del4	DECFSZ 1A,1	
	GOTO Del4
	MOVLW 10h
	XORWF 06,1	
	DECFSZ 1B,1
	GOTO Del4
	BSF 06,4	
	BCF 06,5	;Turn on RHS sinking transistor	
	BCF 06,0
	MOVLW 42h	;Create 50mS delay
	MOVWF 1B
Del5	DECFSZ 1A,1	
	GOTO Del5
	MOVLW 01h
	XORWF 06,1	
	DECFSZ 1B,1
	GOTO Del5
	BSF 06,0	
	BCF 06,1
	MOVLW 42h	;Create 50mS delay
	MOVWF 1B
Del6	DECFSZ 1A,1	
	GOTO Del6
	MOVLW 02h
	XORWF 06,1	
	DECFSZ 1B,1
	GOTO Del6
	BSF 06,1
	BCF 06,2
	MOVLW 42h	;Create 50mS delay
	MOVWF 1B
Del7	DECFSZ 1A,1	
	GOTO Del7
	MOVLW 04h
	XORWF 06,1	
	DECFSZ 1B,1
	GOTO Del7
	BSF 06,2
	BCF 06,4
	MOVLW 42h	;Create 50mS delay
	MOVWF 1B
Del8	DECFSZ 1A,1	
	GOTO Del8
	MOVLW 10h
	XORWF 06,1	
	DECFSZ 1B,1
	GOTO Del8
	BSF 06,4
Loop	BTFSC 06,3			
	GOTO Main
	NOP
	GOTO Loop

	END		;Tells assembler end of program


