BASIC
プログラミング言語 BASIC(ベーシック)についてまとめています。
目次
BASIC の種類
BASIC は当初行番号が付いた仕様でしたが、
現在は行番号のない BASIC が多くなってきています。
行番号のある BASIC
プログラムをする場合は行番号からはじめます。RUN
で実行します。入力したプログラムの確認は LIST
です。
10 INPUT A
20 INPUT B
30 C=A+B
40 PRINT C
50 END
行番号を付けない場合は、すぐに実行されます。(ダイレクトモード)
PRINT 5+3
行番号のない BASIC
行番号の代わりにラベルを使用します。
ラベルの付け方は BASIC によって異なります。
行番号にも対応し、行番号をラベル同等に扱う BASIC もあります。
演算子
算術演算子
演算子 | 機能 |
---|---|
= | 代入 |
+ | 加算 |
- | 減算 |
* | 掛算(✕) |
/ | 割算(÷) |
^ | 乗 |
比較演算子
演算子 | 機能 |
---|---|
= | 等しい |
<> | 異なる |
< | より小さい(未満) |
<= | 以下 |
> | より大きい |
>= | 以上 |
BASIC により =>
や =<
を使用できます。
また最近は他の言語に合わせた ==
や !=
を使用できる BASIC もあります。
命令(コマンド)
BASIC によって違いがあります。
比較的共通している命令(コマンド)を記載しています。
AUTO
行番号を自動で表示させます。
行番号付の BASIC で採用されています。
BEEP
ビーブ音を発生します。
BASIC により値を入れて音階・長さを設定できます。
CALL
マシン語を実行します。
CIRCLE
円を描きます。CIRCLE(中心座標),半径,色
です。
BASIC によって更にオプションが付きます。
CIRCLE(200,200),50,1
CLEAR
変数を初期化します。
CLS
画面をクリアします。 BASIC により値を入れる事でクリアする画面を指定できます。
COLOR
色を変更します。
COLOR 7,0,0
CONT
STOP
で中断した行または次のコマンドから実行を再開します。
DATA
値を入れます。READ
で読み込みます。
DATA 5,7,10,1
DEF
変数の型を定義します。
DIM
型の定義に使います。
DIM 変数(数)
で配列の定義になります。
DIM B(10)
DIM FN変数(値) = コマンド
として、関数の定義ができる BASIC があります。
DRAW
文字列に合わせて線画します。
MS-BASIC で採用されています。(MSX-BASIC を含む)
DRAW "BD2BL2D1R1U1L1Br2D1L1U1"
END
プログラムを終了します。
FIX
小数を切り捨てた値を返します。FIX(5.5)
なら 5、FIX(-5.5)
なら -5 になります。
FOR ~ NEXT
変数の範囲内でループします。
NEXT の変数は省略できる場合、省略が必須な場合があります。
FOR I=1 TO 10
PRINT I
NEXT I
STEP を付けると増分が変化します。
FOR J=1 TO 99 STEP 2
PRINT J
NEXT
GET
範囲の画像を変数に入れます。
MSX2 以降は COPY
で実現可能です。
GET (100,100)-(150,150),D1%
GOSUB ~ RETURN
GOSUB
はサブルーチンへ飛びます。RETURN
で GOSUB の次へ戻ります。
GOSUB 100
RETURN
GOTO
行番号へ飛びます。
BASIC によりラベルへ飛びます。
GOTO 100
IF ~ GOTO
条件が正しい場合に GOTO
の行番号へ飛びます。
IF I=1 GOTO 100
IF ~ THEN
条件が正しい場合に THEN
以降を実行します。
IF I=1 THEN A=1
条件が異なる場合に ELSE
以降を実行できる BASIC が多いです。
IF I=1 THEN A=1 ELSE A=2
INKEY$
押しているキーを得ます。
I$=INKEY$
INT
値から少ないうち最も近い整数を返します。INT(5.5)
なら 5、INT(-5.5)
なら -6 になります。
KEY
ファンクションキーの設定を変更します。
KEY OFF
で画面下のファンクションキー表示を非表示に、
KEY ON
で表示します。
LET
変数へ代入します。 LET
は省略できる BASIC が多いです。
LET B=A+5
LINE
線を描きます。(開始座標)-(終了座標),色,フラグ
で、フラグ は次が使えます。
- B = 四角を描きます。
- BF = 塗りつぶした四角を描きます。
LINE(100,100)-(150,150),2,BF
LIST
プログラムを表示します。行番号のある BASIC で有効です。
LIST
でプログラムをすべて表示します。LIST 100-200
で 100~200 を表示します。
LOAD
プログラムを読み込みます。
カセットからの読み込みとして CLOAD
、
マシン語の読み込みとして BLOAD
が存在する BASIC があります。
LOCATE
カーソル座標を移動じます。BASIC により CURSOR
の場合があります。
LOCATE 15,10
MOD
割り算の余りを返します。/ などと同等なので関数扱いが一般的です。
PRINT 5 MOD 3
NEW
メモリにあるプログラムを消去します。
ON ~ GOSUB
変数の値に応じてサブルーチンへ飛びます。RETURN
で ON ~ GOSUB の続きを実行します。
次は I が 1・2・3 の場合にサブルーチン 100・200・300 へ飛びます。
ON I GOSUB 100,200,300
ON ~ GOTO
変数の値に応じて行番号へ飛びます。
次は I が 1・2・3 の場合に 100・200・300 へ飛びます。
ON I GOTO 100,200,300
PAINT
塗りつぶします。
PAINT(100,100),5
PEEK
メモリから値を得ます。
番地は BASIC によって異なります。
P=PEEK(&H410)
PRESET
背景色で点を描きます。
色コードを指定できる場合がありますが、PSET
と変わらなくなります。
PRESET(100,100)
PSET
文字色で点を描きます。
色コードを指定できます。
PSET(100,100),5
PLAY
音を再生します。多くの場合 MML で記載します。
PLAY "CDEFG"
POKE
メモリへ値を入れます。
番地は BASIC によって異なります。
POKE 106,0
画面へ出力します。省略形 ?
を使用できます。
PRINT 1
PRINT "Hello!";
PUT
GET
で取得した画像データを貼り付けます。
MSX2 以降は COPY
で実現可能です。
PUT(100,100),D1%
READ
DATA
から値を得て変数に入れます。
READ R
RESTORE
DATA
の読み込み位置を先頭に戻します。
REM
何もしません、省略形 '
を使用できます。
REM BASIC Program
RENUM
行番号を指定番号から揃え直します。
RENUM
だと 10 から 10 増加RENUM 100
だと 100 から 10 増加RENUM 1000,100
だと 1000 から 100 増加
RND
乱数を発生させます。
BASIC により 0~1 を発生させる場合と 最大数 を指定する場合があります。
0~1 の場合は *(最大数-1)
で乱数の範囲を指定します。
BASIC により形式が異なります。
R=INT(RND()*100)
RUN
プログラムを先頭から実行します。
SAVE
プログラムを保存します。
カセットテープへの保存として CSAVE
、
マシン語保存として BSAVE
などが存在する BASIC があります。
SCREEN
スクリーンモードを変更します。
スクリーンモードは BASIC によって異なります。
SCREEN 2
STOP
実行を中断します。
多くの場合、CONT
で次の命令から再開します。
SOUND
音を出します。
サウンドチップによって仕様が異なります。
SOUND 20000,1
STRING$
指定キャラクターコードを指定文字数分出力します。
STRING$(21,32)
USR
マシン語を実行します。
値で開始番地を指定する場合、引数を受け渡す場合があります。
また DEF USR=開始番地
とする BASIC があります。
WHILE ~ WEND
条件を満たしている間ループします。
比較的新しい BASIC で使用できます。
WHILE MAX>100
WEND
WIDTH
画面横幅を変更します。
BASIC によって縦幅も指定できる場合があります。
WIDTH 40
BASIC を扱えるプロジェクト
現在も入手が容易なものを挙げています。
商品販売が終わっていて、中古入手必須なものは除きます。
Applesoft BASIC in JavaScript
Apple Ⅱ シリーズで採用されていた Applesoft BASIC を Web 上で動かす事ができます。
IchigoJam
Ichigo=15=イチゴ。IchigoJam 本体は 1500 円~2000 円です。
IchigoJam BASIC が動作します。
IchigoJam BASIC RPi
Raspberry Pi で動作する IchigoJam BASIC です。
IchigoJam と互換性を保っていますが、ハードの違いによる仕様の違いがあります。
Downloads | Raspberry Pi - 一覧に「IchigoJam RPi」があります
IchigoJam BASIC RPi/RPi+
IchigoJam Web
IchigoJam BASIC は Web 上でも動かす事ができます。
JtyOne Online ZX81 Emulator
ZX81 の BASIC を Web 上で動かす事ができます。
KM-BASIC web
KM-BASIC を Web 上で動かす事ができます。
MachiKania に採用されている BASIC ですが、一部仕様が異なります。
MachiKania
KM-BASIC が動作します。キットを入手し半田付けする必要があります。
MSXPen
MSX-BASIC のコードエディタ。実行は WebMSX が使われています。
BASIC 以外にアセンブラも記載できます。
ORANGE pico
ORANGE BASIC が動作します。製品は何種類は存在します。
半田付け・完成品があります。
Pi STARTER
SmileBASIC を Raspberry Pi で使用できます。
SmileBASIC は プチコン シリーズで採用されている BASIC です。
Replit (旧 Repi.lt)
Web 上で様々なプログラミング言語の編集・実行ができます。
その一つになんと BASIC と QBasic が対応しています。
BASIC を選択した時に動作する pg-basic は Replit 専用となっているようで、
独自仕様の部分もあります。
Repilt
Classic Basic on Replit | Replit Docs
Small Basic Online
マイクロソフトによる提供。Small Basic を Web 上で動かす事ができます。
WebMSX
MSX-BASIC を Web 上で動かす事ができます。
wwwBASIC
HTML にライブラリを読み込んで実行できるようになっています。
IBM PC 向けの MS BASIC 対応に独自仕様が加わっています。
日本語は非対応です。
プチコン
SmaleBASIC が使えます。
ニンテンドーDSi・ニンテンドー3DS、Wii U、Nintendo Switch と
プチコンシリーズが販売されています。
マイコンBASICマガジン
電子工作マガジン でコーナーとして復活し、その後別冊付録化しました。
電子工作マガジン は季刊誌で 3・6・9・12月19日 発刊です。