IchigoJamで自分自身をLIST表示するプログラム
IcigoJamでは現在実行している(RAMにロードしている)プログラムは、
#C00のアドレスから次のような感じで管理されています。
1行ごとの格納形式は下記の通りです。
先頭3バイト+プログラム文となります。



・・・・・
プログラム(テキスト文字列)部の終端にはNULL文字が付くためデータ長は
行内プログラム長さ+1バイトとなります。
また、バウンダリー調整のためテキスト文字列部の後半はNULL文字が埋まって
いる場合があります。
次の行のアドレスは3+行内プログラム長さ+1 となります。
行番号が0の場合が未使用領域となるようです。
行番号2バイトが1バイト目が下位8ビット、2バイト目が上位8ビットです。
10行の場合は、 #0A #00 となります。
この領域もPEEK、POKE命令で読み書き出来ます。
下記は「自分自身のプログラムを表示するプログラム」です。
10 'ジブンヲヒョウジスル プロウラム
20 P=#C00
30 'ギョウバンゴウ シュトク
40 N=PEEK(P)+PEEK(P+1)<<8
50 IF N=0 THEN END
60 ? N;" ";
70 P=P+2
80 'ナガサノシュトク
90 L=PEEK(P)
100 P=P+1
110 FORI=0 TO L-1
120 ?CHR$(PEEK(P));
130 P=P+1
140 NEXT
150 ?""
160 P=P+1
170 GOTO 30
|
実行結果

LISTコマンドのような結果が出力出来ました。
このプログラムで、管理構造が把握出来ました。
« arduino IDE 1.6.4 で ARM STM32F103C8T6を使ってみる | トップページ | STM32F103C8T6ボードでLチカ »
「IchigoJam」カテゴリの記事
- Ichigojam Rが届きました(2021.02.05)
- β版 IchigoJam Rを予約注文しました(2021.01.23)
- IchigoJamのファームウェア 1.4.1が正式に公開されました(2019.12.10)
- 「ichigoツール」をGithubにて公開しました(2019.11.09)
- ichigojamのファームウェアを1.4b13にアップデートしました(2019.11.06)
« arduino IDE 1.6.4 で ARM STM32F103C8T6を使ってみる | トップページ | STM32F103C8T6ボードでLチカ »

コメント