4 /* マクロ命令「IN IBUF,LEN」をメモリに書込 */
12 bool writeIN(const char *ibuf, const char *len, PASS pass)
17 writememory(0x7001, ptr++, pass);
18 writememory(0x0, ptr++, pass);
20 writememory(0x7002, ptr++, pass);
21 writememory(0x0, ptr++, pass);
23 writememory(0x1210, ptr++, pass);
24 writememory(getadr(prog, ibuf, pass), ptr++, pass);
26 writememory(0x1220, ptr++, pass);
27 writememory(getadr(prog, len, pass), ptr++, pass);
29 writememory(0xF000, ptr++, pass);
30 writememory(0x0001, ptr++, pass);
32 writememory(0x7120, ptr++, pass);
34 writememory(0x7110, ptr++, pass);
41 /* マクロ命令「OUT OBUF,LEN」をメモリに書込 */
52 bool writeOUT(const char *obuf, const char *len, PASS pass)
57 writememory(0x7001, ptr++, pass);
58 writememory(0x0, ptr++, pass);
60 writememory(0x7002, ptr++, pass);
61 writememory(0x0, ptr++, pass);
63 writememory(0x1210, ptr++, pass);
64 writememory(getadr(prog, obuf, pass), ptr++, pass);
66 writememory(0x1220, ptr++, pass);
67 writememory(getadr(prog, len, pass), ptr++, pass);
69 writememory(0xF000, ptr++, pass);
70 writememory(0x0002, ptr++, pass);
72 writememory(0x1210, ptr++, pass);
76 writememory(lptr, ptr++, pass); /* リテラルのアドレスを書込 */
78 writememory(0xA, lptr++, pass);
80 writememory(0x1220, ptr++, pass);
84 writememory(lptr, ptr++, pass); /* リテラルのアドレスを書込 */
86 writememory(0x1, lptr++, pass);
88 writememory(0xF000, ptr++, pass);
89 writememory(0x0002, ptr++, pass);
91 writememory(0x7120, ptr++, pass);
93 writememory(0x7110, ptr++, pass);
100 /* マクロ命令「RPUSH」をメモリに書き込む
109 bool writeRPUSH(PASS pass) {
113 for(i = 1; i <= 7; i++) {
114 writememory(0x7000 + i, ptr++, pass); /* PUSH GRn */
115 writememory(0x0, ptr++, pass);
123 /* マクロ命令「RPOP」をメモリに書き込む
133 bool writeRPOP(PASS pass) {
136 for(i = 7; i >= 1; i--) {
137 writememory((0x7100 + (i << 4)), ptr++, pass); /* POP GRn */