IchigoJam BASIC リファレンス ver 1.2

キーボード操作

操作解説
キー文字を入力する
Shift / シフトキーと共に押し記号や小文字などを入力する
カタカナアルファベットとカタカナ(ローマ字入力)を切り替える(右ALT、CTRL+SHIFT / コントロール+シフトでも可)
Enter / エンターコマンドを実行する(プログラム変更時もその行でEnterキー)
Shift+Enter / シフト+エンター行を分割する
ESC / エスケーププログラムの実行、リスト表示、ファイル一覧表示を止める
カーソルキーカーソルキーを移動する
Backspace / バックスペースカーソルの前の文字を消す
Delete / デリートカーソルにある文字を消す
左ALT / オルト0-9/A-Kと合わせて押すことで拡張文字入力(SHIFT押しながらで切り替え)、'['と合わせて押して'_'、']'と合わせて押して'\'や'¥'の入力
Home End / ホーム エンドカーソルを行頭へ移動、カーソルを行末へ移動
Page Up Page Down / ページアップ ページダウンカーソルを画面上へ移動、カーソルを画面下へ移動
Caps / キャップス大文字と小文字を切り替える
Insert / インサートキーボードの上書きモード/挿入モードを切り替える(CTRL+ALTでも可能)
ファンクションキーF1:画面クリア、F2:LOAD、F3:SAVE、F4:LIST、F5:RUN、F6:?FREE()、F7:OUT0、F8:VIDEO1、F9:FILES
ボタン押しながら起動でFILE0を自動実行する

初級コマンド

コマンド解説
LED 数 / エルイーディー数が1なら光り、0なら消えるLED 1
WAIT 数1{,数2} / ウェイト数1の数値フレーム分待つ 60で約1秒、省略可の数2指定で低電力化、数1のマイナス指定で走査線分で待つ(-261でWAIT1と同等)WAIT 60
: / コロンコマンドを連結するWAIT 60:LED 1
行番号 コマンドプログラムとしてコマンドを記録する10 LED1
行番号指定した行番号のプログラムを消す10
RUN / ランプログラムを実行する [F5]RUN
LIST {行番号1{,行番号2}} / リストプログラムを表示する [F4] (行番号1で1行表示、行番号1がマイナスでその行まで表示、行番号2指定でその行まで表示、行番号2が0の時終わりまで表示、ESCで途中停止)LIST 10,300
GOTO 行番号 / ゴートゥー指定した行番号へ飛ぶ(式も指定可能)GOTO 10
END / エンドプログラムを終了するEND
IF 数 {THEN} 次1 {ELSE 次2} / イフ・ゼン・エルス数が0でなければ次1を実行し、0であれば次2を実行する (THEN,ELSE以降は省略可)IF BTN() END
BTN({数}) / ボタンボタンが押されていれば1、そうで無いとき0を返す(数:0(付属ボタン)/UP/DOWN/RIGHT/LEFT/SPACE、省略で0)LED BTN()
NEW / ニュープログラムを全部消すNEW
PRINT {数や文字列} / プリント文字を表示する (文字列は"で囲む、";" で連結できる) 省略形:?PRINT "HI!"
LOCATE 数,数 / ロケート次に文字を書く位置を横、縦の順に指定する(縦=-1で無表示) 省略形:LCLOCATE 3,3
CLS / クリア スクリーン画面を全部消すCLS
RND(数) / ランダム0から数未満の正数をランダムに返すPRINT RND(6)
SAVE {数} / セーブプログラムを保存する(0〜3の4つ、100-227 外付けEEPROM、省略で前回使用した数) ボタンを押した状態で起動すると0番を読み込み自動実行SAVE 1
LOAD {数} / ロードプログラムを読み出す(0〜3の4つ、100-227 外付けEEPROM、省略で前回使用した数)LOAD
FILES {数1{,数2}} / ファイルズ数1(省略可)〜数2のプログラム一覧を表示する(EEPROM内ファイル表示に対応、0指定ですべて表示、ESCで途中停止)FILES
BEEP {数1{,数2}} / ビープBEEPを鳴らす 周期(1-255)と長さ(1/60秒単位)は省略可 ※SOUND(EX2)-GNDに圧電サウンダーなどの接続必要BEEP
PLAY {MML} / プレイMMLで記述した音楽を再生する MML省略で停止 ※SOUND(EX2)-GNDに圧電サウンダーなどの接続必要(次項のMML参照)PLAY "$CDE2CDE2"
TEMPO 数 / テンポ再生中の音楽のテンポを変更するTEMPO 1200
数 + 数足し算するPRINT 1+1
数 - 数引き算するPRINT 2-1
数 * 数掛け算するPRINT 7*8
数 / 数割り算する(小数点以下は切り捨て)PRINT 9/3
数 % 数割り算した余りを返すPRINT 10%3
(数)カッコ内は優先して計算するPRINT 1+(1*2)
LET 変数,数 / レットアルファベット1文字を変数として数の値を入れる(配列に連続代入可能) 省略形:変数=数LET A,1
INPUT {文字列,}変数 / インプットキーボードやUARTからの入力で数値を変数にいれる(文字列とコンマは省略可)INPUT "ANS?",A
TICK() / ティックCLTからの時間を返す(約1/60秒で1進む)PRINT TICK()
CLT / クリア ティック時間をリセットするCLT
INKEY() / インキーキーボードやUARTから1文字入力する(入力がない時は0、UARTから0が入力された時は#100)PRINT INKEY()
CHR$(数) / キャラ文字コードに対応する文字を返す(コンマ区切りで連続表記可)PRINT CHR$(65)
ASC("文字") / アスキー文字に対する文字コードを返すPRINT ASC("A")
SCROLL 数 / スクロール指定した方向に1キャラクター分スクロールする(0/UP:上、1/RIGHT:右、2/DOWN:下、3/LEFT:左)SCROLL 2
SCR({数,数}) / スクリーン画面上の指定した位置に書かれた文字コードを返す(指定なしで現在位置) 別名:VPEEKPRINT SCR(0,0)
数 = 数比較して等しい時に1、それ以外で0を返す (==でも可)IF A=B LED 1
数 <> 数比較して等しくない時に1、それ以外で0を返す (!=でも可)IF A<>B LED 1
数 <= 数比較して以下の時に1、それ以外で0を返すIF A<=B LED 1
数 < 数比較して未満の時に1、それ以外で0を返すIF A<B LED 1
数 >= 数比較して以上の時に1、それ以外で0を返すIF A>=B LED 1
数 > 数比較してより大きい時に1、それ以外で0を返すIF A>B LED 1
式 AND 式 / アンドどちらの式も1の時に1、それ以外で0を返す (&&でも可)IF A=1 AND B=1 LED 1
式 OR 式 / オアどちらかの式が1の時に1、それ以外で0を返す (||でも可)IF A=1 OR B=1 LED 1
NOT 式 / ノット式が0の時に1、それ以外で0を返す (!でも可)IF NOT A=1 LED 1
REM / リマークこれ以降の命令を実行しない(コメント機能) 省略形:'REM START
FOR 変数=数1 TO 数2 {STEP 数3} NEXT / フォー・トゥー・ステップ・ネクスト変数に数1をいれ、数2になるまで数3ずつ増やしながらNEXTまでをくりかえす (STEPは省略可、6段まで)FOR I=0 TO 10:?I:NEXT
IN({数}) / インIN0-10から入力する(0または1) 数を省略してまとめて入力できる (IN0,1,4,9はプルアップ、IN5-8,10-11は切り替え時、IN0,9はボタン)LET A,IN(1)
ANA({数}) / アナログ外部入力の電圧(0V-3.3V)を0-1023の数値で返す(2:IN2、5-8:IN5-8(OUT1-4)、0,9:BTN、省略で0)?ANA()
OUT 数1{,数2} / アウト外部出力OUT1-11に0または1を出力する 数2を省略でまとめて出力できる(数2に-1指定でINへ切り替え)OUT 1,1
PWM 数1,数2{,数3} / ピーダブリューエム外部出力OUT2-5に数2で0.01msec単位で指定するパルスを出力する(0-2000、周期20msec)、数3で周期を指定(省略時2000=20msec、マイナス値指定で周期1/480)PWM 2,100

MML(PLAYコマンド内)

コマンド解説
音(C D E F G A B/ドレミファソラシ)を鳴らす (Rは休符、スペースはスキップされる)CDER FG
音n長さを指定して音を鳴らす(.を付けると半分の長さ分伸びる)C4 E2. D1 F32
音+半音上げるC+ D+
音-半音下げるD- E-
Tnテンポ (TEMPO命令で後から変更可能) 初期値:120T96CDE
Ln長さ指定しないときの長さ(1,2,3,4,8,16,32) 初期値:4CL8DC
Onオクターブ指定 O1C(低音)からO5B(高音)まで 初期値:3O3CO2C
<オクターブ上げる(ver1.1と逆なので注意)C<C<C
>オクターブ下げる(ver1.1と逆なので注意)C>C>C
$これ以降のMMLを繰り返す(BGMに便利)C$DE
Nn1-255 音の高さ指定してLで指定した長さで鳴らす (BEEP命令と同じ)N10N5
'以降のMMLを鳴らさないC'DE

上級コマンド

コマンド解説
CLV / クリア バリアブル変数、配列を全部0にする 別名:CLEARCLV
CLK / クリア キーキーバッファとキーの状態をクリアするCLK
CLO / クリア アウトプット入出力ピンを初期状態に戻すCLO
ABS(数) / アブソリュート絶対値を返す(マイナスはプラスになる)?ABS(-2)
[数]配列([0]から[101]までの102コの連続した変数として使えます) LET[0],1,2,3で連続代入可能[3]=1
GOSUB 行番号 RETURN / ゴーサブ・リターン数または式で指定した行番号に飛び、RETURNで戻ってくる 省略形:GSB (30段まで)/RTNGOSUB 100
DEC$(数{,数}) / デシ数を文字列にします(2番目の数は桁数、省略可)?DEC$(99,3)
#16進数16進数で数を表記します#FF
HEX$(数{,数}) / ヘックス数を16進数の文字列にします(2番目の数は桁数、省略可)?HEX$(255,2)
`2進数2進数で数を表記します`1010
BIN$(数{,数}) / バイナリー数を2進数の文字列にします(2番目の数は桁数、省略可)?BIN$(255,8)
数 & 数論理積(ビット演算)?3&1
数 | 数論理和(ビット演算)?3|1
数 ^ 数排他的論理和(ビット演算)?A^1
数 >> 数右シフトする(ビット演算)?A>>1
数 << 数左シフトする(ビット演算)?A<<1
~数ビット反転(ビット演算)?~A
STOP / ストッププログラムを中断するSTOP
CONT / コンティニュー実行中の行や、中断した行を再度実行するCONT
SOUND() / サウンド音が再生中なら1、そうで無いとき0をを返す?SOUND()
FREE() / フリープログラムの残りメモリ数を返す?FREE()
VER() / バージョンIchigoJam BASICのバージョン番号を返す?VER()
LANG() / ランゲージIchigoJam BASICの言語番号を返す (1:日本語, 2:モンゴル語, 3:ベトナム語)?LANG()
RENUM {数1{,数2}} / リナンバープログラムの行番号を数1から数2刻みにする (数省略で10、GOTO/GOSUBの飛び先は手で変更必要)RENUM
LRUN {数} / ロードランプログラムを読み込み後、実行しますLRUN 1
FILE() / ファイル最後にプログラムを読み込み、書き込み行った数を返す?FILE()
LINE() / ライン現在実行中の行番号を返す(非実行時は0)?LINE()
SRND 数 / エスランド種を指定して乱数を初期化するSRND 0
HELP / ヘルプメモリマップを表示するHELP
PEEK(数) / ピークメモリ読み出し(キャラクターパターン0-#7FFなど)?PEEK(#700)
POKE 数,数 / ポークメモリへの書き込みPOKE #700,#FF
COPY 数1,数2,数3 / コピーメモリコピー 数1のアドレスへ数2のアドレスから数3の長さ分コピー(数3マイナスでコピー方向が逆になる)COPY #900,0,256
CLP / クリア パターンキャラクターパターン(#700-#7FF)を初期化しますCLP
"文字列"文字列の場所を返すA="ABC"
STR$(数1{,数2}) / ストリング文字列を返す(数2(省略可)で長さ指定)PRINT STR$(A)
LEN("文字列") / レングス文字列の長さを返すPRINT LEN("ABC")
@ラベル / アットマーク行の先頭に書くとラベルとなり、行番号の代わりとして使える(GOTO @LOOPなど)@LOOP
VIDEO 数1{,数2} / ビデオ画面表示非表示を切り替える 0で画面表示を停止し処理高速化 (F8で表示)、省略可能な数2でVIDEO0時CPUクロックを1/数2に変更し省電力化、数1が2で白黒反転VIDEO 0
RESET / リセットIchigoJamをリセットするRESET
SLEEP / スリーププログラムを休止する (ボタンを押すと起動し、LRUN0を実行する)SLEEP
UART 数1{,数2} / ユーアート数1:シリアル出力設定(0:オフ、1:PRINTのみ、2:PRINT/LC/CLS/SCROLL、3:PRINTのみ/改行コード\r\n、初期値:2)、数2:シリアル受信設定(0:オフ、1:オン 省略時)UART 0
BPS 数 / ビーピーエスシリアル通信速度を変更する(0で初期値の115,200bps、-1:57600bps、-2:38400bps)BPS 9600
I2CR(数1,数2,数3,数4,数5) / アイツーシーI2Cで周辺機器から読み込む I2Cアドレス、コマンド送信アドレス・長さ、受信アドレスと長さR=I2CR(#50,#700,2,#702,2)
I2CW(数1,数2,数3,数4,数5) / アイツーシーI2Cで周辺機器に書き込む I2Cアドレス、コマンド送信アドレス・長さ、送信アドレスと長さR=I2CW(#50,#700,2,#702,2)
USR(数,数) / ユーザーマシン語呼び出し(注意!高確率でIchigoJamが停止します)A=USR(#700,0)