戻る
N88-BASIC(86)
PC-9801 : 日本電気 (NEC)

N88-BASIC(86)

N88-BASIC(86)はMicrosoft BASICにNEC独自の拡張を行ったものである。
PC-9801シリーズにROM BASICとして搭載されている。

また、DISKによりN88-DISK BASIC(86)とN88-日本語BASIC(86)が提供されている。

コマンド・関数のあとに[disk]とついている場合はN88-DISK/日本語BASIC(86)で使用可能。

N88-BASIC(86)簡易リファレンス
コマンド
表記凡例使用例説明
AUTOAUTO [行番号][,増分]AUTO 100,5先頭に自動的に行番号を発生させる(増分を省略した場合は10)
DELETEDELETE {行番号 | ラベル}[,{行番号2 | ラベル2}][,...]
DELETE [{行番号 | ラベル}][-[{行番号2 | ラベル2}]]
DELETE 10,100
DELETE 100-200
指定した{行番号 | ラベル}を削除する
指定した範囲の{行番号 | ラベル}を削除する
LISTLIST {[{行番号 | ラベル}] | [.]}
LIST [{行番号 | ラベル}][,[{行番号2 | ラベル2}]][,...]
LIST [{行番号 | ラベル}][-[{行番号2 | ラベル2}]]
LIST
LIST 10,100
LIST 100-200
メモリ上のプログラムを表示する
指定した{行番号 | ラベル}を表示する
指定した範囲の{行番号 | ラベル}を表示する
範囲指定でラベルを使用することもできるが、行番号と混在で指定はできない
LLISTLLIST {[{行番号 | ラベル}] | [.]}
LLIST [{行番号 | ラベル}][,[{行番号2 | ラベル2}]][,...]
LLIST [{行番号 | ラベル}][-[{行番号2 | ラベル2}]]
LLIST
LLIST 10,100
LIST 100-200
メモリ上のプログラムをプリンタに出力する
指定した{行番号 | ラベル}をプリンタに出力する
指定した範囲の{行番号 | ラベル}をプリンタに出力する
範囲指定でラベルを使用することもできるが、行番号と混在で指定はできない
RENUMRENUM [新行番号][,旧{行番号 | ラベル}][,増分]RENUM 1000,10,100新{行番号 | ラベル}を先頭に{行番号 | ラベル}をつけ直す
EDITEDIT {. | 行番号 | ラベル}EDIT 100指定行を編集モードにする
「.」指定時は最終(編集)行
NEWNEWNEWプログラムを全て消去し、変数を初期化する
NEW ONNEW ON 式NEW ON 1モードを切り替える
CONTCONTCONTSTOPキーやSTOP,ENDで終了したプログラムの実行を再開する
RUNRUN {[{行番号 | ラベル}] | "[{ドライブ番号 | デバイス名}:]ファイル名"[,R]}RUN 100
RUN "1:test.bas"
指定した{行番号 | ラベル}からプログラムを実行する({行番号 | ラベル}を省略した場合は先頭から実行する)
ファイルを読み込んで実行する(Rを付けた場合は既にOPENしているファイルはCLOSEしない)
MOUNT diskMOUNT [ドライブ番号,[番号2][,...]]MOUNT 1ファイル装置を使用可能(MOUNT)にする
REMOVE diskREMOVE [ドライブ番号,[番号2][,...]]REMOVE 1ディスクをイジェクトする準備をする
FILES diskFILES [ドライブ番号]FILES 1記録メディアにあるファイル一覧を出力する
LFILES diskLFILES [ドライブ番号]LFILES 1フロッピーディスクにあるファイル一覧をプリンタに出力する
FORMAT diskFORMAT [ドライブ番号]FILES 1フロッピーディスクを初期化する
SAVESAVE "[{ドライブ番号 | デバイス名}:]ファイル名"[,{A | P}]SAVE "test.bas"記録メディアに[{ASCII形式 | 保護属性}で]プログラムを保存する
保護属性は解除不可であるため、使用には留意
LOADLOAD "[{ドライブ番号 | デバイス名}:]ファイル名"[,R]LOAD "test.bas"記録メディアからプログラムを読み込む(Rを付加した場合は実行も行う)
LOAD?LOAD? ["CAS:ファイル名"]LOAD? "CAS:test"カセットテープのプログラムを照合する(ファイル名を省略した場合は最初に見つかったプログラムを照合する)
NAME diskNAME "[ドライブ番号:]旧ファイル名" as "[ドライブ番号:]新ファイル名"NAME "test.bas" as "test2.bas"フロッピーディスク上のファイル名を変更する
KILL diskKILL "[ドライブ番号:]ファイル名"KILL "test.bas"フロッピーディスクメディア上のファイルを削除する
MERGE diskMERGE "[ドライブ番号:]ファイル名"MERGE "test.bas"フロッピーディスクのASCII形式ファイルとメモリ上のプログラムをマージする
CHAIN diskCHAIN [MERGE] "[ドライブ番号:]ファイル名"[,[{行番号 | ラベル}][,ALL][,DELETE範囲]]CHAIN "0:test"フロッピーディスクのASCII形式ファイルを呼び出して、変数を渡して実行する
「MERGE」を指定した場合はメモリ上のプログラムとマージされる
(この場合はASCII形式だけではなく通常形式も使用できるが、マージされるプログラムはメモリ上のものより{行番号 | ラベル}が大きくなければエラーとなる)
{行番号 | ラベル}を指定した場合はそこから実行となる
「ALL」を指定した場合はCOMMONの指定に関わらず全ての変数が引き渡される
DELETE範囲の指定は「MERGE」指定時に有効でマージするプログラムを指定した範囲で削除する
SET diskSET {ドライブ番号 | #ファイル番号 | "[デバイス名:]ファイル名"},"属性"SET "test","R"ファイルの属性を指定する
属性
R : Read only
P : Write Protect
KEY LISTKEY LISTKEY LISTファンクションキーの定義一覧を表示する
MONMONMONモニタコマンドモードにする
TERMTERM "[COM:][設定文字列]"[,[モード][.変数領域サイズ]]TERM "COM:"ターミナルモードにする
[戻る]
ステートメント:プログラム制御
表記凡例使用例説明
**ラベル名*TESTラベルを定義する(行の先頭から単独で記述)
ENDENDENDプログラムを終了する
STOPSTOPSTOPプログラムを一時停止する
REM{REM | '} [注釈]REM TEST注釈を入れる(実行には無関係)
FOR...TO...STEP〜NEXTFOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数][,変数2][,...]FOR I=0 TO 10 STEP 2〜NEXT IFORからNEXTまでの処理を繰り返す
GOSUBGOSUB {行番号 | ラベル}GOSUB 100サブルーチンを呼び出す
RETURNRETURN [{行番号 | ラベル}]RETURNサブルーチンから復帰する
GOTO
GO TO
GOTO {行番号 | ラベル}GOTO 100指定した{行番号 | ラベル}から実行する
IF...THEN | GOTO...ELSE...IF 論理式 {THEN 文 | GOTO {行番号 | ラベル}} ELSE {文 | {行番号 | ラベル}}IF A=0 {THEN END | GOTO 10} ELSE 20論理式の条件判断をする
WHILE〜WENDWHILE 式〜WENDWHILE I=0〜WENDWHILEの式が真の場合はWENDまでの処理を繰り返す
ON...GOTOON 式 GOTO {行番号 | ラベル}[,{行番号2 | ラベル2}][,...]ON A GOTO 100,200式の値に応じて指定された{行番号 | ラベル}へ分岐する
ON...GOSUBON 式 GOSUB {行番号 | ラベル}[,{行番号2 | ラベル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 100通信ポート割込分岐処理ルーチンを指定する
ON KEY GOSUBON KEY GOSUB {行番号 | ラベル}[,[{行番号2 | ラベル2}][,[...][,[{行番号10 | ラベル10}]]]]ON KEY GOSUB 100ファンクションキー割込分岐処理ルーチンを指定する({行番号 | ラベル}は1〜10までのキーとなる)
ON STOP GOSUBON STOP GOSUB {行番号 | ラベル}ON STOP GOSUB 100STOPキー割込分岐処理ルーチンを指定する
ON HELP GOSUBON HELP GOSUB {行番号 | ラベル}ON HELP GOSUB 100HELPキー割込分岐処理ルーチンを指定する
ON TIME$ GOSUBON TIME$="時刻文字列" GOSUB {行番号 | ラベル}ON TIME$="00:00:00" GOSUB 100タイマ割込分岐処理ルーチンを指定する
ON PEN GOSUBON PEN GOSUB {行番号 | ラベル}ON PEN GOSUB 100ライトペン割込分岐処理ルーチンを指定する
[戻る]
ステートメント:変数関連
表記凡例使用例説明
CLEARCLEAR [[文字領域サイズ],メモリ上限][,スタックサイズ][,配列データサイズ]CLEAR 512,&HC000変数を初期化し、文字領域サイズとユーザ領域の上限及びスタックサイズ、配列データサイズを指定する
INPUT[LINE ]INPUT [文字列{; | , }]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する
LINEを付加した場合はコンマなどを無視して代入(変数は1個で文字列変数のみ)
INPUT WAIT[LINE ]INPUT WAIT 待ち時間,[文字列{; | , }]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する(0.1s単位の時間経過付き)
LINEを付加した場合はコンマなどを無視して代入(変数は1個で文字列変数のみ)
KINPUT diskKINPUT 文字列変数KINPUT 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)配列変数の定義をする
OPTION BASEOPTION BASE {0 | 1}OPTION BASE 0配列添字の下限を設定する
COMMON diskCOMMON 変数名[[,変数名2][,...]]COMMON A,B$CHAINで引き渡す変数の定義をする
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
指定した変数の型を文字列型とする
RANDOMIZERANDOMIZE [式]RANDOMIZE 0乱数系列を設定する
[戻る]
ステートメント:マシン語関連
表記凡例使用例説明
BSAVE diskBSAVE "[ドライブ番号:]ファイル名",セーブアドレス,長さBSAVE "1:test",&HD000,1024フロッピーディスクにマシン語プログラムを保存する
BLOAD diskBLOAD "[ドライブ番号:]ファイル名"[,[ロードアドレス][,R]]BLOAD "1:test"フロッピーディスクからマシン語プログラムを読み込む(Rを付加した場合は実行も行う)
CALLCALL 変数名(引数1[,引数2[,...]])CALL MS(A)指定したアドレスのマシン語サブルーチンを呼び出す
DEF USRDEF USR[番号]=アドレスDEF USR1=&HD000USRで呼び出すマシン語サブルーチンを定義する
POKEPOKE アドレス,数式POKE &HD000,&HC9指定したアドレスに値を書き込む
DEF SEGDEF SEG=セグメントベースDEF SEG=&HD000セグメントベースを設定する
[戻る]
ステートメント:ファイル関連
表記凡例使用例説明
OPENOPEN "[{ドライブ番号 | デバイス名}:]ファイル名" [FOR モード] AS #ファイル番号OPEN "test.bas" FOR INPUT AS #1指定したファイルをファイル番号でOPENする
INPUT : 入力モード
OUTPUT: 出力モード
APPEND: 追加モード
省略時: ランダムモード
CLOSECLOSE #ファイル番号1[,#ファイル番号2][,...]CLOSE #1指定したファイル番号のファイルをCLOSEする
WIDTHWIDTH {"[{ドライブ番号 | デバイス名}:][ファイル名]" | #ファイル番号},サイズWIDTH "1:test",255デバイス、ファイルに対しての文字領域(0〜255)を設定する
FIELDFIELD #ファイル番号,フィールド幅 as 文字変数[,フィールド幅 as ....]FIELD #1,128 as TEST$,64ランダムファイルバッファにフィールド変数を割り当てる
GETGET #ファイル番号[,数式]GET #1,10ファイルからデータをファイルバッファに読み込む
PUT diskPUT #ファイル番号[,数式]PUT #1,10ファイルバッファのデータをファイルに書き込む
INPUT #[LINE ]INPUT #ファイル番号 | 入力機器番号,変数名1[,変数名2]INPUT #1,A,Bシーケンシャルファイル中のデータを読み込んで変数に代入する(LINEを付加した場合はコンマなどを無視して代入、変数は1個で文字列変数のみ)
PRINT #PRINT #ファイル番号[,{[USING 書式;データ] | [式]}[;式2[,...]]]PRINT #1,A;Bファイルにデータを書き込む
WRITE # diskWRITE #ファイル番号,[式列]WRITE #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画面を消去する
日本語BASICでは指定した機能コードの範囲内でテキスト・グラフィック双方が消去される
1 : テキスト画面(スクロール範囲内 : デフォルト)
2 : グラフィック画面(ビューポート内)
3 : 両方
LOCATELOCATE X,Y[,カーソル表示]LOCATE 10,10指定した位置にカーソルを移動する
PRINT{PRINT | ?} [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]PRINT "HELLO,WORLD"画面上に表示する
USINGを付けた場合は書式に対応して表示する
WRITEWRITE [式列]WRITE A$,B,C#画面へデータを区切って出力する
COLORCOLOR [ファンクションコード][,バックグラウンドカラーコード][,ボーダーカラーコード][,フォアグラウンドカラーコード][,パレットモード]COLOR 7,0,1,2カラーを指定する
パレットモードはdiskで指定可能
COLOR=COLOR=([パレット番号,カラーコード)COLOR=(7,0)カラーパレットを指定する
テキスト画面がカラーでグラフィック画面が白黒のときのみ、テキスト画面のカラーパレットのみを変更できる
COLOR@COLOR@(X1,Y1)-(X2,Y2),ファンクションコードCOLOR@(0,0)-(10,10),2範囲内のキャラクタカラーを指定する
CONSOLECONSOLE [スクロール開始行][,[スクロール行の長さ]][,[ファンクションキー表示モード]][,[カラースイッチ]]CONSOLE 0,20,1,0テキスト画面を設定する
・ファンクションキー表示モード
0 : OFF
1 : ON
・カラースイッチ
0 : 白黒モード
1 : カラーモード
WIDTHWIDTH 桁数[,行数]WIDTH 80画面の桁数(40/80)と行数(20/25)を設定する
SCREENSCREEN [画面モード][,[画面スイッチ]][,[アクティブページ]][,[表示ページ]]SCREEN 0,0グラフィック画面を設定する
VIEWVIEW (X1,Y1)-(X2,Y2)[,[領域色][,境界色]]VIEW (0,0)-(100,100)グラフィック画面の表示領域(スクリーン座標系)を設定する
WINDOWWINDOW (X1,Y1)-(X2,Y2)WINDOW (0,0)-(100,100)グラフィック画面の表示領域(ワールド座標系)を設定する
ROLLROLL [上下方向ドット数][,左右方向ドット数][,{N | Y}]ROLL 16,32,Y指定したドット数分グラフィック画面をスクロールする
上下方向は640x200モードでは-199〜199、640x400モードでは-399〜399を指定可能
左右方向では-639〜639を指定可能
負数指定では逆スクロールになる
「N」指定時はスクロールで新たに表れたバックグラウンドはパレット番号0でクリア
「Y」指定時はバックグラウンドカラーでクリアする
MAPMAP (数式,機能コード)MAP(0,0)数式で指定したスクリーン座標とワールド座標の相互変換を行う
0 : 数式をワールド座標系のX座標とする
1 : 数式をワールド座標系のY座標とする
2 : 数式をスクリーン座標系のX座標とする
3 : 数式をスクリーン座標系のY座標とする
GET@GET[@](X1,Y1)-[STEP](X2,Y2),配列変数名[(要素番号)]GET@(0,0)-(15,15),A%画面上のグラフィックパターンを配列変数に読み込む
PUT@PUT[@](X,Y),{配列変数名 | KANJI(漢字コード)}[,条件][,フォアグラウンドカラーコード][,バックグラウンドカラーコード]PUT@(0,0),A%,PSET
PUT@(0,0),KANJI(A)
GET@で取り込んだパターンを表示する
漢字を表示する
条件
PSET   : そのまま描画する
PRESET : パターンで消去する
OR     : 画面上のパターンと配列変数のパターンをドット単位でORした結果を描画する
AND    : 画面上のパターンと配列変数のパターンをドット単位でANDした結果を描画する
XOR    : 画面上のパターンと配列変数のパターンをドット単位でXORした結果を描画する(省略時はXOR)
LINELINE[[ STEP](X1,Y1)-][STEP](X2,Y2)[,パレットコード][,{B | BF}[,{ラインスタイル | パレットコード2 | タイルストリング}]LINE(0,0)-(100,100),4,BF直線(B:四角形,BF:塗りつぶした四角形)を描画する
ラインスタイルは&H0000〜&HFFFFまでの指定で対応するビットが1の部分のみ描画する
CIRCLECIRCLE[ STEP](X,Y),半径[,[パレットコード][,[開始位置][,[終了位置][,[比率][,F,{パレットコード2 | タイルストリング}]]]]CIRCLE(100,100),100,2指定座標に円を描画する
STEP指定時は座標指定は前回座標との差分となる
比率 : 0〜(Y軸半径/X軸半径)
640x200→0.5で真円(省略時)
640x200→1で真円(省略時)
開始終了位置 : -2π〜2π(ラジアン値:0でX軸右端)
「F」を付けた場合は{パレットコード2 | タイルストリング}で塗りつぶす
PAINTPAINT[ STEP](X,Y)[,{[パレットコード] | [タイルストリング]}[,境界色]PAINT(100,100),2,7
PAINT(100,100),&HAA,2,&HFF
指定したパレットコードで境界色に囲まれた範囲を塗りつぶす(境界色を省略した場合はパレットコードを指定したものとする)
指定したタイリングパターンで境界色に囲まれた範囲を塗りつぶす
タイリングパターンは白黒モードで1バイト単位、カラーモードで3バイト単位で指定
白黒時はビットが1のところを描画する
カラー時は3バイトの各ビットをORした値が描画するパレットコードとなる
POINTPOINT[ STEP](X,Y)POINT(100,100)指定した座標を最終参考点(LP)に設定する
PSETPSET[ STEP](X,Y)[,カラーコード]PSET(100,100),2指定した座標にドットを表示する
PRESETPRESET[ STEP](X,Y)[,カラーコード]PRESET(100,100)指定した座標のドットを消去する(カラーコードを付けた場合はPSETと同等)
DRAW diskDRAW 制御文字列DRAW A$タートルグラフィックで図形を描画する
KPLOAD diskKPLOAD 文字コード,配列名KPLOAD &HEB9F,A%外字(&HEB9F〜&HEBDD)パターンを定義する
[戻る]
ステートメント:音楽関連(PC-9801-26使用時)
表記凡例使用例説明
PLAYPLAY [#音源モード(0〜4)][MML文字列1][,MML文字列2[,...][,MML文字列6]]PLAY #2,A$,B$,C$,D$,E$,F$音楽を演奏する
PLAY ALLOCPLAY ALLOC [CH1バッファサイズ][,CH2バッファサイズ][...][,CH6バッファサイズ]PLAY ALLOC 255,255,255サウンドバッファの確保と初期化を行う
SOUNDSOUND レジスタ番号,数式SOUND 0,128SSGポートへデータを書き込む
VOICEVOICE 整数配列1[,整数配列2][,整数配列3]VOICE A%,B%,C%OPNの音色を設定する
VOICE COPYVOICE COPY 音色番号(0〜61),整数配列VOICE COPY 0,A%OPNの音色データを配列変数にコピーする
VOICE INITVOICE INITVOICE INITOPNの音色を初期化する
VOICE LFOVOICE LFO チャンネル番号(1〜6)[,制御文字列]VOICE LFO 0,A$OPNのチャンネルにLFO効果を設定する
VOICE REGVOICE REG レジスタ番号,数式VOICE REG 0,AOPNのレジスタにデータを書き込む
ON PLAY GOSUBON PLAY(チャンネル番号,残りバイト数) GOSUB {行番号 | ラベル}ON PLAY(1,1024) GOSUB 100演奏割込分岐処理ルーチンを指定する
PLAYPLAY {ON | OFF | STOP}PLAY ON演奏割込設定をする
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
[戻る]
ステートメント:その他
表記凡例使用例説明
BEEPBEEP [スイッチ]BEEP 1BEEP音を出力する
スイッチ
(省略) : 「ピーッ」と鳴らす
0 : 音を鳴らさない(消す)
1 : 音を鳴らす(255まで指定可能だが違いはない)
COPYCOPY [機能コード]COPY 1プリンタに画面内容を出力する
1 : テキスト画面のみ出力(デフォルト)
2 : グラフィック画面のみ出力
3 : 両方を出力
4 : グラフィック画面のみを出力(640x200指定時漢字を縦1/2にして出力)
5 : 両方を出力(640x200指定時は4と同様)
LPRINTLPRINT [{[USING 書式;データ] | [式]}[{, | ;}[式2[,...]]]]LPRINT A$プリンタに出力する
WIDTH LPRINTWIDTH LPRINT 文字数WIDTH LPRINT 80プリンタの行文字数(0〜255)を設定する
ERRORERROR エラー番号ERROR 19指定したエラー番号のエラーを発生させる ※エラーメッセージ一覧
KEYKEY 番号,文字列KEY 1,"TEST"指定した番号のファンクションキーに文字列を設定する
KEYKEY [(番号)] {ON | OFF | STOP}KEY (1) ONファンクションキー(1〜10)の割込設定をする(番号指定を省略すると全ファンクションキー指定)
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
COMCOM {ON | OFF | STOP}COM ON通信ポートの割込設定をする
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
STOPSTOP {ON | OFF | STOP}STOP ONSTOPキーの割込設定をする
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
HELPHELP {ON | OFF | STOP}HELP ONHELPキーの割込設定をする
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
TIME$TIME$ {ON | OFF | STOP}TIME$ ONタイマ割込設定をする
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
PENPEN {ON | OFF | STOP}PEN ONライトペンの割込設定をする
ON   : 割込許可
OFF  : 割込禁止
STOP : 割込停止(ONで再開)
MOTORMOTOR [スイッチ]MOTOR 1カセットテープレコードのモータを制御する
スイッチ(省略時はトグル動作)
0 : 止める
1 : 動かす
OUTOUT ポート番号,数式OUT &HD0,10ポートに値を出力する
WAITWAIT ポート番号,マスク[,論理データ]WAIT &HD0,&H80,&HF0ポート入力からのデータ受信を待ち「(データ [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進数文字列に変換する
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の何文字目かを返す
SEARCHSEARCH(配列変数名,整数値[,[開始位置][,ステップ]])SEARCH(A%,B)配列変数の要素から指定された整数値の位置を返す
LENLEN(文字列式)LEN(A$)文字列の文字数を返す
KLEN diskKLEN(文字列式[,機能コード])KLEN(A$)文字列の文字数を返す
機能コード
0 : 日本語文字も1文字として返す(デフォルト)
1 : 半角文字の文字数
2 : 日本語文字の文字数(KI/KOは含まない)
3 : 全角文字の文字数
4 : 2bytes半角文字の文字数
5 : KI/KOコードの数
KTYPE diskKTYPE(文字列式,式)KTYPE(A$)全角文字列を含む文字列から指定位置の文字タイプを返す
返値
0 : 半角文字
1 : 全角文字
2 : 2bytes半角文字
3 : KIコード
4 : KOコード
JIS$ diskJIS$(文字列式)JIS$(A$)文字列先頭全角文字のJISコードを返す
KNJ$ diskKNJ$(文字列式)KNJ$(A$)4桁の漢字コード文字列を全角文字として返す
KEXT$ diskKEXT$(文字列式,機能コード)KEXT$(A$,0)文字列から半角文字、もしくは全角文字を抽出した文字列を返す
機能コード
0 : 半角文字
1 : 全角文字(KI/KOコードを除く)
KMID$ diskKMID$(文字列式,式1[,式2])[=文字列]KMID$(A$,2,1)文字列の式1で指定した位置から式2で指定した桁数の文字列を返す(=文字列を指定した場合はその文字列と置換する)
MID$の全角文字版
KINSTR diskKINSTR([開始位置,]文字列式1,文字列式2)KINSTR(A$,B$)文字列1から文字列2を[開始位置から]探し、一致した場合文字列1の何文字目かを返す
INSTRの全角文字版
AKCNV$ diskAKCNV$(文字列式)AKCNV$(A$)文字列中の半角文字を全角文字に変換した文字列を返す
KACNV$ diskKACNV$(文字列式)KACNV$(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)平方根の値を返す
[戻る]
その他関数
表記凡例使用例説明
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$ diskINPUT$(文字数[,ドライブ番号])INPUT$(1,#1)ファイルから文字数分の文字列を返す
ドライブ番号を省略した場合はキーボードからの入力(プロンプトの表示はない)
ATTR$ diskATTR$({ドライブ番号 | #ファイル番号 | ファイル名})ATTR$(#1)ディスク/ファイルの属性を返す
DSKI$ diskDSKI$(ドライブ番号,ヘッド番号,トラック番号,セクタ番号)DSKI$(1,1,2,3)ファイル装置から直接読み込んだ256bytesの文字列を返す
LOCLOC(ファイル番号)LOC(1)指定したファイル番号の論理的位置を返す
LOFLOF(ファイル番号)LOF(1)指定したファイル番号の総レコード数を返す
EOFEOF(ファイル番号)EOF(1)シーケンシャルファイルの終わりを検出する
FPOSFPOS(ファイル番号)FPOS(1)ファイルの物理セクタ番号を返す
DSKF diskDSKF(ドライブ番号[,機能コード])DSKF(1)フロッピーディスクの情報を返す
KPOS 日本語KPOS(文字列式,数式)KPOS(A$,1)文字列中の指定文字列位置を返す(全角文字も1文字とする)
FREFRE(機能コード)FRE(0)使用可能なメモリサイズを返す
0 : 変数領域
1 : テキスト領域
2 : 両方の和
3 : 配列データセグメント領域
INKEY$INKEY$INKEY$押されたキーの値を返す
DATE$DATE$DATE$="10/01/01"日付文字列変数を操作する
TIME$TIME$TIME$="12:34:56"時刻文字列変数を操作する
CSRLINCSRLINCSRLIN現在のカーソル行位置を返す
POSPOS(番号)POS(0)現在のカーソル桁位置を返す(番号指定は無視される)
POINTPOINT{[ STEP](X,Y) | (機能コード)}POINT(100,100)
POINT(0)
指定した座標のドットの有無を返す
最後にグラフィック操作が行われた座標を返す
機能コード
0 : X座標をワールド座標で返す
1 : Y座標をワールド座標で返す
2 : X座標をスクリーン座標で返す
3 : Y座標をスクリーン座標で返す
VIEWVIEW(機能コード)VIEW(0)ビューポートの設定位置(スクリーン座標系)を返す
機能コード
0 : ビューポート左上のX座標を返す
1 : ビューポート左上のY座標を返す
2 : ビューポート右下のX座標を返す
3 : ビューポート右下のY座標を返す
WINDOWWINDOW(機能コード)WINDOW(0)ウィンドウの設定位置(ワールド座標系)を返す
機能コード
0 : ウィンドウ左上のX座標を返す
1 : ウィンドウ左上のY座標を返す
2 : ウィンドウ右下のX座標を返す
3 : ウィンドウ右下のY座標を返す
LPOSLPOS(番号)LPOS(0)プリンタのヘッド位置を返す(番号指定は無視される)
INPINP(ポート番号)INP(100)指定したポート番号(0〜255)の入力値を返す
PEEKPEEK(アドレス)PEEK(&HD000)指定したアドレスの値を返す
USRUSR番号(式)I=USR1(TEST)マシン語関数を呼び出す
VARPTRVARPTR(変数名)VARPTR(T)変数が割り当てられているアドレスを返す
ERRERRERR発生したエラーのエラーコードを返す
ERLERLERLエラーの発生した行番号を返す
[戻る]

※ NEW ON
ビットで指定

bit機能01
0BASICセレクトN88-BASIC(86)N-BASIC
DIPSW 1
1システムモードBASICTERM
2桁数4080
3行数2025
4メモリスイッチ規定値で初期化メモリスイッチの有効化

[戻る]

※ デバイス

デバイス名対象入力出力備考
CASn:
CAS:
カセットテープOOn=1〜2(I/F増設時有効)
CAS1は1200baud、CAS2は600baud
内蔵していない機種の場合はPC-9801-03/13(CMT I/Fボード)が必要
n:フロッピーディスクOOn=1〜14
内蔵以外はI/F及びドライブの増設が必要
SCRN:画面XO
KYBD:キーボードOX
LPT1:
LPT:
プリンタXO
COM1:
COM:
RS-232COO増設RS-232C I/F搭載時COM3まで有効

ROM BASIC時のデフォルトはCAS1:
DISK BASIC時のデフォルトは1:

[戻る]

※ モニタコマンド
D[adr1,adr2] : Dump(メモリをダンプする)
(adr1,adr2 : 開始アドレス、終了アドレス)
G[adr][,break1][,break2] : Go(メモリの内容を実行する)
(break1,break2 : ブレイクポイント)
S[adr] : Set memory(メモリを編集する)
A[adr] : Assemble(アセンブル)
L[adr] : 逆アセンブル
X[reg] : eXamine register(レジスタ内容の確認)
B{H|Q} : Base(HEX/OCT)
M[adr1,adr2,adr3] : Move memory
(adr1,adr2 : 開始アドレス、終了アドレス)
(adr3 : 転送先アドレス)
E[adr] : Edit memory(メモリ編集モード)
F[adr1,adr2,data] : Fill memory(指定範囲を同一データで埋める)
I[port] : Input(指定ポートからデータを受信する)
O[port,data] : Output(指定ポートへデータを送信する)
P : Printer switch(プリンタ出力切替)
W[filename,adr1,adr2] : Write tape(カセットテープへデータを出力する)
(adr1,adr2 : 開始アドレス、終了アドレス)
R[filename] : Read tape(カセットテープからマシン語プログラムをロードする)
V[filename] : Verify tape(カセットテープのマシン語プログラムをヴェリファイする)
TM : Test Memory(メモリテストを実行する)
^B : Break(CTRL+BでBASICに戻る)
^D : Dump disk(ディスクの内容を表示)
^R : Read disk(ディスクからデータをロードする)
^W : Write disk(ディスクへデータをセーブする)

[HELP] : HELPキー(CTRL+A)でコマンド一覧表示

A/E/L及びディスク関連はDISK BASICかつメモリスイッチONのときに使用可能

[戻る]

※ ターミナルモード
SHIFT+STOPでBASICに戻る

設定文字列
・パリティ
N : なし
O : 奇数
E : 偶数

・ワード長
7 : 7bit(パリティ:O|E)
8 : 8bit(パリティ:N)

・ストップビット
1 : 1bit
2 : 1.5bit
3 : 2bit

・XONスイッチ
N : XON/XOFF制御なし
X : XON/XOFF制御あり

・Sパラメータ(7bit指定時に&H80以上のコード入出力可否)
N : 入出力不可
S : 入出力可能

・受信DELコード
B : BSコードへ変換
N : NULLへ変換

・RETキー処理
B : CRコードを送信
N : CR,LFコードを送信

・受信CRコード処理
C : CR,LF
L : LF

・日本語SHIFTコード処理
P : KI=&H1B4B(ESC+K)/KO=&H1B48(ESC+H)
I : JI=&H1A70(SB+p)/KO=&H1A71(SB+q)

モード
H : 半二重
F : 全二重

変数領域サイズ
省略時1024

パラメータは半角大文字のみ指定可能
省略時は半角スペースを使用

[戻る]

※ 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 ファンクションコード,バックグラウンドカラーコード,ボーダーカラーコード,フォアグラウンドカラーコード[,パレットモード]で指定。

ファンクションコードはいわゆる文字カラー、バックグラウンドカラーは背景カラー
ボーダーカラーは画面の外枠のカラーだが、SR以降では指定に意味はない
フォアグラウンドカラーコードはグラフィック描画時のカラーとなる
パレットモードはパレットコードで使用可能なカラーを指定する(DISK BASICで使用可能)
パレットモードを切り替えると下記のデフォルト色に戻る

0 : 8色モード(デフォルトの色配列は通常の8色と同じ)
1 : 4096色中8色モード
2 : 4096色中16色モード

4096色中8色モード
番号カラーコード備考
0&H000
1&H00F
2&H0F0
3&H0FF
4&HF00
5&HF0F水色
6&HFF0
7&HFFF
4096色中16色モード(8色モードに追加)
番号カラーコード備考
8&H777
9&H00A少し暗い青
10&H0A0少し暗い赤
11&H0AA少し暗い紫
12&HA00少し暗い緑
13&HA0A少し暗い水色
14&HAA0少し暗い黄
15&HAAA少し暗い白

CONSOLE ,,,カラーモードで白黒モードとカラーモードを指定
白黒モード(CONSOLE ,,,0)は以下の通り

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

カラーモード(CONSOLE ,,,1)は以下の8色を指定する

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

[戻る]

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

・画面モード
0 : カラーモード(640x200, 4pages)
1 : 白黒モード(640x200, 12pages[16色時は16pages])
2 : 高解像度白黒モード(640x400, 6pages[16色時は8pages])
3 : 高解像度カラーモード(640x400, 2pages)

・画面スイッチ
0/1 : グラフィックを表示する
2/3 : 現在表示されているグラフィック図名を一時的に消去する

・アクティブページ

8色モード、4096色中8色モード時
指定値画面モードページ番号
0〜3カラーモード1〜4
0〜11白黒モード1〜12
0〜5高解像度白黒モード1〜6
0〜1高解像度カラーモード1〜2
4096色中16色モード時
指定値画面モードページ番号
0〜3カラーモード1〜4
0〜15白黒モード1〜16
0〜7高解像度白黒モード1〜8
0〜1高解像度カラーモード1〜2

・表示ページ

8色モード、4096色中8色モード時
指定値カラーモード白黒モード高解像度白黒モード高解像度カラーモード
0表示なし表示なし表示なし表示なし
1PAGE 1PAGE 1PAGE 1PAGE 1
2PAGE 2PAGE 2PAGE 2
3PAGE 1,2PAGE 1,2
4PAGE 3PAGE 3
5PAGE 1,3PAGE 1,3
6PAGE 2,3PAGE 2,3
7PAGE 1,2,3PAGE 1,2,3
8表示なし表示なし表示なし表示なし
9PAGE 4
10PAGE 5
11PAGE 4,5
12PAGE 6
13PAGE 4,6
14PAGE 5,6
15PAGE 4,5,6
16表示なし表示なし表示なし表示なし
17PAGE 3PAGE 7PAGE 4PAGE 2
18PAGE 4PAGE 8PAGE 5
19PAGE 7,8PAGE 4,5
20PAGE 9PAGE 6
21PAGE 7,9PAGE 4,6
22PAGE 8,9PAGE 5,6
23PAGE 7,8,9PAGE 4,5,6
24表示なし表示なし表示なし表示なし
25PAGE 10
26PAGE 11
27PAGE 10,11
28PAGE 12
29PAGE 10,12
30PAGE 11,12
31PAGE 10,11,12
4096色中16色モード時
指定値カラーモード白黒モード高解像度白黒モード高解像度カラーモード
0表示なし表示なし表示なし表示なし
1PAGE 1PAGE 1PAGE 1PAGE 1
2PAGE 2PAGE 2PAGE 2
3PAGE 1,2PAGE 1,2
4PAGE 3PAGE 3
5PAGE 1,3PAGE 1,3
6PAGE 2,3PAGE 2,3
7PAGE 1,2,3PAGE 1,2,3
8PAGE 4PAGE 4
9PAGE 1,4PAGE 1,4
10PAGE 2,4PAGE 2,4
11PAGE 1,2,4PAGE 1,2,4
12PAGE 3,4PAGE 3,4
13PAGE 1,3,4PAGE 1,3,4
14PAGE 2,3,4PAGE 2,3,4
15PAGE 1,2,3,4PAGE 1,2,3,4
16表示なし表示なし表示なし表示なし
17PAGE 5
18PAGE 6
19PAGE 5,6
20PAGE 7
21PAGE 5,7
22PAGE 6,7―3
23PAGE 5,6,7
24PAGE 8
25PAGE 5,8
26PAGE 6,8
27PAGE 5,6,8
28PAGE 7,8
29PAGE 5,7,8
30PAGE 6,7,8
31PAGE 5,6,7,8
32表示なし表示なし表示なし表示なし
33PAGE 3PAGE 9PAGE 5PAGE 2
34PAGE 4PAGE 10PAGE 6
35PAGE 9,10PAGE 5,6
36PAGE 11PAGE 7
37PAGE 9,11PAGE 5,7
38PAGE 10,11PAGE 6,7
39PAGE 9,10,11PAGE 5,6,7
40PAGE 12PAGE 8
41PAGE 9,12PAGE 5,8
42PAGE 10,12PAGE 6,8
43PAGE 9,10,12PAGE 5,6,8
44PAGE 11,12PAGE 7,8
45PAGE 9,11,12PAGE 5,7,8
46PAGE 10,11,12PAGE 6,7,8
47PAGE 9,10,11,12PAGE 5,6,7,8
48表示なし表示なし表示なし表示なし
49PAGE 13
50PAGE 14
51PAGE 13,14
52PAGE 15
53PAGE 13,15
54PAGE 14,15―3
55PAGE 13,14,15
56PAGE 16
57PAGE 13,16
58PAGE 14,16
59PAGE 13,14,16
60PAGE 15,16
61PAGE 13,15,16
62PAGE 14,15,16
63PAGE 13,14,15,16

「―」は指定不可を意味する

[戻る]

※ DSKF
・機能コード
 0 : 最大トラック番号
 1 : トラック当たりのセクタ数
 2 : FD(1)/HD(>1)
 3 : (FD)トラック当たりのクラスタ数/(HD)クラスタ当たりのトラック数
 4 : ボリューム当たりのクラスタ数
 5 : ディレクトリがあるトラック番号
 6 : クラスタ当たりのセクタ数
 7 : FAT開始セクタ
 8 : FAT終了セクタ
 9 : FAT数
10 ; ディスク属性があるセクタ番号

[戻る]

※ DRAW

コマンド条件機能備考
Ann=0〜3座標系を設定する0 : 左上基点、Xは右方向増分、Yは下方向増分
1 : 左下基点、Xは右方向増分、Yは上方向増分
2 : 右下基点、Xは左方向増分、Yは上方向増分
3 : 右上基点、Xは左方向増分、Yは下方向増分
Cnn=0〜7パレットコード指定 
Pnn=0〜7現在位置で指定した境界色で囲まれた領域を塗りつぶす塗りつぶすパレットコード、タイルストリングは「Z」コマンドで指定
Zn{n=0〜7 | =文字列変数;}T/Pコマンドで塗りつぶす際の{パレットコード | タイルストリング}指定 
Snn>0(default 1)描画時のスケール値(倍率)を指定する 
Rnn>0(default 1)X軸の正方向に指定値分移動し、描画する 
Lnn>0(default 1)X軸の負方向に指定値分移動し、描画する 
Dnn>0(default 1)Y軸の正方向に指定値分移動し、描画する 
Unn>0(default 1)Y軸の負方向に指定値分移動し、描画する 
Hnn>0(default 1)X,Y軸の正方向に指定値分移動し、描画する 
Gnn>0(default 1)X,Y軸の負方向に指定値分移動し、描画する 
Enn>0(default 1)X軸の正方向、Y軸の負方向に指定値分移動し、描画する 
Fnn>0(default 1)X軸の負方向、Y軸の正方向に指定値分移動し、描画する 
Wx,yn>0(default 1)X軸の正方向に指定値1、Y軸の正方向に指定値2移動し、描画する 
Mx,y ワールド座標系の指定位置まで移動し、描画する 
Qx,yx,y>0(default 1)X,Y軸の正方向に指定値分移動し、始点と移動点を対角線とする長方形を描画する 
Tx,yx,y>0(default 1)X,Y軸の正方向に指定値分移動し、始点と移動点を対角線とする長方形を描画し、内部を塗りつぶす塗りつぶすパレットコード、タイルストリングは「Z」コマンドで指定
Ynn=&H0000〜&HFFFF(default)直線描画時のラインスタイルを設定する 
X=文字列変数; 文字列変数内のコマンドに従って描画する 

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

[戻る]

※ PLAY
音源モード
0 : OPN演奏モード(デフォルト)
1 : OPN効果音モード
2 : OPNサイン波モード

演奏モードではCH1〜3がOPN、CH4〜6はSSGとなる

音階 : CDEFGAB
半音 : 音階+,#(半音上げ)|音階-(半音下げ)
休符 : R
音長 : Ln(1〜64 default:4)
音階、休符の後に付けた場合は単体指定
付点は例えば付点4分の場合は「6」、もしくは「4.」
付点は1個で元の音長の3/2の長さ
オクターブ : On(1〜8 default:4)
< : 1オクターブ下げ
> : 1オクターブ上げ
& : 前後の音をつなぐ(タイ)
{...}x : xは音長で{...}内を音長分で演奏(連符)
音の長さ割合 : Qn(1〜8 default:8)
音階指定 : Nn(1〜96)
テンポ : Tn(32〜255 default:120)
状態維持 : @Wx(1〜64 指定分状態を維持する)
音量 : Vn(0〜15 default:8)
音量(詳細) : @Vn(0〜255 OPN/MIDIのみ)
音色指定 : @x(0〜61 OPNのみ)
レジスタ : @Yr,d(0〜255 OPNのみ)
データ送信 : Zd(0〜255 MIDIのみ)
エンベロープ形状 : Sx(0〜15 default:1 SSGのみ)
エンベロープ周期 : Mx(1〜65535 default:255 SSGのみ)

[戻る]

※ LFO
VOICE LFO チャンネル番号[,wf][,sync][,speed][,pmd][,amd][,pms]
・wf : 0〜3
0 : 鋸波
1 : 矩形波
2 : 三角波
3 : ランダム波
・sync : 0〜1
0 : 音の発声とは関係なくLFO効果を与える
1 : 音の発声と同時にLFO効果を与える
・speed : 0〜16383
LFOの周波数を指定
・pmd : -127〜127 (Pitch Modulation Depth)
音程に対するLFOの深度を指定(詳細)
・amd : -127〜127 (Amplitude Modulation Depth)
音量に対するLFOの深度を指定
・pms : 0〜15 (Pitch Modulation Sensitivity)
音程に対するLFOの深度を指定

[戻る]

※ 変数型・定数型
整数型(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の否定

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
番号表示意味
?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必要なオペランドが不足している
23Line buffer overflow行入力バッファが許容範囲を超えた
26FOR without NEXTFORに対応したNEXTがない
27Tape read ERRORカセットテープ読込時エラー
29WHILE without WENDWHILEに対応したWENDがない
30WEND without WHILEWENDに対応したWHILEがない
31Duplicate labelラベルを2重定義しようとしている
32Undefined label未定義ラベルが使用された
33Feature not available使用不可能な機能を使用しようとした
50FIELD overflowFIELDで128bytes以上を指定した
51Internal error内部エラー
52Bad file numberファイル番号が異常
53File not foundファイルが見つからない
54File already openファイルは既にOPENされている
55Input past endファイルは既に全て読みだされている
56Bad file nameファイル名が異常
57Direct statement in fileファイル中にダイレクトステートメントが存在する
58Sequential after PUTPUT文を実行した後、シーケンシャル入出力を行おうとした
59Sequential I/O onlyシーケンシャル入出力以外の入出力命令を実行した
60File not openファイルがOPENされていない
61File write protected書込禁止属性のファイルに書き込もうとした
62Disk offileディスク装置がオフライン
63Disk not mountedディスクがMOUNTされていない
64Disk I/O errorディスクのアクセスエラー
65File already existsファイルは既に存在している
67Disk already mountedディスクは既にMOUNTされている
68Disk Fullディスク容量が一杯である
69Bad allocation table異常なアロケーションテーブルがある
70Bad drive numberドライブ番号異常
71Bad track/sectorディスクのトラックorセクタ異常
72Deleted recordレコードが削除されている
73Rename across disks異なるディスク装置へのリネームを行おうとした
74Illegal operationスクロールウィンドウ内のデータが一杯である

[戻る]

[TOPに戻る]