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

version 1.2, 2004/08/08 09:12:06 version 1.6, 2005/02/04 06:42:12
Line 2 Line 2
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
 #include        "vram.h"  #include        "vram.h"
   #include        "makescrn.h"
 #include        "makesub.h"  #include        "makesub.h"
 #include        "font.h"  #include        "font.h"
   
   
 extern  BYTE    blinktest;  
   
   
 void makechr8(UINT8 *dst, UINT pos, UINT count, REG8 udtmp) {  void makechr8(UINT8 *dst, UINT pos, UINT count, REG8 udtmp) {
   
         REG8            atr;          REG8            atr;
Line 17  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 & blinktest) {          if (atr & makescrn.blinktest) {
                 atr ^= X1ATR_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 45  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 64  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 & blinktest) {          if (atr & makescrn.blinktest) {
                 atr ^= X1ATR_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 92  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.2  
changed lines
  Added in v.1.6


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