戻る
F-BASIC
FM-7/77/8/11/TOWNS : 富士通 (Fujitsu)

F-BASIC MICRO 8 BASIC

F-BASICはMicrosoft BASICにFujitsu独自の拡張を行ったものである。
FM-8に搭載されていたときは「FUJITSU MICRO 8 BASIC」となっていたが、FM-7以降は「F-BASIC」となっている。
FM-11シリーズやFM-77シリーズにも搭載されている。
FM-8のMICRO 8 BASIC(V1.0/2.x)はハードウェア構成上一部仕様は異なる。
FM-7/77のもの(V3.x)はほぼ同じである。

FM-11のF-BASIC(V4.0/5.0)は基本的に同じだが、ハードウェアに関係する部分は仕様が異なる。
FM-TOWNSでもその後継版が利用可能である。
上記2つはここでは扱わない。

F-BASIC簡易リファレンス
コマンド
表記省略形凡例使用例説明
AUTOAUTO [行番号][,増分]AUTO 100,5先頭に自動的に行番号を発生させる(増分を省略した場合は10)
DELETEDELETE 行番号[,[行番号2]][,...]
DELETE [行番号][-[行番号2]]
DELETE 10,100
DELETE 100-200
指定した行番号を削除する
指定した範囲の行番号を削除する
行番号の代わりに「.」を指定した場合は最後に扱われた行となる
LISTL.LIST ["[デバイス名:]ファイル名",][行番号]
LIST ["[デバイス名:]ファイル名",][行番号1][,[行番号2]][,...]
LIST ["[デバイス名:]ファイル名",][行番号][-[行番号2]]
LIST
LIST 10,100
LIST 100-200
プログラムを表示する
指定した行番号を表示する
指定した範囲の行番号を表示する
行番号の代わりに「.」を指定した場合は最後に扱われた行となる
デバイス名にプリンタを選択した場合はLLISTと同等
デバイス名に通信ポートを選択した場合は通信ポートに対して実行(要OPEN)
デバイス名に記憶デバイスを選択した場合はSAVEと同等
LLIST (V2.0〜)LLIST [行番号]
LLIST [行番号][,[行番号2]][,...]
LLIST [行番号][-[行番号2]]
LIST
LIST 10,100
LIST 100-200
プログラムを印字する(使用方法はLISTに準ずる)
LIST "LPT0:"と同等
UNLISTUNLIST 行番号UNLIST 100指定行以降をLISTで表示しないようにする
EDITEDIT 行番号EDIT 100指定行を編集モードにする
行番号の代わりに「.」を指定した場合は最後に扱われた行となる
RENUMRENUM [新行番号][,旧行番号][,増分]RENUM 1000,10,100新行番号を先頭に行番号をつけ直す
NEWNEWNEWプログラムを全て消去し、変数を初期化する
CONTCONTCONTSTOPキーやSTOP,ENDで終了したプログラムの実行を再開する
RUNR.RUN {[行番号] | "[デバイス名:]ファイル名"[,R]}RUN 100
RUN "CAS0:LOADER"
指定した行番号からプログラムを実行する(行番号を省略した場合は先頭から実行する)
ファイル名を指定した場合は指定したファイルをロードした後で実行する
RUN実行時通常はオープンしているファイルを全て閉じるが、「R」を付けた場合はそのまま実行する
SAVESA.SAVE "[デバイス名:]ファイル名"[,{A | P}]SAVE "test"指定したデバイスにプログラムを保存する
「A」を付けた場合はASCIIモードで保存する
「P」を付けた場合はファイル保護モードで保存する(解除手段はないので注意)
LOADLO.LOAD "[デバイス名:]ファイル名"[,R]LOAD "test"指定したデバイスからプログラムを読み込む
「R」を付けた場合はファイルをオープンしたまま実行する
LOAD? cassetteLOAD? ["[CAS0:]ファイル名"]LOAD? "CAS0:test"カセットテープのプログラムを照合する
ファイル名を省略した場合は最初に見つかったプログラムを照合する
SKIPF cassetteSK.SKIPF ["[CAS0:]ファイル名"]SKIPF "CAS0:test"カセットテープを指定したプログラムの次のプログラムに進める
ファイル名を省略した場合は最初に見つかったプログラムの次のプログラムに進める
SAVEMSAVEM "[デバイス名:]ファイル名",開始アドレス,終了アドレス,実行アドレスSAVEM "test",&HD000,&HDFFF,&HD100マシン語プログラムを保存する
LOADMLOADM "[デバイス名:]ファイル名"[,オフセット値[,R]]LOADM "test"SAVEMで保存されたマシン語プログラムを読み込む
「R」を付けた場合はファイルをオープンしたまま実行する
FILESFILES ["デバイス名:"][,L]FILES "0:"記録メディアにあるファイル一覧を出力する
「L」を付けた場合は印字も行う
DSKINI diskDSKINI ドライブ番号DSKINI 0フロッピーディスクのディレクトリを初期化する
BUBINI bubble (V1.0〜2.0)DSKINI ドライブ番号DSKINI 0バブルカセットのディレクトリを初期化する
NAME diskNAME "[ドライブ番号:]旧ファイル名" as "[ドライブ番号:]新ファイル名"NAME "0:test.bas" as "0:test2.bas"フロッピーディスク上のファイル名を変更する
ドライブ番号は同一でなければならない
KILL disk/bubbleKILL "[デバイス名:]ファイル名"KILL "0:test.bas"記録メディア上のファイルを削除する
MERGEME.MERGE "[デバイス名:]ファイル名"MERGE "0:test.bas"記録メディア上のASCII形式ファイルとメモリ上のプログラムをマージする
CHAIN (V2.0〜)CHAIN [MERGE] "[デバイス名:]ファイル名"[,[行番号][,ALL][,DELETE範囲]]CHAIN "0:test.bas"記録メディア上のASCII形式ファイルを呼び出して、変数を渡して実行する
「MERGE」を指定した場合はメモリ上のプログラムとマージされる
(この場合はASCII形式だけではなく通常形式も使用できるが、マージされるプログラムはメモリ上のものより行番号が大きくなければエラーとなる)
行番号を指定した場合はそこから実行となる
「ALL」を指定した場合はCOMMONの指定に関わらず全ての変数が引き渡される
DELETE範囲の指定は「MERGE」指定時に有効でマージするプログラムを指定した範囲で削除する
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〜WENDWHILE 式〜WENDWHILE I=0〜WENDWHILEの式が真の場合は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 TIME GOSUBON TIME GOSUB 行番号ON TIME GOSUB 100内蔵時計の時刻割込処理ルーチンを指定する
ON INTERVAL GOSUBON INTERVAL GOSUB 行番号ON INTERVAL GOSUB 100INTERVAL割込処理ルーチンを指定する
ON COM GOSUBON COM(n) GOSUB 行番号ON COM(1) GOSUB 100通信ポート割込処理ルーチンを指定する(n=0〜4)
[戻る]
ステートメント:変数関連
表記省略形凡例使用例説明
CLEARCLEAR [[文字領域サイズ],メモリ上限]CLEAR 512,&HC000
CLEAR
変数を初期化し、文字領域サイズとユーザ領域の上限を指定する
CLEARのみの場合は変数を初期化
RANDOMIZERNDM.RANDOMIZE [数式]RANDOMIZE 0乱数を初期化する
数式 : -32768〜32767(省略時は数値を入力するプロンプトが表示される)
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 変数名(最大値1[,最大値2][,...])[,...]DIM A(100,10),B$(100)配列変数の定義をする
COMMON (V2.0〜)COMMON 変数名[[,変数名2][,...]]COMMON A,B$CHAINで引き渡す変数の定義をする
ERASE (V2.0〜)ERASE 変数名[,変数名2[,...]]ERASE A,B$配列変数を消去する
SWAPSWAP 変数1,変数2SWAP A,B変数1と変数2の値を交換する
DEFINTDEFINT 変数名[-変数名2]DEFINT A-Z指定した変数の型を整数型とする
DEFSNGDEFSNG 変数名[-変数名2]DEFSNG A-Z指定した変数の型を単精度型とする
DEFDBLDEFDBL 変数名[-変数名2]DEFDBL A-Z指定した変数の型を倍精度型とする
DEFSTRDEFSTR 変数名[-変数名2]DEFSTR A-Z指定した変数の型を文字列型とする
[戻る]
ステートメント:マシン語関連
表記省略形凡例使用例説明
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の文字列を書きこむ
LSET diskLSET 文字変数=文字列LSET A$="TEST"ランダムファイルバッファのフィールドに左詰めで文字列を代入する
RSET diskRSET 文字変数=文字列RSET A$="TEST"ランダムファイルバッファのフィールドに右詰めで文字列を代入する
BUBW bubble (V1.0〜2.0)BUBW ユニット番号(0〜1),ページ番号(0〜1023),{文字列名 | 数値配列名}BUBW 0,0,A$バブルカセットに変数内容を保存する
BUBR bubble (V1.0〜2.0)BUBR ユニット番号(0〜1),ページ番号(0〜1023),{文字列名 | 数値配列名}BUBR 0バブルカセットから変数内容を読み込む
[戻る]
ステートメント:画面関連
表記省略形凡例使用例説明
LOCATELOC.LOCATE X,Y[,カーソル表示]LOCATE 10,10指定した位置にカーソルを移動する
CLSCLS [消去コード]CLS 3画面を消去する
0 : 全画面(デフォルト)
1 : スクロール画面
2 : ページモード1
3 : ページモード2
PRINT?PRINT [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]PRINT "HELLO,WORLD"画面上に表示する
USINGを付けた場合は書式に対応して表示する
COLORCOL.COLOR [フォアグラウンドカラーコード][,バックグラウンドカラーコード]COLOR 7,1カラーコードを指定する
COLOR= (V3.0)COL.=COLOR=(パレットコード,カラーコード)COLOR 7,1パレットコードを指定する
CONSOLECONS.CONSOLE [スクロール開始行][,[スクロール行の長さ]][,[ファンクションキー表示モード]][,[カラースイッチ]]CONSOLE 0,20,1,0テキスト画面を設定する
WIDTHW.WIDTH [桁数][,行数]WIDTH 80画面の桁数(40/80)と行数(20/25)を設定する
SCREEN (V3.0)SCREEN [アクティブVRAMコード][,表示VRAMコード]SCREEN 7,7VRAMのモードを指定する
PRINT@PRINT@ [(X,Y),]漢字コード[{, | ;}[漢字コード]...]PRINT@(0,0),&H3000画面に漢字を表示する(漢字コードはJIS)
SYMBOLSYMBOL (X,Y),文字列,横倍率,縦倍率[,[パレットコード][,[角度][,機能コード]]]SYMBOL(0,0),"TEST",2,2,7,1画面に拡大した文字列を表示する
角度コード
0 : 変化なし(デフォルト)
1 : 90°左回転
2 : 180°左回転
3 : 270°左回転

機能コードはLINEと同じだが論理演算NOTが追加されている
GET@GET@[A] (X1,Y1)-(X2,Y2),配列変数名[,G[,パレットコード1[,パレットコード2[...]]]]GET@ (0,0)-(15,15),A画面上のパターンを配列変数に読み込む
「A」を付けた場合は属性も保存する 「G」を付けた場合はグラフィックパターンを保存する
その際にパレットコードを指定すると合致するパターンを保存する
指定がない場合はバックグラウンドカラー以外のパターンで保存する
PUT@PUT@[A} (X1,Y1)-(X2,Y2),配列変数名[,機能コード][,パレットコード]PUT@(0,0),A,PSETGET@で取り込んだパターンを表示する
GET@で取り込んだ条件と同じでないとエラーになるので注意
「A」を付けた場合はパレットコードは指定不可
機能コードはLINEとほぼ同じだが、PRESETの代わりに論理演算NOTが追加されている
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 : グラフィック直線を消す
AND|OR|XOR : 指定したパレットコードと指定した座標のパレットコードとの論理演算を行ってパレットコードを決定する
CONNECTCONNECT (X1,Y1)-(X2,Y2)[-(X3,Y3)][...][,[パレットコード][,機能コード]]CONNECT(100,100)-(200,200)-(300,300),2指定座標に対して連続した直線を描画する
機能コードはLINEと同じ
CIRCLECIRCLE[@] (X,Y),半径[,[パレットコード][,[比率][,[開始位置][,[終了位置][,[{F | N}][,機能コード]]]]]]CIRCLE(100,100),100,2指定座標に円を描画する
比率 : 0〜1(デフォルトは0.4495→真円)
開始終了位置 : 0〜1(0はX座標の右端、Y座標は中心と同じ)
F : 内部を塗りつぶす
N : 内部を塗りつぶさない(デフォルト)
機能コードはLINEと同じ
PAINTPAINT (X,Y)[,[パレットコード][,境界色1[,[境界色2]...]]]PAINT(100,100)2,7指定したパレットコードで境界色に囲まれた範囲を塗りつぶす
境界色を省略した場合は境界色はパレットコードを指定したものとする
PSETPSET (X,Y[,[パレットコード][,機能]])PSET(100,100,2)指定した座標にドットを表示する
機能 : AND|OR|XOR
指定したパレットコードと指定した座標のパレットコードとの論理演算を行ってパレットコードを決定する
PRESETPRESET (X,Y)PRESET(100,100)指定した座標のドットを消去する
GCURSORGCURSOR (X,Y),(変数1,変数2)[,(変数3,変数3)...][,パレットコード]GCURSOR(100,100)指定した座標のドットを読み込む
[戻る]
ステートメント:演奏関係
表記省略形凡例使用例説明
BEEPBEEP [スイッチ]BEEP 1BEEP音を出力する
スイッチ
(省略) : 「ピーッ」と鳴らす
0 : 音を鳴らさない(消す)
1 : 音を鳴らす
PLAY (V3.0)PLAY MML文字列1[,MML文字列2[,MML文字列3]]PLAY A$指定したMMLに従って音楽を演奏する
SOUND (V3.0)SOUND レジスタ番号,データSOUND 13,1PSG(AY-3-8913)にデータを書き込む
[戻る]
ステートメント:その他
表記省略形凡例使用例説明
HARDCHARDC {0 | 1 | 2}HARDC 0画面内容をプリンタに出力する
0 : 文字のみ印字(デフォルト)
1 : 1dotを4dotに拡大して印字
2 : 画面内容をそのまま印字
LPRINTLPRINT [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]LPRINT A$プリンタに出力する
ERRORERROR エラー番号ERROR 19指定したエラー番号のエラーを発生させる ※エラーメッセージ一覧
KEYKEY 番号,{文字列 | {ON | OFF | STOP}}KEY 1,"TEST"
KEY 1,ON
指定した番号のファンクションキーに文字列を設定する
指定した番号のファンクションキー割込を設定する
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
TIMETIME {時刻文字列 | {ON | OFF | STOP}}TIME "01:23:45"
TIME OFF
タイマ割込時刻を設定する
タイマ割込モードを設定する
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
INTERVALINTERVAL {割込間隔(0〜65535[s]) | {ON | OFF | STOP}}INTERVAL "01:23:45"
INTERVAL OFF
INTERVAL割込間隔を設定する
INTERVAL割込モードを設定する
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
COMCOM(n) {ON | OFF | STOP}COM(1) OFF通信ポート割込モードを設定する(n=0〜4)
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
OPENOPEN "モード",[#]ファイル番号,"COMn:"[(パラメータ)]OPEN "I",#1,"0:test"指定した通信ポート(n=0〜4)をファイル番号でOPENする
パラメータ(省略時は「S8N2」指定)
・クロック : S|N(DIPSWでの指定クロックに対して)
S : Slow(1/64)
F : Fast(1/16)
・データ長 : 7|8
7 : 7bit
8 : 8bit
・パリティ : N|O|E
N : パリティなし
O : 奇数パリティ
E : 偶数パリティ
・ストップビット : 2|1
2 : 2bit
1 : 1bit
MOTORM.MOTOR [{ON | OFF}]MOTOR ONカセットテープレコードのモータを制御する
スイッチ(省略時はトグル動作)
OFF : 止める
ON : 動かす
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進数文字列に変換する
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$)
数式を指定した場合は使用可能な残りメモリサイズを返す
文字列を指定した場合はガベージコレクションを行って使用可能な残り文字列領域サイズを返す
CVICVI(文字列式)CVI(A$)文字列(2bytes)を整数型へ変換する
CVSCVS(文字列式)CVS(A$)文字列(4bytes)を単精度型へ変換する
CVDCVD(文字列式)CVD(A$)文字列(8bytes)を倍精度型へ変換する
MKI$MKI$(数式)MKI$(A%)整数型を文字列(2bytes)へ変換する
MKS$MKS$(数式)MKS$(A!)単精度型を文字列(4bytes)へ変換する
MKD$MKD$(数式)MKD$(A#)倍精度型を文字列(8bytes)へ変換する
INPUT$INPUT$(文字数[,デバイス名])INPUT$(1,#1)
INPUT$(10)
ファイルから文字数分の文字列を返す
デバイス名を省略した場合はキーボードからの入力(プロンプトの表示はない)
DSKI$ diskDSKI$(ドライブ番号,トラック番号,セクタ番号)DSKI$(1,1,2)フロッピーディスク装置から直接読み込んだ256bytesの文字列を返す
DSKF diskDSKF(ドライブ番号)DSKF(1)フロッピーディスク装置の未使用領域クラスタ数を返す
LOCLOC(ファイル番号)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→文字がない
それ以外→8で割った余りがパレットコード、商が0ならノーマル、1ならリバース
POINTPOINT(X,Y)POINT(100,100)指定した座標のドットの有無を返す
LPOSLPOS(番号)LPOS(0)プリンタのヘッド位置を返す(番号指定は無視される)
PEEKPEEK(アドレス)PEEK(&HD000)指定したアドレスの値を返す
USRUSR番号(式)I=USR1(ASM)マシン語関数を呼び出す
ANPORTANPORT(チャンネル番号,電圧レンジ)ANPORT(0,1)A/D変換されたアナログポートのデータを返す
チャンネル番号 : 0〜3
電圧レンジ : 0[〜5/8V]|1[〜2.5V]
VARPTRVARPTR(変数名)VARPTR(T)変数が割り当てられているアドレスを返す
ERRERRERR発生したエラーのエラーコードを返す
ERLERLERLエラーの発生した行番号を返す
[戻る]

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

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

[戻る]

※ ターミナルコマンド
・クロック指定 : S|F
DIPSWにより決定されたクロックの動作モードを指定
S : Slow(倍率そのまま)
F : Fast(倍率4倍)
・ビット長 : 7|8
・パリティモード : N|O|E
N : 指定なし
O : 奇数
E : 偶数
・ストップビット数 : 1|2
・通信モード : F|H
F : 全二重
H : 半二重
・オートLFモード : A|N
A : オートLFモード
N : 指定なし

パラメータを省略した場合は「TERM "S8N2FN"」と同等
BREAK[STOP]でBASICレベルに復帰する

[戻る]

※ デバイス名

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

[戻る]

※ OPEN
・モード : I|O|A|R
I : 入力モード
O : 出力モード
A : シーケンシャルファイルへの追加(APPEND)モード
R : ランダムファイルへの入出力モード
・ファイル番号 : 1〜16

フロッピーディスクに対しては複数のファイル番号を1つのファイルへ指定可能(モードはI/R)
カセットテープ及びバブルカセットへは1つのファイルに対してファイル番号は1つ
RS-232C及びプリンタに対してはオプションが指定可能

・プリンタ : S|W
S : 80桁(初期)
W : 136桁
・RS-232C
(ターミナルモード参照)

[戻る]

※PRINT
; : 式を続けて表示する(A;B) 例 1;2
1 2
, : 式をTABで区切って表示する(A,B) 例 1,2
1         2

・USINGの書式
! : 文字列の最初だけを表示する
例 "!";"TEST"
T
@ : 文字列を出力する
_ : 次の文字を制御文字としてではなく通常の文字として出力する(V2.0〜)
&(空白)& : &と空白の文字列分文字列を表示する(少ない場合は左詰め)
例 "[&    &]";"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
V3.0ではパレットコードをカラーコードに設定可能となる

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

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

[戻る]

※ SCREEN
アクティブコードを指定したVRAMが使用可能となり、表示コードを指定したVRAMが表示される
すなわち、アクティブにしていないと表示を指定しても表示されない

CodeGRB備考
0000全マスク
1001
2010
3011
4100
5101
6110
7111全アクティブ

[戻る]

※ GCURSOR
画面上に指定したパレットコードでグラフィックカーソル「+」が表示される

カーソルキーで移動し、リターンキーで情報を指定した変数に読み込む
用意された変数分読み取ると終了する
デフォルトでは移動量は1dot単位だが、数字テンキーでその数字分のdot移動量に変化する
シフトキーと同時押下の場合は20dot単位の移動となる

[戻る]

※ 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)
エンベローブパターン : Sn(0〜15)
エンベローブ長 : Mn(0〜65535)

「n」による指定は「=変数名;」とすることでMML外で定義した変数を使用可能

[戻る]

※ 変数型・定数型
整数型(A%) : -32768〜+32767
単精度(A!) : ±2.93874E-39〜±1.70141E+38
倍精度(A#) : ±2.93873587705571874D-39〜±1.701411834604692D+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の否定

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
番号表示意味
?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がない
26Bubble Fullバブルカセットの容量が一杯である
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入出力バッファのオーバーフロー発生
62Protected Program保護属性のプログラムに書き込もうとした
63File Not Foundファイルが見つからない
64File Already Existsファイルは既に存在している
65Directory Fullディレクトリ領域が一杯である
66Too Many Open Disk FilesファイルのOPEN数が最大値を超えた
67Disk Fullディスク容量が一杯である
68Field OverflowFIELDで256bytes以上を指定した
69String Not FieldedFIELDで宣言した文字列変数以外にLSET/RSETで代入しようとした
70Bad Record Numberレコード番号異常
71Bad File Structureファイル構成異常
72Drive Not Ready指定したドライブ番号はREADY状態ではない
73Disk Write Protectedディスクは書込保護状態である

[戻る]

[TOPに戻る]