123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 |
- adc_const(0x69, adc, regs.p.m),
- and_const(0x29, and, regs.p.m),
- cmp_const(0xc9, cmp, regs.p.m),
- cpx_const(0xe0, cpx, regs.p.x),
- cpy_const(0xc0, cpy, regs.p.x),
- eor_const(0x49, eor, regs.p.m),
- lda_const(0xa9, lda, regs.p.m),
- ldx_const(0xa2, ldx, regs.p.x),
- ldy_const(0xa0, ldy, regs.p.x),
- ora_const(0x09, ora, regs.p.m),
- sbc_const(0xe9, sbc, regs.p.m) {
- 1:if($2) last_cycle();
- rd.l = op_readpc();
- if($2) { op_$1_b(); end; }
- 2:last_cycle();
- rd.h = op_readpc();
- op_$1_w();
- }
- adc_addr(0x6d, adc, regs.p.m),
- and_addr(0x2d, and, regs.p.m),
- bit_addr(0x2c, bit, regs.p.m),
- cmp_addr(0xcd, cmp, regs.p.m),
- cpx_addr(0xec, cpx, regs.p.x),
- cpy_addr(0xcc, cpy, regs.p.x),
- eor_addr(0x4d, eor, regs.p.m),
- lda_addr(0xad, lda, regs.p.m),
- ldx_addr(0xae, ldx, regs.p.x),
- ldy_addr(0xac, ldy, regs.p.x),
- ora_addr(0x0d, ora, regs.p.m),
- sbc_addr(0xed, sbc, regs.p.m) {
- 1:aa.l = op_readpc();
- 2:aa.h = op_readpc();
- 3:if($2) last_cycle();
- rd.l = op_readdbr(aa.w);
- if($2) { op_$1_b(); end; }
- 4:last_cycle();
- rd.h = op_readdbr(aa.w + 1);
- op_$1_w();
- }
- adc_addrx(0x7d, adc, regs.p.m),
- and_addrx(0x3d, and, regs.p.m),
- bit_addrx(0x3c, bit, regs.p.m),
- cmp_addrx(0xdd, cmp, regs.p.m),
- eor_addrx(0x5d, eor, regs.p.m),
- lda_addrx(0xbd, lda, regs.p.m),
- ldy_addrx(0xbc, ldy, regs.p.x),
- ora_addrx(0x1d, ora, regs.p.m),
- sbc_addrx(0xfd, sbc, regs.p.m) {
- 1:aa.l = op_readpc();
- 2:aa.h = op_readpc();
- 3:op_io_cond4(aa.w, aa.w + regs.x.w);
- 4:if($2) last_cycle();
- rd.l = op_readdbr(aa.w + regs.x.w);
- if($2) { op_$1_b(); end; }
- 5:last_cycle();
- rd.h = op_readdbr(aa.w + regs.x.w + 1);
- op_$1_w();
- }
- adc_addry(0x79, adc, regs.p.m),
- and_addry(0x39, and, regs.p.m),
- cmp_addry(0xd9, cmp, regs.p.m),
- eor_addry(0x59, eor, regs.p.m),
- lda_addry(0xb9, lda, regs.p.m),
- ldx_addry(0xbe, ldx, regs.p.x),
- ora_addry(0x19, ora, regs.p.m),
- sbc_addry(0xf9, sbc, regs.p.m) {
- 1:aa.l = op_readpc();
- 2:aa.h = op_readpc();
- 3:op_io_cond4(aa.w, aa.w + regs.y.w);
- 4:if($2) last_cycle();
- rd.l = op_readdbr(aa.w + regs.y.w);
- if($2) { op_$1_b(); end; }
- 5:last_cycle();
- rd.h = op_readdbr(aa.w + regs.y.w + 1);
- op_$1_w();
- }
- adc_long(0x6f, adc, regs.p.m),
- and_long(0x2f, and, regs.p.m),
- cmp_long(0xcf, cmp, regs.p.m),
- eor_long(0x4f, eor, regs.p.m),
- lda_long(0xaf, lda, regs.p.m),
- ora_long(0x0f, ora, regs.p.m),
- sbc_long(0xef, sbc, regs.p.m) {
- 1:aa.l = op_readpc();
- 2:aa.h = op_readpc();
- 3:aa.b = op_readpc();
- 4:if($2) last_cycle();
- rd.l = op_readlong(aa.d);
- if($2) { op_$1_b(); end; }
- 5:last_cycle();
- rd.h = op_readlong(aa.d + 1);
- op_$1_w();
- }
- adc_longx(0x7f, adc, regs.p.m),
- and_longx(0x3f, and, regs.p.m),
- cmp_longx(0xdf, cmp, regs.p.m),
- eor_longx(0x5f, eor, regs.p.m),
- lda_longx(0xbf, lda, regs.p.m),
- ora_longx(0x1f, ora, regs.p.m),
- sbc_longx(0xff, sbc, regs.p.m) {
- 1:aa.l = op_readpc();
- 2:aa.h = op_readpc();
- 3:aa.b = op_readpc();
- 4:if($2) last_cycle();
- rd.l = op_readlong(aa.d + regs.x.w);
- if($2) { op_$1_b(); end; }
- 5:last_cycle();
- rd.h = op_readlong(aa.d + regs.x.w + 1);
- op_$1_w();
- }
- adc_dp(0x65, adc, regs.p.m),
- and_dp(0x25, and, regs.p.m),
- bit_dp(0x24, bit, regs.p.m),
- cmp_dp(0xc5, cmp, regs.p.m),
- cpx_dp(0xe4, cpx, regs.p.x),
- cpy_dp(0xc4, cpy, regs.p.x),
- eor_dp(0x45, eor, regs.p.m),
- lda_dp(0xa5, lda, regs.p.m),
- ldx_dp(0xa6, ldx, regs.p.x),
- ldy_dp(0xa4, ldy, regs.p.x),
- ora_dp(0x05, ora, regs.p.m),
- sbc_dp(0xe5, sbc, regs.p.m) {
- 1:dp = op_readpc();
- 2:op_io_cond2();
- 3:if($2) last_cycle();
- rd.l = op_readdp(dp);
- if($2) { op_$1_b(); end; }
- 4:last_cycle();
- rd.h = op_readdp(dp + 1);
- op_$1_w();
- }
- adc_dpx(0x75, adc, regs.p.m),
- and_dpx(0x35, and, regs.p.m),
- bit_dpx(0x34, bit, regs.p.m),
- cmp_dpx(0xd5, cmp, regs.p.m),
- eor_dpx(0x55, eor, regs.p.m),
- lda_dpx(0xb5, lda, regs.p.m),
- ldy_dpx(0xb4, ldy, regs.p.x),
- ora_dpx(0x15, ora, regs.p.m),
- sbc_dpx(0xf5, sbc, regs.p.m) {
- 1:dp = op_readpc();
- 2:op_io_cond2();
- 3:op_io();
- 4:if($2) last_cycle();
- rd.l = op_readdp(dp + regs.x.w);
- if($2) { op_$1_b(); end; }
- 5:last_cycle();
- rd.h = op_readdp(dp + regs.x.w + 1);
- op_$1_w();
- }
- ldx_dpy(0xb6, ldx, regs.p.x) {
- 1:dp = op_readpc();
- 2:op_io_cond2();
- 3:op_io();
- 4:if($2) last_cycle();
- rd.l = op_readdp(dp + regs.y.w);
- if($2) { op_$1_b(); end; }
- 5:last_cycle();
- rd.h = op_readdp(dp + regs.y.w + 1);
- op_$1_w();
- }
- adc_idp(0x72, adc, regs.p.m),
- and_idp(0x32, and, regs.p.m),
- cmp_idp(0xd2, cmp, regs.p.m),
- eor_idp(0x52, eor, regs.p.m),
- lda_idp(0xb2, lda, regs.p.m),
- ora_idp(0x12, ora, regs.p.m),
- sbc_idp(0xf2, sbc, regs.p.m) {
- 1:dp = op_readpc();
- 2:op_io_cond2();
- 3:aa.l = op_readdp(dp);
- 4:aa.h = op_readdp(dp + 1);
- 5:if($2) last_cycle();
- rd.l = op_readdbr(aa.w);
- if($2) { op_$1_b(); end; }
- 6:last_cycle();
- rd.h = op_readdbr(aa.w + 1);
- op_$1_w();
- }
- adc_idpx(0x61, adc, regs.p.m),
- and_idpx(0x21, and, regs.p.m),
- cmp_idpx(0xc1, cmp, regs.p.m),
- eor_idpx(0x41, eor, regs.p.m),
- lda_idpx(0xa1, lda, regs.p.m),
- ora_idpx(0x01, ora, regs.p.m),
- sbc_idpx(0xe1, sbc, regs.p.m) {
- 1:dp = op_readpc();
- 2:op_io_cond2();
- 3:op_io();
- 4:aa.l = op_readdp(dp + regs.x.w);
- 5:aa.h = op_readdp(dp + regs.x.w + 1);
- 6:if($2) last_cycle();
- rd.l = op_readdbr(aa.w);
- if($2) { op_$1_b(); end; }
- 7:last_cycle();
- rd.h = op_readdbr(aa.w + 1);
- op_$1_w();
- }
- adc_idpy(0x71, adc, regs.p.m),
- and_idpy(0x31, and, regs.p.m),
- cmp_idpy(0xd1, cmp, regs.p.m),
- eor_idpy(0x51, eor, regs.p.m),
- lda_idpy(0xb1, lda, regs.p.m),
- ora_idpy(0x11, ora, regs.p.m),
- sbc_idpy(0xf1, sbc, regs.p.m) {
- 1:dp = op_readpc();
- 2:op_io_cond2();
- 3:aa.l = op_readdp(dp);
- 4:aa.h = op_readdp(dp + 1);
- 5:op_io_cond4(aa.w, aa.w + regs.y.w);
- 6:if($2) last_cycle();
- rd.l = op_readdbr(aa.w + regs.y.w);
- if($2) { op_$1_b(); end; }
- 7:last_cycle();
- rd.h = op_readdbr(aa.w + regs.y.w + 1);
- op_$1_w();
- }
- adc_ildp(0x67, adc, regs.p.m),
- and_ildp(0x27, and, regs.p.m),
- cmp_ildp(0xc7, cmp, regs.p.m),
- eor_ildp(0x47, eor, regs.p.m),
- lda_ildp(0xa7, lda, regs.p.m),
- ora_ildp(0x07, ora, regs.p.m),
- sbc_ildp(0xe7, sbc, regs.p.m) {
- 1:dp = op_readpc();
- 2:op_io_cond2();
- 3:aa.l = op_readdp(dp);
- 4:aa.h = op_readdp(dp + 1);
- 5:aa.b = op_readdp(dp + 2);
- 6:if($2) last_cycle();
- rd.l = op_readlong(aa.d);
- if($2) { op_$1_b(); end; }
- 7:last_cycle();
- rd.h = op_readlong(aa.d + 1);
- op_$1_w();
- }
- adc_ildpy(0x77, adc, regs.p.m),
- and_ildpy(0x37, and, regs.p.m),
- cmp_ildpy(0xd7, cmp, regs.p.m),
- eor_ildpy(0x57, eor, regs.p.m),
- lda_ildpy(0xb7, lda, regs.p.m),
- ora_ildpy(0x17, ora, regs.p.m),
- sbc_ildpy(0xf7, sbc, regs.p.m) {
- 1:dp = op_readpc();
- 2:op_io_cond2();
- 3:aa.l = op_readdp(dp);
- 4:aa.h = op_readdp(dp + 1);
- 5:aa.b = op_readdp(dp + 2);
- 6:if($2) last_cycle();
- rd.l = op_readlong(aa.d + regs.y.w);
- if($2) { op_$1_b(); end; }
- 7:last_cycle();
- rd.h = op_readlong(aa.d + regs.y.w + 1);
- op_$1_w();
- }
- adc_sr(0x63, adc, regs.p.m),
- and_sr(0x23, and, regs.p.m),
- cmp_sr(0xc3, cmp, regs.p.m),
- eor_sr(0x43, eor, regs.p.m),
- lda_sr(0xa3, lda, regs.p.m),
- ora_sr(0x03, ora, regs.p.m),
- sbc_sr(0xe3, sbc, regs.p.m) {
- 1:sp = op_readpc();
- 2:op_io();
- 3:if($2) last_cycle();
- rd.l = op_readsp(sp);
- if($2) { op_$1_b(); end; }
- 4:last_cycle();
- rd.h = op_readsp(sp + 1);
- op_$1_w();
- }
- adc_isry(0x73, adc),
- and_isry(0x33, and),
- cmp_isry(0xd3, cmp),
- eor_isry(0x53, eor),
- lda_isry(0xb3, lda),
- ora_isry(0x13, ora),
- sbc_isry(0xf3, sbc) {
- 1:sp = op_readpc();
- 2:op_io();
- 3:aa.l = op_readsp(sp);
- 4:aa.h = op_readsp(sp + 1);
- 5:op_io();
- 6:if(regs.p.m) last_cycle();
- rd.l = op_readdbr(aa.w + regs.y.w);
- if(regs.p.m) { op_$1_b(); end; }
- 7:last_cycle();
- rd.h = op_readdbr(aa.w + regs.y.w + 1);
- op_$1_w();
- }
- bit_const(0x89) {
- 1:if(regs.p.m) last_cycle();
- rd.l = op_readpc();
- if(regs.p.m) {
- regs.p.z = ((rd.l & regs.a.l) == 0);
- end;
- }
- 2:last_cycle();
- rd.h = op_readpc();
- regs.p.z = ((rd.w & regs.a.w) == 0);
- }
|