Diff for /np2/io/gdc.c between versions 1.24 and 1.27

version 1.24, 2004/02/29 00:57:06 version 1.27, 2004/03/01 05:29:58
Line 122  void gdc_paletteinit(void) { Line 122  void gdc_paletteinit(void) {
         gdcs.palchange = GDCSCRN_REDRAW;          gdcs.palchange = GDCSCRN_REDRAW;
 }  }
   
   #if defined(SUPPORT_PC9821)
   void gdc_analogext(BOOL extend) {
   
           if (extend) {
                   gdc.analog |= (1 << GDCANALOG_256);
                   vramop.operate |= 0x20;
           }
           else {
                   gdc.analog &= ~(1 << (GDCANALOG_256));
                   vramop.operate &= ~0x20;
           }
           gdcs.palchange = GDCSCRN_REDRAW;
           gdcs.grphdisp |= GDCSCRN_EXT | GDCSCRN_ALLDRAW2;
           i286_vram_dispatch(vramop.operate);
   }
   #endif
   
   
 // --------------------------------------------------------------------------  // --------------------------------------------------------------------------
   
Line 460  static void IOOUTCALL gdc_o6a(UINT port, Line 477  static void IOOUTCALL gdc_o6a(UINT port,
                 switch(bit) {                  switch(bit) {
                         case 0:                          case 0:
                                 if (gdc.display & (1 << GDCDISP_ANALOG)) {                                  if (gdc.display & (1 << GDCDISP_ANALOG)) {
                                         gdc.analog &= ~1;                                          gdc.analog &= ~(1 << GDCANALOG_16);
                                         gdc.analog |= dat;                                          gdc.analog |= (dat << GDCANALOG_16);
                                         gdcs.palchange = GDCSCRN_REDRAW;                                          gdcs.palchange = GDCSCRN_REDRAW;
                                         vramop.operate &= VOP_ANALOGMASK;                                          vramop.operate &= VOP_ANALOGMASK;
                                         vramop.operate |= dat << 4;                                          vramop.operate |= dat << 4;
Line 481  static void IOOUTCALL gdc_o6a(UINT port, Line 498  static void IOOUTCALL gdc_o6a(UINT port,
         }          }
         else {          else {
                 switch(dat) {                  switch(dat) {
   #if defined(SUPPORT_PC9821)
                           case 0x20:
                                   if (gdc.mode2 & 0x08) {
                                           gdc_analogext(FALSE);
                                   }
                                   break;
   
                           case 0x21:
                                   if (gdc.mode2 & 0x08) {
                                           gdc_analogext(TRUE);
                                   }
                                   break;
   
                           case 0x68:
                                   gdc.analog &= ~(1 << GDCANALOG_256E);
                                   break;
   
                           case 0x69:
                                   gdc.analog |= (1 << GDCANALOG_256E);
                                   break;
   #endif
                         case 0x40:                          case 0x40:
                         case 0x80:                                      // EPSON?                          case 0x80:                                      // EPSON?
                                 gdc.display &= ~(1 << GDCDISP_PLAZMA);                                  gdc.display &= ~(1 << GDCDISP_PLAZMA);
Line 743  static REG8 IOINPCALL gdc_ia6(UINT port) Line 781  static REG8 IOINPCALL gdc_ia6(UINT port)
   
 static void IOOUTCALL gdc_oa8(UINT port, REG8 dat) {  static void IOOUTCALL gdc_oa8(UINT port, REG8 dat) {
   
         if (gdc.analog) {          if (gdc.analog & ((1 << GDCANALOG_256) + (1 << GDCANALOG_16))) {
                 gdc.palnum = dat;                  gdc.palnum = dat;
         }          }
         else {          else {
Line 754  static void IOOUTCALL gdc_oa8(UINT port, Line 792  static void IOOUTCALL gdc_oa8(UINT port,
   
 static void IOOUTCALL gdc_oaa(UINT port, REG8 dat) {  static void IOOUTCALL gdc_oaa(UINT port, REG8 dat) {
   
         if (gdc.analog) {  #if defined(SUPPORT_PC9821)
           if (gdc.analog & (1 << GDCANALOG_256)) {
                   gdcs.palchange = GDCSCRN_REDRAW;
                   gdc.anareg[(16 * 3) + (gdc.palnum * 4) + 0] = dat;
           }
           else
   #endif
           if (gdc.analog & (1 << GDCANALOG_16)) {
   #if defined(SUPPORT_PC9821)
                   gdc.anareg[(gdc.palnum * 3) + 2] = dat;
   #endif
                 gdc_setanalogpal(gdc.palnum & 15, offsetof(RGB32, p.g), dat);                  gdc_setanalogpal(gdc.palnum & 15, offsetof(RGB32, p.g), dat);
         }          }
         else {          else {
Line 765  static void IOOUTCALL gdc_oaa(UINT port, Line 813  static void IOOUTCALL gdc_oaa(UINT port,
   
 static void IOOUTCALL gdc_oac(UINT port, REG8 dat) {  static void IOOUTCALL gdc_oac(UINT port, REG8 dat) {
   
         if (gdc.analog) {  #if defined(SUPPORT_PC9821)
           if (gdc.analog & (1 << GDCANALOG_256)) {
                   gdcs.palchange = GDCSCRN_REDRAW;
                   gdc.anareg[(16 * 3) + (gdc.palnum * 4) + 1] = dat;
           }
           else
   #endif
           if (gdc.analog & (1 << GDCANALOG_16)) {
   #if defined(SUPPORT_PC9821)
                   gdc.anareg[(gdc.palnum * 3) + 2] = dat;
   #endif
                 gdc_setanalogpal(gdc.palnum & 15, offsetof(RGB32, p.r), dat);                  gdc_setanalogpal(gdc.palnum & 15, offsetof(RGB32, p.r), dat);
         }          }
         else {          else {
Line 776  static void IOOUTCALL gdc_oac(UINT port, Line 834  static void IOOUTCALL gdc_oac(UINT port,
   
 static void IOOUTCALL gdc_oae(UINT port, REG8 dat) {  static void IOOUTCALL gdc_oae(UINT port, REG8 dat) {
   
         if (gdc.analog) {  #if defined(SUPPORT_PC9821)
           if (gdc.analog & (1 << GDCANALOG_256)) {
                   gdcs.palchange = GDCSCRN_REDRAW;
                   gdc.anareg[(16 * 3) + (gdc.palnum * 4) + 2] = dat;
           }
           else
   #endif
           if (gdc.analog & (1 << GDCANALOG_16)) {
   #if defined(SUPPORT_PC9821)
                   gdc.anareg[(gdc.palnum * 3) + 2] = dat;
   #endif
                 gdc_setanalogpal(gdc.palnum & 15, offsetof(RGB32, p.b), dat);                  gdc_setanalogpal(gdc.palnum & 15, offsetof(RGB32, p.b), dat);
         }          }
         else {          else {
Line 785  static void IOOUTCALL gdc_oae(UINT port, Line 853  static void IOOUTCALL gdc_oae(UINT port,
         (void)port;          (void)port;
 }  }
   
   #if defined(SUPPORT_PC9821)
   static REG8 IOINPCALL gdc_ia8(UINT port) {
   
           if (gdc.analog & ((1 << GDCANALOG_256) + (1 << GDCANALOG_16))) {
                   return(gdc.palnum);
           }
           (void)port;
           return(gdc.degpal[3]);
   }
   
   static REG8 IOINPCALL gdc_iaa(UINT port) {
   
           if (gdc.analog & (1 << GDCANALOG_256)) {
                   return(gdc.anareg[(16 * 3) + (gdc.palnum * 4) + 0]);
           }
           if (gdc.analog & (1 << GDCANALOG_16)) {
                   return(gdc.anareg[(gdc.palnum * 3) + 2]);
           }
           (void)port;
           return(gdc.degpal[1]);
   }
   
   static REG8 IOINPCALL gdc_iac(UINT port) {
   
           if (gdc.analog & (1 << GDCANALOG_256)) {
                   return(gdc.anareg[(16 * 3) + (gdc.palnum * 4) + 1]);
           }
           if (gdc.analog & (1 << GDCANALOG_16)) {
                   return(gdc.anareg[(gdc.palnum * 3) + 2]);
           }
           (void)port;
           return(gdc.degpal[2]);
   }
   
   static REG8 IOINPCALL gdc_iae(UINT port) {
   
           if (gdc.analog & (1 << GDCANALOG_256)) {
                   return(gdc.anareg[(16 * 3) + (gdc.palnum * 4) + 2]);
           }
           if (gdc.analog & (1 << GDCANALOG_16)) {
                   return(gdc.anareg[(gdc.palnum * 3) + 2]);
           }
           (void)port;
           return(gdc.degpal[0]);
   }
   #endif
   
   
 // ---- extend  // ---- extend
   
   #if defined(SUPPORT_PC9821)
   static void IOOUTCALL gdc_o9a0(UINT port, REG8 dat) {
   
           (void)port;
           (void)dat;
   }
   
   static REG8 IOINPCALL gdc_i9a0(UINT port) {
   
           (void)port;
           return(0);
   }
   #endif
   
 #if defined(SUPPORT_CRT31KHZ)  #if defined(SUPPORT_CRT31KHZ)
 static void IOOUTCALL gdc_o9a8(UINT port, REG8 dat) {  static void IOOUTCALL gdc_o9a8(UINT port, REG8 dat) {
   
Line 820  static const IOINP gdci60[8] = { Line 949  static const IOINP gdci60[8] = {
                                         gdc_i60,        gdc_i62,        NULL,           NULL,                                          gdc_i60,        gdc_i62,        NULL,           NULL,
                                         gdc_i68,        gdc_i6a,        NULL,           NULL};                                          gdc_i68,        gdc_i6a,        NULL,           NULL};
   
   #if defined(SUPPORT_PC9821)
   static const IOINP gdcia0[8] = {
                                           gdc_ia0,        gdc_ia2,        gdc_ia4,        gdc_ia6,
                                           gdc_ia8,        gdc_iaa,        gdc_iac,        gdc_iae};
   #else
 static const IOINP gdcia0[8] = {  static const IOINP gdcia0[8] = {
                                         gdc_ia0,        gdc_ia2,        gdc_ia4,        gdc_ia6,                                          gdc_ia0,        gdc_ia2,        gdc_ia4,        gdc_ia6,
                                         NULL,           NULL,           NULL,           NULL};                                          NULL,           NULL,           NULL,           NULL};
   #endif
   
   
 void gdc_reset(void) {  void gdc_reset(void) {

Removed from v.1.24  
changed lines
  Added in v.1.27


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