PDFファイル

ダイレクトモード専用(プログラム内記述不可)
制御
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
ファイル名