Diff for /xmil/io/crtc.c between versions 1.7 and 1.9

version 1.7, 2004/08/08 16:39:03 version 1.9, 2004/08/12 17:57:36
Line 25  static const CRTCSTAT crtcdefault = { Line 25  static const CRTCSTAT crtcdefault = {
                                 0,                                                      // SCRN_BITS                                  0,                                                      // SCRN_BITS
                                 0,                                                      // CRTC_NUM                                  0,                                                      // CRTC_NUM
   
                                 8,                                                      // FNT_YL                                  7,                                                      // _FNT_YL
                                 40,                                                     // TXT_XL                                  40,                                                     // TXT_XL
                                 25,                                                     // TXT_YL                                  25,                                                     // TXT_YL
                                 28,                                                     // TXT_YS                                  28,                                                     // TXT_YS
   
                                 200,                                            // CRT_YL  //                              200,                                            // CRT_YL
 //                              232,                                            // CRT_VS  //                              232,                                            // CRT_VS
 //                              266,                                            // CRT_VL  //                              266,                                            // CRT_VL
   
Line 38  static const CRTCSTAT crtcdefault = { Line 38  static const CRTCSTAT crtcdefault = {
                                 10,                                                     // TXT_VLA                                  10,                                                     // TXT_VLA
   
                                 0,                                                      // TXT_TOP                                  0,                                                      // TXT_TOP
                                 8,                                                      // fnty  //                              8,                                                      // fnty
   
                                 0,                                                      // lastpal                                  0,                                                      // lastpal
   
Line 49  static const CRTCSTAT crtcdefault = { Line 49  static const CRTCSTAT crtcdefault = {
         };          };
   
   
 void vrambank_patch(void) {  void crtc_bankupdate(void) {
   
         UINT    updatemask;          UINT    updatemask;
         UINT8   dispmode;          UINT8   dispmode;
Line 57  void vrambank_patch(void) { Line 57  void vrambank_patch(void) {
         UINT8   pal_disp;          UINT8   pal_disp;
   
         if (crtc.s.SCRN_BITS & 0x10) {          if (crtc.s.SCRN_BITS & 0x10) {
                 crtc.e.gram = GRP_RAM + GRAM_BANK1;                  crtc.e.gram = gram + GRAM_BANK1;
                 crtc.e.updatebit = UPDATE_VRAM1;                  crtc.e.updatebit = UPDATE_VRAM1;
         }          }
         else {          else {
                 crtc.e.gram = GRP_RAM + GRAM_BANK0;                  crtc.e.gram = gram + GRAM_BANK0;
                 crtc.e.updatebit = UPDATE_VRAM0;                  crtc.e.updatebit = UPDATE_VRAM0;
         }          }
         dispmode = (crtc.s.SCRN_BITS & SCRN_DISPVRAM)?SCRN_BANK1:SCRN_BANK0;          dispmode = (crtc.s.SCRN_BITS & SCRN_DISPVRAM)?SCRN_BANK1:SCRN_BANK0;
Line 173  void vrambank_patch(void) { Line 173  void vrambank_patch(void) {
         crtc.e.pal_disp = pal_disp;          crtc.e.pal_disp = pal_disp;
 }  }
   
 static void crtc_updt(void) {  void crtc_regupdate(void) {
   
           UINT    fonty;
   
           fonty = crtc.s._FNT_YL;
         if (crtc.s.SCRN_BITS & SCRN_24KHZ) {          if (crtc.s.SCRN_BITS & SCRN_24KHZ) {
                 crtc.s.fnty = (crtc.s.FNT_YL >> 1) & 0xfffe;                  fonty >>= 1;
         }  
         else {  
                 crtc.s.fnty = crtc.s.FNT_YL & 0xfffe;  
         }  
         if (crtc.s.TXT_YL) {  
                 crtc.s.CRT_YL = crtc.s.fnty * crtc.s.TXT_YL;  
         }  
         else {  
                 crtc.s.CRT_YL = crtc.s.fnty * 1;  
         }          }
         crtc.e.vs = crtc.s.fnty * (crtc.s.TXT_YS + 1);          fonty += 1;
         crtc.e.vl = (crtc.s.TXT_VL + 1) * crtc.s.fnty + crtc.s.TXT_VLA;          crtc.e.fonty = fonty;
 //      TRACEOUT(("set> %d / %d / %d", crtc.s.CRT_YL, crtc.s.CRT_VS, crtc.s.CRT_VL));          crtc.e.yl = (crtc.s.TXT_YL & 0x7f);
   
           crtc.e.dl = fonty * crtc.e.yl;
           crtc.e.vs = fonty * ((crtc.s.TXT_YS & 0x7f) + 1);
           crtc.e.vl = fonty * ((crtc.s.TXT_VL & 0x7f) + 1) + (crtc.s.TXT_VLA & 0x1f);
 }  }
   
   
Line 210  void IOOUTCALL crtc_o(UINT port, REG8 va Line 208  void IOOUTCALL crtc_o(UINT port, REG8 va
                                 else {                                  else {
                                         crtc.s.TXT_XL = 80;                                          crtc.s.TXT_XL = 80;
                                 }                                  }
                                 vrambank_patch();                                  crtc_bankupdate();
                                 break;                                  break;
   
                         case 0x04:                          case 0x04:
Line 230  void IOOUTCALL crtc_o(UINT port, REG8 va Line 228  void IOOUTCALL crtc_o(UINT port, REG8 va
                                 break;                                  break;
   
                         case 0x09:                          case 0x09:
                                 crtc.s.FNT_YL = (WORD)value+1;                                  crtc.s._FNT_YL = value;
                                 break;                                  break;
   
                         case 0x0c:                          case 0x0c:
Line 250  void IOOUTCALL crtc_o(UINT port, REG8 va Line 248  void IOOUTCALL crtc_o(UINT port, REG8 va
                 }                  }
 //              crtc.s.GRP_XL = crtc.s.TXT_XL << 3;  //              crtc.s.GRP_XL = crtc.s.TXT_XL << 3;
 //              crtc.s.GRP_YL = 200;  //              crtc.s.GRP_YL = 200;
                 crtc_updt();                  crtc_regupdate();
                 scrnallflash = 1;                                                               /* 990220 puni */                  scrnallflash = 1;                                                               /* 990220 puni */
         }          }
 }  }
Line 268  void IOOUTCALL scrn_o(UINT port, REG8 va Line 266  void IOOUTCALL scrn_o(UINT port, REG8 va
 //              pal_reset();                                    // なんで?  //              pal_reset();                                    // なんで?
                 scrnallflash = 1;                  scrnallflash = 1;
                 makescrn.palandply = 1;                  makescrn.palandply = 1;
                 crtc_updt();                  crtc_regupdate();
         }          }
         vrambank_patch();          crtc_bankupdate();
         (void)port;          (void)port;
 }  }
   
Line 396  REG8 IOINPCALL palette_i(UINT port) { Line 394  REG8 IOINPCALL palette_i(UINT port) {
 void IOOUTCALL extpal_o(UINT port, REG8 value) {  void IOOUTCALL extpal_o(UINT port, REG8 value) {
   
         crtc.s.EXTPALMODE = value;          crtc.s.EXTPALMODE = value;
         vrambank_patch();          crtc_bankupdate();
         (void)port;          (void)port;
 }  }
   
Line 442  REG8 IOINPCALL exttextpal_i(UINT port) { Line 440  REG8 IOINPCALL exttextpal_i(UINT port) {
 void IOOUTCALL exttextdisp_o(UINT port, REG8 value) {  void IOOUTCALL exttextdisp_o(UINT port, REG8 value) {
   
         crtc.s.ZPRY = value;          crtc.s.ZPRY = value;
         vrambank_patch();          crtc_bankupdate();
         (void)port;          (void)port;
 }  }
   
Line 496  void crtc_reset(void) { Line 494  void crtc_reset(void) {
         }          }
         if ((pccore.ROM_TYPE >= 2) && (!(pccore.DIP_SW & 1))) {          if ((pccore.ROM_TYPE >= 2) && (!(pccore.DIP_SW & 1))) {
                 crtc.s.SCRN_BITS = SCRN_200LINE;                  crtc.s.SCRN_BITS = SCRN_200LINE;
                 crtc.s.FNT_YL = 16;                  crtc.s._FNT_YL = 15;
         }          }
   
         pal_reset();          pal_reset();
         crtc_updt();          crtc_bankupdate();
           crtc_regupdate();
         vrambank_patch();  
         makescrn.palandply = 1;          makescrn.palandply = 1;
         scrnallflash = 1;          scrnallflash = 1;
 }  }
   
   void crtc_forcesetwidth(REG8 width) {
   
           crtc.s.TXT_XL = (UINT8)width;
           crtc_bankupdate();
           scrnallflash = 1;
   }
   

Removed from v.1.7  
changed lines
  Added in v.1.9


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