戻る
MZ-1Z001(SB-5520)/MZ-1Z002 (S-BASIC)
mz80B/2000/2200 : シャープ (SHARP)

MZ-1Z001 MZ-1Z002
SB-5520

MZ-1Z001 (S-BASIC)はmz80B/2000/2200用SHARP製BASICである。
MZ-1Z002はMZ-1Z001のカラー対応版。
mz80BのSB-5520もほぼ仕様は同じなのでMZ-1Z001を参照のこと。

S-BASICでは全ての予約語は大文字しか受け付けないことに注意。

MZ-1Z001(SB-5520)/MZ-1Z002 簡易リファレンス
コマンド
表記凡例使用例説明
AUTOAUTO [行番号][,増分]AUTO 100,5先頭に自動的に行番号を発生させる(増分を省略した場合は10)
LISTLIST [/P] [行番号][-[行番号2]]LIST
LIST 100-200
メモリ上のプログラムを表示[印字]する
指定した範囲の行番号を表示[印字]する
NEWNEWNEWプログラムを全て消去し、変数を初期化する
CONTCONTCONTSTOPやBREAKキーで終了したプログラムの実行を再開する
RUNRUN [行番号]RUN 100指定した行番号からプログラムを実行する(行番号を省略した場合は先頭から実行する)
SAVESAVE "ファイル名"SAVE "TEST"カセットテープにプログラムを保存する
LOADLOAD ["ファイル名"]LOAD "TEST"カセットテープからプログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む)
VERIFYVERIFY ["ファイル名"]VERIFY "TEST"カセットテープのプログラムを照合する(ファイル名を省略した場合は最初に見つかったプログラムを照合する)
MONMONMONモニタに制御を移す
BOOTBOOTBOOTIPLに戻る
KLISTKLISTKLISTファンクションキーの定義内容を表示する
DEF KEYDEF KEY(キー番号)=定義式DEF KEY(1)="RUN"ファンクションキーを定義する(キー番号:1〜10)
[戻る]
ステートメント:プログラム制御
表記凡例使用例説明
ENDENDENDプログラムを終了する
STOPSTOPSTOPプログラムを一時停止する
REMREM [注釈]REM TEST注釈を入れる(実行には無関係)
FOR...TO...STEP〜NEXTFOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数1][,変数2][,...]FOR I=0 TO 10 STEP 2〜NEXT IFORからNEXTまでの処理を繰り返す
GOSUBGOSUB 行番号GOSUB 1000サブルーチンを呼び出す
RETURNRETURNRETURNサブルーチンから復帰する
GOTOGOTO 行番号GOTO 1000指定した行番号から実行する
IF...THENIF 論理式 THEN {文 | 行番号}IF A=0 THEN 10論理式の条件判断をする
IF...GOTOIF 論理式 GOTO 行番号IF A=0 GOTO 10論理式の条件判断をする
IF...GOSUBIF 論理式 GOSUB 行番号IF A=0 GOSUB 10論理式の条件判断をする
ON...GOTOON 式 GOTO 行番号1[,行番号2][,...]ON A GOTO 100,200式の値に応じて指定された行番号へ分岐する
ON...GOSUBON 式 GOSUB 行番号1[,行番号2][,...]ON A GOSUB 100,200式の値に応じて指定された行番号のサブルーチンを呼び出す
[戻る]
ステートメント:変数関連
表記凡例使用例説明
INPUTINPUT [文字列{; | , }]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する
GETGET 変数GET A$変数に現在押されているキーを代入する
数値変数を指定した場合は数字キーのみを受け付ける
LETLET 変数=式LET A=1変数に値を代入する(LETは省略できる)
DATADATA 定数[,定数][,...]DATA "TEST",765READで読み込むデータを定義する
READREAD 変数[,変数][,...]READ A$,BDATAで定義したデータを変数に代入する
RESTORERESTORE [行番号]RESTORE 1000READで読み込むDATAの先頭行を設定する
DEF FNDEF FN関数名(パラメータ[,パラメータ2[,...]])=定義式DEF FNA(X,A,B)=X^2+AX+Bユーザ定義関数を定義する(関数名:A〜Zの1文字)
DIMDIM 変数名(最大値1[,最大値2][,...])[,...]DIM A(100,10),B$(100)配列変数の定義をする
CLRCLRCLR変数や配列を初期化する(FOR〜NEXT内やサブルーチンでは使用不可)
[戻る]
ステートメント:データ関連
表記凡例使用例説明
WOPENWOPEN [/T]["ファイル名"]WOPEN "TEST"ファイルを書込モードでオープンする
PRINT /T{PRINT | ?} /T [式[{, | ;}[式2[,...]]]]PRINT /T A$ファイルに書き込む
ROPENROPEN [/T] ["ファイル名"]ROPEN "TEST"ファイルを読込モードでオープンする
INPUT /TINPUT /T 変数INPUT /T A$ファイルから読み込む
CLOSECLOSE [/T]CLOSE /Tファイルをクローズする
[戻る]
ステートメント:マシン語関連
表記凡例使用例説明
LIMITLIMIT {アドレス($0000〜$FFFF) | MAX}LIMIT $AFFF
LIMIT MAX
指定したアドレス+1以降をユーザ領域(マシン語プログラムを置く領域)に指定する
BASICプログラム領域を最大限確保する
USRUSR(アドレス[,入力文字列])USR(A)指定したアドレスのマシン語を実行する
POKEPOKE アドレス,数式[,...]POKE $A000,$C9指定したアドレスに値を書き込む
[戻る]
ステートメント:I/O関連
表記凡例使用例説明
INP@INP@ ポート(0〜255),数値変数INP@ 0,A指定ポートから数値を受信する
OUT@OUT@ ポート(0〜255),数式OUT@ 128,128指定ポートに数値を送信する
[戻る]
ステートメント:カセットテープ関連
表記凡例使用例説明
REWREWREWカセットテープを巻き戻す
FASTFASTFASTカセットテープを早送りする
[戻る]
ステートメント:カラー関連
表記凡例使用例説明
CCOLORCCOLOR[@] [カラーコード][,バックグラウンドカラーコード]CCOLOR@ 7,0文字色を指定する
「@」を付けた場合はテキストにプライオリティを設定する
COLORCOLOR[@] [カラーコード][,O出力ページモード][,Wオーバーレイモード]COLOR 7,0,1グラフィック色を指定する
「@」を付けた場合はグラフィックにプライオリティを設定する
[戻る]
ステートメント:画面関連
表記凡例使用例説明
CONSOLECONSOLE [Sスクロール開始行][,[スクロール終了行]][C桁数][{R | N}][{GH | GN}]CONSOLE 0,20テキスト画面を設定する(パラメータは単独か「,」で区切って指定可能)
S行数:0〜24
C桁数:40/80(指定時はグラフィック画面OFF)
R:画面をリバース表示(MZ-1Z002:カラーディスプレイでは無効)
N:画面をノーマル表示(MZ-1Z002:カラーディスプレイでは無効)
GH:ハイレゾモード(640x200)
GN:ノーマルレゾモード(320x200)
(MZ-1Z002)
P:白黒ディスプレイへのグラフィック出力禁止
M:白黒ディスプレイへのグラフィック出力許可
CHANGECHANGECHANGE英字入力の大文字・小文字を切り替える
CURSORCURSOR X,YCURSOR 10,10表示位置を指定する(X:0〜39/79,Y:0〜24)
PRINT{PRINT | ?} [式[{, | ;}[式2[,...]]]]PRINT "HELLO,WORLD"画面上に表示する
GRAPH (MZ-1Z001)GRAPH [I番号][O番号][C][F]GRAPH I1,O123,Cグラフィック画面を設定する(パラメータは単独か「,」で区切って最大6個まで指定可能)
I;入力グラフィック画面(1:MZ-1R01/MZ-1R02|2〜3:MZ-1R02)
O;出力グラフィック画面(0:出力なし|1:MZ-1R01/MZ-1R02|2〜3:MZ-1R02)
Oは順不同で複数指定可能(ex.「O123」「O21」)
(MZ-1Z001)
C:入力グラフィック画面をクリアする
F:入力グラフィック画面をセット(ドットで埋める)する
(MZ-1Z002)
Cn(1〜7):指定したグラフィックエリアをクリアする(数値指定なしの場合はCOLORで設定された入力モードに対してクリア)
Fn(1〜7):指定したグラフィックエリアをセットする(数値指定なしの場合はCOLORで設定された入力モードに対してセット)
LINELINE [カラーコード[,オーバーレイモード]] X1,Y1,X2,Y2[,...,Xn,Yn]LINE 0,0,100,100直線を描画する
(MZ-1Z002では色指定可能)
BLINEBLINE [カラーコード[,オーバーレイモード]] X1,Y1,X2,Y2[,...,Xn,Yn]BLINE 0,0,100,100直線を消去する
(MZ-1Z002では色指定可能)
PAINT (MZ-1Z002)PAINT [カラーコード] X,Y[,N1[,N2,...]]PAINT 0,0,7画面を塗りつぶす
Nn:境界色指定
BOX (MZ-1Z002)BOX [カラーコード[,オーバーレイモード]] X1,Y1,X2,Y2[,Fn]BOX 0,0,100,100四角形を描画する
Fn:塗りつぶし色指定(nを省略した場合はCOLOR指定に従う)
CIRCLE (MZ-1Z002)CIRCLE [カラーコード[,オーバーレイモード]] X1,Y1,半径[,[比率][,[始点][,[終点][,0]]CIRCLE 100,100,50円を描画する
比率は0以上の数値(省略時は現在の画面モードに従って最適値を選択)
(320x200→0.82,640x200→0.41)
始点、終点はラジアン角指定
「0」を付けると中心点から始点・終点に線分を描写(扇)
PATTERNPATTERN [カラーコード[,オーバーレイモード]] 縦方向ドット数,文字列式[,...]PATTERN 1,"A"グラフィック画面に指定のドットパターンを表示する
(MZ-1Z002では色指定可能)
POSITIONPOSITION X,YPOSITION 10,10PATTERNの表示位置を指定する
SETSET [カラーコード[,オーバーレイモード]] X,YSET 10,10指定した座標にドットを表示する(X=0〜16383,Y=0〜16383)
(MZ-1Z002では色指定可能)
RESETRESET [カラーコード[,オーバーレイモード]] X,YRESET 10,10指定した座標のドットを消去する
(MZ-1Z002では色指定可能)
[戻る]
ステートメント:サウンド関連
表記凡例使用例説明
TEMPOTEMPO 数値(1〜7)TEMPO 4MUSICのテンポを定義する(7以上を指定してもエラーにはならないが7と変わらない)
MUSICMUSIC [文字列]MUSIC M$MMLで指定した音楽を演奏する
[戻る]
ステートメント:プリンタ関連
表記凡例使用例説明
PAGE /PPAGE ページ幅(1〜255)PAGE 40プリンタのページ幅を指定する
PRINT /P{PRINT | ?} /P [式[{, | ;}[式2[,...]]]]PRINT /P A$プリンタに印字する(書式はPRINTと同じだがコントロールコードの動作は一部異なる)
IMAGE /PIMAGE /P 文字列式IMAGE /P A$イメージデータをプリンタに印字する
COPY /PCOPY /P n(1〜8)COPY /P 1画面内容を印字する
[戻る]
文字列関数 ※変数型
表記凡例使用例説明
ASCASC(文字列式)ASC("TEST")文字列先頭のキャラクタコードを返す
VALVAL(文字列式)VAL("123")文字列を数値に変換する
CHR$CHR$(数式[,...])CHR$(41)指定したキャラクタコードの文字を返す
CHARACTER$CHARACTER$(X,Y)CHARACTER$(10,10)指定した座標にある文字のキャラクタコードを返す
STR$STR$(数式)STR$(A)数値を文字列に変換する
TABTAB(数式)TAB(A)指定した長さのタブを返す(出力文字式内でのみ使用で始点は行頭)
HEX$HEX$(数式)HEX$(255)10進数を16進数文字列に変換する
LENLEN(文字列式)LEN(A$)文字列の文字数を返す
LEFT$LEFT$(文字列式,式)LEFT$(A$,2)文字列の左側から式で指定した桁数の文字列を返す
MID$MID$(文字列式,式1[,式2])MID$(A$,2,1)文字列の式1で指定した位置から式2で指定した桁数の文字列を返す
RIGHT$RIGHT$(文字列式,式)RIGHT$(A$,2)文字列の右側から式で指定した桁数の文字列を返す
SPACE$SPACE$(式)SPACE$(2)式で指定した桁数の空白を返す
STRING$STRING$(文字列式,式)STRING$(2)文字列式の先頭文字を式で指定した桁数分の文字列として返す
[戻る]
数値関数 ※演算子
表記凡例使用例説明
INTINT(数式)INT(A)数式の整数値を返す(数式の値を超えない整数値)
SGNSGN(数式)SGN(A)符号を返す
数式>0: 1
数式=0: 0
数式<0:-1
RNDRND(数式)RND(A)0以上1未満の乱数を返す
 1 : 次の乱数を発生する(省略した場合も同様)
-1 : 乱数係数を変更する
 0 : 同じ乱数を生成する
[戻る]
数学関数
表記凡例使用例説明
πππ円周率(3.1415927)を返す(「π」は[GRPH]→[<]で入力)
ABSABS(数式)ABS(-1000)絶対値を返す
SINSIN(数式)SIN(3.14)正弦(サイン)の値を返す
COSCOS(数式)COS(3.14)余弦(コサイン)の値を返す
TANTAN(数式)TAN(3.14)正接(タンジェント)の値を返す
ATNATN(数式)ATN(3.14)逆正接(アークタンジェント)の値を返す
EXPEXP(数式)EXP(1)自然対数の低(e)に対する指数関数の値を返す
LNLN(数式)LN(1)自然対数の値を返す
LOGLOG(数式)LOG(1)常用対数の値を返す
SQRSQR(数式)SQR(2)平方根の値を返す
[戻る]
その他関数
表記凡例使用例説明
TI$TI$TI$
TI$="012345"
起動時からの経過時間を返す(hhmmss)
時間を定義する
POINTPOINT(X,Y)POINT(100,100)指定座標のドットの状態を返す
CSRHCSRHCSRH現在のカーソル位置(X)を返す
CSRVCSRVCSRV現在のカーソル位置(Y)を返す
POSHPOSHPOSH現在のグラフィックポジション(X)を返す
POSVPOSVPOSV現在のグラフィックポジション(Y)を返す
PEEKPEEK(アドレス)PEEK($D000)指定したアドレスの値を返す
SIZESIZESIZEフリーエリアの値を返す
[戻る]

※ モニタ
アドレスは4文字の16進数、データは2文字の16進数で指定
省略可能なアドレスを省略した場合は直前の指定アドレスとなる

「MON」からBASICに戻るときは
J→$12A0:BASICテキストエリアをクリアして復帰
J→$1300:BASICテキストエリアをクリアしないで復帰

Dダンプリスト
Mメモリセット
J実行(IPL)
S開始〜終了で指定したアドレスの値を実行アドレスを指定してファイルにセーブ
Lファイルをロード
Vファイルを確認

[戻る]

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

CHR$関数(Microsoft系と違うので注意)で特殊機能を使用可能
・1:カーソルを下へ移動
・2:カーソルを上へ移動
・3:カーソルを右へ移動
・4:カーソルを左へ移動
・5:カーソルをHOME(左上)へ移動
・6:カーソルをHOME(左上)へ移動して画面をクリア(CLS相当がないため、これを利用する)
・7:[INSTDEL]キーのDELETE相当
・8:[INSTDEL]キーのINSERT相当
・9:[GRPH]キー相当
・10:[SFTLOCK]キー相当
・11:[カナ]キー相当
・14:通常入力に戻す
・15:カナ文字モードを解除

PRINT/Pによるプリンタへの出力時は一部異なる
・5:フォームフィード
・6:動作モードの初期化
・16:行間にスペースを空けるモード
・17:行間圧縮モード
・18:倍文字モード
・19:倍文字モード解除
・20:縮小文字モード
・21:縮小文字モード解除

[戻る]

※ カラーコード

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

グラフィック出力ページ指定はページ1がBlue、2がRed、3がGreenとなる
オーバーレイモード指定で0は指定色で上書き、1は指定色と元の色の論理和を取る

指定BlueRedGreen
1OXX
2XOX
3OOX
4XXO
5OXO
6XOO
7OOO

[戻る]

※ POINT

返値G1G2G3
0XXX
1OXX
2XOX
3OOX
4XXO
5OXO
6XOO
7OOO

MZ-1R01(PAGE1)の場合

返値G1
0,2,4,6X
1,3,5,7O

MZ-1R01+MZ-1R02(PAGE1,2)の場合

返値G1G2
0,4XX
1,5OX
2,6XO
3,7OO

[戻る]

※ COPY /P
1 : テキスト画面
2〜8 : グラフィック画面

引数G1G2G3
2OXX
3XOX
4OOX
5XXO
6OXO
7XOO
8OOO

[戻る]

※ MML
MMLを「,」で続けておくと1つ目のMMLの演奏が終わってから次のMMLを演奏する

音階指定:CDEFGAB
休符:「R」

音長指定は以下の通り

032分
116分
2付点16分
38分
4付点8分
54分
6付点4分
72分
8付点2分
916分

オクターブ指定
音階の前に「-」で1オクターブ下げ
音階の前に「+」で1オクターブ上げ

半音指定
音階の前に「#」で半音上げ

[戻る]

※ 定数型・変数型
±0.27105055E-19〜±0.92233720E+19までが指定できる範囲である

A$ : 文字列型(A$="TEST")
$  : 16進数形式($FFFF)

[戻る]

※ 演算子
+   : 加算・結合(A+B、A$+B$)
-   : 減算(A-B)
*   : 乗算(A*B)
/   : 除算(A/B)
^   : べき算(A^B)
=   : 等号・代入(A=3、A=B+C)
> < : 不等号・比較(A>3、A<=2)

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
番号エラー意味
1Syntaxコマンド、またはステートメントの書き方が間違っている
2Overflow値が許容範囲を超えた
3Illegal data異常なデータを指定した
4Data type変数または定数の型が合わない
5String length文字列の文字数が255を超えた
6Memory capacityメモリの領域を超えた
7Array definition配列の定義が異常
8Line length行の長さが異常
10GOSUB nestingGOSUBの入れ子が15を超えた
11FOR-NEXTFORの入れ子が15を超えた
12DEF FN nestingDEF FNの入れ子が6を超えた
13NEXTNEXTに対応したFORがない
14RETURNRETURNに対応したGOSUBがない
15Undefined Function未定義のユーザ定義関数を呼び出そうとした
16Undefined line number未定義の行番号を指定した
17Can't continueCONTによるプログラムの再開ができない
18Memory protectionメモリが保護されている
19Instruction modeダイレクトステートメントが実行できない
24READREADに対応したDATAがない
43Already openファイルが既にオープンされている
63Out of fileファイルの読込時ファイル長を超えた
65Printer in not readyプリンタが接続されていない
66Printer hardwareプリンタのハードウェア異常
67Out of paperプリンタ用紙切れ
70Check sumCMT読込時にチェックサムの異常が発生

[TOPに戻る]