Diff for /np2/pccore.c between versions 1.67 and 1.73

version 1.67, 2004/02/13 20:31:54 version 1.73, 2004/02/19 11:32:11
Line 10 Line 10
 #include        "cbuscore.h"  #include        "cbuscore.h"
 #include        "pc9861k.h"  #include        "pc9861k.h"
 #include        "mpu98ii.h"  #include        "mpu98ii.h"
   #include        "amd98.h"
 #include        "bios.h"  #include        "bios.h"
 #include        "biosmem.h"  #include        "biosmem.h"
 #include        "vram.h"  #include        "vram.h"
Line 34 Line 35
 #include        "np2ver.h"  #include        "np2ver.h"
 #include        "calendar.h"  #include        "calendar.h"
 #include        "timing.h"  #include        "timing.h"
   #include        "keystat.h"
 #include        "debugsub.h"  #include        "debugsub.h"
   
   
Line 119  static void pccore_set(void) { Line 121  static void pccore_set(void) {
         }          }
         else {          else {
                 pccore.baseclock = PCBASECLOCK20;                       // 2.0MHz                  pccore.baseclock = PCBASECLOCK20;                       // 2.0MHz
                 pccore.cpumode = CPUMODE_8MHz;                  pccore.cpumode = CPUMODE_8MHZ;
         }          }
         multiple = np2cfg.multiple;          multiple = np2cfg.multiple;
         if (multiple == 0) {          if (multiple == 0) {
Line 175  static void sound_init(void) { Line 177  static void sound_init(void) {
                 rate = 0;                  rate = 0;
         }          }
         sound_create(rate, np2cfg.delayms);          sound_create(rate, np2cfg.delayms);
 #if defined(SUPPORT_WAVEMIX)          fddmtrsnd_initialize(rate);
         wavemix_initialize(rate);  
 #endif  
         beep_initialize(rate);          beep_initialize(rate);
         beep_setvol(np2cfg.BEEP_VOL);          beep_setvol(np2cfg.BEEP_VOL);
         tms3631_initialize(rate);          tms3631_initialize(rate);
Line 193  static void sound_init(void) { Line 193  static void sound_init(void) {
         pcm86gen_initialize(rate);          pcm86gen_initialize(rate);
         pcm86gen_setvol(np2cfg.vol_pcm);          pcm86gen_setvol(np2cfg.vol_pcm);
         cs4231_initialize(rate);          cs4231_initialize(rate);
           amd98_initialize(rate);
 }  }
   
 static void sound_term(void) {  static void sound_term(void) {
   
         soundmng_stop();          soundmng_stop();
 #if defined(SUPPORT_WAVEMIX)          amd98_deinitialize();
         wavemix_deinitialize();  
 #endif  
         rhythm_deinitialize();          rhythm_deinitialize();
           fddmtrsnd_deinitialize();
         sound_destroy();          sound_destroy();
 }  }
   
Line 212  void pccore_init(void) { Line 212  void pccore_init(void) {
         pal_initlcdtable();          pal_initlcdtable();
         pal_makelcdpal();          pal_makelcdpal();
         pal_makeskiptable();          pal_makeskiptable();
         dispsync_init();          dispsync_initialize();
         sxsi_initialize();          sxsi_initialize();
   
         font_init();          font_initialize();
         font_load(np2cfg.fontfile, TRUE);          font_load(np2cfg.fontfile, TRUE);
         maketext_init();          maketext_initialize();
         makegrph_init();          makegrph_initialize();
         gdcsub_init();          gdcsub_initialize();
         fddfile_init();          fddfile_initialize();
   
         sound_init();          sound_init();
   
Line 288  void pccore_reset(void) { Line 288  void pccore_reset(void) {
                 sound_init();                  sound_init();
         }          }
   
         ZeroMemory(mem, 0x110000);                                                                      // ver0.28          ZeroMemory(mem, 0x110000);
         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);
Line 299  void pccore_reset(void) { Line 299  void pccore_reset(void) {
         }          }
   
         pccore_set();          pccore_set();
         nevent_init();          nevent_allreset();
   
         CPU_RESET();          CPU_RESET();
         CPU_SETEXTSIZE((UINT32)pccore.extmem);          CPU_SETEXTSIZE((UINT32)pccore.extmem);
Line 331  void pccore_reset(void) { Line 331  void pccore_reset(void) {
         sound_changeclock();          sound_changeclock();
         beep_changeclock();          beep_changeclock();
         sound_reset();          sound_reset();
 #if defined(SUPPORT_WAVEMIX)          fddmtrsnd_bind();
         wavemix_bind();  
 #endif  
   
         fddfile_reset2dmode();          fddfile_reset2dmode();
         bios0x18_16(0x20, 0xe1);          bios0x18_16(0x20, 0xe1);
Line 348  void pccore_reset(void) { Line 346  void pccore_reset(void) {
         cbuscore_bind();          cbuscore_bind();
         fmboard_bind();          fmboard_bind();
   
         fddmtr_init();          fddmtr_initialize();
         calendar_init();          calendar_initialize();
         vram_init();          vram_initialize();
   
         pal_change(1);          pal_change(1);
   
         bios_init();          bios_initialize();
   
         if (np2cfg.ITF_WORK) {          if (np2cfg.ITF_WORK) {
                 CS_BASE = 0xf0000;                  CS_BASE = 0xf0000;
Line 408  static void drawscreen(void) { Line 406  static void drawscreen(void) {
                                 gdcs.grphdisp |= GDCSCRN_ALLDRAW2;                                  gdcs.grphdisp |= GDCSCRN_ALLDRAW2;
                         }                          }
                 }                  }
                                                                                                                                 // ver0.28/pr4  
                 if (gdcs.textdisp & GDCSCRN_EXT) {                  if (gdcs.textdisp & GDCSCRN_EXT) {
                         gdcs.textdisp &= ~GDCSCRN_EXT;                          gdcs.textdisp &= ~GDCSCRN_EXT;
                         dispsync_renewalhorizontal();                          dispsync_renewalhorizontal();
Line 417  static void drawscreen(void) { Line 414  static void drawscreen(void) {
                                 screenupdate |= 2;                                  screenupdate |= 2;
                         }                          }
                 }                  }
                                                                                                                                 // ver0.28/pr4                  if (gdcs.palchange) {
                 if (gdcs.palchange) {                                                                   // grphを先に  
                         gdcs.palchange = 0;                          gdcs.palchange = 0;
                         pal_change(0);                          pal_change(0);
                         screenupdate |= 1;                          screenupdate |= 1;
Line 515  void screendisp(NEVENTITEM item) { Line 511  void screendisp(NEVENTITEM item) {
         gdc_work(GDCWORK_SLAVE);          gdc_work(GDCWORK_SLAVE);
         gdc.vsync = 0;          gdc.vsync = 0;
         screendispflag = 0;          screendispflag = 0;
         if (!np2cfg.DISPSYNC) {                                                                                 // ver0.29          if (!np2cfg.DISPSYNC) {
                 drawscreen();                  drawscreen();
         }          }
         pi = &pic.pi[0];          pi = &pic.pi[0];
Line 540  void screenvsync(NEVENTITEM item) { Line 536  void screenvsync(NEVENTITEM item) {
         nevent_set(NEVENT_FLAMES, gdc.vsyncclock, screendisp, NEVENT_RELATIVE);          nevent_set(NEVENT_FLAMES, gdc.vsyncclock, screendisp, NEVENT_RELATIVE);
   
         // drawscreenで pccore.vsyncclockが変更される可能性があります          // drawscreenで pccore.vsyncclockが変更される可能性があります
         if (np2cfg.DISPSYNC) {                                                                                  // ver0.29          if (np2cfg.DISPSYNC) {
                 drawscreen();                  drawscreen();
         }          }
         (void)item;          (void)item;
Line 593  UINT cflg; Line 589  UINT cflg;
 void pccore_exec(BOOL draw) {  void pccore_exec(BOOL draw) {
   
         drawframe = draw;          drawframe = draw;
         keyext_flash();          keystat_sync();
         soundmng_sync();          soundmng_sync();
         mouseif_sync();          mouseif_sync();
         pal_eventclear();          pal_eventclear();
Line 642  void pccore_exec(BOOL draw) { Line 638  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 1  #if 0
                         if ((CPU_CS == 0xf800) && (CPU_IP == 0x0B5B)) {                          if ((CPU_CS == 0xf800) && (CPU_IP == 0x0B5B)) {
                                 TRACEOUT(("%.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x",                                  TRACEOUT(("%.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x",
                                                         mem[0x9000], mem[0x9001],                                                          mem[0x9000], mem[0x9001],
Line 656  void pccore_exec(BOOL draw) { Line 652  void pccore_exec(BOOL draw) {
                                                                         CPU_DX, CPU_DS, CPU_DI, mem[0xa3fe0]));                                                                          CPU_DX, CPU_DS, CPU_DI, mem[0xa3fe0]));
                         }                          }
 #endif  #endif
 #if 0  
                         if ((tr & 2) && (mem[0x0471e] == '\\')) {  
                                 TRACEOUT(("DTA BREAK %.4x:%.4x", CPU_CS, CPU_IP));  
                                 TRACEOUT(("0471:000e %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x",  
         mem[0x0471e+0], mem[0x0471e+1], mem[0x0471e+2], mem[0x0471e+3],  
         mem[0x0471e+4], mem[0x0471e+5], mem[0x0471e+6], mem[0x0471e+7]));  
                                 tr -= 2;  
                         }  
                         // DOS6  
                         if (CPU_CS == 0xffd0) {  
                                 if (CPU_IP == 0xc4c2) {  
                                         TRACEOUT(("DS:DX = %.4x:%.4x / CX = %.4x", CPU_DS, CPU_DX, CPU_CX));  
                                 }  
                                 else if (CPU_IP == 0xc21d) {  
                                         TRACEOUT(("-> DS:BX = %.4x:%.4x", CPU_DS, CPU_BX));  
                                 }  
                         }  
 #endif  
 #if 0  
                         if ((CPU_CS == 0x0620) || (CPU_CS == 0x08a0)) {  
                                 TRACEOUT(("%.4x:%.4x", CPU_CS, CPU_IP));  
                         }  
 #endif  
 #if 1           // VX LIO  
                         if (CPU_CS == 0xf990) {  
                                 if (CPU_IP == 0x07BE) {  
                                         TRACEOUT(("%d,%d - %d,%d", CPU_BP, CPU_DX, CPU_SI, CPU_DI));  
                                 }  
                         }  
 #endif  
                         i286x_step();                          i286x_step();
 //                      i286c_step();  //                      i286c_step();
                 }                  }

Removed from v.1.67  
changed lines
  Added in v.1.73


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