; ***** PIC12F683 ASM Source File For Wireless_RS232C_0 (int osc_4MHz) *****
;                                    *** (Ver.61118, by T.S) ***
       	list	p=pic12f683
;	include pic12f683.inc
;      _config _fosc_intoscio & _wdt_disable & _pwrte_enable & _mclre_gp3=i/o & _boden _enable & _cpd_disable & _cp_disable & _ieso_disable & _fcmen_disable     (for AKI writer)
;本ソフトはリレーでの電源、アンテナ切換を行うハード用ソフトである。

gp	equ	h'05'

outp	equ	h'20'
fr	equ	h'21'
fr1	equ	h'22'
fr2	equ	h'23'

	org	0
	goto	start

start
	clrf	gp
	clrf	outp

	bsf	h'03',5		;Bank1へ
	clrf	h'05'		;init GPIO
	bcf	h'03',5		;Bank0へ
	movlw	h'07'
	movfw	h'19'		;digital I/Oへ

	bsf	h'03',5		;Bank1へ
	movlw	h'65'
	movfw	h'0f'		;oscillator 設定(内部 4Mhz)
	clrf	h'1f'		;digital I/Oへ
	movlw	b'111000'       ;0〜2 bit出力, 3〜5 bit入力
	movwf	h'05'
	bcf	h'03',5		;Bank0へ、以上ポート入出力設定終了

; ***** メインプログラムスタート *****

main
	movlw	h'01'		;***** 出力 イニシャライズ *****
	movwf	outp
	movf	outp,0
	movwf	gp

jp0			;***** RS232C 送受信信号監視スタート *****
	movf	gp,0
	movwf	fr
	btfss	fr,5
	goto	jp1
	btfsc	fr,3
	goto	jp0

	movlw	h'04'		;***** CTS Hi出力(送信停止) *****
	iorwf	outp,1
	movf	outp,0
	movwf	gp

jp2				;***** RS232C 受信信号監視スタート *****
	clrf	fr
	clrf	fr1

jp3
	incf	fr,1
	btfsc	h'03',2
	incf	fr1,1
	movf	fr1,0
	xorlw	h'10'	;***** n=4000(fr1=H10 x fr=Hff)で 約50ms遅延 *****
	btfsc	h'03',2
	goto	jp4

	movf	gp,0
	movwf	fr2
	btfsc	fr2,3
	goto	jp3
	goto	jp2

jp4
	movlw	h'03'		;***** CTS Low出力（送信開始）******
	andwf	outp,1
	movf	outp,0
	movwf	gp

	goto	jp0

jp1			;***** RS232C 送信信号監視スタート *****
	movlw	h'06'
	andwf	outp,1
	movf	outp,0
	movwf	gp		;***** 受信信号カット *****
jp5
	clrf	fr
	clrf	fr1
jp6
	incf	fr,1
	btfsc	h'03',2
	incf	fr1,1
	movf	fr1,0
	xorlw	h'10'	    ;***** n=4000(fr1=H10 x fr=Hff)で約50ms遅延 *****
	btfsc	h'03',2
	goto	jp7

	movf	gp,0
 	movwf	fr2
	btfsc	fr2,5
	goto	jp6
	goto	jp5
jp7
	movlw	h'01'
	iorwf	outp,1
	movf	outp,0
	movwf	gp		;***** 受信信号 ON *****

	goto	jp0

	end
