IchigoLatte 共通仕様

このページでは言語に関係ない IchigoLatte ファームウェア共通仕様を記載しています。

言語別で異なる場合、JS=JavaScript・R=Ruby・F=FORTH・P=Python となっています。

 

表の項目「対応」はこの項目が対応されているファームウェアのバージョンです。

記載がない場合は公開された初版のファームウェア IchigoLatte 0.3 から最新版まで対応しています。

IchigoCake JavaScript は W 版(W が付いたバージョン)になります。
IchigoDake の D 版(D が付いたバージョン)はこのページでの区別はありません。


IchigoLatte の起動

 

電源を入れ、上の画面になれば正常に起動できています。

「IchigoLatte (バージョン)」(JavaScript の初期バージョン)または「IchigoLatte (言語) (バージョン)」表記です。 

IchigoCake JavaScript はバージョンに W、IchigoDake・DakeJacket 版はバージョンに D が付いています。


シリアルで使いたい場合

 

IchigoLatte 0.8(JavaScript)より本体ボタン BTN を押すとシリアルの入出力とビデオ出力を切り替えます。

(シリアル→ビデオも本体ボタンで変更可能になりました)

他言語版は初版から対応しています。

通信速度は 115200bps 固定、データ長 8 ビット、パリティなし、ストップビット 1 ビット、

ローカルエコー ON、改行コード LF です。

動作がおかしい場合は行送信機能で送出して下さい。

現在のところシリアルの動作で vi は使用できません。代わりに cat uart > . を用いてプログラムを転送して下さい。


lash - シェル

 

シェル環境です。起動した時も lash になっています。bash から名前がきているようです。

lash では次のコマンドを使用できます。存在しないコマンドを入力すると、使用できるコマンドが表示されます。

背景の色を変えているのは W 版(含 IchigoCake JavaScript)でのコマンド動作です。

 

コマンド 対応 (言語) 解説
cat 元 [> 先]   プログラムを出力します。先 を省略した場合は画面出力です。
echo 内容 [> 先]   内容 を出力します。先 を省略した場合は画面出力です。
ls 0.9〜 (JS)
全 (R・F・P)

EEPROM の中身を一覧します。プログラム先頭に // プログラム名 を入れるのがおすすめ。

ls [.|@] 1.1.5W~(JS)

W 版(含 IchigoCake JS)で ls のみの場合は ls . と同じで本体の中身を一覧します。
EEPROM の表示は ls @ とします。

ms (JavaScript)

nuby (Ruby)

ts (FORTH)

ny (Python)

~0.5 (JS)

インタラクティブモード(対話モード)に移ります。
IchigoLatte 0.5 (JavaScript) 以前はプログラムを実行します。

ms . (JavaScript)

nuby . (Ruby)

ts . (FORTH)

ny (Python)

0.6〜 (JS)

全 (R・F・P)

プログラムを実行します。
vi [@番号]   プログラムを編集します。1.1.1 よりプログラム番号指定で EEPROM の中身を編集できます。 
skl 配列

type R のみ
0.7.5~ (JS)
0.3.2~ (R)

0.5.1~ (F)
0.3.5~ (P)

キーボード配列を変更します。配列は次の 2 文字です。
us 英語 US キーボード、jp 日本語 JIS キーボード
LPC1114 版ではファームウェアの変更でキーボード配列を変更します。

video モード type R のみ
0.9~ (JS)
0.7~ (FORTH) 0.5~ (P・R)

表示モードを変更します。モードは IchigoJam BASIC 共通です。
0 非表示、1~2 通常サイズ、3~4 縦横 2 倍、5~6 縦横 4 倍、7~8 縦横 8 倍
1・3・5・7 黒背景 白文字、2・4・6・8 白背景・黒文字

 

cat の 元・先、echo の先は次の指定です。Ruby・FORTH・Python は W 版(.[番号])を除き、初版から対応しています。

 

入出力 対応 (言語) 解説
. 0.4〜 (JS) IchigoLatte 本体
.[番号] 1.1.5W~ (JS) IchigoLatte 本体、プログラム番号は .0~.3(56k)・.0~.7(64k)・
.0~.1(type R 旧バージョン)・.0~.15(type R 新バージョン)です。. のみは .0
uart 0.4〜 (JS) シリアル。通常 USB-シリアルモジュールMixJuice が含まれます。
@番号 0.9〜 (JS) EEPROM。プログラム番号は @0〜@63 です。(1024k の場合)

 

IchigoCake JavaScript は 56k 仕様の LPC1114 なので、プログラム番号は .0~.3 になります。
type R 新バージョンは 20211006 以降のバージョンです。(JS 0.9.0~、Ruby 0.5.0~、FORTH 0.7.0~、Python 0.5.0~)

 

いくつか例をあげます。

  • cat .
     → プログラムを表示します。
  • cat . > uart
     → プログラムをシリアルへ送出します。(IchigoLatte 0.4〜)
  • cat uart > .
     → シリアルからプログラムを受信します。(IchigoLatte 0.4〜)
  • cat . > @0
     → プログラムを EEPROM プログラム番号 0 へ保存します。(IchigoLatte 0.9〜)
  • cat @63 > .
     → EEPROM プログラム番号 63 を読み込みます。 (IchigoLatte 0.9〜)
  • echo > .
     → プログラムを消去します。
  • echo > uart;cat uart
     → PanCake・MixJuice を接続している場合、改行を送り、受信内容を表示します。
       起動後に一度これを行って下さい。(IchigoLatte 0.7~+PanCake・IchigoCake JS または MixJuice)
  • echo PANCAKE IMAGE 07> uart
     
    → PanCake を接続している場合に PanCake 内蔵画像 07 を表示します。(IchigoLatte 0.7~+PanCake・IchigoCake JS)
  • echo MJ VER> uart;cat uart
     → MixJuice を接続している場合にファームウェアのバージョンを表示します。(IchigoLatte 0.7〜+MixJuice)

vi - エディタ

 

テキストエディタ。プログラムの編集に用います。実際 vi というコマンド名のエディタが使われます。

Esc キーで vi を終了します。この時プログラムは保存されます。電源を切っても保存されています。

IchigoLatte 0.8(JavaScript)より Ctrl+D で終了することで保存されずに終了するようになりました。

IchigoLatte 1.1.1(JavaScript)より vi @0 などとして EEPROM の中身を直接参照し、編集できるようになりました。

Ruby・FORTH・Python はここまでの機能に初版から対応しています。


ms・nuby・ts・ny - 実行環境

 

言語によって実行環境のコマンド名が異なります。

  • JavaScript - ms
  • Ruby - nuby
  • FORTH - ts
  • Python - ny

ここでは JavaScript の ms で紹介しますが、コマンド名以外は他言語でも共通です。

lash より ms . (javaScript は IchigoLatte 0.6 より。IchigoLatte 0.5 以前は ms )でプログラムを実行します。
lash の画面に続けて出力されます。

IchigoCake JavaScript は ms .[プログラム番号] で任意のプログラムを実行可能です。

Esc キーでプログラムの動作を中断する事が可能です。

 

  

IchigoLatte 0.6(JavaScript)より ms とするとインタラクディブモード(対話モード)になります。

Ruby・FORTH・Python は初版から対応しています。

ms> となるので、直接コマンドを入れて下さい。そのコマンドをすぐに実行します。ana なども使用できます。

IchigoJam のダイレクトモードみたいな使用が可能です。Esc キーで lash に戻ります。


キャラクターコード

バージョンによって入っているキャラクターが異なります。
現在は 32~255 が定義されています。IchigoJam BASIC に近い定義になっている事が分かります。

0~31 はバージョン・環境で異なる表示になるため、ここは使用しないで下さい。

 

IchigoLatte 1.1.0~

LattePlayer


IchigoLatte Ruby

IchigoLatte 1.0.0~1.0.1


 

IchigoLatte 1.0.0 で 32~255 のキャラクターが定まっています。

一方 1 にあった ▉ は削除されました。143(0x8f)を使用して下さい。

IchigoLatte FORTH も 32~255 は上記と同じキャラクターになっていますが、プログラムでは数字のみが出力できます。

 

IchigoLatte 0.7~0.9.7

IchigoLatte 0.5~0.6


 

JavaScript 版の chr() 追加は IchigoLatte 0.9 からなので、IchigoLatte 0.8 以前の 160~255 は Alt を押しながら入力します。
また、cat uart > . でコードを入れたファイルを転送し、vi で参照する事も可能です。

(0~31・127 はコントロールコードになるので、外してあります)

 

16進数 (0x~)

16 進数 0x00~0xFF での出力です。
16 進数は言語に関係なく 0x を頭に付けます。

右は IchigoLatte 1.1 の場合で、0x00~0x1F はバージョンで違いがあります。

そのため、0x00~0x1F の使用は実用的ではなく、

0x20~0xFF(除 0x7F)がキャラクターとして使える範囲となります。

 

IchigoLatte ではどの言語 BASIC の HEX に該当する命令がありません。

そのため 16 進数を表示させたい場合は
桁毎にキャラクターコードへ変換して出力する処理が必要です。

PanCake のテキストコマンドは 16 進数で指定する必要があるため、

変数の値を入れる場合はバイナリーコマンドが実用的になります。

そこで IchigoCake JavaScript では PanCake 専用コマンドを用意する事で
容易に PanCake を操作できるようになっています。