IchigoJam BASICのコマンド解説(上級編)

IchigoJam BASICのコマンド解説(上級編)

2015/11/25 第1版
ファームウェアVer. 1.0.2対応

初級編のコマンドはもう使いこなせているかな？
上級編には、初級編で出てきたコマンドのより詳しい使い方や、プログラミングを細かくサポートする便利なコマンドなどが書かれている。
読んでみてもわからないところは、試しに自分でコマンドを書いて試してみたり、周りの詳しい人に聞いて見よう。
No 分類
1

コマンド

読み方意味

使い方

SAVE

セーブ

IchigoJamにEEPROMを接続すると、より多くのプログラムが保存 SAVE 100できるようになる。指定できる場所は100から226まで。接続する
EEPROMの容量によって、実際に使える場所は限られていて、使えない場所を指定するとFile Errorになる。

2

LOAD

ロード

EEPROMを接続すると、100から226までの場所からもプログラム LOAD 100を呼び出すことができる。プログラムが保存されていない場所を指定すると、何も起こらない。使えない場所を指定すると、File3

FILES

ファイルズErrorになる。
EEPROMに接続している場合、本体とEEPROMに保存されたプログ FILESラムの一覧を表示する。「FILES 最大ファイル数」で、表示したい FILES 8プログラムの最大数を指定することができる。「FILES 8」の場合は、本体(0〜3)とEEPROM(100〜103)の合計8個の一覧になる。

プログラム
4 作成時に使FILE()

ファイル

う

SAVEやLOAD、LRUNなどで最後にアクセスしたファイルの番号を PRINT FILE()返す。ファイルにまだ一度もアクセスしていない場合は、-1が返る。

5

RENUM

リナンバー

「RENUM」でプログラムの行番号を振りなおす。何も指定しなけ

RENUM

れば始めの行を10として、行ごとに10ずつアップ。「RENUM

RENUM 100数」だと、指定した数の行番号から行ごとに10ずつアップ。注意する点は、RENUMではGOSUBに指定した行番号を振りなおせないということ。RENUMしたあとで、GOSUBが元々どの行を指定していたのかわからなくなるなんてことがないように。
6FREE()

7VER()

フリー

今書いているプログラムのメモリ領域が、あとどれだけ空いている PRINT FREE()

バージョンのか(空容量)を返す。
現在利用しているIchigoJamのバージョンを返す。

PRINT VER()

Ver.1.0.0(beta)3だったら、返される値は「10003」になる。
8GOSUB

ゴーサブ「GOSUB 行番号」で、指定した行番号のサブルーチンに飛ぶ。行 GOSUB 100
番号には、変数や計算式を入れてもOK。

9RETURN

リターン「GOSUB」で飛んだサブルーチンの中で「RETURN」と書くと、RETURNGOSUBを指定したメインルーチンの次の行へ戻って来る。
10

LRUN

ロードラン

別の場所に記録したプログラムを呼び出して、実行する。

LRUN「LRUN 0」で０番目の場所に記録したプログラムを呼び出し実行

LRUN 0する。

LRUN 0,100「LRUN 0,100」と書くと、０番のプログラムの行番号100のところから実行。
プログラム

注意！まだSAVEしていない書きかけのプログラムがあるところにを制御(せい別のプログラムをLRUNすると、書きかけのプログラムは消えてしぎょ)する

まう。
注意！ LRUNで呼出したプログラムは、変数の値は初期化されずに今までの値が引き継がれる。変数を初期化したい場合は CLVコマンドを呼ぶこと。

12

CLV

クリア バリアブル 変数や配列の値を全てクリア(初期化)することができる。逆に言う CLVと、CLVしない間は前に指定した変数や配列の値が使えるというこ CLEARと。CLEARという書き方でも同じ働きをする。

13

CLK

クリア キー

キーを続けて押した時などに溜まるキーバッファをクリアすること CLKができる。直前に押していたキーの影響を受けたくない時に。

PCN金沢 (http://kanazawa.pcn.club/)IchigoJam BASICのコマンド解説(上級編)
No 分類

コマンド

読み方意味使い方

14

PLAY

プレイ

「PLAY MML」で、IchigoJamに取り付けた圧電ブザーから曲を演 PLAY "CDE2CDE2"奏する。

音楽を鳴ら15 すTEMPOテンポ

MMLについては下記 *1 を参照。
PLAY実行時のテンポを指定する。

16SOUND()

サウンド

音を出しているかどうかを検出する。音を発生している時は1、出17

ABS

アブソリュート

していない時は0が返る。
「ABS(数)」で、指定した数の絶対値(※マイナス記号を取り去った PRINT ABS(5)計算する値)を返す。「ABS(5)」も「ABS(-5)」も、返り値は同じく5。

18[数]

配列

TEMPO 120
IF SOUND() THEN

A=-5:B=ABS(A)

0から102まで番号の割り振られた箱(配列)を示す。「[0]=1」と書 [0]=1
くと、0番目の箱(配列の0番目)に1が入れられる。「LET [0],1」

LET [0],1と書いても同じ。また、「LET [0],1,5,3」と書くと、0番目に1、 LET [0],1,5,3
1番目に5、2番目に3…という風に連続で値を入れることもできA=[1]る。
配列から値を取り出す時は、A=[0]のように書く。
19#

シャープ

あとに続く数値は16進数ですよ、という意味の記号。例えば(いげた)「#28」と書くと、16進数の28(10進数でいうところの40)を指す。
あとに続く数値は2進数ですよ、という意味の記号。例えば

#2820

`

逆クオート

21

HEX$

(アクサングラーブ) 「`10」は、2進数の10(10進数でいうところの2)を指す。
ヘックス「HEX$(数)」で、指定した数を16進数の文字列に変換する。例え PRINT HEX$(255,4)ヘキサ

2進数/10進`10ば「HEX$(255)」と書くと、返り値は「FF」。「HEX$(数1,数2)」と書くと、数2で指定した桁数で数1を16進数に変換する。

22 数/16進数を BIN$利用する

ビン「BIN$(数)」で、指定した数を2進数の文字列に変換する。例えば PRINT BIN$(255,8)

バイナリ「BIN$(255)」と書くと、返り値は「11111111」。「BIN$(数1,数2)」と書くと、数2で指定した桁数で数1を2進数に変換する。

23

DEC$

デック

「DEC$(数1,数2)」で、数2で指定した桁数で数1を返す。

PRINT DEC$(10,5)

24

数1 & 数2

デシマル
論理積(ろんりせき) 数1と数2の間で2進数による論理積(AND演算)を行う。論理積はど PRINT 3&1

25

数1 | 数2

論理和(ろんりわ)

ちらも1であれば真(1)、そうでなければ偽(0)を返す。
数1と数2の間で2進数による論理和(OR演算)を行う。論理和はど26

数1 ^ 数2

排他的論理和

ちらかもしくは両方が1であれば真(1)、そうでなければ偽(0)を返数1と数2の間で2進数による排他的論理和(XOR演算)を行う。排他 PRINT A^1PRINT 3|1(はいたてきろんり 的論理和は両方の値が一致しない場合に真(1)、そうでなければ偽わ)(0)を返す。

27数1 >> 数2

右シフト数1で指定された数値を、数2で指定された数だけ右側にシフトす

PRINT A>>1

28

数1 << 数2

左シフト

数1で指定された数値を、数2で指定された数だけ左側にシフトす

PRINT A<<129~数ビット反転指定された数値をビット反転する。

PRINT ~A

※1 MML(Music Macro Language)とは、音楽演奏を表現するための言語です。以下のコマンドを使って曲を書きます。
A〜G[<長さ>]： 音符 (ド〜シが CDEFGAB に対応)
R[<長さ>]： 休符<長さ>： 長さ (1・2・4・8・16・32。音の後に付ける。例：C4 D1).： 長さの半分伸ばす (長さの後に付ける。例：E2.)
T<テンポ>： 初期値は 120。コマンド TEMPO でも指定可能
L<長さ>： 省略時の長さ。初期値は 4O<オクターブ>： 1〜5、初期値は 4>： 1オクターブ上げる<： 1オクターブ下げる$： ここから後の MML を繰り返す
N<高さ>： 音を出す。BEEP と共通※この解説は、以下にCC BYで公開されているリファレンスを元に、より子どもに読みやすい形を目指して書かれています。
BASICリファレンス: by 福野泰介 - Taisuke Fukuno / jig.jp http://ichigojam.net/IchigoJam-BASIC-reference.pdf
イチゴジャム レシピ: by 志賀 慶一 (ふうせん Fu-sen.) http://15jamrecipe.jimdo.com/※この解説は上級編として書かれており、すべてのコマンドあるいはコマンド内の機能を解説するものではありません。

PCN金沢 (http://kanazawa.pcn.club/)