戻る
SP-5030
mz80K/C/K2/K2E/1200 : シャープ (SHARP)

SP-5030

SP-5030はmz80K/C/K2/K2E/1200用SHARP製BASICである。
(mz700/800/1500でも使用可能だが、キーボード配列の違いなどに注意が必要)

全ての予約語は大文字しか受け付けないことに注意。
(もっとも、80Kシリーズでの小文字は海外版でないと存在しないが…)

SP-5030 簡易リファレンス
コマンド
表記凡例使用例説明
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"カセットテープのプログラムを照合する(ファイル名を省略した場合は最初に見つかったプログラムを照合する)
BYEBYEBYEモニタに制御を戻す
[戻る]
ステートメント:プログラム制御
表記凡例使用例説明
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 ["ファイル名"]WOPEN "TEST"ファイルを書込モードでオープンする
PRINT /T{PRINT | ?} /T [式[{, | ;}[式2[,...]]]]PRINT /T A$ファイルに書き込む
ROPENROPEN ["ファイル名"]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関連
表記凡例使用例説明
INPINP #ポート(0〜255),数値変数INP # 0,A指定ポートから数値を受信する
OUTOUT #ポート(0〜255),数式OUT #128,128指定ポートに数値を送信する
[戻る]
ステートメント:画面関連
表記凡例使用例説明
CURSORCURSOR X,YCURSOR 10,10表示位置を指定する(X:0〜39,Y:0〜24)
PRINT{PRINT | ?} [式[{, | ;}[式2[,...]]]]PRINT "HELLO,WORLD"画面上に表示する
SETSET X,YSET 10,10指定した座標にドットを表示する(X=0〜79,Y=0〜40)
RESETRESET X,YRESET 10,10指定した座標のドットを消去する
[戻る]
ステートメント:サウンド関連
表記凡例使用例説明
TEMPOTEMPO 数値(1〜7)TEMPO 4MUSICのテンポを定義する(7以上を指定してもエラーにはならないが7と変わらない)
MUSICMUSIC [文字列]MUSIC M$MMLで指定した音楽を演奏する
[戻る]
ステートメント:プリンタ関連
表記凡例使用例説明
PRINT /P{PRINT | ?} /P [式[{, | ;}[式2[,...]]]]PRINT /P A$プリンタに印字する(書式はPRINTと同じだがコントロールコードの動作は一部異なる)
[戻る]
文字列関数 ※変数型
表記凡例使用例説明
ASCASC(文字列式)ASC("TEST")文字列先頭のキャラクタコードを返す
VALVAL(文字列式)VAL("123")文字列を数値に変換する
CHR$CHR$(数式[,...])CHR$(41)指定したキャラクタコードの文字を返す
STR$STR$(数式)STR$(A)数値を文字列に変換する
LENLEN(文字列式)LEN(A$)文字列の文字数を返す
LEFT$LEFT$(文字列式,式)LEFT$(A$,2)文字列の左側から式で指定した桁数の文字列を返す
MID$MID$(文字列式,式1[,式2])MID$(A$,2,1)文字列の式1で指定した位置から式2で指定した桁数の文字列を返す
RIGHT$RIGHT$(文字列式,式)RIGHT$(A$,2)文字列の右側から式で指定した桁数の文字列を返す
TABTAB(数式)TAB(A)指定した長さのタブを返す(出力文字式内でのみ使用で始点は行頭)
SPCSPC(数式)SPC(A)指定した長さの空白を返す(出力文字式内でのみ使用で始点は行頭)
[戻る]
数値関数 ※演算子
表記凡例使用例説明
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)
時間を定義する
PEEKPEEK(アドレス)PEEK($D000)指定したアドレスの値を返す
SIZESIZESIZEフリーエリアの値を返す
[戻る]

※ モニタ

LOAD[ファイル名]カセットテープから機械語ファイル(OBJ)をロードして、セーブ時に設定された実行アドレスがある場合はそのまま実行し、なければモニタに戻る
GOTO$アドレス4桁で指定した16進数アドレスの機械語プログラムを実行(必ず4桁で指定)
SGキークリック音をON (POKE$119D,0)
SSキークリック音をOFF(POKE$119D,1)
FD外付FDDのROMを実行

「BYE」からBASICに戻るときは
GOTO$1200:BASICテキストエリアをクリアして復帰
GOTO$124D:BASICテキストエリアをクリアしないで復帰
(ただし、直前に機械語プログラムを実行していてBASICエリアを破壊していた場合は復帰不可能な場合あり)

[戻る]

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

文字列内に一部特殊文字を使用可能
(「"」を入力した行は閉じるまでカーソル及び[HOME/CLR]キーを押下すると以下の文字が入力される)
:カーソルを下へ移動
:カーソルを上へ移動
:カーソルを右へ移動
:カーソルを左へ移動
:カーソルをHOME(左上)へ移動
:カーソルをHOME(左上)へ移動して画面をクリア(CLS相当がないため、これを利用する)

[戻る]

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

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

音長指定は以下の通り

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

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

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

※BEEPの代わりにUSR($003E)を実行すると880MHzの音が鳴る
(BASIC起動時やキークリックとして鳴る音)

[戻る]

※ 定数型・変数型
±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)

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
エラー意味
SYNTAXコマンド、またはステートメントの書き方が間違っている
MEMORYメモリの領域を超えた
DATA値が許容範囲を超えた
MISMATCH変数または定数の型が合わない
16FORFORの入れ子が16以上となった
16GOSUBGOSUBの入れ子が16以上となった
6FNDEF FNの入れ子が6以上となった
CONTCONTによるプログラムの再開ができない
FILEOPENによる指定がされていないファイルを使用した
OVERPLAY48Kに拡張していないシステムで拡張領域にアクセスした

[TOPに戻る]