|
|
| version 1.98, 2005/02/27 15:07:35 | version 1.99, 2005/03/03 06:59:41 |
|---|---|
| Line 548 void screenvsync(NEVENTITEM item) { | Line 548 void screenvsync(NEVENTITEM item) { |
| // --------------------------------------------------------------------------- | // --------------------------------------------------------------------------- |
| // #define SINGLESTEPONLY | |
| // #define IPTRACE (1 << 12) | |
| #if defined(TRACE) && IPTRACE | |
| static UINT trpos = 0; | |
| static UINT32 treip[IPTRACE]; | |
| void iptrace_out(void) { | |
| FILEH fh; | |
| UINT s; | |
| UINT32 eip; | |
| char buf[32]; | |
| s = trpos; | |
| if (s > IPTRACE) { | |
| s -= IPTRACE; | |
| } | |
| else { | |
| s = 0; | |
| } | |
| fh = file_create_c("his.txt"); | |
| while(s < trpos) { | |
| eip = treip[s & (IPTRACE - 1)]; | |
| s++; | |
| SPRINTF(buf, "%.4x:%.4x\r\n", (eip >> 16), eip & 0xffff); | |
| file_write(fh, buf, strlen(buf)); | |
| } | |
| file_close(fh); | |
| } | |
| #endif | |
| #if defined(TRACE) | #if defined(TRACE) |
| static int resetcnt = 0; | static int resetcnt = 0; |
| static int execcnt = 0; | static int execcnt = 0; |
| int piccnt = 0; | int piccnt = 0; |
| int tr = 0; | |
| UINT cflg; | |
| #endif | #endif |
| Line 621 void pccore_exec(BOOL draw) { | Line 586 void pccore_exec(BOOL draw) { |
| CPU_RESETREQ = 0; | CPU_RESETREQ = 0; |
| CPU_SHUT(); | CPU_SHUT(); |
| } | } |
| #if !defined(SINGLESTEPONLY) | |
| if (CPU_REMCLOCK > 0) { | if (CPU_REMCLOCK > 0) { |
| if (!(CPU_TYPE & CPUTYPE_V30)) { | if (!(CPU_TYPE & CPUTYPE_V30)) { |
| CPU_EXEC(); | CPU_EXEC(); |
| Line 631 void pccore_exec(BOOL draw) { | Line 594 void pccore_exec(BOOL draw) { |
| CPU_EXECV30(); | CPU_EXECV30(); |
| } | } |
| } | } |
| #else | |
| while(CPU_REMCLOCK > 0) { | |
| #if 0 | |
| if (CPU_CS == 0x05a0) { | |
| if (CPU_IP == 0xe2) { | |
| TRACEOUT(("result: %.2x", CPU_AH)); | |
| } | |
| } | |
| #endif | |
| #if 0 | |
| if (CPU_CS == 0x0000) { | |
| if (CPU_IP == 0x1191) { | |
| char buf[10]; | |
| int i; | |
| for (i=0; i<6; i++) { | |
| buf[i] = MEML_READ8(0x1000, CPU_BX + i); | |
| } | |
| buf[6] = '\0'; | |
| TRACEOUT(("load: %s", buf)); | |
| } | |
| if (CPU_IP == 0x1265) { | |
| TRACEOUT(("%.4x:%.4x addr=%.4x ret=%.4x", | |
| CPU_CS, CPU_IP, CPU_DX, | |
| MEML_READ16(CPU_SS, CPU_SP))); | |
| } | |
| } | |
| #endif | |
| #if 0 | |
| if (CPU_CS == 0x0080) { | |
| if (CPU_IP == 0x052A) { | |
| UINT i; | |
| UINT addr; | |
| char fname[9]; | |
| addr = MEML_READ16(CPU_SS, CPU_BP + 4); | |
| for (i=0; i<8; i++) { | |
| fname[i] = MEML_READ8(CPU_DS, addr + i); | |
| } | |
| fname[8] = 0; | |
| TRACEOUT(("%.4x:%.4x play... addr:%.4x %s", | |
| CPU_CS, CPU_IP, addr, fname)); | |
| } | |
| } | |
| #endif | |
| #if 0 | |
| if (CPU_CS == 0x800) { | |
| if (CPU_IP == 0x017A) { | |
| TRACEOUT(("%.4x:%.4x solve... DS=%.4x SIZE=%.4x KEY=%.4x", | |
| CPU_CS, CPU_IP, | |
| MEML_READ16(CPU_SS, CPU_BP - 0x06), | |
| CPU_DX, | |
| MEML_READ16(CPU_SS, CPU_BP - 0x08))); | |
| } | |
| } | |
| #endif | |
| #if 0 | |
| if (CPU_CS == 0x3d52) { | |
| if (CPU_IP == 0x4A57) { | |
| TRACEOUT(("%.4x:%.4x %.4x:%.4x/%.4x/%.4x", | |
| CPU_DX, CPU_BX, CPU_DS, | |
| MEML_READ16(CPU_SS, CPU_BP + 0x06), | |
| MEML_READ16(CPU_SS, CPU_BP + 0x08), | |
| MEML_READ16(CPU_SS, CPU_BP + 0x0a))); | |
| } | |
| if (CPU_IP == 0x4BF8) { | |
| debugsub_memorydump(); | |
| } | |
| #if 0 | |
| if (CPU_IP == 0x4B7A) { | |
| TRACEOUT(("datum = %x", CPU_AX)); | |
| } | |
| if (CPU_IP == 0x4B87) { | |
| TRACEOUT(("leng = %x", CPU_AX)); | |
| } | |
| if (CPU_IP == 0x4BD5) { | |
| TRACEOUT(("%.4x:%.4x <- %.2x[%.4x]", | |
| CPU_ES, CPU_BX, CPU_AL, CPU_DI)); | |
| } | |
| #endif | |
| } | |
| #endif | |
| #if 0 // DC | |
| if (CPU_CS == 0x1000) { | |
| if (CPU_IP == 0x5924) { | |
| TRACEOUT(("%.4x:%.4x -> %.4x:%.4x", CPU_CS, CPU_IP, | |
| MEML_READ16(CPU_DS, 0x6846), | |
| MEML_READ16(CPU_DS, 0x6848))); | |
| } | |
| } | |
| #endif | |
| #if 0 // Íå¿ËÈ× | |
| if (CPU_CS == 0x60) { | |
| if (CPU_IP == 0xADF9) { | |
| TRACEOUT(("%.4x:%.4x -> %.4x:%.4x:%.4x", CPU_CS, CPU_IP, CPU_BX, CPU_SI, CPU_AX)); | |
| } | |
| else if (CPU_IP == 0xC7E1) { | |
| TRACEOUT(("%.4x:%.4x -> %.4x:%.4x", CPU_CS, CPU_IP, CPU_ES, CPU_BX)); | |
| } | |
| } | |
| #endif | |
| #if 0 | |
| if (CPU_CS == 0x60) { | |
| if (CPU_IP == 0x8AC2) { | |
| UINT pos = CPU_SI + (CPU_AX * 6); | |
| TRACEOUT(("%.4x:%.4x -> %.4x:%.4x-%.4x:%.4x [%.2x %.2x %.2x %.2x %.2x %.2x]", CPU_CS, CPU_IP, CPU_SI, CPU_AX, CPU_DX, CPU_DI, | |
| MEML_READ8(CPU_DS, pos+0), | |
| MEML_READ8(CPU_DS, pos+1), | |
| MEML_READ8(CPU_DS, pos+2), | |
| MEML_READ8(CPU_DS, pos+3), | |
| MEML_READ8(CPU_DS, pos+4), | |
| MEML_READ8(CPU_DS, pos+5))); | |
| } | |
| } | |
| #endif | |
| #if IPTRACE | |
| treip[trpos & (IPTRACE - 1)] = (CPU_CS << 16) + CPU_IP; | |
| trpos++; | |
| #endif | |
| // TRACEOUT(("%.4x:%.4x", CPU_CS, CPU_IP)); | |
| CPU_STEPEXEC(); | |
| } | |
| #endif | |
| nevent_progress(); | nevent_progress(); |
| } | } |
| artic_callback(); | artic_callback(); |