;
;(L)PH\tg[NX@ROBOXERO@Rg[
;CvO v1.01 2012/11/28 r01
;
;START WAIT

JUMPIF(V126,=,100,MAINKEYWAIT)
;
:START
V0=0
V1=0
V2=0
V3=0
V4=0
SOUND
V126=100
;
;START KEY WAIT
;
V25=0-5120
V26=0-5099
V27=0-5078
;
:STARTKEYCHECK
V130=0
:STARTKEYWAIT
JUMPIF(V130,#,0,STARTKEYANZ)
JUMP(STARTKEYWAIT)
;
;	START KEY ANALYZE
;
:STARTKEYANZ
JUMPIF(V130,=,V25,MODEAT)
JUMPIF(V130,=,V26,MODEBT)
JUMPIF(V130,=,V27,MODECT)
CALL(ERRBEEP)
JUMP(STARTKEYCHECK)
;
:MODEAT
V25=0-5120
JUMP(KEYDATASET)

:MODEBT
V25=0-5099
JUMP(KEYDATASET)

:MODECT
V25=0-5078
JUMP(KEYDATASET)

;
;	KEYDATA SET
;
:KEYDATASET
V00=21
V01=25
V02=26
:KEYDATASETLOOP
(V02=(V01 + 1
V01=V01 + 1
V02=V02 + 1
V00=V00 - 1
JUMPIF(V00,>,0,KEYDATASETLOOP)
;
;	HOME SET&POWER ON
;
;
;READ FROM file63- sector64 
;
V00=1
V01=63
V02=64
V03=0
SDREAD
V00=24
V01=133
V02=457
:HSETLOOP
(V02 = (V01
V01=V01+1
V02=V02+1
V00=V00-1
JUMPIF(V00,>,0,HSETLOOP)
HOMEPOS
WAIT(200)
V00=200
MOTORSPEED
V00=1
V01=1
V02=1
V03=1
V04=1
V05=1
V06=1
V07=1
V08=1
V09=1
V10=1
V11=1
V12=1
V13=1
V14=1
V15=1
V16=1
V17=1
V18=1
V19=1
V20=1
V21=1
V22=1
V23=1
POWER
WAIT(200)
WAIT(200)
WAIT(200)
V00=0
MOTORSPEED
WAIT(50)
CALL(OKBEEP)
CALL(OKBEEP)
CALL(OKBEEP)
;
Move(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1300)
;
;
;	MAIN KEY WAIT
;
:MAINKEYWAIT
V130=0
:MAINKEYWAITLOOP
V00=INPUTADC(1)
JUMPIF(V00,<,105,BATTERYERRROR)
JUMPIF(V130,#,0,MAINKEYANZ)
JUMP(MAINKEYWAITLOOP)
;
;	START KEY ANALYZE 2
;
:MAINKEYANZ
;
; STANDARD KEY CHECK
;
JUMPIF(V130,=,V26,FWD)
JUMPIF(V130,=,V28,LTURN)
JUMPIF(V130,=,V30,RTURN)
JUMPIF(V130,=,V32,BACK)
JUMPIF(V130,=,V31,LSTEP)
JUMPIF(V130,=,V33,RSTEP)
;
JUMPIF(V130,=,V29,WAKEUP)
;
JUMPIF(V130,=,V34,KEY1)
JUMPIF(V130,=,V35,KEY2)
JUMPIF(V130,=,V36,KEY3)
JUMPIF(V130,=,V37,KEY4)
JUMPIF(V130,=,V38,KEY5)
JUMPIF(V130,=,V39,KEY6)
JUMPIF(V130,=,V40,KEY7)
JUMPIF(V130,=,V41,KEY8)
JUMPIF(V130,=,V42,KEY9)
;
; FUNCTION KEY CHECK
;
JUMPIF(V130,=,V43,MODEA)
JUMPIF(V130,=,V44,MODEB)
JUMPIF(V130,=,V45,MODEC)
;
JUMPIF(V130,=,V25,EXIT)
;
CALL(ERRBEEP)
JUMP(MAINKEYWAIT)
;
;MODEA CHECK
;
:MODEA
CALL(OKBEEP)
:MODEALOOP
V130=0
:MODEAWAITLOOP
JUMPIF(V130,#,0,MODEAANZ)
JUMP(MODEAWAITLOOP)
;
; KEY CHECK
;
:MODEAANZ
JUMPIF(V130,=,V31,KEYA0)
V01=0
JUMPIF(V130,=,V34,KEYA1)
JUMPIF(V130,=,V35,KEYA2)
JUMPIF(V130,=,V36,KEYA3)
JUMPIF(V130,=,V37,KEYA4)
JUMPIF(V130,=,V38,KEYA5)
JUMPIF(V130,=,V39,KEYA6)
JUMPIF(V130,=,V40,KEYA7)
JUMPIF(V130,=,V41,KEYA8)
JUMPIF(V130,=,V42,KEYA9)
CALL(ERRBEEP)
JUMP(MODEALOOP)
;
; OPTIN EXTEND
;
:KEYA0
CALL(OKBEEP)
:MODEA0LOOP
V130=0
:MODEA0WAITLOOP
JUMPIF(V130,#,0,MODEA0ANZ)
JUMP(MODEA0WAITLOOP)
;
; KEY CHECK
;
:MODEA0ANZ
JUMPIF(V130,=,V34,KEYA01)
JUMPIF(V130,=,V35,KEYA02)
JUMPIF(V130,=,V36,KEYA03)
JUMPIF(V130,=,V37,KEYA04)
JUMPIF(V130,=,V38,KEYA05)
JUMPIF(V130,=,V39,KEYA06)
JUMPIF(V130,=,V40,KEYA07)
JUMPIF(V130,=,V41,KEYA08)
JUMPIF(V130,=,V42,KEYA09)
CALL(ERRBEEP)
JUMP(MODEA0ANZ)


:KEYA01
(N389 = 0
(N393 = 74
(N394 = 74
(N396 = 0-8
(N398 = 8
(N397 = 8
(N399 = 0-8
(N401 = 0
(N403 = 0
(N402 = 0-10
(N404 = 0-10
(N389 = 1
CALL(OKBEEP)
JUMP(MAINKEYWAIT)

:KEYA02
(N389 = 0
(N393 = 74
(N394 = 74
(N396 = 0
(N398 = 0
(N397 = 0
(N399 = 0
(N401 = 0
(N403 = 0
(N402 = 0
(N404 = 0
(N389 = 0
CALL(OKBEEP)
JUMP(MAINKEYWAIT)

:KEYA03
V01=1
V00=15
FJUMP

:KEYA04
V01=1
V00=16
FJUMP

:KEYA05
V01=1
V00=17
FJUMP

:KEYA06
V01=1
V00=18
FJUMP

:KEYA07
V01=1
V00=19
FJUMP

:KEYA08
V01=1
V00=20
FJUMP

:KEYA09
V01=1
V00=21
FJUMP

CALL(ERRBEEP)
JUMP(MAINKEYWAIT)




;
;MODEB CHECK
;
:MODEB
CALL(OKBEEP)
:MODEBLOOP
V130=0
:MODEBWAITLOOP
JUMPIF(V130,#,0,MODEBANZ)
JUMP(MODEBWAITLOOP)
;
; KEY CHECK
;
:MODEBANZ
JUMPIF(V130,=,V34,KEYB1)
JUMPIF(V130,=,V35,KEYB2)
JUMPIF(V130,=,V36,KEYB3)
JUMPIF(V130,=,V37,KEYB4)
JUMPIF(V130,=,V38,KEYB5)
JUMPIF(V130,=,V39,KEYB6)
JUMPIF(V130,=,V40,KEYB7)
JUMPIF(V130,=,V41,KEYB8)
JUMPIF(V130,=,V42,KEYB9)
CALL(ERRBEEP)
JUMP(MODEBLOOP)
;
;MODEC CHECK
;
:MODEC
CALL(OKBEEP)
:MODECLOOP
V130=0
:MODECWAITLOOP
JUMPIF(V130,#,0,MODECANZ)
JUMP(MODECWAITLOOP)
;
; KEY CHECK
;
:MODECANZ
JUMPIF(V130,=,V34,KEYCU1)
JUMPIF(V130,=,V35,KEYCU2)
JUMPIF(V130,=,V36,KEYCU3)
CALL(ERRBEEP)
JUMP(MODECLOOP)
;
;	MODE-C1x
;
:KEYCU1
CALL(OKBEEP)
:MODEC1ULOOP
V130=0
:MODEC1UWAITLOOP
JUMPIF(V130,#,0,MODEC1UANZ)
JUMP(MODEC1UWAITLOOP)
;
; KEY CHECK
;
:MODEC1UANZ
JUMPIF(V130,=,V34,KEYC11)
JUMPIF(V130,=,V35,KEYC12)
JUMPIF(V130,=,V36,KEYC13)
JUMPIF(V130,=,V37,KEYC14)
JUMPIF(V130,=,V38,KEYC15)
JUMPIF(V130,=,V39,KEYC16)
JUMPIF(V130,=,V40,KEYC17)
JUMPIF(V130,=,V41,KEYC18)
JUMPIF(V130,=,V42,KEYC19)
CALL(ERRBEEP)
JUMP(MODEC1ULOOP)
;
;	MODE-C2x
;
:KEYCU2
CALL(OKBEEP)
:MODEC2ULOOP
V130=0
:MODEC2UWAITLOOP
JUMPIF(V130,#,0,MODEC2UANZ)
JUMP(MODEC2UWAITLOOP)
;
; KEY CHECK
;
:MODEC2UANZ
JUMPIF(V130,=,V34,KEYC21)
JUMPIF(V130,=,V35,KEYC22)
JUMPIF(V130,=,V36,KEYC23)
JUMPIF(V130,=,V37,KEYC24)
JUMPIF(V130,=,V38,KEYC25)
JUMPIF(V130,=,V39,KEYC26)
JUMPIF(V130,=,V40,KEYC27)
JUMPIF(V130,=,V41,KEYC28)
JUMPIF(V130,=,V42,KEYC29)
CALL(ERRBEEP)
JUMP(MODEC2ULOOP)
;
;	MODE-C3x
;
:KEYCU3
CALL(OKBEEP)
:MODEC3ULOOP
V130=0
:MODEC3UWAITLOOP
JUMPIF(V130,#,0,MODEC3UANZ)
JUMP(MODEC3UWAITLOOP)
;
; KEY CHECK
;
:MODEC3UANZ
JUMPIF(V130,=,V34,KEYC31)
JUMPIF(V130,=,V35,KEYC32)
JUMPIF(V130,=,V36,KEYC33)
JUMPIF(V130,=,V37,KEYC34)
CALL(ERRBEEP)
JUMP(MODEC3ULOOP)

;
;	EXECUTE
;
:FWD
V00=6
FJUMP
:LTURN
V00=7
FJUMP
:RTURN
V00=9
FJUMP
:BACK
V00=11
FJUMP
;
:LSTEP
V00=10
FJUMP
:RSTEP
V00=12
FJUMP
;
:WAKEUP
V00=8
FJUMP
;
:KEY1
V00=13
FJUMP
:KEY2
V00=14
FJUMP
:KEY3
V01=0
V00=15
FJUMP
:KEY4
V01=0
V00=16
FJUMP
:KEY5
V01=0
V00=17
FJUMP
:KEY6
V01=0
V00=18
FJUMP
:KEY7
V01=0
V00=19
FJUMP
:KEY8
V01=0
V00=20
FJUMP
:KEY9
V01=0
V00=21
FJUMP
;
:KEYA1
V00=22
FJUMP
:KEYA2
V00=23
FJUMP
:KEYA3
V00=24
FJUMP
:KEYA4
V00=25
FJUMP
:KEYA5
V00=26
FJUMP
:KEYA6
V00=27
FJUMP
:KEYA7
V00=28
FJUMP
:KEYA8
V00=29
FJUMP
:KEYA9
V00=30
FJUMP
;
:KEYB1
V00=31
FJUMP
:KEYB2
V00=32
FJUMP
:KEYB3
V00=33
FJUMP
:KEYB4
V00=34
FJUMP
:KEYB5
V00=35
FJUMP
:KEYB6
V00=36
FJUMP
:KEYB7
V00=37
FJUMP
:KEYB8
V00=38
FJUMP
:KEYB9
V00=39
FJUMP
;
:KEYC11
V00=40
FJUMP
:KEYC12
V00=41
FJUMP
:KEYC13
V00=42
FJUMP
:KEYC14
V00=43
FJUMP
:KEYC15
V00=44
FJUMP
:KEYC16
V00=45
FJUMP
:KEYC17
V00=46
FJUMP
:KEYC18
V00=47
FJUMP
:KEYC19
V00=48
FJUMP
;
:KEYC21
V00=49
FJUMP
:KEYC22
V00=50
FJUMP
:KEYC23
V00=51
FJUMP
:KEYC24
V00=52
FJUMP
:KEYC25
V00=53
FJUMP
:KEYC26
V00=54
FJUMP
:KEYC27
V00=55
FJUMP
:KEYC28
V00=56
FJUMP
:KEYC29
V00=57
FJUMP
;
:KEYC31
V00=58
FJUMP
:KEYC32
V00=59
FJUMP
:KEYC33
V00=60
FJUMP
:KEYC34
V00=61
FJUMP
;
:OKBEEP
V00=62
V01=192
V02=0
V03=20
V04=0
SOUND
WAIT(100)
RETURN

:ERRBEEP
V00=62
V01=213
V02=0
V03=20
V04=0
SOUND
RETURN

:BATTERYERRROR
V00=62
V01=42
V02=0
V03=53
V04=0
SOUND
WAIT(200)
WAIT(200)
WAIT(200)
SOUND
WAIT(200)
WAIT(200)
WAIT(200)
SOUND
WAIT(200)
WAIT(200)
WAIT(200)


:EXIT
Move(128,-226,2,333,1,141,-9,768,589,-1000,-36,-1095,1065,92,979,-623,-818,97,13,-1,-385,-17,217,-166,3000)
WAIT(200)
V00=0
V01=0
V02=0
V03=0
V04=0
V05=0
V06=0
V07=0
V08=0
V09=0
V10=0
V11=0
V12=0
V13=0
V14=0
V15=0
V16=0
V17=0
V18=0
V19=0
V20=0
V21=0
V22=0
V23=0
POWER
V99=0
JUMP(START)

