;ゲームキューブ　海外モード変更プログラム　for 12C509
;
;                       _______  _______
;                      |       凹       |
;                Vdd --+ 1            8 +-- GND
;                      |                |
;           NC   GP5 --+ 2            7 +-- GP0 reset signal input
;                      |                |
;           NC   GP4 --+ 3            6 +-- GP1 mode output
;                      |                |
;           LED2 GP3 --+ 4            5 +-- GP2 LED1
;                      |                |
;                      +----------------+
;
;		resetは、押されたときにＬレベル
;		modeは、国内モードでＨ、海外でＬレベル
;		LED1は、国内モードでＨ、海外でＬレベル
;		LED2は、国内モードでＬ、海外でＨレベル
;

	include 12C5XX.h	;初期設定
	.12C509
	.osc intrc
	.mclre	disable
	.wdt	off
	.protect off

cnt	ds	1
cnt2	ds	1
cnt3	ds	1


check	btfsc	gpio.0		;リセット押されているかチェック
	goto	domest

foren	bcf	gpio.1		;海外モードに設定
	bcf	gpio.2
	bsf	gpio.3
reset	btfss	gpio.0		;リセット離されるまで待機
	goto	reset
	call	wait250		;チャタリング防止待ち

loop	btfsc	gpio.0		;もう一度リセットされるまで待機
	goto	loop

domest	bsf	gpio.1		;国内モードに設定
	bsf	gpio.2
	bcf	gpio.3
owari	nop
	goto	owari

wait250	movlw	0fah		;250ms待ちサブルーチン
	movwf	cnt3
timlp3	call	wait1
	decfsz	cnt3,1
	goto	timlp3
	ret

wait1	movlw	0f9h		;1ms待ちサブルーチン
	movwf	cnt
timlp1	nop
	decfsz	cnt,1
	goto	timlp1
	ret
