Diff for /np2/vram/maketgrp.c between versions 1.1.1.1 and 1.4

version 1.1.1.1, 2003/10/16 17:58:17 version 1.4, 2003/12/09 15:49:14
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "scrnmng.h"  
 #include        "memory.h"  #include        "memory.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
 #include        "scrndraw.h"  
 #include        "vram.h"  #include        "vram.h"
   #include        "scrndraw.h"
   #include        "dispsync.h"
   #include        "palettes.h"
 #include        "maketext.h"  #include        "maketext.h"
 #include        "maketgrp.h"  #include        "maketgrp.h"
 #include        "makegrph.h"  #include        "makegrph.h"
 #include        "makegrph.mcr"  
 #include        "font.h"  #include        "font.h"
 #include        "dispsync.h"  #include        "makegrph.mcr"
 #include        "palettes.h"  
   
   
 // extern       int             displaymoder;  // extern       int             displaymoder;
Line 89  void maketextgrph(int plane, int text_re Line 88  void maketextgrph(int plane, int text_re
         }          }
   
         m_pitch = gdc.m.para[GDC_PITCH] & 0xfe;          m_pitch = gdc.m.para[GDC_PITCH] & 0xfe;
         esi = LOADINTELWORD(gdc.m.para + GDC_SCROLL);          esi = LOW12(LOADINTELWORD(gdc.m.para + GDC_SCROLL));
         esi &= 0xfff;  
         m_scr = LOADINTELWORD(gdc.m.para + GDC_SCROLL + 2);          m_scr = LOADINTELWORD(gdc.m.para + GDC_SCROLL + 2);
         m_scr = (m_scr >> 4) & 0x3ff;          m_scr = LOW14(m_scr) >> 4;
         m_scrp = 0;          m_scrp = 0;
   
         s_pitch = gdc.s.para[GDC_PITCH];          s_pitch = gdc.s.para[GDC_PITCH];
Line 101  void maketextgrph(int plane, int text_re Line 99  void maketextgrph(int plane, int text_re
         }          }
         s_pitch &= 0xfe;          s_pitch &= 0xfe;
         ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL);          ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL);
         ebp = (ebp << 1) & 0x7ffe;          ebp = LOW15(ebp << 1);
         s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL + 2);          s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL + 2);
         s_scr = (s_scr >> 4) & 0x3ff;          s_scr = LOW14(s_scr) >> 4;
         s_scrp = 0;          s_scrp = 0;
         s_scrpmask = (np2cfg.uPD72020)?0x4:0xc;          s_scrpmask = (np2cfg.uPD72020)?0x4:0xc;
   
Line 121  void maketextgrph(int plane, int text_re Line 119  void maketextgrph(int plane, int text_re
                                 if (!s_scr) {                                  if (!s_scr) {
                                         s_scrp = (s_scrp + 4) & s_scrpmask;                                          s_scrp = (s_scrp + 4) & s_scrpmask;
                                         ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL + s_scrp);                                          ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL + s_scrp);
                                         ebp = (ebp << 1) & 0x7ffe;                                          ebp = LOW15(ebp << 1);
                                         s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL +                                          s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL +
                                                                                                                                 s_scrp + 2);                                                                                                                                  s_scrp + 2);
                                         s_scr = (s_scr >> 4) & 0x3ff;                                          s_scr = LOW14(s_scr) >> 4;
                                 }                                  }
                                 else {                                  else {
                                         ebp = (ebp + s_pitch) & 0x7fff;                                          ebp = LOW15(ebp + s_pitch);
                                 }                                  }
                         }                          }
                         else {                          else {
Line 165  void maketextgrph(int plane, int text_re Line 163  void maketextgrph(int plane, int text_re
                                                 new_flag = 1;                                                  new_flag = 1;
                                                 break;                                                  break;
                                         }                                          }
                                         edi = (edi + 1) & 0xfff;                                          edi = LOW12(edi + 1);
                                 }                                  }
                         }                          }
                         edi = esi;                          edi = esi;
                         for (x=0; x<TEXTXMAX; x++) {                                                    // width80                          for (x=0; x<TEXTXMAX; x++) {                                                    // width80
                                 color[x] = (mem[0xa2000 + edi*2] & (TEXTATR_RGB)) >> 5;                                  color[x] = (mem[0xa2000 + edi*2] & (TEXTATR_RGB)) >> 5;
                                 edi = (edi+1) & 0x0fff;                                                         // width80                                  edi = LOW12(edi + 1);                                                           // width80
                         }                          }
                         esi = (esi + m_pitch) & 0x0fff;                          esi = LOW12(esi + m_pitch);
                 }                  }
   
                 if ((!TEXT_SDR) && (nowline >= topline + crtc.reg.ssl)) {                  if ((!TEXT_SDR) && (nowline >= topline + crtc.reg.ssl)) {
Line 194  void maketextgrph(int plane, int text_re Line 192  void maketextgrph(int plane, int text_re
                                                         grph_new = 1;                                                          grph_new = 1;
                                                         break;                                                          break;
                                                 }                                                  }
                                                 vc = (vc + 1) & 0x7fff;                                                  vc = LOW15(vc + 1);
                                         }                                          }
                                 }                                  }
                         }                          }
Line 207  void maketextgrph(int plane, int text_re Line 205  void maketextgrph(int plane, int text_re
                                 for (x=0; x<TEXTXMAX; x++) {                                  for (x=0; x<TEXTXMAX; x++) {
                                         GRPHDATASET(p, vc);                                          GRPHDATASET(p, vc);
                                         p += 2;                                          p += 2;
                                         vc = VRAM_POS(vc + 1);                                          vc = VRAMADDRMASKEX(vc + 1);
                                 }                                  }
                                 d = (BYTE *)bit;                                  d = (BYTE *)bit;
                                 ZeroMemory(q, TEXTXMAX * 8);                                  ZeroMemory(q, TEXTXMAX * 8);
Line 232  void maketextgrph(int plane, int text_re Line 230  void maketextgrph(int plane, int text_re
                         m_scr--;                          m_scr--;
                         if (!m_scr) {                          if (!m_scr) {
                                 m_scrp = (m_scrp + 4) & 0x0c;                                  m_scrp = (m_scrp + 4) & 0x0c;
                                 esi = LOADINTELWORD(gdc.m.para + GDC_SCROLL + m_scrp);                                  esi = LOW12(LOADINTELWORD(gdc.m.para + GDC_SCROLL + m_scrp));
                                 esi &= 0xfff;  
                                 m_scr = LOADINTELWORD(gdc.m.para + GDC_SCROLL + m_scrp + 2);                                  m_scr = LOADINTELWORD(gdc.m.para + GDC_SCROLL + m_scrp + 2);
                                 m_scr = (m_scr >> 4) & 0x3ff;                                  m_scr = LOW14(m_scr) >> 4;
                                 reloadline = TRUE;                                  reloadline = TRUE;
                         }                          }
                         if (!GRPH_LRcnt) {                          if (!GRPH_LRcnt) {
Line 244  void maketextgrph(int plane, int text_re Line 241  void maketextgrph(int plane, int text_re
                                 if (!s_scr) {                                  if (!s_scr) {
                                         s_scrp = (s_scrp + 4) & s_scrpmask;                                          s_scrp = (s_scrp + 4) & s_scrpmask;
                                         ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL + s_scrp);                                          ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL + s_scrp);
                                         ebp = (ebp << 1) & 0x7ffe;                                          ebp = LOW15(ebp << 1);
                                         s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL +                                          s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL +
                                                                                                                                 s_scrp + 2);                                                                                                                                  s_scrp + 2);
                                         s_scr = (s_scr >> 4) & 0x3ff;                                          s_scr = LOW14(s_scr) >> 4;
                                 }                                  }
                                 else {                                  else {
                                         ebp = (ebp + s_pitch) & 0x7fff;                                          ebp = LOW15(ebp + s_pitch);
                                 }                                  }
                         }                          }
                         else {                          else {
Line 349  void maketextgrph40(int plane, int text_ Line 346  void maketextgrph40(int plane, int text_
         }          }
   
         m_pitch = gdc.m.para[GDC_PITCH] & 0xfe;          m_pitch = gdc.m.para[GDC_PITCH] & 0xfe;
         esi = LOADINTELWORD(gdc.m.para + GDC_SCROLL);          esi = LOW12(LOADINTELWORD(gdc.m.para + GDC_SCROLL));
         esi &= 0xfff;  
         m_scr = LOADINTELWORD(gdc.m.para + GDC_SCROLL + 2);          m_scr = LOADINTELWORD(gdc.m.para + GDC_SCROLL + 2);
         m_scr = (m_scr >> 4) & 0x3ff;          m_scr = LOW14(m_scr) >> 4;
         m_scrp = 0;          m_scrp = 0;
   
         s_pitch = gdc.s.para[GDC_PITCH];          s_pitch = gdc.s.para[GDC_PITCH];
Line 361  void maketextgrph40(int plane, int text_ Line 357  void maketextgrph40(int plane, int text_
         }          }
         s_pitch &= 0xfe;          s_pitch &= 0xfe;
         ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL);          ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL);
         ebp = (ebp << 1) & 0x7ffe;          ebp = LOW15(ebp << 1);
         s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL + 2);          s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL + 2);
         s_scr = (s_scr >> 4) & 0x3ff;          s_scr = LOW14(s_scr) >> 4;
         s_scrp = 0;          s_scrp = 0;
         s_scrpmask = (np2cfg.uPD72020)?0x4:0xc;          s_scrpmask = (np2cfg.uPD72020)?0x4:0xc;
   
Line 381  void maketextgrph40(int plane, int text_ Line 377  void maketextgrph40(int plane, int text_
                                 if (!s_scr) {                                  if (!s_scr) {
                                         s_scrp = (s_scrp + 4) & s_scrpmask;                                          s_scrp = (s_scrp + 4) & s_scrpmask;
                                         ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL + s_scrp);                                          ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL + s_scrp);
                                         ebp = (ebp << 1) & 0x7ffe;                                          ebp = LOW15(ebp << 1);
                                         s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL +                                          s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL +
                                                                                                                                 s_scrp + 2);                                                                                                                                  s_scrp + 2);
                                         s_scr = (s_scr >> 4) & 0x3ff;                                          s_scr = LOW14(s_scr) >> 4;
                                 }                                  }
                                 else {                                  else {
                                         ebp = (ebp + s_pitch) & 0x7fff;                                          ebp = LOW15(ebp + s_pitch);
                                 }                                  }
                         }                          }
                         else {                          else {
Line 425  void maketextgrph40(int plane, int text_ Line 421  void maketextgrph40(int plane, int text_
                                                 new_flag = 1;                                                  new_flag = 1;
                                                 break;                                                  break;
                                         }                                          }
                                         edi = (edi + 1) & 0xfff;                                          edi = LOW12(edi + 1);
                                 }                                  }
                         }                          }
                         edi = esi;                          edi = esi;
                         for (x=0; x<TEXTXMAX/2; x++) {                                                  // width40                          for (x=0; x<TEXTXMAX/2; x++) {                                                  // width40
                                 color[x] = (mem[0xa2000 + edi*2] & (TEXTATR_RGB)) >> 5;                                  color[x] = (mem[0xa2000 + edi*2] & (TEXTATR_RGB)) >> 5;
                                 edi = (edi+2) & 0x0fff;                                                         // width40                                  edi = LOW12(edi + 2);                                                           // width40
                         }                          }
                         esi = (esi + m_pitch) & 0x0fff;                          esi = LOW12(esi + m_pitch);
                 }                  }
   
                 if ((!TEXT_SDR) && (nowline >= topline + crtc.reg.ssl)) {                  if ((!TEXT_SDR) && (nowline >= topline + crtc.reg.ssl)) {
Line 454  void maketextgrph40(int plane, int text_ Line 450  void maketextgrph40(int plane, int text_
                                                         grph_new = 1;                                                          grph_new = 1;
                                                         break;                                                          break;
                                                 }                                                  }
                                                 vc = (vc + 1) & 0x7fff;                                                  vc = LOW15(vc + 1);
                                         }                                          }
                                 }                                  }
                         }                          }
Line 467  void maketextgrph40(int plane, int text_ Line 463  void maketextgrph40(int plane, int text_
                                 for (x=0; x<TEXTXMAX; x++) {                                  for (x=0; x<TEXTXMAX; x++) {
                                         GRPHDATASET(p, vc);                                          GRPHDATASET(p, vc);
                                         p += 2;                                          p += 2;
                                         vc = VRAM_POS(vc + 1);                                          vc = VRAMADDRMASKEX(vc + 1);
                                 }                                  }
                                 d = (BYTE *)bit;                                  d = (BYTE *)bit;
                                 ZeroMemory(q, TEXTXMAX * 8);                                  ZeroMemory(q, TEXTXMAX * 8);
Line 492  void maketextgrph40(int plane, int text_ Line 488  void maketextgrph40(int plane, int text_
                         m_scr--;                          m_scr--;
                         if (!m_scr) {                          if (!m_scr) {
                                 m_scrp = (m_scrp + 4) & 0x0c;                                  m_scrp = (m_scrp + 4) & 0x0c;
                                 esi = LOADINTELWORD(gdc.m.para + GDC_SCROLL + m_scrp);                                  esi = LOW12(LOADINTELWORD(gdc.m.para + GDC_SCROLL + m_scrp));
                                 esi &= 0xfff;  
                                 m_scr = LOADINTELWORD(gdc.m.para + GDC_SCROLL + m_scrp + 2);                                  m_scr = LOADINTELWORD(gdc.m.para + GDC_SCROLL + m_scrp + 2);
                                 m_scr = (m_scr >> 4) & 0x3ff;                                  m_scr = LOW14(m_scr) >> 4;
                                 reloadline = TRUE;                                  reloadline = TRUE;
                         }                          }
                         if (!GRPH_LRcnt) {                          if (!GRPH_LRcnt) {
Line 504  void maketextgrph40(int plane, int text_ Line 499  void maketextgrph40(int plane, int text_
                                 if (!s_scr) {                                  if (!s_scr) {
                                         s_scrp = (s_scrp + 4) & s_scrpmask;                                          s_scrp = (s_scrp + 4) & s_scrpmask;
                                         ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL + s_scrp);                                          ebp = LOADINTELWORD(gdc.s.para + GDC_SCROLL + s_scrp);
                                         ebp = (ebp << 1) & 0x7ffe;                                          ebp = LOW15(ebp << 1);
                                         s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL +                                          s_scr = LOADINTELWORD(gdc.s.para + GDC_SCROLL +
                                                                                                                                 s_scrp + 2);                                                                                                                                  s_scrp + 2);
                                         s_scr = (s_scr >> 4) & 0x3ff;                                          s_scr = LOW14(s_scr) >> 4;
                                 }                                  }
                                 else {                                  else {
                                         ebp = (ebp + s_pitch) & 0x7fff;                                          ebp = LOW15(ebp + s_pitch);
                                 }                                  }
                         }                          }
                         else {                          else {

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


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