Previous 199869 Revisions Next

r31242 Wednesday 9th July, 2014 at 17:22:17 UTC by hap
6805: add missing items to save state
[src/emu/cpu/m6805]6805ops.inc m6805.c

trunk/src/emu/cpu/m6805/6805ops.inc
r31241r31242
7878}
7979
8080/* $21 BRN relative ---- */
81static UINT8 m6805_brn_t; // hack around GCC 4.6 error because we need the side effects of IMMBYTE
8281OP_HANDLER( brn )
8382{
84   IMMBYTE(m6805_brn_t);
83   SKIPBYTE();
8584}
8685
8786/* $22 BHI relative ---- */
trunk/src/emu/cpu/m6805/m6805.c
r31241r31242
8686/* macros to access memory */
8787#define IMMBYTE(b) {b = M_RDOP_ARG(PC++);}
8888#define IMMWORD(w) {w.d = 0; w.b.h = M_RDOP_ARG(PC); w.b.l = M_RDOP_ARG(PC+1); PC+=2;}
89#define SKIPBYTE() {M_RDOP_ARG(PC++);}
8990
9091#define PUSHBYTE(b) wr_s_handler_b(&b)
9192#define PUSHWORD(w) wr_s_handler_w(&w)
r31241r31242
192193#define IDX1BYTE(b) {INDEXED1; b = RM(EAD);}
193194#define IDX2BYTE(b) {INDEXED2; b = RM(EAD);}
194195/* Macros for branch instructions */
195#define BRANCH(f) { UINT8 t; IMMBYTE(t); if(f) { PC += SIGNED(t); if (t == 0xfe) { /* speed up busy loops */ if(m_icount > 0) m_icount = 0; } } }
196#define BRANCH(f) { UINT8 t; IMMBYTE(t); if(f) { PC += SIGNED(t); } }
196197
197198/* what they say it is ... */
198199const UINT8 m6805_base_device::m_cycles1[] =
r31241r31242
414415
415416void m6805_base_device::device_start()
416417{
418   m_program = &space(AS_PROGRAM);
419   m_direct = &m_program->direct();
420
421   // set our instruction counter
422   m_icountptr = &m_icount;
423
417424   // register our state for the debugger
418425   astring tempstr;
419426   state_add(STATE_GENPC,     "GENPC",     m_pc.w.l).noshow();
r31241r31242
424431   state_add(M6805_X,         "X",         m_x).mask(0xff);
425432   state_add(M6805_CC,        "CC",        m_cc).mask(0xff);
426433
434   // register for savestates
435   save_item(NAME(EA));
436   save_item(NAME(SP_MASK));
437   save_item(NAME(SP_LOW));
427438   save_item(NAME(A));
428439   save_item(NAME(PC));
429440   save_item(NAME(S));
r31241r31242
431442   save_item(NAME(CC));
432443   save_item(NAME(m_pending_interrupts));
433444   save_item(NAME(m_irq_state));
434
435   m_program = &space(AS_PROGRAM);
436   m_direct = &m_program->direct();
437
438   // set our instruction counter
439   m_icountptr = &m_icount;
440   m_icount = 50000;
445   save_item(NAME(m_nmi_state));
441446}
442447
443448
r31241r31242
456461   memset(m_irq_state, 0, sizeof(int) * 9);
457462   m_nmi_state = 0;
458463
459   m_icount = 50000;
460
461464   m_program = &space(AS_PROGRAM);
462465   m_direct = &m_program->direct();
463466

Previous 199869 Revisions Next


© 1997-2024 The MAME Team