戻る
T-BASIC / T-BASIC7
パソピア/7 (PASOPIA) : 東芝 (TOSHIBA)

T-BASIC T-BASIC7

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簡易リファレンス
コマンド
表記凡例使用例説明
AUTOAUTO [行番号][,増分]AUTO 100,5先頭に自動的に行番号を発生させる(増分を省略した場合は10)
DELETEDELETE 行番号[,[行番号2]][,...]
DELETE [行番号][-[行番号2]]
DELETE 10,100
DELETE 100-200
指定した行番号を削除する
指定した範囲の行番号を削除する
LISTLIST {[行番号] | [.]}
LIST [行番号][,[行番号2]][,...]
LIST [行番号][-[行番号2]]
LIST
LIST 10,100
LIST 100-200
メモリ上のプログラムを表示する
指定した行番号を表示する
指定した範囲の行番号を表示する
EDITEDIT {[行番号] | [.]}EDIT .指定した行番号を編集モードで表示する
LLISTLLIST {[行番号] | [.]}
LLIST [行番号][,[行番号2]][,...]
LLIST [行番号][-[行番号2]]
LLIST
LLIST 10,100
LIST 100-200
メモリ上のプログラムをプリンタに出力する
指定した行番号をプリンタに出力する
指定した範囲の行番号をプリンタに出力する
RENUMRENUM [新行番号][,[旧行番号],[増分]]RENUM 1000,10,100新行番号を先頭に行番号をつけ直す
NEWNEWNEWプログラムを全て消去し、変数を初期化する
CLEARCLEAR [文字列領域サイズ][,BASIC使用上限アドレス][,配列領域サイズ]CLEAR 32767,&hf0fb,512変数を初期化し、領域サイズとBASIC使用上限アドレスを設定する
CONTCONTCONTSTOPキーやSTOP,ENDで終了したプログラムの実行を再開する
RUNRUN {[行番号] | "[ファイル装置番号:]ファイル名"}RUN 100指定した行番号からプログラムを実行する(行番号を省略した場合は先頭から、ファイル名を指定した場合は読み込んで実行する)
CSAVECSAVE "ファイル名"CSAVE "test"カセットテープにプログラムを保存する
CLOADCLOAD ["ファイル名"]CLOAD "test"カセットテープからプログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む)
CLOAD?CLOAD? ["ファイル名"]CLOAD? "test"カセットテープのプログラムを照合する(ファイル名を省略した場合は最初に見つかったプログラムを照合する)
SAVE diskSAVE "[ファイル装置番号:]ファイル名"[,{A | P}]SAVE "1:test.bas"記録メディアに[ASCII形式で | 暗号化で]プログラムを保存する
LOAD diskLOAD "[ファイル装置番号:]ファイル名"[,R]LOAD "1:test.bas"記録メディアからプログラムを読み込む(Rを付加した場合は実行も行う)
BSAVE diskBSAVE "[ファイル装置番号:]ファイル名",開始アドレス,サイズBSAVE "1:test.bin",&hd000,&h1000記録メディアにマシン語ファイルを保存する
BLOAD diskBLOAD "[ファイル装置番号:]ファイル名"[,開始アドレス]BLOAD "1:test.bin",&hd000記録メディアからマシン語ファイルを読み込む
FILES diskFILES [ファイル装置番号]FILES 1記録メディアにあるファイル一覧を出力する
LFILES diskLFILES [ファイル装置番号]LFILES 1記録メディアにあるファイル一覧をプリンタに出力する
KILL diskKILL "[ファイル装置番号:]ファイル名"KILL "1:test.bas"記録メディア上のファイルを削除する
NAME diskNAME "[ファイル装置番号:]旧ファイル名" as "[ファイル装置番号:]新ファイル名"NAME "1:test.bas" as "1:test2.bas"記録メディア上のファイル名を変更する
CHAIN diskCHAIN [MERGE] "[ファイル装置番号:]ファイル名"[,[行番号]][,[ALL]],[DELETE [行番号][-[行番号2]]CHAIN "1:test.bas"記録メディア上にあるファイルに変数を引き渡して実行する
MERGE diskMERGE "[ファイル装置番号:]ファイル名"MERGE "1:test.bas"記録メディア上のASCII形式ファイルとメモリ上のプログラムをマージする
COMMON diskCOMMON [変数名]COMMON A$,B$CHAINの実行時、メモリ上のプログラムからCHAINされるプログラムに変数を引き渡す
COPYCOPY [機能番号]COPY 3画面をプリンタにハードコピーする(T-BASICでは機能番号は指定できない)
1 : テキスト画面
2 : グラフィック画面
3 : 全て
MON T-BASIC7MONMONモニタコマンドモードにする
TERMTERMTERMターミナルモードにする
TRONTRONTRONトレースモードにする
TROFFTROFFTROFFトレースモードを解除する
[戻る]
ステートメント:プログラム制御
表記凡例使用例説明
ENDENDENDプログラムを終了する
STOPSTOPSTOPプログラムを一時停止する
REMREM | 'REM TEST注釈を入れる(実行には無関係)
FOR...TO...STEP〜NEXTFOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数][,変数2][,...]FOR I=0 TO 10 STEP 2〜NEXT IFORからNEXTまでの処理を繰り返す
GOTO | GO TOGOTO | GO TO 行番号GOTO | GO TO 1000指定した行番号から実行する
GOSUBGOSUB 行番号GOSUB 1000サブルーチンを呼び出す
RETURNRETURN [行番号]RETURNサブルーチンから復帰する
IF...THEN | GOTO...ELSEIF 論理式 {THEN 文|GOTO 行番号} [ELSE 文]IF A=0 {THEN END|GOTO 10} ELSE GOSUB 100論理式の条件判断をする
WHILE〜WENDWHILE 論理式〜WENDWHILE A=0〜WEND論理式が真である間、繰り返して実行する
ON...GOTOON 式 GOTO 行番号[,行番号2][,...]ON A GOTO 100,200式の値に応じて指定された行番号へ分岐する
ON...GOSUBON 式 GOSUB 行番号[,行番号2][,...]ON A GOSUB 100,200式の値に応じて指定された行番号のサブルーチンを呼び出す
ON ERROR GOTOON ERROR GOTO 行番号ON ERROR GOTO 100エラー発生時の分岐処理ルーチンを指定する ※エラーメッセージ一覧
RESUMERESUME {[0] | NEXT | 行番号}RESUME 100エラー処理を終了し、実行を再開する
0     : エラー原因になった行から再開する(0を省略しても同じ)
NEXT  : エラー原因になった次の行から再開する
行番号: 指定した行番号から再開する
ON COM GOSUBON COM GOSUB 行番号ON COM GOSUB 100RS-232C回線からの割り込みが発生した場合の分岐処理サブルーチンを指定する
ON KEY GOSUBON KEY GOSUB 行番号[,行番号2][,...]ON KEY GOSUB 100,200ファンクションキーからの割り込みが発生した場合の分岐処理サブルーチンを指定する
ON TIME$ GOSUBON TIME$=時刻 GOSUB 行番号ON TIME$="00:00:00" GOSUB 100指定した時刻の割り込みが発生した場合の分岐処理サブルーチンを指定する
WAITWAIT ポート番号,式1[,式2]WAIT 1,&H80ポートをモニタし、指定された値になるまでプログラムの実行を停止する
[戻る]
ステートメント:変数関連
表記凡例使用例説明
INPUT[LINE ]INPUT [文字列{; | , }]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する(LINEを付加した場合は1行分の入力データがコンマなども含めて代入、変数は1個で文字列変数のみ)
LETLET 変数=式LET A=1変数に値を代入する(LETは省略できる)
SWAPSWAP 変数1,変数2SWAP A,B変数の値を入れ替える
DATADATA 定数[,定数2][,...]DATA "TEST",765READで読み込むデータを定義する
READREAD 変数[,変数2][,...]READ A$,BDATAで定義したデータを変数に代入する
RESTORERESTORE [行番号]RESTORE 1000READで読み込むDATAの先頭行を設定する
DEF FNDEF FN関数名(パラメータ[,パラメータ2[,...]])=定義式DEF FNTEST(X,A,B)=X^2+AX+Bユーザ定義関数を定義する
DEFINTDEFINT {変数名[,変数名2][,...] | 変数名-変数名2}DEFINT A,B変数の整数型宣言をする
DEFSNGDEFSNG {変数名[,変数名2][,...] | 変数名-変数名2}DEFSNG A-Z変数の単精度型宣言をする
DEFDBLDEFDBL {変数名[,変数名2][,...] | 変数名-変数名2}DEFDBL A,B-Z変数の倍精度型宣言をする
DEFSTRDEFSTR {変数名[,変数名2][,...] | 変数名-変数名2}DEFSTR A-B,E,X-Z変数の文字型型宣言をする
DIMDIM 変数名(最大値[,最大値2][,...])[,...]DIM A(100,10),B$(100)配列変数の定義をする
ERASEERASE 変数名[,変数名2[,...]]ERASE A,B$配列変数を消去する
OPTION BASEOPTION BASE {0 | 1}OPTION BASE 1配列添字の最小値を設定する
RANDOMIZERANDOMIZE 式RANDOMIZE 1000乱数系列を設定する
[戻る]
ステートメント:マシン語関連
表記凡例使用例説明
CALLCALL 変数名(変数)CALL TEST(A)変数名で指定したアドレスのマシン語を実行する
DEF USRDEF USR[番号]=アドレスDEF USR1=&HD000USRで呼び出すマシン語サブルーチンを定義する
POKEPOKE アドレス,数式POKE &HD000,&HC9指定したアドレスに値を書き込む
[戻る]
ステートメント:画面関連
(T-BASICではパレットコードはカラーコード)
表記凡例使用例説明
CLSCLS [機能番号]CLS 3指定した画面を消去する(T-BASICでは機能番号はない)
0 : 全て
1 : テキスト画面
2 : グラフィック画面
3 : テキストとグラフィック画面
LOCATELOCATE X,Y[,カーソル表示]LOCATE 10,10指定した位置にカーソルを移動する
PRINTPRINT [{[USING 書式;データ] | [式]}[{, | ;}式2[,...]]]PRINT "HELLO,WORLD"画面上に表示する
WRITEWRITE 式WRITE "HELLO,WORLD"画面上に表示する(PRINTとの違いは空白は詰めて、区切りはコンマで出力する)
COLORCOLOR [テキスト色][,バックグラウンド色][,パレットコード]COLOR 7,0,7テキストとバックグラウンドは0-7までの8色、パレットコードは0-7までを指定する(T-BASICではパレットコードはない)
COLOR= T-BASIC7COLOR=(パレットコード,カラー1,カラー2)COLOR=(7,6,5)パレットコードの色を変更する(27色中指定可能)
CONSOLECONSOLE [スクロール開始行][,[スクロール終了行]][,[ファンクションキー表示モード]][,[テキスト文字表示モード]]CONSOLE 0,25,1,8テキスト画面を設定する(T-BASICではスクロール行のみ)
SCREENSCREEN 画面モード[,表示スイッチ][,アクティブページ][,ディスプレイページ]SCREEN 2画面のモードを設定する(T-BASICでは画面モードのみ)
・画面モード
0:テキストグラフィック混合モード(640x200)
1:低解像度グラフィックモード(320x100)
2:高解像度グラフィックモード(640x200)
・表示スイッチ
0:テキスト・グラフィック両方を表示
1:テキスト画面を表示しない
2:グラフィック画面を表示しない
3:両方を表示しない
WIDTHWIDTH [LPRINT] 画面サイズWIDTH 80画面[プリンタ出力]桁数を設定する(40以下なら40文字モード、40以上80以下なら80文字モード)
CIRCLECIRCLE [STEP](X,Y),半径,[パレットコード],[開始角度],[終了角度],[比率]CIRCLE(0,0),100,2円を描画する
DRAWDRAW 文字列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  : そのまま描画する
PRESET: 色を反転して描画する
OR    : 画面上のパターンと配列変数のパターンをドット単位でORした結果を描画する
AND   : 画面上のパターンと配列変数のパターンをドット単位でANDした結果を描画する
XOR   : 画面上のパターンと配列変数のパターンをドット単位でXORした結果を描画する(省略時はXOR)
LINELINE{(X1,Y1) | STEP(X1,Y1)}-{(X2,Y2) | STEP(X2,Y2)}[,パレットコード][,{B | BF}LINE(0,0)-(100,100),4,BF直線(B:四角形,BF:塗りつぶした四角形)を描画する
PAINTPAINT{(X,Y) | STEP(X,Y)}[,領域パレットコード][,境界パレットコード]PAINT(100,100),5,2指定した境界色で囲まれた領域を塗る
PSETPSET{(X,Y) | STEP(X,Y)}[,パレットコード]PSET(100,100),2指定した座標にドットを表示する
PRESETPRESET{(X,Y) | STEP(X,Y)}[,パレットコード]PRESET(100,100),2指定した座標のドットを消去する
[戻る]
ステートメント:サウンド関連
表記凡例使用例説明
BEEP T-BASIC7BEEPBEEPBEEP音を鳴らす
SOUNDSOUND 音階,音長SOUND 36,10音階(11〜84)と音長を指定して鳴らす
PLAY T-BASIC7PLAY MML文字列[,MML文字列2][...,MML文字列6]PLAY "O3CDEFGAB"MMLの文法に従って演奏する
[戻る]
ステートメント:ディスク関連
表記凡例使用例説明
OPEN diskOPEN ファイル名 [FOR モード] AS #ファイル番号OPEN "test.bas" FOR INPUT AS #1指定したファイルをファイル番号でOPENする
INPUT : 入力モード
OUTPUT: 出力モード
APPEND: 追加モード
省略時: ランダムモード
CLOSE diskCLOSE #ファイル番号[,#ファイル番号2][,...]CLOSE #1指定したファイル番号のファイルをCLOSEする
SETSET {ファイル装置番号 | "[ファイル装置番号:]ファイル名" | #ファイル番号},{"P" | "R" | etc.}SET 1,"P"ファイル属性を設定する
P: ライトプロテクト
R: リードアフターライト
その他を設定した場合は解除する
FIELD diskFIELD #ファイル番号,フィールド幅 as 文字列変数[,フィールド幅] [as ....]FIELD #1,128 as TEST$,64ランダムファイルバッファにフィールド変数を割り当てる
GET diskGET #ファイル番号[,数式]GET #1,10ファイルからデータをファイルバッファに読み込む
PUT diskPUT #ファイル番号[,数式]PUT #1,10ファイルバッファのデータをファイルに書き込む
INPUT # disk[LINE ]INPUT #ファイル番号,変数[,変数2[,...]]INPUT #1,A,Bシーケンシャルファイル中のデータを読み込んで変数に代入する(LINEを付加した場合はコンマなどを無視して代入、変数は1個で文字列変数のみ)
INPUT$ diskINPUT$(文字数,#ファイル番号)INPUT$(10,#2)ファイルから指定した文字数分を読み込む
PRINT # diskPRINT #ファイル番号[{[USING 書式;データ] | [式]}[;式2[,...]]]PRINT #1,A,Bファイルにデータを書き込む
WRITE # diskWRITE #ファイル番号,式WRITE #1,A,Bファイルにデータを書き込む(PRINT #との違いは空白は詰めて、区切りはコンマで出力する)
DSKO$ diskDSKO$(ファイル装置番号,ヘッド番号,トラック番号,セクタ番号)DSKO$(1,1,2,3)ファイル装置に直接256bytesの文字列を書きこむ
LSET diskLSET 文字変数=文字列LSET A$="TEST"ランダムファイルバッファのフィールドに左詰めで文字列を代入する
RSET diskRSET 文字変数=文字列RSET A$="TEST"ランダムファイルバッファのフィールドに右詰めで文字列を代入する
[戻る]
ステートメント:その他
表記凡例使用例説明
ERRORERROR エラー番号ERROR 19指定したエラー番号のエラーを発生させる ※エラーメッセージ一覧
KEYKEY 番号,文字列KEY 1,"TEST"指定した番号のファンクションキーに文字列を設定する
KEY LISTKEY LISTKEY LISTファンクションキーの内容を表示する
KEY ON/OFF/STOPKEY(番号) ON/OFF/STOPKEY(1) ON/OFF/STOPファンクションキー割り込みを設定する
キー番号を省略してKEY ON/OFFとした場合は画面下部のファンクションキーを表示/消去する
LPRINTLPRINT [{[USING 書式;データ] | [式]}[{, | ;}式2[,...]]]LPRINT A$プリンタに出力する
MOTORMOTOR [{0 | 1}]MOTOR 1カセットテープのモータ制御を行う
OUTOUT ポート番号,数式OUT &HD0,10ポートに値を出力する
[戻る]
文字列関数
表記凡例使用例説明
ASCASC(文字列式)ASC("TEST")文字列先頭のキャラクタコードを返す
VALVAL(文字列式)VAL("123")文字列を数値に変換する
CHR$CHR$(数式)CHR$(41)指定したキャラクタコードの文字を返す
STR$STR$(数式)STR$(A)数値を文字列に変換する
STRING$STRING$(式,[文字列 | 数式})STRING$(10,"=")指定した文字数だけ追加した文字列を返す
SPACE$SPACE$(数式)SPACE$(A)指定した長さの空白文字列を返す
SPCSPC(数式)SPC(A)指定した長さの空白を返す(出力文字式内でのみ使用)
TABTAB(数式)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進数文字列に変換する
INSTRINSTR([開始位置,]文字列1,文字列2INSTR(3,A$,"A")文字列1の指定位置から文字列2を検索して位置を返す
LENLEN(文字列式)LEN(A$)文字列の文字数を返す
LEFT$LEFT$(文字列式,式)LEFT$(A$,2)文字列の左側から式で指定した桁数の文字列を返す
MID$MID$(文字列式,式1[,式2])[=文字列]MID$(A$,2,1)文字列の式1で指定した位置から式2で指定した桁数の文字列を返す(=文字列を指定した場合はその文字列と置換する)
RIGHT$RIGHT$(文字列式,式)RIGHT$(A$,2)文字列の右側から式で指定した桁数の文字列を返す
CVICVI(2バイト文字列式)CVI(TEST$)文字列を整数値に変換する
CVSCVS(4バイト文字列式)CVS(TEST$)文字列を単精度値に変換する
CVDCVD(8バイト文字列式)CVD(TEST$)文字列を倍精度値に変換する
MKI$MKI$(整数値)MKI$(A%)整数値を文字列に変換する
MKS$MKS$(単精度値)MKS$(A!)単精度値を文字列に変換する
MKI$MKI$(倍精度値)MKD$(A#)倍精度値を文字列に変換する
[戻る]
数値関数
表記凡例使用例説明
CINTCINT(数式)CINT(A%)数式を整数値に変換する
CSNGCSNG(数式)CSNG(A!)数式を単精度に変換する
CDBLCDBL(数式)CDBL(A#)数式を倍精度に変換する
FIXFIX(数式)FIX(A)数式の整数値を返す(小数点以下を切り捨てる)
INTINT(数式)INT(A)数式の整数値を返す(数式の値を超えない整数値)
SGNSGN(数式)SGN(A)数式の符号を返す
RNDRND(数式)RND(A)0以上1未満の乱数を返す
正数: 次の乱数を発生する(省略した場合も同様)
負数: 乱数を初期化する
0   : 同じ乱数を生成する
[戻る]
数学関数
表記凡例使用例説明
ABSABS(数式)ABS(-1000)絶対値を返す
SINSIN(数式)SIN(3.14)正弦(サイン)の値を返す
COSCOS(数式)COS(3.14)余弦(コサイン)の値を返す
TANTAN(数式)TAN(3.14)正接(タンジェント)の値を返す
ATNATN(数式)ATN(3.14)逆正接(アークタンジェント)の値を返す
EXPEXP(数式)EXP(1)自然対数の低(e)に対する指数関数の値を返す
LOGLOG(数式)LOG(1)自然対数の値を返す
SQRSQR(数式)SQR(2)平方根の値を返す
[戻る]
その他関数
表記凡例使用例説明
ATTR$ diskATTR$({ファイル装置番号 | #ファイル番号 | [ファイル装置番号:]ファイル名}ATTR$("1:test.bas")指定したドライブ、ファイルの属性文字を返す。
"   " : 属性なし
"R  " : 書き込みの際に比較を行う
"  P" : ライトプロテクト
" E " : 暗号化されている
DSKF diskDSKF(ファイル装置番号)DSKF(1)指定したファイル装置の残り容量(クラスタ)を返す
DSKI$ diskDSKI$(ファイル装置番号,ヘッド番号,トラック番号,セクタ番号)DSKI$(1,1,2,3)ファイル装置から直接読み込んだ256bytesの文字列を返す
FPOS diskFPOS(ファイル装置番号)FPOS(1)指定したファイル装置の現在のセクタ番号を返す
LOC diskLOC(ファイル番号)LOC(1)指定したファイル番号の論理的位置を返す
LOF diskLOF(ファイル番号)LOF(1)指定したファイル番号のサイズを返す
VARPTRVARPTR {変数名 | #ファイル番号}[,{0 | 1}]変数が格納されているアドレスやファイルコントロールブロックの開始値を返す
FREFRE(番号)FRE(0)使用可能なメモリサイズを返す(番号指定は無視される)
INKEY$INKEY$INKEY$押されたキーの値を返す
CSRLINCSRLINCSRLIN現在のカーソル行位置を返す
POSPOS(番号)POS(0)現在のカーソル桁位置を返す(番号指定は無視される)
POINTPOINT{(X,Y) | STEP(X,Y)}POINT(100,100)指定した座標のパレットコードを返す
ERLERLERLエラーの発生した行を返す
ERRERRERRエラー番号を返す
LPOSLPOS(番号)LPOS(0)プリンタのヘッド位置を返す(番号指定は無視される)
INPINP(ポート番号)INP(100)指定したポート番号の入力値を返す
PEEKPEEK(アドレス)PEEK(&HD000)指定したアドレスの値を返す
USRUSR番号(式)I=USR1(TEST)マシン語関数を呼び出す
TIMETIMETIME電源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の否定

[戻る]

※ Version差異

T-BASIC Ver.1.0と1.1の差異
  • [INS][DEL]のリピートはキー押下解除で即時停止
  • SOUNDで音階指定0で休符となる
  • SOUNDで「F(ファ)」の周波数を修正
  • BLOADで絶対アドレスが使用可能
  • ファンクションキー定義の引数に文字変数が使用可能
  • SCREENのモード0(テキストモード)が使用可能
  • テキストモード時の画面表示・消去が高速化
  • テキストモード時のハードコピーでドットプリンタII以外の場合に「16」が印字されなくなる

  • T-DISKBASIC Ver.1.0と2.0の差異
  • [KANJI]キーを押下したとき「&K」、SHIFTと同時に押下したとき「KANJI」を出力する
  • 拡張ユニット経由で8inchフロッピーを使用可能
  • ファイングラフィックモード時にLINEやPSETのカラーコードが有効化
  • 漢字ROMPAC2にサポートなしで対応
  • プログラム修正後メモリ不足が発生した際のクラッシュを回避
  • フリーエリアが3KBほど減少
  • 互換性を保ちつつ、カセットのLOAD/SAVE時間を短縮

  • T-BASICとOA-BASICの差異
  • 注釈は「*」
  • WIDTHで桁数は36,80のみ指定可能、行数は20,25が指定可能(T-BASICでは行数指定不可)
  • 画面消去は「ERASE」
  • カーソル座標指定は「PRINT TAB(X,Y)」
  • 関数「POS」「CSRLIN」はない
  • 関数「SCREEN」はない
  • キャラクタ反転表示命令「SFLG」がある
  • LINEの座標指定後に文字(変数可)を指定すると、指定文字で線が描画される
  • LINEの構文は「LINE (X1,Y1)-(X2,Y2),{PSET|PRESET|文字指定}{,表示色{,{"B"|"BF"}}}」となる
  • PSETの構文は「PSET (X,Y,表示色)」となる
  • 漢字の出力は「PRINT 漢字コード」となる

  • [戻る]

    ※ エラーメッセージ一覧

    T-BASICは他のMicrosoft系BASICとエラーメッセージの表示に違いがある
    下記にその一覧を記す
    エラーメッセージ一覧
    番号T-BASICでの表示英語表記意味
    1?NF ErrorNEXT without FORNEXTに対応したFORがない
    2?SN ErrorSyNtax errorコマンド、またはステートメントの書き方が間違っている
    3?RG ErrorRETURN without GOSUBRETURNに対応したGOSUBがない
    4?OD ErrorOut of DataREADに対応したDATAがない
    5?FC Errorillegal Function Call関数やステートメントの引数が間違っている
    6?OV ErrorOVerflow値が許容範囲を超えた
    7?OM ErrorOut of Memoryメモリが不足している
    8?UL ErrorUndefined Line number未定義の行番号を指定した
    9?BS ErrorsuBScript out of range配列の添字が指定した範囲外
    10?DD ErrorDuplicate Definition配列やユーザ関数が二重宣言された
    11?/0 Errordivision by zero除算の分母が0
    12?ID ErrorIllegal Directダイレクトモードで使えないステートメントを使った
    13?TM ErrorType Mismatch変数または定数の型が合わない
    14?OS ErrorOut of String space変数領域が不足している
    15?LS ErrorString too Long文字定数または文字変数が256文字を超えた
    16?ST ErrorString formula Too complex文字式が複雑すぎる
    17?CN ErrorCaN't continueCONTによるプログラムの再開ができない
    18?UF ErrorUndefined user Function未定義関数を参照した
    19?NR ErrorNo Resumeエラー処理にRESUMEがない
    20?RW ErrorResume Without errorエラー処理でないのにRESUMEが使用された
    21?UE ErrorUnprintable Errorエラーメッセージの定義されていないエラー
    22?MO ErrorMissing Operand必要なオペランドが不足している
    23?BO Errorline Buffer Overflow行入力バッファが許容範囲を超えた
    24?CO ErrorCommunications buffer Overflow通信バッファがオーバーフローした
    25?CE ErrorCommunication Error通信エラー
    26?FN ErrorFOR without NEXTFORに対するNEXTがない
    27?TP ErrorTaPe read errorテープ読み込みエラー
    28?PO ErrorPrinter Offlineプリンタが接続されていない
    29?WH ErrorWHILE without WENDWHILEに対応するWENDがない
    30?WE ErrorWEND without WHILEWENDに対応するWHILEがない
    31?PI ErrorPort not Initializedポートが初期化されていない
    ?UE ErrorUnprintable Errorエラーメッセージの定義されていないエラー
    50?FO ErrorFIELD OverflowFIELDの長さが256文字を超えている
    51?IE ErrorInternal Error内部エラー
    52?BN ErrorBad file Number使用されたファイル番号は使用できない
    53?FF ErrorFile not Found指定したファイルが存在しない
    54?AO Errorfile Already Open指定したファイルが既にOPENされている
    55?IO Errordisk I/O errorディスク装置エラー
    56?FE ErrorFile already Exists指定したファイルは既に存在している
    57??? Error 未定義エラー
    58?AM Errordisk Already Mountedディスクが既にマウントされている
    59?DF ErrorDisk Fullディスク容量が一杯である
    60?EF Errorinput past Endシーケンシャルファイルにおいて、全てのデータを読み込んでいるのにINPUT#命令で読み込もうとしている
    ランダムファイルにおいて、GET文で指定したレコード番号はファイルの大きさを超えている
    61?NM Errordisk Not Mountedディスクがマウントされていない
    62?DS ErrorDicect Statement in fileASCII形式のファイル中にダイレクトステートメントが存在する
    63?AT Errorbad Allocation Table異常なアロケーションテーブルがある
    64?DN Errorbad Drive NumberOPENされていないドライブ番号が使用された
    65?TS Errorbad Track/Sector異常なトラックもしくはセクターがある
    66??? Error 未定義エラー
    67?RD ErrorRename across Disks異なるディスク装置へのリネームを行おうとした
    68?SP ErrorSequential after PUTPUT文を実行した後、シーケンシャル入出力を行おうとした
    69?SQ ErrorSeQuential I/O onlyシーケンシャル入出力以外の入出力命令を実行した
    70?CF ErrorClose File number指定したファイルがCLOSEされている
    71?FW ErrorFile Write proctectedファイルへの書き込みが保護されている
    72?DO ErrorDisk Offlineディスク装置が接続されていない

    [戻る]



    [TOPに戻る]