;/////////////////////////////////////////////////////////////////////////////////
;// Sinus wave of 10 KHz
;// Version       : 2
;// Jan Lichtenbelt, Haren NL
;// July 29, 2011
;// It is a near ideal sinus, except that the goto statement takes 2 programm steps instead of 1.
;/////////////////////////////////////////////////////////////////////////////////



	ERRORLEVEL -302 						;suppress message 302 (proper bank)
	list    p=16f877a
	include <p16f877A.inc>
	__config _CP_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC


gbl_portc                        EQU	0x00000007 ; bytes:1
gbl_trisc                        EQU	0x00000087 ; bytes:1

	ORG 0x00000000
	goto main
	
	org 0x0010

main
; { main ; function begin
	BSF STATUS, RP0
        BCF STATUS, RP1
	CLRF gbl_trisc
        BCF STATUS, RP0
	CLRF gbl_portc
label1
	CLRF gbl_portc
	nop
	CLRF gbl_portc
	nop
	CLRF gbl_portc
	MOVLW 0x01
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0x02
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0x03
	MOVWF gbl_portc
	MOVLW 0x04
	MOVWF gbl_portc
	MOVLW 0x05
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0x06
	MOVWF gbl_portc
	MOVLW 0x07
	MOVWF gbl_portc
	MOVLW 0x09
	MOVWF gbl_portc
	MOVLW 0x0A
	MOVWF gbl_portc
	MOVLW 0x0B
	MOVWF gbl_portc
	MOVLW 0x0C
	MOVWF gbl_portc
	MOVLW 0x0E
	MOVWF gbl_portc
	MOVLW 0x0F
	MOVWF gbl_portc
	MOVLW 0x11
	MOVWF gbl_portc
	MOVLW 0x12
	MOVWF gbl_portc
	MOVLW 0x14
	MOVWF gbl_portc
	MOVLW 0x15
	MOVWF gbl_portc
	MOVLW 0x17
	MOVWF gbl_portc
	MOVLW 0x19
	MOVWF gbl_portc
	MOVLW 0x1B
	MOVWF gbl_portc
	MOVLW 0x1D
	MOVWF gbl_portc
	MOVLW 0x1F
	MOVWF gbl_portc
	MOVLW 0x21
	MOVWF gbl_portc
	MOVLW 0x23
	MOVWF gbl_portc
	MOVLW 0x25
	MOVWF gbl_portc
	MOVLW 0x28
	MOVWF gbl_portc
	MOVLW 0x2A
	MOVWF gbl_portc
	MOVLW 0x2C
	MOVWF gbl_portc
	MOVLW 0x2F
	MOVWF gbl_portc
	MOVLW 0x31
	MOVWF gbl_portc
	MOVLW 0x34
	MOVWF gbl_portc
	MOVLW 0x36
	MOVWF gbl_portc
	MOVLW 0x39
	MOVWF gbl_portc
	MOVLW 0x3B
	MOVWF gbl_portc
	MOVLW 0x3E
	MOVWF gbl_portc
	MOVLW 0x41
	MOVWF gbl_portc
	MOVLW 0x43
	MOVWF gbl_portc
	MOVLW 0x46
	MOVWF gbl_portc
	MOVLW 0x49
	MOVWF gbl_portc
	MOVLW 0x4C
	MOVWF gbl_portc
	MOVLW 0x4F
	MOVWF gbl_portc
	MOVLW 0x52
	MOVWF gbl_portc
	MOVLW 0x55
	MOVWF gbl_portc
	MOVLW 0x58
	MOVWF gbl_portc
	MOVLW 0x5A
	MOVWF gbl_portc
	MOVLW 0x5D
	MOVWF gbl_portc
	MOVLW 0x61
	MOVWF gbl_portc
	MOVLW 0x64
	MOVWF gbl_portc
	MOVLW 0x67
	MOVWF gbl_portc
	MOVLW 0x6A
	MOVWF gbl_portc
	MOVLW 0x6D
	MOVWF gbl_portc
	MOVLW 0x70
	MOVWF gbl_portc
	MOVLW 0x73
	MOVWF gbl_portc
	MOVLW 0x76
	MOVWF gbl_portc
	MOVLW 0x79
	MOVWF gbl_portc
	MOVLW 0x7C
	MOVWF gbl_portc
	MOVLW 0x80
	MOVWF gbl_portc
	MOVLW 0x83
	MOVWF gbl_portc
	MOVLW 0x86
	MOVWF gbl_portc
	MOVLW 0x89
	MOVWF gbl_portc
	MOVLW 0x8C
	MOVWF gbl_portc
	MOVLW 0x8F
	MOVWF gbl_portc
	MOVLW 0x92
	MOVWF gbl_portc
	MOVLW 0x95
	MOVWF gbl_portc
	MOVLW 0x98
	MOVWF gbl_portc
	MOVLW 0x9B
	MOVWF gbl_portc
	MOVLW 0x9E
	MOVWF gbl_portc
	MOVLW 0xA2
	MOVWF gbl_portc
	MOVLW 0xA5
	MOVWF gbl_portc
	MOVLW 0xA7
	MOVWF gbl_portc
	MOVLW 0xAA
	MOVWF gbl_portc
	MOVLW 0xAD
	MOVWF gbl_portc
	MOVLW 0xB0
	MOVWF gbl_portc
	MOVLW 0xB3
	MOVWF gbl_portc
	MOVLW 0xB6
	MOVWF gbl_portc
	MOVLW 0xB9
	MOVWF gbl_portc
	MOVLW 0xBC
	MOVWF gbl_portc
	MOVLW 0xBE
	MOVWF gbl_portc
	MOVLW 0xC1
	MOVWF gbl_portc
	MOVLW 0xC4
	MOVWF gbl_portc
	MOVLW 0xC6
	MOVWF gbl_portc
	MOVLW 0xC9
	MOVWF gbl_portc
	MOVLW 0xCB
	MOVWF gbl_portc
	MOVLW 0xCE
	MOVWF gbl_portc
	MOVLW 0xD0
	MOVWF gbl_portc
	MOVLW 0xD3
	MOVWF gbl_portc
	MOVLW 0xD5
	MOVWF gbl_portc
	MOVLW 0xD7
	MOVWF gbl_portc
	MOVLW 0xDA
	MOVWF gbl_portc
	MOVLW 0xDC
	MOVWF gbl_portc
	MOVLW 0xDE
	MOVWF gbl_portc
	MOVLW 0xE0
	MOVWF gbl_portc
	MOVLW 0xE2
	MOVWF gbl_portc
	MOVLW 0xE4
	MOVWF gbl_portc
	MOVLW 0xE6
	MOVWF gbl_portc
	MOVLW 0xE8
	MOVWF gbl_portc
	MOVLW 0xEA
	MOVWF gbl_portc
	MOVLW 0xEB
	MOVWF gbl_portc
	MOVLW 0xED
	MOVWF gbl_portc
	MOVLW 0xEE
	MOVWF gbl_portc
	MOVLW 0xF0
	MOVWF gbl_portc
	MOVLW 0xF1
	MOVWF gbl_portc
	MOVLW 0xF3
	MOVWF gbl_portc
	MOVLW 0xF4
	MOVWF gbl_portc
	MOVLW 0xF5
	MOVWF gbl_portc
	MOVLW 0xF6
	MOVWF gbl_portc
	MOVLW 0xF8
	MOVWF gbl_portc
	MOVLW 0xF9
	MOVWF gbl_portc
	MOVLW 0xFA
	MOVWF gbl_portc  
	nop
	MOVWF gbl_portc
	MOVLW 0xFB
	MOVWF gbl_portc
	MOVLW 0xFC
	MOVWF gbl_portc
	MOVLW 0xFD
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0xFE
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0xFF
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0xFE
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0xFD
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0xFC
	MOVWF gbl_portc
	MOVLW 0xFB
	MOVWF gbl_portc
	MOVLW 0xFA
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0xF9
	MOVWF gbl_portc
	MOVLW 0xF8
	MOVWF gbl_portc
	MOVLW 0xF6
	MOVWF gbl_portc
	MOVLW 0xF5
	MOVWF gbl_portc
	MOVLW 0xF4
	MOVWF gbl_portc
	MOVLW 0xF3
	MOVWF gbl_portc
	MOVLW 0xF1
	MOVWF gbl_portc
	MOVLW 0xF0
	MOVWF gbl_portc
	MOVLW 0xEE
	MOVWF gbl_portc
	MOVLW 0xED
	MOVWF gbl_portc
	MOVLW 0xEB
	MOVWF gbl_portc
	MOVLW 0xEA
	MOVWF gbl_portc
	MOVLW 0xE8
	MOVWF gbl_portc
	MOVLW 0xE6
	MOVWF gbl_portc
	MOVLW 0xE4
	MOVWF gbl_portc
	MOVLW 0xE2
	MOVWF gbl_portc
	MOVLW 0xE0
	MOVWF gbl_portc
	MOVLW 0xDE
	MOVWF gbl_portc
	MOVLW 0xDC
	MOVWF gbl_portc
	MOVLW 0xDA
	MOVWF gbl_portc
	MOVLW 0xD7
	MOVWF gbl_portc
	MOVLW 0xD5
	MOVWF gbl_portc
	MOVLW 0xD3
	MOVWF gbl_portc
	MOVLW 0xD0
	MOVWF gbl_portc
	MOVLW 0xCE
	MOVWF gbl_portc
	MOVLW 0xCB
	MOVWF gbl_portc
	MOVLW 0xC9
	MOVWF gbl_portc
	MOVLW 0xC6
	MOVWF gbl_portc
	MOVLW 0xC4
	MOVWF gbl_portc
	MOVLW 0xC1
	MOVWF gbl_portc
	MOVLW 0xBE
	MOVWF gbl_portc
	MOVLW 0xBC
	MOVWF gbl_portc
	MOVLW 0xB9
	MOVWF gbl_portc
	MOVLW 0xB6
	MOVWF gbl_portc
	MOVLW 0xB3
	MOVWF gbl_portc
	MOVLW 0xB0
	MOVWF gbl_portc
	MOVLW 0xAD
	MOVWF gbl_portc
	MOVLW 0xAA
	MOVWF gbl_portc
	MOVLW 0xA7
	MOVWF gbl_portc
	MOVLW 0xA5
	MOVWF gbl_portc
	MOVLW 0xA2
	MOVWF gbl_portc
	MOVLW 0x9E
	MOVWF gbl_portc
	MOVLW 0x9B
	MOVWF gbl_portc
	MOVLW 0x98
	MOVWF gbl_portc
	MOVLW 0x95
	MOVWF gbl_portc
	MOVLW 0x92
	MOVWF gbl_portc
	MOVLW 0x8F
	MOVWF gbl_portc
	MOVLW 0x8C
	MOVWF gbl_portc
	MOVLW 0x89
	MOVWF gbl_portc
	MOVLW 0x86
	MOVWF gbl_portc
	MOVLW 0x83
	MOVWF gbl_portc
	MOVLW 0x80
	MOVWF gbl_portc
	MOVLW 0x7C
	MOVWF gbl_portc
	MOVLW 0x79
	MOVWF gbl_portc
	MOVLW 0x76
	MOVWF gbl_portc
	MOVLW 0x73
	MOVWF gbl_portc
	MOVLW 0x70
	MOVWF gbl_portc
	MOVLW 0x6D
	MOVWF gbl_portc
	MOVLW 0x6A
	MOVWF gbl_portc
	MOVLW 0x67
	MOVWF gbl_portc
	MOVLW 0x64
	MOVWF gbl_portc
	MOVLW 0x61
	MOVWF gbl_portc
	MOVLW 0x5D
	MOVWF gbl_portc
	MOVLW 0x5A
	MOVWF gbl_portc
	MOVLW 0x58
	MOVWF gbl_portc
	MOVLW 0x55
	MOVWF gbl_portc
	MOVLW 0x52
	MOVWF gbl_portc
	MOVLW 0x4F
	MOVWF gbl_portc
	MOVLW 0x4C
	MOVWF gbl_portc
	MOVLW 0x49
	MOVWF gbl_portc
	MOVLW 0x46
	MOVWF gbl_portc
	MOVLW 0x43
	MOVWF gbl_portc
	MOVLW 0x41
	MOVWF gbl_portc
	MOVLW 0x3E
	MOVWF gbl_portc
	MOVLW 0x3B
	MOVWF gbl_portc
	MOVLW 0x39
	MOVWF gbl_portc
	MOVLW 0x36
	MOVWF gbl_portc
	MOVLW 0x34
	MOVWF gbl_portc
	MOVLW 0x31
	MOVWF gbl_portc
	MOVLW 0x2F
	MOVWF gbl_portc
	MOVLW 0x2C
	MOVWF gbl_portc
	MOVLW 0x2A
	MOVWF gbl_portc
	MOVLW 0x28
	MOVWF gbl_portc
	MOVLW 0x25
	MOVWF gbl_portc
	MOVLW 0x23
	MOVWF gbl_portc
	MOVLW 0x21
	MOVWF gbl_portc
	MOVLW 0x1F
	MOVWF gbl_portc
	MOVLW 0x1D
	MOVWF gbl_portc
	MOVLW 0x1B
	MOVWF gbl_portc
	MOVLW 0x19
	MOVWF gbl_portc
	MOVLW 0x17
	MOVWF gbl_portc
	MOVLW 0x15
	MOVWF gbl_portc
	MOVLW 0x14
	MOVWF gbl_portc
	MOVLW 0x12
	MOVWF gbl_portc
	MOVLW 0x11
	MOVWF gbl_portc
	MOVLW 0x0F
	MOVWF gbl_portc
	MOVLW 0x0E
	MOVWF gbl_portc
	MOVLW 0x0C
	MOVWF gbl_portc
	MOVLW 0x0B
	MOVWF gbl_portc
	MOVLW 0x0A
	MOVWF gbl_portc
	MOVLW 0x09
	MOVWF gbl_portc
	MOVLW 0x07
	MOVWF gbl_portc
	MOVLW 0x06
	MOVWF gbl_portc
	MOVLW 0x05
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0x04
	MOVWF gbl_portc
	MOVLW 0x03
	MOVWF gbl_portc
	MOVLW 0x02
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	MOVLW 0x01
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	MOVWF gbl_portc
	nop
	CLRF gbl_portc
	nop
	CLRF gbl_portc
	nop
	CLRF gbl_portc
	nop
	CLRF gbl_portc
	GOTO	label1
; } main function end


	END
