Diff for /np2/pccore.c between versions 1.68 and 1.90

version 1.68, 2004/02/16 05:11:38 version 1.90, 2004/06/18 07:42:13
Line 7 Line 7
 #include        "cpucore.h"  #include        "cpucore.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
   #include        "gdc_sub.h"
 #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 19 Line 21
 #include        "maketext.h"  #include        "maketext.h"
 #include        "maketgrp.h"  #include        "maketgrp.h"
 #include        "makegrph.h"  #include        "makegrph.h"
   #include        "makegrex.h"
 #include        "sound.h"  #include        "sound.h"
 #include        "fmboard.h"  #include        "fmboard.h"
 #include        "beep.h"  #include        "beep.h"
Line 34 Line 37
 #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 44 Line 48
                                 0, 0, 0, 0,                                  0, 0, 0, 0,
                                 {0x3e, 0x73, 0x7b}, 0,                                  {0x3e, 0x73, 0x7b}, 0,
                                 0, 0, {1, 1, 6, 1, 8, 1},                                  0, 0, {1, 1, 6, 1, 8, 1},
                                 {{0, {0, }}, {0, {0, }}},  
   
                                 "VX", PCBASECLOCK25, 4,                                  "VX", PCBASECLOCK25, 4,
                                 {0x48, 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6e},                                  {0x48, 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6e},
                                 1, 1, 2, 1, 0x000000, 0xffffff,                                  1, 1, 2, 1, 0x000000, 0xffffff,
                                 22050, 800, 4, 0,                                  22050, 500, 4, 0,
                                 {0, 0, 0}, 0xd1, 0x7f, 0xd1, 0, 0, 1,                                  {0, 0, 0}, 0xd1, 0x7f, 0xd1, 0, 0, 1,
                                 3, {0x0c, 0x0c, 0x08, 0x06, 0x03, 0x0c}, 64, 64, 64, 64, 64,                                  3, {0x0c, 0x0c, 0x08, 0x06, 0x03, 0x0c}, 64, 64, 64, 64, 64,
                                 1, 0x82,                                  1, 0x82,
Line 66 Line 69
                                                 0, 0,                                                  0, 0,
                                                 4 * PCBASECLOCK25};                                                  4 * PCBASECLOCK25};
   
 static const BYTE msw_default[8] =  
                                                         {0x48, 0x05, 0x04, 0x00, 0x01, 0x00, 0x00, 0x6e};  
   
         BYTE    screenupdate = 3;          BYTE    screenupdate = 3;
         int             screendispflag = 1;          int             screendispflag = 1;
         int             soundrenewal = 0;          int             soundrenewal = 0;
Line 119  static void pccore_set(void) { Line 119  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 130  static void pccore_set(void) { Line 130  static void pccore_set(void) {
         }          }
         pccore.multiple = multiple;          pccore.multiple = multiple;
         pccore.realclock = pccore.baseclock * multiple;          pccore.realclock = pccore.baseclock * multiple;
 #if 0  
         keybrd.xferclock = pccore.realclock / 1920;  
         gdc.rasterclock = pccore.realclock / 24816;  
         gdc.hsyncclock = (gdc.rasterclock * 4) / 5;  
         gdc.dispclock = pccore.realclock * 50 / 3102;  
         gdc.vsyncclock = pccore.realclock * 5 / 3102;  
 #endif  
         // HDDの接続 (I/Oの使用状態が変わるので..          // HDDの接続 (I/Oの使用状態が変わるので..
         if (np2cfg.dipsw[1] & 0x20) {          if (np2cfg.dipsw[1] & 0x20) {
                 pccore.hddif |= PCHDD_IDE;                  pccore.hddif |= PCHDD_IDE;
Line 175  static void sound_init(void) { Line 169  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 185  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 204  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 267  void pccore_cfgupdate(void) { Line 259  void pccore_cfgupdate(void) {
   
         renewal = FALSE;          renewal = FALSE;
         for (i=0; i<8; i++) {          for (i=0; i<8; i++) {
                 if (np2cfg.memsw[i] != mem[MEMB_MSW + i*4]) {                  if (np2cfg.memsw[i] != mem[MEMX_MSW + i*4]) {
                         np2cfg.memsw[i] = mem[MEMB_MSW + i*4];                          np2cfg.memsw[i] = mem[MEMX_MSW + i*4];
                         renewal = TRUE;                          renewal = TRUE;
                 }                  }
         }          }
Line 288  void pccore_reset(void) { Line 280  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 291  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 323  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 338  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();
   
           CS_BASE = 0xf0000;
           CPU_CS = 0xf000;
           CPU_IP = 0xfff0;
   
         if (np2cfg.ITF_WORK) {  
                 CS_BASE = 0xf0000;  
                 CPU_CS = 0xf000;  
                 CPU_IP = 0xfff0;  
         }  
         else {  
                 for (i=0; i<8; i++) {  
                         mem[0xa3fe2 + i*4] = msw_default[i];  
                 }  
                 CS_BASE = 0xfd800;  
                 CPU_CS = 0xfd80;  
                 CPU_IP = 0x0002;  
         }  
         CPU_CLEARPREFETCH();          CPU_CLEARPREFETCH();
         sysmng_cpureset();          sysmng_cpureset();
   
Line 382  void pccore_reset(void) { Line 363  void pccore_reset(void) {
   
 static void drawscreen(void) {  static void drawscreen(void) {
   
         BYTE    timing;          UINT8   timing;
           void    (VRAMCALL * grphfn)(int page, int alldraw);
           UINT8   bit;
   
         tramflag.timing++;          tramflag.timing++;
         timing = ((LOADINTELWORD(gdc.m.para + GDC_CSRFORM + 1)) >> 5) & 0x3e;          timing = ((LOADINTELWORD(gdc.m.para + GDC_CSRFORM + 1)) >> 5) & 0x3e;
Line 400  static void drawscreen(void) { Line 383  static void drawscreen(void) {
                 gdc_updateclock();                  gdc_updateclock();
         }          }
   
         if (drawframe) {          if (!drawframe) {
                 if ((gdcs.textdisp & GDCSCRN_EXT) ||                  return;
                         (gdcs.grphdisp & GDCSCRN_EXT)) {          }
                         if (dispsync_renewalvertical()) {          if ((gdcs.textdisp & GDCSCRN_EXT) || (gdcs.grphdisp & GDCSCRN_EXT)) {
                                 gdcs.textdisp |= GDCSCRN_ALLDRAW2;                  if (dispsync_renewalvertical()) {
                                 gdcs.grphdisp |= GDCSCRN_ALLDRAW2;                          gdcs.textdisp |= GDCSCRN_ALLDRAW2;
                         }                          gdcs.grphdisp |= GDCSCRN_ALLDRAW2;
                 }  
                                                                                                                                 // ver0.28/pr4  
                 if (gdcs.textdisp & GDCSCRN_EXT) {  
                         gdcs.textdisp &= ~GDCSCRN_EXT;  
                         dispsync_renewalhorizontal();  
                         tramflag.renewal |= 1;  
                         if (dispsync_renewalmode()) {  
                                 screenupdate |= 2;  
                         }  
                 }                  }
                                                                                                                                 // ver0.28/pr4          }
                 if (gdcs.palchange) {                                                                   // grphを先に          if (gdcs.textdisp & GDCSCRN_EXT) {
                         gdcs.palchange = 0;                  gdcs.textdisp &= ~GDCSCRN_EXT;
                         pal_change(0);                  dispsync_renewalhorizontal();
                         screenupdate |= 1;                  tramflag.renewal |= 1;
                   if (dispsync_renewalmode()) {
                           screenupdate |= 2;
                 }                  }
                 if (gdcs.grphdisp & GDCSCRN_EXT) {          }
                         gdcs.grphdisp &= ~GDCSCRN_EXT;          if (gdcs.palchange) {
                         if (((gdc.clock & 0x80) && (gdc.clock != 0x83)) ||                  gdcs.palchange = 0;
                                 (gdc.clock == 0x03)) {                  pal_change(0);
                                 gdc.clock ^= 0x80;                  screenupdate |= 1;
                                 gdcs.grphdisp |= GDCSCRN_ALLDRAW2;          }
           if (gdcs.grphdisp & GDCSCRN_EXT) {
                   gdcs.grphdisp &= ~GDCSCRN_EXT;
                   if (((gdc.clock & 0x80) && (gdc.clock != 0x83)) ||
                           (gdc.clock == 0x03)) {
                           gdc.clock ^= 0x80;
                           gdcs.grphdisp |= GDCSCRN_ALLDRAW2;
                   }
           }
           if (gdcs.grphdisp & GDCSCRN_ENABLE) {
                   if (!(gdc.mode1 & 2)) {
                           grphfn = makegrph;
                           bit = GDCSCRN_MAKE;
                           if (gdcs.disp) {
                                   bit <<= 1;
                           }
   #if defined(SUPPORT_PC9821)
                           if (gdc.analog & 2) {
                                   grphfn = makegrphex;
                                   if (gdc.analog & 4) {
                                           bit = GDCSCRN_MAKE | (GDCSCRN_MAKE << 1);
                                   }
                           }
   #endif
                           if (gdcs.grphdisp & bit) {
                                   (*grphfn)(gdcs.disp, gdcs.grphdisp & bit & GDCSCRN_ALLDRAW2);
                                   gdcs.grphdisp &= ~bit;
                                   screenupdate |= 1;
                         }                          }
                 }                  }
                 if (gdcs.grphdisp & GDCSCRN_ENABLE) {                  else if (gdcs.textdisp & GDCSCRN_ENABLE) {
                         if (!(gdc.mode1 & 2)) {                          if (!gdcs.disp) {
                                 if (!gdcs.disp) {                                  if ((gdcs.grphdisp & GDCSCRN_MAKE) ||
                                         if (gdcs.grphdisp & GDCSCRN_MAKE) {                                          (gdcs.textdisp & GDCSCRN_MAKE)) {
                                                 makegrph(0, gdcs.grphdisp & GDCSCRN_ALLDRAW);                                          if (!(gdc.mode1 & 0x4)) {
                                                 gdcs.grphdisp &= ~GDCSCRN_MAKE;                                                  maketextgrph(0, gdcs.textdisp & GDCSCRN_ALLDRAW,
                                                 screenupdate |= 1;                                                                  gdcs.grphdisp & GDCSCRN_ALLDRAW);
                                         }                                          }
                                 }                                          else {
                                 else {                                                  maketextgrph40(0, gdcs.textdisp & GDCSCRN_ALLDRAW,
                                         if (gdcs.grphdisp & (GDCSCRN_MAKE << 1)) {                                                                  gdcs.grphdisp & GDCSCRN_ALLDRAW);
                                                 makegrph(1, gdcs.grphdisp & (GDCSCRN_ALLDRAW << 1));  
                                                 gdcs.grphdisp &= ~(GDCSCRN_MAKE << 1);  
                                                 screenupdate |= 1;  
                                         }                                          }
                                           gdcs.grphdisp &= ~GDCSCRN_MAKE;
                                           screenupdate |= 1;
                                 }                                  }
                         }                          }
                         else if (gdcs.textdisp & GDCSCRN_ENABLE) {                          else {
                                 if (!gdcs.disp) {                                  if ((gdcs.grphdisp & (GDCSCRN_MAKE << 1)) ||
                                         if ((gdcs.grphdisp & GDCSCRN_MAKE) ||                                          (gdcs.textdisp & GDCSCRN_MAKE)) {
                                                 (gdcs.textdisp & GDCSCRN_MAKE)) {                                          if (!(gdc.mode1 & 0x4)) {
                                                 if (!(gdc.mode1 & 0x4)) {                                                  maketextgrph(1, gdcs.textdisp & GDCSCRN_ALLDRAW,
                                                         maketextgrph(0, gdcs.textdisp & GDCSCRN_ALLDRAW,                                                                  gdcs.grphdisp & (GDCSCRN_ALLDRAW << 1));
                                                                         gdcs.grphdisp & GDCSCRN_ALLDRAW);  
                                                 }  
                                                 else {  
                                                         maketextgrph40(0, gdcs.textdisp & GDCSCRN_ALLDRAW,  
                                                                         gdcs.grphdisp & GDCSCRN_ALLDRAW);  
                                                 }  
                                                 gdcs.grphdisp &= ~GDCSCRN_MAKE;  
                                                 screenupdate |= 1;  
                                         }                                          }
                                 }                                          else {
                                 else {                                                  maketextgrph40(1, gdcs.textdisp & GDCSCRN_ALLDRAW,
                                         if ((gdcs.grphdisp & (GDCSCRN_MAKE << 1)) ||                                                                  gdcs.grphdisp & (GDCSCRN_ALLDRAW << 1));
                                                 (gdcs.textdisp & GDCSCRN_MAKE)) {  
                                                 if (!(gdc.mode1 & 0x4)) {  
                                                         maketextgrph(1, gdcs.textdisp & GDCSCRN_ALLDRAW,  
                                                                         gdcs.grphdisp & (GDCSCRN_ALLDRAW << 1));  
                                                 }  
                                                 else {  
                                                         maketextgrph40(1, gdcs.textdisp & GDCSCRN_ALLDRAW,  
                                                                         gdcs.grphdisp & (GDCSCRN_ALLDRAW << 1));  
                                                 }  
                                                 gdcs.grphdisp &= ~(GDCSCRN_MAKE << 1);  
                                                 screenupdate |= 1;  
                                         }                                          }
                                           gdcs.grphdisp &= ~(GDCSCRN_MAKE << 1);
                                           screenupdate |= 1;
                                 }                                  }
                         }                          }
                 }                  }
           }
                 if (gdcs.textdisp & GDCSCRN_ENABLE) {          if (gdcs.textdisp & GDCSCRN_ENABLE) {
                         if (tramflag.renewal) {                  if (tramflag.renewal) {
                                 gdcs.textdisp |= maketext_curblink();                          gdcs.textdisp |= maketext_curblink();
                         }                  }
                         if ((cgwindow.writable & 0x80) && (tramflag.gaiji)) {                  if ((cgwindow.writable & 0x80) && (tramflag.gaiji)) {
                                 gdcs.textdisp |= GDCSCRN_ALLDRAW;                          gdcs.textdisp |= GDCSCRN_ALLDRAW;
                   }
                   cgwindow.writable &= ~0x80;
                   if (gdcs.textdisp & GDCSCRN_MAKE) {
                           if (!(gdc.mode1 & 0x4)) {
                                   maketext(gdcs.textdisp & GDCSCRN_ALLDRAW);
                         }                          }
                         cgwindow.writable &= ~0x80;                          else {
                         if (gdcs.textdisp & GDCSCRN_MAKE) {                                  maketext40(gdcs.textdisp & GDCSCRN_ALLDRAW);
                                 if (!(gdc.mode1 & 0x4)) {  
                                         maketext(gdcs.textdisp & GDCSCRN_ALLDRAW);  
                                 }  
                                 else {  
                                         maketext40(gdcs.textdisp & GDCSCRN_ALLDRAW);  
                                 }  
                                 gdcs.textdisp &= ~GDCSCRN_MAKE;  
                                 screenupdate |= 1;  
                         }                          }
                           gdcs.textdisp &= ~GDCSCRN_MAKE;
                           screenupdate |= 1;
                 }                  }
                 if (screenupdate) {          }
                         screenupdate = scrndraw_draw((BYTE)(screenupdate & 2));          if (screenupdate) {
                         drawcount++;                  screenupdate = scrndraw_draw((BYTE)(screenupdate & 2));
                 }                  drawcount++;
         }          }
 }  }
   
Line 515  void screendisp(NEVENTITEM item) { Line 499  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 524  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 552  void screenvsync(NEVENTITEM item) { Line 536  void screenvsync(NEVENTITEM item) {
 // #define      IPTRACE                 (1 << 12)  // #define      IPTRACE                 (1 << 12)
   
 #if defined(TRACE) && IPTRACE  #if defined(TRACE) && IPTRACE
 static UINT             trpos = 0;  static  UINT    trpos = 0;
 static UINT32   treip[IPTRACE];  static  UINT32  treip[IPTRACE];
   
 void iptrace_out(void) {  void iptrace_out(void) {
   
Line 590  UINT cflg; Line 574  UINT cflg;
 #endif  #endif
   
   
   void pccore_postevent(UINT32 event) {   // yet!
   
           (void)event;
   }
   
 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 627  void pccore_exec(BOOL draw) { Line 616  void pccore_exec(BOOL draw) {
 #endif  #endif
                 }                  }
   
 #if 1 // ndef TRACE  #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 642  void pccore_exec(BOOL draw) { Line 631  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                          i286x_step();
                         if ((CPU_CS == 0xf800) && (CPU_IP == 0x0B5B)) {  //                      i286c_step();
                                 TRACEOUT(("%.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x %.2x",  
                                                         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  
 #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 0           // 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();  
                         i286c_step();  
                 }                  }
 #endif  #endif
                 nevent_progress();                  nevent_progress();

Removed from v.1.68  
changed lines
  Added in v.1.90


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