戻る
HuBASIC
X1turbo (CZ-850C) : シャープ (SHARP)

HuBASIC (CZ-8FB02)

HuBASICはHudsonが開発したBASICである。
コマンド体系はMicrosoft系に似ているが、概ね上位互換といってよい。
また、S-BASICからの流れで同じ機能に複数のコマンドがあったり、省略形があるのが特徴である(RUN→R. など)

ここではX1turboに付属していたCZ-8FB02を取り扱っているが、ハードウェアに依存しないものはCZ-8xB01やCZ-8FB03との互換性がある。

HuBASIC簡易リファレンス
コマンド
表記省略形凡例使用例説明
AUTOA.AUTO[*] [行番号][,増分]AUTO 100,5先頭に自動的に行番号を発生させる(増分を省略した場合は10)
(*」を付加した場合は行番号の後に自動で「'」が付く)
DELETED.DELETE 行番号[,[行番号2]][,...]
DELETE [行番号][-[行番号2]]
DELETE 10,100
DELETE 100-200
指定した行番号を削除する
指定した範囲の行番号を削除する
LISTL.LIST[{* | @}] [[ファイル名],] {[行番号] | [.]}
LIST [行番号][,[行番号2]][,...]
LIST [行番号][-[行番号2]]
LIST
LIST 10,100
LIST 100-200
メモリ上のプログラムを表示する
指定した行番号を表示する
指定した範囲の行番号を表示する
(「*」を付加した場合は「'」で始まる行のみを抽出)
(「@」を付加した場合は指定した範囲の行をデフォルト(指定後LISTのみで表示可能)とする)
EDITE.EDIT {[行番号] | [.]}EDIT .指定した行番号を編集モードで表示する
SEARCHSE.SEARCH [検索文字列]SEARCH "foobar"指定した文字列を含んだ行を表示する
LLISTLL.LLIST[*] [{[行番号] | [.]}
LLIST [行番号][,[行番号2]][,...]
LLIST [行番号][-[行番号2]]
LLIST
LLIST 10,100
LLIST 100-200
メモリ上のプログラムをプリンタに出力する
指定した行番号をプリンタに出力する
指定した範囲の行番号をプリンタに出力する
(「*」を付加した場合は「'」で始まる行のみを抽出)
RENUMREN.RENUM [新行番号][,[旧{行番号 | ラベル}],[増分]]RENUM 1000,10,100新行番号を先頭に行番号をつけ直す
NEWNEWNEWプログラムを全て消去し、変数を初期化する
CLEAR
LIMIT
CLE.
LIM.
CLEAR [アドレス]CLEAR &HC000変数を初期化し、BASIC使用最上位アドレスを設定する
NEWONNEWON{[レベル(0〜9] | [アドレス]}NEWON1
NEWON &HF000
BASIC使用最下位アドレスを設定する
レベルを指定する際は空白は付けず、アドレス指定の場合は空白が必要
BOOTBO.BOOTBOOTIPLを起動する
CONTC.CONTCONT[BREAK]キーやSTOP,ENDで終了したプログラムの実行を再開する
RUNR.RUN {[行番号] | "[デバイス:][[パス名]ファイル名]"}RUN
RUN 100
指定した行番号からプログラムを実行する
(行番号を省略した場合は先頭から、ファイル名を指定した場合は読み込んで実行する)
DEVICEDEV.DEVICE "デバイス名:[ディスクタイプ]"DEVICE "2:2"デフォルトデバイスを設定する
SAVESA.SAVE "デバイス名:[パス名]ファイル名[;パスワード]"[,{A | P}]SAVE "0:test.bas"デバイスに[ASCII形式で | 保護化で]プログラムを[パスワード付きで]保存する
LOADLO.LOAD "デバイス名:[[パス名]ファイル名][;パスワード]"LOAD "0:test.bas"デバイスからプログラムを[パスワード付きで]読み込む
SAVEMSA.MSAVEM "デバイス名:[パス名]ファイル名",開始アドレス,終了アドレス[,実行アドレス]SAVEM "0:test.bin",&HD000,&H1000デバイスにマシン語ファイルをバイナリ形式で保存する
LOADMLO.MLOADM "デバイス名:[パス名]ファイル名"[,[開始アドレス][,R]]LOADM "0:test.bin",&HD000デバイスからマシン語ファイルを読み込む
VERIFY
LOAD?
VE.
VERIFY ["CAS:[パス名]ファイル名"]VERIFY "CAS:test.bas"カセットテープのプログラムを照合する
(ファイル名を省略した場合は最初に見つかったプログラムを照合する)
FILESFIL.FILES ["デバイス名:[[パス名]ファイル名]"FILES
FILES "0:"
デバイスにあるファイル一覧を出力する
LFILESLF.LFILES ["デバイス名:[[パス名]ファイル名]"LFILES
LFILES "0:"
デバイスにあるファイル一覧をプリンタに出力する
MKDIRMK.MKDIR "デバイス名:[パス名]ディレクトリ名[;パスワード]"MKDIR "0:test"デバイスにディレクトリを[パスワード付きで]作成する
CHDIRCHD.CHDIR "デバイス名:[パス名]ディレクトリ名[;パスワード]"CHDIR "0:test"カレントディレクトリを[パスワード付きで]変更する
RMDIRRM.RMDIR "デバイス名:[パス名]ディレクトリ名[;パスワード]"RMDIR "0:test"デバイスにあるディレクトリを[パスワード付きで]削除する
KILLKI.KILL "デバイス名:[パス名]ファイル名"KILL "0:test.bas"デバイスにあるファイルを削除する
NAMENA.NAME "デバイス名:[パス名]旧ファイル名" as "デバイス名:[[パス名]新ファイル名"NAME "0:test.bas" as "0:test2.bas"デバイスにあるファイル名を変更する
COPYCOPY "デバイス名:[パス名]旧ファイル名" as "デバイス名:[[パス名]新ファイル名"COPY "0:test.bas" as "0:test2.bas"デバイスにあるファイル名を複製する
SETSET "デバイス名:[パス名]ファイル名","{P | R | S | null}"SET "0:test.bas","R"デバイスにあるファイルに属性を付与する
P : Protect(書込禁止)
R : Read after write(書込後にVERIFYする)
S : Secret(隠し属性)
null("") : (属性削除)
CHAINCH.CHAIN "デバイス名:[パス名]ファイル名"CHAIN "0:test.bas"デバイスにあるファイルを読み込み、変数を引き渡して実行する
MERGEM.MERGE "デバイス名:[パス名]ファイル名"MERGE "0:test.bas"デバイスにあるASCII形式ファイルとメモリ上のプログラムをマージする
HDOFFHDOFF [ハードディスクドライブ番号(0〜3)]HDOFF 0ハードディスクのヘッドを待機状態にする
MONMONMONモニタコマンドモードにする
TRONT.TRONTRONトレースモードにする
TROFFTROF.TROFFTROFFトレースモードを解除する
ASKASKASKTVタイマコントロールを起動する
[戻る]
一般ステートメント
表記省略形凡例使用例説明
ENDENDENDプログラムを終了する
STOPS.STOPSTOPプログラムを一時停止する
STOP {ON | OFF}STOP {ON | OFF}STOP ON
STOP OFF
[BREAK]キーの使用を{許可 | 禁止}する
REM'REMREM TEST注釈を入れる(実行には無関係)
LABELLA.LABEL "文字列"LABEL "TEST"ラベルを付ける
FOR...TO...STEP〜NEXTF. TO STEP N.FOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数][,変数2][,...]FOR I=0 TO 10 STEP 2〜NEXT IFORからNEXTまでの処理を繰り返す
REPEAT〜UNTILREP. U.REPEAT〜UNTIL 論理式REPEAT〜UNTIL A=0論理式が真である間、繰り返して実行する
WHILE〜WENDW. WE.WHILE 論理式〜WENDWHILE A=0〜WEND論理式が真である間、繰り返して実行する
GOSUBGOS.GOSUB {行番号 | ラベル}GOSUB 1000
GOSUB "TEST"
サブルーチンを呼び出す
RETURNRE.RETURN [{行番号 | ラベル}]
RETURN
RETURNサブルーチンから復帰する
GOTOG.GOTO {行番号 | ラベル}GOTO 1000
GOTO "TEST"
指定した{行番号 | ラベル}に飛ぶ
IF...THEN | GOTO...ELSEIF TH. | G. EL.IF 論理式 {THEN 文 | GOTO {行番号 | ラベル}} [ELSE 文]IF A=0 GOTO 10
IF A=0 THEN END ELSE GOSUB 100
論理式の条件判断をする
ON...GOTOO. G.ON 式 GOTO {行番号 | ラベル}[,{行番号2 | ラベル2}][,...]ON A GOTO 100,200式の値に応じて指定された{行番号 | ラベル}へ分岐する
ON...GOSUBO. GOS.ON 式 GOSUB {行番号 | ラベル}[,{行番号2 | ラベル2}][,...]ON A GOSUB 100,200式の値に応じて指定された{行番号 | ラベル}のサブルーチンを呼び出す
ON...RETURNO. RE.ON 式 RETURN {行番号 | ラベル}[,{行番号2 | ラベル2}][,...]ON A RETURN 100,200式の値に応じて指定された{行番号 | ラベル}へ復帰する
[戻る]
一般ステートメント:入出力関連
表記省略形凡例使用例説明
INPUTI.INPUT ["文字列式"{; | ,}]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する
LINPUT
LINE INPUT
LIN.
LINEI.
LINPUT ["文字列式"{; | ,}]文字列変数LINPUT X$キーボードから入力した文字列を変数に代入する
READREAD 変数[,変数2][,...]READ A$,BDATAで定義したデータを変数に代入する
DATADA.DATA 定数[,定数2][,...]DATA "TEST",765READで読み込むデータを定義する
RESTORERES.RESTORE [{行番号 | ラベル}]RESTORE 1000READで読み込むDATAの先頭行を設定する
ON...RESTOREON 式 RESTORE {行番号 | ラベル}[,{行番号2 | ラベル2}][,...]ON A RESTORE 100,200式の値に応じて指定された{行番号 | ラベル}に次に読むDATAの先頭行を設定する
PRINT[ USING]P.[ US.] | ?[ US.]PRINT [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]PRINT "HELLO,WORLD"画面上に表示する
PRINT#0P.#0 | ?#0PRINT#0 式[{; | ,}[...]]PRINT#0 "HELLO,WORLD"
PRINT#0 CHR$(6)
CSIZEで指定された倍率で画面上に表示する
コントロールコードを文字として表示する
LPRINT[ USING]LP.[ US.]LPRINT [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]LPRINT A$プリンタに文字を出力する
WRITEWR.WRITE 式[{; | ,}[...]]WRITE A,B,C画面上に表示する
(PRINTとの違いは空白は詰めて、区切りはコンマで出力する)
OUTOUT ポート番号,数式OUT &HD0,10ポートに値を出力する
[戻る]
一般ステートメント:ファイル関連
表記省略形凡例使用例説明
INITINIT ["デバイス名:"]INIT
INIT "0:"
デバイスを初期化する
MAXFILESMA.MAXFILES 最大ファイル数(0〜15)MAXFILES 2同時にOPENできるファイル数を設定する
OPENOPEN"モード",#ファイル番号,"デバイス名:[[パス名]ファイル名]"OPEN"I",#1,"0:test.dat"ファイルをOPENする
I : シーケンシャル入力
O : シーケンシャル出力
A : シーケンシャル追加出力
R : ランダム入出力
C : シーケンシャル入出力(RS-232C)
(この場合は「COM:通信パラメータ」となる
CLOSECLO.CLOSE [#ファイル番号[,#ファイル番号2][,...]]CLOSE
CLOSE #1
[指定したファイル番号の]ファイルをCLOSEする
FIELDFI.FIELD#ファイル番号(1〜15),フィールド幅 as 文字列変数[,フィールド幅2 as 文字列変数2[,...]]FIELD#1,128 as TEST1$,64,TEST2$ランダムファイルバッファにフィールド変数を割り当てる
GETGET[#]ファイル番号(1〜15)[,レコード番号(0〜32767)]GET#1,10ファイルからデータをファイルバッファに読み込む
PUTPUT[#]ファイル番号(1〜15)[,レコード番号(0〜32767)]PUT#1,10ファイルバッファのデータをファイルに書き込む
INPUT#I.#INPUT#ファイル番号,変数[,変数2[,...]]INPUT#1,A,Bシーケンシャルファイル中のデータを読み込んで変数に代入する
LINPUT#
LINE INPUT#
LIN.#
LINEI#
LINPUT#ファイル番号,文字列変数LINPUT#1,A,Bシーケンシャルファイルから1行分のデータを読み込んで変数に代入する
PRINT#P.# | ?#PRINT#ファイル番号(1〜15)[,{[USING 書式;データ] | [式]}[;式2[,...]]]PRINT#1,A,Bファイルにデータを書き込む
WRITE#WR.#WRITE#ファイル番号(1〜15),式WRITE#1,A,Bファイルにデータを書き込む
(PRINT #との違いは空白は詰めて、区切りはコンマで出力する)
LSETLS.LSET 文字変数=文字列式LSET A$="TEST"ランダムファイルバッファのフィールドに左詰めで文字列を代入する
RSETRS.RSET 文字変数=文字列式RSET A$="TEST"ランダムファイルバッファのフィールドに右詰めで文字列を代入する
DEVI$DEVI$ "デバイス名:",レコード番号(0〜32767),文字変数1,文字変数2DEVI$ "CAS:",1,A$,B$デバイスから1レコード(256バイト)分のデータを読み込んで128バイトずつ2つの変数に代入する
DEVO$DEVO$ "デバイス名:",レコード番号(0〜32767),文字変数1,文字変数2DEVO$ "CAS:",1,A$,B$128バイトの2つの変数から1レコード(256バイト)分のデータをファイルに書き込む
[戻る]
一般ステートメント:変数・定数関連
表記省略形凡例使用例説明
LET(LETは省略可)LET 変数=式LET A=1変数に値を代入する
CLEAR
CLR
CLE.
CLRCLR変数を初期化する
SWAPSW.SWAP 変数1,変数2SWAP A,B変数の値を入れ替える
DEF FNDEF FN関数名(パラメータ[,パラメータ2[,...]])=定義式DEF FNTEST(X,A,B)=X^2+AX+Bユーザ定義関数を定義する
DEFINTDEFI.DEFINT {文字1[,文字2][,...] | 文字1-文字2}DEFINT A,B変数の整数型宣言をする
DEFSNGDEFS.DEFSNG {文字1[,文字2][,...] | 文字1-文字2}DEFSNG A-Z変数の単精度型宣言をする
DEFDBLDEFD.DEFDBL {文字1[,文字2][,...] | 文字1-文字2}DEFDBL A,B-Z変数の倍精度型宣言をする
DEFSTRDEFSTR {文字1[,文字2][,...] | 文字1-文字2}DEFSTR A-B,E,X-Z変数の文字型宣言をする
DIMDIM 変数名(最大値[,最大値2][,...])[,...]DIM A(100,10),B$(100)配列変数の定義をする
VDIMV.VDIM 変数名(最大値[,最大値2][,...])[,...]VDIM A(100,10),B$(100)配列変数の定義をグラフィックメモリに対して行う
VDIM CLEARV. CLR.VDIM CLEAR [先頭アドレス,終端アドレス]VDIM CLEAR
VDIM CLEAR &H4000,&HFFFF
グラフィックメモリに定義した変数及び配列の初期化を行う
ERASEER.ERASE 変数名[,変数名2[,...]]ERASE A,B$配列変数を消去する
OPTION BASEOP. B.OPTION BASE {0 | 1}OPTION BASE 1配列添字の最小値を設定する
RANDOMIZERA.RANDOMIZE 式RANDOMIZE 1000乱数系列を設定する
PUSHPUSH 変数[,変数2[,...]]PUSH A,B$変数の値をユーザスタックに書き込む
POPPOP 変数[,変数2[,...]]POP A,B$変数の値をユーザスタックから読み込む
[戻る]
一般ステートメント:マシン語関連
表記省略形凡例使用例説明
CALLCA.CALL アドレスCALL &HD000指定したアドレスのマシン語サブルーチンを実行する
DEF USRDEF USR[番号(0〜9)]=アドレスDEF USR1=&HD000USRで呼び出すマシン語サブルーチンを定義する
POKEPO.POKE アドレス,数式[,...]POKE &HD000,&HC9指定したアドレスに値を書き込む
[戻る]
エラー処理ステートメント
表記省略形凡例使用例説明
ERRORERR.ERROR エラーコード(1〜255)ERROR 10指定したエラーを発生させる ※エラーメッセージ一覧
ON ERROR GOTOO. ERR. G.ON ERROR GOTO {行番号 | ラベル}ON ERROR GOTO 100エラー発生時の分岐処理ルーチンを指定する
RESUMERESU.RESUME {{行番号 | ラベル} | NEXT}RESUME 100エラー処理を終了し、実行を再開する
無指定 : エラー原因になった行から再開する
{行番号 | "文字列" | 文字変数} : 指定した{行番号 | ラベル}から再開する
NEXT : エラー原因になった次の行から再開する
ON...RESUMEON RESU.ON 式 RESUME {行番号 | ラベル}[,{行番号2 | ラベル2}][,...]ON A RESUME 100,200式の値に応じて指定された{行番号 | ラベル}から再開する
[戻る]
画面制御ステートメント
表記省略形凡例使用例説明
CLSCLS [画面]CLS
CLS 4
指定した画面を消去する
番号なし : テキスト画面
0 : 全てのグラフィック画面
1 : G1
2 : G2
3 : G3
4 : テキスト画面と全てのグラフィック画面
COLORCOL.COLOR [テキスト色(0〜7)][,バックグラウンド色(0〜7)]COLOR 7,0カラーを指定する
PALETPAL.PALET [パレットコード(0〜7),カラーコード(0〜7),ボーダーカラー(0〜1)]PALET 7,0,0パレットを指定する
PALET@PAL.@PALET@ パレットコード1(0〜7),...,パレットコード7PALET@ 7,6,5,4,3,2,1,0パレットを一括指定する
PRWPRW [カラーコードに対応したbit]PRW
PRW 8
文字とグラフィックの表示優先度を設定する
(カラーコードの0〜7をそのまま対応するビットとして、0の場合はテキスト、1の場合はグラフィックが優先となる)
CANVASCAN.CANVAS G1カラーコード(0〜7),G2カラーコード,G3カラーコードCANVAS 1,2,3グラフィック画面の色を指定する
LAYERLAYER テキスト画面順位(1〜4),G1順位,G2順位,G3順位LAYER 1,2,3,4テキスト画面とグラフィック画面の重ね合わせのプライオリティを指定する
KSENKSEN [モード(0〜1)][,カラーコード(0〜7)]KSEN 1,7アンダーラインの使用と色を指定する
SCREEN
GRAPH
SC.
GR.
SCREEN 出力ページ(0〜3),入力ページ(0〜3),グラフィックモード(0〜3)SCREEN 2,1,1画面のモードを設定する
SCREEN@
GRAPH@
SC.@
GR.@
SCREEN@ 出力ページ(0〜3),入力ページ(0〜3),テキスト色(0〜7),バックグラウンド色(0〜7)SCREEN@ 1,1,7,0画面のモードを設定する
WIDTHWI.WIDTH 桁数,行数,グラフィック画面解像度,ディスプレイモードWIDTH 80,25,1,0画面桁数を設定する
GET@ GET@(X1,Y1)-(X2,Y2),配列変数名,パレットコード(0〜7)
GET@(Xa,Ya)-(Xb,Yb),配列変数名
GET@配列変数名1 (Xa,Ya)-(Xb,Yb),配列変数名2
GET@(0,0)-(160,100),A
GET@(0,0)-(10,10),A
GET@A (0,0)-(10,10),B
画面上のグラフィックパターンを配列変数に読み込む
画面上のテキストパターンを配列変数に読み込む
画面上のテキストパターンを漢字属性も含んで配列変数に読み込む
PUT@ PUT@(X1,Y1)-(X2,Y2),配列変数名,モード,パレットコード(0〜7)
PUT@(Xa.Ya)-(Xb,Yb),配列変数名
PUT@配列変数名1 (Xa,Ya)-(Xb,Yb),配列変数名2
PUT@(0,0),A,PSET,7
GET@(0,0)-(10,10),A
GET@A (0,0)-(10,10),B
GET@で取り込んだパターンを表示する
PSET : そのまま描画する
PRESET : 色を反転して描画する
OR : 画面上のパターンと配列変数のパターンをドット単位でORした結果を描画する
AND : 画面上のパターンと配列変数のパターンをドット単位でANDした結果を描画する
NOT : 画面上のパターンと配列変数のパターンをドット単位でNOTした結果を描画する
XOR : 画面上のパターンと配列変数のパターンをドット単位でXORした結果を描画する(省略時も同様)
[戻る]
テキスト画面ステートメント
表記省略形凡例使用例説明
CONSOLECONS.CONSOLE [縦方向開始行,行数][,横方向開始桁,桁数]CONSOLE 0,25,0,80テキスト画面での文字表示エリアを設定する
LOCATE
CURSOR
LOC.
CU.
LOCATE X,YLOCATE 10,10指定した位置にカーソルを移動する
KMODEKM.KMODE [文字タイプ(0〜1)]KMODE 1表示する文字タイプを設定する
0 : 半角文字(省略時も同様)
1 : 全角文字及びセミグラフィック文字を除く半角文字
CBLACKCBLACK [カラーコード(0〜7)]CBLACK 1指定したカラーコードを黒に設定する
(0及び省略時は標準状態の透明色とする)
CREVCR.CREV [文字反転モード(0〜1)]CREV 1文字の反転状態を設定する
CFLASHCF.CFLASH [文字明滅モード(0〜1)]CFLASH 1文字の明滅状態を設定する
CSIZECS.CSIZE [文字拡大モード(0〜3)]CSIZE 3文字の拡大モードを設定する
拡大表示する場合はPRINT#0を使用する
0 : 標準サイズ(省略時も同様)
1 : 縦2倍
2 : 横2倍
3 : 縦横2倍
CGENCG.CGEN [PCGモード(0〜2)]CGEN 1PCGの使用状態を設定する
0 : ROM CG(省略時も同様)
1 : RAM CG(8×8)
2 : RAM CG(16×8)
POKE@PO.@POKE@ アドレス,数式[,...]POKE &H4000,&HFF指定したグラフィックメモリ内のアドレスに値を書き込む
[戻る]
グラフィックステートメント
表記省略形凡例使用例説明
OPTION SCREENOP. SC.OPTION SCREEN 設定モード(0〜4)OPTION SCREEN 4グラフィックメモリの使用目的を設定する
0 : GRAM0→グラフィック表示 / GRAM1→グラフィック表示
1 : GRAM0→グラフィック表示 / GRAM1→変数エリア(起動時)
2 : GRAM0→外部記憶装置(MEM0:) / GRAM1→変数エリア
3 : GRAM0→グラフィック表示 / GRAM1→外部記憶装置(MEM1:)
4 : GRAM0→外部記憶装置(MEM0:) / GRAM1→外部記憶装置(MEM1:)
WINDOWWIN.WINDOW (X1,Y1)-(X2,Y2)[,(Xa,Ya)-(Xb,Yb)]WINDOW(0,0)-(100,100)グラフィックの表示エリアを設定する
LINELINE [(X1,Y1)]-(X2,Y2)[,モード[,パレットコード(0〜7)[,B[,ラインスタイル]]]]
LINE [(X1,Y1)]-(X2,Y2)[,文字[,B]]
LINE(0,0)-(100,100),PSET,4,&HFF00
LINE(0,0)-(100,100),C$
{直線 | 長方形}を描画する
指定した文字を使って{直線 | 長方形}を描画する
LINELINE [(X1,Y1)]-(X2,Y2),モード,BF,タイリングパターン
LINE [(X1,Y1)]-(X2,Y2),[,文字[,BF]]
LINE(0,0)-(100,100),PSET,BF,P$
LINE(0,0)-(100,100),"X",BF
長方形を描画し、指定した色かタイリングパターンで塗りつぶす
指定した文字を使って長方形を描画し、指定した文字で塗りつぶす
LINELINE [(X1,Y1)]-(X2,Y2)[-(X3,Y3)][-...-(Xn,Yn)]LINE(0,0)-(100,100)-(200,200)-(300,300)直線を連続で描画する
POLYPOL.POLY (X,Y),半径[,パレットコード(0〜7)[,ステップ角[,開始角[,終了角]]]]POLY(0,0),7,60,0,360多角形を描画する
CIRCLECI.CIRCLE[@] (X,Y),半径,[パレットコード(0〜7)[,扁平率[,開始角[,終了角]]]]CIRCLE(0,0),100,2円を描画する
(「@」を付加した場合は開始角、終了角に負の値を指定し扇形が描画できる)
PAINTPAI.PAINT[@] (X,Y),{領域色 | タイリングパターン}[,境界色(0〜7)[,...]]PAINT(100,100),5,2
PAINT(100,100),T$,7
指定した境界色で囲まれた領域を塗る
領域色 : パレットコード(0〜7)、または中間色コード(0〜127)
(「@」を付加した場合は境界色指定は不要で指定された色の領域が塗りつぶされる)
PSETPS.PSET (X,Y[,パレットコード(0〜7)])PSET(100,100,2)指定した座標にドットを表示する
PRESETPRE.PRESET (X,Y[,パレットコード(0〜7)])PRESET(100,100,2)指定した座標のドットを消去する
POSITIONPOS.POSITION (X,Y)POSITION(100,100)PATTERNを使用する際の表示位置を設定する
PATTERNPAT.PATTERN 縦方向ドット数,文字列式[,...]PATTERN 8,A$グラフィック画面に指定のドットパターンを表示する
SYMBOLSY.SYMBOL (X,Y),文字列式,横倍率,縦倍率,{パレットコード(0〜7) | 中間色コード(0〜127)},方向(0〜3),モード
SYMBOL (X,Y),文字列式,横倍率,縦倍率,タイリングパターン,方向(0〜3),モード
SYMBOL(100,100),C$,2,2,7,0,PSET
SYMBOL(100,100),C$,4,4,T$,0,""
文字列式を指定のサイズ・角度で表示する
モード
PSET : そのまま描画する
PRESET : 色を反転して描画する
XOR : 画面上のパターンと表示するパターンをドット単位でXORした結果を描画する
文字列式 : 1ドットを文字列式の先頭1文字で表す
"" : 設定済の文字表示設定を使用する
[戻る]
プリンタ制御ステートメント
表記省略形凡例使用例説明
CONSOLECONS.#CONSOLE# [縦方向開始行,行数][,横方向開始桁,桁数]CONSOLE# 0,25,0,80プリンタの印字エリアを設定する
LPOUTLPO.LPOUT 文字列式LPOUT C$プリンタに制御コードを送信する
HCOPYH.HCOPY [画面]HCOPY C$画面をプリンタにコピーする
番号なし : テキスト画面
0 : 全てのグラフィック画面
1 : G1
2 : G2
3 : G3
4 : テキスト画面と全てのグラフィック画面
[戻る]
キー制御ステートメント
表記省略形凡例使用例説明
KEY
DEFKEY
K.
DEFK.
KEY 番号(1〜10),文字列式KEY 1,C$ファンクションキーに文字列を設定する
KEYK.KEY[番号(1〜10)] {ON | OFF | STOP}KEY1 ON
KEY STOP
ファンクションキー割り込みを{開始 | 禁止 | 停止}する
番号を省略してKEY {ON | OFF | STOP}とした場合はファンクションキー全体の割り込みを設定する
KEY0K.0KEY0,文字列式KEY0 C$キーバッファに文字列を設定する
KLIST
KEYLIST
KL.
K.L.
KLIST [表示]KLIST
KLIST 0
ファンクションキーの設定を表示する
(0を指定すると最下行のファンクションキー機能表示消去、1を指定すると表示する)
ON KEY GOSUBO. K. GOS.ON KEY GOSUB {行番号 | ラベル}[,{行番号2 | ラベル2}][,...]ON KEY GOSUB 100,200ファンクションキーからの割り込みが発生した場合の分岐処理サブルーチンを指定する
CLICKCLI.CLICK {ON | OFF}CLICK ONキークリック音を{開始 | 停止}する
REPEATREP.REPEAT {ON | OFF}REPEAT ONキーリピート機能を{開始 | 停止}する
KBUFKB.KBUF {ON | OFF}KBUF ONキーバッファ機能を{開始 | 停止}する
[戻る]
通信回線制御ステートメント
表記省略形凡例使用例説明
ON COM GOSUBO. COM GOS.ON COM GOSUB {行番号 | ラベル}ON COM GOSUB 100通信回線からの割り込みが発生した場合の分岐処理サブルーチンを指定する
COMCOM {ON | OFF | STOP}COM ON通信回線割り込みを{開始 | 禁止 | 停止}する
[戻る]
マウス制御ステートメント
表記省略形凡例使用例説明
MOUSEMOU.MOUSE 0
MOUSE 1[,X][,Y]
MOUSE 2,移動比率設定方向,移動比率
MOUSE3,X1,Y1,X2,Y2
MOUSE 0
MOUSE 1,0,0
MOUSE 2.0,4
MOUSE 3,0,0,12768,32768
マウスの機能を設定する
[戻る]
タイマ制御ステートメント
表記省略形凡例使用例説明
ON TIME$ GOSUBO. TIME$ GOS.ON TIME$="hh:mm[/間隔(00〜59分)]" GOSUB {行番号 | ラベル}ON TIME$="00:00" GOSUB 100タイマからの割り込みが発生した場合の分岐処理サブルーチンを指定する
間隔を指定した場合はその後設定した間隔でサブルーチンへ飛ぶ
TIME$TIME$ {ON | OFF | STOP}TIME$ ONタイマ割り込みを{開始 | 禁止 | 停止}する
[戻る]
テレビ制御ステートメント
表記省略形凡例使用例説明
TVPWTV.TVPW ON/OFFCRT 1専用ディスプレイテレビの電源を{ON/OFF}する
CRTCRT 機能(0〜3)TVPW ON専用ディスプレイテレビの表示を切り替える
0 : テレビ画面
1 : コンピュータ画面
2 : テレビ画面のコントラストを下げて、コンピュータ画面を重ねて表示
3 : テレビ画面とコンピュータ画面を同じコントラストで重ねて表示
CHANNELCHAN.CHANNEL チャンネル(1〜12)CHANNEL 1専用ディスプレイテレビのテレビチャンネルを変更する
VOLVOL 音量増減値(-62〜64)VOL 10専用ディスプレイテレビの音量を変更する
SCROLLSCRO.SCROLL [機能(-3〜3)]SCROLL 1スーパーインポーズ状態時、コンピュータ画面のスクロール状態を設定する
3 : 上方向へ速くスクロールする
2 : 上方向へスクロールする
1 : 上方向へ遅くスクロールする
0 : スクロールを停止する(省略時も同様)
-1 : 下方向へ遅くスクロールする
-2 : 下方向へスクロールする
-3 : 下方向へ速くスクロールする
[戻る]
カセットテープ制御ステートメント
表記省略形凡例使用例説明
FASTFA.FASTFASTカセットテープの早送りをする
REWREWREWカセットテープの巻き戻しをする
APSSAP.APSS 番号(-50〜50)APSS 10カセットテープの録音の切れ目を頭出しする
CMTCM.CMT=設定({0〜6 | 10})CMT 0カセットテープの状態を設定する
0 : EJECT(カセットデッキの蓋を開ける)
1 : STOP(走行停止)
2 : READ(再生状態にする)
3 : FF(早送りする)
4 : REW(巻き戻しする)
5 : APSS+1(録音の切れ目まで早送りする)
6 : APSS-1(録音の切れ目まで巻き戻す)
10 : WRITE(録音状態にする)
[戻る]
サウンド制御ステートメント
表記省略形凡例使用例説明
BEEPBE.BEEP [機能]BEEPBEEP音を鳴らす
0 : BEEP音を停止する
1 : BEEP音を連続で鳴らす
省略 : BEEP音を短く鳴らす

(X1のBEEP音は圧電ブザーではなく、PSGのCh.C)
PLAY
MUSIC
PL.
MU.
PLAY[@] "文字列1[:文字列2[:文字列3]]"
PLAY[@] 文字列式
PLAY "O3CDEFGAB:O4CDEFGAB"
PLAY A$
MMLの文法に従って演奏する
(「@」を付加した場合は演奏の終了を待たずに次のステートメントを実行する)
TEMPO
PLAY
TE.
PL.
TEMPO テンポ(30〜7500)TEMPO 120テンポを設定する
(初期値は120)
SOUNDSO.SOUND[@] レジスタ番号(0〜13),データ(0〜255)[,データ2[,...]]SOUND 7,&H38サウンドLSI(AY-3-8910)を操作する
(「@」を付加した場合は連続したレジスタにデータを設定する)
[戻る]
特殊ステートメント
表記省略形凡例使用例説明
PAUSEPA.PAUSE [長さ(0〜255:単位 0.1s)]PAUSE 10プログラムの実行を指定した秒数、一時停止する
WAITWA.WAIT 入力ポート番号(0〜65535),数式1(0〜255)[,数式2]WAIT &H3000,0入力ポートが指定したデータになるまで待つ
[戻る]
文字列関数
表記省略形凡例使用例説明
ASCASC(文字列式)ASC("TEST")文字列先頭のキャラクタコードを返す
VALVAL(文字列式)VAL("123")文字列を数値に変換する
CHR$CHR$(数式)CHR$(41)指定したキャラクタコードの文字を返す
STR$STR$(数式)STR$(A)数値を文字列に変換する
STRING$STRIN.STRING$(式,[文字列 | 数式})STRING$(10,"=")指定した文字数だけ追加した文字列を返す
SPACE$SPA.SPACE$(数式)SPACE$(A)指定した長さの空白文字列を返す
SPCSPC(数式)SPC(A)指定した長さの空白を返す(出力文字式内でのみ使用)
TABTAB(数式)TAB(A)指定した位置まで空白を返す(出力文字式内でのみ使用)
HEX$HE.HEX$(数式)HEX$(255)10進数を16進数文字列に変換する
OCT$OC.OCT$(数式)OCT$(255)10進数を8進数文字列に変換する
BIN$BI.BIN$(数式)BIN$(255)10進数を2進数文字列に変換する
INSTRINS.INSTR([開始位置,]文字列1,文字列2INSTR(3,A$,"A")文字列1の指定位置から文字列2を検索して位置を返す
LENLEN(文字列式)LEN(A$)文字列の文字数を返す
LEFT$LEF.LEFT$(文字列式,式)LEFT$(A$,2)文字列の左側から式で指定した桁数の文字列を返す
MID$MI.MID$(文字列式,式1[,式2])[=文字列]MID$(A$,2,1)文字列の式1で指定した位置から式2で指定した桁数の文字列を返す(=文字列を指定した場合はその文字列と置換する)
RIGHT$RI.RIGHT$(文字列式,式)RIGHT$(A$,2)文字列の右側から式で指定した桁数の文字列を返す
MIRROR$MIR.MIRROR$(文字列式)MIRROR$(A$)文字列を2進数で転置した文字列を返す
HEXCHR$HEXC.HEXCHR$(16進文字列式)HEXCHR$(A$)16進文字列をキャラクタコードに変換し、文字列を返す
CVICVI(2バイト文字列式)CVI(TEST$)文字列を整数値に変換する
CVSCVS(4バイト文字列式)CVS(TEST$)文字列を単精度値に変換する
CVDCVD(8バイト文字列式)CVD(TEST$)文字列を倍精度値に変換する
MKI$MKI.MKI$(整数値)MKI$(A%)整数値を文字列に変換する
MKS$MKS$(単精度値)MKS$(A!)単精度値を文字列に変換する
MKI$MKI$(倍精度値)MKD$(A#)倍精度値を文字列に変換する
[戻る]
入出力用関数
表記省略形凡例使用例説明
SCRN$SCRN$(X,Y,文字数)SCRN$(0,0,T$)テキスト画面の文字列を返す
CHARACTER$CHAR.CHARACTER$(X,Y)SCRN$(0,0,T$)テキスト画面の文字を返す
DEFCHR$DEFCHR$(コード)=文字列式DEFCHR$(1)=A$RAM CGにドットパターンを設定する
CGPAT$CGP.CGPAT$(キャラクタコード(0〜255))CGPAT$(10)PCGに定義されているドットパターンを返す
INKEY$INK.INKEY$[(機能)]INKEY$
INKEY$(0)
押されたキーの値を返す
0 : キー押下時データが即座に返る
1 : カーソルを点滅させて1文字分の入力を待つ
2 : キーボードの入力状態を示す1バイトのデータが返る
INPUT$I.$INPUT$(文字数(0〜255))[,ファイル番号]INPUT$(10)キーボードもしくはファイルから文字列を読み込む
ファイル番号を省略した場合はキーボードからの入力(プロンプトの表示はない)
POINTPOI.POINT(X,Y)POINT(100,100)指定した座標のパレットコードを返す
[戻る]
日本語文字関数
表記省略形凡例使用例説明
AKCNV$AK.AKCNV$(文字列式)AKCNV$(T$)文字列中の1バイト文字を2バイト文字に変換する
KACNV$KAC.KACNV$(文字列式)KACNV$(T$)文字列中の2バイト文字を1バイト文字に変換する
KANJI$KA.KANJI$(区点コード)KANJI$(K$)漢字ROMの漢字パターンデータを返す
JIS$J.JIS$(2バイト文字列式)JIS$(T$)JIS漢字コードを返す
KTN$KT.KTN$(2バイト文字列式)KTN$(T$)区点コードを返す
KLENKLE.KLEN(文字列式)KLEN(T$)2バイト文字を1文字とした文字数を返す
KPOSKPOS(文字列式,文字数(0〜255))KPOS(T$,10)文字列の戦闘からの位置を返す
(文字数は2バイト文字を1文字として、返値は該当する文字のバイト数となる)
[戻る]
数値関数
表記省略形凡例使用例説明
CINTCINT(数式)CINT(A%)数式を整数値に変換する
CSNGCSNG(数式)CSNG(A!)数式を単精度に変換する
CDBLCDBL(数式)CDBL(A#)数式を倍精度に変換する
FIXFIX(数式)FIX(A)数式の整数値を返す(小数点以下を切り捨てる)
INTINT(数式)INT(A)数式の整数値を返す(数式の値を超えない整数値)
FRACFRAC(数式)FRAC(A)数式の小数部を返す
SGNSGN(数式)SGN(A)数式の符号を返す
RNDRND(数式)RND(A)0以上1未満の乱数を返す
[戻る]
数学関数
表記省略形凡例使用例説明
ABSABS(数式)ABS(-1000)絶対値を返す
SINSIN(数式)SIN(30)正弦(サイン)の値を返す
COSCOS(数式)COS(30)余弦(コサイン)の値を返す
TANTAN(数式)TAN(30)正接(タンジェント)の値を返す
ATNATN(数式)ATN(30)逆正接(アークタンジェント)の値を返す
RADRAD(数式)RAD(30)ラジアン単位で値を返す
PAIPAI(数式)PAI(1)円周率を返す(数値指定は倍数を表す)
EXPEXP(数式)EXP(1)自然対数の低(e)に対する指数関数の値を返す
LOGLOG(数式)LOG(1)自然対数の値を返す
SQRSQR(数式)SQR(2)平方根の値を返す
FACFAC(数式)FAC(2)階乗の値を返す
SUMSUM(変数,初値,終値,数式)SUM(A,1,10,A*A)総和を返す
[戻る]
ファイル用関数
表記省略形凡例使用例説明
LOCLOC(ファイル番号(1〜15))LOC(1)指定したファイル番号の論理的位置を返す
LOFLOF(ファイル番号(1〜15))LOF(1)指定したファイル番号のサイズを返す
FPOSFP.FPOS(ファイル番号(1〜15))FPOS(1)指定したファイル番号のデバイス先頭からの現在位置を返す
ATTR$ATT.ATTR$("デバイス名:[パス名]ファイル名")ATTR$("0:test.bas")指定したファイルの属性を返す。
null("") : 属性なし
P : Protect(書込禁止)
R : Read after write(書込後にVERIFYする)
S : Secret(隠し属性)
DEVFDEVF("デバイス名:")DEVF("0:")指定したデバイスの残り容量(クラスタ)を返す
EOFEOF(ファイル番号(1〜15))EOF(1)シーケンシャルファイルの終端を検出する
[戻る]
データ用関数
表記省略形凡例使用例説明
INPINP(アドレス)INP(&H1100)指定したポート番号の入力値を返す
PEEKPE.PEEK[@](アドレス)PEEK(&HD000)指定したアドレスのデータ値を返す
(「@」を付加した場合はグラフィックメモリを参照する)
[戻る]
ジョイスティック用関数
表記省略形凡例使用例説明
STICKSTI.STICK(機能)STICK(0)ジョイスティックの方向を返す
0:キーボードのテンキー
1:ジョイスティック1
2:ジョイスティック2
STRIGSTR.STRIG(機能)STRIG(0)ジョイスティックのトリガーボタン状態を返す
0:キーボードのスペースキー
1:ジョイスティック1
2:ジョイスティック2
[戻る]
タイマ関数
表記省略形凡例使用例説明
TIME$TIME$
TIME$="hh:mm:ss"
TIME$
TIME$="12:34:56"
時刻文字列変数を取得する
時刻文字列変数を操作する
DATE$DATE$
DATE$="yy/mm/dd"
DATE$
DATE$="10/01/01"
日付文字列変数を取得する
日付文字列変数を操作する
DAY$DAY$
DAY$=曜日文字列
DAY$
DAY$="SUN"
曜日文字列変数を取得する
曜日文字列変数を操作する
SUN : 日曜日
MON : 月曜日
TUE : 火曜日
WED : 水曜日
THU : 木曜日
FRI : 金曜日
SAT : 土曜日
TIMETIME
TIME=秒数(0〜86399)
TIME
TIME=10000
タイムカウンタを返す
タイムカウンタの値を設定する
[戻る]
システム関数
表記省略形凡例使用例説明
CSRLINCSR.CSRLINCSRLIN現在のカーソル行位置を返す
STRPTRSTRP.STRPTRSTRPTR文字変数エリアの先頭アドレスを返す
DTLDTLDTL現在読み込み中のDATAの行番号を返す
ERLERLERLエラーの発生した行を返す
ERRERRERRエラー番号を返す
[戻る]
その他関数
表記省略形凡例使用例説明
FNFN関数名[(引数[[引数2[,...]]])]FNX(1)ユーザ定義関数を呼び出して返値を取得する
USRUSR番号(0〜9)(引数)USR1(TEST)マシン語サブルーチンを呼び出して返値を取得する
CALCCALC(式)CALC(T$)ユーザ定義式の演算をする
VARPTRVAR.VARPTR {変数名 | #ファイル番号(1〜15)}VARPTR A変数が格納されているアドレスやファイルコントロールブロックの開始値を返す
FRE
SIZE
FRE(機能)
SIZE
FRE(0)
SIZE
使用可能なメモリサイズを返す
0 : メモリ全体(SIZEはFRE(0)相当)
1 : メインメモリ
2 : VDIMエリア
MEM$MEM$(アドレス,文字数)
MEM$(アドレス,文字数)=文字列式
MEM$(&HC000,8)
MEM$(&HC000,4)=D$
メモリから指定した数だけ文字を取り出す
メモリに指定した数だけ文字を格納する
POSPOS(番号)POS(0)現在のカーソル桁位置を返す
(0以外を指定した場合はシーケンシャルファイルのファイル番号(1〜15)となり、現在の文字位置を返す)
LPOSLPOS(番号)LPOS(0)プリンタのヘッド位置を返す
0 : 印字したすべての文字をカウントしたヘッド位置
1 : 印字した文字のうち、1バイト文字をカウントしたヘッド位置
2 : 印字した文字のうち、2バイト文字をカウントしたヘッド位置
CMTCM.CMT[(機能(0〜2))]CMT
CMT(0)
カセットテープの状態を返す
引数が省略されている場合はカセットの状態を返す
0 : EJECT(カセットデッキの蓋が開いている)
1 : STOP(走行停止)
2 : READ(再生状態)
3 : FF(早送り)
4 : REW(巻き戻し)
10 : WRITE(録音状態)


機能が指定されている場合は以下の状態を返す
機能 カセットテープの状態 返値
0回転中-1
停止中0
1セットされている-1
セットされていない0
2ツメが折られていない-1
上書き禁止用のツメが折られてる0
MOUSEMOU.MOUSE(機能(0〜9)[,ボタン番号(1〜2)])MOUSE(0)マウスの各種情報を返す
MOUSE(0) : マウスのX座標
MOUSE(1) : マウスのY座標
MOUSE(2,ボタン番号) : 指定したボタンの状態
(0 : 押されていない/-1 : 押されている)
MOUSE(3,ボタン番号) : 指定したボタンが押された時点のX座標
MOUSE(4,ボタン番号) : 指定したボタンが押された時点のY座標
MOUSE(5,ボタン番号) : 指定したボタンが離された時点のX座標
MOUSE(6,ボタン番号) : 指定したボタンが離された時点のY座標
MOUSE(7) : 最後にこの関数が呼ばれてからのX方向の移動距離
MOUSE(8) : 最後にこの関数が呼ばれてからのY方向の移動距離
[戻る]

※ NEWONレベル
指定可能なレベルは0〜9で小さいほど確保されるメモリは増える
(削除されるオペランドが増える)

レベル上位(小)は下位(大)の内容を全て含む

n 削除されるコマンド
(省略)全て使用可能(メモリの削減なし)
9MIRROR$.KANJI$,DTL,RANDOMIZE
WAIT,KEYLIST,KLIST,KBUF,CANVAS
LAYER,TVPW,CHANNEL,VOL
8VERIFY,LOAD?."CAS:",CMT,CMT関数
REW,FAST,EJECT,APSS
7"COM:",ON COM GOSUB,COM ON/OFF/STOP
POSITION,PATTERN,CIRCLE@,SCROLL
STICK,STRIG,PUSH,POP,ATTR$
RUN"?.SYS"
6CRT,ON KEY GOSUB,KEY ON/OFF/STOP
ON TIME$ GOSUB,TIME$ ON/OFF/STOP
5MKDIR,CHDIR,RMDIR,HDOFF,SET
NAME,FPOS
4MOUSE,MOUSE関数,HCOPY
3GET@,PUT@,CGPAT$,DEVI$,DEVO$
LPOUT,CONSOLE#,COPY
2LIST,LLIST,DELETE,RENUM,AUTO,EDIT
TRON,TROFF,SAVE,SEARCH,KILL,CONT,SAVEM
エラーメッセージ
1PLAY,MUSIC,TEMPO,SOUND,CBLACK
PLAY@,MUSIC@,SOUND@
0WINDOWS,LINE,PSET,PRESET,CIRCLE
POLY,PAINT,PAINT@,SYMBOL,POINT
PRW,CLICK,NEWONn.PALET,PALET@

[戻る]

※ デバイス一覧

デバイス名 指定されるデバイス I/Oタイプ
CRT:
SCR:
画面O
KEY:キーボードI
LPT:プリンタO
CAS:カセットテープI/O
0:
1:
2:
3:
3/3.5/5inch
フロッピーディスク
I/O
F0:
F1:
F2:
F3:
8inch
フロッピーディスク
I/O
HD0:
HD1:
HD2:
HD3:
ハードディスクI/O
EMM{0〜9}:外部メモリI/O
MEM{0〜1}:グラフィックメモリI/O
COM:RS-232CI/O

ディスク装置 指定されるコード ディスクタイプ
3/3.5/5inch
フロッピーディスク
02D : 320KB
12DD : 640KB
22HD : 1MB
3*2HD : 1MB 標準フォーマット
8inch
フロッピーディスク
02D-256 : 1MB
1*2D-256 : 1MB
2*1S-128 : 1MB

[戻る]

※ モニタコマンド
D[adr1[ adr2]] : Dump(メモリをダンプする)
M[adr] : Memory(メモリを編集する)
Fadr1 adr2 data1 ... : Find(メモリを検索する)
P : Printer(プリンタ切替)
G[adr] : Gosub(メモリの内容を実行する)
Tadr1 adr2 srcadr : Transfer(データを転送する)
Sadr1 adr2 exeadr:filename : Save(メモリの内容をカセットテープに書き込む)
L[adr][:filename] : Load(カセットテープからメモリへ読み込む)
V[:filename] : Verify(メモリの内容とカセットテープの内容を比較する)
R : Return(BASICに戻る)
! : (BIOS/MAINアクセスモード切替)
# : (各種画面設定切替)
(# : WIDTH 40/80)
(#P : PALET初期化)
(#C : グラフィック画面初期化)
(#kdm : k=0,1→KMODE / d=0,1,2→ディスプレイ切替 / m=0,1,2,3,4,5→画面モード切替)
Wxd:nnnn rr aaaa : Write(デバイスへデータを書き込む)
(x : M(d=0,1)/E(d=0〜9)/D(d=0〜3)/F(d=0〜3)/H(d=0〜3)→デバイス名)
(d : ドライブ番号)
(nnnn : レコード番号(0000〜ffff))
(rr : レコード長(00〜ff))
(aaaa : 先頭アドレス(0000〜ffff))
Yxd:nnnn rr aaaa : read(デバイスからデータを読み込む)
(x : M(d=0,1)/E(d=0〜9)/D(d=0〜3)/F(d=0〜3)/H(d=0〜3)→デバイス名)
(d : ドライブ番号)
(nnnn : レコード番号(0000〜ffff))
(rr : レコード長(00〜ff))
(aaaa : 先頭アドレス(0000〜ffff))

[戻る]

※ 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
[+1000]

[戻る]

※ カラーコード
0 : Black
1 : Blue
2 : Red
3 : Purple
4 : Green
5 : Cyan
6 : Yellow
7 : White

[戻る]

※ 画面モード
画面解像度の指定(WIDTH)によって使用できるページ数が変わる

画面解像度 使用可能ページ数
40文字(320×200)テキスト:2 / グラフィック:4
80文字(640×200)テキスト:1 / グラフィック:2
40文字(320×400)テキスト:2 / グラフィック:2
80文字(640×400)テキスト:1 / グラフィック:1

指定されたページと実際に使用されるページの組み合わせは画面解像度によって変わる

40文字(320×200)
ページ指定 使用されるページ
0テキスト:0 / グラフィック:0
1テキスト:1 / グラフィック:1
2テキスト:0 / グラフィック:2
3テキスト:1 / グラフィック:3

80文字(640×200)
ページ指定 使用されるページ
0〜1テキスト:0 / グラフィック:0
2〜3テキスト:0 / グラフィック:1

40文字(320×400)
ページ指定 使用されるページ
0〜1テキスト:0 / グラフィック:0
2〜3テキスト:1 / グラフィック:1

80文字(640×400)
ページ指定 使用されるページ
0〜4テキスト:0 / グラフィック:0

グラフィックモードは使用するグラフィックメモリを指定する

モード 使用する領域
0G1/G2/G3(全領域)
1G1(初期:青)
2G2(初期:赤)
3G3(初期:緑)

[戻る]

※ 画面桁数の設定
桁数 : 40 | 80
行数 : 10 | 12 | 20 | 25

グラフィック画面解像度
(桁数が10,20の場合はグラフィックが使用できないため無効)

桁数 モード ライン ディスプレイ
120192標準 | 高解像度
250200標準 | 高解像度
121384高解像度
251400高解像度

・ディスプレイモード
0 : 本体解像度切替スイッチに依存
1 : 標準
2 : 高解像度

[戻る]

※ LINEの設定
・モード
PSET   : 線を引く
PRESET : 線を消す
XOR    : 重なった部分の色を消す
・ボックス指定
B  : Box(長方形)を描画する)
BF : Box Fill(長方形を描画し、中を指定されたタイリングパターンで塗りつぶす)
→BFを設定した場合はカラーコードかタイリングパターンを示す文字変数を定義する
・ラインスタイル
&H0000〜&HFFFFで指定されたパターンで線を描画する

凡例
16進数 パターン
&HFFFF――――――――
&HFF00――  ――  
&HAAAA- - - - - - - -
&H0000        

[戻る]

※ マウスの機能設定
MOUSE 0 : マウス機能を停止する
MOUSE 1 : マウス機能を開始する
(X : 横初期座標(-32768〜65535))
(Y : 縦初期座標(-32768〜65535))
MOUSE 2 : マウスの移動比率を設定する
(0 : 横/1 : 縦)
(比率 : 1〜32)
MOUSE 3 : マウスの移動範囲を設定する
(X : 横座標(-32768〜65535))
(Y : 縦座標(-32768〜65535))

[戻る]

※ MML構文(Microsoft系のMMLとは微妙に異なるので注意)
C,D,E,F,G,A,B : 音階(音長を指定可能)
#  : 半音上げる
+  : オクターブを1つ上げる
-  : オクターブを1つ下げる
Rn : 休符
Ln : 音長指定(初期値は5[4分音符]で0〜9まで)

数値 音長(休符も共通)
032分
116分
2付点16分
38分
4付点8分
54
6付点4分
72分
8付点2分
9

Vn : 音量指定(初期値は15で0〜15)
On : オクターブ指定(初期値は4で1〜8)

[戻る]

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

A$ : 文字列型(A$="TEST")
A% : 整数型
A! : 単精度実数型(A!=-7.01E-06、A!=3.14!)
A# : 倍精度実数型(A#=1.03234D43、A#=12345.6#)
&B : 2進数形式(&00011000)
&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)
%gt; < : 不等号・比較(A%gt;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の否定

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
番号表記意味
Unprintable error未定義エラー
1NEXT without FORNEXTに対応したFORがない
2Syntax errorコマンド、またはステートメントの書き方が間違っている
3RETURN without GOSUBRETURNに対応したGOSUBがない
4Out of dataREADに対応したDATAがない
5Illegal function call関数やステートメントの引数が間違っている
6Overflow値が許容範囲を超えた
7Out of memoryメモリが不足している
8Undefined label未定義の行番号/ラベルを指定した
9Subscript out of range配列の添字が指定した範囲外
10Duplicate definition配列やユーザ関数が二重宣言された
11Division by zero除算の分母が0
12Illegal directダイレクトモードで使えないステートメントを使った
13Type mismatch変数または定数の型が合わない
15String too long文字定数または文字変数が256文字を超えた
16Too complex文字式が複雑すぎる
17Can't continueCONTによるプログラムの再開ができない
18Undefined function未定義関数を参照した
19No RESUMEエラー処理にRESUMEがない
20RESUME without errorエラー処理でないのにRESUMEが使用された
22Missing operand必要なオペランドが不足している
23Line buffer overflow行入力バッファが許容範囲を超えた
25Bad screen modeデバイス指定していないグラフィックメモリを外部記憶として使おうとした
26UNTIL without REPEATUNTILに対するREPEATがない
27Out of tapeカセットテープがセットされていない
29Tape read errorカセットテープの読み込みが正しく行えない
30Bad file mode異なったモードのファイルを参照した
31Out of stackスタックが空の状態でPOPを実行した
32WHILE without WENDWHILEに対するWENDがない
33WEND without WHILEWENDに対するWHILEがない
34Reserved feature将来のための予約語を実行しようとした
NEWONnで削除したコマンドを実行しようとした
35FOR without NEXTFORに対するNEXTがない
36Format errorPRINT USINGで指定したフォーマットが長すぎる
37REPEAT without UNTILREPEATに対するUNTILがない
50FIELD overflowFIELDの長さが256文字を超えている
51Device in useデバイスが使用中
52Bad file number使用されたファイル番号は使用できない
53File not found指定したファイルが存在しない
54Already open指定したファイルが既にOPENされている
56Device I/O errorデバイスエラー
57File already exists指定したファイルは既に存在している
60Device full指定したデバイスの容量を超えた
61Input past end全てのデータを読み込んでいるのに読み込もうとしている
空のファイルを読み込もうとしている
64Bad allocation tableフロッピーディスクのFATが異常
65Bad file descipterディスクリプタが異なる
66Bad record範囲外のレコードを使用しようとした
67No passwordパスワードが一致しない
71File not openOPENされてないファイルを使用しようとした
72Write proctectedファイルへの書き込みが保護されている
73Device Offlineデバイスが接続されていない

[TOPに戻る]