Diff for /np2/pccore.c between versions 1.97 and 1.104

version 1.97, 2005/02/07 14:46:07 version 1.104, 2005/03/24 01:42:46
Line 141  static void pccore_set(void) { Line 141  static void pccore_set(void) {
         // HDDの接続 (I/Oの使用状態が変わるので..          // HDDの接続 (I/Oの使用状態が変わるので..
         if (np2cfg.dipsw[1] & 0x20) {          if (np2cfg.dipsw[1] & 0x20) {
                 pccore.hddif |= PCHDD_IDE;                  pccore.hddif |= PCHDD_IDE;
   #if defined(SUPPORT_IDEIO)
                   sxsi_setdevtype(0x02, SXSIDEV_CDROM);
   #endif
           }
           else {
                   sxsi_setdevtype(0x02, SXSIDEV_NC);
         }          }
   
         // 拡張メモリ          // 拡張メモリ
         extsize = 0;          extsize = 0;
         if (!(np2cfg.dipsw[2] & 0x80)) {          if (!(np2cfg.dipsw[2] & 0x80)) {
                 extsize = min(np2cfg.EXTMEM, 13);                  extsize = np2cfg.EXTMEM;
   #if defined(CPUCORE_IA32)
                   extsize = min(extsize, 63);
   #else
                   extsize = min(extsize, 13);
   #endif
         }          }
         pccore.extmem = extsize;          pccore.extmem = extsize;
         CopyMemory(pccore.dipsw, np2cfg.dipsw, 3);          CopyMemory(pccore.dipsw, np2cfg.dipsw, 3);
Line 260  void pccore_term(void) { Line 271  void pccore_term(void) {
         mpu98ii_destruct();          mpu98ii_destruct();
         rs232c_destruct();          rs232c_destruct();
   
         sxsi_trash();          sxsi_alltrash();
   
         CPU_DEINITIALIZE();          CPU_DEINITIALIZE();
 }  }
Line 320  void pccore_reset(void) { Line 331  void pccore_reset(void) {
         }          }
   
         // HDDセット          // HDDセット
         sxsi_open();          diskdrv_hddbind();
           // SASI/IDEどっち?
 #if defined(SUPPORT_SASI)  #if defined(SUPPORT_SASI)
         if (sxsi_issasi()) {          if (sxsi_issasi()) {
                 pccore.hddif &= ~PCHDD_IDE;                  pccore.hddif &= ~PCHDD_IDE;
Line 374  void pccore_reset(void) { Line 386  void pccore_reset(void) {
   
         timing_reset();          timing_reset();
         soundmng_play();          soundmng_play();
   
   #if 0 && defined(SUPPORT_IDEIO) // Test!
           sxsi_devopen(0x02, OEMTEXT("e:\\pn\\pn.iso"));
   #endif
 }  }
   
 static void drawscreen(void) {  static void drawscreen(void) {
Line 548  void screenvsync(NEVENTITEM item) { Line 564  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 602  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 610  void pccore_exec(BOOL draw) {
                                 CPU_EXECV30();                                  CPU_EXECV30();
                         }                          }
                 }                  }
 #else  
                 while(CPU_REMCLOCK > 0) {  
 #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 1  
                                 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 1  
                         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();

Removed from v.1.97  
changed lines
  Added in v.1.104


RetroPC.NET-CVS <cvs@retropc.net>