Diff for /np2/pccore.c between versions 1.43 and 1.44

version 1.43, 2004/01/09 07:27:15 version 1.44, 2004/01/13 05:30:58
Line 56 Line 56
                                 1, 80, 0, 0,                                  1, 80, 0, 0,
                                 {"", ""}, "", "", ""};                                  {"", ""}, "", "", ""};
   
         PCCORE  pc = {  PCBASECLOCK25,          PCCORE  pccore = {      PCBASECLOCK25, 4,
                                         4,                                                  0, PCMODEL_VX, 0, 0,
                                         4 * PCBASECLOCK25,                                                  0, 0,
                                         4 * PCBASECLOCK25 * 50 / 3104,                                                  4 * PCBASECLOCK25,
                                         4 * PCBASECLOCK25 * 5 / 3104,                                                  4 * PCBASECLOCK25 * 50 / 3104,
                                         4 * PCBASECLOCK25 / 120,                                                  4 * PCBASECLOCK25 * 5 / 3104,
                                         4 * PCBASECLOCK25 / 1920,                                                  4 * PCBASECLOCK25 / 1920,
                                         4 * PCBASECLOCK25 / 3125,                                                  4 * PCBASECLOCK25 / 3125,
                                         4 * PCBASECLOCK25 / 56400,                                                  100, 20};
                                         100, 20, 0, PCMODEL_VX};  
   
                                                                         // on=0, off=1                                                                          // on=0, off=1
 //      BYTE    dip_default[3] = {0x3e, 0x63, 0x7a};  //      BYTE    dip_default[3] = {0x3e, 0x63, 0x7a};
Line 129  static void setvsyncclock(void) { Line 128  static void setvsyncclock(void) {
                 vs = 1;                  vs = 1;
         }          }
         maxy = disp + vs;          maxy = disp + vs;
         cnt = (pc.realclock * 5) / 282;          cnt = (pccore.realclock * 5) / 282;
         pc.raster = cnt / maxy;          pccore.raster = cnt / maxy;
         pc.hsync = (pc.raster * 4) / 5;          pccore.hsync = (pccore.raster * 4) / 5;
         pc.dispclock = pc.raster * disp;          pccore.dispclock = pccore.raster * disp;
         pc.vsyncclock = cnt - pc.dispclock;          pccore.vsyncclock = cnt - pccore.dispclock;
 }  }
   
 static void setpcclock(const char *modelstr, UINT base, UINT multiple) {  static void setpcclock(const char *modelstr, UINT base, UINT multiple) {
Line 147  static void setpcclock(const char *model Line 146  static void setpcclock(const char *model
         else if (!milstr_cmp(modelstr, str_EPSON)) {          else if (!milstr_cmp(modelstr, str_EPSON)) {
                 model = PCMODEL_EPSON | PCMODEL_VM;                  model = PCMODEL_EPSON | PCMODEL_VM;
         }          }
         pc.model = model;          pccore.model = model;
   
         if (base >= ((PCBASECLOCK25 + PCBASECLOCK20) / 2)) {          if (base >= ((PCBASECLOCK25 + PCBASECLOCK20) / 2)) {
                 pc.baseclock = PCBASECLOCK25;                   // 2.5MHz                  pccore.baseclock = PCBASECLOCK25;                       // 2.5MHz
                 pc.cpumode = 0;                  pccore.cpumode = 0;
         }          }
         else {          else {
                 pc.baseclock = PCBASECLOCK20;                   // 2.0MHz                  pccore.baseclock = PCBASECLOCK20;                       // 2.0MHz
                 pc.cpumode = CPUMODE_8MHz;                  pccore.cpumode = CPUMODE_8MHz;
         }          }
         if (multiple == 0) {          if (multiple == 0) {
                 multiple = 1;                  multiple = 1;
Line 163  static void setpcclock(const char *model Line 162  static void setpcclock(const char *model
         else if (multiple > 32) {          else if (multiple > 32) {
                 multiple = 32;                  multiple = 32;
         }          }
         pc.multiple = multiple;          pccore.multiple = multiple;
         pc.realclock = pc.baseclock * multiple;          pccore.realclock = pccore.baseclock * multiple;
         pc.raster = pc.realclock / 24816;                                                       // ver0.28          pccore.raster = pccore.realclock / 24816;
         pc.hsync = (pc.raster * 4) / 5;                                                         // ver0.28          pccore.hsync = (pccore.raster * 4) / 5;
         pc.dispclock = pc.realclock * 50 / 3102;          pccore.dispclock = pccore.realclock * 50 / 3102;
         pc.vsyncclock = pc.realclock * 5 / 3102;          pccore.vsyncclock = pccore.realclock * 5 / 3102;
         pc.mouseclock = pc.realclock / 120;          pccore.keyboardclock = pccore.realclock / 1920;
         pc.keyboardclock = pc.realclock / 1920;          pccore.midiclock = pccore.realclock / 3125;
         pc.midiclock = pc.realclock / 3125;  
         pc.frame1000 = pc.realclock / 56400;  
 }  }
   
   
Line 329  void pccore_reset(void) { Line 326  void pccore_reset(void) {
         wavemix_bind();          wavemix_bind();
 #endif  #endif
   
         if (pc.model & PCMODEL_EPSON) {                         // RAM ctrl          if (pccore.model & PCMODEL_EPSON) {                     // RAM ctrl
                 CPU_RAM_D000 = 0xffff;                  CPU_RAM_D000 = 0xffff;
         }          }
   
Line 337  void pccore_reset(void) { Line 334  void pccore_reset(void) {
         cbuscore_reset();          cbuscore_reset();
         fmboard_reset(np2cfg.SOUND_SW);          fmboard_reset(np2cfg.SOUND_SW);
   
         i286_memorymap((pc.model & PCMODEL_EPSON)?1:0);          i286_memorymap((pccore.model & PCMODEL_EPSON)?1:0);
         iocore_build();          iocore_build();
         iocore_bind();          iocore_bind();
         cbuscore_bind();          cbuscore_bind();
Line 534  void screenvsync(NEVENTITEM item) { Line 531  void screenvsync(NEVENTITEM item) {
                 gdc.vsyncint = 0;                  gdc.vsyncint = 0;
                 pic_setirq(2);                  pic_setirq(2);
         }          }
         nevent_set(NEVENT_FLAMES, pc.vsyncclock, screendisp, NEVENT_RELATIVE);          nevent_set(NEVENT_FLAMES, pccore.vsyncclock, screendisp, NEVENT_RELATIVE);
   
         // drawscreenで pc.vsyncclockが変更される可能性があります               // ver0.28          // drawscreenで pccore.vsyncclockが変更される可能性があります
         if (np2cfg.DISPSYNC) {                                                                                  // ver0.29          if (np2cfg.DISPSYNC) {                                                                                  // ver0.29
                 drawscreen();                  drawscreen();
         }          }
Line 565  void pccore_exec(BOOL draw) { Line 562  void pccore_exec(BOOL draw) {
         MEMWAIT_TRAM = np2cfg.wait[0];          MEMWAIT_TRAM = np2cfg.wait[0];
         MEMWAIT_VRAM = np2cfg.wait[2];          MEMWAIT_VRAM = np2cfg.wait[2];
         MEMWAIT_GRCG = np2cfg.wait[4];          MEMWAIT_GRCG = np2cfg.wait[4];
         nevent_set(NEVENT_FLAMES, pc.dispclock, screenvsync, NEVENT_RELATIVE);          nevent_set(NEVENT_FLAMES, pccore.dispclock, screenvsync, NEVENT_RELATIVE);
   
 //      nevent_get1stevent();  //      nevent_get1stevent();
   

Removed from v.1.43  
changed lines
  Added in v.1.44


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