Diff for /xmil/io/pcg.c between versions 1.1 and 1.2

version 1.1, 2004/08/01 05:31:30 version 1.2, 2004/08/03 11:02:00
Line 5 Line 5
 #include        "x1_io.h"  #include        "x1_io.h"
 #include        "x1_crtc.h"  #include        "x1_crtc.h"
 #include        "x1_vram.h"  #include        "x1_vram.h"
   #include        "vram.h"
 #include        "font.h"  #include        "font.h"
   
   
Line 16  static void pcgsync(void) { Line 17  static void pcgsync(void) {
   
 static UINT pcg_offset(void) {  static UINT pcg_offset(void) {
   
         if (TXT_RAM[TEXT_ATR + 0x07ff] & 0x20) {          if (tram[TRAM_ATR + 0x07ff] & 0x20) {
                 return(0x7ff);                  return(0x7ff);
         }          }
         if (TXT_RAM[TEXT_ATR + 0x03ff] & 0x20) {          if (tram[TRAM_ATR + 0x03ff] & 0x20) {
                 return(0x3ff);                  return(0x3ff);
         }          }
         if (TXT_RAM[TEXT_ATR + 0x05ff] & 0x20) {          if (tram[TRAM_ATR + 0x05ff] & 0x20) {
                 return(0x5ff);                  return(0x5ff);
         }          }
         if (TXT_RAM[TEXT_ATR + 0x01ff] & 0x20) {          if (tram[TRAM_ATR + 0x01ff] & 0x20) {
                 return(0x1ff);                  return(0x1ff);
         }          }
         return(0x7ff);          return(0x7ff);
Line 33  static UINT pcg_offset(void) { Line 34  static UINT pcg_offset(void) {
   
 static UINT knj_offset(void) {  static UINT knj_offset(void) {
   
         if (!(TXT_RAM[TEXT_ATR + 0x07ff] & 0x20)) {          if (!(tram[TRAM_ATR + 0x07ff] & 0x20)) {
                 return(0x7ff);                  return(0x7ff);
         }          }
         if (!(TXT_RAM[TEXT_ATR + 0x03ff] & 0x20)) {          if (!(tram[TRAM_ATR + 0x03ff] & 0x20)) {
                 return(0x3ff);                  return(0x3ff);
         }          }
         if (!(TXT_RAM[TEXT_ATR + 0x05ff] & 0x20)) {          if (!(tram[TRAM_ATR + 0x05ff] & 0x20)) {
                 return(0x5ff);                  return(0x5ff);
         }          }
         if (!(TXT_RAM[TEXT_ATR + 0x01ff] & 0x20)) {          if (!(tram[TRAM_ATR + 0x01ff] & 0x20)) {
                 return(0x1ff);                  return(0x1ff);
         }          }
         return(0x7ff);          return(0x7ff);
Line 73  void IOOUTCALL pcg_o(UINT port, REG8 val Line 74  void IOOUTCALL pcg_o(UINT port, REG8 val
   
         if (crtc.SCRN_BITS & SCRN_PCGMODE) {          if (crtc.SCRN_BITS & SCRN_PCGMODE) {
                 off = pcg_offset();                  off = pcg_offset();
                 chr = TXT_RAM[TEXT_ANK + off];                  chr = tram[TRAM_ANK + off];
                 if (TXT_RAM[TEXT_KNJ + off] & 0x90) {                  if (tram[TRAM_KNJ + off] & 0x90) {
                         chr &= 0xfe;                          chr &= 0xfe;
                         l = port & 15;                          l = port & 15;
                 }                  }
Line 97  void IOOUTCALL pcg_o(UINT port, REG8 val Line 98  void IOOUTCALL pcg_o(UINT port, REG8 val
         }          }
         else {          else {
                 off = nowsyncoffset();                                          // 990622 puni                  off = nowsyncoffset();                                          // 990622 puni
                 chr = TXT_RAM[TEXT_ANK + off];                  chr = tram[TRAM_ANK + off];
                 if (pcg.r.vsync) {                  if (pcg.r.vsync) {
                         pcgsync();                          pcgsync();
                 }                  }
Line 122  void IOOUTCALL pcg_o(UINT port, REG8 val Line 123  void IOOUTCALL pcg_o(UINT port, REG8 val
   
 REG8 IOINPCALL pcg_i(UINT port) {  REG8 IOINPCALL pcg_i(UINT port) {
   
         WORD    off;          UINT    off;
         int             l;          int             l;
         BYTE    chr,knj,val;          BYTE    chr,knj,val;
   
Line 131  REG8 IOINPCALL pcg_i(UINT port) { Line 132  REG8 IOINPCALL pcg_i(UINT port) {
                 l = port & 0x0f;                  l = port & 0x0f;
                 if ((port & 0xff00) == 0x1400) {                  if ((port & 0xff00) == 0x1400) {
                         off = knj_offset();                          off = knj_offset();
                         chr = TXT_RAM[off + TEXT_ANK];                          chr = tram[TRAM_ANK + off];
                         knj = TXT_RAM[off + TEXT_KNJ];                          knj = tram[TRAM_KNJ + off];
                         if (knj & 0x80) {                          if (knj & 0x80) {
                                 DWORD p;                                  DWORD p;
                                 p = ((((DWORD)knj << 8) | chr) & 0x1fff) << 4;                                  p = ((((DWORD)knj << 8) | chr) & 0x1fff) << 4;
Line 152  REG8 IOINPCALL pcg_i(UINT port) { Line 153  REG8 IOINPCALL pcg_i(UINT port) {
                 }                  }
                 else {                  else {
                         off = pcg_offset();                          off = pcg_offset();
                         chr = TXT_RAM[TEXT_ANK + off];                          chr = tram[TRAM_ANK + off];
                         if (TXT_RAM[TEXT_KNJ + off] & 0x90) {                          if (tram[TRAM_KNJ + off] & 0x90) {
                                 chr &= 0xfe;                                  chr &= 0xfe;
                         }                          }
                         else {                          else {
Line 176  REG8 IOINPCALL pcg_i(UINT port) { Line 177  REG8 IOINPCALL pcg_i(UINT port) {
         }          }
         else {          else {
                 off = nowsyncoffset();                                  // 990622 puni                  off = nowsyncoffset();                                  // 990622 puni
                 chr = TXT_RAM[TEXT_ANK + off];                  chr = tram[TRAM_ANK + off];
                 if (pcg.r.vsync) {                  if (pcg.r.vsync) {
                         pcgsync();                          pcgsync();
                 }                  }

Removed from v.1.1  
changed lines
  Added in v.1.2


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