-
Notifications
You must be signed in to change notification settings - Fork 4
/
PEEK.txt
executable file
·112 lines (90 loc) · 5.08 KB
/
PEEK.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
PEEK
IchigoJam BASIC 0.9.8~
IchigoJam BASIC RPi
IchigoJam PC
-----------------------------------------------------------
[ 機能 ]
仮想アドレス領域から値を取得します。
[ コマンド 書式 ]
PEEK(<番地>)
[ 例 ]
PEEK(#E0*8)
[ 解説 ]
<番地> は IchigoJam BASIC のバージョンにより、次が有効です。
() は正式版のバージョンです。
0.9.9-RC6 ~1.1 beta 7 #000~#FFF (1.0.0・1.0.1)
1.1 beta 8 ~1.1 beta 10 #000~#100F
1.1 beta 11~1.2 beta 3 #000~#101F (1.1.1)
1.2 beta 4 ~1.3 beta 1 #000~#1081 (1.2.0~1.2.3)
1.3 beta 2 #000~#112B
1.3 beta 3 ~ #000~#117F(1.3.0~)
IchigoCake BASIC は値が異なります。
1.3 系 #000~#1F7F(1.3.2)
下記は 0.9.9-RC6 以降で有効になります。
それ以前ではキャラクターパターンなど一部が有効です。
キャラクターパターンの変更は <番地> #000~#7FF で対応し、
キャラクターコード 0(#00)~255(#FF)のパターンを取得できます。
キャラクターコード番号×8から8つの番地(+0~+7)が1文字で構成されます。
番地の若い順に上から入っています。
POKE と異なり、全キャラクターコードを取得可能です。
配列および変数が <番地> #800~#8FF に対応します。
下位8ビット・上位8ビットの順で、一番上位のビットが符号ビットです。
#800~#801 が [0]、#802~#803 が [1] ……とつづき、#8CA~#8CB の [101] まで、
つづいて #8CC~#8CD が変数 A から変数がつづき、#8FE~#8FF の変数 Z となります。
IchigoCake BASIC では [102]~[357] が存在します。
そのアドレスは #C00~#Dff に対応します。
影響でプログラム以降の値が異なります。
画面表示のキャラクターが #900~#BFF に対応します。
VIDEO 1・2 の場合 #900 が横座標 0、縦座標 0 のキャラクターコード、そこから横につづき、
#BFF の横座標 31、縦座標 23 までです。
VIDEO 3 以降および SWITCH では
#900 が横座標 0、縦座標 0 を先頭に使用します。後ろが空き領域になります。
プログラムが #C00~#1001 に対応します。
IchigoCake BASIC は #E00~#1E01 です。
行番号 2 番地分(下位8ビット・上位8ビットの順)、
文字数 1 番地分(終了コードを含む) の後
行番号を除いたプログラムそのものが入ります。
終了コードは #00 で1バイトですが、
次の番地が奇数の場合はもう 1 バイト #00 を追加します。
これにより、行番号は必ず偶数の番地になるようにしています。
1024 バイトになると終了コード分が #1000~#1001 に入り、
1.1 beta8(正式版 1.1.0)以降はこれを検出できます。
矢印キー・スペースキーのキー状態は #1002 に対応します。
(1.1 beta 8(正式版 1.1.0)以降)
IchigoCake BASIC は #1E02 です。
ただし、IchigoCake BASIC 1.3 系では初期化されず意図しない値を得るため、
POKE #1E02,0 を予め実行して下さい。
押されている状態に合わせて、次の加算となります。
1 ← 矢印 左キー
2 → 矢印 右キー
4 ↑ 矢印 上
8 ↓ 矢印 下
16 SPACE スペースキー
1.3.2b17(正式版 1.4,0)より BTN(-1) で同じ値を得られます。
キーバッファ・受信バッファはバージョンにより、次に対応します。
() は正式版のバージョンです。
1.1 beta 8 ~1.1 beta 10 #1003~#100F
1.1 beta 11~1.2 beta 3 #1003~#101F (1.1.1)
1.2 beta 4 ~1.3 beta 1 #1003~#1081 (1.2.0~1.2.3)
1.3 beta 2 #1003~#1043
1.3 beta 3 ~ #1003~#1081
IchigoCake BASIC は値が異なります。
1.3 系 #1E03~#1E81
#1003・#1E03 はバッファに入っている文字数で
#1004・#1E04 以降が実際に入っているキャラクターとなります。
処理を高速にするため、
取得した場合でもバッファはクリアしない場合があります。
取得する場合は必ず #1003・#1E03 の文字数を確認して下さい。
ラインバッファは #1082~#1149 に対応します。
(1.3b3(正式版 1.3.0)以降。1.3b2 のみ #1044~#110B)
IchigoCake BASIC は #1E82~#1F49 です。
1 行入力して Enter(return)キーを押した際、
一時的にラインバッファへ入力した内容を蓄えます。
I2C バッファは #114A~#117F に対応します。
(1.3b3(正式版 1.3.0)以降。1.3b2 のみ #110C~#112B)
IchigoCake BASIC は #1F4A~#1F7F です。
IoT.IN・IoT.OUT コマンドを実行した際の
I2C コマンド生成用に用いられます。
マシン語を入れた場合、マシン語本体、
または USR で実行した結果の値取得として PEEK を取得できます。
IchigoJam PC は CPU が異なるため、USR は使用できません。