フォト
2017年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

« arduinoでPS/2キーボードのエミュレーションを行う その2 | トップページ | Aliexpressでブレッドボード用電源を購入しました »

2015年4月26日 (日)

IchigoJamで疑似グラフィックを使った画像の表示

IchigoJamの画面表示解像度は、キャラクタ文字 横32文字×縦24行ですが、
次のキャラクタが用意されており、疑似的に64×48のグラフィック表示が出来ます。

01

キャラクタコード 0x80(IchigoJamでは #80と表記)~ 0x8Fの16文字が割り当てています。
これを使って、疑似的に64x48ドットの画像を表示してみます。

まずは、表示したい絵をペイントツールで作成します。画面いっぱいに表示する大きさの
64×48ドットで作成します。色はモノクロ(白、黒の2色)を指定します。

03

作成した画像を保存します(ファイル名はcat.bmp)。

次に、この画像からIcigoJamのキャラクターコードに変換します。
4ドットが1文字(0x80~0x8F)に対応する形で変換します。

手作業でやるのも大変なので、ツールを作成して変換しました。
ツールはこちらからダウンロード(ダウンロード後、IchigoBmpConv.zipを
マウス右ボタンでプロパティを開いてセキュリティブロックを外してから
解凍して下さい)できます。

Photo

作成した画像ファイルを指定し、[ソース出力]ボタンをして
IchigoJam BASICのソースを出力します。
Windows上で開くと意味不明の内容です。

Photo_2

これをIchigoJamに転送して実行します。

20150425001801

実行すると、画像が表示されます。340行で無限ループとなっているので
中断する場合は[ESC]キーを押します。

20150426083128

空き領域を調べると52バイトしかありません。
これだと他に何も出来ないですね。

そこでツールでバイナリ出力してEEPROMに格納して
IchigoJamのI2CRコマンドで表示出来るかを試してみました。

IchigoJamにI2CインタフェースのEEPROMを接続します。

Dscn3767

プログラム自体は6行だけです。

 10 FOR I=0 TO 4
 20 POKE #700,I*3,0
 30 R=I2CR(#50,#700,2,#900,768)
 40 WAIT 30
 50 NEXT
 60 GOTO 10

5枚の絵を切り替えて表示しています。WAIT命令を入れないといけないくらい
高速で表示出来ました。ちょっとしたアニメーション表示が可能ですね。

こプログラムの内容ですが、
  R=I2CR(#50,#700,2,#900,768)
でI2Cアドレスが#50のEEPROMに対して、一画面分の画像768バイトを取得し
IcihoJamの画面表示用のメモリ #900に書き込むことを行っています。

事前のPOKE #700,I*3,0でEEPROMの読出しアドレス2バイトをIcihoJamの
メモリアドレス #700 設定しています。
1画面分768バイトは16進数では#300ですので、Iの値に応じて
#300、#600、#900、・・・ と5枚分の画像の先頭アドレスを指定しています。

I2CRコマンドの使い方については、
 IchigoJam 情報サイト 「イチゴジャム レシピ」 http://15jamrecipe.jimdo.com/
BASIC コマンド一覧I2CRの解説が分かりやすいです。

IchigoJamでは、内部メモリの情報が公開されおり、
EEROMから読み取ったデータを直接変数領域に格納したりも出来ます。
配列に一気に格納とか、プログラム領域自体も変更できます。

以下は IchigoJamのメモリマップと演算子優先順位よりコピペの内容です。

仮想アドレス           機能
#000-#6FF   キャラクターパターン #00〜#DF (読み取り専用)
#700-#7FF   書換可能キャラクターパターン(PCG) #E0〜#FF
#800-#8FF   2byte符号付き整数の変数(配列0〜101、変数A〜Z)
#900-#BFF   画面キャラクターコード(VRAM) 32x24
#C00-#FFF          プログラム(行番号(2B)、サイズ(2B)、テキスト)

頑張れば ROM版 アドベンチャーゲームなんかが作れそうです。


« arduinoでPS/2キーボードのエミュレーションを行う その2 | トップページ | Aliexpressでブレッドボード用電源を購入しました »

IchigoJam」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/61493030

この記事へのトラックバック一覧です: IchigoJamで疑似グラフィックを使った画像の表示:

« arduinoでPS/2キーボードのエミュレーションを行う その2 | トップページ | Aliexpressでブレッドボード用電源を購入しました »