Diff for /np2/lio/gpset.c between versions 1.3 and 1.6

version 1.3, 2003/12/12 01:04:40 version 1.6, 2004/02/21 00:25:33
Line 7  typedef struct { Line 7  typedef struct {
         BYTE    x[2];          BYTE    x[2];
         BYTE    y[2];          BYTE    y[2];
         BYTE    pal;          BYTE    pal;
 } MEMGPSET;  } GPSET;
   
   typedef struct {
           BYTE    x[2];
           BYTE    y[2];
   } GPOINT2;
   
   
   // ---- CLS
   
   REG8 lio_gcls(LIOWORK lio) {
   
           SINT16  y;
   
           lio_updatedraw(lio);
           for (y=lio->draw.y1; y<=lio->draw.y2; y++) {
                   lio_line(lio, lio->draw.x1, lio->draw.x2, y, lio->gcolor1.bgcolor);
           }
           return(LIO_SUCCESS);
   }
   
 BYTE lio_gpset(void) {  
   
         MEMGPSET        gpset;  // ---- PSET
         SINT16          x;  
         SINT16          y;  
   
         i286_memstr_read(CPU_DS, CPU_BX, &gpset, sizeof(gpset));  REG8 lio_gpset(LIOWORK lio) {
         if (gpset.pal >= lio.gcolor1.palmax) {  
                 if (CPU_AH == 2) {          GPSET   dat;
                         gpset.pal = lio.gcolor1.bgcolor;          SINT16  x;
           SINT16  y;
   
           lio_updatedraw(lio);
           i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat));
           x = (SINT16)LOADINTELWORD(dat.x);
           y = (SINT16)LOADINTELWORD(dat.y);
           if (dat.pal == 0xff) {
                   if (CPU_AH == 1) {
                           dat.pal = lio->gcolor1.fgcolor;
                   }
                   else {
                           dat.pal = lio->gcolor1.bgcolor;
                   }
           }
           lio_pset(lio, x, y, dat.pal);
           return(LIO_SUCCESS);
   }
   
   
   // ---- GPOINT2
   
   REG8 lio_gpoint2(LIOWORK lio) {
   
           GPOINT2 dat;
           SINT16  x;
           SINT16  y;
           REG8    ret;
           UINT32  addr;
           UINT    sft;
           UINT    pl;
   const BYTE      *ptr;
   
           lio_updatedraw(lio);
           i286_memstr_read(CPU_DS, CPU_BX, &dat, sizeof(dat));
           x = (SINT16)LOADINTELWORD(dat.x);
           y = (SINT16)LOADINTELWORD(dat.y);
           if ((lio->draw.x1 > x) || (lio->draw.x2 < x) ||
                   (lio->draw.y1 > y) || (lio->draw.y2 < y)) {
                   ret = 0xff;
           }
           else {
                   ret = 0;
                   addr = (x >> 3) + (y * 80);
                   if (lio->scrn.top) {
                           addr += 16000;
                   }
                   addr += lio->draw.base;
                   sft = (~x) & 7;
                   if (lio->scrn.plane & 0x80) {
                           for (pl=0; pl<3; pl++) {
                                   ptr = mem + addr + lioplaneadrs[pl];
                                   ret += (((*ptr) >> sft) & 1) << pl;
                           }
                           if (lio->gcolor1.palmode == 2) {
                                   ptr = mem + addr + lioplaneadrs[3];
                                   ret += (((*ptr) >> sft) & 1) << 3;
                           }
                 }                  }
                 else {                  else {
                         gpset.pal = lio.gcolor1.fgcolor;                          ptr = mem + addr + lioplaneadrs[lio->scrn.plane & 3];
                           ret = ((*ptr) >> sft) & 1;
                 }                  }
         }          }
         x = (SINT16)LOADINTELWORD(gpset.x);          CPU_AL = ret;
         y = (SINT16)LOADINTELWORD(gpset.y);          return(LIO_SUCCESS);
         lio_pset(x, y, gpset.pal);  
         return(0);  
 }  }
   

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


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