T-BASICはMicrosoft BASICに東芝独自の拡張を行ったものである。 OA-BASICは東芝が開発したオフィス用途に特化したBASIC、T-BASIC7はT-BASICをベースにPASOPIA7で拡張されたものを追加したBASICである。 T-BASICには初期版のVer.1.0とROMPAC及び後期版のVer.1.1がある。 また、T-DISKBASICにはVer.1.0と2.0が存在する。 差異は注釈 ※にて示す。 今回はT-BASIC及びT-BASIC7、それとT-BASICのDISK版を取り扱うこととする。 なお、T-BASICは命令と引数の間にスペースがないとエラーになるので注意。 |
T-BASIC簡易リファレンス | |||
---|---|---|---|
コマンド | |||
表記 | 凡例 | 使用例 | 説明 |
AUTO | AUTO [行番号][,増分] | AUTO 100,5 | 先頭に自動的に行番号を発生させる(増分を省略した場合は10) |
DELETE | DELETE 行番号[,[行番号2]][,...] DELETE [行番号][-[行番号2]] | DELETE 10,100 DELETE 100-200 | 指定した行番号を削除する 指定した範囲の行番号を削除する |
LIST | LIST {[行番号] | [.]} LIST [行番号][,[行番号2]][,...] LIST [行番号][-[行番号2]] | LIST LIST 10,100 LIST 100-200 | メモリ上のプログラムを表示する 指定した行番号を表示する 指定した範囲の行番号を表示する |
EDIT | EDIT {[行番号] | [.]} | EDIT . | 指定した行番号を編集モードで表示する |
LLIST | LLIST {[行番号] | [.]} LLIST [行番号][,[行番号2]][,...] LLIST [行番号][-[行番号2]] | LLIST LLIST 10,100 LIST 100-200 | メモリ上のプログラムをプリンタに出力する 指定した行番号をプリンタに出力する 指定した範囲の行番号をプリンタに出力する |
RENUM | RENUM [新行番号][,[旧行番号],[増分]] | RENUM 1000,10,100 | 新行番号を先頭に行番号をつけ直す |
NEW | NEW | NEW | プログラムを全て消去し、変数を初期化する |
CLEAR | CLEAR [文字列領域サイズ][,BASIC使用上限アドレス][,配列領域サイズ] | CLEAR 32767,&hf0fb,512 | 変数を初期化し、領域サイズとBASIC使用上限アドレスを設定する |
CONT | CONT | CONT | STOPキーやSTOP,ENDで終了したプログラムの実行を再開する |
RUN | RUN {[行番号] | "[ファイル装置番号:]ファイル名"} | RUN 100 | 指定した行番号からプログラムを実行する(行番号を省略した場合は先頭から、ファイル名を指定した場合は読み込んで実行する) |
CSAVE | CSAVE "ファイル名" | CSAVE "test" | カセットテープにプログラムを保存する |
CLOAD | CLOAD ["ファイル名"] | CLOAD "test" | カセットテープからプログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む) |
CLOAD? | CLOAD? ["ファイル名"] | CLOAD? "test" | カセットテープのプログラムを照合する(ファイル名を省略した場合は最初に見つかったプログラムを照合する) |
SAVE disk | SAVE "[ファイル装置番号:]ファイル名"[,{A | P}] | SAVE "1:test.bas" | 記録メディアに[ASCII形式で | 暗号化で]プログラムを保存する |
LOAD disk | LOAD "[ファイル装置番号:]ファイル名"[,R] | LOAD "1:test.bas" | 記録メディアからプログラムを読み込む(Rを付加した場合は実行も行う) |
BSAVE disk | BSAVE "[ファイル装置番号:]ファイル名",開始アドレス,サイズ | BSAVE "1:test.bin",&hd000,&h1000 | 記録メディアにマシン語ファイルを保存する |
BLOAD disk | BLOAD "[ファイル装置番号:]ファイル名"[,開始アドレス] | BLOAD "1:test.bin",&hd000 | 記録メディアからマシン語ファイルを読み込む |
FILES disk | FILES [ファイル装置番号] | FILES 1 | 記録メディアにあるファイル一覧を出力する |
LFILES disk | LFILES [ファイル装置番号] | LFILES 1 | 記録メディアにあるファイル一覧をプリンタに出力する |
KILL disk | KILL "[ファイル装置番号:]ファイル名" | KILL "1:test.bas" | 記録メディア上のファイルを削除する |
NAME disk | NAME "[ファイル装置番号:]旧ファイル名" as "[ファイル装置番号:]新ファイル名" | NAME "1:test.bas" as "1:test2.bas" | 記録メディア上のファイル名を変更する |
CHAIN disk | CHAIN [MERGE] "[ファイル装置番号:]ファイル名"[,[行番号]][,[ALL]],[DELETE [行番号][-[行番号2]] | CHAIN "1:test.bas" | 記録メディア上にあるファイルに変数を引き渡して実行する |
MERGE disk | MERGE "[ファイル装置番号:]ファイル名" | MERGE "1:test.bas" | 記録メディア上のASCII形式ファイルとメモリ上のプログラムをマージする |
COMMON disk | COMMON [変数名] | COMMON A$,B$ | CHAINの実行時、メモリ上のプログラムからCHAINされるプログラムに変数を引き渡す |
COPY | COPY [機能番号] | COPY 3 | 画面をプリンタにハードコピーする(T-BASICでは機能番号は指定できない)1 : テキスト画面 |
MON T-BASIC7 | MON | MON | モニタコマンドモード ※にする |
TERM | TERM | TERM | ターミナルモードにする |
TRON | TRON | TRON | トレースモードにする |
TROFF | TROFF | TROFF | トレースモードを解除する |
[戻る] | |||
ステートメント:プログラム制御 | |||
表記 | 凡例 | 使用例 | 説明 |
END | END | END | プログラムを終了する |
STOP | STOP | STOP | プログラムを一時停止する |
REM | REM | ' | REM TEST | 注釈を入れる(実行には無関係) |
FOR...TO...STEP〜NEXT | FOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数][,変数2][,...] | FOR I=0 TO 10 STEP 2〜NEXT I | FORからNEXTまでの処理を繰り返す |
GOTO | GO TO | GOTO | GO TO 行番号 | GOTO | GO TO 1000 | 指定した行番号から実行する |
GOSUB | GOSUB 行番号 | GOSUB 1000 | サブルーチンを呼び出す |
RETURN | RETURN [行番号] | RETURN | サブルーチンから復帰する |
IF...THEN | GOTO...ELSE | IF 論理式 {THEN 文|GOTO 行番号} [ELSE 文] | IF A=0 {THEN END|GOTO 10} ELSE GOSUB 100 | 論理式の条件判断をする |
WHILE〜WEND | WHILE 論理式〜WEND | WHILE A=0〜WEND | 論理式が真である間、繰り返して実行する |
ON...GOTO | ON 式 GOTO 行番号[,行番号2][,...] | ON A GOTO 100,200 | 式の値に応じて指定された行番号へ分岐する |
ON...GOSUB | ON 式 GOSUB 行番号[,行番号2][,...] | ON A GOSUB 100,200 | 式の値に応じて指定された行番号のサブルーチンを呼び出す |
ON ERROR GOTO | ON ERROR GOTO 行番号 | ON ERROR GOTO 100 | エラー発生時の分岐処理ルーチンを指定する ※エラーメッセージ一覧 |
RESUME | RESUME {[0] | NEXT | 行番号} | RESUME 100 | エラー処理を終了し、実行を再開する0 : エラー原因になった行から再開する(0を省略しても同じ) |
ON COM GOSUB | ON COM GOSUB 行番号 | ON COM GOSUB 100 | RS-232C回線からの割り込みが発生した場合の分岐処理サブルーチンを指定する |
ON KEY GOSUB | ON KEY GOSUB 行番号[,行番号2][,...] | ON KEY GOSUB 100,200 | ファンクションキーからの割り込みが発生した場合の分岐処理サブルーチンを指定する |
ON TIME$ GOSUB | ON TIME$=時刻 GOSUB 行番号 | ON TIME$="00:00:00" GOSUB 100 | 指定した時刻の割り込みが発生した場合の分岐処理サブルーチンを指定する |
WAIT | WAIT ポート番号,式1[,式2] | WAIT 1,&H80 | ポートをモニタし、指定された値になるまでプログラムの実行を停止する |
[戻る] | |||
ステートメント:変数関連 | |||
表記 | 凡例 | 使用例 | 説明 |
INPUT | [LINE ]INPUT [文字列{; | , }]変数[,変数2][,...] | INPUT "X=";X | キーボードから入力した値を変数に代入する(LINEを付加した場合は1行分の入力データがコンマなども含めて代入、変数は1個で文字列変数のみ) |
LET | LET 変数=式 | LET A=1 | 変数に値を代入する(LETは省略できる) |
SWAP | SWAP 変数1,変数2 | SWAP A,B | 変数の値を入れ替える |
DATA | DATA 定数[,定数2][,...] | DATA "TEST",765 | READで読み込むデータを定義する |
READ | READ 変数[,変数2][,...] | READ A$,B | DATAで定義したデータを変数に代入する |
RESTORE | RESTORE [行番号] | RESTORE 1000 | READで読み込むDATAの先頭行を設定する |
DEF FN | DEF FN関数名(パラメータ[,パラメータ2[,...]])=定義式 | DEF FNTEST(X,A,B)=X^2+AX+B | ユーザ定義関数を定義する |
DEFINT | DEFINT {変数名[,変数名2][,...] | 変数名-変数名2} | DEFINT A,B | 変数の整数型宣言をする |
DEFSNG | DEFSNG {変数名[,変数名2][,...] | 変数名-変数名2} | DEFSNG A-Z | 変数の単精度型宣言をする |
DEFDBL | DEFDBL {変数名[,変数名2][,...] | 変数名-変数名2} | DEFDBL A,B-Z | 変数の倍精度型宣言をする |
DEFSTR | DEFSTR {変数名[,変数名2][,...] | 変数名-変数名2} | DEFSTR A-B,E,X-Z | 変数の文字型型宣言をする |
DIM | DIM 変数名(最大値[,最大値2][,...])[,...] | DIM A(100,10),B$(100) | 配列変数の定義をする |
ERASE | ERASE 変数名[,変数名2[,...]] | ERASE A,B$ | 配列変数を消去する |
OPTION BASE | OPTION BASE {0 | 1} | OPTION BASE 1 | 配列添字の最小値を設定する |
RANDOMIZE | RANDOMIZE 式 | RANDOMIZE 1000 | 乱数系列を設定する |
[戻る] | |||
ステートメント:マシン語関連 | |||
表記 | 凡例 | 使用例 | 説明 |
CALL | CALL 変数名(変数) | CALL TEST(A) | 変数名で指定したアドレスのマシン語を実行する |
DEF USR | DEF USR[番号]=アドレス | DEF USR1=&HD000 | USRで呼び出すマシン語サブルーチンを定義する |
POKE | POKE アドレス,数式 | POKE &HD000,&HC9 | 指定したアドレスに値を書き込む |
[戻る] | |||
ステートメント:画面関連 (T-BASICではパレットコードはカラーコード ※) | |||
表記 | 凡例 | 使用例 | 説明 |
CLS | CLS [機能番号] | CLS 3 | 指定した画面を消去する(T-BASICでは機能番号はない)0 : 全て |
LOCATE | LOCATE X,Y[,カーソル表示] | LOCATE 10,10 | 指定した位置にカーソルを移動する |
PRINT [{[USING 書式;データ] | [式]}[{, | ;}式2[,...]]] | PRINT "HELLO,WORLD" | 画面上に表示する ※ | |
WRITE | WRITE 式 | WRITE "HELLO,WORLD" | 画面上に表示する(PRINTとの違いは空白は詰めて、区切りはコンマで出力する) |
COLOR | COLOR [テキスト色][,バックグラウンド色][,パレットコード] | COLOR 7,0,7 | テキストとバックグラウンドは0-7までの8色、パレットコードは0-7までを指定する(T-BASICではパレットコードはない) |
COLOR= T-BASIC7 | COLOR=(パレットコード,カラー1,カラー2) | COLOR=(7,6,5) | パレットコードの色を変更する(27色中指定可能) |
CONSOLE | CONSOLE [スクロール開始行][,[スクロール終了行]][,[ファンクションキー表示モード]][,[テキスト文字表示モード]] | CONSOLE 0,25,1,8 | テキスト画面を設定する(T-BASICではスクロール行のみ) |
SCREEN | SCREEN 画面モード[,表示スイッチ][,アクティブページ][,ディスプレイページ] | SCREEN 2 | 画面のモードを設定する(T-BASICでは画面モードのみ)・画面モード |
WIDTH | WIDTH [LPRINT] 画面サイズ | WIDTH 80 | 画面[プリンタ出力]桁数を設定する(40以下なら40文字モード、40以上80以下なら80文字モード) |
CIRCLE | CIRCLE [STEP](X,Y),半径,[パレットコード],[開始角度],[終了角度],[比率] | CIRCLE(0,0),100,2 | 円を描画する |
DRAW | DRAW 文字列 | DRAW "D16R16U16L16" | コマンドの指定 ※に従って画面に描写する |
GET@ | GET@(X1,Y1)-{(X2,Y2) | STEP(X,Y)},配列変数名 | GET@(0,0)-(15,15),A% | 画面上のグラフィックパターンを配列変数に読み込む |
PUT@ | PUT@(X1,Y1)-{(X2,Y2) | STEP(X,Y)},{配列変数名 | KANJI(漢字コード)}[,条件][,フォアグラウンドカラー][,バックグラウンドカラー] | PUT@(0,0),A%,PSET PUT@(0,0),KANJI(&K2033) | GET@で取り込んだパターンや指定した漢字を表示するPSET : そのまま描画する |
LINE | LINE{(X1,Y1) | STEP(X1,Y1)}-{(X2,Y2) | STEP(X2,Y2)}[,パレットコード][,{B | BF} | LINE(0,0)-(100,100),4,BF | 直線(B:四角形,BF:塗りつぶした四角形)を描画する |
PAINT | PAINT{(X,Y) | STEP(X,Y)}[,領域パレットコード][,境界パレットコード] | PAINT(100,100),5,2 | 指定した境界色で囲まれた領域を塗る |
PSET | PSET{(X,Y) | STEP(X,Y)}[,パレットコード] | PSET(100,100),2 | 指定した座標にドットを表示する |
PRESET | PRESET{(X,Y) | STEP(X,Y)}[,パレットコード] | PRESET(100,100),2 | 指定した座標のドットを消去する |
[戻る] | |||
ステートメント:サウンド関連 | |||
表記 | 凡例 | 使用例 | 説明 |
BEEP T-BASIC7 | BEEP | BEEP | BEEP音を鳴らす |
SOUND | SOUND 音階,音長 | SOUND 36,10 | 音階(11〜84)と音長を指定して鳴らす |
PLAY T-BASIC7 | PLAY MML文字列[,MML文字列2][...,MML文字列6] | PLAY "O3CDEFGAB" | MML ※の文法に従って演奏する |
[戻る] | |||
ステートメント:ディスク関連 | |||
表記 | 凡例 | 使用例 | 説明 |
OPEN disk | OPEN ファイル名 [FOR モード] AS #ファイル番号 | OPEN "test.bas" FOR INPUT AS #1 | 指定したファイルをファイル番号でOPENするINPUT : 入力モード |
CLOSE disk | CLOSE #ファイル番号[,#ファイル番号2][,...] | CLOSE #1 | 指定したファイル番号のファイルをCLOSEする |
SET | SET {ファイル装置番号 | "[ファイル装置番号:]ファイル名" | #ファイル番号},{"P" | "R" | etc.} | SET 1,"P" | ファイル属性を設定するP: ライトプロテクト |
FIELD disk | FIELD #ファイル番号,フィールド幅 as 文字列変数[,フィールド幅] [as ....] | FIELD #1,128 as TEST$,64 | ランダムファイルバッファにフィールド変数を割り当てる |
GET disk | GET #ファイル番号[,数式] | GET #1,10 | ファイルからデータをファイルバッファに読み込む |
PUT disk | PUT #ファイル番号[,数式] | PUT #1,10 | ファイルバッファのデータをファイルに書き込む |
INPUT # disk | [LINE ]INPUT #ファイル番号,変数[,変数2[,...]] | INPUT #1,A,B | シーケンシャルファイル中のデータを読み込んで変数に代入する(LINEを付加した場合はコンマなどを無視して代入、変数は1個で文字列変数のみ) |
INPUT$ disk | INPUT$(文字数,#ファイル番号) | INPUT$(10,#2) | ファイルから指定した文字数分を読み込む |
PRINT # disk | PRINT #ファイル番号[{[USING 書式;データ] | [式]}[;式2[,...]]] | PRINT #1,A,B | ファイルにデータを書き込む |
WRITE # disk | WRITE #ファイル番号,式 | WRITE #1,A,B | ファイルにデータを書き込む(PRINT #との違いは空白は詰めて、区切りはコンマで出力する) |
DSKO$ disk | DSKO$(ファイル装置番号,ヘッド番号,トラック番号,セクタ番号) | DSKO$(1,1,2,3) | ファイル装置に直接256bytesの文字列を書きこむ |
LSET disk | LSET 文字変数=文字列 | LSET A$="TEST" | ランダムファイルバッファのフィールドに左詰めで文字列を代入する |
RSET disk | RSET 文字変数=文字列 | RSET A$="TEST" | ランダムファイルバッファのフィールドに右詰めで文字列を代入する |
[戻る] | |||
ステートメント:その他 | |||
表記 | 凡例 | 使用例 | 説明 |
ERROR | ERROR エラー番号 | ERROR 19 | 指定したエラー番号のエラーを発生させる ※エラーメッセージ一覧 |
KEY | KEY 番号,文字列 | KEY 1,"TEST" | 指定した番号のファンクションキーに文字列を設定する |
KEY LIST | KEY LIST | KEY LIST | ファンクションキーの内容を表示する |
KEY ON/OFF/STOP | KEY(番号) ON/OFF/STOP | KEY(1) ON/OFF/STOP | ファンクションキー割り込みを設定する キー番号を省略してKEY ON/OFFとした場合は画面下部のファンクションキーを表示/消去する |
LPRINT | LPRINT [{[USING 書式;データ] | [式]}[{, | ;}式2[,...]]] | LPRINT A$ | プリンタに出力する |
MOTOR | MOTOR [{0 | 1}] | MOTOR 1 | カセットテープのモータ制御を行う |
OUT | OUT ポート番号,数式 | OUT &HD0,10 | ポートに値を出力する |
[戻る] | |||
文字列関数 ※ | |||
表記 | 凡例 | 使用例 | 説明 |
ASC | ASC(文字列式) | ASC("TEST") | 文字列先頭のキャラクタコードを返す |
VAL | VAL(文字列式) | VAL("123") | 文字列を数値に変換する |
CHR$ | CHR$(数式) | CHR$(41) | 指定したキャラクタコードの文字を返す |
STR$ | STR$(数式) | STR$(A) | 数値を文字列に変換する |
STRING$ | STRING$(式,[文字列 | 数式}) | STRING$(10,"=") | 指定した文字数だけ追加した文字列を返す |
SPACE$ | SPACE$(数式) | SPACE$(A) | 指定した長さの空白文字列を返す |
SPC | SPC(数式) | SPC(A) | 指定した長さの空白を返す(出力文字式内でのみ使用) |
TAB | TAB(数式) | TAB(A) | 指定した位置まで空白を返す(出力文字式内でのみ使用) |
DATE$ | DATE$ | DATE$="10/01/01" | 日付文字列変数を操作する |
TIME$ | TIME$ | TIME$="12:34:56" | 時刻文字列変数を操作する |
HEX$ | HEX$(数式) | HEX$(255) | 10進数を16進数文字列に変換する |
OCT$ | OCT$(数式) | OCT$(255) | 10進数を8進数文字列に変換する |
INSTR | INSTR([開始位置,]文字列1,文字列2 | INSTR(3,A$,"A") | 文字列1の指定位置から文字列2を検索して位置を返す |
LEN | LEN(文字列式) | LEN(A$) | 文字列の文字数を返す |
LEFT$ | LEFT$(文字列式,式) | LEFT$(A$,2) | 文字列の左側から式で指定した桁数の文字列を返す |
MID$ | MID$(文字列式,式1[,式2])[=文字列] | MID$(A$,2,1) | 文字列の式1で指定した位置から式2で指定した桁数の文字列を返す(=文字列を指定した場合はその文字列と置換する) |
RIGHT$ | RIGHT$(文字列式,式) | RIGHT$(A$,2) | 文字列の右側から式で指定した桁数の文字列を返す |
CVI | CVI(2バイト文字列式) | CVI(TEST$) | 文字列を整数値に変換する |
CVS | CVS(4バイト文字列式) | CVS(TEST$) | 文字列を単精度値に変換する |
CVD | CVD(8バイト文字列式) | CVD(TEST$) | 文字列を倍精度値に変換する |
MKI$ | MKI$(整数値) | MKI$(A%) | 整数値を文字列に変換する |
MKS$ | MKS$(単精度値) | MKS$(A!) | 単精度値を文字列に変換する |
MKI$ | MKI$(倍精度値) | MKD$(A#) | 倍精度値を文字列に変換する |
[戻る] | |||
数値関数 ※ | |||
表記 | 凡例 | 使用例 | 説明 |
CINT | CINT(数式) | CINT(A%) | 数式を整数値に変換する |
CSNG | CSNG(数式) | CSNG(A!) | 数式を単精度に変換する |
CDBL | CDBL(数式) | CDBL(A#) | 数式を倍精度に変換する |
FIX | FIX(数式) | FIX(A) | 数式の整数値を返す(小数点以下を切り捨てる) |
INT | INT(数式) | INT(A) | 数式の整数値を返す(数式の値を超えない整数値) |
SGN | SGN(数式) | SGN(A) | 数式の符号を返す |
RND | RND(数式) | RND(A) | 0以上1未満の乱数を返す正数: 次の乱数を発生する(省略した場合も同様) |
[戻る] | |||
数学関数 | |||
表記 | 凡例 | 使用例 | 説明 |
ABS | ABS(数式) | ABS(-1000) | 絶対値を返す |
SIN | SIN(数式) | SIN(3.14) | 正弦(サイン)の値を返す |
COS | COS(数式) | COS(3.14) | 余弦(コサイン)の値を返す |
TAN | TAN(数式) | TAN(3.14) | 正接(タンジェント)の値を返す |
ATN | ATN(数式) | ATN(3.14) | 逆正接(アークタンジェント)の値を返す |
EXP | EXP(数式) | EXP(1) | 自然対数の低(e)に対する指数関数の値を返す |
LOG | LOG(数式) | LOG(1) | 自然対数の値を返す |
SQR | SQR(数式) | SQR(2) | 平方根の値を返す |
[戻る] | |||
その他関数 | |||
表記 | 凡例 | 使用例 | 説明 |
ATTR$ disk | ATTR$({ファイル装置番号 | #ファイル番号 | [ファイル装置番号:]ファイル名} | ATTR$("1:test.bas") | 指定したドライブ、ファイルの属性文字を返す。" " : 属性なし |
DSKF disk | DSKF(ファイル装置番号) | DSKF(1) | 指定したファイル装置の残り容量(クラスタ)を返す |
DSKI$ disk | DSKI$(ファイル装置番号,ヘッド番号,トラック番号,セクタ番号) | DSKI$(1,1,2,3) | ファイル装置から直接読み込んだ256bytesの文字列を返す |
FPOS disk | FPOS(ファイル装置番号) | FPOS(1) | 指定したファイル装置の現在のセクタ番号を返す |
LOC disk | LOC(ファイル番号) | LOC(1) | 指定したファイル番号の論理的位置を返す |
LOF disk | LOF(ファイル番号) | LOF(1) | 指定したファイル番号のサイズを返す |
VARPTR | VARPTR {変数名 | #ファイル番号}[,{0 | 1}] | 変数が格納されているアドレスやファイルコントロールブロックの開始値を返す | |
FRE | FRE(番号) | FRE(0) | 使用可能なメモリサイズを返す(番号指定は無視される) |
INKEY$ | INKEY$ | INKEY$ | 押されたキーの値を返す |
CSRLIN | CSRLIN | CSRLIN | 現在のカーソル行位置を返す |
POS | POS(番号) | POS(0) | 現在のカーソル桁位置を返す(番号指定は無視される) |
POINT | POINT{(X,Y) | STEP(X,Y)} | POINT(100,100) | 指定した座標のパレットコードを返す |
ERL | ERL | ERL | エラーの発生した行を返す |
ERR | ERR | ERR | エラー番号を返す |
LPOS | LPOS(番号) | LPOS(0) | プリンタのヘッド位置を返す(番号指定は無視される) |
INP | INP(ポート番号) | INP(100) | 指定したポート番号の入力値を返す |
PEEK | PEEK(アドレス) | PEEK(&HD000) | 指定したアドレスの値を返す |
USR | USR番号(式) | I=USR1(TEST) | マシン語関数を呼び出す |
TIME | TIME | TIME | 電源ON時からのタイムカウンタを返す |
[戻る] |
※ モニタコマンド
D[adr] : Dump(メモリをダンプする)
J[adr] : Jump(メモリの内容を実行する)
M[adr] : Memory(メモリを編集する)
R : Register(レジスタ内容を表示する)
B : Break(BASICに戻る。CTRL+Cでも可)
※ カラーコード
0 : Black
1 : Blue
2 : Red
3 : Magenta
4 : Green
5 : Cyan
6 : Yellow
7 : White
※ PRINT書式
; : 式を続けて表示する(A;B)
例 1;2
1 2
, : 式をTABで区切って表示する(A,B)
例 1,2
1 2
・USINGの書式
! : 文字列の最初だけを表示する
例 "!";"TEST"
T
&(空白)& : &と空白の文字列分文字列を表示する(少ない場合は左詰め)
例 "[& &]";"TEST"
[TEST ]
@ : 文字列を出力する
# : 数値を桁数指定して出力する(少ない場合は右詰め)
例 "[#####]";100
[ 100]
. : 小数点位置を指定する(冗長部分は0が出力される)
例 "[##.#####];3.1415!
[ 3.14150]
+ : 符号を出力する(負数の場合は負符号になる)
例 "[+####]";100
[+ 100]
- : 最後につけた場合、負符号を出力する
例 "[###-]";-10
[ 10-]
例 "[###-]";10
[ 10 ]
** : 先頭につけた場合、表示領域の空白を「*」で埋める
例 "[**####]";100
[***100]
\\ : 先頭につけた場合、数値の直前に「\」を出力する
例 "[\\####]";100
[ \100]
**\ : 先頭につけた場合、表示領域の空白を「*」で埋めて、数値の直前に「\」を出力する
例 "[**\####]";100
[****\100]
, : 桁数指定の「#」内につけた場合(「.」より左側)、3桁毎に「,」を出力する
例 "[#,#####]";1000
[ 1,000]
^^^^ : 桁数指定の「#」につけた場合、指数形式で出力する
例 "[###^^^^^]";1000
[ 10E+02]
※ DRAW構文
An : 基点座標軸(n=0:X→,Y↓ 1:X↑,Y→ 2:X←,Y↑ 3:X↓,Y←)
Cn : n=パレットコード
Sn : n=スケール
Rn : X軸をn*スケール分正方向に描画する
Un : X軸をn*スケール分負方向に描画する
Dn : Y軸をn*スケール分正方向に描画する
Ln : Y軸をn*スケール分負方向に描画する
En : X軸をn*スケール分正方向、Y軸を負方向に描画する
Fn : X軸をn*スケール分負方向、Y軸を負方向に描画する
Gn : X軸をn*スケール分負方向、Y軸を正方向に描画する
Hn : X軸をn*スケール分正方向、Y軸を正方向に描画する
Mx,y : (X,Y)の点まで直線を描画する
※ MML構文(NEWなどの初期化後も設定が残るため注意)
C,D,E,F,G,A,B : 音階(音長指定はLコマンドのみ)
+ #: 半音上げる
- : 半音下げる
Pn : n分休符
Ln : 音長指定(初期値は4で1〜64まで、「.」は使えないため、符点4分音符なら6を設定する)
Tn : テンポ指定(初期値は120で32〜255まで)
On : オクターブ指定(初期値は3で0〜6までだが、O0B〜06B+が範囲)
Nn : 音の高さを数値で指定する(11〜84)
Sn : ソフトウェアエンベロープの種類を指定(0〜7)
Mn : ソフトウェアエンベロープの周期を指定(0〜255)
Z : 和音同期コマンド(長い演奏だと和音にズレが生じるため)
※ 定数型・変数型
A$ : 文字列型(A$="TEST")
単精度(A!) : ±2.93874E-39〜±1.70141E+38
倍精度(A#) : ±2.938735877055719D-39〜±1.701411834604692D+38
A% : 整数型
A! : 単精度実数型(A!=-7.01E-06、A!=3.14!)
A# : 倍精度実数型(A#=1.03234E43、A#=12345.6#)
&O : 8進数形式(&O777、&127)
&H : 16進数形式(&HFFFF)
※ 演算子
+ : 加算・結合(A+B、A$+B$)
- : 減算(A-B)
* : 乗算(A*B)
/ : 除算(A/B)
\ : 整数除算(A\B)
MOD : 整数の剰余(A MOD B)
^ : べき算(A^B)
= : 等号・代入(A=3、A=B+C)
> < : 不等号・比較(A>3、A<=2)
NOT : 否定(NOT 2)
AND : 論理積(2 AND 1)
OR : 論理和(2 OR 1)
XOR : 排他的論理和(2 XOR 1)
IMP : 包含(1 IMP 0)→ORの否定
EQV : 同値(1 EQV 0)→XORの否定
T-BASICは他のMicrosoft系BASICとエラーメッセージの表示に違いがある 下記にその一覧を記す | |||
エラーメッセージ一覧 | |||
---|---|---|---|
番号 | T-BASICでの表示 | 英語表記 | 意味 |
1 | ?NF Error | NEXT without FOR | NEXTに対応したFORがない |
2 | ?SN Error | SyNtax error | コマンド、またはステートメントの書き方が間違っている |
3 | ?RG Error | RETURN without GOSUB | RETURNに対応したGOSUBがない |
4 | ?OD Error | Out of Data | READに対応したDATAがない |
5 | ?FC Error | illegal Function Call | 関数やステートメントの引数が間違っている |
6 | ?OV Error | OVerflow | 値が許容範囲を超えた |
7 | ?OM Error | Out of Memory | メモリが不足している |
8 | ?UL Error | Undefined Line number | 未定義の行番号を指定した |
9 | ?BS Error | suBScript out of range | 配列の添字が指定した範囲外 |
10 | ?DD Error | Duplicate Definition | 配列やユーザ関数が二重宣言された |
11 | ?/0 Error | division by zero | 除算の分母が0 |
12 | ?ID Error | Illegal Direct | ダイレクトモードで使えないステートメントを使った |
13 | ?TM Error | Type Mismatch | 変数または定数の型が合わない |
14 | ?OS Error | Out of String space | 変数領域が不足している |
15 | ?LS Error | String too Long | 文字定数または文字変数が256文字を超えた |
16 | ?ST Error | String formula Too complex | 文字式が複雑すぎる |
17 | ?CN Error | CaN't continue | CONTによるプログラムの再開ができない |
18 | ?UF Error | Undefined user Function | 未定義関数を参照した |
19 | ?NR Error | No Resume | エラー処理にRESUMEがない |
20 | ?RW Error | Resume Without error | エラー処理でないのにRESUMEが使用された |
21 | ?UE Error | Unprintable Error | エラーメッセージの定義されていないエラー |
22 | ?MO Error | Missing Operand | 必要なオペランドが不足している |
23 | ?BO Error | line Buffer Overflow | 行入力バッファが許容範囲を超えた |
24 | ?CO Error | Communications buffer Overflow | 通信バッファがオーバーフローした |
25 | ?CE Error | Communication Error | 通信エラー |
26 | ?FN Error | FOR without NEXT | FORに対するNEXTがない |
27 | ?TP Error | TaPe read error | テープ読み込みエラー |
28 | ?PO Error | Printer Offline | プリンタが接続されていない |
29 | ?WH Error | WHILE without WEND | WHILEに対応するWENDがない |
30 | ?WE Error | WEND without WHILE | WENDに対応するWHILEがない |
31 | ?PI Error | Port not Initialized | ポートが初期化されていない |
― | ?UE Error | Unprintable Error | エラーメッセージの定義されていないエラー |
50 | ?FO Error | FIELD Overflow | FIELDの長さが256文字を超えている |
51 | ?IE Error | Internal Error | 内部エラー |
52 | ?BN Error | Bad file Number | 使用されたファイル番号は使用できない |
53 | ?FF Error | File not Found | 指定したファイルが存在しない |
54 | ?AO Error | file Already Open | 指定したファイルが既にOPENされている |
55 | ?IO Error | disk I/O error | ディスク装置エラー |
56 | ?FE Error | File already Exists | 指定したファイルは既に存在している |
57 | ??? Error | 未定義エラー | |
58 | ?AM Error | disk Already Mounted | ディスクが既にマウントされている |
59 | ?DF Error | Disk Full | ディスク容量が一杯である |
60 | ?EF Error | input past End | シーケンシャルファイルにおいて、全てのデータを読み込んでいるのにINPUT#命令で読み込もうとしている ランダムファイルにおいて、GET文で指定したレコード番号はファイルの大きさを超えている |
61 | ?NM Error | disk Not Mounted | ディスクがマウントされていない |
62 | ?DS Error | Dicect Statement in file | ASCII形式のファイル中にダイレクトステートメントが存在する |
63 | ?AT Error | bad Allocation Table | 異常なアロケーションテーブルがある |
64 | ?DN Error | bad Drive Number | OPENされていないドライブ番号が使用された |
65 | ?TS Error | bad Track/Sector | 異常なトラックもしくはセクターがある |
66 | ??? Error | 未定義エラー | |
67 | ?RD Error | Rename across Disks | 異なるディスク装置へのリネームを行おうとした |
68 | ?SP Error | Sequential after PUT | PUT文を実行した後、シーケンシャル入出力を行おうとした |
69 | ?SQ Error | SeQuential I/O only | シーケンシャル入出力以外の入出力命令を実行した |
70 | ?CF Error | Close File number | 指定したファイルがCLOSEされている |
71 | ?FW Error | File Write proctected | ファイルへの書き込みが保護されている |
72 | ?DO Error | Disk Offline | ディスク装置が接続されていない |