Previous 199869 Revisions Next

r26069 Saturday 9th November, 2013 at 13:59:07 UTC by Jürgen Buchmüller
Implement octal format strings for device_state_entry::format() strings and use them in alto2_cpu_device.
[/branches/alto2/src/emu]distate.c
[/branches/alto2/src/emu/cpu/alto2]alto2.c

branches/alto2/src/emu/distate.c
r26068r26069
22// copyright-holders:Aaron Giles
33/***************************************************************************
44
5    distate.c
5   distate.c
66
7    Device state interfaces.
7   Device state interfaces.
88
99***************************************************************************/
1010
r26068r26069
248248            reset = true;
249249            break;
250250
251         // O outputs as octal
252         case 'O':
253            if (width == 0)
254               throw emu_fatalerror("Width required for %%O formats\n");
255            hitnonzero = false;
256            while (leadzero && width > 22)
257            {
258               dest.cat(" ");
259               width--;
260            }
261            for (int digitnum = 21; digitnum >= 0; digitnum--)
262            {
263               int digit = (result >> (3 * digitnum)) & 07;
264               if (digit != 0)
265               {
266                  static const char octchars[] = "01234567";
267                  dest.cat(&octchars[digit], 1);
268                  hitnonzero = true;
269               }
270               else if (hitnonzero || (leadzero && digitnum < width) || digitnum == 0)
271                  dest.cat("0");
272            }
273            reset = true;
274            break;
275
251276         // d outputs as signed decimal
252277         case 'd':
253278            if (width == 0)
branches/alto2/src/emu/cpu/alto2/alto2.c
r26068r26069
597597   save_item(NAME(m_eth.tx_count));
598598   save_item(NAME(m_eth.duckbreath));
599599
600   state_add( A2_TASK,    "TASK",    m_task).formatstr("%02X");
601   state_add( A2_BUS,     "BUS",     m_bus).formatstr("%04X");
602   state_add( A2_T,       "T",       m_t).formatstr("%04X");
603   state_add( A2_ALU,     "ALU",     m_alu).formatstr("%04X");
600   state_add( A2_TASK,    "TASK",    m_task).formatstr("%03O");
601   state_add( A2_BUS,     "BUS",     m_bus).formatstr("%06O");
602   state_add( A2_T,       "T",       m_t).formatstr("%06O");
603   state_add( A2_ALU,     "ALU",     m_alu).formatstr("%06O");
604604   state_add( A2_ALUC0,   "ALUC0",   m_aluc0).formatstr("%1u");
605   state_add( A2_L,       "L",       m_l).formatstr("%04X");
606   state_add( A2_SHIFTER, "SHIFTER", m_shifter).formatstr("%04X");
605   state_add( A2_L,       "L",       m_l).formatstr("%06O");
606   state_add( A2_SHIFTER, "SHIFTER", m_shifter).formatstr("%06O");
607607   state_add( A2_LALUC0,  "LALUC0",  m_laluc0).formatstr("%1u");
608   state_add( A2_M,       "M",       m_m).formatstr("%04X");
608   state_add( A2_M,       "M",       m_m).formatstr("%06O");
609609
610   state_add( A2_AC3,     "AC(3)",   m_r[000]).formatstr("%04X");
611   state_add( A2_AC2,     "AC(2)",   m_r[001]).formatstr("%04X");
612   state_add( A2_AC1,     "AC(1)",   m_r[002]).formatstr("%04X");
613   state_add( A2_AC0,     "AC(0)",   m_r[003]).formatstr("%04X");
614   state_add( A2_R04,     "R04",     m_r[004]).formatstr("%04X");
615   state_add( A2_R05,     "R05",     m_r[005]).formatstr("%04X");
616   state_add( A2_PC,      "PC",      m_r[006]).formatstr("%04X");
617   state_add( A2_R07,     "R07",     m_r[007]).formatstr("%04X");
618   state_add( A2_R10,     "R10",     m_r[010]).formatstr("%04X");
619   state_add( A2_R11,     "R11",     m_r[011]).formatstr("%04X");
620   state_add( A2_R12,     "R12",     m_r[012]).formatstr("%04X");
621   state_add( A2_R13,     "R13",     m_r[013]).formatstr("%04X");
622   state_add( A2_R14,     "R14",     m_r[014]).formatstr("%04X");
623   state_add( A2_R15,     "R15",     m_r[015]).formatstr("%04X");
624   state_add( A2_R16,     "R16",     m_r[016]).formatstr("%04X");
625   state_add( A2_R17,     "R17",     m_r[017]).formatstr("%04X");
626   state_add( A2_R20,     "R20",     m_r[020]).formatstr("%04X");
627   state_add( A2_R21,     "R21",     m_r[021]).formatstr("%04X");
628   state_add( A2_R22,     "R22",     m_r[022]).formatstr("%04X");
629   state_add( A2_R23,     "R23",     m_r[023]).formatstr("%04X");
630   state_add( A2_R24,     "R24",     m_r[024]).formatstr("%04X");
631   state_add( A2_R25,     "R25",     m_r[025]).formatstr("%04X");
632   state_add( A2_R26,     "R26",     m_r[026]).formatstr("%04X");
633   state_add( A2_R27,     "R27",     m_r[027]).formatstr("%04X");
634   state_add( A2_R30,     "R30",     m_r[030]).formatstr("%04X");
635   state_add( A2_R31,     "R31",     m_r[031]).formatstr("%04X");
636   state_add( A2_R32,     "R32",     m_r[032]).formatstr("%04X");
637   state_add( A2_R33,     "R33",     m_r[033]).formatstr("%04X");
638   state_add( A2_R34,     "R34",     m_r[034]).formatstr("%04X");
639   state_add( A2_R35,     "R35",     m_r[035]).formatstr("%04X");
640   state_add( A2_R36,     "R36",     m_r[036]).formatstr("%04X");
641   state_add( A2_R37,     "R37",     m_r[037]).formatstr("%04X");
610   state_add( A2_AC3,     "AC(3)",   m_r[000]).formatstr("%06O");
611   state_add( A2_AC2,     "AC(2)",   m_r[001]).formatstr("%06O");
612   state_add( A2_AC1,     "AC(1)",   m_r[002]).formatstr("%06O");
613   state_add( A2_AC0,     "AC(0)",   m_r[003]).formatstr("%06O");
614   state_add( A2_R04,     "R04",     m_r[004]).formatstr("%06O");
615   state_add( A2_R05,     "R05",     m_r[005]).formatstr("%06O");
616   state_add( A2_PC,      "PC",      m_r[006]).formatstr("%06O");
617   state_add( A2_R07,     "R07",     m_r[007]).formatstr("%06O");
618   state_add( A2_R10,     "R10",     m_r[010]).formatstr("%06O");
619   state_add( A2_R11,     "R11",     m_r[011]).formatstr("%06O");
620   state_add( A2_R12,     "R12",     m_r[012]).formatstr("%06O");
621   state_add( A2_R13,     "R13",     m_r[013]).formatstr("%06O");
622   state_add( A2_R14,     "R14",     m_r[014]).formatstr("%06O");
623   state_add( A2_R15,     "R15",     m_r[015]).formatstr("%06O");
624   state_add( A2_R16,     "R16",     m_r[016]).formatstr("%06O");
625   state_add( A2_R17,     "R17",     m_r[017]).formatstr("%06O");
626   state_add( A2_R20,     "R20",     m_r[020]).formatstr("%06O");
627   state_add( A2_R21,     "R21",     m_r[021]).formatstr("%06O");
628   state_add( A2_R22,     "R22",     m_r[022]).formatstr("%06O");
629   state_add( A2_R23,     "R23",     m_r[023]).formatstr("%06O");
630   state_add( A2_R24,     "R24",     m_r[024]).formatstr("%06O");
631   state_add( A2_R25,     "R25",     m_r[025]).formatstr("%06O");
632   state_add( A2_R26,     "R26",     m_r[026]).formatstr("%06O");
633   state_add( A2_R27,     "R27",     m_r[027]).formatstr("%06O");
634   state_add( A2_R30,     "R30",     m_r[030]).formatstr("%06O");
635   state_add( A2_R31,     "R31",     m_r[031]).formatstr("%06O");
636   state_add( A2_R32,     "R32",     m_r[032]).formatstr("%06O");
637   state_add( A2_R33,     "R33",     m_r[033]).formatstr("%06O");
638   state_add( A2_R34,     "R34",     m_r[034]).formatstr("%06O");
639   state_add( A2_R35,     "R35",     m_r[035]).formatstr("%06O");
640   state_add( A2_R36,     "R36",     m_r[036]).formatstr("%06O");
641   state_add( A2_R37,     "R37",     m_r[037]).formatstr("%06O");
642642
643   state_add( A2_S00,     "S00",     m_s[0][000]).formatstr("%04X");
644   state_add( A2_S01,     "S01",     m_s[0][001]).formatstr("%04X");
645   state_add( A2_S02,     "S02",     m_s[0][002]).formatstr("%04X");
646   state_add( A2_S03,     "S03",     m_s[0][003]).formatstr("%04X");
647   state_add( A2_S04,     "S04",     m_s[0][004]).formatstr("%04X");
648   state_add( A2_S05,     "S05",     m_s[0][005]).formatstr("%04X");
649   state_add( A2_S06,     "S06",     m_s[0][006]).formatstr("%04X");
650   state_add( A2_S07,     "S07",     m_s[0][007]).formatstr("%04X");
651   state_add( A2_S10,     "S10",     m_s[0][010]).formatstr("%04X");
652   state_add( A2_S11,     "S11",     m_s[0][011]).formatstr("%04X");
653   state_add( A2_S12,     "S12",     m_s[0][012]).formatstr("%04X");
654   state_add( A2_S13,     "S13",     m_s[0][013]).formatstr("%04X");
655   state_add( A2_S14,     "S14",     m_s[0][014]).formatstr("%04X");
656   state_add( A2_S15,     "S15",     m_s[0][015]).formatstr("%04X");
657   state_add( A2_S16,     "S16",     m_s[0][016]).formatstr("%04X");
658   state_add( A2_S17,     "S17",     m_s[0][017]).formatstr("%04X");
659   state_add( A2_S20,     "S20",     m_s[0][020]).formatstr("%04X");
660   state_add( A2_S21,     "S21",     m_s[0][021]).formatstr("%04X");
661   state_add( A2_S22,     "S22",     m_s[0][022]).formatstr("%04X");
662   state_add( A2_S23,     "S23",     m_s[0][023]).formatstr("%04X");
663   state_add( A2_S24,     "S24",     m_s[0][024]).formatstr("%04X");
664   state_add( A2_S25,     "S25",     m_s[0][025]).formatstr("%04X");
665   state_add( A2_S26,     "S26",     m_s[0][026]).formatstr("%04X");
666   state_add( A2_S27,     "S27",     m_s[0][027]).formatstr("%04X");
667   state_add( A2_S30,     "S30",     m_s[0][030]).formatstr("%04X");
668   state_add( A2_S31,     "S31",     m_s[0][031]).formatstr("%04X");
669   state_add( A2_S32,     "S32",     m_s[0][032]).formatstr("%04X");
670   state_add( A2_S33,     "S33",     m_s[0][033]).formatstr("%04X");
671   state_add( A2_S34,     "S34",     m_s[0][034]).formatstr("%04X");
672   state_add( A2_S35,     "S35",     m_s[0][035]).formatstr("%04X");
673   state_add( A2_S36,     "S36",     m_s[0][036]).formatstr("%04X");
674   state_add( A2_S37,     "S37",     m_s[0][037]).formatstr("%04X");
643   state_add( A2_S00,     "S00",     m_s[0][000]).formatstr("%06O");
644   state_add( A2_S01,     "S01",     m_s[0][001]).formatstr("%06O");
645   state_add( A2_S02,     "S02",     m_s[0][002]).formatstr("%06O");
646   state_add( A2_S03,     "S03",     m_s[0][003]).formatstr("%06O");
647   state_add( A2_S04,     "S04",     m_s[0][004]).formatstr("%06O");
648   state_add( A2_S05,     "S05",     m_s[0][005]).formatstr("%06O");
649   state_add( A2_S06,     "S06",     m_s[0][006]).formatstr("%06O");
650   state_add( A2_S07,     "S07",     m_s[0][007]).formatstr("%06O");
651   state_add( A2_S10,     "S10",     m_s[0][010]).formatstr("%06O");
652   state_add( A2_S11,     "S11",     m_s[0][011]).formatstr("%06O");
653   state_add( A2_S12,     "S12",     m_s[0][012]).formatstr("%06O");
654   state_add( A2_S13,     "S13",     m_s[0][013]).formatstr("%06O");
655   state_add( A2_S14,     "S14",     m_s[0][014]).formatstr("%06O");
656   state_add( A2_S15,     "S15",     m_s[0][015]).formatstr("%06O");
657   state_add( A2_S16,     "S16",     m_s[0][016]).formatstr("%06O");
658   state_add( A2_S17,     "S17",     m_s[0][017]).formatstr("%06O");
659   state_add( A2_S20,     "S20",     m_s[0][020]).formatstr("%06O");
660   state_add( A2_S21,     "S21",     m_s[0][021]).formatstr("%06O");
661   state_add( A2_S22,     "S22",     m_s[0][022]).formatstr("%06O");
662   state_add( A2_S23,     "S23",     m_s[0][023]).formatstr("%06O");
663   state_add( A2_S24,     "S24",     m_s[0][024]).formatstr("%06O");
664   state_add( A2_S25,     "S25",     m_s[0][025]).formatstr("%06O");
665   state_add( A2_S26,     "S26",     m_s[0][026]).formatstr("%06O");
666   state_add( A2_S27,     "S27",     m_s[0][027]).formatstr("%06O");
667   state_add( A2_S30,     "S30",     m_s[0][030]).formatstr("%06O");
668   state_add( A2_S31,     "S31",     m_s[0][031]).formatstr("%06O");
669   state_add( A2_S32,     "S32",     m_s[0][032]).formatstr("%06O");
670   state_add( A2_S33,     "S33",     m_s[0][033]).formatstr("%06O");
671   state_add( A2_S34,     "S34",     m_s[0][034]).formatstr("%06O");
672   state_add( A2_S35,     "S35",     m_s[0][035]).formatstr("%06O");
673   state_add( A2_S36,     "S36",     m_s[0][036]).formatstr("%06O");
674   state_add( A2_S37,     "S37",     m_s[0][037]).formatstr("%06O");
675675
676676   state_add(STATE_GENPC, "curpc", m_mpc).formatstr("%03X").noshow();
677677   state_add(STATE_GENFLAGS, "GENFLAGS", m_aluc0).formatstr("%5s").noshow();

Previous 199869 Revisions Next


© 1997-2024 The MAME Team