戻る
LEVEL-3 BASIC
Basic Master Level 3 : 日立 (Hitachi)

LEVEL-3 BASIC

LEVEL-3 BASICはMicrosoft BASICにHitachi独自の拡張を行ったものである。
Basic Master Level 3シリーズに搭載されている。

Basic Masterシリーズは初代がLEVEL-1 BASIC、Level 2/Jr.はLEVEL-2 BASICというHitachi独自のBASICであった。
Level 3からはLEVEL-3 BASICとなり、Microsoft系となった。
その後発売されたS1はS1 BASICとなっており、これもMicrosoft系である。
(ほぼLEVEL-3 BASICの上位互換なのでハードウェア依存しないものはそのまま使用可能)
※S1 BASICは仮対応

LEVEL-3 BASIC簡易リファレンス
コマンド
表記省略形凡例使用例説明
AUTOAUTO [行番号][,増分]AUTO 100,5先頭に自動的に行番号を発生させる(増分を省略した場合は10)
DELETEDELETE 行番号[,[行番号2]][,...]
DELETE [行番号][-[行番号2]]
DELETE 10,100
DELETE 100-200
指定した行番号を削除する
指定した範囲の行番号を削除する
LISTL.LIST ["[デバイス名:][ファイル名"],][行番号]
LIST ["[デバイス名:]ファイル名",][行番号][,[行番号2]][,...]
LIST ["[デバイス名:]ファイル名",][行番号][-[行番号2]]
LIST
LIST 10,100
LIST 100-200
プログラムを表示する
指定した行番号を表示する
指定した範囲の行番号を表示する
デバイス名にプリンタを選択した場合はLLISTと同等
デバイス名に通信ポートを選択した場合は通信ポートに対して実行(要OPEN)
デバイス名に記憶デバイスを選択した場合はSAVEと同等
LLIST S1LL.LLIST [行番号]
LLIST [行番号][,[行番号2]][,...]
LLIST [行番号][-[行番号2]]
LLIST
LLIST 10,100
LLIST 100-200
プログラムを印字する
指定した行番号を印字する
指定した範囲の行番号を印字する
UNLISTUNLIST 行番号UNLIST 100指定行以降をLISTで表示しないようにする
EDITEDIT 行番号EDIT 100指定行を編集モードにする
RENUMRENUM [新行番号][,旧行番号][,増分]RENUM 1000,10,100新行番号を先頭に行番号をつけ直す
NEWNEWNEWプログラムを全て消去し、変数を初期化する
NEW ONNEW ON 式NEW ON 1モードを切り替えて再起動する
CONTC.CONTCONTSTOPキーやSTOP,ENDで終了したプログラムの実行を再開する
RUNR.RUN {[行番号] | "[デバイス名:]ファイル名"[,R]}RUN 100
RUN "CAS0:LOADER"
指定した行番号からプログラムを実行する(行番号を省略した場合は先頭から実行する)
ファイル名を指定した場合は指定したファイルをロードした後で実行する
「R」を付けた場合はファイルをロード後、実行する
SAVESA.SAVE "[デバイス名:]ファイル名"[,{A | P}]SAVE "test"指定したデバイスにプログラムを保存する
「A」を付けた場合はASCIIモードで保存する
「P」を付けた場合はファイル保護モードで保存する(解除手段はないので注意)
LOADLO.LOAD "[デバイス名:]ファイル名"[,R]LOAD "test"指定したデバイスからプログラムを読み込む
「R」を付けた場合はファイルをロード後、実行する
LOAD?LO.?LOAD? ["[CAS0:]ファイル名"]LOAD? "CAS0:test"カセットテープのプログラムを照合する
ファイル名を省略した場合は最初に見つかったプログラムを照合する
SKIPFSK.SKIPF ["[CAS0:]ファイル名"]SKIPF "CAS0:test"カセットテープを指定したプログラムの次のプログラムに進める
ファイル名を省略した場合は最初に見つかったプログラムの次のプログラムに進める
SAVEMSA.MSAVEM "[デバイス名:]ファイル名",開始アドレス,終了アドレス,実行アドレスSAVEM "test",&HD000,&HDFFF,&HD100マシン語プログラムを保存する
LOADMLO.MLOADM "[デバイス名:]ファイル名"[,オフセット値[,R]]LOADM "test"SAVEMで保存されたマシン語プログラムを読み込む
「R」を付けた場合はファイルをロード後、実行する
VERIFY 5" diskVERIFY {ON | OFF}VERIFY OFFフロッピーディスク書込時のヴェリファイを設定する
FILESFILES ["デバイス名:"]FILES "0:"記録メディアにあるファイル一覧を出力する
LFILES S1LFILES ["デバイス名:"]LFILES "0:"記録メディアにあるファイル一覧を印字する
DEVICE diskDEVICE "デバイス名:"DEVICE "1:"省略時のデフォルトデバイス名を指定する
DSKINI diskDSKINI ドライブ番号DSKINI 0フロッピーディスクのディレクトリを初期化する
NAME diskNAME "[ドライブ番号:]旧ファイル名" as "[ドライブ番号:]新ファイル名"NAME "0:test.bas" as "0:test2.bas"フロッピーディスク上のファイル名を変更する
ドライブ番号は同一でなければならない
KILL diskKILL "[デバイス名:]ファイル名"KILL "0:test.bas"記録メディア上のファイルを削除する
MERGEME.MERGE "[デバイス名:]ファイル名"MERGE "0:test.bas"記録メディア上のASCII形式ファイルとメモリ上のプログラムをマージする
KEY LISTKEY LISTKEY LISTファンクションキーの定義一覧を表示する
MONMONMONモニタコマンドモードにする
TERMTERM ["パラメータ"]TERMターミナルモードにする
[戻る]
ステートメント:プログラム制御
表記省略形凡例使用例説明
ENDENDENDプログラムを終了する
STOPSTOPSTOPプログラムを一時停止する
REM'REM [注釈]REM TEST注釈を入れる(実行には無関係)
FOR...TO...STEP〜NEXTFOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数][,変数2][,...]FOR I=0 TO 10 STEP 2〜NEXT IFORからNEXTまでの処理を繰り返す
WHILE〜WEND S1WHILE 論理式〜WENDWHILE A=0〜WEND論理式が真である間、繰り返して実行する
GOSUBGOS.GOSUB 行番号GOSUB 1000サブルーチンを呼び出す
RETURNRET.RETURN [行番号]RETURNサブルーチンから復帰する
GOTOGO.GOTO 行番号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 {NEXT | 行番号}RESUME 100エラー処理を終了し、実行を再開する
NEXT  : エラー原因になった次の行から再開する
行番号: 指定した行番号から再開する
ON KEY GOSUBON KEY(n) GOSUB 行番号ON KEY(1) GOSUB 100ファンクションキー割込処理ルーチンを指定する(n=1〜10)
ON COM GOSUBON COM(n) GOSUB 行番号ON COM(1) GOSUB 100通信ポート割込処理ルーチンを指定する(n=0〜4)
ON PEN GOSUBON PEN GOSUB [未定義領域検知時行番号][,[第1領域検知時行番号][....]]ON PEN GOSUB 100ライトペン割込処理ルーチンを指定する
ON INTERVAL GOSUB S1ON INTERVAL GOSUB 行番号ON INTERVAL GOSUB 100インターバル割込処理ルーチンを指定する
ON MTRIG GOSUB S1ON MTRIG(n) GOSUB 行番号ON MTRIG(1) GOSUB 100マウストリガ割込処理ルーチンを指定する
[戻る]
ステートメント:変数関連
表記省略形凡例使用例説明
CLEARCLEAR [[文字領域サイズ],メモリ上限]CLEAR 512,&HC000
CLEAR
変数を初期化し、文字領域サイズとユーザ領域の上限を指定する
CLEARのみの場合は変数を初期化
RANDOMIZERNDM.RANDOMIZE [数式]RANDOMIZE 0乱数を初期化する
数式 : -32768〜32767(省略時は数値を入力するプロンプトが表示される)
INPUTINPUT [文字列{; | , }]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する
INPUT WAITINPUT WAIT 行番号;待ち時間,[文字列{; | , }]変数[,変数2][,...]INPUT WAIT 100,3,"X=";X指定時間内(単位[s])の間にキーボードから入力した値を変数に代入する
待ち時間が経過した場合は指定した行に制御が移る
LINE INPUTLINE INPUT [文字列{; | , }文字列変数LINE INPUT "X=";X$キーボードから入力した値を特殊文字を含めて区切らずに文字列変数に代入する
LETLET 変数=式LET A=1変数に値を代入する(LETは省略できる)
DATADATA 定数[,定数][,...]DATA "TEST",765READで読み込むデータを定義する
READREAD 変数[,変数][,...]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)配列変数の定義をする
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
指定した変数の型を文字列型とする
[戻る]
ステートメント:マシン語関連
表記省略形凡例使用例説明
EXECEXEC [アドレス]EXEC &HD000指定したアドレスのマシン語プログラムを実行する
DEF USRDEF USR[番号(0〜9)]=アドレスDEF USR1=&HD000USRで呼び出すマシン語サブルーチンを定義する
POKEPOKE アドレス,数式POKE &HD000,&HC9指定したアドレスに値を書き込む
[戻る]
ステートメント:ファイル関連
表記凡例使用例説明
OPENOPEN "モード",[#]ファイル番号,"[デバイス名:]ファイル名"OPEN "I",#1,"0:test"指定したファイルをファイル番号でOPENする
CLOSECLOSE [#]ファイル番号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入力モードでOPENしたファイルからデータを読み込んで変数に代入する
LINE INPUT #LINE INPUT [#]ファイル番号,文字列変数LINE INPUT #1,A,B入力モードでOPENしたファイルから区切りなしでデータを読み込んで変数に代入する
PRINT #PRINT [#]ファイル番号[,{[USING 書式;データ] | [式]}[;式2[,...]]]]
PRINT [#]ファイル番号,USING 文字列;式1[,式2[,...]]
PRINT #1,A;B出力もしくは追加モードでOPENしたファイルにデータを書き込む
DSKO$ diskDSKO$ ドライブ番号,トラック番号,セクタ番号,文字列式DSKO$ 1,1,2,A$ファイル装置に直接256bytesの文字列を書きこむ
3inch版は文字列変数は1つまで、5inch版は2つまで指定可能
LSET disk/S1LSET 文字変数=文字列LSET A$="TEST"ランダムファイルバッファのフィールドに左詰めで文字列を代入する
RSET disk/S1RSET 文字変数=文字列RSET A$="TEST"ランダムファイルバッファのフィールドに右詰めで文字列を代入する
[戻る]
ステートメント:画面関連
表記省略形凡例使用例説明
LOCATELOC.LOCATE X,Y[,カーソル表示]LOCATE 10,10指定した位置にカーソルを移動する
CLSCLSCLS画面を消去する
PRINT?PRINT [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]PRINT "HELLO,WORLD"画面上に表示する
USINGを付けた場合は書式に対応して表示する
COLORCOL.COLOR [フォアグラウンドカラーコード][,バックグラウンドカラーコード]COLOR 7,1カラーコードを指定する
CONSOLECONS.CONSOLE [スクロール開始行][,[スクロール行の長さ]][,ファンクションキー表示モード]CONSOLE 0,20,1テキスト画面を設定する
WIDTHW.WIDTH 桁数WIDTH 80画面の桁数(40/80)を設定する
SCREENSCREEN [精細度モード][,[ページ番号][,インターレス]]SCREEN 0.1.0/td>画面モードを指定する
LINELINE [@][(X1,Y1)]-(X2,Y2),{文字列 | 機能コード}[,[カラーコード][,{B | BF}]]LINE@ (0,0)-(20,20),"A",2
LINE@ (0,0)-(100,100),PSET,3,BF
直線(B:四角形,BF:塗りつぶした四角形)を描画する
文字列指定時は先頭文字でキャラクタラインを描画
機能コード
PSET   : グラフィック直線を描画
PRESET : グラフィック直線を消す
PAINTPAINT (X,Y)[,[カラーコード][,境界色]]PAINT(100,100)2,7指定したカラーコードで境界色に囲まれた範囲を塗りつぶす
境界色を省略した場合は境界色はカラーコードを指定したものとする
PSETPSET (X,Y[,カラーコード])PSET(100,100,2)指定した座標にドットを表示する
PRESETPRESET (X,Y)PRESET(100,100)指定した座標のドットを消去する
CIRCLE S1CIRCLE (X,Y),半径,[カラーコード(0〜7)[,開始角[,終了角[,扁平率]]]]CIRCLE(0,0),100,2円を描画する
CONNECT S1CONNECTCONNECT(仕様調査中)
GCURSOR S1GCURSORGCURSOR(仕様調査中)
GET S1GETGET(仕様調査中)
PUT S1PUTPUT(仕様調査中)
IGS S1IGSIGS(仕様調査中)
IMAGE S1IMAGEIMAGE(仕様調査中)
KANJI S1KANJIKANJI(仕様調査中)
PALETTE S1PALETTEPALETTE(仕様調査中)
POINT S1POINTPOINT(仕様調査中)
SYMBOL S1SYMBOLSYMBOL(仕様調査中)
VIEW S1VIEWVIEW(仕様調査中)
WINDOW S1WINDOWWINDOW(仕様調査中)
[戻る]
ステートメント:プリンタ関連
表記省略形凡例使用例説明
LCOPY S1LCOPY [機能番号(0〜7)]LCOPY画面の内容を印字する
LPRINT S1LPRINT [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]LPRINT "HELLO,WORLD"内容を印字する
USINGを付けた場合は書式に対応して印字する
[戻る]
ステートメント:サウンド関連
表記省略形凡例使用例説明
PLAY S1PLAY "文字列1"[,"文字列2"[,"文字列3"]]
PLAY 文字列式
PLAY "O3CDEFGAB:O4CDEFGAB"
PLAY A$
MMLの文法に従って演奏する
SOUND S1SOUND レジスタ番号(0〜13),データ(0〜255)[,データ2[,...]]SOUND 7,128サウンドLSIを操作する
[戻る]
ステートメント:その他
表記省略形凡例使用例説明
BEEPBEEP [機能コード]BEEPBEEP音を出力する(機能コードはダミー)
LPRINTLPRINT [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]LPRINT A$プリンタに出力する
ERRORERROR エラー番号ERROR 19指定したエラー番号のエラーを発生させる ※エラーメッセージ一覧
KEYKEY 番号,{文字列 | {ON | OFF | STOP}}KEY 1,"TEST"
KEY 1,ON
指定した番号のファンクションキーに文字列を設定する
指定した番号のファンクションキー割込を設定する
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
COMCOM(n) {ON | OFF | STOP}COM(1) OFF通信ポート割込モードを設定する(n=0〜4)
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
PENPEN {ON | OFF | STOP}PEN OFFライトペン割込モードを設定する(n=0〜4)
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
MOTORMOTOR [{ON | OFF}]MOTOR ONカセットテープレコードのモータを制御する
スイッチ(省略時はトグル動作)
OFF : 止める
ON : 動かす
PENPEN 番号;[(X1,Y1)-(X2,Y2)][,番号2;[...]PENライトペンの検知領域を設定する
WAITWAIT ポート番号,マスク[,論理データ]WAIT &HD0,&H80,&HF0ポート入力kからのデータ受信を待ち「(データ [XOR 論理データ]) AND マスク」が真のとき、次の行からプログラムを再開する
TRONTRONTRONトレースモードにする
TROFFTROFFTROFFトレースモードを解除する
INTERVAL S1INTERVALINTERVAL(仕様調査中)
MTRIG S1MTRIGMTRIG(仕様調査中)
STRIG S1STRIGSTRIG(仕様調査中)
DEF MAP S1DEF MAPDEF MAP(仕様調査中)
[戻る]
文字列関数
表記省略形凡例使用例説明
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進数文字列に変換する
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)数式を倍精度型へ変換する
[戻る]
数学関数
表記省略形凡例使用例説明
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)平方根の値を返す
[戻る]
その他関数
表記省略形凡例使用例説明
FREFRE({数式 | 文字列})FRE(0)
FRE(A$)
数式を指定した場合は使用可能な残りメモリサイズを返す
文字列を指定した場合はガベージコレクションを行って使用可能な残り文字列領域サイズを返す
CVI disk/S1CVI(文字列式)CVI(A$)文字列(2bytes)を整数型へ変換する
CVS disk/S1CVS(文字列式)CVS(A$)文字列(4bytes)を単精度型へ変換する
CVD disk/S1CVD(文字列式)CVD(A$)文字列(8bytes)を倍精度型へ変換する
MKI$ disk/S1MKI$(数式)MKI$(A%)整数型を文字列(2bytes)へ変換する
MKS$ disk/S1MKS$(数式)MKS$(A!)単精度型を文字列(4bytes)へ変換する
MKD$ disk/S1MKD$(数式)MKD$(A#)倍精度型を文字列(8bytes)へ変換する
INPUT$INPUT$(文字数[,デバイス名])INPUT$(1,#1)
INPUT$(10)
ファイルから文字数分の文字列を返す
デバイス名を省略した場合はキーボードからの入力(プロンプトの表示はない)
DSKI$ diskDSKI$(ドライブ番号,トラック番号,セクタ番号,文字列変数)DSKI$(1,1,2,A$)フロッピーディスク装置から直接読み込んだ256bytesの文字列を返す
3inch版は文字列変数は1つまで、5inch版は2つまで指定可能
DSKF diskDSKF(ドライブ番号)DSKF(1)フロッピーディスク装置の未使用領域クラスタ数を返す
LOC diskLOC(ファイル番号)LOC(1)指定したファイル番号の論理的位置を返す
LOFLOF(ファイル番号)LOF(1)指定したファイル番号の総レコード数を返す
EOFEOF(ファイル番号)EOF(1)シーケンシャルファイルの終わりを検出する
INKEY$INKEY$INKEY$押されたキーの値を返す
DATE$DATE$DATE$="10/01/01"日付文字列変数を操作する
TIME$TIME$TIME$="12:34:56"時刻文字列変数を操作する
DATEDATEDATE日付変数を返す(01/01を基準とした1日単位の数値)
TIMETIMETIME時刻変数を返す(00:00:00を基準とした1秒単位の数値)
CSRLINCSRLINCSRLIN現在のカーソル行位置を返す
POSPOS(番号)POS(0)現在のカーソル桁位置を返す(番号指定は無視される)
SCREENSCREEN(X,Y[,スイッチ])SCREEN(100,100)指定した座標のキャラクタコードを返す
スイッチ
0 : キャラクタコードを返す(デフォルト)
1 : カラーコード(0〜15)を返す
=0→文字がない
=16→グラフィック
POINTPOINT(X,Y)POINT(100,100)指定した座標のドットの有無を返す
PENPEN(機能コード)PEN(0)ライトペンの情報を返す
機能コード
0 : ライトペンが押されていたら-1、押されていなければ0
1 : ライトペン押下時のX座標
2 : ライトペン押下時のY座標
・レベルセンス(関数呼び出し時のライトペン情報)
3 : ライトペンが押されていたら-1、押されていなければ0
4 : ライトペン押下時のX座標
5 : ライトペン押下時のY座標
PEEKPEEK(アドレス)PEEK(&HD000)指定したアドレスの値を返す
USRUSR番号(式)I=USR1(TEST)マシン語関数を呼び出す
VARPTRVARPTR(変数名)VARPTR(T)変数が割り当てられているアドレスを返す
ERRERRERR発生したエラーのエラーコードを返す
ERLERLERLエラーの発生した行番号を返す
MAP S1MAPMAP(仕様調査中)
MREAD S1MREADMREAD(仕様調査中)
MTRIG S1MTRIGMTRIG(仕様調査中)
STICK S1STICKSTICK(仕様調査中)
STRIG S1STRIGSTRIG(仕様調査中)
VIEW S1VIEWVIEW(仕様調査中)
WINDOW S1WINDOWWINDOW(仕様調査中)
[戻る]

※ モニタコマンド
M[アドレス] : メモリ内容を変更
G[アドレス] : 指定アドレスのマシン語プログラムを実行
D[アドレス] : 指定アドレスから64bytes分のメモリ内容を表示
R : レジスタ内容を表示

BREAK、もしくはCTRL+C/CTRL+DでBASICレベルに復帰する

[戻る]

※ ターミナルコマンド
・クロック指定 : S|F
S : Slow(1/64)
F : Fast(1/16)
・ワード長 : 7|8
・パリティモード : N|O|E
N : 指定なし
O : 奇数
E : 偶数
・ストップビット数 : 1|2
・通信モード : F|H
F : 全二重
H : 半二重

パラメータを省略した場合は「TERM "F8N2F"」と同等
COM0:に対して適用される
BREAKでBASICレベルに復帰する

[戻る]

※ デバイス名

装置名デバイス名入力出力備考
キーボードKYBD:OX
スクリーンSCRN:XO
プリンタLPT0:XO
RS-232CCOMn:OOn:0〜4
0は内蔵で1〜4は要拡張I/F
カセットテープCAS0:OOROM BASICでのデフォルト
フロッピーディスクn:OOn:0〜1 (2〜3は要拡張)
DISK BASICでのデフォルトは0:

[戻る]

※ NEWON
各項目をビット配列にして設定する箇所のビットを立てた値を設定する
(オフセット値の記述がない設定は0となる)

ビット設定オフセット値BASICでの設定備考
0BASIC/TERMinal1: BASIC 
1Interace/Non Interace2: InteraceSCREEN ,,n 
280桁/40桁4: 80桁WIDTH n 
3ノーマル/ハイレゾ8: ノーマルSCREEN n 
4PFキー表示/PFキー非表示16: 表示CONSOLE ,,n 
5半二重/全二重32: 半二重TERM "F8N1?"TERMモードの通信方式
67bit/8bit64: 7bitTERM "F?"TERMモードのワード長
7カタカナ変換/変換しない128: カタカナ変換プリンタ出力時のひらがなコード

例えば1番目と8番目の項目を設定する場合はオフセット値1+128でNEW ON 129となる

[戻る]

※ 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

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

COLOR 8以降は文字色指定時のみ有効で、0〜7の指定時と文字色と背景色が逆になる

[戻る]

※ SCREEN
SCREEN [精細度モード][,[ページ番号][,インターレス]]

・精細度モード(省略時は現在のモード維持)
0 : ノーマルモード
1 : ハイレゾモード
・ページ番号 1〜16(省略時は1)
・インターレス(省略時は現在のモード維持)
0 : インターレス
1 : ノンインターレス

[戻る]

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

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の否定

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
番号表示意味
?Redo From StartINPUT文の入力が異常なので再入力を求む
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必要なオペランドが不足している
23For Without NextFORに対応したNEXTがない
24WHILE Without WENDWHILEに対応したWENDがない(予約)
25WEND Without WHILEWENDに対応したWHILEがない(予約)
50Bad File Numberファイル番号異常
51Bad File Modeシーケンシャルファイルをランダムアクセスしようとした、またはその逆を行った
52File Already Openファイルは既にOPENされている
53Device I/O Errorデバイスのアクセスエラー
54Input Past Endファイルは既に全て読みだされている
55Bad File Descriptorファイルディスクリプタ異常
56Direct Statement In Fileファイル中にダイレクトステートメントが存在した
57File Not Openファイルが見つからない
58Bad Data In Fileファイルのデータ形式異常
59Device In Useデバイスは既にOPENされている
60Device Unavailableデバイスが使用可能な状態ではない
61Buffer Overflow入出力バッファのオーバーフロー発生
DISK BASIC
62Protected Program保護属性のプログラムに書き込もうとした
63File Not Foundファイルが見つからない
64Directory Fullディレクトリ領域が一杯である
65Too Many Open Disk FilesファイルのOPEN数が最大値を超えた
66Disk Fullディスク容量が一杯である
67File Already Existsファイルは既に存在している
68Field OverflowFIELDで256bytes以上を指定した
69String Not FieldedFIELDで宣言した文字列変数以外にLSET/RSETで代入しようとした
70Bad Record Numberレコード番号異常
71Bad File Structureファイル構成異常
72Drive Not Ready指定したドライブ番号はREADY状態ではない
73Disk Write Protectedディスクは書込保護状態である
5" DISK BASIC
74Out Of FIELD BuffersFIELD用のバッファが不足している
75End Of Recordシーケンシャルファイルをランダムアクセスで開いている時に、レコードの終端に達した
76Verification Error書き込み時ヴェリファイエラー発生

[戻る]

[TOPに戻る]