[IchigoJam メニューへ戻る]

ボクにもわかる
IchigoJam BASIC 言語を学ぼう


はじめに

 本ページでは、簡単なBASIC命令について説明します。説明文中の各命令のリンクをクリックすると、ウェブサイト「IchigoJamレシピ」が提供しているIchigoJam BASIC コマンドの説明ファイルにアクセスすることが出来ます。


ダイレクトモードとプログラム

 IchigoJamを含む多くのBASICが、ダイレクトモードというBASICコマンドを直接実行するモードに対応しています。IchigoJamを起動したら、キーボードで「L」「E」「D」「スペース」「1」と「Enter」キーを入力してみてください。「LED」命令は1でLEDを点灯、0で消灯します。
 圧電ブザーをIchigoJamのSOUND端子とGND端子に接続した場合は、「BEEP」命令でブザー音を鳴らすことも出来ます。「B」「E」「E」「P」「Enter」と入力してみてください。

IchigoJam 0.9.8 by @taisukef
OK
LED 1
OK
BEEP
OK

 上図をプログラムにして実行した例を以下に示します。BASICでは最初に数字(行番号)を付与するとプログラムになります。プログラムは「RUN」で実行することが出来ます。

IchigoJam 0.9.8 by @taisukef
OK
10 LED 1
20 BEEP
RUN
OK


テストプログラムを動かしてみよう

 ここではテスト用のプログラムを紹介します。新しいプログラムを入力する時は、「NEW」コマンドで古いプログラムを消してから入力します。
 入力したプログラムは「LIST」命令で確認することが出来ます。

NEW
10 CLS:PRINT "TEST PROGRAM"
20 WAIT 6
30 B=BTN()
40 LOCATE 0,1:PRINT "BUTTON=";B
50 IF B=0 GOTO 20
60 IF A=0 THEN A=1 ELSE A=0
70 LED A
80 BEEP
90 GOTO 20

 上記のプログラムの最初の数字は行番号です。行番号10は、画面を消す「CLS」命令と文字列を表示する「PRINT」命令からなります。文字列は「"」でくくります。次の行番号20は待ち時間です。60で約1秒なので6だと約100ミリ秒の待ち時間です。
 行番号30の「BTN()」は IchigoJam上のボタン状態を取得する命令です。ボタンが押されると1になります。取得した値を変数Bに保存します。行番号40は変数Bの値を表示します。PRINT文の「;」は文字や変数の結合を示します。
 行番号50は「IF」の条件が一致した時(変数Bの値が0の時)に行番号20に戻ります。この条件は行番号30でボタンが押されていない0の状態がBに代入された場合に一致します。
 行番号60は変数Aの値を反転します。反転とは、Aが0の時は1に、1の時は0に変更します。また行番号70はAの値をLEDに出力します(A=0の時に行番号70の「LED」命令でLEDを消灯、A=1の時にLEDを点灯)。
 行番号80でビープ音を鳴らし、行番号90で20行目に移動します。


プログラムを保存する

 IchigoJamの電源を切ると、作成したプログラムが消えてしまいます。プログラムをマイコン内の不揮発メモリに保存したい場合は「SAVE」命令を用います。読み込みは「LOAD」です。複数のプログラムを保存したい場合は「SAVE 1」のように0〜3までの数字を付与します。
 下図はプログラムを「SAVE 1」で保存し、「NEW」命令でプログラムを消し、「LIST」でプログラムが消えていることを確認してから「LOAD 1」で読み込んで、「LIST」でプログラムを確認した時の様子です。

SAVE 1
Saved 174byte
OK
NEW
OK
LIST
OK
LOAD 1
Loaded 174byte
OK
LIST
10 CLS:PRINT "TEST PROGRAM"
20 WAIT 6
30 B=BTN()
40 LOCATE 0,1:PRINT "BUTTON=";B
50 IF B=0 GOTO 20
60 IF A=0 THEN A=1 ELSE A=0
70 LED A
80 BEEP 10
90 GOTO 20
OK

 SAVEコマンドでマイコンに保存できるプログラム数は3つしかありません。より多くのプログラムを保存したい場合は「1Mbit IスケアC シリアル EEPROM 24FC1025-I/P」を用いることでSAVE番号100〜226の127個ものプログラムを保存することが出来るようになります。回路は「http://fukuno.jig.jp/915」を参照してください。


主要なBASICコマンド

 ここでは主要なBASICコマンドを学びます。下記は行番号10と20の2行のプログラムです。行番号10にて変数Aに12345を代入し、行番号20でAの内容を表示します。

10 A=12345
20 PRINT A
RUN
12345
OK

 なお IchigoJam BASICの変数に代入できる数値の範囲は-32767〜32767の整数です。(例えば「A=32768」を入力すると「--*d80」と表示される。)

 下図の例では変数AとBに値を代入し、行番号30でA-Bを計算して変数Cに代入します。プログラムを記述する際に1行に複数の命令を記述する場合は「:」(コロン)でつなぎます。またPRINT命令で文字を表示したい場合は「"」(ダブルコーテーション)でくくり、表示内容を連結するには「;」(セミコロン)でつなぎます。

10 PRINT "KEISAN"
20 A=12345:B=2345
30 C=A-B
40 PRINT A;"-";B;"=";C
RUN
KEISAN
12345-2345=10000
OK

 最後に1〜10の数字を足すプログラムを作成します。行番号30は変数AにA+1を代入する命令です。この記述が嫌な場合は「LET A,A+1」と書くことも出来ますが、多くのプログラミング言語で代入を「=」で記述します。
 行番号60の「IF」命令はIFに続く条件式に一致した時に続く命令を実行し、不一致の場合は次の行に移ります。この場合Iが10以下であれば「GOTO」命令で行番号30に移動し、11以上であれば次の行に移ります。次の行が無い場合は、プログラムを終了します。

10 A=0
20 I=1
30 A=A+I
40 PRINT "s(";I;")=";A
50 I=I+1
60 IF I<=10 GOTO 30
RUN
s(1)=1
s(2)=3
s(3)=6
s(4)=10
s(5)=15
s(6)=21
s(7)=28
s(8)=36
s(9)=45
s(10)=55
OK

 プログラムの基本動作は、@代入(入出力)、A演算、B条件判定、C移動、D終了(リターン)の5つです。以上の3例にはこれらの全ての要素を含んでおり、およそのプログラミングの流れをつかめたと思います。
 各命令の詳しい使い方や他の命令については、下記のサイトで確認することが出来ます。

ドキュメント(リンク) 著者・ライセンス

リファレンスマニュアル

CC BY https://ichigojam.net/ / jig.jp / 福野泰介

IchigoJam BASIC コマンド一覧

CC BY 4.0 志賀 慶一 (ふうせん Fu-sen.)


BASIC言語に関して

 BASIC言語が普及し始めたのは、1980年あたりでした。それまで「マイコン」と呼ばれていたのが「パソコン」へ進化した時代です。当時、国内では、NEC、富士通、シャープの3社が競って、次々に新機種やラインナップ展開を図っていました。
 パソコンの普及とともにマイコンBASICマガジン(ベーマガ)の創刊や漫画「ゲームセンターあらし」がPC-6001でプログラムを作成する学習本の発売、毎週日曜日には「パソコンサンデー」という番組が放送され、BASICを学ぶ環境が多くありました。白い犬でおなじみの某大手携帯電話会社は、当時、マイコン・パソコンの関連雑誌社の一つで、Oh!と叫んでいました。ヤッホー!(ヤッフー!?)と叫び始めるよりも昔の話です。

 今のパソコンとの違いは、「何でも出来るコンピュータ」だったことです。性能の話ではありません。コンピュータとして出来ることは限られていました。しかし、ユーザは制約や制限無く、コンピュータのほぼ全機能へアクセスすることが出来ました。極端に言うと、メーカーはハードやプログラミング環境を提供し、ユーザーはソフトを作るのがパソコンだったのです。「何でも出来る」=「何でも作れる」という時代でした。
 BASICだけでは十分なプログラムを書けないこともありました。多少のマシン語を併用したり、メモリーやIOを直接アクセスすることが必要でした。このため、パソコンの回路図やIOマップ、BIOSのソースコードが公開されることもありました。再び極端に言うと、「パソコンが使える」=「プログラムが書けて、さらに内部の仕様まで理解している」という時代でした。

 下図は、BASICが動作するポケットコンピュータ(1989年)とメモリーカード(RAMカード)です。メモリーカードに書かれている数字の「16」は、16GBでも16MBでもありません。16KBです。「何でも出来る」。「アクセス制限が(今ほど)かけられていない」。だけど「16KB」。

ポケットコンピュータ
SHARP ポケットコンピュータ PC-E550 と メモリーカード(16KB)

 さて、現在はこういったプログラム作成を楽しむという使い方は、一般向けでは無くなりました。日曜日のテレビ番組でプログラミングの講義なんて考えられないでしょう。「パソコンが使える=インターネットで検索が出来る、メールが送れる、表計算が出来る、、、」と、パソコンが具体的なアプリケーションを使う道具になりました。
 一方、今でも組み込み向けプログラムでは「マイコンが使える=プログラムが書ける」という意味で残っています。はい。ここで紹介したIchigoJamは、組み込み向けマイコンを使っています。この「マイコンが使える」という言葉は、かつての「パソコンが使える」の時代にタイムスリップした「復刻パソコン用語」なのです。
 さぁ、日曜日は「復刻パソコン」で「パソコンサンデー」を楽しんでみましょう。ようこそ、「IchigoJamマイコンによるBASICパソコンの世界へ」。


掲載情報について

  • こどもパソコン IchigoJamを用いた電子工作、応用回路、BASICプログラム等を紹介しています。
  • IchigoJam は株式会社 jig.jp の登録商標(第5746078号)です。
    本サイトでは株式会社 jig.jp の商品である機器およびプログラムの呼称として使用しています。
  • 当サイトは、jig.jp や B Inc. の作成物ではありません
  • IchigoJam を第三者へ販売、提供するには同社からライセンスを受ける必要があります。(詳細)
  • 記載の情報はそれなりに考えたり試作を繰り返した成果が含まれています。
    リンクは自由ですが、当サイト記載内容の無断掲載、転用はご遠慮ください(連絡先)。
  • 当ウェブサイトの内容や情報については、ご自身の責任でご利用ください。
    製作品などで事故が発生した場合であっても当方は一切の補償をいたしません。

IchigoJam メインメニューへ戻る