setnz8-shift	static inline void setnz8(u1 const al) { flagnz = (u4)al << 8; }	static inline void setnz8(u1 const al) { flagnz = (u4)al << 7; }
setnz16-keep-ecx	r[R_ECX] = (r[R_ECX] & 0xFFFF0000u) | ax;	r[R_ECX] = ax;
set8-full-store	#define SET8(v, b) ((v) = ((v) & 0xFFFFFF00u) | (u1)(b))	#define SET8(v, b) ((v) = (u1)(b))
set16-full-store	#define SET16(v, w) ((v) = ((v) & 0xFFFF0000u) | (u2)(w))	#define SET16(v, w) ((v) = (u2)(w))
reload-table-ebx	r[R_EBX] = (r[R_EBX] & 0xFFFFFF00u) | (u1)r[R_EDX];	r[R_EBX] = (u1)r[R_EDX];
cld-mask	r[R_EDX] &= ~0x08u;	r[R_EDX] &= ~0x04u;
sec-value	void c_COp38(u4* const r) /* SEC i */\n{\n    (void)r;\n    flagc = 0xFF;	void c_COp38(u4* const r) /* SEC i */\n{\n    (void)r;\n    flagc = 1;
bra-offset	            r[R_ESI] += (u4)rel;	            r[R_ESI] += (u4)rel + 1;
bra-eax	r[R_EAX] = (u4)rel;	r[R_EAX] = (u4)(u1)rel;
txs-emul	    SET16(xs, GET16(r[R_EAX]));\n    if (xe & 1) {\n        xs = (xs & 0xFFFF00FFu) | 0x0100u;	    SET16(xs, GET16(r[R_EAX]));\n    if (xe & 1) {\n        xs = (xs & 0xFFFF0000u) | 0x0100u;
tcs-emul-width	SET8(xs, GET8(r[R_EAX]));	SET16(xs, GET16(r[R_EAX]));
xba-swap	AX(r, (u2)((GET8(xa) << 8) | ((xa >> 8) & 0xFFu)));	AX(r, (u2)GET16(xa));
xba-flags	    SET16(xa, GET16(r[R_EAX]));\n    setnz8(GET8(r[R_EAX]));	    SET16(xa, GET16(r[R_EAX]));\n    setnz16(r, GET16(r[R_EAX]));
sei-bit	r[R_EDX] |= 0x04u;	r[R_EDX] |= 0x08u;
stp-dir	void c_COpDB(u4* const r) /* STP i */\n{\n    r[R_ESI]--;\n}	void c_COpDB(u4* const r) /* STP i */\n{\n    r[R_ESI]++;\n}
bcc-sense	BRANCH(c_COp90, (flagc & 0x01u) == 0)	BRANCH(c_COp90, (flagc & 0x01u) != 0)
beq-mask	BRANCH(c_COpF0, (flagnz & 0xFFFFu) == 0)	BRANCH(c_COpF0, (flagnz & 0xFFFFFFFFu) == 0)
bmi-mask	BRANCH(c_COp30, (flagnz & 0x18000u) != 0)	BRANCH(c_COp30, (flagnz & 0x8000u) != 0)
bvs-mask	BRANCH(c_COp70, (flago & 0xFFu) != 0)	BRANCH(c_COp70, (flago & 0xFFFFu) != 0)
branch-eax-untaken	        if (taken) {                                       \	        if (1) {                                           \
branch-pc	        }                                                  \\n        r[R_ESI]++;                                        \	        }                                                  \\n        r[R_ESI] += 2;                                     \
rep-not	    AL(r, (u1)~imm);	    AL(r, imm);
rep-extra-mask	    int const extra = (imm & 0xC3u) != 0;\n\n    AL(r, imm);\n    r[R_ESI]++;\n    AL(r, (u1)~imm);	    int const extra = (imm & 0xC0u) != 0;\n\n    AL(r, imm);\n    r[R_ESI]++;\n    AL(r, (u1)~imm);
rep-emul	    if (xe & 1)\n        r[R_EDX] |= 0x30u;	    if (xe & 1)\n        r[R_EDX] |= 0x20u;
sep-narrow	        xx &= 0xFFFF00FFu; /* an 8-bit index register drops its high byte */	        xx &= 0xFFFF0000u;
sep-testbit	    reload_table(r);\n    if (r[R_EDX] & 0x10u) {\n        xx &= 0xFFFF00FFu; /* an 8-bit index register drops its high byte */	    reload_table(r);\n    if (r[R_EDX] & 0x20u) {\n        xx &= 0xFFFF00FFu; /* an 8-bit index register drops its high byte */
xce-early-out	    if (xe == GET8(r[R_EAX]))\n        return;	    if (xe != GET8(r[R_EAX]))\n        return;
xce-carry	    if (xe != 0)\n        flagc = 0xFF;	    if (xe == 0)\n        flagc = 0xFF;
xce-native-noreload	        r[R_EDX] |= 0x20u; /* native mode, and no table reload here */	        r[R_EDX] |= 0x20u; reload_table(r);
xce-stackand	        stackand = 0x01FF; /* emulation mode pins the stack to page one */	        stackand = 0xFFFF;
tcd-flags	    UpdateDPage(); /* the direct page moved; the access tables follow it */\n    setnz16(r, GET16(r[R_EAX]));	    UpdateDPage();\n    setnz8(GET8(r[R_EAX]));
push8-stackor	    SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) - 1) | stackor);\n}\n\nstatic inline u1 pop8	    SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) - 1) & stackor);\n}\n\nstatic inline u1 pop8
pop8-stackand	    SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + 1) & stackand);	    SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + 1) | stackand);
push16-order	        push8(r, (u1)((src) >> 8));        \\n        push8(r, GET8(src));               \	        push8(r, GET8(src));               \\n        push8(r, (u1)((src) >> 8));        \
membank-noebx	    r[R_EBX] = MemSeamB;	    (void)MemSeamB;
membank-noecx	    r[R_ECX] = MemSeamC;	    (void)MemSeamC;
pop16-lowbyte	        AX(r, (u2)((u2)hi << 8 | GET8(dst)));                \	        AX(r, (u2)((u2)hi << 8 | GET8(r[R_EAX])));           \
php-makedl	void c_COp08(u4* const r) /* PHP s */\n{\n    r[R_EDX] = makedl(r[R_EDX]);	void c_COp08(u4* const r) /* PHP s */\n{
plp-bh	    r[R_EBX] &= 0xFFFF00FFu; /* xor bh,bh */	    r[R_EBX] &= 0xFFFFFFFFu;
plp-emul-narrow	    if (xe & 1) {\n        r[R_EDX] |= 0x30u;\n        reload_table(r);\n        return;\n    }	    if (xe & 1) {\n        r[R_EDX] |= 0x30u;\n        reload_table(r);\n        xx &= 0xFFFF00FFu;\n        return;\n    }
pea-order	    push8(r, p[1]);\n    push8(r, p[0]);	    push8(r, p[0]);\n    push8(r, p[1]);
pea-pc	    SET16(xs, GET16(r[R_ECX]));\n    r[R_ESI] += 2;	    SET16(xs, GET16(r[R_ECX]));\n    r[R_ESI] += 1;
pei-ah	    r[R_EAX] &= 0xFFFF00FFu; /* xor ah,ah */	    r[R_EAX] &= 0xFFFFFFFFu;
pei-dp	    SET16(r[R_ECX], GET16(xd));	    SET16(r[R_ECX], GET16(xa));
per-map	    map = (r[R_EAX] & 0x8000u) ? snesmmap : snesmap2;	    map = (r[R_EAX] & 0x8000u) ? snesmap2 : snesmmap;
per-plus2	    AX(r, (u2)(GET16(r[R_EAX]) + 2));	    AX(r, (u2)(GET16(r[R_EAX]) + 1));
per-clearebx	    push16_ax(r);\n    r[R_EBX] = 0;	    push16_ax(r);
push16ax-saved	    AL(r, (u1)(GET16(r[R_EAX]) >> 8));\n    bank0_call(r, c_membank0w8);\n    r[R_EAX] = saved;	    AL(r, (u1)(GET16(r[R_EAX]) >> 8));\n    bank0_call(r, c_membank0w8);\n    r[R_EAX] = r[R_EAX];
idx-bank-carry	    if (sum > 0xFFFFu)\n        SET8(r[R_EBX], (u1)(GET8(r[R_EBX]) + 1));	    if (sum > 0xFFFFFu)\n        SET8(r[R_EBX], (u1)(GET8(r[R_EBX]) + 1));
imm16-dword	    r[R_EAX] = *(u4 const*)(uintptr_t)r[R_ESI];	    SET16(r[R_EAX], *(u2 const*)(uintptr_t)r[R_ESI]);
imm16-pc	    r[R_EAX] = *(u4 const*)(uintptr_t)r[R_ESI];\n    r[R_ESI] += 2;	    r[R_EAX] = *(u4 const*)(uintptr_t)r[R_ESI];\n    r[R_ESI] += 4;
abs-bank	        SET8(r[R_EBX], GET8(xdb));                              \\n        r[R_ESI] += 2;                                          \	        SET8(r[R_EBX], GET8(xpb));                              \\n        r[R_ESI] += 2;                                          \
absl-bank	        SET8(r[R_EBX], *(u1 const*)(uintptr_t)(r[R_ESI] + 2));  \	        SET8(r[R_EBX], GET8(xdb));                              \
absl-pc	        r[R_ESI] += 3;	        r[R_ESI] += 2;
dp-operand-esi	    SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);\n    r[R_ECX] = xd;\n    r[R_ESI]++;	    SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);\n    SET16(r[R_ECX], GET16(xd));\n    r[R_ESI]++;
dpidx-bx	        r[R_ECX] = xd;                                            \\n        SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);          \\n        SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + GET16(r[R_EBX]))); \\n        r[R_ESI]++;                                               \\n        SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + GET16(idx)));      \	        r[R_ECX] = xd;                                            \\n        SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);          \\n        SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + GET8(r[R_EBX])));  \\n        r[R_ESI]++;                                               \\n        SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + GET16(idx)));      \
sprel-base	    SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);\n    SET16(r[R_ECX], GET16(xs));	    SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);\n    SET16(r[R_ECX], GET16(xd));
longind-plus2	    SET16(r[R_ECX], (u2)(addr + 2));	    SET16(r[R_ECX], (u2)(addr + 1));
longind-bank	        SET8(r[R_EBX], GET8(r[R_EAX]));	        SET8(r[R_EBX], GET8(xdb));
dind-bank	#define DIND(name, tab, idx, save)        \\n    static void name(u4* const r)         \\n    {                                     \\n        u2 const keep = GET16(r[R_EAX]);  \\n        (void)keep;                       \\n        dp_operand(r);                    \\n        mem_call(r, DPageR16);            \\n        SET16(r[R_ECX], GET16(r[R_EAX])); \\n        SET8(r[R_EBX], GET8(xdb));        \\n        idx;                              \\n        if (save)                         \\n            SET16(r[R_EAX], keep);        \\n        tab(r);                           \\n    }	#define DIND(name, tab, idx, save)        \\n    static void name(u4* const r)         \\n    {                                     \\n        u2 const keep = GET16(r[R_EAX]);  \\n        (void)keep;                       \\n        dp_operand(r);                    \\n        mem_call(r, DPageR16);            \\n        SET16(r[R_ECX], GET16(r[R_EAX])); \\n        SET8(r[R_EBX], GET8(xpb));        \\n        idx;                              \\n        if (save)                         \\n            SET16(r[R_EAX], keep);        \\n        tab(r);                           \\n    }
dindx-index	#define DINDX(name, tab, save)                                    \\n    static void name(u4* const r)                                 \\n    {                                                             \\n        u2 const keep = GET16(r[R_EAX]);                          \\n        (void)keep;                                               \\n        r[R_ECX] = xd;                                            \\n        SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);          \\n        SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + GET16(r[R_EBX]))); \\n        r[R_ESI]++;                                               \\n        SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + GET16(xx)));       \\n        bank0_call(r, c_membank0r16);                             \\n        SET16(r[R_ECX], GET16(r[R_EAX]));                         \\n        SET8(r[R_EBX], GET8(xdb));                                \\n        if (save)                                                 \\n            SET16(r[R_EAX], keep);                                \\n        tab(r);                                                   \\n    }	#define DINDX(name, tab, save)                                    \\n    static void name(u4* const r)                                 \\n    {                                                             \\n        u2 const keep = GET16(r[R_EAX]);                          \\n        (void)keep;                                               \\n        r[R_ECX] = xd;                                            \\n        SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);          \\n        SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + GET16(r[R_EBX]))); \\n        r[R_ESI]++;                                               \\n        SET16(r[R_ECX], (u2)(GET16(r[R_ECX]) + GET16(xy)));       \\n        bank0_call(r, c_membank0r16);                             \\n        SET16(r[R_ECX], GET16(r[R_EAX]));                         \\n        SET8(r[R_EBX], GET8(xdb));                                \\n        if (save)                                                 \\n            SET16(r[R_EAX], keep);                                \\n        tab(r);                                                   \\n    }
lda8-flag	        flagnz = (u4)GET8(r[R_EAX]) << 8; \	        flagnz = (u4)GET8(r[R_EAX]) << 7; \
lda16-store	        SET16(xa, GET16(r[R_EAX]));    \	        xa = GET16(r[R_EAX]);          \
memcall-noebx	    r[R_EBX] = ebx;	    (void)ebx;
and16-width	    r[R_EAX] &= xa;	    AX(r, (u2)(GET16(r[R_EAX]) & GET16(xa)));
eor16-width	    r[R_EAX] ^= xa;	    AX(r, (u2)(GET16(r[R_EAX]) ^ GET16(xa)));
ora16-width	    AX(r, (u2)(GET16(r[R_EAX]) | GET16(xa)));	    r[R_EAX] |= xa;
ora8-store	    AL(r, (u1)(GET8(r[R_EAX]) | GET8(xa)));\n    flagnz = 0;\n    SET8(xa, GET8(r[R_EAX]));	    AL(r, (u1)(GET8(r[R_EAX]) | GET8(xa)));\n    flagnz = 0;\n    xa = GET8(r[R_EAX]);
cmp8-carry	    flagc = lhs < rhs ? 0 : 0xFF;\n}\nstatic inline void cmp16	    flagc = lhs < rhs ? 0xFF : 0;\n}\nstatic inline void cmp16
cmp16-carry	    flagnz = r[R_ECX];\n    flagc = lhs < rhs ? 0 : 0xFF;	    flagnz = r[R_ECX];\n    flagc = lhs < rhs ? 0xFF : 0;
cmp16-flagnz	    SET16(r[R_ECX], (u2)(lhs - rhs));\n    flagnz = r[R_ECX];	    SET16(r[R_ECX], (u2)(lhs - rhs));\n    flagnz = (u4)GET16(r[R_ECX]);
cmp8-width	    SET8(r[R_ECX], (u1)(lhs - rhs));	    SET16(r[R_ECX], (u2)(lhs - rhs));
cmp-lhs	static void o_CPX8(u4* const r) { cmp8(r, xx); }	static void o_CPX8(u4* const r) { cmp8(r, xa); }
ldx8-target	    SET8(xx, GET8(r[R_EAX]));\n    flagnz = (u4)GET8(r[R_EAX]) << 8;\n}\nstatic void o_LDX16	    SET8(xy, GET8(r[R_EAX]));\n    flagnz = (u4)GET8(r[R_EAX]) << 8;\n}\nstatic void o_LDX16
bit8-n	    flagnz = (v & 0x80u) ? 0x10000u : 0;	    flagnz = (v & 0x80u) ? 0x8000u : 0;
bit8-v	    flago = (v & 0x40u) ? 1u : 0;\n    flagnz = (flagnz & 0xFFFF0000u) | ((GET8(xa) & v) ? 1u : 0u);	    flago = (v & 0x20u) ? 1u : 0;\n    flagnz = (flagnz & 0xFFFF0000u) | ((GET8(xa) & v) ? 1u : 0u);
bit8-keepn	    flagnz = (flagnz & 0xFFFF0000u) | ((GET8(xa) & v) ? 1u : 0u);	    flagnz = ((GET8(xa) & v) ? 1u : 0u);
bit16-z	    flagnz = (flagnz & 0xFFFF0000u) | ((GET16(xa) & v) ? 1u : 0u);	    flagnz = (flagnz & 0xFFFF0000u) | ((GET16(xa) & v) ? 0u : 1u);
write-saveax	        if (save)                         \\n            SET16(r[R_EAX], keep);        \\n        tab(r);                           \\n	        if (0)                             \\n            SET16(r[R_EAX], keep);        \\n        tab(r);                           \\n
sta16-width	static void o_STA16(u4* const r) { r[R_EAX] = xa; }	static void o_STA16(u4* const r) { AX(r, GET16(xa)); }
stz16-width	static void o_STZ16(u4* const r) { r[R_EAX] = 0; }	static void o_STZ16(u4* const r) { AX(r, 0); }
stz8-width	static void o_STZ8(u4* const r) { AL(r, 0); }	static void o_STZ8(u4* const r) { r[R_EAX] = 0; }
accA-ni-width	static void a_A_16ni(u4* const r) { AX(r, GET16(xa)); }	static void a_A_16ni(u4* const r) { r[R_EAX] = xa; }
absni-advances	#define ABSNI(name, tab, idx)                             \\n    static void name(u4* const r)                         \\n    {                                                     \\n        SET16(r[R_ECX], *(u2 const*)(uintptr_t)r[R_ESI]); \\n        SET8(r[R_EBX], GET8(xdb));                        \\n        idx;                                              \\n        tab(r);                                           \\n	#define ABSNI(name, tab, idx)                             \\n    static void name(u4* const r)                         \\n    {                                                     \\n        SET16(r[R_ECX], *(u2 const*)(uintptr_t)r[R_ESI]); \\n        SET8(r[R_EBX], GET8(xdb));                        \\n        r[R_ESI] += 2;                                    \\n        idx;                                              \\n        tab(r);                                           \\n
dni-advances	    SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);\n    r[R_ECX] = xd;\n    mem_call(r, DPageR8);	    SET8(r[R_EBX], *(u1 const*)(uintptr_t)r[R_ESI]);\n    r[R_ECX] = xd;\n    r[R_ESI]++;\n    mem_call(r, DPageR8);
carryin-cl	    SET8(r[R_ECX], (u1)(cl + cl));	    (void)cl;
carryin-bit	    return (cl & 0x80u) != 0;	    return (cl & 0x01u) != 0;
asl8-carry	    setnzc8(GET8(r[R_EAX]), (v & 0x80u) != 0);\n}\nstatic void o_ASL16	    setnzc8(GET8(r[R_EAX]), (v & 0x01u) != 0);\n}\nstatic void o_ASL16
lsr8-carry	    setnzc8(GET8(r[R_EAX]), (v & 1u) != 0);\n}\nstatic void o_LSR16	    setnzc8(GET8(r[R_EAX]), (v & 0x80u) != 0);\n}\nstatic void o_LSR16
rol8-in	    AL(r, (u1)((u1)(v << 1) | (u1)ci));	    AL(r, (u1)(v << 1));
ror8-in	    AL(r, (u1)((v >> 1) | (u1)(ci << 7)));	    AL(r, (u1)(v >> 1));
ror16-in	    AX(r, (u2)((v >> 1) | (u2)(ci << 15)));	    AX(r, (u2)((v >> 1) | (u2)(ci << 7)));
setnzc-polarity	    flagc = cf ? 0xFF : 0;\n}\nstatic inline void setnzc16	    flagc = cf ? 0 : 0xFF;\n}\nstatic inline void setnzc16
incm8-flags	    AL(r, (u1)(GET8(r[R_EAX]) + 1));\n    flagnz = (u4)GET8(r[R_EAX]) << 8;	    AL(r, (u1)(GET8(r[R_EAX]) + 1));\n    flagnz = (u4)GET8(r[R_EAX]);
tsb-keepn	    flagnz = (flagnz & 0xFFFF0000u) | (nz ? 1u : 0u);	    flagnz = (nz ? 1u : 0u);
trb-not	    SET8(r[R_ECX], (u1)~cl);\n    AL(r, (u1)(GET8(r[R_EAX]) & GET8(r[R_ECX])));	    AL(r, (u1)(GET8(r[R_EAX]) & GET8(r[R_ECX])));
adc8-overflow	    nvzc8(r, ((a ^ (u1)sum) & (v ^ (u1)sum) & 0x80u) != 0, sum > 0xFFu);	    nvzc8(r, ((a ^ v) & (a ^ (u1)sum) & 0x80u) != 0, sum > 0xFFu);
sbc8-overflow	    nvzc8(r, ((a ^ v) & (a ^ (u1)dif) & 0x80u) != 0, (dif & 0x100u) == 0);	    nvzc8(r, ((a ^ (u1)dif) & (v ^ (u1)dif) & 0x80u) != 0, (dif & 0x100u) == 0);
sbc8-carry	    nvzc8(r, ((a ^ v) & (a ^ (u1)dif) & 0x80u) != 0, (dif & 0x100u) == 0);	    nvzc8(r, ((a ^ v) & (a ^ (u1)dif) & 0x80u) != 0, (dif & 0x100u) != 0);
borrowin-cond	    return cl == 0;	    return cl != 0;
borrowin-cl	    SET8(r[R_ECX], (u1)(cl - 1));	    (void)cl;
nvzc8-flagobyte	    SET8(flago, of ? 1 : 0);\n    flagnz = (u4)GET8(r[R_EAX]) << 8;	    flago = of ? 1 : 0;\n    flagnz = (u4)GET8(r[R_EAX]) << 8;
nvzc8-reloadal	    flagnz = 0;\n    AL(r, GET8(xa));	    flagnz = 0;
nvzc16-cx	    SET16(r[R_ECX], GET16(xa));\n    SET8(flago, of ? 1 : 0);	    SET8(flago, of ? 1 : 0);
daa-lownib	    if ((al & 0x0Fu) > 9 || af) {\n        *cf = oldcf || ((u4)al + 6u > 0xFFu);	    if ((al & 0x0Fu) > 8 || af) {\n        *cf = oldcf || ((u4)al + 6u > 0xFFu);
daa-highnib	    if (old > 0x99u || oldcf) {\n        al = (u1)(al + 0x60u);	    if (old > 0x9Au || oldcf) {\n        al = (u1)(al + 0x60u);
das-no-else	    if (old > 0x99u || oldcf) {\n        al = (u1)(al - 0x60u);\n        *cf = 1;\n    }\n    return al;	    if (old > 0x99u || oldcf) {\n        al = (u1)(al - 0x60u);\n        *cf = 1;\n    } else {\n        *cf = 0;\n    }\n    return al;
daa-af	    af = ((a ^ v ^ s) & 0x10u) != 0;\n    AL(r, daa_adj(s, &cf, af));	    af = 0;\n    AL(r, daa_adj(s, &cf, af));
decimal-v	    nvzc8(r, 0, cf);	    nvzc8(r, 1, cf);
adc16d-bytes	        cf = sum > 0xFFu;\n        AL(r, daa_adj(s, &cf, af));	        AL(r, daa_adj(s, &cf, af));\n        cf = sum > 0xFFu;
sbc16d-cmc	    nvzc16(r, 0, !cf); /* the `cmc` before the flag store */	    nvzc16(r, 0, cf);
bankbase-map	    if (eax & 0x8000u)\n        return snesmmap[ebx];	    if (eax & 0x8000u)\n        return snesmap2[ebx];
bankbase-dma-thresh	    if (dma && eax >= 0x4300u && memtabler8[ebx] == regaccessbankr8)	    if (dma && eax >= 0x4200u && memtabler8[ebx] == regaccessbankr8)
bankbase-dma-off	    if (dma && eax >= 0x4300u && memtabler8[ebx] == regaccessbankr8)\n        return dmadata - 0x4300;	    if (0)\n        return dmadata - 0x4300;
jumpto-initaddrl	    initaddrl = base;\n    r[R_ESI] = (u4)(uintptr_t)base + r[R_EAX];	    r[R_ESI] = (u4)(uintptr_t)base + r[R_EAX];
jmp4C-dma	    xpc = GET16(r[R_EAX]);\n    jump_to(r, 1);\n}\n\nvoid c_COp6C	    xpc = GET16(r[R_EAX]);\n    jump_to(r, 0);\n}\n\nvoid c_COp6C
brl-plus2	    SET16(r[R_EBX], (u2)(GET16(r[R_EBX]) + 2));\n    r[R_EAX] = 0;	    SET16(r[R_EBX], (u2)(GET16(r[R_EBX]) + 1));\n    r[R_EAX] = 0;
rts-plus1	    AX(r, (u2)(GET16(r[R_EAX]) + 1));\n    xpc = GET16(r[R_EAX]);\n    SET8(r[R_EBX], GET8(xpb));\n    jump_to(r, 0);\n}\n\nvoid c_COp6B	    xpc = GET16(r[R_EAX]);\n    SET8(r[R_EBX], GET8(xpb));\n    jump_to(r, 0);\n}\n\nvoid c_COp6B
jsr-retaddr	    SET16(r[R_EBX], (u2)(GET16(r[R_EBX]) + 1));\n    xpc = GET16(r[R_EBX]);\n    push_pc(r);\n    r[R_EAX] = 0;\n    SET16(xs, GET16(r[R_ECX]));\n    AX(r, *(u2 const*)(uintptr_t)r[R_ESI]);	    SET16(r[R_EBX], (u2)(GET16(r[R_EBX]) + 2));\n    xpc = GET16(r[R_EBX]);\n    push_pc(r);\n    r[R_EAX] = 0;\n    SET16(xs, GET16(r[R_ECX]));\n    AX(r, *(u2 const*)(uintptr_t)r[R_ESI]);
pushpc-order	    push8(r, (u1)(xpc >> 8));\n    push8(r, (u1)xpc);\n}	    push8(r, (u1)xpc);\n    push8(r, (u1)(xpc >> 8));\n}
jsl-plus2	    SET16(r[R_EBX], (u2)(GET16(r[R_EBX]) + 2));\n    xpc = GET16(r[R_EBX]);\n    SET16(r[R_ECX], GET16(xs));	    SET16(r[R_EBX], (u2)(GET16(r[R_EBX]) + 1));\n    xpc = GET16(r[R_EBX]);\n    SET16(r[R_ECX], GET16(xs));
mvn-index-width	    if (r[R_EDX] & 0x10u) { /* 8-bit index: only the low byte steps */\n        SET8(xx, (u1)(GET8(xx) + dir));	    if (r[R_EDX] & 0x20u) { /* 8-bit index: only the low byte steps */\n        SET8(xx, (u1)(GET8(xx) + dir));
mvn-end	    if (GET16(xa) == 0xFFFFu)\n        r[R_ESI] += 2;\n    else\n        r[R_ESI]--;	    if (GET16(xa) == 0u)\n        r[R_ESI] += 2;\n    else\n        r[R_ESI]--;
mvn-dir	void c_COp54(u4* const r) { block_move(r, +1); } /* MVN xyc */	void c_COp54(u4* const r) { block_move(r, -1); } /* MVN xyc */
wai-arm	    intrset = 1;\n    r[R_ESI]--;	    intrset = 2;\n    r[R_ESI]--;
bitim-nofold	    if (flagnz & 0x18000u)\n        flagnz |= 0x10000u;\n    r[R_ESI]++;	    r[R_ESI]++;
brk-emul-nobank	    if (!emul)\n        PUSHRAM(GET8(xpb));	    PUSHRAM(GET8(xpb));
brk-vector	    AX(r, emul ? vec8 : vec);	    AX(r, emul ? vec : vec8);
brk-flagbits	    SET8(r[R_EDX], (u1)((r[R_EDX] & 0xF3u) | (emul ? setbits8 : 0x04u)));	    SET8(r[R_EDX], (u1)((r[R_EDX] & 0xF3u) | 0x04u));
brk-irqbank	    SET8(r[R_EBX], emul ? GET8(xpb) : GET8(xirqb));	    SET8(r[R_EBX], GET8(xpb));
rti-emul-bank0	    SET8(r[R_EBX], emul ? 0 : GET8(xpb));	    SET8(r[R_EBX], GET8(xpb));
rti-wai	            && *(u1 const*)(uintptr_t)r[R_ESI] == 0xCBu)\n            intrset = 2;	            && *(u1 const*)(uintptr_t)r[R_ESI] == 0xCCu)\n            intrset = 2;
rti-table	    SET8(r[R_EBX], (u1)r[R_EDX]);\n    r[R_EDI] = (u4)(uintptr_t)tablead[r[R_EBX]];	    SET8(r[R_EBX], (u1)r[R_EDX]);
rti-curnmi	    curnmi = 0;	    curnmi = 1;
rti-narrow	    if (r[R_EDX] & 0x10u) {\n        xx &= 0xFFFF00FFu;\n        xy &= 0xFFFF00FFu;\n    }\n}\n\n/*\n * CLI	    if (0) {\n        xx &= 0xFFFF00FFu;\n        xy &= 0xFFFF00FFu;\n    }\n}\n\n/*\n * CLI
cli-bit	    r[R_EDX] &= ~0x04u;	    r[R_EDX] &= ~0x08u;
cli-return	    return (xe & 1) != 0;	    return 0;
