; ;(有)姫路ソフトワークス ROBOXERO コントロール ;メインプログラム ; Original ; デアゴスティーニ週刊ロボゼロ68号 F5.TXT ; ; File name: F05mXX.TXT ; Modify by Micono Utilities ; 2012/07/29 v01 File連結 ; 2012/08/01 v02 GYRO調整 ; 2012/08/05 v03 Wirelessリモコン ;------------ ;START WAIT ;------------ JUMPIF(V109,>=,100,MAINKEYWAITGYROON) ;IRのみ=100, VS-C1=200 ; :START V0=0 V1=0 V2=0 V3=0 V4=0 SOUND V109=100 ;--------------- ;START KEY WAIT ;--------------- V25=0-5120 V26=0-5099 V27=0-5078 ; :STARTKEYCHECK V130=0 :STARTKEYWAIT JUMPIF(V130,#,0,STARTKEYANZ) JUMPIF(V126,=,3,VSC1) JUMP(STARTKEYWAIT) ;-------------------- ; START KEY ANALYZE ;-------------------- :STARTKEYANZ JUMPIF(V130,=,V25,MODEAT) JUMPIF(V130,=,V26,MODEBT) JUMPIF(V130,=,V27,MODECT) CALL(ERRBEEP) JUMP(STARTKEYCHECK) ;--------------- ; VS-C1を用いる ;--------------- :VSC1 V109=200 ;赤外線はモードA ;--------------------- ; リモコンモード設定 ;--------------------- :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 ;---------------------------- :HOMESETPOWERON 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 ;ジャイロON :MAINKEYWAIT V130=0 :MAINKEYWAITLOOP V00=INPUTADC(1) JUMPIF(V00,<,105,BATTERYERRROR) JUMPIF(V130,#,0,MAINKEYANZ) JUMPIF(V109,=,200,WMAINKEYWAITLOOP) ;Vコン JUMP(MAINKEYWAITLOOP) ; ; START KEY ANALYZE 2 ; :MAINKEYANZ ; ; STANDARD KEY CHECK ; JUMPIF(V130,=,V26,FILE679ABC) JUMPIF(V130,=,V28,FILE679ABC) JUMPIF(V130,=,V30,FILE679ABC) JUMPIF(V130,=,V32,FILE679ABC) JUMPIF(V130,=,V31,FILE679ABC) JUMPIF(V130,=,V33,FILE679ABC) ; 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) ;------------------ ; VS-C1 Main Check ;------------------ :WMAINKEYWAITLOOP JUMPIF(V120,#,0,WMAINKEYANZ) JUMPIF(V121,#,0,WMAINKEYANZ) JUMPIF(V122,<,40,WMAINKEYANZ) JUMPIF(V122,>,87,WMAINKEYANZ) JUMPIF(V123,<,40,WMAINKEYANZ) JUMPIF(V123,>,87,WMAINKEYANZ) JUMPIF(V124,<,40,WMAINKEYANZ) JUMPIF(V124,>,87,WMAINKEYANZ) JUMPIF(V125,<,40,WMAINKEYANZ) JUMPIF(V125,>,87,WMAINKEYANZ) JUMPIF(V126,#,0,WMAINKEYANZ) JUMP(MAINKEYWAITLOOP) ; :WMAINKEYANZ ; Left analogue stick JUMPIF(V123,<,40,WFILE679ABC) JUMPIF(V123,>,87,WFILE679ABC) JUMPIF(V122,<,40,WFILE679ABC) JUMPIF(V122,>,87,WFILE679ABC) JUMPIF(V120,=,2,WFILE679ABC) JUMPIF(V120,=,8,WFILE679ABC) ; Left analogue stick JUMPIF(V125,<,40,GFILE679ABC) JUMPIF(V125,>,87,GFILE679ABC) JUMPIF(V124,<,40,GFILE679ABC) JUMPIF(V124,>,87,GFILE679ABC) JUMPIF(V120,=,4,GFILE679ABC) JUMPIF(V120,=,16,GFILE679ABC) ; JUMPIF(V120,=,1,WAKEUP) ; JUMPIF(V121,=,9,KEY123456789) JUMPIF(V121,=,1,KEY123456789) JUMPIF(V121,=,5,KEY123456789) JUMPIF(V121,=,8,KEY123456789) JUMPIF(V126,=,12,KEY123456789) JUMPIF(V121,=,4,KEY123456789) JUMPIF(V121,=,10,KEY123456789) JUMPIF(V121,=,12,KEY123456789) JUMPIF(V121,=,6,KEY123456789) ; ; FUNCTION KEY CHECK ; JUMPIF(V121,=,16,MODEA) ;JUMPIF(V121,=,64,WMODEB) ;JUMPIF(V121,=,32,WMODEC) ; JUMPIF(V126,=,3,EXIT) ; CALL(ERRBEEP) JUMP(MAINKEYWAIT) ;--------------- ;MODE A CHECK ;--------------- :MODEA CALL(OKBEEP) :MODEALOOP V130=0 :MODEAWAITLOOP JUMPIF(V130,#,0,MODEAANZ) JUMPIF(V109,=,200,WMODEA) 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 A - VS-C1 Main Check ;---------------------------- :WMODEA JUMPIF(V120,#,0,WMODEAANZ) JUMPIF(V121,#,0,WMODEAANZ) JUMPIF(V122,<,40,WMODEAANZ) JUMPIF(V122,>,87,WMODEAANZ) JUMPIF(V123,<,40,WMODEAANZ) JUMPIF(V123,>,87,WMODEAANZ) JUMPIF(V124,<,40,WMODEAANZ) JUMPIF(V124,>,87,WMODEAANZ) JUMPIF(V125,<,40,WMODEAANZ) JUMPIF(V125,>,87,WMODEAANZ) JUMPIF(V126,#,0,WMODEAANZ) JUMP(MODEAWAITLOOP) ; ; KEY CHECK ; :WMODEAANZ JUMPIF(V121,=,9,KEYA123456789) JUMPIF(V121,=,1,KEYA123456789) JUMPIF(V121,=,5,KEYA123456789) JUMPIF(V121,=,8,KEYA123456789) JUMPIF(V126,=,12,KEYA123456789) JUMPIF(V121,=,4,KEYA123456789) JUMPIF(V121,=,10,KEYA123456789) JUMPIF(V121,=,2,KEYA123456789) JUMPIF(V121,=,6,KEYA123456789) ; 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 ;=============== :FILE679ABC V05=V108 OR V107 JUMPIF(V05,#,0,MOTFILE679ABC) V00=6 FJUMP :MOTFILE679ABC V00=7 FJUMP ; :WFILE679ABC V05=V108 OR V107 JUMPIF(V05,#,0,WMOTFILE679ABC) V00=16 FJUMP :WMOTFILE679ABC V00=17 FJUMP ; :GFILE679ABC V00=18 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 ;---------- ; OK音 ;---------- :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