戻る
BASIC-I
m5 (M5) : ソード/タカラ (SORD/TAKARA)

BASIC-I

BASIC-IはSORDが開発したSORD m5 (TAKARA M5)用のBASICである。
BASIC-Iは入門用としてm5に標準装備されていた。
他に別売でBASIC-G(ゲーム用)、BASIC-F(計算用)が用意されていた。

今回はBASIC-Iを取り扱うこととする。

BASIC-I 簡易リファレンス
コマンド
表記凡例使用例説明
AUTOAUTO 行番号[,増分]AUTO 100,5先頭に自動的に行番号を発生させる(増分を省略した場合は10)
DELDEL 行番号[,行番号2]DEL 100
DEL 100,200
指定した行番号を削除する
指定した範囲の行番号を削除する
LISTLIST [#2,][行番号[,行番号2]]LIST
LIST 100,200
メモリ上のプログラムを表示する
指定した範囲の行番号を表示する
「#2,」を付けた場合はプリンタへ印字する
NEWNEWNEWプログラムを全て消去し、変数を初期化する
CONTCONTCONTSTOPやBREAKキーで終了したプログラムの実行を再開する
RUNRUN [行番号]RUN 100指定した行番号からプログラムを実行する(行番号を省略した場合は先頭から実行する)
SAVESAVE "ファイル名"[,開始アドレス,終了アドレス,モード]SAVE "test"カセットテープにプログラム(ファイル名は9文字まで)を保存する
モード
0 : メインRAM
1 : VRAM
TAPETAPE ["ファイル名"]TAPE "test"カセットテープからプログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む)
CHAINCHAIN ["ファイル名"]CHAIN "test"プログラム実行中にカセットテープからプログラムを読み込む(ファイル名を省略した場合は最初に見つかったプログラムを読み込む)
VERIFYVERIFY ["ファイル名"]VERIFY "test"カセットテープのプログラムを照合する(ファイル名を省略した場合は最初に見つかったプログラムを照合する)
[戻る]
ステートメント:プログラム制御
表記凡例使用例説明
$$ラベル$TEST行番号の代わりに使用できるラベルを定義する(使用時は「$」を含めて記述する)
ENDENDENDプログラムを終了する
STOPSTOPSTOPプログラムを一時停止する
REMREMREM TEST注釈を入れる(実行には無関係)
FOR...TO...STEP〜NEXTFOR 変数=開始値 TO 終了値 [STEP 増分]〜NEXT [変数][,変数2][,...]FOR I=0 TO 10 STEP 2〜NEXT IFORからNEXTまでの処理を繰り返す
GOTOGOTO {行番号 | ラベル}GOTO 1000指定した{行番号 | ラベル}から実行する
GOSUBGOSUB {行番号 | ラベル}GOSUB 1000サブルーチンを呼び出す
RETURNRETURN [{行番号 | ラベル}]RETURNサブルーチンから復帰する
IF...THEN...ELSEIF 論理式 THEN {文 | {行番号 | ラベル}} ELSE {文 | {行番号 | ラベル}}IF A=0 THEN 10 ELSE PRINT A論理式の条件判断をする
[戻る]
ステートメント:変数関連
表記凡例使用例説明
INPUTINPUT [文字列{; | , }]変数[,変数2][,...]INPUT "X=";Xキーボードから入力した値を変数に代入する
LETLET 変数=式LET A=1変数に値を代入する(LETは省略できる)
DATADATA 定数[,定数2][,...]DATA "TEST",765READで読み込むデータを定義する
READREAD 変数[,変数2][,...]READ A$,BDATAで定義したデータを変数に代入する
RESTORERESTORE [{行番号 | ラベル}]RESTORE 1000READで読み込むDATAの先頭行を設定する
DIMDIM 変数名(最大値[,最大値2][,...])[,...]DIM A(100,10),B$(100)配列変数の定義をする
RANDOMIZERANDOMIZERANDOMIZE乱数系列を設定する
[戻る]
ステートメント:マシン語関連
表記凡例使用例説明
CALLCALL 変数CALL A指定したアドレスのマシン語を実行する
POKEPOKE アドレス,数式POKE &1000,&C9指定したアドレスに値を書き込む
VPOKEVPOKE アドレス,数式VPOKE &3000,&FF指定したVRAMアドレスに値を書き込む
OUTOUT ポート,数式OUT 0,255指定ポートにデータを送信する
[戻る]
ステートメント:画面関連
表記凡例使用例説明
CLSCLSCLS画面を消去する
PRINTPRINT [#2,][式[{, | ;}[式2...]]]PRINT "HELLO,WORLD"画面上に表示する
「#2,」を付けた場合はプリンタに印字する
VIEWVIEW X1,Y1,X2,Y2VIEW 0,0,31,23画面の表示領域を設定する
LOCLOC スプライト番号 TO X,YLOC 0 TO 0,0スプライトを表示する
スプライト番号 : 0〜31
X,Y : -32768〜32767
STCHRSTCHR パターン文字列 TO 文字コード,モードSTCHR A$ TO 0,1キャラクタパターンや色を割り当てる
GIIモード以外では使用不可
SCODSCOD スプライト番号,文字コードSCOD 0,255スプライトに図形コード(0〜255)を割り当てる
SCOLSCOL スプライト番号,カラーコードSCOD 0,10スプライトのカラーコードを指定する
MAGMAG サイズ(0〜3)MAG 0スプライトのサイズを指定する
0 : 8×8
1 : 16×16
2 : 8×8 (拡大)
3 : 16×16 (拡大)
[戻る]
文字列関数 ※変数型
表記凡例使用例説明
ASCIIASCII(文字列式)ASCII("TEST")文字列先頭のキャラクタコードを返す
VALVAL(文字列式)VAL("123")文字列を数値に変換する
CHR$CHR$(数式)CHR$(41)指定したキャラクタコードの文字を返す
NUM$NUM$(数式)NUM$(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)文字列の右側から式で指定した桁数の文字列を返す
[戻る]
数値関数 ※演算子
表記凡例使用例説明
SGNSGN(数式)SGN(A)数式の符号を返す
RNDRND(数式)RND(A)数式未満の乱数を返す
ABSABS(数式)ABS(-1000)絶対値を返す
[戻る]
その他関数
表記凡例使用例説明
TABTAB(数式)TAB(A)指定した位置まで空白を返す(出力文字式内でのみ使用)
CURSORCURSOR(X,Y)PRINT CURSOR(10,10);"test"表示位置を指定する(出力文字式内でのみ使用)
INKEY$INKEY$INKEY$押されたキーの値を返す
TIMETIMETIME内蔵タイマ(電源ONからの時間:単位s 最大値32768でループ)を返す
INPINP(ポート番号)INP(100)指定したポート番号の入力値を返す
PEEKPEEK(アドレス)PEEK(&1000)指定したアドレスの値を返す
VPEEKVPEEK(アドレス)VPEEK(&3000)指定したVRAMアドレスの値を返す
FREFRE(機能コード)FRE(0)指定したメモリサイズを返す
機能コード
0 : BASICの作業領域
1 : 残りメモリ数
[戻る]

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

モードの変更などもPRINTで行う
SHIFT+CTRLで入力できる特殊文字を使う

キーコード機能表示
&00
A&01 A 
B&02カーソル行の先頭に移動 B 
C&03下スクロール C 
D&04左スクロール C 
E&05上スクロール E 
F&06右スクロール F 
G&07ベルを鳴らす G 
H&08バックスペース H 
I&09タブ I 
J&0A行送り J 
K&0Bホーム K 
L&0C画面消去 L 
M&0D[RETURN] M 
N&0Eカーソルを現在行の次の先頭へ移動 N 
O&0F標準モード O 
P&10挿入モード P 
Q&11マルチカラーモード Q 
R&12GIIモード R 
S&13GIモード S 
T&14テキストモード T 
U&15表画面へ戻る U 
V&16裏画面へ移動 V 
W&17[RETURN] W 
X&18カーソル位置から右端まで削除 X 
Y&19表示画面切替(書込不可) Y 
Z&1A書込画面切替 Z 
(&1B
\&1Cカーソルを右へ移動
)&1Dカーソルを左へ移動
^&1Eカーソルを上へ移動
-&1Fカーソルを下へ移動

[戻る]

※ STCHR
STCHR パターン文字列 TO 文字コード,モード
GIIモード以外で使用するとエラー5になる

パターンはモードによって意味が変わる

モード
1〜3 : ユーザ定義による文字パターン
4〜6 : 色指定
画面を3分割して上から4〜6の順に指定し、そこに表示される指定した文字の色を定義する
色コードは2桁の数字で8個指定し、1つが1行(dot)の色になる
最初の数字は描画色で2番目は背景色になる

0Clear
1Black(背景色のデフォルト)
2Green
3Light Green
4Dark Blue
5Light Blue
6Dark Red
7Cyan
8Red
9Light Red
10Dark Yellow
11Light Yellow
12Dark Green
13Magenta
14Gray(文字色のデフォルト)
15White

[戻る]

※ 定数型・変数型
整数型のみで、-32767〜32767までが指定できる範囲である

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

[戻る]

※ 演算子
+   : 加算・結合(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)

[戻る]

※ エラーメッセージ一覧

エラーメッセージ一覧
番号意味
1NEXTに対応したFORがない
2コマンド、またはステートメントの書き方が間違っている
3サブルーチン内でCLEARを使った、またはRETURNに対応したGOSUBがない
4READに対応したDATAがない
5引数の値が異常
6値が許容範囲を超えた
7メモリが不足している
8未定義の行番号を指定した
9配列の添字が異常
10配列を2重定義しようとした
11除算の分母が0
12ダイレクトステートメントが実行できない
13変数または定数の型が合わない
14スタック(文字列領域)が不足している
15文字式が長すぎる
16未定義の配列を使用した
17ラベルが2重定義されている

[TOPに戻る]