IchigoJam BASIC リファレンス - 0.9.7

IchigoJamとは?

IchigoJam(いちごジャム)は、PS/2キーボード、ビデオケーブルと接続するテレビ、マイクロUSBケーブル(電源)を接続するだけで、ゲームやツール、ロボット制御などをBASICでプログラミングできるコンピューターです。スライドスイッチを左に動かすと起動します。
LED 1 (エンター)と打ち込むとLEDが点灯します。カーソルを動かし LED 1 を LED 0 に書き換えてエンターで消灯します。その他、入門、サンプル、サポートなど http://ichigojam.net/ をご参照ください。

基本操作

操作解説ver
キー文字を入力する
Shift / シフトキーと共に押し記号などを入力する
Enter / エンターコマンドを実行する(プログラム変更時もその行でEnter)
カーソルキーカーソルキーを移動する
Backspace / バックスペース1文字前を消す
Delete / デリート1文字先を消す
CapsLock / キャップス ロック大文字と小文字を切り替える
Insert / インサート上書きモード、挿入モードを切り替える
カタカナ、右ALT / オルトアルファベットとカタカナ(ローマ字入力)を切り替える0.8.2
ESC / エスケーププログラムを中断する
ファンクションキーF1:CLS、F2:LOAD、F3:SAVE、F4:LIST、F5:RUN、F6:?FREE()、F7:OUT0、F8:VIDEO1

初級コマンド

コマンド解説ver
LED 数 / エルイーディー数が1なら光り、0なら消えるLED 1
WAIT 数 / ウェイト数の数値フレーム分待つ 60で約1秒WAIT 60
: / コロンコマンドを連結するWAIT60:LED1
行番号 コマンドプログラムとしてコマンドを記録する10 LED1
行番号その行番号のプログラムを消す10
GOTO 行番号 / ゴートゥー次に実行する行を決める ver0.9.7以降は数でもOKGOTO 10
PRINT 数や文字列 / プリント文字を表示する ";" で連結できる(文字列は"で囲む) 省略形:?PRINT "HI!"
RND(数) / ランダム0から数未満の正数をランダムに返すPRINT RND(6)0.3
ABS(数) / アブソリュート絶対値を返す(マイナスはプラスに)PRINT ABS(-2)0.8.7
CLS / クリア スクリーン画面を全部消すCLS
CLV / クリア バリアブル変数、配列を全部0にするCLV0.9.4
INPUT (文字列,)変数 / インプットキーボードからの入力で数値を変数にいれるINPUT "ANS?",A0.6
LET 変数,数 / レットアルファベット1文字を変数として数の値を入れる 省略形:変数=数LET A,10.7.6
LOCATE 数,数 / ロケート次に文字を書く位置を横、縦の順に指定する、縦=-1で無表示 省略形:LCLOCATE 3,3
VPEEK(数,数) / ブイピーク画面上の指定した位置に書かれた文字コードを所得する、指定なしで現在位置 省略形:SCRPRINT VPEEK(0,0)0.7.2
BTN() / ボタンボタンが押されていれば1PRINT BTN()0.6
INKEY() / インキーキーボードから1文字入力する(入力がないときは0)PRINT INKEY()
CHR$(数) / キャラ文字コードに対応する文字を返す コンマ区切りで連続表記できる(ver0.9.4以降)PRINT CHR$(65)0.7.4
ASC("文字") / アスキー文字に対する文字コードを返すPRINT ASC("A")0.8.7
SCROLL 数 / スクロール0:上、1:右、2:下、2:左 方向に1キャラクター分スクロールSCROLL 20.9.7
OUT 数,数 / アウトOUT1-6に0または1を出力する(5,6は0.9.0以降)OUT 1,10.8.7
IN(数) / インIN1-4から入力する(0または1)LET A,IN(1)0.8.7
ANA() / アナログ外部入力IN2の電圧(0V-3.3V)を0-1023の数値で返すA=ANA()0.8.4
TICK() / ティック時間を返す(1/60秒で1進む)PRINT TICK()0.8.1
CLT / クリア ティック時間をリセットするCLT0.8.0
数 + 数足し算するPRINT 1+1
数 - 数引き算するPRINT 2-1
数 * 数掛け算するPRINT 7*8
数 / 数割り算する(小数点以下は切り捨てられます)PRINT 9/3
数 % 数割り算した余りを返すPRINT 10%3
(数)カッコ内は優先して計算するPRINT 1+(1*2)
IF 数 THEN 次 ELSE 次2 / イフ・ゼン・エルス数が0でなければ次を実行する THEN,ELSEは省略可 ELSEはver0.9.4以降IF A=B LED 1
数 = 数比較して等しい時に1を返す(==でも可)IF A=B LED 1
数 <> 数比較して等しくない時に1を返す(!=でも可)IF A<>B LED 1
数 <= 数比較して以下の時に1を返すIF A<=B LED 1
数 < 数比較して未満の時に1を返すIF A<B LED 1
数 >= 数比較して以上の時に1を返すIF A>=B LED 1
数 > 数比較してより大きい時に1を返すIF A>B LED 1
式 AND 式 / アンド両方の式が正しい時に1を返すIF A=1 AND B=1 LED 1
式 OR 式 / オアどちらかの式が正しい時にに1を返すIF A=1 OR B=1 LED 1
RUN / ランプログラムを実行するRUN
LIST / リストプログラムを表示するLIST
NEW / ニュープログラムを全部消すNEW
LOAD 数 / ロードプログラムを読み出す(0〜2の3つ、省略すると0 / 100-226 外付けEEPROM)LOAD0.8.0
SAVE 数 / セーブプログラムを保存する(0〜2の3つ保存できます、省略で0 / 100-226 外付けEEPROM)SAVE 10.8.0
RENUM / リナンバープログラムの行数を10から10刻みにする(GOTO/GOSUBの飛び先は手で変更必要)RENUM0.6
END / エンドプログラムを終了するEND
REM / リマークこれ以降の命令を実行しない(コメント機能)REM START
BEEP 数,数 / ビープBEEPを鳴らす 周期(1-255)と長さ(1/60秒単位)は省略可 ※EX2-GNDに圧電サウンダー接続BEEP0.9.0
PLAY MML / プレイMMLで記述した音楽を再生する ※EX2-GNDに圧電サウンダー接続PLAY "CDE2CDE2"0.9.0
TEMPO 数 / テンポ再生中の音楽のテンポを変更するTEMPO 12000.9.0

上級コマンド

コマンド解説対応
[数]配列([0]から[100]までの101コの連続した変数として使えます) LET[0],1,2,3で連続代入可能(ver0.9.4)[3]=10.7.6
GOSUB 行番号 / ゴーサブ次に実行する行を決め、RETURNで戻ってくる ver0.9.7以降は数でもOKGOSUB 100
RETURN / リターンGOSUBで呼び出された次の処理へ戻るRETURN
LIST 行番号1,行番号2 / リスト行番号1以上、行番号2以下のプログラムを表示する(行番号1を省略可能)LIST 10,300
FREE() / フリープログラムの残りメモリ数を返す? FREE()0.8.9
OUT 数 / アウト外部出力OUT1-6への出力を0-63で指定する(出力は3.3V / 5,6は0.9.0以降)OUT A0.6
IN() / イン外部入力IN1-4の状態を0-15の数値で返す(IN3のみプルダウン抵抗なし)A=IN()0.6
数 & 数論理積(ビットマスク)? 3&10.7.2
数 | 数論理和? 3|10.8.3
数 ^ 数排他的論理和(ビット反転)? A^10.7.2
数 >> 数右シフトする? A>>10.7.2
数 << 数左シフトする? A<<10.7.2
LRUN (数) / ロードランプログラムを読み込み後、実行しますLRUN 10.8.0
VIDEO 数 / ビデオ画面表示、停止を切り替える 0で停止 F8で表示VIDEO 00.9.4
SLEEP / スリーププログラムを休止する(ボタンを押すと、起動後0番を読み込み実行)SLEEP0.7
BPS 数 / ビーピーエスシリアル通信速度を変更する(0で初期値の115,200bps)BPS 96000.7.7