; ;(有)姫路ソフトワークス ROBOXERO コントロール ;メインプログラム ; Original ; デアゴスティーニ週刊ロボゼロ68号 F5.TXT ; Modify ; 2012/07/29 Micono Utilities F5m01.TXT ; 2012/08/01 Micono Utilities F5m02.TXT ; ;START WAIT JUMPIF(V126,=,100,MAINKEYWAITGYROON) ; :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) V46=10 V47=5 :GYROINIT CALL(GYROON) ; ; MAIN KEY WAIT ; :MAINKEYWAITGYROON (N389=1 :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,FILE6789AB) JUMPIF(V130,=,V28,FILE6789AB) JUMPIF(V130,=,V30,FILE6789AB) JUMPIF(V130,=,V32,FILE6789AB) JUMPIF(V130,=,V31,FILE6789AB) JUMPIF(V130,=,V33,FILE6789AB) ; JUMPIF(V130,=,V29,WAKEUP) ; JUMPIF(V130,=,V34,KEY123456789) JUMPIF(V130,=,V35,KEY123456789) JUMPIF(V130,=,V36,KEY123456789) JUMPIF(V130,=,V37,KEY123456789) JUMPIF(V130,=,V38,KEY123456789) JUMPIF(V130,=,V39,KEY123456789) JUMPIF(V130,=,V40,KEY123456789) JUMPIF(V130,=,V41,KEY123456789) JUMPIF(V130,=,V42,KEY123456789) ; ; FUNCTION KEY CHECK ; JUMPIF(V130,=,V43,MODEA) JUMPIF(V130,=,V44,MODEB) JUMPIF(V130,=,V45,MODEC) ; JUMPIF(V130,=,V25,EXIT) ; CALL(ERRBEEP) JUMP(MAINKEYWAIT) ; ;MODE A CHECK ; :MODEA CALL(OKBEEP) :MODEALOOP V130=0 :MODEAWAITLOOP JUMPIF(V130,#,0,MODEAANZ) JUMP(MODEAWAITLOOP) ; ; KEY CHECK ; :MODEAANZ JUMPIF(V130,=,V34,KEYA123456789) JUMPIF(V130,=,V35,KEYA123456789) JUMPIF(V130,=,V36,KEYA123456789) JUMPIF(V130,=,V37,KEYA123456789) JUMPIF(V130,=,V38,KEYA123456789) JUMPIF(V130,=,V39,KEYA123456789) JUMPIF(V130,=,V40,KEYA123456789) JUMPIF(V130,=,V41,KEYA123456789) JUMPIF(V130,=,V42,KEYA123456789) JUMPIF(V130,=,V43,MODEAA) JUMPIF(V130,=,V44,MODEAB) CALL(ERRBEEP) JUMP(MODEALOOP) ; ;MODE B 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) ; ;MODE C 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 AA CHECK ; :MODEAA CALL(OKBEEP) :MODEAALOOP V130=0 :MODEAAWAITLOOP JUMPIF(V130,#,0,MODEAAANZ) JUMP(MODEAAWAITLOOP) ; ; KEY CHECK ; :MODEAAANZ V46=V130-V33 JUMPIF(V46,<,1,MODEAAANZERR) JUMPIF(V46,>,9,MODEAAANZERR) V46=V46+5 CALL(OKBEEP) JUMP(GYROINIT) :MODEAAANZERR CALL(ERRBEEP) JUMP(MODEAALOOP) ; ;MODE AB CHECK ; :MODEAB CALL(OKBEEP) :MODEABLOOP V130=0 :MODEABWAITLOOP JUMPIF(V130,#,0,MODEABANZ) JUMP(MODEABWAITLOOP) ; ; KEY CHECK ; :MODEABANZ V47=V130-V33 JUMPIF(V47,<,1,MODEABANZERR) JUMPIF(V47,>,9,MODEABANZERR) CALL(OKBEEP) JUMP(GYROINIT) :MODEABANZERR CALL(ERRBEEP) JUMP(MODEABLOOP) ; ; 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 ; :FILE6789AB V05=V108 OR V107 JUMPIF(V05,#,0,MOTFILE6789AB) V00=6 FJUMP :MOTFILE6789AB V00=7 FJUMP ; :WAKEUP (N389=0 V00=8 FJUMP ; :KEY123456789 V00=9 FJUMP ; :KEYA123456789 V00=10 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 CALL(GYROOFF) 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) :GYROON (N389=0 (N393=74 (N394=74 (N396=0 (N398=0 (N397=V46 (N399=0-V46 (N401=0 (N403=0 (N402=V47 (N404=V47 ;(N389=1 RETURN :GYROOFF (N389=0 (N393=74 (N394=74 (N396=0 (N398=0 (N397=0 (N399=0 (N401=0 (N403=0 (N402=0 (N404=0 (N389=0 RETURN