戻る
M-BASIC 80
MULTI8 : 三菱電機 (Mitsubishi)

M-BASIC 80

M-BASIC 80はMicrosoft BASICにMitsubishi独自の拡張を行ったものである。
NEC PC-8001に対して上位互換性があり、N-BASICでSAVEされたプログラムをそのまま読み込むことが可能。
(マシン語サブルーチンでの互換性はないので、単純にBASICのみで書かれたもののみ)

PC-8001と異なる点はPC-8801とほぼ同等のグラフィックモード(640x200)があることである。
また漢字ROMがオプションで用意されており、漢字を表示することも可能である。
PSG3音によるサウンド機能もある。

価格が当時としては比較的低価格である上に機能は高いため、もっと売れてもおかしくなかったが普及はしなかった。
当時の三菱電機提供番組で賞品にされていたこともあったのだが。
(対応ソフトが殆ど提供されなかったのが大きな原因)

COLOR/SCREEN及び漢字/DISK関係は資料がないため、一部未解析。
(予約語 CMD,PORT,SRQ,STATUS : 未解析)

M-BASIC 80簡易リファレンス
コマンド
表記凡例使用例説明
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
メモリ上のプログラムを表示する
指定した行番号を表示する
指定した範囲の行番号を表示する
LLISTLLIST {[行番号] | [.]}
LLIST [行番号][,[行番号2]][,...]
LLIST [行番号][-[行番号2]]
LLIST
LLIST 10,100
LIST 100-200
メモリ上のプログラムをプリンタに出力する
指定した行番号をプリンタに出力する
指定した範囲の行番号をプリンタに出力する
RENUMRENUM [新行番号][,旧行番号][,増分]RENUM 1000,10,100新行番号を先頭に行番号をつけ直す
NEWNEWNEWプログラムを全て消去し、変数を初期化する
CONTCONTCONTSTOPキーやSTOP,ENDで終了したプログラムの実行を再開する
RUNRUN [行番号]RUN 100指定した行番号からプログラムを実行する(行番号を省略した場合は先頭から実行する)
CSAVECSAVE "ファイル名"CSAVE "TEST"カセットテープにプログラムを保存する
CLOADCLOAD "ファイル名"CLOAD "TEST"カセットテープからプログラムを読み込む
CLOAD?CLOAD? "ファイル名"CLOAD? "TEST"カセットテープのプログラムを照合する
RLOADRLOAD "ファイル名"RLOAD "TEST"ROMカートリッジからプログラムを読み込む
MOUNT diskMOUNT [ファイル装置番号,[番号2][,...]]MOUNT 1ファイル装置を使用可能(MOUNT)にする
REMOVE diskREMOVE [ファイル装置番号,[番号2][,...]]REMOVE 1ディスクをイジェクトする準備をする
FILES diskFILES [ファイル装置番号]FILES 1記録メディアにあるファイル一覧を出力する
LFILES diskLFILES [ファイル装置番号]LFILES 1記録メディアにあるファイル一覧をプリンタに出力する
SAVE diskSAVE "[ファイル装置番号:]ファイル名"[,A]SAVE "TEST"記録メディアに[ASCII形式で]プログラムを保存する
LOAD diskLOAD "[ファイル装置番号:]ファイル名"[,R]LOAD "TEST"記録メディアからプログラムを読み込む(Rを付加した場合は実行も行う)
NAME diskNAME "[ファイル装置番号:]旧ファイル名" as "[ファイル装置番号:]新ファイル名"NAME "TEST" as "TEST2"記録メディア上のファイル名を変更する
KILL diskKILL "[ファイル装置番号:]ファイル名"KILL "TEST"記録メディア上のファイルを削除する
MERGE diskMERGE "[ファイル装置番号:]ファイル名"MERGE "TEST"記録メディア上のASCII形式ファイルとメモリ上のプログラムをマージする
SET diskSET {ファイル装置番号 | #ファイル番号 | "ファイル名"},"属性"SET "TEST","R"ファイルの属性を指定する
属性
R : Read only
P : Write Protect
KEY LISTKEY LISTKEY LISTファンクションキーの定義一覧を表示する
MONMONMONモニタコマンドモードにする
TERMTERM ビット,パリティ,ボーレート,フィードTERMターミナルモードにする
[戻る]
ステートメント:プログラム制御
表記凡例使用例説明
ENDENDENDプログラムを終了する
STOPSTOPSTOPプログラムを一時停止する
REM{REM | '} [注釈]REM TEST注釈を入れる(実行には無関係)
FOR...TO...STEP〜NEXTFOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数1][,変数2][,...]FOR I=0 TO 10 STEP 2〜NEXT IFORからNEXTまでの処理を繰り返す
GOSUBGOSUB 行番号GOSUB 1000サブルーチンを呼び出す
RETURNRETURN [行番号]RETURNサブルーチンから復帰する
GOTOGOTO 行番号GOTO 1000指定した行番号から実行する
IF...THEN | GOTO...ELSE...IF 論理式 {THEN 文 | GOTO 行番号} ELSE {文 | 行番号}IF A=0 {THEN END | GOTO 10} ELSE 20論理式の条件判断をする
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  : エラー原因になった次の行から再開する
行番号: 指定した行番号から再開する
[戻る]
ステートメント:変数関連
表記凡例使用例説明
CLEARCLEAR [[文字領域サイズ],メモリ上限]CLEAR 512,&HC000変数を初期化し、文字領域サイズとユーザ領域の上限を指定する
INPUTINPUT [文字列{; | , }]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する
LINE INPUTLINE INPUT [文字列{; | , }]文字列変数LINE INPUT "X=";X$キーボードから入力した値を特殊文字を含めて区切らずに文字列変数に代入する
LETLET 変数=式LET A=1変数に値を代入する(LETは省略できる)
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ユーザ定義関数を定義する
DIMDIM 変数名(最大値[,最大値2][,...])[,...]DIM A(100,10),B$(100)配列変数の定義をする
ERASEERASE 変数名[,変数名2[,...]]ERASE A,B$配列変数を消去する
SWAPSWAP 変数1,変数2SWAP A,B変数1と変数2の値を交換する
DEFINTDEFINT 変数名[-変数名2]
DEFINT 変数名[,変数名2[,,,,]]
DEFINT A-Z
DEFINT A,C
指定した変数の型を整数型とする
DEFSNGDEFSNG 変数名[-変数名2]
DEFSNG 変数名[,変数名2[,,,,]]
DEFSNG A-Z
DEFSNG A,C
指定した変数の型を単精度型とする
DEFDBLDEFDBL 変数名[-変数名2]
DEFDBL 変数名[,変数名2[,,,,]]
DEFDBL A-Z
DEFDBL A,C
指定した変数の型を倍精度型とする
DEFSTRDEFSTR 変数名[-変数名2]
DEFSTR 変数名[,変数名2[,,,,]]
DEFSTR A-Z
DEFSTR A,C
指定した変数の型を文字列型とする
[戻る]
ステートメント:マシン語関連
表記凡例使用例説明
DEF USRDEF USR[番号]=アドレスDEF USR1=&HD000USRで呼び出すマシン語サブルーチンを定義する
POKEPOKE アドレス,数式POKE &HD000,&HC9指定したアドレスに値を書き込む
[戻る]
ステートメント:ディスク関連
表記凡例使用例説明
OPEN diskOPEN ファイル名 [FOR モード] AS #ファイル番号OPEN "test.bas" FOR INPUT AS #1指定したファイルをファイル番号でOPENする
INPUT : 入力モード
OUTPUT: 出力モード
APPEND: 追加モード
省略時: ランダムモード
CLOSE diskCLOSE #ファイル番号1[,#ファイル番号2][,...]CLOSE #1指定したファイル番号のファイルをCLOSEする
FIELD diskFIELD #ファイル番号,フィールド幅 as 文字列変数[,フィールド幅 as ....]FIELD #1,128 as TEST$,64ランダムファイルバッファにフィールド変数を割り当てる
GET diskGET #ファイル番号[,数式]GET #1,10ファイルからデータをファイルバッファに読み込む
PUT diskPUT #ファイル番号[,数式]PUT #1,10ファイルバッファのデータをファイルに書き込む
INPUT #INPUT {#ファイル番号 | 入力機器番号},変数[,変数2[,...]]INPUT #1,A,Bシーケンシャルファイル中のデータを読み込んで変数に代入する
LINE INPUT #LINE INPUT {#ファイル番号 | 入力機器番号},文字列変数LINE INPUT #1,A$シーケンシャルファイル中のデータを読み込んでそのまま変数に代入する
INPUT #-1INPUT #-1,変数1[,変数2[,...]INPUT #-1,A,Bカセットテープからデータを読み込んで変数に代入する
LINE INPUT #-1LINE INPUT #-1,文字列変数LINE INPUT #-1,A$カセットテープからデータを読み込んでそのまま変数に代入する
PRINT #PRINT #ファイル番号[.{[USING 書式;データ] | [式]}[;式2[,...]]]PRINT #1,A;Bファイルにデータを書き込む
PRINT #-1PRINT #-1[.{[USING 書式;データ] | [式]}[;式2[,...]]]PRINT #-1,A;Bカセットテープにデータを書き込む
DSKO$ diskDSKO$ ファイル装置番号,ヘッド番号,トラック番号,セクタ番号,文字列式DSKO$ 1,1,2,3,A$ファイル装置に直接256bytesの文字列を書きこむ
LSET diskLSET 文字変数=文字列LSET A$="TEST"ランダムファイルバッファのフィールドに左詰めで文字列を代入する
RSET diskRSET 文字変数=文字列RSET A$="TEST"ランダムファイルバッファのフィールドに右詰めで文字列を代入する
[戻る]
ステートメント:画面関連
表記凡例使用例説明
CLSCLS [機能コード]CLS 3画面を消去する
1 : テキスト画面(スクロール範囲内 : デフォルト)
2 : グラフィック画面
3 : 両方
LOCATELOCATE X,Y[,カーソル表示]LOCATE 10,10指定した位置にカーソルを移動する
PRINT{PRINT | ?} [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]PRINT "HELLO,WORLD"画面上に表示する
USINGを付けた場合は書式に対応して表示する
COLORCOLOR [カラーコード][,漢字カラーコード][,バックグラウンドカラーコード]COLOR 1,1,1カラーコードと漢字カラーコード及びバックグラウンドカラーを指定する
COLOR=COLOR=([パレット番号,カラーコード)COLOR=(7,0)カラーパレットを指定する(テキストは対象外)
CONSOLECONSOLE [スクロール開始行][,[スクロール行の長さ]][,[ファンクションキー表示モード]][,[カラースイッチ]]CONSOLE 0,20,1,0テキスト画面を設定する
WIDTHWIDTH [桁数][,行数]WIDTH 80画面の桁数(36/40/72/80)と行数(20/25)を設定する
両方を省略するとエラー
桁数の36/40と72/80はそれぞれ文字の大きさは同じ
SCREENSCREEN [グラフィックモード][,[画面スイッチ][,[アクティブページ]]]SCREEN 0,0グラフィック画面を設定する
GET@GET@(X1,Y1)-(X2,Y2),配列変数名GET@(0,0)-(15,15),A%画面上のグラフィックパターンを配列変数に読み込む
PUT@PUT@(X,Y),配列変数名[,条件]PUT@(0,0),A%,PSETGET@で取り込んだパターンを表示する
条件
PSET   : そのまま描画する
PRESET : パターンで消去する
OR     : 画面上のパターンと配列変数のパターンをドット単位でORした結果を描画する
AND    : 画面上のパターンと配列変数のパターンをドット単位でANDした結果を描画する
XOR    : 画面上のパターンと配列変数のパターンをドット単位でXORした結果を描画する(省略時はXOR)
LINELINE[STEP](X1,Y1)-[STEP](X2,Y2)[,パレットコード][,{B | BF}]LINE(0,0)-(100,100),4,BF直線(B:四角形,BF:塗りつぶした四角形)を描画する
CIRCLECIRCLE[STEP](X,Y),半径[,[パレットコード][,[開始位置][,[終了位置][,比率]]]]CIRCLE(100,100),100,2指定座標に円を描画する
STEP指定時は座標指定は前回座標との差分となる
比率 : 0〜(Y軸半径/X軸半径)、0.5で真円(省略時:0.454)
開始終了位置 : -2π〜2π(ラジアン値:0でX軸右端)
PAINTPAINT[STEP](X,Y)[,[パレットコード][,境界色]]PAINT(100,100),2,7
PAINT(100,100),&HAA,2,&HFF
指定したパレットコードで境界色に囲まれた範囲を塗りつぶす(境界色を省略した場合はパレットコードを指定したものとする)
PSETPSET(X,Y)[,パレットコード]PSET(100,100),2指定した座標にドットを表示する
PRESETPRESET(X,Y)[,パレットコード]PRESET(100,100),2指定した座標のドットを消去する(カラーコードはダミー)
KANJI PRINTKANJI PRINT(X,Y),JISコード[,...]KANJI PRINT(100,100),&H3021指定した座標に漢字を表示する(要漢字ROM)
[戻る]
ステートメント:サウンド関連
表記凡例使用例説明
BEEPBEEP [スイッチ]BEEP 1BEEP音を出力する
スイッチ
(省略) : 「ピーッ」と鳴らす
0 : 音を鳴らさない(消す)
1 : 音を鳴らす(255まで指定可能だが違いはない)
PLAYPLAY MML文字列1[,MML文字列2[,MML文字列3]]PLAY A$指定したMMLに従って音楽を演奏する
SOUNDSOUND レジスタ番号,データSOUND 13,1PSG(AY-3-8912A)にデータを書き込む
[戻る]
ステートメント:その他
表記凡例使用例説明
LCOPYLCOPY [機能コード(1〜5)]LCOPYプリンタに画面内容を出力する
LPRINTLPRINT [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]LPRINT A$プリンタに出力する
ERRORERROR エラー番号ERROR 19指定したエラー番号のエラーを発生させる ※エラーメッセージ一覧
KEYKEY 番号,文字列KEY 1,"TEST"指定した番号のファンクションキーに文字列を設定する
MOTORMOTOR [スイッチ]MOTOR 1カセットテープレコードのモータを制御する
スイッチ
0 : 止める
1 : 動かす(省略時)
OUTOUT ポート番号,数式OUT &HD0,10ポートに値を出力する
WAITWAIT ポート番号,マスク[,論理データ]WAIT &HD0,&H80,&HF0ポート入力kからのデータ受信を待ち「(データ [XOR 論理データ]) AND マスク」が真のとき、次の行からプログラムを再開する
TRONTRONTRONトレースモードにする
TROFFTROFFTROFFトレースモードを解除する
[戻る]
文字列関数
表記凡例使用例説明
ASCASC(文字列式)ASC("TEST")文字列先頭のキャラクタコードを返す
VALVAL(文字列式)VAL("123")文字列を数値に変換する
CHR$CHR$(数式)CHR$(41)指定したキャラクタコードの文字を返す
STR$STR$(数式)STR$(A)数値を文字列に変換する
STRING$STRING$(式,[文字列 | 数式})STRING$(10,"=")指定した文字数だけ追加した文字列を返す
SPACE$SPACE$(数式)SPACE$(A)指定した長さの空白文字列を返す
HEX$HEX$(数式)HEX$(255)10進数を16進数文字列に変換する
OCT$OCT$(数式)OCT$(255)10進数を8進数文字列に変換する
BCD$ diskBCD$(数式)BCD$(8)数式を二進化十進数式へ変換する
LEFT$LEFT$(文字列式,式)LEFT$(A$,2)文字列の左側から式で指定した桁数の文字列を返す
MID$MID$(文字列式,式1[,式2])[=文字列]MID$(A$,2,1)文字列の式1で指定した位置から式2で指定した桁数の文字列を返す(=文字列を指定した場合はその文字列と置換する)
RIGHT$RIGHT$(文字列式,式)RIGHT$(A$,2)文字列の右側から式で指定した桁数の文字列を返す
INSTRINSTR([開始位置,]文字列式1,文字列式2)INSTR(A$,B$)文字列1から文字列2を[開始位置から]探し、一致した場合文字列1の何文字目かを返す
LENLEN(文字列式)LEN(A$)文字列の文字数を返す
SPCSPC(数式)SPC(A)指定した長さの空白を返す(出力文字式内でのみ使用)
TABTAB(数式)TAB(A)指定した位置まで空白を返す(出力文字式内でのみ使用)
[戻る]
数値関数
表記凡例使用例説明
INTINT(数式)INT(A)数式の整数値を返す(数式の値を超えない整数値)
FIXFIX(数式)FIX(A)数式の整数値を返す(切り捨て)
SGNSGN(数式)SGN(A)数式の符号を返す
RNDRND(数式)RND(A)0以上1未満の乱数を返す
正数: 次の乱数を発生する(省略した場合も同様)
負数: 乱数を初期化する
0   : 同じ乱数を生成する
CINTCINT(数式)CINT(A)数式を整数型へ変換する
CSNGCSNG(数式)CSNG(A)数式を単精度型へ変換する
CDBLCDBL(数式)CDBL(A)数式を倍精度型へ変換する
DEC diskDEC(二進化十進数式)DEC(&H1000)数式を二進化十進数式へ変換する
[戻る]
数学関数
表記凡例使用例説明
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)平方根の値を返す
[戻る]
その他関数
表記凡例使用例説明
CVI diskCVI(文字列式)CVI(A$)文字列(2bytes)を整数型へ変換する
CVS diskCVS(文字列式)CVS(A$)文字列(4bytes)を単精度型へ変換する
CVD diskCVD(文字列式)CVD(A$)文字列(8bytes)を倍精度型へ変換する
MKI$ diskMKI$(数式)MKI$(A%)整数型を文字列(2bytes)へ変換する
MKS$ diskMKS$(数式)MKS$(A!)単精度型を文字列(4bytes)へ変換する
MKD$ diskMKD$(数式)MKD$(A#)倍精度型を文字列(8bytes)へ変換する
INPUT$ diskINPUT$(文字数[,ファイル装置番号])INPUT$(1,#1)ファイルから文字数分の文字列を返す
ファイル装置番号を省略した場合はキーボードからの入力(プロンプトの表示はない)
ATTR$ diskATTR$({ドライブ番号 | #ファイル番号 | ファイル名})ATTR$(#1)ディスク/ファイルの属性を返す
DSKI$ diskDSKI$(ファイル装置番号,ヘッド番号,トラック番号,セクタ番号)DSKI$(1,1,2,3)ファイル装置から直接読み込んだ256bytesの文字列を返す
LOC diskLOC(ファイル番号)LOC(1)指定したファイル番号の論理的位置を返す
LOF diskLOF(ファイル番号)LOF(1)指定したファイル番号の総レコード数を返す
EOF diskEOF(ファイル番号)EOF(1)シーケンシャルファイルの終わりを検出する
FPOS diskFPOS(ファイル番号)FPOS(1)ファイルの物理セクタ番号を返す
FREFRE(機能コード)FRE(0)使用可能なメモリサイズを返す(機能コードはダミー)
INKEY$INKEY$INKEY$押されたキーの値を返す
DATE$DATE$DATE$="10/01/01"日付文字列変数を操作する
TIME$TIME$TIME$="12:34:56"時刻文字列変数を操作する
CSRLINCSRLINCSRLIN現在のカーソル行位置を返す
POSPOS(番号)POS(0)現在のカーソル桁位置を返す(番号指定は無視される)
POINTPOINT(X,Y)POINT(100,100)指定した座標のドットのカラーコードを返す
LPOSLPOS(番号)LPOS(0)プリンタのヘッド位置を返す(番号指定は無視される)
INPINP(ポート番号)INP(100)指定したポート番号の入力値を返す
PEEKPEEK(アドレス)PEEK(&HD000)指定したアドレスの値を返す
USRUSR番号(式)I=USR1(TEST)マシン語関数を呼び出す
VARPTRVARPTR(変数名)VARPTR(T)変数が割り当てられているアドレスを返す
ERRERRERR発生したエラーのエラーコードを返す
ERLERLERLエラーの発生した行番号を返す
[戻る]

※ モニタコマンド
D[adr1,adr2] : Dump(メモリをダンプする)
(adr1,adr2 : 開始アドレス、終了アドレス)
G[adr][,break1][,break2] : Go(メモリの内容を実行する)
(break1,break2 : ブレイクポイント)
S[adr] : Set(メモリを編集する)
W[adr1,adr2] : Write(カセットテープへデータを出力する)
(adr1,adr2 : 開始アドレス、終了アドレス)
L : Load(カセットテープからマシン語プログラムをロードする)
^B : Break(CTRL+BでBASICに戻る)

[戻る]

※ ターミナルモード
CTRL+BでBASICに戻る

・ビット
A : 7bit
J : 8bit

・パリティ
0 : なし
1 : 奇数
2 : 偶数

・ボーレート
0 : ファクタ16
1 : ファクタ64

・フィード
0 : オートラインフィードOFF
1 : オートラインフィードON

[戻る]

※ 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]

[戻る]

※ COLOR
COLOR カラーコード,漢字カラーコード,バックグラウンドカラーコードで指定
カラーコードは後述

CONSOLE X,Y,ファンクションキーモード,カラーモードで白黒モードとカラーモードを指定
白黒モード(CONSOLE ,,,0)は以下の通り

0Normal
1Secret(見えない)
2Blink
3Secret
4Reverse
5Reverse&Secret
6Reverse&Blink
7Reverse&Secret

カラーモード(CONSOLE ,,,1)は以下の8色を指定する
8以降を指定すると白黒モードと同じ効果でカラー表示となる
指定できるのはテキストカラーのみ
(白のBlinkだと2*8+7=23)
※Emulatorでは未対応の模様

0Black
1Blue
2Red
3Magenta
4Green
5Cyan
6Yellow
7White

[戻る]

※ SCREEN
SCREEN グラフィックモード,画面スイッチ,アクティブページ,表示ページ

・グラフィックモード
0 : カラーモード(640x200)
1 : 白黒モード(640x200, 3pages)
・画面スイッチ
0 :
1 :
2 :
・アクティブページ(白黒モード時のみ有効)
0 : 全ページOFF
1 : ページ1 ON
2 : ページ2 ON
3 : ページ1,2 ON
4 : ページ3 ON
5 : ページ1,3 ON
6 : ページ2,3 ON
7 : 全ページON

[戻る]

※ PLAY
音階 : CDEFGAB
半音 : 音階+,#(半音上げ)|音階-(半音下げ)
休符 : R
音長 : Ln(1〜64 default:4)
音階、休符の後に付けた場合は単体指定
付点は例えば付点4分の場合は「6」、もしくは「4.」
付点は1個で元の音長の3/2の長さ
オクターブ : On(1〜8 default:4)
音階指定 : Nn(1〜96)
テンポ : Tn(32〜255 default:120)
音量 : Vn(0〜15 default:8)
エンベロープ形状 : Sx(0〜15 default:1)
エンベロープ周期 : Mx(1〜65535)

[戻る]

※ 変数型・定数型
整数型(A%) : -32768〜+32767
単精度(A!) : ±2.93874E-39〜±1.70141E+38
倍精度(A#) : ±2.93873587705571874D-39〜±1.70141183460469221D+38

A$ : 文字列型(A$="TEST")
&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の否定

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
番号表示意味
?Extra IgnoredINPUT文で指定した変数の数より、多いデータを入力している
?Redo from start>INPUT文に対する入力が異常なので再入力を求む
1NEXT without FORNEXTに対応したFORがない
2Syntax errorコマンド、またはステートメントの書き方が間違っている
3RETURN without GOSUBRETURNに対応したGOSUBがない
4Out of DATAREADに対応したDATAがない
5Illegal function call関数やステートメントの引数が間違っている
6Overflow値が許容範囲を超えた
7Out of memoryメモリが不足している
8Undefined line number未定義の行番号を指定した
9Subscript out of range配列の添字が指定した範囲外
10Duplicate definition配列が二重宣言された
11Division by zero除算の分母が0
12Illegal directダイレクトモードで使えないステートメントを使った
13Type mismatch変数または定数の型が合わない
14Out of string space変数領域が不足している
15String too long文字定数または文字変数が256文字を超えた
16String formula too complex文字式が複雑すぎる
17Can't continueCONTによるプログラムの再開ができない
18Undefined user function未定義関数を参照した
19No RESUMEエラー処理にRESUMEがない
20RESUME without errorエラー処理でないのにRESUMEが使用された
21Unprintable errorエラーメッセージの定義されていないエラー
22Missing operand必要なオペランドが不足している
23Line buffer overflow行入力バッファが許容範囲を超えた
24Position not on screen指定したカーソル位置が画面の範囲外
25Bad File Dataファイル上のデータ形式の不一致
26Disk BASIC FeatureディスクBASICコマンドが実行された
27Communications Buffer Overflow周辺機器入出力バッファのオーバーフロー
28Port not initializedI/Oポートが初期化されていない
29Tape read ERRORカセットテープ読込時エラー
30OPTION Featureオプション機能が実行された
31Check sum errorチェックサムエラー
32Rom file not foundカートリッジROMのファイルが見つからない

[戻る]

[TOPに戻る]