Diff for /np2/pccore.c between versions 1.75 and 1.78

version 1.75, 2004/02/21 04:48:35 version 1.78, 2004/03/04 15:20:13
Line 21 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 374  void pccore_reset(void) { Line 375  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 392  static void drawscreen(void) { Line 395  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;
                 }  
                 if (gdcs.textdisp & GDCSCRN_EXT) {  
                         gdcs.textdisp &= ~GDCSCRN_EXT;  
                         dispsync_renewalhorizontal();  
                         tramflag.renewal |= 1;  
                         if (dispsync_renewalmode()) {  
                                 screenupdate |= 2;  
                         }  
                 }  
                 if (gdcs.palchange) {  
                         gdcs.palchange = 0;  
                         pal_change(0);  
                         screenupdate |= 1;  
                 }                  }
                 if (gdcs.grphdisp & GDCSCRN_EXT) {          }
                         gdcs.grphdisp &= ~GDCSCRN_EXT;          if (gdcs.textdisp & GDCSCRN_EXT) {
                         if (((gdc.clock & 0x80) && (gdc.clock != 0x83)) ||                  gdcs.textdisp &= ~GDCSCRN_EXT;
                                 (gdc.clock == 0x03)) {                  dispsync_renewalhorizontal();
                                 gdc.clock ^= 0x80;                  tramflag.renewal |= 1;
                                 gdcs.grphdisp |= GDCSCRN_ALLDRAW2;                  if (dispsync_renewalmode()) {
                           screenupdate |= 2;
                   }
           }
           if (gdcs.palchange) {
                   gdcs.palchange = 0;
                   pal_change(0);
                   screenupdate |= 1;
           }
           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;                  cgwindow.writable &= ~0x80;
                         if (gdcs.textdisp & GDCSCRN_MAKE) {                  if (gdcs.textdisp & GDCSCRN_MAKE) {
                                 if (!(gdc.mode1 & 0x4)) {                          if (!(gdc.mode1 & 0x4)) {
                                         maketext(gdcs.textdisp & GDCSCRN_ALLDRAW);                                  maketext(gdcs.textdisp & GDCSCRN_ALLDRAW);
                                 }  
                                 else {  
                                         maketext40(gdcs.textdisp & GDCSCRN_ALLDRAW);  
                                 }  
                                 gdcs.textdisp &= ~GDCSCRN_MAKE;  
                                 screenupdate |= 1;  
                         }                          }
                 }                          else {
                 if (screenupdate) {                                  maketext40(gdcs.textdisp & GDCSCRN_ALLDRAW);
                         screenupdate = scrndraw_draw((BYTE)(screenupdate & 2));                          }
                         drawcount++;                          gdcs.textdisp &= ~GDCSCRN_MAKE;
                           screenupdate |= 1;
                 }                  }
         }          }
           if (screenupdate) {
                   screenupdate = scrndraw_draw((BYTE)(screenupdate & 2));
                   drawcount++;
           }
 }  }
   
 void screendisp(NEVENTITEM item) {  void screendisp(NEVENTITEM item) {
Line 539  void screenvsync(NEVENTITEM item) { Line 545  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 646  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 ((CPU_CS == 0x2516) && (CPU_IP == 0x97B0)) {  #if 0
 //                              TRACEOUT(("DS = %.4x", CPU_DS));                          if (CPU_IP == 0x2E4F) {
 //                      }                                  TRACEOUT(("CS = %.4x - 0x2e4f", CPU_CS));
                           }
   #endif
                           if (CPU_CS == 0x8b6) {
                                   TRACEOUT(("%.4x:%.4x", CPU_CS, CPU_IP));
                           }
 //                      i286x_step();  //                      i286x_step();
                         i286c_step();                          i286c_step();
                 }                  }

Removed from v.1.75  
changed lines
  Added in v.1.78


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