プログラミング言語 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

画面へ出力します。省略形 ? を使用できます。

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 上で動かす事ができます。

 Applesoft BASIC in JavaScript

IchigoJam

Ichigo=15=イチゴ。IchigoJam 本体は 1500 円~2000 円です。
IchigoJam BASIC が動作します。

 こどもパソコン IchigoJam
🎈 イチゴジャム レシピ

IchigoJam BASIC RPi

Raspberry Pi で動作する IchigoJam BASIC です。
IchigoJam と互換性を保っていますが、ハードの違いによる仕様の違いがあります。

 Downloads | Raspberry Pi - 一覧に「IchigoJam RPi」があります
 IchigoJam BASIC RPi/RPi+

IchigoJam Web

IchigoJam BASIC は Web 上でも動かす事ができます。

 IchigoJam web by WebAssembly

JtyOne Online ZX81 Emulator

 JtyOne Online ZX81 Emulator

ZX81 の BASIC を Web 上で動かす事ができます。

KM-BASIC web

KM-BASIC を Web 上で動かす事ができます。
 MachiKania に採用されている BASIC ですが、一部仕様が異なります。

 KM-BASIC web v0.6

MachiKania

KM-BASIC が動作します。キットを入手し半田付けする必要があります。

 MachiKania

MSXPen

MSX-BASIC のコードエディタ。実行は  WebMSX が使われています。
BASIC 以外にアセンブラも記載できます。

 MSXPen

ORANGE pico

ORANGE BASIC が動作します。製品は何種類は存在します。
半田付け・完成品があります。

 ORANGE pico

Pi STARTER

SmileBASIC を Raspberry Pi で使用できます。
SmileBASIC は  プチコン シリーズで採用されている BASIC です。

 Pi STARTER

Replit (旧 Repi.lt)

Web 上で様々なプログラミング言語の編集・実行ができます。
その一つになんと BASIC と QBasic が対応しています。
BASIC を選択した時に動作する pg-basic は Replit 専用となっているようで、
独自仕様の部分もあります。

 Repilt
 Classic Basic on Replit | Replit Docs

Small Basic Online

マイクロソフトによる提供。Small Basic を Web 上で動かす事ができます。

 Small Basic

WebMSX

MSX-BASIC を Web 上で動かす事ができます。

 WebMSX (MSX2+ Japanese)

wwwBASIC

HTML にライブラリを読み込んで実行できるようになっています。
IBM PC 向けの MS BASIC 対応に独自仕様が加わっています。
日本語は非対応です。

 google/wwwbasic | GitHub

プチコン

SmaleBASIC が使えます。
ニンテンドーDSi・ニンテンドー3DS、Wii U、Nintendo Switch と
プチコンシリーズが販売されています。

 SmaleBASIC


マイコンBASICマガジン

電子工作マガジン でコーナーとして復活し、その後別冊付録化しました。
電子工作マガジン は季刊誌で 3・6・9・12月19日 発刊です。

 電子工作マガジン | 電波新聞社
 電子工作マガジン