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

version 1.23, 2004/02/26 08:44:32 version 1.24, 2004/02/29 00:57:06
Line 336  const GDCCLK *clk; Line 336  const GDCCLK *clk;
         y = lf + vfbs;          y = lf + vfbs;
 //      TRACEOUT(("h %d:%d / v %d:%d", cr, x, lf, y));  //      TRACEOUT(("h %d:%d / v %d:%d", cr, x, lf, y));
   
   #if defined(SUPPORT_CRT31KHZ)
           if (gdc.display & (1 << GDCDISP_31)) {
                   clk = gdcclk + 2;
           }
           else
   #endif
         if (!(gdc.crt15khz & 2)) {                                                      // 24.83¡Þ300Hz          if (!(gdc.crt15khz & 2)) {                                                      // 24.83¡Þ300Hz
                 clk = gdcclk + 1;                  clk = gdcclk + 1;
         }          }
Line 381  void gdc_restorekacmode(void) { Line 387  void gdc_restorekacmode(void) {
 }  }
   
   
 // ---- I/O  // ---- I/O master
   
 static void IOOUTCALL gdc_o60(UINT port, REG8 dat) {  static void IOOUTCALL gdc_o60(UINT port, REG8 dat) {
   
Line 453  static void IOOUTCALL gdc_o6a(UINT port, Line 459  static void IOOUTCALL gdc_o6a(UINT port,
                 gdc.mode2 ^= (1 << bit);                  gdc.mode2 ^= (1 << bit);
                 switch(bit) {                  switch(bit) {
                         case 0:                          case 0:
                                 if (gdc.display & 2) {                                  if (gdc.display & (1 << GDCDISP_ANALOG)) {
                                         gdc.analog = dat;                                          gdc.analog &= ~1;
                                           gdc.analog |= dat;
                                         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 476  static void IOOUTCALL gdc_o6a(UINT port, Line 483  static void IOOUTCALL gdc_o6a(UINT port,
                 switch(dat) {                  switch(dat) {
                         case 0x40:                          case 0x40:
                         case 0x80:                                      // EPSON?                          case 0x80:                                      // EPSON?
                                 gdc.display &= ~1;                                  gdc.display &= ~(1 << GDCDISP_PLAZMA);
                                 gdcs.textdisp |= GDCSCRN_EXT;                                  gdcs.textdisp |= GDCSCRN_EXT;
                                 break;                                  break;
   
                         case 0x41:                          case 0x41:
                         case 0x81:                                      // EPSON?                          case 0x81:                                      // EPSON?
                                 gdc.display |= 1;                                  gdc.display |= (1 << GDCDISP_PLAZMA);
                                 gdcs.textdisp |= GDCSCRN_EXT;                                  gdcs.textdisp |= GDCSCRN_EXT;
                                 break;                                  break;
   
Line 607  static REG8 IOINPCALL gdc_i6a(UINT port) Line 614  static REG8 IOINPCALL gdc_i6a(UINT port)
 }  }
   
   
   // ---- I/O slave
   
 static void IOOUTCALL gdc_oa0(UINT port, REG8 dat) {  static void IOOUTCALL gdc_oa0(UINT port, REG8 dat) {
   
         if (gdc.s.cnt < GDCCMD_MAX) {          if (gdc.s.cnt < GDCCMD_MAX) {
Line 649  static void IOOUTCALL gdc_oa6(UINT port, Line 658  static void IOOUTCALL gdc_oa6(UINT port,
         (void)port;          (void)port;
 }  }
   
 static void IOOUTCALL gdc_oa8(UINT port, REG8 dat) {  
   
         if (gdc.analog) {  
                 gdc.palnum = dat & 0x0f;  
         }  
         else {  
                 gdc_setdegpalpack(3, dat);  
         }  
         (void)port;  
 }  
   
 static void IOOUTCALL gdc_oaa(UINT port, REG8 dat) {  
   
         if (gdc.analog) {  
                 gdc_setanalogpal(gdc.palnum, offsetof(RGB32, p.g), dat);  
         }  
         else {  
                 gdc_setdegpalpack(1, dat);  
         }  
         (void)port;  
 }  
   
 static void IOOUTCALL gdc_oac(UINT port, REG8 dat) {  
   
         if (gdc.analog) {  
                 gdc_setanalogpal(gdc.palnum, offsetof(RGB32, p.r), dat);  
         }  
         else {  
                 gdc_setdegpalpack(2, dat);  
         }  
         (void)port;  
 }  
   
 static void IOOUTCALL gdc_oae(UINT port, REG8 dat) {  
   
         if (gdc.analog) {  
                 gdc_setanalogpal(gdc.palnum, offsetof(RGB32, p.b), dat);  
         }  
         else {  
                 gdc_setdegpalpack(0, dat);  
         }  
         (void)port;  
 }  
   
 static REG8 IOINPCALL gdc_ia0(UINT port) {  static REG8 IOINPCALL gdc_ia0(UINT port) {
   
         REG8    ret;          REG8    ret;
Line 774  static REG8 IOINPCALL gdc_ia6(UINT port) Line 739  static REG8 IOINPCALL gdc_ia6(UINT port)
 }  }
   
   
   // ---- I/O palette
   
   static void IOOUTCALL gdc_oa8(UINT port, REG8 dat) {
   
           if (gdc.analog) {
                   gdc.palnum = dat;
           }
           else {
                   gdc_setdegpalpack(3, dat);
           }
           (void)port;
   }
   
   static void IOOUTCALL gdc_oaa(UINT port, REG8 dat) {
   
           if (gdc.analog) {
                   gdc_setanalogpal(gdc.palnum & 15, offsetof(RGB32, p.g), dat);
           }
           else {
                   gdc_setdegpalpack(1, dat);
           }
           (void)port;
   }
   
   static void IOOUTCALL gdc_oac(UINT port, REG8 dat) {
   
           if (gdc.analog) {
                   gdc_setanalogpal(gdc.palnum & 15, offsetof(RGB32, p.r), dat);
           }
           else {
                   gdc_setdegpalpack(2, dat);
           }
           (void)port;
   }
   
   static void IOOUTCALL gdc_oae(UINT port, REG8 dat) {
   
           if (gdc.analog) {
                   gdc_setanalogpal(gdc.palnum & 15, offsetof(RGB32, p.b), dat);
           }
           else {
                   gdc_setdegpalpack(0, dat);
           }
           (void)port;
   }
   
   
   // ---- extend
   
   #if defined(SUPPORT_CRT31KHZ)
   static void IOOUTCALL gdc_o9a8(UINT port, REG8 dat) {
   
           if ((gdc.display ^ (dat << GDCDISP_31)) & (1 << GDCDISP_31)) {
                   gdc.display ^= (1 << GDCDISP_31);
                   gdcs.textdisp |= GDCSCRN_EXT;
           }
           (void)port;
   }
   
   static REG8 IOINPCALL gdc_i9a8(UINT port) {
   
           (void)port;
           return((gdc.display >> GDCDISP_31) & 1);
   }
   #endif
   
   
 // ---- I/F  // ---- I/F
   
 static const IOOUT gdco60[8] = {  static const IOOUT gdco60[8] = {
Line 792  static const IOINP gdcia0[8] = { Line 824  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};
   
   
 void gdc_reset(void) {  void gdc_reset(void) {
   
         ZeroMemory(&gdc, sizeof(gdc));          ZeroMemory(&gdc, sizeof(gdc));
Line 824  void gdc_reset(void) { Line 857  void gdc_reset(void) {
   
         gdc_paletteinit();          gdc_paletteinit();
   
         gdcs.textdisp = GDCSCRN_ENABLE | GDCSCRN_ALLDRAW2 | GDCSCRN_EXT;  
         gdcs.grphdisp = GDCSCRN_ALLDRAW2 | GDCSCRN_EXT;  
         if (np2cfg.color16 & 1) {          if (np2cfg.color16 & 1) {
                 gdc.s.para[GDC_SYNC] = 0x16;                  gdc.s.para[GDC_SYNC] = 0x16;
                 gdc.display = 2;                  gdc.display = (1 << GDCDISP_ANALOG);
         }          }
         gdc.bitac = 0xff;          gdc.bitac = 0xff;
   
           if (!(np2cfg.dipsw[0] & 0x04)) {                        // dipsw1-3 on
                   gdc.display |= (1 << GDCDISP_PLAZMA2);
           }
   
           gdcs.textdisp = GDCSCRN_ENABLE | GDCSCRN_ALLDRAW2 | GDCSCRN_EXT;
           gdcs.grphdisp = GDCSCRN_ALLDRAW2 | GDCSCRN_EXT;
 }  }
   
 void gdc_bind(void) {  void gdc_bind(void) {
   
         gdc_updateclock();          gdc_updateclock();
   #if defined(SUPPORT_CRT31KHZ)
           iocore_attachout(0x09a8, gdc_o9a8);
           iocore_attachinp(0x09a8, gdc_i9a8);
   #endif
         iocore_attachsysoutex(0x0060, 0x0cf1, gdco60, 8);          iocore_attachsysoutex(0x0060, 0x0cf1, gdco60, 8);
         iocore_attachsysinpex(0x0060, 0x0cf1, gdci60, 8);          iocore_attachsysinpex(0x0060, 0x0cf1, gdci60, 8);
         iocore_attachsysoutex(0x00a0, 0x0cf1, gdcoa0, 8);          iocore_attachsysoutex(0x00a0, 0x0cf1, gdcoa0, 8);

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


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