--- np2/trap/steptrap.c 2005/04/05 13:48:09 1.3 +++ np2/trap/steptrap.c 2005/05/13 05:47:25 1.6 @@ -1,11 +1,14 @@ -// #define IPTRACE (1 << 12) +#define IPTRACE (1 << 12) #include "compiler.h" #if defined(ENABLE_TRAP) #include "dosio.h" +#include "pccore.h" #include "cpucore.h" +#include "sound.h" +#include "fmboard.h" #include "steptrap.h" @@ -17,7 +20,7 @@ static UINT32 treip[IPTRACE]; void CPUCALL steptrap(UINT cs, UINT32 eip) { -// TRACEOUT(("%.4x:%.4x", CPU_CS, CPU_IP)); +// TRACEOUT(("%.4x:%.4x", cs, eip)); #if IPTRACE trcs[trpos & (IPTRACE - 1)] = cs; @@ -27,7 +30,46 @@ void CPUCALL steptrap(UINT cs, UINT32 ei // ---- ここにトラップ条件コードを書きます -// return; +{ + static UINT32 x; + UINT32 tmp; + tmp = *(UINT32 *)(mem + 0x7ade1); + if (x != tmp) { + TRACEOUT(("%.4x:%.4x: %.8x -> %.8x", cs, eip, x, tmp)); + x = tmp; + } +} + + return; + + if ((cs == 0x1ea) && (eip == 0x0617)) { + TRACEOUT(("ES:BP+1 = %.2x", CPU_AL)); + } + return; + + if ((cs == 0x0601) && (eip == 0x025c)) { + TRACEOUT(("INT-D2 AX=%.4x BX=%.4x DX=%.4x", CPU_AX, CPU_BX, CPU_DX)); + } + return; + +// if (cs4231.intflag) TRACEOUT(("%.4x:%.4x", cs, eip)); + if (cs == 0x1311) TRACEOUT(("%.4x:%.4x", cs, eip)); + if (cs == 0x0d77) TRACEOUT(("%.4x:%.4x", cs, eip)); + if (cs == 0x0f5d) TRACEOUT(("%.4x:%.4x", cs, eip)); + if (cs == 0x0e91) TRACEOUT(("%.4x:%.4x", cs, eip)); + +#if 0 +{ + static UINT tmp = 0; + if (tmp != *(UINT16 *)(mem + 0xa0000 + 18 * 2)) { + TRACEOUT(("change text %.4x -> %.4x at %.4x:%.4x", tmp, *(UINT16 *)(mem + 0xa0000 + 18 * 2), cs, eip)); + tmp = *(UINT16 *)(mem + 0xa0000 + 18 * 2); + if (tmp == 0x4303) { + steptrap_hisfileout(); + } + } +} +#endif // IDEテスト用