9 int (*read_byte)(void *context, int addr),
10 void *read_byte_context,
11 void (*write_byte)(void *context, int addr, int data),
12 void *write_byte_context
14 memset(self, 0, sizeof(struct cpu_6800));
15 self->regs.byte.p = 0xc0; // unused bits are hard coded to 1
16 self->read_byte = read_byte;
17 self->read_byte_context = read_byte_context;
18 self->write_byte = write_byte;
19 self->write_byte_context = write_byte_context;
22 void cpu_6800_reset(struct cpu_6800 *self) {
23 self->regs.word.pc = cpu_6800_read_word(self, CPU_6800_RESET_VECTOR);
24 self->regs.byte.iflags = 0;
25 self->regs.bit._if = true;
29 void cpu_6800_execute(struct cpu_6800 *self) {
30 if (self->regs.bit.nmi_pending) {
31 self->regs.bit.nmi_pending = false;
32 if (!self->regs.bit.wai_flag)
34 self->regs.bit.wai_flag = false;
35 self->regs.word.pc = cpu_6800_read_word(self, CPU_6800_NMI_VECTOR);
36 self->regs.bit._if = true;
40 if (self->regs.bit.irq_pending && !self->regs.bit._if) {
41 self->regs.bit.irq_pending = false;
42 if (!self->regs.bit.wai_flag)
44 self->regs.bit.wai_flag = false;
45 self->regs.word.pc = cpu_6800_read_word(self, CPU_6800_IRQ_VECTOR);
46 self->regs.bit._if = true;
50 if (self->regs.bit.wai_flag) {
55 switch (cpu_6800_fetch_byte(self)) {
57 cpu_6800_illegal_opcode(self);
63 cpu_6800_illegal_opcode(self);
66 cpu_6800_illegal_opcode(self);
69 cpu_6800_illegal_opcode(self);
72 cpu_6800_illegal_opcode(self);
81 cpu_6800_inc_word_zf(self, CPU_6800_EA_X);
84 cpu_6800_dec_word_zf(self, CPU_6800_EA_X);
87 cpu_6800_cl(self, CPU_6800_REG_P_BIT_V);
90 cpu_6800_se(self, CPU_6800_REG_P_BIT_V);
93 cpu_6800_cl(self, CPU_6800_REG_P_BIT_C);
96 cpu_6800_se(self, CPU_6800_REG_P_BIT_C);
99 cpu_6800_cl(self, CPU_6800_REG_P_BIT_I);
102 cpu_6800_se(self, CPU_6800_REG_P_BIT_I);
105 cpu_6800_sub(self, CPU_6800_EA_A, self->regs.byte.b);
108 cpu_6800_cmp_byte(self, self->regs.byte.a, self->regs.byte.b);
111 cpu_6800_illegal_opcode(self);
114 cpu_6800_illegal_opcode(self);
117 cpu_6800_illegal_opcode(self);
120 cpu_6800_illegal_opcode(self);
123 cpu_6800_ld_byte(self, CPU_6800_EA_B, self->regs.byte.a);
126 cpu_6800_ld_byte(self, CPU_6800_EA_A, self->regs.byte.b);
129 cpu_6800_illegal_opcode(self);
135 cpu_6800_illegal_opcode(self);
138 cpu_6800_add(self, CPU_6800_EA_A, self->regs.byte.b);
141 cpu_6800_illegal_opcode(self);
144 cpu_6800_illegal_opcode(self);
147 cpu_6800_illegal_opcode(self);
150 cpu_6800_illegal_opcode(self);
153 cpu_6800_bra(self, true, cpu_6800_ea_relative(self));
156 cpu_6800_illegal_opcode(self);
159 cpu_6800_bra(self, !self->regs.bit.cf && !self->regs.bit.zf, cpu_6800_ea_relative(self));
162 cpu_6800_bra(self, self->regs.bit.cf || self->regs.bit.zf, cpu_6800_ea_relative(self));
165 cpu_6800_bra(self, !self->regs.bit.cf, cpu_6800_ea_relative(self));
168 cpu_6800_bra(self, self->regs.bit.cf, cpu_6800_ea_relative(self));
171 cpu_6800_bra(self, !self->regs.bit.zf, cpu_6800_ea_relative(self));
174 cpu_6800_bra(self, self->regs.bit.zf, cpu_6800_ea_relative(self));
177 cpu_6800_bra(self, !self->regs.bit.vf, cpu_6800_ea_relative(self));
180 cpu_6800_bra(self, self->regs.bit.vf, cpu_6800_ea_relative(self));
183 cpu_6800_bra(self, !self->regs.bit.nf, cpu_6800_ea_relative(self));
186 cpu_6800_bra(self, self->regs.bit.nf, cpu_6800_ea_relative(self));
189 cpu_6800_bra(self, !self->regs.bit.nf && !self->regs.bit.vf, cpu_6800_ea_relative(self));
192 cpu_6800_bra(self, self->regs.bit.nf || self->regs.bit.vf, cpu_6800_ea_relative(self));
195 cpu_6800_bra(self, !self->regs.bit.nf && !self->regs.bit.vf && !self->regs.bit.zf, cpu_6800_ea_relative(self));
198 cpu_6800_bra(self, self->regs.bit.nf || self->regs.bit.vf || self->regs.bit.zf, cpu_6800_ea_relative(self));
204 cpu_6800_inc_word(self, CPU_6800_EA_S);
207 cpu_6800_pul(self, CPU_6800_EA_A);
210 cpu_6800_pul(self, CPU_6800_EA_B);
213 cpu_6800_dec_word(self, CPU_6800_EA_S);
219 cpu_6800_psh(self, self->regs.byte.a);
222 cpu_6800_psh(self, self->regs.byte.b);
225 cpu_6800_illegal_opcode(self);
231 cpu_6800_illegal_opcode(self);
237 cpu_6800_illegal_opcode(self);
240 cpu_6800_illegal_opcode(self);
249 cpu_6800_neg(self, CPU_6800_EA_A);
252 cpu_6800_illegal_opcode(self);
255 cpu_6800_illegal_opcode(self);
258 cpu_6800_com(self, CPU_6800_EA_A);
261 cpu_6800_lsr(self, CPU_6800_EA_A);
264 cpu_6800_illegal_opcode(self);
267 cpu_6800_ror(self, CPU_6800_EA_A);
270 cpu_6800_asr(self, CPU_6800_EA_A);
273 cpu_6800_asl(self, CPU_6800_EA_A);
276 cpu_6800_rol(self, CPU_6800_EA_A);
279 cpu_6800_dec_byte(self, CPU_6800_EA_A);
282 cpu_6800_illegal_opcode(self);
285 cpu_6800_inc_byte(self, CPU_6800_EA_A);
288 cpu_6800_cmp_byte(self, self->regs.byte.a, 0);
291 cpu_6800_illegal_opcode(self);
294 cpu_6800_clr(self, CPU_6800_EA_A);
297 cpu_6800_neg(self, CPU_6800_EA_B);
300 cpu_6800_illegal_opcode(self);
303 cpu_6800_illegal_opcode(self);
306 cpu_6800_com(self, CPU_6800_EA_B);
309 cpu_6800_lsr(self, CPU_6800_EA_B);
312 cpu_6800_illegal_opcode(self);
315 cpu_6800_ror(self, CPU_6800_EA_B);
318 cpu_6800_asr(self, CPU_6800_EA_B);
321 cpu_6800_asl(self, CPU_6800_EA_B);
324 cpu_6800_rol(self, CPU_6800_EA_B);
327 cpu_6800_dec_byte(self, CPU_6800_EA_B);
330 cpu_6800_illegal_opcode(self);
333 cpu_6800_inc_byte(self, CPU_6800_EA_B);
336 cpu_6800_cmp_byte(self, self->regs.byte.b, 0);
339 cpu_6800_illegal_opcode(self);
342 cpu_6800_clr(self, CPU_6800_EA_B);
345 cpu_6800_neg(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
348 cpu_6800_illegal_opcode(self);
351 cpu_6800_illegal_opcode(self);
354 cpu_6800_com(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
357 cpu_6800_lsr(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
360 cpu_6800_illegal_opcode(self);
363 cpu_6800_ror(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
366 cpu_6800_asr(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
369 cpu_6800_asl(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
372 cpu_6800_rol(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
375 cpu_6800_dec_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
378 cpu_6800_illegal_opcode(self);
381 cpu_6800_inc_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
384 cpu_6800_cmp_byte(self, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)), 0);
387 cpu_6800_jmp(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
390 cpu_6800_clr(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
393 cpu_6800_neg(self, cpu_6800_ea_extended(self));
396 cpu_6800_illegal_opcode(self);
399 cpu_6800_illegal_opcode(self);
402 cpu_6800_com(self, cpu_6800_ea_extended(self));
405 cpu_6800_lsr(self, cpu_6800_ea_extended(self));
408 cpu_6800_illegal_opcode(self);
411 cpu_6800_ror(self, cpu_6800_ea_extended(self));
414 cpu_6800_asr(self, cpu_6800_ea_extended(self));
417 cpu_6800_asl(self, cpu_6800_ea_extended(self));
420 cpu_6800_rol(self, cpu_6800_ea_extended(self));
423 cpu_6800_dec_byte(self, cpu_6800_ea_extended(self));
426 cpu_6800_illegal_opcode(self);
429 cpu_6800_inc_byte(self, cpu_6800_ea_extended(self));
432 cpu_6800_cmp_byte(self, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)), 0);
435 cpu_6800_jmp(self, cpu_6800_ea_extended(self));
438 cpu_6800_clr(self, cpu_6800_ea_extended(self));
441 cpu_6800_sub(self, CPU_6800_EA_A, cpu_6800_fetch_byte(self));
444 cpu_6800_cmp_byte(self, self->regs.byte.a, cpu_6800_fetch_byte(self));
447 cpu_6800_sbc(self, CPU_6800_EA_A, cpu_6800_fetch_byte(self));
450 cpu_6800_illegal_opcode(self);
453 cpu_6800_and(self, CPU_6800_EA_A, cpu_6800_fetch_byte(self));
456 cpu_6800_bit(self, self->regs.byte.a, cpu_6800_fetch_byte(self));
459 cpu_6800_ld_byte(self, CPU_6800_EA_A, cpu_6800_fetch_byte(self));
462 cpu_6800_illegal_opcode(self);
465 cpu_6800_eor(self, CPU_6800_EA_A, cpu_6800_fetch_byte(self));
468 cpu_6800_adc(self, CPU_6800_EA_A, cpu_6800_fetch_byte(self));
471 cpu_6800_ora(self, CPU_6800_EA_A, cpu_6800_fetch_byte(self));
474 cpu_6800_add(self, CPU_6800_EA_A, cpu_6800_fetch_byte(self));
477 cpu_6800_cmp_word(self, self->regs.word.x, cpu_6800_fetch_word(self));
480 cpu_6800_bsr(self, cpu_6800_ea_relative(self));
483 cpu_6800_ld_word(self, CPU_6800_EA_S, cpu_6800_fetch_word(self));
486 cpu_6800_illegal_opcode(self);
489 cpu_6800_sub(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
492 cpu_6800_cmp_byte(self, self->regs.byte.a, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
495 cpu_6800_sbc(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
498 cpu_6800_illegal_opcode(self);
501 cpu_6800_and(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
504 cpu_6800_bit(self, self->regs.byte.a, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
507 cpu_6800_ld_byte(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
510 cpu_6800_st_byte(self, self->regs.byte.a, cpu_6800_ea_direct(self));
513 cpu_6800_eor(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
516 cpu_6800_adc(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
519 cpu_6800_ora(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
522 cpu_6800_add(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
525 cpu_6800_cmp_word(self, self->regs.word.x, cpu_6800_read_word(self, cpu_6800_ea_direct(self)));
528 cpu_6800_illegal_opcode(self);
531 cpu_6800_ld_word(self, CPU_6800_EA_S, cpu_6800_read_word(self, cpu_6800_ea_direct(self)));
534 cpu_6800_st_word(self, self->regs.word.s, cpu_6800_ea_direct(self));
537 cpu_6800_sub(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
540 cpu_6800_cmp_byte(self, self->regs.byte.a, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
543 cpu_6800_sbc(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
546 cpu_6800_illegal_opcode(self);
549 cpu_6800_and(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
552 cpu_6800_bit(self, self->regs.byte.a, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
555 cpu_6800_ld_byte(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
558 cpu_6800_st_byte(self, self->regs.byte.a, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
561 cpu_6800_eor(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
564 cpu_6800_adc(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
567 cpu_6800_ora(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
570 cpu_6800_add(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
573 cpu_6800_cmp_word(self, self->regs.word.x, cpu_6800_read_word(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
576 cpu_6800_jsr(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
579 cpu_6800_ld_word(self, CPU_6800_EA_S, cpu_6800_read_word(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
582 cpu_6800_st_word(self, self->regs.word.s, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
585 cpu_6800_sub(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
588 cpu_6800_cmp_byte(self, self->regs.byte.a, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
591 cpu_6800_sbc(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
594 cpu_6800_illegal_opcode(self);
597 cpu_6800_and(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
600 cpu_6800_bit(self, self->regs.byte.a, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
603 cpu_6800_ld_byte(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
606 cpu_6800_st_byte(self, self->regs.byte.a, cpu_6800_ea_extended(self));
609 cpu_6800_eor(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
612 cpu_6800_adc(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
615 cpu_6800_ora(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
618 cpu_6800_add(self, CPU_6800_EA_A, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
621 cpu_6800_cmp_word(self, self->regs.word.x, cpu_6800_read_word(self, cpu_6800_ea_extended(self)));
624 cpu_6800_jsr(self, cpu_6800_ea_extended(self));
627 cpu_6800_ld_word(self, CPU_6800_EA_S, cpu_6800_read_word(self, cpu_6800_ea_extended(self)));
630 cpu_6800_st_word(self, self->regs.word.s, cpu_6800_ea_extended(self));
633 cpu_6800_sub(self, CPU_6800_EA_B, cpu_6800_fetch_byte(self));
636 cpu_6800_cmp_byte(self, self->regs.byte.b, cpu_6800_fetch_byte(self));
639 cpu_6800_sbc(self, CPU_6800_EA_B, cpu_6800_fetch_byte(self));
642 cpu_6800_illegal_opcode(self);
645 cpu_6800_and(self, CPU_6800_EA_B, cpu_6800_fetch_byte(self));
648 cpu_6800_bit(self, self->regs.byte.b, cpu_6800_fetch_byte(self));
651 cpu_6800_ld_byte(self, CPU_6800_EA_B, cpu_6800_fetch_byte(self));
654 cpu_6800_illegal_opcode(self);
657 cpu_6800_eor(self, CPU_6800_EA_B, cpu_6800_fetch_byte(self));
660 cpu_6800_adc(self, CPU_6800_EA_B, cpu_6800_fetch_byte(self));
663 cpu_6800_ora(self, CPU_6800_EA_B, cpu_6800_fetch_byte(self));
666 cpu_6800_add(self, CPU_6800_EA_B, cpu_6800_fetch_byte(self));
669 cpu_6800_illegal_opcode(self);
672 cpu_6800_illegal_opcode(self);
675 cpu_6800_ld_word(self, CPU_6800_EA_X, cpu_6800_fetch_word(self));
678 cpu_6800_illegal_opcode(self);
681 cpu_6800_sub(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
684 cpu_6800_cmp_byte(self, self->regs.byte.b, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
687 cpu_6800_sbc(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
690 cpu_6800_illegal_opcode(self);
693 cpu_6800_and(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
696 cpu_6800_bit(self, self->regs.byte.b, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
699 cpu_6800_ld_byte(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
702 cpu_6800_st_byte(self, self->regs.byte.b, cpu_6800_ea_direct(self));
705 cpu_6800_eor(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
708 cpu_6800_adc(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
711 cpu_6800_ora(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
714 cpu_6800_add(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct(self)));
717 cpu_6800_illegal_opcode(self);
720 cpu_6800_illegal_opcode(self);
723 cpu_6800_ld_word(self, CPU_6800_EA_X, cpu_6800_read_word(self, cpu_6800_ea_direct(self)));
726 cpu_6800_st_word(self, self->regs.word.x, cpu_6800_ea_direct(self));
729 cpu_6800_sub(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
732 cpu_6800_cmp_byte(self, self->regs.byte.b, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
735 cpu_6800_sbc(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
738 cpu_6800_illegal_opcode(self);
741 cpu_6800_and(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
744 cpu_6800_bit(self, self->regs.byte.b, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
747 cpu_6800_ld_byte(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
750 cpu_6800_st_byte(self, self->regs.byte.b, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
753 cpu_6800_eor(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
756 cpu_6800_adc(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
759 cpu_6800_ora(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
762 cpu_6800_add(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
765 cpu_6800_illegal_opcode(self);
768 cpu_6800_illegal_opcode(self);
771 cpu_6800_ld_word(self, CPU_6800_EA_X, cpu_6800_read_word(self, cpu_6800_ea_direct_indexed(self, self->regs.word.x)));
774 cpu_6800_st_word(self, self->regs.word.x, cpu_6800_ea_direct_indexed(self, self->regs.word.x));
777 cpu_6800_sub(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
780 cpu_6800_cmp_byte(self, self->regs.byte.b, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
783 cpu_6800_sbc(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
786 cpu_6800_illegal_opcode(self);
789 cpu_6800_and(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
792 cpu_6800_bit(self, self->regs.byte.b, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
795 cpu_6800_ld_byte(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
798 cpu_6800_st_byte(self, self->regs.byte.b, cpu_6800_ea_extended(self));
801 cpu_6800_eor(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
804 cpu_6800_adc(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
807 cpu_6800_ora(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
810 cpu_6800_add(self, CPU_6800_EA_B, cpu_6800_read_byte(self, cpu_6800_ea_extended(self)));
813 cpu_6800_illegal_opcode(self);
816 cpu_6800_illegal_opcode(self);
819 cpu_6800_ld_word(self, CPU_6800_EA_X, cpu_6800_read_word(self, cpu_6800_ea_extended(self)));
822 cpu_6800_st_word(self, self->regs.word.x, cpu_6800_ea_extended(self));