大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

IchigoJamはじめました。(7)メモリ、データの書き込み、読み出し、PCG

著者:國松亜紗子
公開日:2019/09/12
最終更新日:2019/09/12
カテゴリー:技術情報

こんばんは。國松です。
IchigoJamの基本の続きを見ていきたいと思います。

IchigoJamの文字
IchigoJamには256個の文字が用意されています。文字にはそれぞれ番号が割り当てられています。このうち#20未満の番号の文字はコントロール文字(制御文字)として割り当ています。コントロール文字は文字の削除や挿入などの処理を行えます。
IchigoJamのキャラクターコード
用意されている文字はIchigoJam BASICのバージョンによって若干の違いがあります。
IichigoJam BASICのバージョンの確認は ?VER()コマンドを使います。

任意の文字を表示
数字やアルファベットの表示はPRINTコマンドで簡単にできます。

PRINT ”ABC”

コントロール文字など一部の文字はキーボードから入力できません。そんな時はCHR$()コマンドを使います

PRINTコマンドは省略形の?でもOKですし()の中に指定するコード(数字は)は16進数でも10進数でも大丈夫です。

メモリにデータを書き込む
メモリにデータを書き込むにはPOKEコマンドを使用します。
POKE メモリのアドレス,書き込むデータ(数値)を指定します。
メモリの一部は表示される画面としても使われています。IchigoJamの画面のアドレス(番地は)#900からです。画面の左上が#900になります。画面の左上に♥(ハート)のマークを表示してみます。

POKEコマンドでして指定したアドレスから連続で書き込むこともできます。

POKEコマンドはPRINTコマンドの代わりに使用したりマシン語を使ったりする時にもできる便利なコマンドですが、メモリに直接データを書き込むので注意も必要です。プログラムで使用しているメモリに誤ってデータを書き込んでしまうとプログラムが壊れたり動作がおかしくなったりします。メモリの配置の把握は大切です。
IchigoJamのメモリマップ

メモリからデータを読み出す
メモリの値を読み出すにはPEEK()コマンドを使用します。
PEEK(読み出したいメモリのアドレス)
PEEK()コマンドで読み出した値は0~255の範囲になります。またPEEK()コマンドで読み出せるのは一度に一つのアドレスだけです。
POKEコマンドで#900に♥を表示してそのデータをPEEK()コマンドで読み出して見ます。

229は16進数でE5です。

画面上のデーターを読み出す
SCR()コマンドを使用すると画面上に表示されている文字のコードを読み出す事ができます。PEEK()は画面のアドレス指定していましたがをSCR()コマンドは画面上をXY座標で指定して読み出す事ができます。
SCR(x座標,y座標)で指定します。
画面はx座標は横に0~31,y座標は縦に0~23で構成されています。
SCR(0,0)で?,SCR(2,0)でHの文字コードを読み出しています。コードは10進数表記です。

キャラクターパターンを作る(PCG)
IchigoJamにはPCG(Programmable Character Generator)という文字のパターンを自由に変えることができる機能があります。PCGを使えはオリジナルな文字やキャラクタを作成できます。文字を変更できるのは文字コード#E0(224)~#FF(255)までの32文字です。
1文字は8×8ドットの白黒、1文字につき8バイト必要です。POKEコマンドを使ってメモリに書き込みます。
メモリのアドレスは#700から始まり、文字コード#E0(224)の文字は#700,#E1の文字は#708のメモリから定義します。
CHR$()コマンドで文字コードに対応する文字を取得できます。
もともと#E0に定義されている文字を確認してみます『←』矢印が定義されています。

次に文字を定義してみたいと思います。

漢字の『雨』を作ってみました。8×8の中で文字やキャラクタを表現するのはなかなか難しいです。

今回はここまでにしたいと思います。そろそろIchigoJamを使ったプロジェクトも始まるかもです。それではまた。

 

    上に戻る