-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMEM_MAP.txt
77 lines (54 loc) · 2.85 KB
/
MEM_MAP.txt
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
■ メモリマップ(IchigoJam相対アドレス)
#000〜#6FF キャラクタ領域(読み取り専用 224文字 0x00~0xDF)
#700〜#7FF キャラクタ領域(書き込み可能 32文字 0xE0~0xFF)
#800〜#8FF 変数領域 #800~#8CB:[0]~[101] #8CC~#8FF:A~Z(26次)
#900〜#BFF VRAM領域 32x24 ちょうど768バイト(0x300)
#C00〜#1001 プログラム領域(プログラム1024バイト+管理2バイト)
#1002 キー押下状態(5bit) 押=1 上位からスペース,下,上,右,左※1
#1003 キーバッファ格納数(Ver 1.1:最大14、Ver 1.2:最大126)
#1004〜#100F(Ver 1.1), 〜#1081(Ver 1.2) キーバッファ
INKEY()で先頭から読み出されシフト
#100F~(Ver 1.1), #1081~(Ver 1.2) 実行用メモリ
ダイレクトモード時には文字列変数にも割り当てられる。
#114A~#117F(Ver 1.3) I2Cデータ用バッファ
変数領域
2byte符号付き整数の変数(配列0〜101、変数A〜Z)
プログラム領域
行番号(2byte)※0で終了、サイズ(1byte)、テキスト
※1:Ver 1.1以降 (参考文献) http://fukuno.jig.jp/1178
■ IchigoJam BASIC コマンド
「HELP」にてメモリマップ表示が可能
■ 使用例
fori=#C00to#C1F:?hex$(i,3),chr$(peek(i)),peek(i):next
■ 相対アドレスの基準ポインタ
マシン語呼び出しの第二パラメータにMEM#000の基準ポインタ
(IchigoJam BASIC Ver 1.1)
#include
int16_t usr_calc(int16_t val, char* mem) {
int i;
for (i = 0; i < 32 * 24; i++) {
mem[i + 0x900] = val;
}
return 0;
}
(参考文献) http://fukuno.jig.jp/1173
----------------------------------------------------------------
ライセンス・著作権表示
本資料を複製・改変・再配布する場合は著作権表示が必要です。
CC BY (C) 2015-2019 国野亘 (Wataru KUNINO)
https://bokunimo.net/ichigojam/
----------------------------------------------------------------
参考文献
作成にあたり以下の情報を参照しました。
- http://ichigojam.net/IchigoJam.html
CC BY http://ichigojam.net/
- Facebook IchigoJam-FANグループ
https://www.facebook.com/groups/ichigojam/
- ichigojam-1.1b6.zipの新バージョン(アップロード)
https://www.facebook.com/groups/ichigojam/634011960071894/
- キーバッファのメモリ領域公開! CC BY 4.0 福野泰介
http://fukuno.jig.jp/1178
- マシン語の凄さ体感プログラム CC BY 4.0 福野泰介
http://fukuno.jig.jp/1173
- IchigoJam ver 1.3 は何が違うのか? CC BY 4.0 福野泰介
https://fukuno.jig.jp/2378