	list      p=12f629
	#include <p12f629.inc>

	errorlevel  -302

	__CONFIG   _CP_OFF & _CPD_OFF & _BODEN_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT

;***** VARIABLE DEFINITIONS
pwm_cntr		EQU		0x23
flags			EQU		0x24
#define			f2200	flags,0; =1->Fout=2200Hz/ =0->Fout=1200Hz


;**********************************************************************
			ORG     0x000
			goto    SineWave

			ORG		0x010
SineWave	call    0x3FF
			bsf     STATUS,RP0
			movwf   OSCCAL
			clrf	TRISIO
			bcf     STATUS,RP0
			movlw	0x07
			movwf	CMCON
			clrf	flags
PWM_begin	movlw	.9
			movwf	pwm_cntr
PWM_I		bsf		GPIO,0
			movfw	pwm_cntr
			call	sin_table
			addwf	PCL,f
			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
			btfsc	f2200
			goto	f_jmp_I
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
f_jmp_I		bcf		GPIO,0
			movfw	pwm_cntr
			call	asin_table
PWM_0		addwf	PCL,f
			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
			btfsc	f2200
			goto	f_jmp_0
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
			nop
f_jmp_0		decfsz	pwm_cntr,f
			goto	PWM_I
			goto 	PWM_begin
			
			
			
sin_table	addwf	PCL,f
			nop
			retlw	.46
			retlw	.50
			retlw	.49
			retlw	.43
			retlw	.35
			retlw	.29
			retlw	.28
			retlw	.32
			retlw	.39

asin_table	addwf	PCL,f
			nop
			retlw	.32
			retlw	.28
			retlw	.29
			retlw	.35
			retlw	.43
			retlw	.49
			retlw	.50
			retlw	.46
			retlw	.39


; initialize eeprom locations

		ORG	0x2100
		DE	0x00, 0x01, 0x02, 0x03



		END                       ; directive 'end of program'

