;******************************************************************************
;                                                                             *
;   This file is a basic code template for code generation on the             *
;   PIC18F14K50. This file contains the basic code building blocks to build   *
;   upon.                                                                     *
;                                                                             *
;   Refer to the MPASM User's Guide for additional information on features    *
;   of the assembler.                                                         *
;                                                                             *
;   Refer to the respective data sheet for additional information on the      *
;   instruction set.                                                          *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Filename:         sin_wave_osc.asm                                       *
;    Date:             2015/12/12                                             *
;    File Version:                                                            *
;    Author:                                                                  *
;    Company:                                                                 *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Files required: P18F14K50.INC                                            *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Notes:    正弦波発生器                                                   *
;                                                                             *
;******************************************************************************
;                                                                             *
;    Revision History:                                                        *
;                                                                             *
;******************************************************************************

;------------------------------------------------------------------------------
; PROCESSOR DECLARATION
;------------------------------------------------------------------------------

     LIST      P=PIC18F14K50          ; list directive to define processor
     #INCLUDE <P18F14K50.INC>         ; processor specific variable definitions

;------------------------------------------------------------------------------
;
; CONFIGURATION WORD SETUP
;
; The 'CONFIG' directive is used to embed the configuration word within the 
; .asm file. The lables following the directive are located in the respective 
; .inc file.  See the data sheet for additional information on configuration 
; word settings.
;
;------------------------------------------------------------------------------

     CONFIG CPUDIV = NOCLKDIV, USBDIV = OFF, FOSC = IRC, PLLEN = ON
     CONFIG PCLKEN = OFF, FCMEN = OFF, IESO = OFF, PWRTEN = ON, BOREN = OFF
     CONFIG BORV = 19, WDTEN = OFF, WDTPS = 1, MCLRE = ON, HFOFST = OFF
     CONFIG STVREN = OFF, LVP = OFF, BBSIZ = OFF, XINST = OFF, CP0 = OFF
     CONFIG CP1 = OFF, CPB = OFF, CPD = OFF, WRT0 = OFF, WRTB = OFF
     CONFIG WRTC = OFF, WRTD = OFF, EBTR0 = OFF, EBTR1 = OFF, EBTRB = OFF


loop0 	EQU 	0x60	;ユーザー変数は全てBANK2に配置
loopC 	EQU 	0x61
devc 	EQU 	0x64
;------------------------------------------------------------------------------

;------------------------------------------------------------------------------
; MAIN PROGRAM
;------------------------------------------------------------------------------

MAIN_PROG CODE                        ; let linker place main program

START

          ; Insert User Program Here

          GOTO init                      ; Main スタート




;  初期設定 
init	MOVLB	0	    ;BSRにBANK0を指定
	MOVLW	0x60		;Fosc=8MHz プライマリルート PLL ONで32MHz
	MOVWF	OSCCON,0
	MOVLW	0X0
	MOVWF	ANSEL,0		;ADC無効
	MOVWF	ANSELH,0
	MOVLW	0x2F
	MOVWF	TRISA,0		;PORTA 0,1,2,3,5は入力 4は出力
	MOVLW	0xF0
	MOVWF	TRISB,0		;PORTBは入力
	MOVLW	0x0			;PROTCは出力
	MOVWF	TRISC,0
	CLRF	LATC,0		;PORTCをクリア
	BSF	LATA,5,0

;   メイン処理 
	RCALL	loop0set		;周期カウント値をセット
	MOVLB	2
	MOVF	PORTB,0,0		;PORTBのRB4?RB7を読み出す
	MOVWF	devc,1			;devcにストア
	RRNCF	devc,1,1		;devcジスタを4回右シフト
	RRNCF	devc,1,1
	RRNCF	devc,1,1
	
	RRNCF	devc,1,1

	MOVF	devc,W,1
	MOVWF	FSR1L,0
	MOVLW	0x02
	MOVWF	FSR1H,0
	MOVF	INDF1,W,0
	MOVWF	loop0,1			;loop0にカウント数をセット
	BTFSC	PORTA,5,0		;RA5は？
	GOTO	wave256			;1:256分割
	GOTO	wave64			;O:64分割
	

wave64	CALL	SET64	    ;64分割コサインデータセット
	MOVLB	2
	GOTO	COS64
wave256	CALL	SET256		;256分割コサインデータセット
	MOVLB	2
	GOTO	COS256

	
COS64	LFSR	0,0x13F			;コサインwaveのデータ先頭アドレスセット
CS64_1	MOVF	POSTDEC0,W,0	;ADレベルをWにセット
	MOVWF	LATC,0				; PORTCに出力
	MOVF	loop0,W,1			; ループ回数をWに移動
	MOVWF	loopC,1				; 周期カウンターセット
CS64_2	DECFSZ	loopC,1,1		; 周期カウンターを-1
	GOTO	CS64_2				; 周期設定ループ
	MOVF	FSR0L,W
	BNZ	CS64_1					;次のAD値へ
	GOTO	COS64				; １サイクル終了ループ


;  
COS256	LFSR	0,0x1FF			;コサインwaveのデータ先頭アドレスセット
CS256_1	MOVF	POSTDEC0,W,0	;ADレベルをWにセット
	MOVWF	LATC,0				;PORTCに出力
	MOVF	loop0,W,1			;ループ回数をWに移動
	MOVWF	loopC,1				;周期カウンターセット
CS256_2	DECFSZ	loopC,1,1		;周期カウンターを-1
	GOTO	CS256_2				;周期設定ループ
	MOVF	FSR0L,W
	BNZ	CS256_1					;次のAD値へ
	GOTO	COS256				; サイクル終了ループ
	

;   周期カウント設定
loop0set	MOVLB	0x02
	MOVLW	d'1'
	MOVWF	0x00,1
	MOVLW	d'2'
	MOVWF	0x01,1
	MOVLW	d'3'
	MOVWF	0x02,1
	MOVLW	d'6'
	MOVWF	0x03,1
	MOVLW	d'8'
	MOVWF	0x04,1
	MOVLW	d'12'
	MOVWF	0x05,1
	MOVLW	d'3'
	MOVWF	0x06,1
	MOVLW	d'5'
	MOVWF	0x07,1
	MOVLW	d'8'
	MOVWF	0x08,1
	MOVLW	d'13'
	MOVWF	0x09,1
	MOVLW	d'18'
	MOVWF	0x0A,1
	MOVLW	d'32'
	MOVWF	0x0B,1
	MOVLW	d'50'
	MOVWF	0x0C,1
	MOVLW	d'68'
	MOVWF	0x0D,1
	MOVLW	d'128'
	MOVWF	0x0E,1
	MOVLW	d'255'
	MOVWF	0x0F,1
	RETURN	
; 
SET64	MOVLB	0x01	;cos64
	MOVLW  d'8' ;0
	MOVWF  	0x00,1
	MOVLW  d'9' ;1
	MOVWF  	0x01,1
	MOVLW  d'10' ;2
	MOVWF  	0x02,1
	MOVLW  d'13' ;3
	MOVWF  	0x03,1
	MOVLW  d'17' ;4
	MOVWF  	0x04,1
	MOVLW  d'22' ;5
	MOVWF  	0x05,1
	MOVLW  d'28' ;6
	MOVWF  	0x06,1
	MOVLW  d'35' ;7
	MOVWF  	0x07,1
	MOVLW  d'43' ;8
	MOVWF  	0x08,1
	MOVLW  d'52' ;9
	MOVWF  	0x09,1
	MOVLW  d'61' ;10
	MOVWF  	0x0A,1
	MOVLW  d'71' ;11
	MOVWF  	0x0B,1
	MOVLW  d'82' ;12
	MOVWF  	0x0C,1
	MOVLW  d'93' ;13
	MOVWF  	0x0D,1
	MOVLW  d'105' ;14
	MOVWF  	0x0E,1
	MOVLW  d'116' ;15
	MOVWF  	0x0F,1
	MOVLW  d'128' ;16
	MOVWF  	0x10,1
	MOVLW  d'140' ;17
	MOVWF  	0x11,1
	MOVLW  d'151' ;18
	MOVWF  	0x12,1
	MOVLW  d'163' ;19
	MOVWF  	0x13,1
	MOVLW  d'174' ;20
	MOVWF  	0x14,1
	MOVLW  d'185' ;21
	MOVWF  	0x15,1
	MOVLW  d'195' ;22
	MOVWF  	0x16,1
	MOVLW  d'204' ;23
	MOVWF  	0x17,1
	MOVLW  d'213' ;24
	MOVWF  	0x18,1
	MOVLW  d'221' ;25
	MOVWF  	0x19,1
	MOVLW  d'228' ;26
	MOVWF  	0x1A,1
	MOVLW  d'234' ;27
	MOVWF  	0x1B,1
	MOVLW  d'239' ;28
	MOVWF  	0x1C,1
	MOVLW  d'243' ;29
	MOVWF  	0x1D,1
	MOVLW  d'246' ;30
	MOVWF  	0x1E,1
	MOVLW  d'247' ;31
	MOVWF  	0x1F,1
	MOVLW  d'248' ;32
	MOVWF  	0x20,1
	MOVLW  d'247' ;33
	MOVWF  	0x21,1
	MOVLW  d'246' ;34
	MOVWF  	0x22,1
	MOVLW  d'243' ;35
	MOVWF  	0x23,1
	MOVLW  d'239' ;36
	MOVWF  	0x24,1
	MOVLW  d'234' ;37
	MOVWF  	0x25,1
	MOVLW  d'228' ;38
	MOVWF  	0x26,1
	MOVLW  d'221' ;39
	MOVWF  	0x27,1
	MOVLW  d'213' ;40
	MOVWF  	0x28,1
	MOVLW  d'204' ;41
	MOVWF  	0x29,1
	MOVLW  d'195' ;42
	MOVWF  	0x2A,1
	MOVLW  d'185' ;43
	MOVWF  	0x2B,1
	MOVLW  d'174' ;44
	MOVWF  	0x2C,1
	MOVLW  d'163' ;45
	MOVWF  	0x2D,1
	MOVLW  d'151' ;46
	MOVWF  	0x2E,1
	MOVLW  d'140' ;47
	MOVWF  	0x2F,1
	MOVLW  d'128' ;48
	MOVWF  	0x30,1
	MOVLW  d'116' ;49
	MOVWF  	0x31,1
	MOVLW  d'105' ;50
	MOVWF  	0x32,1
	MOVLW  d'93' ;51
	MOVWF  	0x33,1
	MOVLW  d'82' ;52
	MOVWF  	0x34,1
	MOVLW  d'71' ;53
	MOVWF  	0x35,1
	MOVLW  d'61' ;54
	MOVWF  	0x36,1
	MOVLW  d'52' ;55
	MOVWF  	0x37,1
	MOVLW  d'43' ;56
	MOVWF  	0x38,1
	MOVLW  d'35' ;57
	MOVWF  	0x39,1
	MOVLW  d'28' ;58
	MOVWF  	0x3A,1
	MOVLW  d'22' ;59
	MOVWF  	0x3B,1
	MOVLW  d'17' ;60
	MOVWF  	0x3C,1
	MOVLW  d'13' ;61
	MOVWF  	0x3D,1
	MOVLW  d'10' ;62
	MOVWF  	0x3E,1
	MOVLW  d'9' ;63
	MOVWF  	0x3F,1
	MOVLW  d'8' ;64
	MOVWF  	0x40,1
	RETURN	
	
SET256	MOVLB	0x01	;Cos256
	MOVLW  d'8' ;0
	MOVWF  	0x00,1
	MOVLW  d'8' ;1
	MOVWF  	0x01,1
	MOVLW  d'8' ;2
	MOVWF  	0x02,1
	MOVLW  d'8' ;3
	MOVWF  	0x03,1
	MOVLW  d'9' ;4
	MOVWF  	0x04,1
	MOVLW  d'9' ;5
	MOVWF  	0x05,1
	MOVLW  d'9' ;6
	MOVWF  	0x06,1
	MOVLW  d'10' ;7
	MOVWF  	0x07,1
	MOVLW  d'10' ;8
	MOVWF  	0x08,1
	MOVLW  d'11' ;9
	MOVWF  	0x09,1
	MOVLW  d'12' ;10
	MOVWF  	0x0A,1
	MOVLW  d'12' ;11
	MOVWF  	0x0B,1
	MOVLW  d'13' ;12
	MOVWF  	0x0C,1
	MOVLW  d'14' ;13
	MOVWF  	0x0D,1
	MOVLW  d'15' ;14
	MOVWF  	0x0E,1
	MOVLW  d'16' ;15
	MOVWF  	0x0F,1
	MOVLW  d'17' ;16
	MOVWF  	0x10,1
	MOVLW  d'18' ;17
	MOVWF  	0x11,1
	MOVLW  d'20' ;18
	MOVWF  	0x12,1
	MOVLW  d'21' ;19
	MOVWF  	0x13,1
	MOVLW  d'22' ;20
	MOVWF  	0x14,1
	MOVLW  d'24' ;21
	MOVWF  	0x15,1
	MOVLW  d'25' ;22
	MOVWF  	0x16,1
	MOVLW  d'27' ;23
	MOVWF  	0x17,1
	MOVLW  d'28' ;24
	MOVWF  	0x18,1
	MOVLW  d'30' ;25
	MOVWF  	0x19,1
	MOVLW  d'32' ;26
	MOVWF  	0x1A,1
	MOVLW  d'33' ;27
	MOVWF  	0x1B,1
	MOVLW  d'35' ;28
	MOVWF  	0x1C,1
	MOVLW  d'37' ;29
	MOVWF  	0x1D,1
	MOVLW  d'39' ;30
	MOVWF  	0x1E,1
	MOVLW  d'41' ;31
	MOVWF  	0x1F,1
	MOVLW  d'43' ;32
	MOVWF  	0x20,1
	MOVLW  d'45' ;33
	MOVWF  	0x21,1
	MOVLW  d'47' ;34
	MOVWF  	0x22,1
	MOVLW  d'50' ;35
	MOVWF  	0x23,1
	MOVLW  d'52' ;36
	MOVWF  	0x24,1
	MOVLW  d'54' ;37
	MOVWF  	0x25,1
	MOVLW  d'57' ;38
	MOVWF  	0x26,1
	MOVLW  d'59' ;39
	MOVWF  	0x27,1
	MOVLW  d'61' ;40
	MOVWF  	0x28,1
	MOVLW  d'64' ;41
	MOVWF  	0x29,1
	MOVLW  d'66' ;42
	MOVWF  	0x2A,1
	MOVLW  d'69' ;43
	MOVWF  	0x2B,1
	MOVLW  d'71' ;44
	MOVWF  	0x2C,1
	MOVLW  d'74' ;45
	MOVWF  	0x2D,1
	MOVLW  d'77' ;46
	MOVWF  	0x2E,1
	MOVLW  d'79' ;47
	MOVWF  	0x2F,1
	MOVLW  d'82' ;48
	MOVWF  	0x30,1
	MOVLW  d'85' ;49
	MOVWF  	0x31,1
	MOVLW  d'88' ;50
	MOVWF  	0x32,1
	MOVLW  d'90' ;51
	MOVWF  	0x33,1
	MOVLW  d'93' ;52
	MOVWF  	0x34,1
	MOVLW  d'96' ;53
	MOVWF  	0x35,1
	MOVLW  d'99' ;54
	MOVWF  	0x36,1
	MOVLW  d'102' ;55
	MOVWF  	0x37,1
	MOVLW  d'105' ;56
	MOVWF  	0x38,1
	MOVLW  d'107' ;57
	MOVWF  	0x39,1
	MOVLW  d'110' ;58
	MOVWF  	0x3A,1
	MOVLW  d'113' ;59
	MOVWF  	0x3B,1
	MOVLW  d'116' ;60
	MOVWF  	0x3C,1
	MOVLW  d'119' ;61
	MOVWF  	0x3D,1
	MOVLW  d'122' ;62
	MOVWF  	0x3E,1
	MOVLW  d'125' ;63
	MOVWF  	0x3F,1
	MOVLW  d'128' ;64
	MOVWF  	0x40,1
	MOVLW  d'131' ;65
	MOVWF  	0x41,1
	MOVLW  d'134' ;66
	MOVWF  	0x42,1
	MOVLW  d'137' ;67
	MOVWF  	0x43,1
	MOVLW  d'140' ;68
	MOVWF  	0x44,1
	MOVLW  d'143' ;69
	MOVWF  	0x45,1
	MOVLW  d'146' ;70
	MOVWF  	0x46,1
	MOVLW  d'149' ;71
	MOVWF  	0x47,1
	MOVLW  d'151' ;72
	MOVWF  	0x48,1
	MOVLW  d'154' ;73
	MOVWF  	0x49,1
	MOVLW  d'157' ;74
	MOVWF  	0x4A,1
	MOVLW  d'160' ;75
	MOVWF  	0x4B,1
	MOVLW  d'163' ;76
	MOVWF  	0x4C,1
	MOVLW  d'166' ;77
	MOVWF  	0x4D,1
	MOVLW  d'168' ;78
	MOVWF  	0x4E,1
	MOVLW  d'171' ;79
	MOVWF  	0x4F,1
	MOVLW  d'174' ;80
	MOVWF  	0x50,1
	MOVLW  d'177' ;81
	MOVWF  	0x51,1
	MOVLW  d'179' ;82
	MOVWF  	0x52,1
	MOVLW  d'182' ;83
	MOVWF  	0x53,1
	MOVLW  d'185' ;84
	MOVWF  	0x54,1
	MOVLW  d'187' ;85
	MOVWF  	0x55,1
	MOVLW  d'190' ;86
	MOVWF  	0x56,1
	MOVLW  d'192' ;87
	MOVWF  	0x57,1
	MOVLW  d'195' ;88
	MOVWF  	0x58,1
	MOVLW  d'197' ;89
	MOVWF  	0x59,1
	MOVLW  d'199' ;90
	MOVWF  	0x5A,1
	MOVLW  d'202' ;91
	MOVWF  	0x5B,1
	MOVLW  d'204' ;92
	MOVWF  	0x5C,1
	MOVLW  d'206' ;93
	MOVWF  	0x5D,1
	MOVLW  d'209' ;94
	MOVWF  	0x5E,1
	MOVLW  d'211' ;95
	MOVWF  	0x5F,1
	MOVLW  d'213' ;96
	MOVWF  	0x60,1
	MOVLW  d'215' ;97
	MOVWF  	0x61,1
	MOVLW  d'217' ;98
	MOVWF  	0x62,1
	MOVLW  d'219' ;99
	MOVWF  	0x63,1
	MOVLW  d'221' ;100
	MOVWF  	0x64,1
	MOVLW  d'223' ;101
	MOVWF  	0x65,1
	MOVLW  d'224' ;102
	MOVWF  	0x66,1
	MOVLW  d'226' ;103
	MOVWF  	0x67,1
	MOVLW  d'228' ;104
	MOVWF  	0x68,1
	MOVLW  d'229' ;105
	MOVWF  	0x69,1
	MOVLW  d'231' ;106
	MOVWF  	0x6A,1
	MOVLW  d'232' ;107
	MOVWF  	0x6B,1
	MOVLW  d'234' ;108
	MOVWF  	0x6C,1
	MOVLW  d'235' ;109
	MOVWF  	0x6D,1
	MOVLW  d'236' ;110
	MOVWF  	0x6E,1
	MOVLW  d'238' ;111
	MOVWF  	0x6F,1
	MOVLW  d'239' ;112
	MOVWF  	0x70,1
	MOVLW  d'240' ;113
	MOVWF  	0x71,1
	MOVLW  d'241' ;114
	MOVWF  	0x72,1
	MOVLW  d'242' ;115
	MOVWF  	0x73,1
	MOVLW  d'243' ;116
	MOVWF  	0x74,1
	MOVLW  d'244' ;117
	MOVWF  	0x75,1
	MOVLW  d'244' ;118
	MOVWF  	0x76,1
	MOVLW  d'245' ;119
	MOVWF  	0x77,1
	MOVLW  d'246' ;120
	MOVWF  	0x78,1
	MOVLW  d'246' ;121
	MOVWF  	0x79,1
	MOVLW  d'247' ;122
	MOVWF  	0x7A,1
	MOVLW  d'247' ;123
	MOVWF  	0x7B,1
	MOVLW  d'247' ;124
	MOVWF  	0x7C,1
	MOVLW  d'248' ;125
	MOVWF  	0x7D,1
	MOVLW  d'248' ;126
	MOVWF  	0x7E,1
	MOVLW  d'248' ;127
	MOVWF  	0x7F,1
	MOVLW  d'248' ;128
	MOVWF  	0x80,1
	MOVLW  d'248' ;129
	MOVWF  	0x81,1
	MOVLW  d'248' ;130
	MOVWF  	0x82,1
	MOVLW  d'248' ;131
	MOVWF  	0x83,1
	MOVLW  d'247' ;132
	MOVWF  	0x84,1
	MOVLW  d'247' ;133
	MOVWF  	0x85,1
	MOVLW  d'247' ;134
	MOVWF  	0x86,1
	MOVLW  d'246' ;135
	MOVWF  	0x87,1
	MOVLW  d'246' ;136
	MOVWF  	0x88,1
	MOVLW  d'245' ;137
	MOVWF  	0x89,1
	MOVLW  d'244' ;138
	MOVWF  	0x8A,1
	MOVLW  d'244' ;139
	MOVWF  	0x8B,1
	MOVLW  d'243' ;140
	MOVWF  	0x8C,1
	MOVLW  d'242' ;141
	MOVWF  	0x8D,1
	MOVLW  d'241' ;142
	MOVWF  	0x8E,1
	MOVLW  d'240' ;143
	MOVWF  	0x8F,1
	MOVLW  d'239' ;144
	MOVWF  	0x90,1
	MOVLW  d'238' ;145
	MOVWF  	0x91,1
	MOVLW  d'236' ;146
	MOVWF  	0x92,1
	MOVLW  d'235' ;147
	MOVWF  	0x93,1
	MOVLW  d'234' ;148
	MOVWF  	0x94,1
	MOVLW  d'232' ;149
	MOVWF  	0x95,1
	MOVLW  d'231' ;150
	MOVWF  	0x96,1
	MOVLW  d'229' ;151
	MOVWF  	0x97,1
	MOVLW  d'228' ;152
	MOVWF  	0x98,1
	MOVLW  d'226' ;153
	MOVWF  	0x99,1
	MOVLW  d'224' ;154
	MOVWF  	0x9A,1
	MOVLW  d'223' ;155
	MOVWF  	0x9B,1
	MOVLW  d'221' ;156
	MOVWF  	0x9C,1
	MOVLW  d'219' ;157
	MOVWF  	0x9D,1
	MOVLW  d'217' ;158
	MOVWF  	0x9E,1
	MOVLW  d'215' ;159
	MOVWF  	0x9F,1
	MOVLW  d'213' ;160
	MOVWF  	0xA0,1
	MOVLW  d'211' ;161
	MOVWF  	0xA1,1
	MOVLW  d'209' ;162
	MOVWF  	0xA2,1
	MOVLW  d'206' ;163
	MOVWF  	0xA3,1
	MOVLW  d'204' ;164
	MOVWF  	0xA4,1
	MOVLW  d'202' ;165
	MOVWF  	0xA5,1
	MOVLW  d'199' ;166
	MOVWF  	0xA6,1
	MOVLW  d'197' ;167
	MOVWF  	0xA7,1
	MOVLW  d'195' ;168
	MOVWF  	0xA8,1
	MOVLW  d'192' ;169
	MOVWF  	0xA9,1
	MOVLW  d'190' ;170
	MOVWF  	0xAA,1
	MOVLW  d'187' ;171
	MOVWF  	0xAB,1
	MOVLW  d'185' ;172
	MOVWF  	0xAC,1
	MOVLW  d'182' ;173
	MOVWF  	0xAD,1
	MOVLW  d'179' ;174
	MOVWF  	0xAE,1
	MOVLW  d'177' ;175
	MOVWF  	0xAF,1
	MOVLW  d'174' ;176
	MOVWF  	0xB0,1
	MOVLW  d'171' ;177
	MOVWF  	0xB1,1
	MOVLW  d'168' ;178
	MOVWF  	0xB2,1
	MOVLW  d'166' ;179
	MOVWF  	0xB3,1
	MOVLW  d'163' ;180
	MOVWF  	0xB4,1
	MOVLW  d'160'  ;181
	MOVWF  	0xB5,1
	MOVLW  d'157' ;182
	MOVWF  	0xB6,1
	MOVLW  d'154' ;183
	MOVWF  	0xB7,1
	MOVLW  d'151' ;184
	MOVWF  	0xB8,1
	MOVLW  d'149' ;185
	MOVWF  	0xB9,1
	MOVLW  d'146' ;186
	MOVWF  	0xBA,1
	MOVLW  d'143' ;187
	MOVWF  	0xBB,1
	MOVLW  d'140' ;188
	MOVWF  	0xBC,1
	MOVLW  d'137' ;189
	MOVWF  	0xBD,1
	MOVLW  d'134' ;190
	MOVWF  	0xBE,1
	MOVLW  d'131' ;191
	MOVWF  	0xBF,1
	MOVLW  d'128' ;192
	MOVWF  	0xC0,1
	MOVLW  d'125' ;193
	MOVWF  	0xC1,1
	MOVLW  d'122' ;194
	MOVWF  	0xC2,1
	MOVLW  d'119' ;195
	MOVWF  	0xC3,1
	MOVLW  d'116' ;196
	MOVWF  	0xC4,1
	MOVLW  d'113' ;197
	MOVWF  	0xC5,1
	MOVLW  d'110' ;198
	MOVWF  	0xC6,1
	MOVLW  d'107' ;199
	MOVWF  	0xC7,1
	MOVLW  d'105' ;200
	MOVWF  	0xC8,1
	MOVLW  d'102' ;201
	MOVWF  	0xC9,1
	MOVLW  d'99' ;202
	MOVWF  	0xCA,1
	MOVLW  d'96' ;203
	MOVWF  	0xCB,1
	MOVLW  d'93' ;204
	MOVWF  	0xCC,1
	MOVLW  d'90' ;205
	MOVWF  	0xCD,1
	MOVLW  d'88' ;206
	MOVWF  	0xCE,1
	MOVLW  d'85' ;207
	MOVWF  	0xCF,1
	MOVLW  d'82' ;208
	MOVWF  	0xD0,1
	MOVLW  d'79' ;209
	MOVWF  	0xD1,1
	MOVLW  d'77' ;210
	MOVWF  	0xD2,1
	MOVLW  d'74' ;211
	MOVWF  	0xD3,1
	MOVLW  d'71' ;212
	MOVWF  	0xD4,1
	MOVLW  d'69' ;213
	MOVWF  	0xD5,1
	MOVLW  d'66' ;214
	MOVWF  	0xD6,1
	MOVLW  d'64' ;215
	MOVWF  	0xD7,1
	MOVLW  d'61' ;216
	MOVWF  	0xD8,1
	MOVLW  d'59' ;217
	MOVWF  	0xD9,1
	MOVLW  d'57' ;218
	MOVWF  	0xDA,1
	MOVLW  d'54' ;219
	MOVWF  	0xDB,1
	MOVLW  d'52' ;220
	MOVWF  	0xDC,1
	MOVLW  d'50' ;221
	MOVWF  	0xDD,1
	MOVLW  d'47' ;222
	MOVWF  	0xDE,1
	MOVLW  d'45' ;223
	MOVWF  	0xDF,1
	MOVLW  d'43' ;224
	MOVWF  	0xE0,1
	MOVLW  d'41' ;225
	MOVWF  	0xE1,1
	MOVLW  d'39' ;226
	MOVWF  	0xE2,1
	MOVLW  d'37' ;227
	MOVWF  	0xE3,1
	MOVLW  d'35' ;228
	MOVWF  	0xE4,1
	MOVLW  d'33' ;229
	MOVWF  	0xE5,1
	MOVLW  d'32' ;230
	MOVWF  	0xE6,1
	MOVLW  d'30' ;231
	MOVWF  	0xE7,1
	MOVLW  d'28' ;232
	MOVWF  	0xE8,1
	MOVLW  d'27' ;233
	MOVWF  	0xE9,1
	MOVLW  d'25' ;234
	MOVWF  	0xEA,1
	MOVLW  d'24' ;235
	MOVWF  	0xEB,1
	MOVLW  d'22' ;236
	MOVWF  	0xEC,1
	MOVLW  d'21' ;237
	MOVWF  	0xED,1
	MOVLW  d'20' ;238
	MOVWF  	0xEE,1
	MOVLW  d'18' ;239
	MOVWF  	0xEF,1
	MOVLW  d'17' ;240
	MOVWF  	0xF0,1
	MOVLW  d'16' ;241
	MOVWF  	0xF1,1
	MOVLW  d'15' ;242
	MOVWF  	0xF2,1
	MOVLW  d'14' ;243
	MOVWF  	0xF3,1
	MOVLW  d'13' ;244
	MOVWF  	0xF4,1
	MOVLW  d'12' ;245
	MOVWF  	0xF5,1
	MOVLW  d'12' ;246
	MOVWF  	0xF6,1
	MOVLW  d'11' ;247
	MOVWF  	0xF7,1
	MOVLW  d'10' ;248
	MOVWF  	0xF8,1
	MOVLW  d'10' ;249
	MOVWF  	0xF9,1
	MOVLW  d'9' ;250
	MOVWF  	0xFA,1
	MOVLW  d'9' ;251
	MOVWF  	0xFB,1
	MOVLW  d'9' ;252
	MOVWF  	0xFC,1
	MOVLW  d'8' ;253
	MOVWF  	0xFD,1
	MOVLW  d'8' ;254
	MOVWF  	0xFE,1
	MOVLW  d'8' ;255
	MOVWF  	0xFF,1
	MOVLW  d'8' ;256
	MOVWF  	0x00,1
	RETURN
	

	END

          
          