Diff for /np2/pccore.c between versions 1.51 and 1.60

version 1.51, 2004/01/23 16:57:20 version 1.60, 2004/01/30 01:56:01
Line 140  static void pccore_set(void) { Line 140  static void pccore_set(void) {
   
         UINT8   model;          UINT8   model;
         UINT32  multiple;          UINT32  multiple;
           UINT8   extsize;
   
         ZeroMemory(&pccore, sizeof(pccore));          ZeroMemory(&pccore, sizeof(pccore));
         model = PCMODEL_VX;          model = PCMODEL_VX;
Line 175  static void pccore_set(void) { Line 176  static void pccore_set(void) {
         pccore.keyboardclock = pccore.realclock / 1920;          pccore.keyboardclock = pccore.realclock / 1920;
         pccore.midiclock = pccore.realclock / 3125;          pccore.midiclock = pccore.realclock / 3125;
   
         // 拡張メモリ  
         if (!(np2cfg.dipsw[2] & 0x80)) {  
                 pccore.extmem = np2cfg.EXTMEM;  
         }  
   
         // HDDの接続 (I/Oの使用状態が変わるので..          // HDDの接続 (I/Oの使用状態が変わるので..
         if (np2cfg.dipsw[1] & 0x20) {          if (np2cfg.dipsw[1] & 0x20) {
                 pccore.hddif |= PCHDD_IDE;                  pccore.hddif |= PCHDD_IDE;
         }          }
         pccore.hddif |= PCHDD_SCSI;  
           // 拡張メモリ
           extsize = 0;
           if (!(np2cfg.dipsw[2] & 0x80)) {
                   extsize = min(np2cfg.EXTMEM, 13);
           }
           pccore.extmem = extsize;
   
         // サウンドボードの接続          // サウンドボードの接続
         pccore.sound = np2cfg.SOUND_SW;          pccore.sound = np2cfg.SOUND_SW;
Line 260  void pccore_init(void) { Line 262  void pccore_init(void) {
   
         sound_init();          sound_init();
   
         mpu98ii_construct();  
         rs232c_construct();          rs232c_construct();
         pc9861k_construct();          mpu98ii_construct();
           pc9861k_initialize();
   
         iocore_create();          iocore_create();
   
Line 284  void pccore_term(void) { Line 286  void pccore_term(void) {
         fdd_eject(2);          fdd_eject(2);
         fdd_eject(3);          fdd_eject(3);
   
         extmemmng_clear();  
   
         iocore_destroy();          iocore_destroy();
   
         pc9861k_destruct();          pc9861k_deinitialize();
         rs232c_destruct();  
         mpu98ii_destruct();          mpu98ii_destruct();
           rs232c_destruct();
   
         sxsi_trash();          sxsi_trash();
   
Line 326  void pccore_reset(void) { Line 326  void pccore_reset(void) {
                 sound_init();                  sound_init();
         }          }
   
         ZeroMemory(mem, 0x10fff0);                                                                      // ver0.28          ZeroMemory(mem, 0x110000);                                                                      // ver0.28
         ZeroMemory(mem + VRAM1_B, 0x18000);          ZeroMemory(mem + VRAM1_B, 0x18000);
         ZeroMemory(mem + VRAM1_E, 0x08000);          ZeroMemory(mem + VRAM1_E, 0x08000);
         ZeroMemory(mem + FONT_ADRS, 0x08000);          ZeroMemory(mem + FONT_ADRS, 0x08000);
   
         CPU_RESET();  
         CPU_TYPE = 0;  
         if (np2cfg.dipsw[2] & 0x80) {  
                 CPU_TYPE = CPUTYPE_V30;  
         }  
   
         //メモリスイッチ          //メモリスイッチ
         for (i=0; i<8; i++) {          for (i=0; i<8; i++) {
                 mem[0xa3fe2 + i*4] = np2cfg.memsw[i];                  mem[0xa3fe2 + i*4] = np2cfg.memsw[i];
         }          }
   
         fddfile_reset2dmode();  
         bios0x18_16(0x20, 0xe1);  
   
         pccore_set();          pccore_set();
         nevent_init();          nevent_init();
         CPU_SETEXTMEM(pccore.extmem);  
           CPU_RESET();
           CPU_SETEXTSIZE((UINT32)pccore.extmem);
   
           CPU_TYPE = 0;
           if (np2cfg.dipsw[2] & 0x80) {
                   CPU_TYPE = CPUTYPE_V30;
           }
         if (pccore.model & PCMODEL_EPSON) {                     // RAM ctrl          if (pccore.model & PCMODEL_EPSON) {                     // RAM ctrl
                 CPU_RAM_D000 = 0xffff;                  CPU_RAM_D000 = 0xffff;
         }          }
   
           // HDDセット
           sxsi_open();
   #if defined(SUPPORT_SASI)
           if (sxsi_issasi()) {
                   pccore.hddif &= ~PCHDD_IDE;
                   pccore.hddif |= PCHDD_SASI;
                   TRACEOUT(("supported SASI"));
           }
   #endif
   #if defined(SUPPORT_SCSI)
           if (sxsi_isscsi()) {
                   pccore.hddif |= PCHDD_SCSI;
                   TRACEOUT(("supported SCSI"));
           }
   #endif
   
         sound_changeclock();          sound_changeclock();
         beep_changeclock();          beep_changeclock();
Line 360  void pccore_reset(void) { Line 373  void pccore_reset(void) {
         wavemix_bind();          wavemix_bind();
 #endif  #endif
   
           fddfile_reset2dmode();
           bios0x18_16(0x20, 0xe1);
   
         iocore_reset();                                                         // サウンドでpicを呼ぶので…          iocore_reset();                                                         // サウンドでpicを呼ぶので…
         cbuscore_reset();          cbuscore_reset();
Line 378  void pccore_reset(void) { Line 393  void pccore_reset(void) {
         pal_change(1);          pal_change(1);
   
         bios_init();          bios_init();
         sxsi_open();  
   
         if (np2cfg.ITF_WORK) {          if (np2cfg.ITF_WORK) {
                 CS_BASE = 0xf0000;                  CS_BASE = 0xf0000;
Line 667  void pccore_exec(BOOL draw) { Line 681  void pccore_exec(BOOL draw) {
                         treip[trpos & (IPTRACE - 1)] = (CPU_CS << 16) + CPU_IP;                          treip[trpos & (IPTRACE - 1)] = (CPU_CS << 16) + CPU_IP;
                         trpos++;                          trpos++;
 #endif  #endif
 #if 0  #if 1
                         if (tr) {                          if ((CPU_CS == 0xf800) && (CPU_IP == 0x0B5B)) {
                                 if ((CPU_CS == 0xf760) || (CPU_CS == 0xf990)) {                                  TRACEOUT(("%.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x",
                                         TRACEOUT(("%.4x:%.4x", CPU_CS, CPU_IP));                                                          mem[0x9000], mem[0x9001],
                                 }                                                          mem[0x9002], mem[0x9003],
                                                           mem[0x9004], mem[0x9005],
                                                           mem[0x9006], mem[0x9007],
                                                           mem[0x9008], mem[0x9009]));
                           }
                           if ((CPU_CS == 0xf800) && (CPU_IP == 0x15FF)) {
                                   TRACEOUT(("DX = %.4x / DS:DI = %.4x:%.4x [%.2x]",
                                                                           CPU_DX, CPU_DS, CPU_DI, mem[0xa3fe0]));
                         }                          }
 #endif  #endif
 #if 0  #if 0

Removed from v.1.51  
changed lines
  Added in v.1.60


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