ダイレクトモード専用(プログラム内記述不可) 制御 CLEAR, NEW、RUN、CONT 編集 LIST、LIST ERR プロジェクト PROJECT デバッグ支援 CLEAR 書式 BACKTRACE 変数名やBASIC内部のメモリーを初期化 CLEAR 引数 なし 戻り なし サンプル NEW 書式 引数 CLEAR プログラムを消す NEW [ プログラムSLOT ] プログラムSLOT 戻り LIST EDITモードへの切り替えと編集開始 書式 LIST [ [プログラムSLOT:]行番号 ] 引数 プログラムSLOT 戻り なし 行番号 サンプル LIST ERR 書式 LIST ERR ERR なし サンプル 引数 LIST ERR プログラムの実行 RUN [ プログラムSLOT ] プログラムSLOT 戻り CONT 書式 STOP命令で停止中のプ BREAKキー、STOP命令もしくはエラーで停止した位置から実行を再開する。一度編集を行った時点で再開不可能となる。またエラー ログラムを再開 種類によっても再開不可能となる場合がある。 CONT なし 戻り 書式 なし カレントプロジェクトを切り替える PROJECT "プロジェクト名" 引数 BACKTRACE 書式 0∼3(省略時はSLOT0を実行) なし 引数 PROJECT ソースが表示される行の指定 EDITモードへの切り替え(直前のエラー発生行指定) 戻り 書式 ソース表示対象となるプログラムSLOTの指定(0∼3) LIST 0:230 引数 RUN 0∼3、引数がある場合指定SLOTのみを消去、省略時全SLOTを消去 なし プロジェクト名 直前の呼び出し元履歴表 示 ""の指定で、デフォルトプロジェクト(DEFAULT)を指定したことになる。 ・STOP命令等で止めた際に直前までの呼び出し履歴を表示する ・「スロット番号 行番号」のリストが表示される BACKTRACE 引数 なし 戻り なし 基本命令 変数と配列 変数 =、DIM、VAR、INC、DEC、SWAP、CHKVAR() COPY、SORT、RSORT 配列 = PUSH、POP()、UNSHIFT、SHIFT() 代入( LET 命令自体を省略 ) 書式 引数 戻り サンプル 変数名=数値 なし なし ABC=123 TEXT$="ABCDE" 配列宣言(括弧は[]のみ利用可能、配列利用時の添え字は0から) DIM 書式 引数 戻り サンプル DIM 配列名[ 要素数 [,要素数2 [,要素数3 [,要素数4]]] ] DIM 変数名[, 変数名]… 配列名 配列に対する名前 変数名 宣言する変数名 要素数 なし 最大4次元までの要素数(最初の[]は配列用記号のため省略できない) DIM DIM DIM DIM ATR$[ 4 ] POS[ 10, 5 ] TRI[ 3,3,3 ] VEC[ 4,4,4,4 ] 変数の定義(変数の明示的な宣言、STRICTモード時は宣言なし変数はエラー) VAR 書式 引数 VAR 配列名[ 要素数 [,要素数2 [,要素数3 [,要素数4]]] ] VAR 変数名[, 変数名]… 配列名 配列に対する名前 変数名 宣言する変数名 要素数 戻り なし サンプル CHKVAR() 書式 引数 戻り VAR VAR VAR VAR 書式 引数 数値=CHKVAR( "変数名文字列" ) 変数名文字列 状態 引数 INC 変数 [, 式 ] 引数 変数の値を-1する DEC 変数 [, 式 ] 引数 戻り 二つの変数内の数値を入れ替える SWAP 変数1, 変数2 変数1 変数2 なし 書式 引数 COPY コピー先配列変数 [, コピー先オフセット], コピー元配列変数 [[, コピー元オフセット] , コピー要素数] コピー元配列 コピー先配列 なし COPY コピー先配列変数 [, コピー先オフセット], "@ラベル文字列" [, コピーデータ数] コピー先配列 配列を昇順で並び替える SORT [開始位置, 要素数,] 配列1 [ ,配列2 ,...] 開始位置 要素数 配列2 なし サンプル 引数 戻り サンプル ソートする数値の入った配列 配列1のソート結果に従いソートされる配列 ※以下同じ。合計8配列まで RSORT [開始位置, 要素数,] 配列1 [ ,配列2 ,...] 開始位置 要素数 配列2 なし サンプル 引数 配列1内のソートする要素数(1∼、-1=開始位置以降全て) 配列を降順で並び替える 戻り 書式 配列1内のソートを開始する位置(0∼ SORT 0,10,WORK 配列1 PUSH DATA文のラベル文字列 COPY SRC,"@TDATA" 戻り 書式 DATA文からの読み込みデータで上書きされる配列 なし 配列1 RSORT コピー元配列の内容で上書きされる配列 DATA列を配列へコピー サンプル 引数 元になる配列 COPY SRC,DST 戻り 書式 数値または文字列変数 配列を配列にコピー @ラベル文字列 SORT 数値または文字列変数 SWAP A,B サンプル COPY -2- 減算する値 DEC A,100 サンプル 書式 式 なし 戻り COPY -1- 加算する値 INC A,1+5*3 サンプル 書式 式 なし 戻り SWAP TRUE=存在する、FALSE=存在しない 変数の値を+1する サンプル 書式 調査したい変数名 A=CHKVAR("MODE") 戻り DEC A TX$ X,Y BOX[ 4,4 ] 変数の存在確認 サンプル INC 最大4次元までの要素数(最初の[]は配列用記号のため省略できない) 配列1内のソートを開始する位置(0∼ 配列1内のソートする要素数(1∼、-1=開始位置以降全て) ソートする数値の入った配列 配列1のソート結果に従いソートされる配列 ※以下同じ。合計8配列まで RSORT 0,10,WORK 配列の末尾に要素を追加(要素数1つ増加) PUSH 配列, 式 配列 式 なし 要素を追加される配列 追加する要素 PUSH TX$,"ABC" POP() 書式 引数 配列の末尾から要素を取り出す(要素数1つ減少) 変数=POP( 配列 ) 戻り 変数 サンプル UNSHIFT 書式 引数 引数 取り出した要素の値 配列の先頭に要素を追加(要素数1つ増加) UNSHIFT 配列, 式 配列 式 なし サンプル 書式 要素を取り出される配列 S$=POP(TX$) 戻り SHIFT() 配列 要素を追加される配列 追加する要素 UNSHIFT WORK,123 配列の先頭から要素を取り出す(要素数1つ減少) 変数=SHIFT( 配列 ) 配列 戻り 変数 サンプル 要素を取り出される配列 取り出した要素の内容 A=SHIFT( WORK ) 基本命令 制御 制御 @、GOTO、END、STOP、CHKLABEL() サブルーチン GOSUB、RETURN 条件分岐 IF∼THEN∼ELSE∼ENDIF、 ループ FOR∼TO∼STEP∼NEXT、WHILE∼WEND、 ON∼GOTO、ON∼GOSUB、IF∼GOTO REPEAT∼UNTIL、BREAK、CONTINUE @ 書式 行に対するブックマーク(必ず行頭で利用する) @ラベル名 引数 ラベル名 戻り なし サンプル 文字列とは異なり""で囲む必要はない ラベル文字列として引数を渡すときは""で囲むか、文字列変数に代入 @MAINLOOP CHKLABEL() ラベルの存在確認 書式 数値=CHKLABEL( "@ラベル名文字列" ) 引数 ラベル名文字列 戻り 状態 サンプル 調査したいラベル名 CHKLABEL( "1:@ラベル文字列" ) の形式で他のSLOTも指定可 ※あらかじめ USE 1 等でSLOTを実行可能にしておく必要あり TRUE=存在する、FALSE=存在しない A=CHKLABEL("@SUB") 強制分岐 GOTO 書式 GOTO @ラベル GOTO "@ラベル文字列" 引数 @ラベル @ラベル文字列 戻り ラベル名の文字列(@で始まるラベル名文字列) GOTO "1:@ラベル文字列"の形式で、ジャンプ先のSLOTを指定可 なし サンプル GOTO @MAINLOOP サブルーチン呼び出し GOSUB 書式 GOSUB @ラベル GOSUB "@ラベル文字列" 引数 @ラベル @ラベル文字列 戻り @で始まるラベル文字列 ラベル名の文字列(@で始まるラベル名文字列) GOSUB "1:@ラベル文字列"の形式で、呼び出し先のSLOTを指定可 なし サンプル RETURN -1- @で始まるラベル文字列 GOSUB @SUB サブルーチンからの復帰 書式 RETURN 引数 なし 戻り なし サンプル RETURN 備考 ユーザー定義関数から値を返すRETURN命令もある。 数値内容によって分岐 ON∼ GOTO (ラベルに文字列変数は 書式 引数 戻り サンプル 使えない) ラベルにラベル文字列は使えない) ON 変数 GOTO 変数=0の時の@ラベル, @ラベル1, @ラベル2... なし なし ON MD GOTO @MD0,@MD1,@MD2 ON∼ GOSUB 数値内容によってサブル ーチン呼び出し 書式 引数 ON 変数 GOSUB 変数=0の時の@ラベル, @ラベル1, @ラベル2... なし 戻り なし サンプル IF∼ THEN ELSE ENDIF ON MD GOSUB @MD0,@MD1,@MD2 条件判断 書式 引数 複数行には対応。ラベルにラベル文字列は使えない。 IF 条件式 THEN 成立時処理 [ELSE 不成立時処理] [ENDIF] なし 戻り なし サンプル 1 2 3 4 5 備考 IF∼ GOTO 引数 複数行に対応。 IF 条件式 GOTO @ラベル [ELSE 不成立時処理] IF 条件式 GOTO "@ラベル文字列" [ELSE 不成立時処理] なし なし サンプル 1 2 3 IF A==B GOTO @OK ELSE @NG 不成立時処理のGOTOは省略し、@ラベルのみの記述で可(サンプル3)。ただし、GOTOを省略する場合、ラベル文字列は使えない。 書式 FOR 変数=初期値 TO 終了値 [ STEP 増加量 ] なし 戻り なし FOR I=0 TO 9 STEP 2 IF I==1 THEN CONTINUE IF I==7 THEN BREAK PRINT I;","; NEXT サンプル 書式 引数 FOR の終わり NEXT [ 変数名 ] 戻り 書式 引数 なし なし サンプル 変数名を付けてもよいが、常に無視されている ※FORのサンプルを参照 条件成立時ループ WHILE 条件式 戻り 条件式 なし 成立している間繰り返す A=0:B=4 WHILE A<B IF A<0 THEN BREAK A=A+1 WEND サンプル WEND IF A==B GOTO @OK ELSE PRINT"FALSE" 指定回数の繰り返し 引数 WHILE IF A==B GOTO @SKIP 不成立時処理には、複数の命令をマルチステートメントで記述可。 備考 NEXT IF A==B THEN @OK ELSE @NG IF A==B THEN PRINT"TRUE" ELSE PRINT"FALSE" ENDIF 成立時・不成立時処理には、複数の命令をマルチステートメントで記述可。 成立時・不成立時処理が複数にわたるときは、ENDIFを使用。このときELSEは独立行に記述(サンプル5)。 戻り FOR∼ TO∼ STEP IF A==B THEN PRINT"TRUE" IF A==B THEN PRINT"TRUE" ELSE PRINT"FALSE" IF A==B THEN @SKIP 成立時・不成立時処理のGOTOは省略し、@ラベルのみの記述で可(サンプル3,4)。 条件分岐 書式 (ラベルにラベル文字列は使えない) WHILEの終わり 書式 WEND 引数 なし 戻り なし サンプル REPEAT 書式 引数 戻り サンプル ※WHILEのサンプルを参照 条件不成立時ループ 先に処理を実行してから条件を判断する REPEAT なし なし A=0:B=4 REPEAT A=A+1 UNTIL A>B UNTIL REPEATの終わり 書式 引数 UNTIL 条件式 戻り 条件式 なし サンプル CONTINUE 書式 ※REPEATのサンプルを参照 ループを強制的に次に進める(FOR、WHILE、REPEAT用) CONTINUE 引数 なし 戻り なし サンプル BREAK 書式 ※FORのサンプルを参照 ループから強制的に抜ける(FOR、WHILE、REPEAT用) BREAK 引数 なし 戻り なし サンプル END -1- 書式 ※FORのサンプルを参照 プログラム/ユーザー定義ステートメントの終了 END 引数 なし 戻り なし サンプル STOP 書式 成立していない間繰り返す END 実行中のプログラムを強制的に停止してコンソールへ戻る STOP 引数 なし 戻り なし サンプル STOP 基本命令 高度な制御 ユーザー定義命令・関数 命令・関数の呼び出し 内部情報のON/OFF DEF、COMMON DEF、END、RETURN CALL、CALL()、CHKCALL() XON、XOFF DEFで始まり、ENDまでの間が定義範囲となる。 ユーザー定義関数の場合、関数名のサフィックスにより返値の型が決定される。 ユーザー定義関数/命令 DEF ユーザー定義ステートメント(命令)の場合、ステートメント名にサフィックスはつけられない。 関数およびユーザーステートメント内で定義された変数はローカル変数として扱われる。再帰呼び出し、前方参照も可能(仮宣言は いらない)。ラベルのスコープはDEF境界(DEF∼ENDまでの区間)で別れる。DEF内と外で同じ名前のラベルがあっても構わない。ま たDEF境界をまたがるGOTO/GOSUBはできない。 書式 関数およびユーザー定義ステートメント内部では、GOSUBやON GOSUBは使用できない。 DEF FOO X, Y, Z :'ステートメント(命令)の定義 DEF FOO X, Y OUT Z,W :'値を返すステートメント(命令)の定義 DEF FOO(X, Y, Z) 戻り なし サンプル ステートメント定義 値を返すステートメント 定義 関数定義 :'関数の定義 DEF FOO X,Y :'ステートメント定義開始 PRINT "X=";X;" Y=";Y END FOO 3,2:' "X=3 Y=2"と表示される DEF BAR(X,Y) :'関数定義 RETURN X+Y END PRINT BAR(3,3) :'"6"と表示される DEF FACTORIAL(N) :'よくある再帰 IF N==1 THEN RETURN 1 ELSE RETURN N * FACTORIAL(N-1) ENDIF END DEF REVERSE$(ARG$):'関数名のサフィックスで返り値の型を指定 VAR A$:'A$はローカル変数。外部のA$とは違う変数。 サフィックスで返り値を 指定 COMMON DEF L=LEN(ARG$):'グローバル変数にLがない場合はローカル変数になる。注意! FOR I=0 TO L-1 A$=A$+MID$(ARG$,L-1-I,1) NEXT RETURN A$ END A$="ABCDEFG":'グローバル変数。REVERSE$内のA$とは違う PRINT REVERSE$(A$): 'GFEDCBA PRINT L:'REVERSE$内で代入したLはグローバル変数なので見えてしまう! プログラムSLOTを超えて利用可能なユーザー定義関数/命令 書式 戻り COMMON DEF FOO X, Y, Z :'ステートメント(命令)の定義 COMMON DEF FOO X, Y OUT Z, W :'値を返すステートメント(命令)の定義 COMMON DEF FOO(X, Y, Z) :'関数の定義 なし END -2- 書式 ユーザー定義ステートメントの終了 END DEF∼ENDまでがひとつのユーザー定義命令/関数となる 引数 なし 戻り なし サンプル RETURN -2- END ユーザー定義関数から値を返す 書式 引数 RETURN 戻値 戻値 サンプル RETURN X*1.08 備考 CALL -1- 書式 引数 サブルーチンから復帰するRETURN命令もある 指定文字列の名称を持つユーザー定義命令を呼び出す CALL "命令名" [,引数…] [OUT 変数1 [,変数2…] 命令名 引数 OUT 変数 戻り CALL() -2- なし 書式 指定した命令に必要な引数 値を返すユーザー定義命令の場合、戻り値が入る変数 変数=CALL("関数名" [,引数…]]) 関数名 引数 戻り CHKCALL() 書式 引数 関数による 引数 命令名文字列 状態 調査したい命令名 TRUE=存在する、FALSE=存在しない 特殊機能の利用宣言 XON 機能名 機能名 EXPAD MIC 戻り 引数 戻り値がある関数の場合、RETURN命令で返された値 A=CHKCALL(”USERFUNC") MOTION 書式 指定した関数に必要な引数 数値=CHKCALL( "命令名文字列" ) サンプル 書式 :'ユーザー定義関数の呼び出し 文字列 ※""でくくるか、文字列変数 命令の存在確認 戻り XOFF :'ユーザー定義命令の呼び出し 文字列 ※""でくくるか、文字列変数 指定文字列の名称を持つ命令(ステートメント)や関数を呼び出す 引数 XON ユーザー定義関数の関数名の型と一致させる ジャイロセンサー、加速度センサー ジャイロの起動処理のため約0.2秒処理が停止する。 拡張スライドパッド マイク XON MICから1秒間、または蓋開け後1秒間は、サンプリングしても無音となる なし 特殊機能の利用中止 XOFF 機能名 機能名 MOTION EXPAD MIC 戻り ジャイロセンサー、加速度センサー 拡張スライドパッド マイク XOFF MICの時点でサンプリングを行っていた場合、自動的にサンプリングが停止する なし 基本命令 データ操作 データ操作命令 READ READ、DATA、RESTORE DATAの情報を読み込む 書式 引数 戻り DATA READ READ READ READ 取得変数1 [, 取得変数2 ... ] A B$ X,Y,Z,G$ 取得変数... DATA から読み込む情報を格納する変数。複数指定可能。 なし READで読み込むデータの定義 書式 引数 戻り RESTORE 書式 DATA 数値, 数値, ... DATA “文字列”, “文字列”, ... DATA 123,345,56,”SAMPLE” 情報 数値や文字列を ',' で区切って並べる なし READが読み込むDATAの位置を変更する RESTORE @ラベル RESTORE "@ラベル文字列" @で始まるラベル名、またはラベル文字列 引数 @ラベル 戻り なし RESTORE "1:@ラベル文字列" の形式で他のSLOTも指定可 ※あらかじめ USE 1 等でSLOTを実行可能にしておく必要あり その他 環境設定 OPTION 同期 WAIT、VSYNC コメント REM、' ファンクションキー 日時 KEY TMREAD、DTREAD ダイアログ OPTION DIALOG 書式 引数 インタプリタの設定変更 OPTION 機能名 機能名 STRICT DEFINT TOOL 戻り なし サンプル WAIT 書式 WAIT [フレーム数] フレーム数 なし サンプル 画面更新周期との同期 VSYNC [フレーム数] フレーム数 戻り なし サンプル 書式 引数 戻り サンプル KEY 書式 引数 戻り サンプル TMREAD 書式 引数 注釈、コメント、この記号以降改行までは無視される ' なし なし ' comment text REM コノサキハコメントデス ファンクションキーに文字列を割り当てる KEY 番号, “文字列” 番号 文字列 なし 書式 引数 TMREAD [“時間文字列”] OUT H,M,S 時間文字列 なし 日付文字列 DW 書式 引数 戻り サンプル 分を受け取る変数 秒を受け取る変数 DTREAD [“日付文字列”] OUT Y, M, D, [,DW] D DIALOG 省略すると現在時刻を取得 時間を受け取る変数(0∼23) 日付文字列を数値に変換 M サンプル HH:MM:SS 形式の時間文字列 TMREAD "12:34:59" OUT H,M,S Y 戻り 割り当てる文字列(表示範囲以上の定義が可能) 時間文字列を数値に変換 S DTREAD ファンクションキーの番号(1∼5) KEY 4,"LIST"+CHR$(13) M サンプル 直前のVSYNC()からの経過フレーム数を指定(0=無視、省略時=1) VSYNC 1 H 戻り 現在からの経過フレーム数を指定(0=無視、省略時=1) WAIT 60 引数 ’ ツールプログラムである事を宣言する。 指定回数分の垂直同期が来るまでプログラムを停止 戻り 書式 変数で型サフィックスがない場合のデフォルト型を整数型に変更する OPTION STRICT 引数 VSYNC インタプリタ動作をStrictモードに変更する。Strictモードでは、変数の暗黙作成がエラーとなる なし YYYY/MM/DD 形式の時間文字列 省略すると現在の日付を取得 年を受け取る変数 月を受け取る変数 日を受け取る変数 曜日を受け取る変数(0:日曜日∼6:土曜日) DTREAD "2014/12/24" OUT Y,M,D ダイアログを表示する DIALOG "テキスト文字列" テキスト文字列 なし ダイアログの中に表示する文字列 DIALOG "おはようございます" DIALOG() 書式 引数 ダイアログを表示してボタン情報を得る 変数 = DIALOG( "テキスト文字列",[選択タイプ番号],[キャプション文字列],[タイムアウト時間] ) テキスト文字列 ダイアログの中に表示する文字列 0:了解(デフォルト) 1:いいえ/はい 2:戻る/次へ 選択タイプ番号 3:中止/決定 4:中止/実行 5:次へ -1:(特殊モード) キャプション文字列 タイムアウト時間 戻り なし サンプル キャプション部分に表示される文字列 操作がないときにダイアログを自動的に閉じるまでの秒数(デフォルト:0=タイムアウトしない) V=DIALOG( "おはようございます",0,"かくにん", 30 ) コンソール制御系 コンソール描画 CLS、PRINT、COLOR コンソール制御 LOCATE、ATTR、SCROLL コンソール入力 CHKCHR()、INPUT、LINPUT、INKEY$() フォント定義 CLS 書式 FONTDEF コンソール画面を消去 CLS 引数 なし 戻り COLOR 書式 引数 なし コンソールに表示する文字の色指定 COLOR 描画色 [,背景色] 描画色 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 背景色 戻り LOCATE 書式 なし 座標X,Y 戻り なし 引数 座標Z 暗い赤 赤 暗い緑 緑 暗い黄色 黄色 紺色 青 暗いマゼンタ マゼンタ 暗いシアン シアン 灰色 白 色番号 文字単位の座標(X:0∼49、Y:0∼29) 奥行方向の座標(奥:1024∼液晶面:0∼手前:-256) LOCATE 20,10,1024:PRINT "BACK" コンソールへの文字表示 PRINTは?で代用可能 PRINT [式 [;または, 式... ]] 式 ; , 戻り なし サンプル ATTR 黒 LOCATE [座標X],[座標Y] [,座標Z] 引数 書式 透明色 コンソール上の文字表示位置を指定 サンプル PRINT システムに用意されている色番号 変数や文字列変数と四則演算等を組み合わせたもの 区切り文字(複数の要素を続けて表示する場合に利用) 区切り文字(複数の要素をTABSTEP単位で補正しながら表示) PRINT PRINT PRINT PRINT PRINT A,B,C,D “ABC”;"XYZ" S$ A;"=";TX$;”(NICE!)” “SCORE:”,FLOOR(SC/100),TX$ PRINT命令で表示する文字の回転・反転属性を設定する 書式 引数 ATTR 表示属性 表示属性 bit0∼1 回転 0:0度、1:90度、2:180度、3:270度(時計回り) bit2 横反転 bit3 縦反転 SCROLL 書式 引数 コンソール全体の表示位置調整 ※視点の位置が移動するイメージ SCROLL 文字数X,文字数Y 文字数X,Y X:横方向の視点移動量 マイナス値で左、プラス値で右(文字の移動方向は逆) Y:縦方向の視点移動量 マイナス値で上、プラス値で下(文字の移動方向は逆) 戻り なし サンプル CHKCHR() 書式 引数 SCROLL 5,7 コンソール上の文字番号を調べる 変数 = CHKCHR( 座標X,座標Y ) 座標X,Y 戻り 文字コード サンプル 文字単位の座標(X:0∼49、Y:0∼29) -1=範囲外、0∼=UTF-16文字コード CHR=CHKCHR( 20,11 ) 数値または文字列の取得 INPUT 書式 INPUT ["ガイド文字列";] 受け取る変数[,受け取る変数...] INPUT ["ガイド文字列",] 受け取る変数[,受け取る変数...] 入力時に表示するガイド文字列 引数 ガイド文字列 受け取る変数 , 戻り なし サンプル LINPUT 書式 末尾がセミコロン;のとき、続けて?を表示。 末尾がカンマ,のとき、?は表示しない。 ガイド文字列を省略すると、?のみ表示。 末尾がセミコロンのときに限り、ガイド文字列に文字列変数も使用可能。 キーボードからの入力を受け取るための数値または文字列変数 区切り文字(複数の変数を指定する場合) INPUT “ANSWER:”;ANS INPUT “NAME:”;NM$ INPUT “NAME,AGE=”;NM$,AGE 入力過多のときは何も表示せず、余分な入力を無視する 文字列の取得 LINPUT ["ガイド文字列";] 文字列変数 引数 ガイド文字列 文字列変数 戻り なし サンプル 入力時に説明のため表示するガイド文字列 INPUTと違い、?は表示されない。ガイド文字列末尾は;のみ。 文字列変数も使用可能 キーボードから1行分の文字列を受け取る文字列変数 LINPUT "MULTI WORD:";STR$ INPUTと違い?は表示しない。プロンプト文字列の末尾は;のみ。 プロンプト文字列には文字列変数を使用可能。 INKEY$() 書式 引数 1文字取得 変数$ = INKEY$() なし 戻り 文字列変数 サンプル FONTDEF 書式 引数 キーボードからの1文字が戻る(入力がない場合=””) K$=INKEY$() 指定文字コードのフォントを定義する FONTDEF 文字コード, "フォント定義文字列" FONTDEF 文字コード, 数値配列 フォント定義文字列 数値配列 1ピクセル4文字の16進数で64ピクセル分、256文字の文字列でフォントのビットマップを指定する。 長さ64の数値配列を指定。 いずれもピクセルデータは16ビット、RGBA5551となる。 入力 ハードウェアボタン タッチスクリーン 各種センサー マイク BUTTON()、BREPEAT、STICK、STICKEX TOUCH ACCEL、GYROV、GYROA、GYROSYNC MICSTART、MICSTOP、MICDATA()、MICSAVE BUTTON() 書式 引数 ハードウェアボタンの状態取得 変数=BUTTON() 変数=BUTTON( 機能ID [, 端末ID] ) 機能ID 0 1 2 3 戻り 端末ID 数値 1 2 4 BREPEAT 書式 引数 書式 引数 戻り ACCEL GYROV 書式 ボタンID 戻り キーリピート機能を設定するボタンのID 十字ボタン上 十字ボタン下 十字ボタン左 十字ボタン右 A B X Y L R 未使用 11 XL(拡張パッド使用時) 12 XR(拡張パッド使用時) キーが押されて始めてからリピートを開始するまでの時間(1/60秒単位) リピートが開始した後のリピート間隔(1/60秒単位) 0を指定するとキーリピート機能がOFFになる スライドパッド情報取得 STICK [端末ID] OUT X, Y X,Y 端末ID なし 変化量を受け取る変数( X:±1.0, Y:±1.0 ) ワイヤレス通信による他の端末の情報取得時に利用 拡張スライドパッドのスティック情報取得 STICKEX [端末ID] OUT X, Y X,Y 端末ID なし 変化量を受け取る変数( X:±1.0, Y:±1.0 ) ワイヤレス通信による他の端末の情報取得時に利用します 加速度情報取得(事前にXON MOTIONで利用宣言する必要あり) ACCEL OUT X, Y, Z なし 引数 十字ボタン左 3 4 5 6 7 8 9 10 戻り 書式 十字ボタン下 BREPEAT ボタンID, 開始時間, インターバル 加速度を受け取る変数(単位:G) ※常に重力方向に1Gを検出し続ける ジャイロセンサーの角速度情報取得(事前にXON MOTIONで利用宣言する必要あり) GYROV OUT P, R, Y 引数 GYROA 十字ボタン上 キーリピート機能の設定 X,Y,Z 戻り ビット単位でボタンの状態 ZL(拡張パッド使用時) 引数 書式 ワイヤレス通信による他の端末の情報取得時に利用 ZR(拡張パッド使用時) インターバル STICKEX ボタンが放された瞬間だけビットが1になる 4096 開始時間 戻り ボタンが押された瞬間だけビットが1になる(リピート機能なし) 2048 2 引数 ボタンが押された瞬間だけビットが1になる(リピート機能付き) 十字ボタン右 A B X Y L R 未使用 1 書式 押され続けている状態 8 16 32 64 128 256 512 1024 0 STICK 取得したいボタンの状態 P Pitch(X軸の回転)を取得する変数 ※P,R,Yの単位:ラジアン/秒 R Roll(Y軸の回転)を取得する変数 Y Yaw(Z軸の回転)を取得する変数 なし ジャイロセンサーの角度情報取得(※事前にXON MOTIONで利用宣言する必要あり) GYROA OUT P, R, Y P Pitch(X軸の角度)を取得する変数 ※P,R,Yの単位:ラジアン R Roll(Y軸の角度)を取得する変数 Y Yaw(Z軸の角度)を取得する変数 なし GYROSYNC 書式 ジャイロ情報の更新 GYROSYNC 引数 なし 戻り TOUCH 書式 引数 なし タッチ情報取得 TOUCH [ 端末ID ] OUT STTM, TX,TY STTM TX,TY 端末ID MICSTART マイクからのサンプリン グ開始 タッチ状態を受け取る変数(0=タッチされていない、1∼タッチされた時間) タッチ位置を受け取る変数(TX:0∼399, TY:0∼239 )ピクセル単位 ワイヤレス通信による他の端末の情報取得時に利用 サンプリング秒数に0を指定すると、ループモードでサンプリングを開始する。ループモードでは内部サンプリングバッファをリン グバッファとして使用し、MICSTOP命令を呼び出すまでサンプリングし続ける。(つまりループモードでは最大サンプリング数を超 えた場合先頭からデータを上書きしてしまうので注意が必要) ※事前にXON MICで利用宣言する必要あり 書式 引数 MICSTART サンプリングレート, ビット数, 秒数 サンプリングレート 0 1 2 3 ビット数 サンプリングを行う間隔 8180Hz 10190Hz 16360Hz 32730Hz サンプリング波形のサイズ 0 8ビット 1 16ビット 秒数 サンプリングする最大秒数(0=ループモード) 8180Hz、8ビットの時、最大32秒まで、16ビットの時最大16秒 10190Hz、8ビットの時、最大24秒まで、16ビットの時最大12秒 16360Hz、8ビットの時、最大16秒まで、16ビットの時最大8秒 32730Hz、8ビットの時、最大8秒まで、16ビットの時最大4秒 戻り MICSTOP 書式 なし マイクからのサンプリングを停止 MICSTOP 戻り MICDATA() 書式 引数 なし マイクからのデータ取得 書式 引数 が必要。 変数=MICDATA( 取得位置 ) 取得位置 戻り MICSAVE 指定位置のサンプリングデータを返す。現在のサンプリングがループモードの場合、取得位置の範囲チェックは行われないので注意 数値 0∼(ビット数と最大秒数で範囲が決まります) 波形データ(128基準の8ビットまたは32768基準の16ビット数値) 内部サンプリングメモリーから配列へのコピー MICSAVE 取得先配列 MICSAVE 取得サンプル数, 取得先配列 MICSAVE 取得開始位置, 取得サンプル数, 取得先配列 取得開始位置 取得サンプル数 取得先配列 取り込み始める位置(0∼) 省略時は0 取り込む数 省略時はサンプリングバッファ全体 取り込んだサンプリングデータの格納先 配列の要素数が取得サンプル数より小さい場合は、配列が1次元の場合に限り配列が自動拡張される。 ファイル ファイル管理命令 FILES、LOAD、SAVE、RENAME、DELETE、CHKFILE() プログラム呼び出し命令 FILES 書式 引数 EXEC、USE ファイル一覧をコンソール上に表示 FILES [ "ファイル種別" ] FILES [ "ファイル種別", ] 文字列配列 ファイル種別 "TXT:" "DAT:" 戻り CHKFILE() 書式 引数 戻り サンプル 文字列配列 なし 特定のリソースのみを表示させたい場合に指定する文字列 テキストのみを表示(プログラムを含む) 数値配列バイナリデータのみを表示 ファイル名格納先 ファイルの存在確認 数値=CHKFILE( "ファイル名文字列" ) ファイル名文字列 状態 調査したいファイル名 TRUE=存在する、FALSE=存在しない A=CHKFILE("SAMPLE") LOAD -1書式 ファイルの読み込み 各種リソースをロードする LOAD "リソース名:ファイル名" LOAD "ファイル名" 引数 リソース名 省略時 PRG0∼PRG3 GRP0∼GRP5 ファイル名 戻り なし 読み込む対象となるリソースに割り当てられた文字列 カレントのプログラムSLOTにPRGを読み込み プログラムSLOTの指定用 グラフィックページの指定用 ファイルに付けられた名前 実行中のプログラムと同じスロットへのロードはできない。 プログラムを対象としたLOADはあくまで編集バッファへの読み込み命令なので、これだけではその中で定義された変数、ラベル、 備考 ステートメントは参照できない。参照するには、RUN/EXEC/USE文で読み込んだプログラムを実行可能状態に変換する必要がある。 確認ダイアログの表示。 LOAD -2- 書式 引数 テキストファイルを文字列変数に読み込み LOAD "TXT:ファイル名" OUT 文字列変数 文字列変数 ファイル名 戻り LOAD() -3- なし 書式 文字列変数 = LOAD( "TXT:ファイル名" ) 文字列変数 ファイル名 戻り LOAD -4- 書式 引数 なし 書式 数値配列 ファイル名 なし ファイルの保存 書式 引数 DELETE 書式 文字列をテキストファイルに保存 SAVE "TXT:ファイル名", 文字列変数 文字列変数 なし SAVE "DAT:ファイル名", 数値配列 数値配列 なし 保存するデータの格納された数値配列 ファイル名の変更 RENAME "ファイル種別:ファイル名", "新しい名前" ファイル種別 戻り なし 新しい名前 ファイルの消去 ※FILESを参照 ファイル種類を含まない単純なファイル名 確認ダイアログの表示。 DELETE "ファイル種別:ファイル名" 引数 ファイル種別 戻り ※FILESを参照 なし プログラムのLOADと実行 EXEC 書式 引数 EXEC "[PRGn]:ファイル名" EXEC プログラムSLOT番号 ファイル名 PRG0∼PRG3 プログラムSLOT番号 戻り なし 備考 USE 保存する文字列(UTF-8)の格納された文字列変数 数値配列をデータファイルに保存 引数 書式 ※LOADを参照 なし 戻り RENAME ファイルに付けられた名前 確認ダイアログの表示。 リソース名 戻り SAVE 読み込んだデータが格納される数値配列 SAVE "リソース名:ファイル名" 戻り 引数 ファイルに付けられた名前 LOAD "DAT:ファイル名", 数値配列 引数 書式 読み込んだファイルが格納される文字列変数 データファイルを数値配列に読み込み 戻り SAVE ファイルに付けられた名前 テキストファイルを文字列変数に読み込み(関数タイプ) 引数 SAVE 読み込んだファイルが格納される文字列変数 書式 引数 プログラムファイル名 プログラムSLOTの指定用 省略時は現在実行中のSLOT 0∼3 プログラムSLOTに読み込まれているプログラムを実行する際にも利用する。EXECで実行を始めたプログラムから元のプログラムに 戻ってくる事はできない。 指定プログラムSLOTのソースコードを実行可能な状態にする USE プログラムSLOT番号 戻り プログラムSLOT番号 0∼3 なし ワイヤレス通信 通信命令 情報取得 ユーザー定義データ MPSTART、MPEND、MPSEND、MPRECV MPSTAT()、MPNAME$() MPGET()、MPSET MPSTART 書式 引数 書式 最大接続ユーザー数 通信識別文字列 なし 通信セッションを終了 参加者へデータ送信 データをセッション参加者全員に送信する。 MPSEND "送信文字列" 送信文字列 戻り なし MPSENDからのデータ受 書式 引数 信 MPSTAT() 書式 引数 送信元ID 受信用文字列変数 なし 書式 引数 書式 引数 端末ID 接続状況 引数 受信されたデータを受け取る文字列変数 受信データがない場合は送信元IDに-1が入る。 0∼3(省略時、セッション全体として通信可能かどうかを返す) TRUEで接続中、FALSEで回線断 指定IDの端末名取得 文字列変数=MPNAME$( 端末ID ) 端末ID 文字列 0∼3 端末名文字列 指定IDのユーザー定義データの取得 変数=MPGET( 端末ID, インデックス ) 端末ID インデックス 戻り 書式 0∼3 変数=MPSTAT( [端末ID] ) 戻り MPGET() MPSENDで送られてきたデータを受信する。 指定IDの接続状況取得 戻り MPNAME$() 最大256バイトまでの文字列 MPRECV OUT 送信元ID, 受信用文字列変数 戻り MPSET MPENDを使用すると、セッション参加者全員が同期して終了するための待ち合わせ用システムダイアログが表示される。 なし 引数 MPRECV セッションが構築できたかどうかはRESULTシステム変数の返値で取得できる なし 戻り 書式 2∼4 MPEND 引数 MPSEND セッション構築用のシステムダイアログ(SENDFILE,RECVFILEと同様の物)が表示される。 MPSTART 最大接続ユーザー数, "通信識別子文字列" 戻り MPEND 通信セッションを開始する。セッションはMPSTARTのパラメータが全く同じプログラム間でのみ接続可能。MPSTARTを使用すると、 通信セッションの開始 ユーザー定義データ 0∼3 0∼8 整数型 ユーザー定義データへの書き込み MPSET インデックス, 整数値 インデックス 数値 戻り なし 0∼8 整数値のみ受け付け スクリーン制御 スクリーン制御 背景色定義 XSCREEN、DISPLAY、VISIBLE、ACLS BACKCOLOR、BACKCOLOR() XSCREEN 書式 引数 画面モードと同期モードの設定 XSCREEN 画面モード [ SPRITE割当数 ,BG割当数] 画面モード 0 1 2 3 4 SPRITE割当数 BG割当数 戻り なし 備考 DISPLAY 書式 引数 上:3D 下:使用 (INPUT時、下画面にキーボード表示) 上:2D 下:使用 (INPUT時、下画面にキーボード表示) 上下結合(上画面は2D、INPUTおよびダイレクトモード使用不可) 上画面に割当てるSPRITE数 0∼512(下画面は最大SP数-上画面SP数) 上画面に割当てるBGレイヤー枚数 0∼4(下画面は最大BG数-上画面BG数) 画面モード2,3はダイレクトモードでも使用出来るが、実行が終わると下画面がキーボードに切り替わるので注意が必要。3D指定は 操作対象の画面設定 DISPLAY 画面ID 画面ID 1 備考 上:2D 下:未使用 ペアレンタルコントロールで無効となる事もあるので注意。 0 戻り 上:3D 下:未使用(デフォルト) なし 上画面 下画面 XSCREEN 0,1,4では、DISPLAY 1は使用できない。 VISIBLE 書式 引数 画面表示要素の制御 コンソール 書式 引数 0=非表示、1=表示 グラフィック 0=非表示、1=表示 BG 0=非表示、1=表示 SPRITE 0=非表示、1=表示 戻り BACKCOLOR -1- 対象面項目を0で非表示、1で表示。 VISIBLE コンソール,グラフィック,BG,SPRITE なし 背景色指定 BACKCOLOR 背景色 色コード 戻り RGB各8ビットの色コード(&HRRGGBB) なし BACKCOLOR() 背景色取得 -2書式 引数 変数=BACKCOLOR() なし 戻り 色コード 以下の処理相当(起動直後の画面関係の設定に戻す) XSCREEN 0,512,4 LOAD "GRP4:SYS/DEFSP.GRP" LOAD "GRP5:SYS/DEFBG.GRP" FONTDEF FOR I=1 TO 0 STEP -1 DISPLAY I:VISIBLE 1,1,1,1:GPAGE I,I 表示関係の初期化 ACLS GCOLOR RGB(255,255,255):GCLS 0:GPRIO 512 SPPAGE 4:SPCLR:SPDEF BGPAGE 5:BGCLR 書式 COLOR 15,0:LOCATE 0,0,0:ATTR 0:CLS NEXT ACLS 引数 なし 戻り なし グラフィック 画面設定 GPAGE、GCLIP、GPRIO カラー設定 GCOLOR、RGB()、RGBREAD、GSPOIT() 描画命令 GCLS、GPSET、GLINE、GCIRCLE、GBOX、GFILL、GPAINT 画面データ転送 GPAGE 書式 引数 GCOPY、GSAVE、GLOAD 表示ページと操作ページの指定 GPAGE 表示ページ, 操作ページ 表示ページ 操作ページ 戻り GCOLOR RGB() 書式 描画色指定 GCOLOR 色コード 色コード 戻り なし 引数 書式 引数 GCLIP 書式 引数 A,R,G,B 変数 内部色コードからRGBへ の逆変換 8ビット色情報(各0∼255) ARGB8888型論理色コード ・渡された内部色コードのα値が0の場合、RGBにも0が戻る ・変換されたRGB値は下位3ビットが0になるため単純な数値比較は注意が必要 RGBREAD 内部色コード OUT [A, ]R ,G ,B 内部色コード ARGB8888型論理色コード 8ビット色情報を受け取る変数 なし クリッピング領域の指定 GCLIP クリップモード [, 始点X, 始点Y, 終点X, 終点Y] クリップモード 0 1 始点X,Y 終点X,Y 戻り Aは0で透明、それ以外で不透明 変数 = RGB( [A,] R,G,B ) A,R,G,B 戻り ARGB8888型論理色コード 色コードの変換 戻り RGBREAD GRP0∼GRP5 なし 引数 書式 GRP0∼GRP5 なし 表示クリッピング 書き込みクリッピング 始点座標 表示クリッピングのとき 範囲制限なし 省略時画面全体 書き込みクリッピングのとき X:0∼399、Y:0∼239 省略時ページ全体 終点座標 表示クリッピングのとき 範囲制限なし 省略時画面全体 書き込みクリッピングのとき X:0∼399、Y:0∼239 省略時ページ全体 GPRIO 書式 表示優先順位変更 GPRIO Z座標 引数 Z座標 戻り GCLS 書式 引数 なし 画面の消去 GCLS [ 内部色コード ] 内部色コード 戻り GSPOIT() 書式 引数 書式 引数 指定位置の色を調べる 変数 = GSPOIT( 座標X,座標Y ) 座標X,Y 内部色コード 書式 引数 書式 引数 座標X,Y 内部色コード 書式 引数 書式 引数 GLINE 始点X,始点Y, 終点X,終点Y [ ,色コード ] 始点X,Y 終点X,Y 内部色コード 書式 引数 書式 引数 中心点X,Y 半径 色コード 書式 引数 1∼ ARGB8888型論理色コード 箱を描く GBOX 始点X,始点Y, 終点X,終点Y [ ,色コード ] 始点X,Y 始点座標(X:0∼399、Y:0∼239) 色コード ARGB8888型論理色コード 終点X,Y 終点座標(X:0∼399、Y:0∼239) なし 矩形塗りつぶし GFILL 始点X,始点Y, 終点X,終点Y [ ,色コード ] 始点X,Y 始点座標(X:0∼399、Y:0∼239) 色コード ARGB8888型論理色コード 終点X,Y 終点座標(X:0∼399、Y:0∼239) なし 塗りつぶし 境界色を省略した場合、塗り始め座標にある色の範囲を塗る GPAINT 座標X,座標Y [ ,色コード [, 境界色コード ] ] 座標X,Y 色コード 境界色コード 塗りつぶし座標(X:0∼399、Y:0∼239) ARGB8888型論理色コード ARGB8888型論理色コード なし ページ間の画像コピー GCOPY [ 転送元ページ, ] 始点X,始点Y, 終点X,終点Y, 転送先X,転送先Y, コピーモード 転送元ページ 始点X,Y コピーモード GRP0∼GRP5 省略すると描画対象ページとなる 始点座標 終点座標 転送先始点座標 TRUE(1):透明色をコピーする FALSE(0):透明色をコピーしない なし 画像を配列へコピー GSAVE [転送元ページ,] 転送先配列変数,色変換フラグ GSAVE [転送元ページ,] 始点X, 始点Y, 幅, 高さ, 転送先配列変数,色変換フラグ 転送元ページ 始点X,Y 幅,高さ 転送先配列変数 色変換フラグ 備考 中心点座標(X:0∼399、Y:0∼239) なし 転送先X,Y GSAVE ARGB8888型論理色コード GCIRCLE 中心点X,中心点Y, 半径 [ ,色コード ] 終点X,Y 戻り 終点座標(X:0∼399、Y:0∼239) 円を描く 戻り GCOPY 始点座標(X:0∼399、Y:0∼239) なし 戻り GPAINT ARGB8888型論理色コード 線を引く 戻り GFILL 始点座標(X:0∼399、Y:0∼239) なし 戻り GBOX ARGB8888型論理色コード GPSET 座標X,座標Y [ ,色コード ] 戻り GCIRCLE 読み込む座標(X:0∼399、Y:0∼239) 点を打つ 戻り GLINE ARGB8888型論理色コード なし 戻り GPSET 奥行方向の座標(奥:1024∼液晶面:0∼手前:-256) GRP0∼GRP5 始点座標 省略すると描画対象ページとなる 転送範囲のピクセル幅・高さ 画像を格納する配列 1:色情報を論理色に変換 0:色変換しない(物理色のまま) 配列要素数が不足する場合、OPTION STRICTを指定していない場合かつ配列が1次元の場合に限り要素数を自動拡張する。 それ以外(OPTION STRICTを指定している、もしくは配列が2次元以上)の場合は要素数が不足すると Subscript out of rangeエラーとなる。 GLOAD 書式 引数 配列を画像へコピー GLOAD [描画X,描画Y,幅,高さ,] 画像データ配列,色変換フラグ,コピーモード GLOAD [描画X,描画Y,幅,高さ,] 画像データ配列,パレット配列,コピーモード 描画X,Y 幅,高さ 画像データ配列 パレット配列 コピーモード 色変換フラグ 備考 描画始点座標 描画範囲のピクセル幅・高さ 描画X,Y,幅,高さを省略すると、現在の描画領域を指定したことになる。 画像が格納されている配列 パレットデータが格納されている配列 TRUE(1):透明色をコピーする FALSE(0):透明色をコピーしない 1:論理色で格納されていることを指定 0:物理色で格納されていることを指定 パレット配列が指定された場合、画像データはインデックスカラーとして扱われる。指定しない場合、ダイレクトカラーとして転送 され、色変換フラグに従ってピクセルデータを扱う。 SPRITE SPPAGE、SPCLIP、SPDEF、SPCLR、 SPRITE定義 SPSET、SPCHR、SPHOME SPSHOW、SPHIDE、SPOFS、 SPRITE表示 SPROT、SPROT()、SPSCALE、SPCOLOR SPRITE連結 SPLINK、SPUNLINK SPRITEアニメーション SPANIM、SPCHK()、SPSTART、SPSTOP SPRITE内部変数 SPVAR、SPVAR() SPRITE衝突判定 SPPAGE SPHITSP()、SPHITRC()、SPHITINFO SPRITEに割り当てるグラフィックページの設定 書式 引数 戻り SPCLIP SPCOL、SPCOLVEC、 SPPAGE グラフィックページ グラフィックページ GRP0∼GRP5 なし SPRITEのクリッピング領域を設定 書式 SPCLIP [X1, Y1, X2, Y2] 引数 X1,Y1 X2,Y2 戻り SPDEF -1- 書式 引数 なし SPDEF 定義番号,U,V,幅,高さ [,アトリビュート] SPDEF 定義番号,U,V,幅,高さ,原点X,原点Y [,アトリビュート] 定義番号 高さ 原点X,原点Y 書式 引数 アトリビュート SPDEF -3- 書式 引数 戻り 0∼4095 画像マッピング座標(U:0∼511、V:0∼511) 横画像サイズ(U+幅が512以内) 省略時16 縦画像サイズ(V+高さが512以内) 省略時16 SPRITEのホーム座標(左上からの相対座標) 省略時0 b0=表示、b1∼b2=回転、b3=横反転、b4=縦反転 省略時1 なし SPRITEのテンプレートを配列やDATA列から一括定義する SPDEF 数値配列 SPDEF "@ラベル文字列" 数値配列 @ラベル文字列 戻り 領域を省略すると、画面全体が表示領域となる。 SPDEF 定義番号,U,V [,アトリビュート] 幅 SPDEF -2- クリッピング領域終点座標 SPRITEのテンプレートを定義 U,V 戻り クリッピング領域始点座標 なし 0から順に要素数/7までのテンプレートが定義される。 配列の要素数は7の倍数である必要がある。 DATA列の開始ラベルのラベル文字列 最初に定義数、その後テンプレート定義用の数値(7個で1テンプレート分)が定義数分並んでいる必要がある。 SPRITEテンプレート情報を取得する SPDEF 定義番号 OUT U,V [,アトリビュート] SPDEF 定義番号 OUT U,V,幅,高さ [,アトリビュート] SPDEF 定義番号 OUT U,V,幅,高さ,原点X,原点Y [,アトリビュート] 定義番号 U,V 幅 高さ 原点X,原点Y アトリビュート 0∼4095 画像マッピング座標(U:0∼511、V:0∼511) 横画像サイズ(U+幅が512以内) 省略時16 縦画像サイズ(V+高さが512以内) 省略時16 SPRITEのホーム座標(左上からの相対座標) b0=表示、b1∼b2=回転、b3=横反転、b4=縦反転 省略時1 SPSET ・定義することで活動開始となり初期位置は0,0へ SPRITEの定義 書式 引数 SPSET 管理番号, 定義番号 SPSET 管理番号, U,V, アトリビュート SPSET 管理番号, U,V, 幅,高さ, アトリビュート 管理番号 定義番号 U,V 幅 高さ アトリビュート 戻り SPCLR 画像マッピング座標(U:0∼511、V:0∼511) 横画像サイズ(U+幅が512以内) 省略時16 縦画像サイズ(V+高さが512以内) 省略時16 b0=表示、b1∼b2=回転、b3=横反転、b4=縦反転 なし SPCLR 管理番号 管理番号 戻り 0∼511 なし SPRITE表示ON 書式 引数 SPSHOW 管理番号 管理番号 戻り SPHIDE 0∼4095 SPRITE解放 書式 引数 SPSHOW 0∼511 0∼511 なし SPRITE表示OFF 書式 引数 SPHIDE 管理番号 管理番号 戻り SPRITEホーム位置の指 SPHOME 0∼511 なし ・SPOFS命令の位置基準点 ・回転やスケーリングの中心点 定 書式 引数 戻り SPOFS -1- 書式 引数 ・当たり判定の中心座標 SPHOME 管理番号, 位置X,位置Y 管理番号 位置X,Y なし SPOFS 管理番号, [X], [Y] [,Z] 管理番号 Z 戻り 書式 引数 なし 管理番号 戻り 引数 なし 書式 引数 戻り SPROT() -3- 書式 引数 戻り SPSCALE 書式 引数 戻り 奥行方向の座標(奥:1024∼液晶面:0∼手前:-256) 0∼511 座標を受け取る変数 奥行情報を受け取る変数 SPRITE角度の変更 SPROT 管理番号, 角度 管理番号 角度 戻り SPROT -2- SPRITEを表示する画面座標 SPOFS 管理番号 OUT X,Y [,Z] Z 書式 0∼511 SPRITEの座標取得 X,Y SPROT -1- 左上を原点(0,0)とした相対座標(省略時0) SPRITE座標の変更 X,Y SPOFS -2- 0∼511 0∼511 0∼360 なし SPRITEの角度取得 SPROT 管理番号 OUT 角度 管理番号 角度 数値 0∼511 角度格納先 現在の角度 SPRITEの角度取得(関数タイプ) 変数=SPROT(管理番号) 管理番号 角度 数値 0∼511 角度格納先 現在の角度 SPRITEスケールの変更 SPSCALE 管理番号, 倍率X, 倍率Y 管理番号 倍率X,Y なし 0∼511 0.5=50%、1.0=100%、2.0=200% SPSCALE -2- 書式 引数 SPRITEのスケール取得 SPSCALE 管理番号 OUT SX,SY 管理番号 SX,SY SPCOLOR 書式 引数 SPCOLOR 管理番号, 色コード 管理番号 色コード なし 備考 書式 引数 書式 引数 管理番号 色コード 更 引数 戻り SPSETで生成したSPRITEのマッピング等を変更する SPCHR 管理番号, U,V, 幅,高さ, アトリビュート 管理番号 定義番号 アトリビュート 0∼511 0∼4095 画像マッピング座標(U:0∼511、V:0∼511) 横画像サイズ(U+幅が512以内) 省略時16 縦画像サイズ(V+高さが512以内) 省略時16 b0=表示、b1∼b2=回転、b3=横反転、b4=縦反転 なし SPRITEのキャラ位置、サイズ、アトリビュートを取得 SPCHR 管理番号 OUT U, V [, アトリビュート] SPCHR 管理番号 OUT U,V, 幅,高さ [, アトリビュート] SPCHR 管理番号 OUT DEFNO 管理番号 U,V 幅 高さ アトリビュート DEFNO SPLINK 色コード格納先 SPCHR 管理番号, U,V, アトリビュート 高さ 書式 0∼511 SPCHR 管理番号, 定義番号 幅 SPCHR -2- 実際に表示される色は、色コードにグラフィックページのピクセル色を乗算したものになる。 SPCOLOR 管理番号 OUT 色コード U,V 戻り 0∼511 SPRITEの表示色を取得 SPRITEのキャラクタ変 SPCHR スケールを受け取る変数 SPRITEの表示色を設定 戻り SPCOLOR -2- 0∼511 0∼511 画像マッピング座標(U:0∼511、V:0∼511) 横画像サイズ(U+幅が512以内) 省略時16 縦画像サイズ(V+高さが512以内) 省略時16 b0=表示、b1∼b2=回転、b3=横反転、b4=縦反転 定義番号 SPRITEを別のSPRITEとリンクする 書式 引数 戻り 備考 SPUNLINK 書式 引数 戻り 備考 SPLINK 管理番号,リンク先管理番号 管理番号 リンク先管理番号 なし 0∼511 0∼511 自分の管理番号より小さい管理番号のみ指定可能 リンクするのは座標位置だけで、回転情報やスケーリング情報はリンクしない。リンクの階層に制限はない。 SPRITEのリンクを解除する SPUNLINK 管理番号 管理番号 なし 0∼511 SPRITEによるアニメ表 SPANIM 書式 引数 示 アニメ対象で絶対要素と相対要素に同じ項目を選択することはできません。 SPANIM 管理番号, "アニメ対象", 時間1,項目1[,項目2] [,時間2,項目1[,項目2]...] [, ループ ] SPANIM 管理番号, "アニメ対象", 1次元数値配列 [, ループ ] SPANIM 管理番号, "アニメ対象", "@ラベル文字列" [, ループ ] 管理番号 アニメ対象 "XY" または 0 "Z" または 1 "UV" または 2 "I" または 3 "R" または 4 "S" または 5 "C" または 6 "V" または 7 相対指定 1次元数値配列 時間,項目1,項目2 @ラベル文字列 文字列 戻り 時間をマイナス値にするとフレーム間の変化は滑らかに補間されます。 ループ なし サンプル 0∼511 変化させる情報について32ビットの数値または文字列で指定 座標X,Y 座標Z 画像マッピング座標U,V 定義番号 回転 スケール カラー SPRITE変数7 数値指定の場合、8を加算すると相対指定、 文字列指定の場合、末尾に'+'を付けると相対値となる("XY+") アニメデータが格納された1次元数値配列 変化情報(時間と項目1∼2) アニメデータが格納されたDATA命令の先頭ラベル文字列(文字列渡し) アニメデータで構成される文字列 1∼(0で無限ループ) REM 直接時間と項目で指定する場合。 SPANIM 0, &H03, -60,200,100,-30,50,20 REM 16進数値で指定する場合。 SPANIM 0, &H03, @PLAYER_WALK @PLAYER_WALK DATA 2 'キーフレーム数 DATA -60, 200,100 '60フレーム(補間あり)、絶対位置200,100へ移動 DATA -30, 50,20 '30フレーム(補間あり)、絶対位置50,20へ移動 REM 文字列で指定する場合。 SPANIM 0, "XY", @PLAYER_WALK REM 配列で渡す場合。 DIM PD[ 6 ] PD[0] = -60 :'60フレーム(補間あり) PD[1] = 200 :'絶対位置X200 PD[2] = 100 :'絶対位置Y100 PD[3] = -30 :'30フレーム(補間あり) PD[4] = 50 :'絶対位置X50 PD[5] = 20 :'絶対位置Y20 SPANIM 0, "XY", PD SPCHK() 書式 引数 戻り b0 b1 b2 b3 b4 b5 b6 b7 SPSTART 書式 引数 戻り SPSTOP 変数 = SPCHK( 管理番号 ) 管理番号 状態 1 2 4 8 16 32 64 128 0∼511 0=補間終了、0以外の時補間中(ビットごとに状態を管理) XY Z UV I R S C V SPRITEアニメーションを開始する SPSTART [管理番号] 管理番号 0∼511(省略時すべてのSPRITE) なし SPRITEアニメーションを停止する 書式 引数 戻り SPVAR アニメーション状態取得 SPSTOP [管理番号] 管理番号 0∼511(省略時すべてのSPRITE) なし SPRITE用内部変数への書込み 書式 引数 戻り SPVAR -2- 書式 引数 戻り SPVAR 管理番号,変数番号,数値 管理番号 変数番号 0∼511 0∼7 数値 なし SPRITE用内部変数の読込み SPVAR 管理番号,変数番号 OUT 数値 管理番号 変数番号 数値 0∼511 0∼7 SPVARで書込んだ値 SPVAR -3- 書式 引数 SPRITE用内部変数の読込み(関数タイプ) 変数=SPVAR( 管理番号,変数番号 ) 管理番号 変数番号 戻り SPCOL 数値 0∼511 0∼7 SPVARで書込んだ値 SPRITE衝突判定用矩形情報の設定 SPCOL 管理番号 SPCOL 管理番号, スケール対応 書式 SPCOL 管理番号, [スケール対応], マスク SPCOL 管理番号, Xオフセット, Yオフセット, 幅, 高さ SPCOL 管理番号, Xオフセット, Yオフセット, 幅, 高さ, スケール対応 引数 SPCOL 管理番号, Xオフセット, Yオフセット, 幅, 高さ, [スケール対応] , マスク 管理番号 始点X,Y 幅,高さ スケール対応 マスク 戻り SPCOLVEC 書式 引数 0∼511 SPHOMEを原点(0,0)とした相対座標(-32768∼32767) 幅と高さ(0∼65535) 0=無視、1=SPSCALEの指定に判定サイズを同期(省略時=0) 0∼&HFFFFFFFF(ビット単位でグループ属性を管理) SPHIT系命令で、対象との判定時に互いのビットANDをとり、0であれば衝突していないとみなす。 なし SPRITE衝突判定用移動 速度の設定 ・移動量省略時デフォルト設定( SPOFSの移動設定値*直前のVSYNC値/60) ・SPOFSで移動設定していない場合は(0,0) SPCOLVEC 管理番号 [ ,移動量X,移動量Y ] 管理番号 0∼511 移動量 ※移動量を省略すると、下記の要領で自動的に算出される。 移動量X,移動量Y 戻り SPHITSP() -1- 書式 なし 戻り 結果 書式 引数 戻り 備考 SPHITRC() -1- 書式 引数 SPHITRC() -2- 書式 引数 管理番号 相手管理番号 結果 0∼511 0∼4095 FALSE(0):衝突なし、TRUE(1):衝突 衝突時の詳細情報はSPHITINFOで取得できる。 SPHITRC( [ 始点X,始点Y, 幅,高さ [ [ ,マスク ] ,移動量X,移動量Y ] ] ) 始点X,Y 幅,高さ 結果 衝突対象の矩形の左上座標 衝突対象の矩形の横幅と縦幅 0∼&HFFFFFFFF(ビット単位でグループ属性を管理) 省略した場合、もしくは0を指定した場合は、マスクを使わず判定。 衝突対象の移動量 引数を省略すると、前回のSPHITRCと同じパラメータで引き続き検索する -1=衝突なし、0∼ 衝突したSPRITE管理番号 衝突時の詳細情報はSPHITINFOで取得できる。 矩形と指定SPRITEの衝突判定(管理番号指定) SPHITRC( 管理番号, 始点X,始点Y, 幅,高さ [ [ ,マスク ] ,移動量X,移動量Y ] ) 管理番号 始点X,Y マスク 備考 衝突時の詳細情報はSPHITINFOで取得できる。 矩形と衝突したSPRITEを検索 幅,高さ 戻り 引数を省略すると、前回のSPHITSPの指定を再利用する -1=衝突なし、0∼ 衝突したSPRITE管理番号 SPHITSP( 管理番号 ,相手管理番号 ) 移動量X,Y 備考 0∼511 SPRITE同士の衝突判定(自分と相手の管理番号指定) マスク 戻り ・XYアニメーションを使用していて、線形補完中の場合は、前フレームからの移動距離 SPHITSP( [管理番号] ) 管理番号 SPHITSP() -2- ・XYアニメーションを使用しており、線形補完を使用していない場合も0,0 SPRITEと衝突したSPRITEを検索 引数 備考 ・SPANIMでXYアニメーションを使用していない場合は、0,0 移動量X,Y 結果(管理番号あり) 0∼511 衝突対象の矩形の左上座標 衝突対象の矩形の横幅と縦幅 0∼&HFFFFFFFF(ビット単位でグループ属性を管理) 省略した場合、もしくは0を指定した場合は、マスクを使わず判定。 衝突対象の移動量 FALSE=衝突なし、TRUE=衝突 衝突時の詳細情報はSPHITINFOで取得できる。 SPHITINFO 書式 引数 衝突判定の詳細情報を取得 SPHITINFO OUT 衝突時間 SPHITINFO OUT 衝突時間, 衝突X座標1, 衝突Y座標1, 衝突X座標2, 衝突Y座標2 SPHITINFO OUT 衝突時間, 衝突X座標1, 衝突Y座標1, 衝突X速度1, 衝突Y速度1, 衝突X座標2, 衝突Y座標2, 衝突X速度2, 衝突Y速度2 なし 戻り 衝突時間 0∼1の実数値 衝突X座標1,衝突Y座標1 衝突時の物体1の座標 衝突X速度1,衝突Y速度1 衝突時の物体1の速度 衝突X座標2,衝突Y座標2 衝突X速度2,衝突Y速度2 衝突時の物体2の座標 衝突時の物体2の速度 BG BG定義 BGPAGE、BGSCREEN、BGCLIP、BGHOME BG表示 BGCLR、BGPUT、BGFILL BG制御 BGOFS、BGROT、BGSCALE BG情報 BGGET() BGアニメーション BGANIM、BHCHK()、BGSTART、BGSTOP BG内部変数 BGVAR、BGVAR() BGデータ転送 BGCOPY、BGSAVE、BGLOAD BGPAGE BG用のグラフィックページの割当 書式 引数 戻り BGSCREEN 書式 引数 BGPAGE グラフィックページ グラフィックページ スクリーンのサイズをキャラ単位で設定 BGSCREEN レイヤー, 幅, 高さ レイヤー W,H 戻り BGCLR 書式 引数 戻り BGCLIP なし BGCLR [ レイヤー ] レイヤー 0∼3(省略時すべてのレイヤー) なし BGCLIP レイヤー [, 始点X,始点Y, 終点X,終点Y] レイヤー 始点X,Y 戻り 書式 引数 なし レイヤーの表示原点設定 レイヤー 戻り 書式 引数 なし レイヤー 戻り 戻り BGSCALE 書式 引数 戻り 0∼239 始点・終点を省略すると、画面全体が表示エリアとなる BGスクリーンに対する回転やスケールの原点を指定します 0∼3 ドット単位の原点座標 BGOFS レイヤー, [X], [Y], [Z] Z 引数 0∼399 スクリーンの表示オフセットを変更 X,Y 書式 0∼3 BGHOME レイヤー, X,Y X,Y BGROT キャラ単位の幅と高さ(幅x高さが16383以下まで) スクリーンを消去 終点X,Y BGOFS 0∼3 BGスクリーンの表示範囲の指定 書式 引数 BGHOME GRP0∼GRP5 なし なし 0∼3 ±nnnn(ドット単位) 奥行方向の座標(奥:1024∼液晶面:0∼手前:-256) スクリーンの回転 BGROT レイヤー, 角度 レイヤー 角度 0∼3 0∼360 なし スクリーンの拡大縮小 BGSCALE レイヤー, 拡大率X,拡大率Y レイヤー 拡大率X,Y なし 0∼3 0.5=50%、1.0=100%、2.0=200% BGPUT -1- 書式 引数 スクリーンへのキャラ描画 BGPUT レイヤー, X,Y, キャラ番号 レイヤー X,Y キャラ番号 0∼3 0∼BGSCREENで指定した値-1 0∼4095 回転属性 書式 引数 0度 1 90度 2 180度 3 270度 h反転 0=なし、1=横反転 v反転 0=なし、1=縦反転 戻り BGPUT -2- 0 なし スクリーンへのキャラ描画(スクリーンデータ指定) BGPUT レイヤー, X,Y, スクリーンデータ BGPUT レイヤー, X,Y, "スクリーンデータ文字列" レイヤー X,Y スクリーンデータ 戻り BGFILL -1- スクリーン文字列 なし 0∼BGSCREENで指定した値-1 キャラ番号と回転属性と反転情報を16ビット数値化したもの スクリーンデータを16進数4桁の文字列にしたもの("0000"∼"FFFF") スクリーン塗りつぶし 書式 引数 BGFILL レイヤー, 始点X,始点Y, 終点X,終点Y, キャラ番号 レイヤー 始点X,Y 始点X,Y キャラ番号 回転属性 0∼3 0∼BGSCREENで指定した値-1 0∼BGSCREENで指定した値-1 0∼4095 0∼3(BGPUT参照) h反転 0=なし、1=横反転 v反転 0=なし、1=縦反転 戻り BGFILL -2- 0∼3 なし スクリーン塗りつぶし(スクリーンデータ指定) 書式 引数 BGFILL レイヤー, 始点X,始点Y, 終点X,終点Y, スクリーンデータ BGFILL レイヤー, 始点X,始点Y, 終点X,終点Y, "スクリーン文字列" レイヤー 始点X,Y 始点X,Y スクリーンデータ 戻り BGGET() 書式 引数 スクリーン文字列 なし 0∼BGSCREENで指定した値-1 0∼BGSCREENで指定した値-1 キャラ番号と回転属性と反転情報を16ビット数値化したもの スクリーンデータを16進数4桁の文字列にしたもの("0000"∼"FFFF") スクリーン情報取得 変数=BGGET( レイヤー, X,Y [,座標系フラグ] ) レイヤー X,Y 座標系フラグ 戻り 0∼3 スクリーンデータ 0∼3 0∼BGSCREENで指定した値-1 (座標系フラグが0のとき) X:0~399、Y:0~239 (座標系フラグが1のとき) 0:座標系をBGSCREEN座標として扱う ※省略時0 1:座標系を画面座標として扱う キャラ番号、回転、反転を含む16ビット数値(&H0000∼&HFFFF) BGANIM 時間をマイナス値にするとフレーム間の変化は滑らかに補間されます。 BGによるアニメ 書式 引数 アニメ対象で絶対要素と早退要素に同じ項目を選択することはできません。 BGANIM レイヤー, "アニメ対象", 時間1,項目1[,項目2] [,時間2,項目1[,項目2]...] [, ループ ] BGANIM レイヤー, "アニメ対象", 1次元数値配列 [, ループ ] BGANIM レイヤー, "アニメ対象", "@ラベル文字列" [, ループ ] レイヤー アニメ対象 "XY" または 0 "Z" または 1 2 3 "R" または 4 "S" または 5 6 "V" または 7 相対指定 1次元数値配列 時間,項目1,項目2 @ラベル文字列 文字列 戻り ループ なし サンプル 0∼3 変化させる情報について32ビットの数値または文字列で指定 座標X,Y 座標Z 予約 予約 回転 スケール 予約 変数7 数値指定の場合、8を加算すると相対指定、 文字列指定の場合、末尾に'+'を付けると相対値となる("XY+") アニメデータが格納された1次元数値配列 変化情報(時間と項目1∼2) アニメデータが格納されたDATA命令の先頭ラベルを文字列で指定 アニメデータで構成される文字列 1∼(0で無限ループ) REM 直接時間と項目で指定する場合。 BGANIM 0, &H03, -60,200,100,-30,50,20 REM 16進数値で指定する場合。 BGANIM 0, &H03, @WALL_SCRL @WALL_SCRL DATA 2 'キーフレーム数 DATA -60, 200,100 '60フレーム(補間あり)、絶対位置200,100へ移動 DATA -30, 50,20 '30フレーム(補間あり)、絶対位置50,20へ移動 REM 文字列で指定する場合。 BGANIM 0, "XY", @WALL_SCRL REM 配列で渡す場合。 DIM WD[ 100 ]; WD[0] = -60 :'60フレーム(補間あり) WD[1] = 200 :'絶対位置X200 WD[2] = 100 :'絶対位置Y100 WD[3] = -30 :'30フレーム(補間あり) WD[4] = 50 :'絶対位置X50 WD[5] = 20 :'絶対位置Y20 BGANIM 0, "XY", WD BGCHK() BGアニメの状態(自動補間状態)取得 書式 引数 戻り b0 b1 b2 b3 b4 b5 b6 b7 BGSTART 書式 引数 戻り BGSTOP 変数 = BGCHK( レイヤー ) レイヤー 状態 1 2 4 8 16 32 64 128 0∼3 0=補間終了、0以外の時補間中(ビットごとに状態を管理) XY Z 予約 予約 R S 予約 V BGアニメーションを開始する BGSTART [レイヤー] レイヤー 0∼3(省略時すべてのレイヤー) なし BGアニメーションを停止する 書式 引数 戻り BGVAR -1- 書式 引数 戻り BGVAR -2- 書式 引数 戻り BGSTOP [レイヤー] レイヤー 0∼3(省略時すべてのレイヤー) なし BG用内部変数への書込み BGVAR レイヤー,変数番号,数値 レイヤー 変数番号 0∼3 0∼7 数値 なし BG用内部変数の値を得る BGVAR レイヤー,変数番号 OUT 数値 レイヤー 変数番号 数値 0∼3 0∼7 BGVARで書込んだ値 BGVAR -3- 書式 引数 BG用内部変数の値を得る(関数タイプ) 数値=BGVAR( レイヤー,変数番号 ) レイヤー 変数番号 戻り BGCOPY 数値 BGVARで書込んだ値 BGCOPY レイヤー, 始点X,始点Y, 終点X,終点Y, 転送先X,転送先Y レイヤー 始点X,Y 終点X,Y 転送先X,Y 戻り 0∼3 0∼BGSCREENで指定した値-1 0∼BGSCREENで指定した値-1 0∼BGSCREENで指定した値-1 なし BGスクリーンへ数値配列を流し込む 書式 引数 BGLOAD レイヤー, 数値配列 BGLOAD レイヤー, 始点X, 始点Y, 幅, 高さ, 数値配列 レイヤー 数値配列 始点X,始点Y 幅,高さ 戻り BGSAVE 0∼7 BGスクリーンをコピーする 書式 引数 BGLOAD 0∼3 なし 0∼3 スクリーンサイズ分の数値配列 流し込み領域の始点座標 流し込み領域のサイズ 領域の指定を省略すると、スクリーン全体を指定したことになる。 BGスクリーンを数値配列へ流し込む 書式 引数 BGSAVE レイヤー, [始点X, 始点Y, 幅, 高さ, ] 数値配列 レイヤー 数値配列 始点X,始点Y 幅,高さ 戻り なし 備考 0∼3 スクリーンサイズ分の数値配列 コピー元領域の始点座標 コピー元領域のサイズ 領域の指定を省略すると、スクリーン全体を指定したことになる。 配列要素数が不足するときは、配列が1次元の場合に限り要素数を自動拡張する。2次元以上の場合は要素数が不足すると Subscript out of rangeエラーとなる。 効果音 効果音発生 BEEP BEEP 書式 単純な音を鳴らす BEEP [効果音番号] 引数 [,周波数] [,音量] [,パンポット] 効果音番号 周波数 音量 パンポット 戻り 0∼133(省略時は0番、単純なPSG音) -32768∼32767(100で半音) 0∼127 0(左)∼64(中央)∼127(右) なし BGM BGM演奏 BGMPLAY、BGMSTOP BGM状態 BGMCHK() トラック音量制御 BGMVOL MMLユーザー定義 BGMSET、BGMSETD、BGMCLEAR MML内部レジスタ変更 BGMVAR、BGMVAR() 波形簡易定義 WAVSET、WAVSETA エフェクト制御 BGMCHK() 書式 引数 戻り BGMCLEAR 書式 引数 戻り BGMPLAY -1- 書式 引数 戻り EFCON、EFCOFF 音楽の演奏状態を得る 変数=BGMCHK( [ トラック番号 ] ) トラック番号 0∼7(省略時は0番) FALSE=停止中、TRUE=演奏中 ユーザー定義音楽を消去する BGMCLEAR [ 曲番号 ] 曲番号 128∼255(省略時全ての定義を消去) なし 音楽の演奏を開始する ・同時に8曲演奏可能(ただし同時発音数は全体で16音まで) BGMPLAY [ トラック番号, ] 曲番号 [ ,音量] トラック番号 曲番号 音量 なし 0∼7(省略時は0番) 0∼41/128∼255(ユーザー定義曲) BGMPLAY -2- 書式 MMLで音楽の演奏を開始する BGMPLAY "MML文字列" 引数 MML文字列 戻り なし 備考 BGMの楽器音用簡易波形 WAVSET 書式 引数 の定義 波形番号 エンベロープ定義パラメータ。0-127 S サスティン エンベロープ定義パラメータ。0-127 基準音程 戻り なし BGMの楽器音用簡易波形 の定義(配列より) 波形番号 終端インデックス なし 戻り ユーザー定義音楽番号 なし 省略した場合は69(O4A) MICSAVEで得た配列 省略時は0 省略時は配列の最後のインデックス 128∼255 音楽演奏用の専用言語文字列 ※MMLコマンド一覧参照 BGMSETD ユーザー定義音楽番号, "@ラベル文字列" ユーザー定義音楽番号 @ラベル文字列 なし 128∼255 MMLの文字列をDATA命令で登録し、そのラベルを文字列で指定 ・DATA命令を利用してMMLを内部に登録( DATA "CDEFGAB" ) ・DATAの終端は数値で判断( DATA 0 ) ・RESTOREと同じ扱いのため、BGMSETD後にREADする場合はRESTOREを使うこと MML内部変数への書込み 書式 引数 BGMVAR トラック番号, 変数番号, 値 トラック番号 変数番号 値 戻り BGMVAR() -2- 書式 引数 なし BGMSTOP 書式 引数 戻り 書式 引数 戻り 0∼7 0∼7(MMLの$0∼$7) 変数に書き込む値 MML内部変数の読込み 変数=BGMVAR( トラック番号, 変数番号 ) トラック番号 変数番号 戻り BGMVOL エンベロープ定義パラメータ。0-127 ユーザー定義音楽の事前定義(DATA文から) 備考 BGMVAR -1- エンベロープ定義パラメータ。0-127 BGMSET ユーザー定義音楽番号, "MML文字列" 戻り 引数 224∼255(MMLの@コマンドで指定する楽器番号) ユーザー定義音楽の事前定義(文字列から) MML文字列 書式 ・MICSAVEで得た配列を使用するのに便利 エンベロープ定義パラメータ。0-127 先頭インデックス BGMSETD 省略した場合は69(O4A) S サスティン 数値配列 引数 16進数文字列。2文字で1サンプルの値(8bit)をあらわす。64(128文字)サンプル又は128(256文字)サンプルの指定が可能。 エンベロープ定義パラメータ。0-127 基準音程 書式 エンベロープ定義パラメータ。0-127 A アタック R リリース BGMSET エンベロープ定義パラメータ。0-127 WAVSETA 波形番号, A, D, S, R, 数値配列 [,基準音程] [,先頭インデックス] [,終端インデックス] D ディケイ 戻り 224∼255(MMLの@コマンドで指定する楽器番号) A アタック 波形文字列 引数 ・波形データは2文字で符号付1バイトの情報を表す ・&H80(-128) ∼ 0 ∼ &H7F(127) R リリース 書式 この命令はトラック0でユーザー定義音楽の255を使用して演奏するため、定義が上書きされる WAVSET 波形番号, A, D, S, R, "波形文字列" [,基準音程] D ディケイ WAVSETA 音楽演奏用の専用言語文字列 ※MMLコマンド一覧参照 数値 0∼7 0∼7(MMLの$0∼$7) 演奏中の指定された変数の内容(演奏停止中は-1) 音楽演奏停止 BGMSTOP [ トラック番号 [ , フェード時間 ]] トラック番号 フェード時間 なし 0∼7(省略時は0番) 秒(少数指定可能、0の時即時停止、省略時0扱い) 指定トラックの音量を設定 BGMBOL [トラック番号,] 音量 トラック番号 音量 なし 0∼7 省略時は0 0~127 EFCON 書式 エフェクターをONにする EFCON 引数 なし 戻り EFCOFF 書式 なし エフェクターをOFFにする EFCOFF 引数 なし 戻り EFCSET 書式 引数 なし エフェクターをOFFにする EFCSET 種類番号 種類番号 0 = なし(EFCOFFと同等) 1 = リバーブ(風呂場) 2 = リバーブ(洞窟) 戻り EFCWET 書式 なし 3 = リバーブ(宇宙) BEEP,BGM,TALK それぞれのエフェクター深度を設定する EFCWET BEEPウェット値, BGMウェット値, TALKウェット値 引数 ウェット値 戻り なし 0∼127 ※大きいほどエフェクター効果が大きい ただしTALK は64以上で効果あり、64未満で無効(ON/OFFのみ) 音声合成 音声合成 TALK、TALKSTOP 発生状態 TALKCHK() ・音声文字列は最大で1000文字まで利用可能 音声合成による発声 TALK 書式 ・最大長はコントロールコマンドの使用数に応じて短くなります TALK "音声文字列" 引数 音声文字列 戻り なし TALKCHK() 書式 引数 書式 発音可能な文字は、ひらがな/カタカナ/句読点/アルファベット/数字/一部の記号 音声合成の状態調査 変数=TALKCHK() 戻り TALKSTOP 音声合成用の専用言語文字列 なし 数値 FALSE=停止中、TRUE=再生中 再生中の音声を停止 TALKSTOP 引数 なし 戻り なし 数学関連 数学関数 FLOOR()、ROUND()、CEIL()、ABS()、SGN()、MIN()、MAX()、RANDOMIZE、RND()、RNDF() 指数・対数関数 SQR()、EXP()、LOG()、POW() 三角関数 PI()、RAD()、DEG()、SIN()、COS()、TAN()、ASIN()、ACOS()、ATAN() 双曲線関数 SINH()、COSH()、TANH() FLOOR() 書式 引数 整数部を取り出す 変数 = FLOOR( 数値 ) 数値 戻り ROUND() 書式 引数 数値 整数部を取り出す 変数 = ROUND( 数値 ) 数値 戻り CEIL() 書式 引数 数値 整数部を取り出す 変数 = CEIL( 数値 ) 数値 戻り ABS() 書式 引数 数値 書式 引数 戻り 数値 求めた結果 小数部四捨五入 数値 求めた結果 小数部切り上げ 数値 求めた結果 絶対値を得る 変数 = ABS( 数値 ) 数値 戻り SGN() 小数部切り捨て 数値 数値 絶対値 符号取得 変数 = SGN( 数値 ) 数値 数値 数値 0または、±1 一番小さい値を返す MIN() 書式 引数 変数 = MIN( 数値 [,,, ] ) 変数 = MIN( 数値配列 ) 戻り 書式 引数 書式 引数 書式 引数 RANDOMIZE 書式 引数 書式 引数 0∼最大値-1までの整数乱数を取得 シードID 最大値 数値 実数型の乱数取得 書式 引数 書式 引数 数値 書式 引数 0∼7(乱数の系列を初期化) 省略時0 0以上1未満の実数乱数 RANDOMIZE シードID [, シード値 ] シードID シード値 数値 0∼7 省略(または0)時、利用できるエントロピー情報を用いて初期化 0または、±1 平方根値を求める 変数 = SQR( 数値 ) 数値 数値 平方根を求めたい数値 求めた結果 変数 = EXP( [ 数値 ] ) 数値 数値 書式 引数 引数 引数 戻り 書式 引数 戻り 数値 数値 数値 求めた結果 底 省略時自然対数を求める べき乗を求める 変数 = POW( 数値, 乗数 ) 数値 数値 数値 求めた結果 乗数 べき乗する値 パイを返す 変数 = PI() なし 数値 円周率の値 角度からラジアンへ 変数 = RAD( 角度 ) 角度 数値 0∼360 角度から求めたラジアン数値 ラジアンから角度へ 変数 = DEG( ラジアン値 ) 角度 戻り 書式 求めた結果 変数 = LOG( 数値 [,底 ] ) 戻り 書式 省略時eを返す 対数を求める 戻り COS() 0∼最大値-1までの整数乱数 乱数系列の初期化 戻り SIN() 取得する乱数の上限 0∼1.0以下までの実数乱数を取得 シードID 戻り DEG() 0∼7(乱数の系列を初期化) 省略時0 変数 = RNDF( [ シードID ] ) 戻り RAD() 渡された引数の中で一番大きい数 数値のリスト eのべき乗を求める 書式 引数 PI() 数値 変数 = RND( [ シードID, ] 最大値 ) 戻り POW() 数値 乱数取得 戻り LOG() 数値のリスト 数値 数値配列 戻り EXP() 渡された引数の中で一番小さい数 変数 = MAX( 数値配列 ) 戻り SQR() 数値 変数 = MAX( 数値 [,,, ] ) 戻り RNDF() 数値 一番大きい値を返す MAX() RND() 数値 数値配列 数値 0∼360 ラジアン値から求めた角度 サイン値を返す 変数 = SIN( ラジアン値 ) ラジアン値 数値 角度のラジアン値 求めた結果 コサイン値を返す 変数 = COS( ラジアン値 ) ラジアン値 数値 角度のラジアン値 求めた結果 TAN() 書式 引数 戻り ASIN() 書式 引数 戻り ACOS() 書式 引数 戻り ATAN() -1- 戻り 書式 戻り 書式 引数 戻り COSH() 書式 引数 戻り TANH() ラジアン値 数値 角度のラジアン値 求めた結果 アークサイン値を返す 変数 = ASIN( 数値 ) 数値 数値 -1.0∼1.0 ラジアン値 アークコサイン値を返す 変数 = ACOS( 数値 ) 数値 数値 -1.0∼1.0 ラジアン値 変数 = ATAN( 数値 ) 数値 数値 タンジェント値 ラジアン値 アークタンジェント値を返す(座標から) ※ATAN2相当 引数 SINH() 変数 = TAN( ラジアン値 ) アークタンジェント値を返す 書式 引数 ATAN() -2- タンジェント値を返す 書式 引数 戻り 変数 = ATAN( Y,X ) X,Y 数値 座標値 ラジアン値 ※ATAN(0,0)は0を返す ハイパボリックサイン値を返す 変数 = SINH( 数値 ) 数値 数値 双曲線正弦を求める実数 双曲線正弦 ハイパボリックコサイン値を返す 変数 = COSH(数値 ) 数値 数値 双曲線余弦を求める実数 双曲線余弦 ハイパボリックタンジェント値を返す 変数 = TANH( 数値 ) 数値 数値 双曲線正接を求める実数 双曲線正接 文字列操作 文字列関数 ASC()、CHR$()、VAL()、STR$()、HEX$()、FORMAT$() LEN()、MID$()、LEFT$()、RIGHT$()、*、INSTR()、SUBST() ASC() 書式 引数 戻り CHR$() 書式 引数 戻り VAL() 書式 引数 戻り STR$() 書式 引数 指定された文字のASCIIコードを返す 変数 = ASC( "文字" ) なし 数値 指定された文字コードから文字を返す 変数$ = CHR$( 文字コード ) 文字コード 文字 HEX$() 書式 引数 備考 文字コードに対応する文字 変数 = VAL( "文字列" ) 文字列 数値 数値の入った文字列 文字列から取出した数値 数値から文字列を得る 変数$ = STR$( 数値 [, 桁数]) 数値 文字 文字列にしたい数値 指定すると、指定桁数に右 えした文字列を返す(0∼63) 数値の桁数よりも指定桁数が少ない場合は無視される 数値から生成した文字列 桁数が大きい場合は指数表示となる (1e+17 等) 数値から16進文字列を得る 変数$ = HEX$( 数値 [,桁数] ) 数値 桁数 戻り 文字ごとに対応する番号 文字列から数値を得る 桁数 戻り 指定された文字の文字コード 文字 16進文字列にしたい数値 出力する16進文字の桁数。先頭からゼロサプレスする。(0∼8) 省略可。 数値から生成した16進文字列 数値の小数部は切り捨てられる FORMAT$() 書式 引数 表示書式を使って文字列を生成 文字列変数=FORMAT$( ”書式文字列", 変数... ) 書式文字列 %S %D %X %F 桁数指定 少数の桁数指定 スペース埋め ゼロ埋め 左寄せ 符号の追加 変数 戻り 文字列変数 書式 引数 整数を16進出力 実数を出力 %の次に桁数の数値を入れる(%8D、%4X) %の次に整数部桁数.小数部桁数の数値を入れる(%8.2F) 桁数指定数値の前にスペース文字を付ける(% 8D! 0) 桁数指定数値の前に0を付ける(%08D!00000000) 桁数指定数値の前に-を付ける(%-8D) プラス記号を表示させたい場合は、桁数指定の前に+を付ける(%+8D) 書式内で指定された要素分必要 生成された文字列 変数 = LEN( "文字列" ) 変数 = LEN( 配列変数) 文字列 戻り 書式 引数 数値 LEFT$() 書式 引数 書式 引数 引数 書式 引数 書式 引数 文字数 取出す文字数 文字単位の開始位置 切り出した文字列 文字列の左端から指定数分の文字列を取り出す 変数$ = LEFT$( "文字列", 文字数 ) 文字列 文字数 文字 元になる文字列 取出す文字数 切り出した文字列 文字列の右端から指定数分の文字列を取り出す 変数$ = RIGHT$( "文字列", 文字数 ) 文字列 文字数 文字 元になる文字列 取出す文字数 切り出した文字列 文字列の掛け算表現 変数$ = "文字列" * 回数 文字列 回数 文字 元になる文字列 指定された文字列をくりかえす回数 文字列を回数分繰り返して生成された文字列 文字列内に検索対象文字列を探す 変数 = INSTR( [,検索開始位置,] "文字列", "検索対象文字列" ) 文字列 検索対象文字列 検索開始位置 戻り SUBST$() 元になる文字列 文字 戻り INSTR() 配列変数のときは要素数 文字列 開始位置 戻り 書式 文字の数(全ての文字を1文字として数える) 変数$ = MID$( "文字列", 開始位置, 文字数 ) 戻り RIGHT$() 文字数を調べたい文字列 文字列の開始位置から指定数分の文字列を取り出す 戻り * 整数を10進出力 文字列内の文字数を得る LEN() MID$() 文字列変数の内容を出力 数値 元になる文字列 検索対象となる文字列 文字列内で検索を開始する位置。省略すると先頭から検索する。 見つかった場合文字列内の位置(-1=見つからない) 文字列の置換 変数$ = SUBST$( "文字列", 開始位置, [文字数,] "置換文字列" ) 文字列 元になる文字列 文字数 置換する文字数 省略すると、開始位置以降すべて 開始位置 置換文字列 戻り 文字 元になる文字列の置換開始位置(0∼文字数-1) 開始位置から文字数分をこの文字列で置き換える 切り出した文字列 ソースコード操作 ソースコード編集 PRGEDIT、PRGGET()、PRGSET、PRGINS、PRGDEL ソースコード情報 PRGSIZE()、PRGNAME$() 操作するプログラムスロ PRGEDIT 書式 引数 戻り ットとカレント位置の指 定 操作するプログラムスロットと、カレント位置を指定する。 PROGEDIT プログラムSLOT [,行番号] プログラムSLOT 行番号 なし 0∼3 省略すると、先頭行がカレント行となる PRGGET() 書式 引数 戻り PRGSET 書式 カレント行1行分の文字列取得 文字列変数=PRGGET() なし 文字列変数 カレント行の内容を指定文字列に置き換える PRGSET "文字列" 引数 文字列 戻り なし 備考 PRGINS 書式 カレント行への1行挿入 PRGINS "文字列" 文字列 戻り なし 備考 書式 引数 戻り PRGSIZE() 書式 引数 戻り カレント行を置き換える文字列 PRGGETが空行を返していた場合、ソースコード終端に1行追加する 引数 PRGDEL カレント行のソース文字列(範囲外の場合、空文字列) 挿入するソース文字列情報 文字列中に改行コード CHR$(13) が含まれている場合、複数行の挿入となる カレント行の削除 PRGDEL [削除行数] 削除行数 なし 削除したい行の数(省略時1行、マイナス値を入れた場合全体を削除) ソースコードの行数取得 変数=PRGSIZE( [プログラムSLOT] ) プログラムSLOT 数値 0∼3 プログラムの行数 PRGNAME$() LOAD, SAVEで指定したプログラムのファイル名を返す 書式 文字列変数=PRGNAME$( [プログラムSLOT] ) 引数 戻り プログラムSLOT 文字列変数 0∼3 ファイル名
© Copyright 2024