
--------------------------------------------------------------------------------
単純書き込み
dipstar
0XXXXXXX 000000YY
アドレスXXXXXXXにバイトYYを書き込む。
1XXXXXXX 0000YYYY
アドレスXXXXXXXにハーフワードYYYYを書き込む。
2XXXXXXX YYYYYYYY
アドレスXXXXXXXにワードYYYYYYYYを書き込む。
AR-DS
2XXXXXXX 000000YY
アドレスXXXXXXXにバイトYYを書き込む。
1XXXXXXX 0000YYYY
アドレスXXXXXXXにハーフワードYYYYを書き込む。
0XXXXXXX YYYYYYYY
アドレスXXXXXXXにワードYYYYYYYYを書き込む。
---------------------------------------------------------------------------------
AR-DSの比較コードについて
AR-DSの比較判定コードは、必ずD0000000 00000000コードとセットで使われ、条件を満たすときに
比較コードとDコードの間に記述されたコードを実行する仕組みになっています。
わかりやすく言うと、ドイツ語の枠構造のようなものです。
---------------------------------------------------------------------------------
比較判定コード(バイト)
dipstar
EXXXXXXX 000000YY
アドレスXXXXXXXの値がYY(バイト)ならば次行のコードを実行。
AR-DS
9XXXXXXX FF0000YY
D0000000 00000000
アドレスXXXXXXXの値がYY(バイト)ならばD0000000 00000000までのコードを実行。 偶数アドレスのみ。
9XXXXXXX 00FFYY00
D0000000 00000000
アドレスXXXXXXXの値がYY(バイト)ならばD0000000 00000000までのコードを実行。 奇数アドレスのみ。
(例)上キーを押すとアドレス021F0000に000003E7を書き込む。
94000130 FF0000BF
121F0000 000003E7
D0000000 00000000
---------------------------------------------------------------------------------
比較判定コード(ハーフワード)
dipstar
EXXXXXXX 1000YYYY
アドレスXXXXXXXの値がYYYY(ハーフワード)ならば次行のコードを実行。
AR-DS
9XXXXXXX 0000YYYY
D0000000 00000000
アドレスXXXXXXXの値がYYYY(ハーフワード)ならばD0000000 00000000までのコードを実行。
---------------------------------------------------------------------------------
比較判定コード(ワード)
dipstar
DXXXXXXX YYYYYYYY
アドレスXXXXXXXの値がYYYYYYYY(ワード)ならば次行のコードを実行。
AR-DS
5XXXXXXX YYYYYYYY
D0000000 00000000
アドレスXXXXXXXの値がYYYYYYYY(ワード)ならばD0000000 00000000までのコードを実行
---------------------------------------------------------------------------------
シリアルコード
dipstar
4XXXXXXX YYYYYYYY
W000ZZZZ UUUUUUUU
アドレスXXXXXXXに、パラメータYYYYYYYYを書き込む…という点は他のコードと同じですが、
W=書き込むデータのバイトサイズ(0=BYTE 1=HalfWORD 2=WORD)
ZZZZ=書き込む回数
UUUUUUUU=書き込むステップ幅
AR-DS
ワード型
D5000000 YYYYYYYY
C0000000 ZZZZZZZZ
D6000000 XXXXXXXX
DC000000 UUUUUUUU
D1000000 00000000
YYYYYYYY=書き込む値
XXXXXXXX=開始アドレス
ZZZZZZZZ=書き込む回数-1
UUUUUUUU=書き込むステップ幅-4
ハーフワード型
D5000000 0000YYYY
C0000000 ZZZZZZZZ
D7000000 XXXXXXXX
DC000000 UUUUUUUU
D1000000 00000000
0000YYYY=書き込む値
XXXXXXXX=開始アドレス
ZZZZZZZZ=書き込む回数-1
UUUUUUUU=書き込むステップ幅-2
バイト型
D5000000 000000YY
C0000000 ZZZZZZZZ
D7000000 XXXXXXXX
DC000000 UUUUUUUU
D1000000 00000000
000000YY=書き込む値
XXXXXXXX=開始アドレス
ZZZZZZZZ=書き込む回数-1
UUUUUUUU=書き込むステップ幅-1
---------------------------------------------------------------------------------
加減算コード(バイト)
dipstar
301000YY XXXXXXXX
アドレスXXXXXXXXの1バイトにYYを加算しつづける
302000YY XXXXXXXX
アドレスXXXXXXXXの1バイトからYYを減算しつづける
AR-DS
023FE4D8 0A000003
DB000000 XXXXXXXX
D4000000 YYYYYYYY
D8000000 XXXXXXXX
DC000000 FFFFFFFF
アドレスXXXXXXXXの1バイトにYYYYYYYYを加算しつづける(YYYYYYYYは負の数も可)
---------------------------------------------------------------------------------
加減算コード(ハーフワード)
dipstar
3030YYYY XXXXXXXX
アドレスXXXXXXXXの2バイトにYYYYを加算しつづける
3040YYYY XXXXXXXX
アドレスXXXXXXXXの2バイトからYYYYを減算しつづける
AR-DS
DA000000 XXXXXXXX
D4000000 YYYYYYYY
D7000000 XXXXXXXX
DC000000 FFFFFFFE
アドレスXXXXXXXXの2バイトにYYYYYYYYを加算しつづける(YYYYYYYYは負の数も可)
---------------------------------------------------------------------------------
加減算コード(ワード)
dipstar
30500000 XXXXXXXX
YYYYYYYY 00000000
アドレスXXXXXXXXの4バイトにYYYYYYYYを加算しつづける
30600000 XXXXXXXX
YYYYYYYY 00000000
アドレスXXXXXXXXの4バイトからYYYYYYYYを減算しつづける
AR-DS
D9000000 XXXXXXXX
D4000000 YYYYYYYY
D6000000 XXXXXXXX
DC000000 FFFFFFFC
アドレスXXXXXXXXの4バイトにYYYYYYYYを加算しつづける(YYYYYYYYは負の数も可)
---------------------------------------------------------------------------------
キーコード
dipstar
C1000000 X0000YYY
X=ビットマスク(0=反転あり 1=反転なし)
YYY=キーコード
ビットマスクとキーコードの対応及び割り当ては以下の通りです。
MASK 0×6個
X=0 000000 0 0 0 0 0 0 0 0 0 0 .. 押さない=0/押す=1 (例)A=00000001
X=1 000000 1 1 1 1 1 1 1 1 1 1 .. 押さない=1/押す=0 (例)A=100003FE
このコードで判定した場合は
C1000000 100003FE (A判定)だけでA以外のボタンを同時に押しても発動します。
AR-DS
キーコード1
94000130 YYYYXXXX
D0000000 00000000
YYYYについて
判定に使用したいビットを0、それ以外は0にする。
XXXXについて
判定に使用したいビットは以下の表を元に決定し、それ以外のビットは0にする。
L R 下 上 左 右 ST SL B A
****** 1 1 1 1 1 1 1 1 1 1 .. 押さない
****** 0 0 0 0 0 0 0 0 0 0 .. 押す
キーコード2
94000136 YYYYXXXX
D0000000 00000000
YYYYについて
判定に使用したいビットを0、それ以外は1にする。
XXXXについて
判定に使用したいビットは以下の表を元に決定し、それ以外のビットは0にする。
********上画面 下画面 **** Y X
1 0 0 0 ..閉じる/触れる/押す
0 1 1 1 ..開ける/触れない/押さない
(例1)DSの上画面を閉じるとアドレス021F0000に000003E7を書き込む。
94000136 FF7F0080
121F0000 000003E7
D0000000 00000000
(例2-1)上キーとYボタンを同時押しするとアドレス021F0000に000003E7を書き込む。
94000130 FFBF0000
94000136 FFFD0000
121F0000 000003E7
D0000000 00000000
D0000000 00000000
この例のように、コードの最後でD0000000 00000000コードが
二行以上続くときは、D2000000 00000000コードを使用することで
一行にまとめることが出来ます。
すなわち、
(例2-2)上キーとYボタンを同時押しするとアドレス021F0000に000003E7を書き込む。
94000130 FFBF0000
94000136 FFFD0000
121F0000 000003E7
D2000000 00000000
---------------------------------------------------------------------------------