MZ-80B テープ BASIC 「SB-5520」

簡易リファレンス

プログラムファイル入出力
LOAD プログラムをカセットテープからメモリ上へ読み込む。 LOAD ファイルネーム LOAD "GAME"
SAVE メモリ上のプログラムをカセットテープに保存する。 SAVE ファイルネーム SAVE "GAME"
VERIFY メモリ上のプログラムとカセットテープに書かれているプログラムを比較する。 VERIFY ファイルネーム VERIFY "GAME"
テキスト編集コマンド
AUTO 行番号を自動発生する。 AUTO 開始番号, 増分
省略時は 10,10
AUTO
AUTO 10,20
LIST プログラムを画面に表示する。 LIST 開始番号 - 終了番号
省略時はすべて表示。
LIST 100-
LIST 100-200
LIST
LIST/P プログラムをプリンタに印字する。 LIST/P 開始番号 - 終了番号
省略時はすべて印字。
LIST/P 100-
LIST/P 100-200
LIST/P
NEW メモリ内のプログラムを削除する。 NEW NEW
コントロールコマンド
RUN プログラムを実行する。 RUN 行番号
省略時は初めから実行。
行番号を指定する場合は
変数をクリアしない。
RUN
RUN 100
CONT 中断したプログラムを再実行する。 CONT CONT
MON モニタ SB-1520 を起動する。 MON MON
BOOT BOOT BOOT
デファイナブルファンクションキーリスト
KLIST ファンクションキーの定義を画面に表示する。 KLIST KLIST
ステートメント
LET 式の値を変数に代入する。 LET 式
省略可能。
LET C=A+B*2
C=A+B*2
PRINT データを画面に表示する。 PRINT 表示データ
「;」 で表示をくっつける。
「,」で離す。
PRINT "X=";X,"Y=";Y
INPUT キーボードからデータを入力する。 INPUT 変数 INPUT A$
INPUT "X=";X
GET 現在押されているキーを取得する。 GET 変数 GET A 数値のみ A に入力。
GET A$ 文字と数値を A$
に入力。
READ
DATA
DATA 文に記述されたデータを変数に代入する。 READ 変数 READ A$,A
DATA "SUZUKI", 30
RESTORE DATA 文の読み込み位置を変更する、 RESTORE 行番号
行番号省略時は一番始めのデータ
RESTORE
RESTORE 150
FOR ~ TO ~ STEP
NEXT
繰り返し実行を行う。 FOR 変数=初期値 TO 終了値 STEP 変化率
NEXT
FOR I=0 TO 9 STEP 2
NEXT
GOTO 指定された行番号へ処理を移す。 GOTO 行番号 GOTO 100
GOSUB 指定された行番号のサブルーチンに処理を移す。 GOSUB 行番号 GOSUB 150
RETURN サブルーチンから GOSUB 文の次の行に処理を戻す。 RETURN RETURN
IF ~ THEN 条件を判断し処理を実行する。 IF 式 THEN 処理 IF A=0 THEN PRINT "A=0"
IF (A=1)*(B=3) THEN PRINT "A=1 AND B=3"
F (A=1)+(B=3) THEN PRINT "A=1 OR B=3"
IF ~ GOTO 条件を判断し指定された行番号に処理を移す。 IF 式 GOTO 行番号 IF A=10 GOTO 300
IF ~ GOSUB 条件を判断し指定された行番号のサブルーチンに処理を移す。 IF 式 GOSUB 行番号 IF A$="SUB" GOSUB 500
ON ~ GOTO いくつかの指定された行番号に多分岐して処理を移す。 ON 式 GOTO 行番号,行番号,... ON A GOTO 10,20,30
A が 1 なら 10
A が 2 なら 20
A が 3 なら 30
ON ~ GOSUB いくつかの指定された行番号に多分岐してサブルーチンに処理を移す。 ON 式 GOSUB 行番号,行番号,... ON A GOSUB 10,20,30
A が 1 なら 10
A が 2 なら 20
A が 3 なら 30
DIM 1 次元、2 次元の配列を用意しメモリを確保する。 DIM 変数(サイズ)
DIM 変数(サイズ,サイズ)
DIM A(10)
DIM B%(10,10)
DEF FN 利用者関数を定義する。 DEF FN関数=式 DEF FNR(X)=INT(RND(1)*X)+1
PRINT FNR(10) 1~10 までの整数が表示される。
FNのあとはアルファベット1文字。
DEF KEY デファイナブルファンクションキーを定義する。 DEF KEY(キー番号)=定義内容 DEF KEY(1)=FUNCTION1
REM 注釈。プログラムの実行には影響なし。 REM コメント REM ***** START PROGRAM *****
STOP プログラムを停止する。 STOP STOP
END プログラムを終了する。 END END
CLR 変数、配列をクリアする。 CLR CLR
CURSOR 画面の指定位置へカーソルを移動する。 CURSOR 横位置,縦位置
横位置 0~39、0~79
縦位置 0~24
CURSOR 10,10
CONSOLE 画面の設定を行う。 CONSOLE コマンド
コマンド
C40 テキスト 40 桁モード
C80 テキスト 80 桁モード
Sスクロール開始行,終了行
R 画面反転
N 画面反転解除
CONSOLE C40,N,S0,24
CONSOLE C80,S5,10,R
CHANGE キーボードの大文字と小文字の入力を反転する。 CHANGE CHANGE
REW カセットテープの巻き戻しをする。 REW REW
FAST カセットテープの早送りをする。 FAST FAST
MUSIC 指定された音を出す。 MUSIC 音データ MUSIC "C4DEFGAB"
TEMPO MUSIC の演奏速度を指定する。 TEMPO 演奏速度(0~7) TEMPO 5
グラフィックコントロール
GRAPH グラフィック画面の設定を行う。 GRAPH コマンド
コマンド
I 描画ページ(1~2)
O 表示ページ(1~2, 複数指定可)
C グラフィック画面消去
F グラフィック画面埋めつくし
GRAPH I1,O1,C
SET 点を描く。 SET 横位置,縦位置 SET 0,0
RESET 点を消す。 RESET 横位置,縦位置 RESET 0,0
LINE 線を引く。 LINE 横位置1,縦位置1,横位置2,縦位置2,... LINE 0,0,100,100
BLINE 線を消す。 BLINE 横位置1,縦位置1,横位置2,縦位置2,... BLINE 0,0,100,100
POSITION PATTERN 文の表示位置を指定する。 POSITION 横位置,縦位置 POSITION 40,50
PATTERN グラフィックパターンを描く。 PATTERN 方向とサイズ,データ A$=CHR$(255)+CHR$($81)+CHR$($81)+CHR$($81)+CHR$($81)+CHR$($81)+CHR$($81)+CHR$(255)
PATTERN -8,A$
POINT グラフィック画面の情報を取得する。 POINT(横位置,縦位置) A=POINT(10,50)
データファイル入出力
WOPEN/T カセットテープにシーケンシャルデータファイルを作る。 WOPEN/T ファイルネーム WOPEN/T "DATA"
PRINT/T カセットテープにデータを書き込む。 PRINT 参照 PRINT/T A$,B,C
CLOSE/T カセットテープのファイルを閉じる。 CLOSE/T CLOSE/T
ROPEN/T カセットテープのデータを読み込むためにファイルを開く。 ROPEN/T ファイルネーム ROPEN/T "DATA"
INPUT/T カセットテープからデータを読み込む。 INPUT 参照 INPUT/T A$,B,C
機械語プログラムコントロール
LIMIT BASIC で使用するメモリを制限する。 BASICで使用できるメモリ最大アドレス、マシン語でA000h~を使いたい場合は$9FFFを指定する LIMIT $9FFF
LIMIT 40959
POKE メモリにデータを書き込む。 POKE メモリアドレス,バイトデータ POKE $A000,166
POKE 40960,0
PEEK メモリのデータを読み込む。 PEEK(メモリアドレス) AD=PEEK($A000)
AD=PEEK(40960)
USR 指定されるメモリアドレスの機械語を実行する。 USR(メモリアドレス,機械語に送る文字列(省略可能)) USR($A000,A$)
USR(40960)
文字列のアドレスはHL、サイズはBCに入る。
プリンタコントロール
PRINT/P プリンタにデータを送る。 PRINT 参照 PRINT/P "GOUKEI = ";TOTAL
IMAGE/P ドットパターンをプリンタに送る。 IMAGE/P ストリングデータ IMAGE/P A$
COPY/P 画面をプリンタに印字する。 COPY/P パラメータ
パラメータ
1 テキスト画面
2 グラフィックエリア 1
3 グラフィックエリア 2
4 グラフィックエリア 1 と 2
COPY/P 1
COPY/P 4
PAGE/P プリンタの 1 ページ行数を指定する。 PAGE/P 行数 PAGE/P 20
I/O ポートアクセス
INP@ I/O ポートから 1 バイト読み出す。 INP@ ポート番号,入力変数 INP@ 0,A
OUT@ I/O ポートに 1 バイト書き込む。 OUT@ ポート番号, 出力データ OUT @ 0,255
組み込み数値関数
ABS 絶対値。 ABS(数値) ABS(X)
INT 整数。 INT(数値) INT(X)
SGN 値が 0 の時は 0、負の時は -1、正の時は 1。 SGN(数値) SGN(X)
SQR 平方根。 SQR(数値) SQR(X)
SIN サイン。 SIN(数値) SIN(X)
COS コサイン。 COS(数値) COS(X)
TAN タンジェント。 TAN(数値) TAN(X)
ATN アークタンジェント。 ATN(数値) ATN(X)
EXP 指数関数。 EXP(数値) EXP(X)
LOG 常用対数。 LOG(数値) LOG(X)
LN 自然対数。 LN(数値) LN(X)
RND 0 ~ 1 までの擬似乱数。 RND(数値) RND(1)
ストリング処理関数
LEFT$ 文字列の左側から文字列を取り出す。 LEFT$(文字変数,文字数) A$="1234567890"
B$=LEFT$(A$,6)
B$ → "123456"
MID$ 文字列の中間から文字列を取り出す。 MID$(文字変数,左からの文字位置,文字数) A$="1234567890"
B$=MID$(A$,3,4)
B$ → "3456"
RIGHT$ 文字列の右側から文字列を取り出す。 RIGHT$(文字変数,文字数) A$="1234567890"
B$=RIGHT$(A$,3)
B$ → "890"
SPACE$ スペース文字列作成する。 SPAGE$(文字数) A$=SPACE$(10)
STRING$ 指定された文字の文字列を作成する。 STRING$(文字,文字数) A$=STRING$("A",10)
CHR$ キャラクターコードを門司に返還する。 CHR$(キャラクタコード) A$=CHR$(65)
ASC 文字をキャラクターコードに変換する。 ASC(文字) A=ASC("A")
STR$ 数値を文字に変換する。 STR$(数値) A$=STR$(A)
VAL 文字を数値に変換する。 VAL(文字列) A=VAL(A$)
LEN 文字列の長さを取得する。 LEN(文字列) L=LEN(A$)
CHARACTER$ 指定した画面上の文字を取得する。 CHARACTER$(横位置,縦位置) A$=CHARACTER$(10,10)
タビュレーションコントロール
TAB PRINT 文でのタビュレーションを指定する。 TAB(タブ位置) PRINT TAB(6);"GOUKEI = ";GO
システム定数
π 円周率。 3.1415927 PRINT π
システム変数
SIZE プログラム空エリア。 SIZE PRINT SIZE
CSRH カーソル水平位置。 CSRH PRINT CSRH
CSRV カーソル垂直位置。 CSRV PRINT CSRV
POSH グラフィックポインタの水平位置。 POSH PRINT POSH
POSV グラフィックポインタの垂直位置。 POSV PRINT POSV
TI$ 24 時間時計の値。 TI$=時刻 TI$="120000"
PRINT "TIME = ";TI$

中間コード書式

行の長さ (2Byte) 行番号 (2Byte) 行の内容 (可変Byte) 行の終わり(1Byte)

行の長さ 行の終りまでのバイト数。$0000 ならファイルの終わりを示す。
行番号 0 ~ 65535
行の内容 命令語は中間コードに置き換えられる。
ダブルクォーテーション内は中間コードに置き換えられることは無い。
行の終わり 0Dh

中間コード表

8x 9x Ax Bx Cx Fx 80 8x 80 9x 80 Ax 80 Bx B2 5x B2 Ax
0 LEFT$( POINT( RND( REM NEXT USR( GRAPH
1 RIGHT$( CHARACTER$( SIN( DATA STOP WOPEN POSITION
2 MID$( CSR COS( DEF KEY( END ROPEN PATTERN
3 >< LEN( POS TAN( CLOSE AUTO
4 <> CHR$( ATN( READ ON MON
5 =< STR$( EXP( LIST LOAD LIMIT IMAGE/P
6 <= ASC( INT( RUN SAVE CONT COPY/P CSRV
7 => VAL( LOG( NEW VERIFY GET PAGE/P
8 >= PEEK( LN( PRINT POKE INP@ CSRH
9 TAB( ABS( LET DIM OUT@ BOOT
A > SPACE$( SGN( FOR DEF FN CURSOR KLIST
B < SIZE SQR( IF INPUT SET CHANGE
C THEN RESTORE RESET
D GOTO CLR LINE
E TO EOF( GOSUB MUSIC BLINE REW
F STEP STRING$( π RETURN TEMPO CONSOLE FAST

その他

POKE$952,0 キーボード入力高速オートリピート
POKE$952,166 キーボード入力の速度を戻す
USR($0F14) BEEP音を鳴らす

戻る