Diff for /xmil/vram/makechr.c between versions 1.4 and 1.6

version 1.4, 2004/08/10 08:28:49 version 1.6, 2005/02/04 06:42:12
Line 15  void makechr8(UINT8 *dst, UINT pos, UINT Line 15  void makechr8(UINT8 *dst, UINT pos, UINT
 const UINT8             *pat;  const UINT8             *pat;
         MAKETXTFN       fn;          MAKETXTFN       fn;
   
         atr = tram[TRAM_ATR + pos];          atr = TRAM_ATR(pos);
         if (atr & makescrn.blinktest) {          if (atr & makescrn.blinktest) {
                 atr ^= TRAMATR_REVERSE;                  atr ^= TRAMATR_REVERSE;
         }          }
         if (udtmp & 0x10) {          if (udtmp & 0x10) {
                 pos = LOW11(pos - 1);                  pos = LOW11(pos - 1);
         }          }
         ank = tram[TRAM_ANK + pos];          ank = TRAM_ANK(pos);
         knj = tram[TRAM_KNJ + pos];          knj = TRAM_KNJ(pos);
         if (!(tram[TRAM_ATR + pos] & 0x20)) {           // CHR          if (!(TRAM_ATR(pos) & 0x20)) {                          // CHR
                 if (!(knj & 0x80)) {                                    // ASCII                  if (!(knj & 0x80)) {                                    // ASCII
                         pat = font_ank + (ank << 3);                          pat = font_ank + (ank << 3);
                         fn = maketxt8fn[udtmp & 15];                          fn = maketxt8fn[udtmp & 15];
Line 43  const UINT8  *pat; Line 43  const UINT8  *pat;
         }          }
         else {                                                                          // PCG          else {                                                                          // PCG
                 if (!(knj & 0x90)) {                                    // PCGの出力                  if (!(knj & 0x90)) {                                    // PCGの出力
                         pat = pcg.d.b[ank];                          pat = pcg.d + (ank << 3);
                         fn = maketxt8fn[udtmp & 15];                          fn = maketxt8fn[udtmp & 15];
                 }                  }
                 else {                                                                  // 16ドットPCGの出力                  else {                                                                  // 16ドットPCGの出力
                         pat = pcg.d.b[ank & (~1)];                          pat = pcg.d + ((ank & (~1)) << 3);
                         fn = makeknj8fn[udtmp & 15];                          fn = makeknj8fn[udtmp & 15];
                 }                  }
                 makeatr_pcg8(dst, count, pat, atr, fn);                  makeatr_pcg8(dst, count, pat, atr, fn);
Line 62  void makechr16(UINT8 *dst, UINT pos, UIN Line 62  void makechr16(UINT8 *dst, UINT pos, UIN
 const UINT8             *pat;  const UINT8             *pat;
         MAKETXTFN       fn;          MAKETXTFN       fn;
   
         atr = tram[TRAM_ATR + pos];          atr = TRAM_ATR(pos);
         if (atr & makescrn.blinktest) {          if (atr & makescrn.blinktest) {
                 atr ^= TRAMATR_REVERSE;                  atr ^= TRAMATR_REVERSE;
         }          }
         if (udtmp & 0x10) {          if (udtmp & 0x10) {
                 pos = LOW11(pos - 1);                  pos = LOW11(pos - 1);
         }          }
         ank = tram[TRAM_ANK + pos];          ank = TRAM_ANK(pos);
         knj = tram[TRAM_KNJ + pos];          knj = TRAM_KNJ(pos);
         if (!(tram[TRAM_ATR + pos] & 0x20)) {           // CHR          if (!(TRAM_ATR(pos) & 0x20)) {                          // CHR
                 if (!(knj & 0x80)) {                                    // ASCII                  if (!(knj & 0x80)) {                                    // ASCII
                         pat = font_txt;                          pat = font_txt;
                 }                  }
Line 90  const UINT8  *pat; Line 90  const UINT8  *pat;
         }          }
         else {                                                                          // PCG          else {                                                                          // PCG
                 if (!(knj & 0x90)) {                                    // PCGの出力                  if (!(knj & 0x90)) {                                    // PCGの出力
                         pat = pcg.d.b[ank];                          pat = pcg.d + (ank << 3);
                         fn = makepcg16fn[udtmp & 15];                          fn = makepcg16fn[udtmp & 15];
                 }                  }
                 else {                                                                  // 16ドットPCGの出力                  else {                                                                  // 16ドットPCGの出力
                         pat = pcg.d.b[ank & (~1)];                          pat = pcg.d + ((ank & (~1)) << 3);
                         fn = maketxt16fn[udtmp & 15];                          fn = maketxt16fn[udtmp & 15];
                 }                  }
                 makeatr_pcg16(dst, count, pat, atr, fn);                  makeatr_pcg16(dst, count, pat, atr, fn);

Removed from v.1.4  
changed lines
  Added in v.1.6


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