Diff for /np2/lio/gput1.c between versions 1.9 and 1.15

version 1.9, 2004/02/21 06:26:34 version 1.15, 2004/06/04 16:54:57
Line 321  const BYTE *src; Line 321  const BYTE *src;
   
 // ----  // ----
   
 static REG8 putsub(LIOWORK lio, const LIOPUT *lput) {  static REG8 putsub(GLIO lio, const LIOPUT *lput) {
   
         UINT    addr;          UINT    addr;
         PUTCNTX pt;          PUTCNTX pt;
Line 371  static REG8 putsub(LIOWORK lio, const LI Line 371  static REG8 putsub(LIOWORK lio, const LI
                         flag >>= 1;                          flag >>= 1;
                         if (flag & 8) {                          if (flag & 8) {
                                 pt.baseptr = mem + lio->draw.base + lioplaneadrs[pl];                                  pt.baseptr = mem + lio->draw.base + lioplaneadrs[pl];
                                 i286_memstr_read(lput->seg, off, pt.pat, datacnt);                                  MEML_READSTR(lput->seg, off, pt.pat, datacnt);
                                 if (lput->sw) {                                  if (lput->sw) {
                                         off += datacnt;                                          off += datacnt;
                                 }                                  }
Line 455  static REG8 putsub(LIOWORK lio, const LI Line 455  static REG8 putsub(LIOWORK lio, const LI
   
 // ---- GGET  // ---- GGET
   
 REG8 lio_gget(LIOWORK lio) {  REG8 lio_gget(GLIO lio) {
   
         GGET    dat;          GGET    dat;
         SINT32  x;          SINT32  x;
Line 473  REG8 lio_gget(LIOWORK lio) { Line 473  REG8 lio_gget(LIOWORK lio) {
         UINT    pl;          UINT    pl;
   
         lio_updatedraw(lio);          lio_updatedraw(lio);
         i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat));          MEML_READSTR(CPU_DS, CPU_BX, &dat, sizeof(dat));
         x = (SINT16)LOADINTELWORD(dat.x1);          x = (SINT16)LOADINTELWORD(dat.x1);
         y = (SINT16)LOADINTELWORD(dat.y1);          y = (SINT16)LOADINTELWORD(dat.y1);
         x2 = (SINT16)LOADINTELWORD(dat.x2);          x2 = (SINT16)LOADINTELWORD(dat.x2);
Line 509  REG8 lio_gget(LIOWORK lio) { Line 509  REG8 lio_gget(LIOWORK lio) {
         if (leng < (size + 4)) {          if (leng < (size + 4)) {
                 return(LIO_ILLEGALFUNC);                  return(LIO_ILLEGALFUNC);
         }          }
         i286_memword_write(seg, off, (REG16)x2);          MEML_WRITE16(seg, off, (REG16)x2);
         i286_memword_write(seg, off+2, (REG16)y2);          MEML_WRITE16(seg, off+2, (REG16)y2);
         off += 4;          off += 4;
         gt.addr = (x >> 3) + (y * 80);          gt.addr = (x >> 3) + (y * 80);
         if (lio->draw.flag & LIODRAW_UPPER) {          if (lio->draw.flag & LIODRAW_UPPER) {
Line 526  REG8 lio_gget(LIOWORK lio) { Line 526  REG8 lio_gget(LIOWORK lio) {
                         if (mask & 8) {                          if (mask & 8) {
                                 gt.baseptr = mem + lio->draw.base + lioplaneadrs[pl];                                  gt.baseptr = mem + lio->draw.base + lioplaneadrs[pl];
                                 getvram(&gt, pat);                                  getvram(&gt, pat);
                                 i286_memstr_write(seg, off, pat, datacnt);                                  MEML_WRITESTR(seg, off, pat, datacnt);
                                 off += datacnt;                                  off += datacnt;
                         }                          }
                 }                  }
Line 539  REG8 lio_gget(LIOWORK lio) { Line 539  REG8 lio_gget(LIOWORK lio) {
   
 // ---- GPUT1  // ---- GPUT1
   
 REG8 lio_gput1(LIOWORK lio) {  REG8 lio_gput1(GLIO lio) {
   
         GPUT1   dat;          GPUT1   dat;
         LIOPUT  lput;          LIOPUT  lput;
Line 547  REG8 lio_gput1(LIOWORK lio) { Line 547  REG8 lio_gput1(LIOWORK lio) {
         UINT    size;          UINT    size;
   
         lio_updatedraw(lio);          lio_updatedraw(lio);
         i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat));          MEML_READSTR(CPU_DS, CPU_BX, &dat, sizeof(dat));
         lput.x = (SINT16)LOADINTELWORD(dat.x);          lput.x = (SINT16)LOADINTELWORD(dat.x);
         lput.y = (SINT16)LOADINTELWORD(dat.y);          lput.y = (SINT16)LOADINTELWORD(dat.y);
         lput.off = (UINT16)(LOADINTELWORD(dat.off) + 4);          lput.off = (UINT16)(LOADINTELWORD(dat.off) + 4);
         lput.seg = LOADINTELWORD(dat.seg);          lput.seg = LOADINTELWORD(dat.seg);
         lput.mode = dat.mode;          lput.mode = dat.mode;
         leng = LOADINTELWORD(dat.leng);          leng = LOADINTELWORD(dat.leng);
         lput.width = i286_memword_read(lput.seg, lput.off - 4);          lput.width = MEML_READ16(lput.seg, lput.off - 4);
         lput.height = i286_memword_read(lput.seg, lput.off - 2);          lput.height = MEML_READ16(lput.seg, lput.off - 2);
         size = ((lput.width + 7) >> 3) * lput.height;          size = ((lput.width + 7) >> 3) * lput.height;
         if (leng < (size + 4)) {          if (leng < (size + 4)) {
                 return(LIO_ILLEGALFUNC);                  return(LIO_ILLEGALFUNC);
Line 567  REG8 lio_gput1(LIOWORK lio) { Line 567  REG8 lio_gput1(LIOWORK lio) {
                         lput.bg = dat.bg;                          lput.bg = dat.bg;
                 }                  }
                 else {                  else {
                         lput.fg = lio->mem.fgcolor;                          lput.fg = lio->work.fgcolor;
                         lput.bg = lio->mem.bgcolor;                          lput.bg = lio->work.bgcolor;
                 }                  }
         }          }
         else {          else {
Line 589  REG8 lio_gput1(LIOWORK lio) { Line 589  REG8 lio_gput1(LIOWORK lio) {
   
 // ---- GPUT2  // ---- GPUT2
   
 REG8 lio_gput2(LIOWORK lio) {  REG8 lio_gput2(GLIO lio) {
   
         GPUT2   dat;          GPUT2   dat;
         LIOPUT  lput;          LIOPUT  lput;
         UINT16  jis;          UINT16  jis;
           int             pat;
         REG16   size;          REG16   size;
   
         lio_updatedraw(lio);          lio_updatedraw(lio);
         i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat));          MEML_READSTR(CPU_DS, CPU_BX, &dat, sizeof(dat));
         lput.x = (SINT16)LOADINTELWORD(dat.x);          lput.x = (SINT16)LOADINTELWORD(dat.x);
         lput.y = (SINT16)LOADINTELWORD(dat.y);          lput.y = (SINT16)LOADINTELWORD(dat.y);
           lput.off = 0x104e;
           lput.seg = CPU_DS;
         jis = LOADINTELWORD(dat.chr);          jis = LOADINTELWORD(dat.chr);
         if (jis & 0xff00) {          pat = 0;
                 lput.off = 0x104e;          if (jis < 0x200) {
                 lput.seg = CPU_DS;                  if (jis < 0x80) {
                 if (jis < 0x200) {                      // 1/4ANK                          if (jis == 0x7c) {
                                   pat = 1;
                           }
                           else if (jis == 0x7e) {
                                   pat = 2;
                           }
                           else {
                                   jis += 0x2900;
                           }
                   }
                   else if (jis < 0x100) {
                           if ((jis - 0x20) & 0x40) {
                                   pat = (jis & 0x3f) + 3;
                           }
                           else {
                                   jis += 0x2980;
                           }
                   }
                   else {
                         jis &= 0xff;                          jis &= 0xff;
                 }                  }
           }
           if (!pat) {
                 size = bios0x18_14(lput.seg, 0x104c, jis);                  size = bios0x18_14(lput.seg, 0x104c, jis);
                 lput.width = (size & 0xff00) >> (8 - 3);  
                 lput.height = (size & 0xff) << 3;  
         }          }
         else {          else {
                 return(0);                  MEML_WRITESTR(lput.seg, lput.off, mem + (LIO_SEGMENT << 4) +
                                                                                   LIO_FONT + ((pat - 1) << 4), 0x10);
                   size = 0x0102;
         }          }
           lput.width = (size & 0xff00) >> (8 - 3);
           lput.height = (size & 0xff) << 3;
         lput.mode = dat.mode;          lput.mode = dat.mode;
         lput.sw = 0;          lput.sw = 0;
         if (dat.colorsw) {          if (dat.colorsw) {
Line 621  REG8 lio_gput2(LIOWORK lio) { Line 646  REG8 lio_gput2(LIOWORK lio) {
                 lput.bg = dat.bg;                  lput.bg = dat.bg;
         }          }
         else {          else {
                 lput.fg = lio->mem.fgcolor;                  lput.fg = lio->work.fgcolor;
                 lput.bg = lio->mem.bgcolor;                  lput.bg = lio->work.bgcolor;
         }          }
         return(putsub(lio, &lput));          return(putsub(lio, &lput));
 }  }

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


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