Diff for /np2/io/gdc_sub.c between versions 1.7 and 1.8

version 1.7, 2004/02/02 12:16:30 version 1.8, 2004/02/09 20:39:39
Line 64  static void calc_gdcslavewait(UINT dots) Line 64  static void calc_gdcslavewait(UINT dots)
         nevent_set(NEVENT_GDCSLAVE, clk, gdcslavewait, NEVENT_ABSOLUTE);          nevent_set(NEVENT_GDCSLAVE, clk, gdcslavewait, NEVENT_ABSOLUTE);
 }  }
   
 void gdcsub_line(UINT32 csrw, const GDCVECT *vect, UINT16 pat, BYTE ope) {  void gdcsub_null(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope) {
   
           (void)csrw;
           (void)vect;
           (void)pat;
           (void)ope;
   }
   
   void gdcsub_line(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope) {
   
         _GDCPSET        pset;          _GDCPSET        pset;
         UINT            dc;          UINT            dc;
         UINT16          x;          REG16           x;
         UINT16          y;          REG16           y;
         UINT            i;          UINT            i;
         UINT16          step;          UINT16          step;
         UINT            d1;          UINT            d1;
Line 87  void gdcsub_line(UINT32 csrw, const GDCV Line 95  void gdcsub_line(UINT32 csrw, const GDCV
                         case 0:                          case 0:
                                 for (i=0; i<=dc; i++) {                                  for (i=0; i<=dc; i++) {
                                         step = (UINT16)((((d1 * i) / dc) + 1) >> 1);                                          step = (UINT16)((((d1 * i) / dc) + 1) >> 1);
                                         gdcpset(&pset, (UINT16)(x + step), y++);                                          gdcpset(&pset, (REG16)(x + step), y++);
                                 }                                  }
                                 break;                                  break;
   
                         case 1:                          case 1:
                                 for (i=0; i<=dc; i++) {                                  for (i=0; i<=dc; i++) {
                                         step = (UINT16)((((d1 * i) / dc) + 1) >> 1);                                          step = (UINT16)((((d1 * i) / dc) + 1) >> 1);
                                         gdcpset(&pset, x++, (UINT16)(y + step));                                          gdcpset(&pset, x++, (REG16)(y + step));
                                 }                                  }
                                 break;                                  break;
   
                         case 2:                          case 2:
                                 for (i=0; i<=dc; i++) {                                  for (i=0; i<=dc; i++) {
                                         step = (UINT16)((((d1 * i) / dc) + 1) >> 1);                                          step = (UINT16)((((d1 * i) / dc) + 1) >> 1);
                                         gdcpset(&pset, x++, (UINT16)(y - step));                                          gdcpset(&pset, x++, (REG16)(y - step));
                                 }                                  }
                                 break;                                  break;
   
                         case 3:                          case 3:
                                 for (i=0; i<=dc; i++) {                                  for (i=0; i<=dc; i++) {
                                         step = (UINT16)((((d1 * i) / dc) + 1) >> 1);                                          step = (UINT16)((((d1 * i) / dc) + 1) >> 1);
                                         gdcpset(&pset, (UINT16)(x + step), y--);                                          gdcpset(&pset, (REG16)(x + step), y--);
                                 }                                  }
                                 break;                                  break;
   
                         case 4:                          case 4:
                                 for (i=0; i<=dc; i++) {                                  for (i=0; i<=dc; i++) {
                                         step = (UINT16)((((d1 * i) / dc) + 1) >> 1);                                          step = (UINT16)((((d1 * i) / dc) + 1) >> 1);
                                         gdcpset(&pset, (UINT16)(x - step), y--);                                          gdcpset(&pset, (REG16)(x - step), y--);
                                 }                                  }
                                 break;                                  break;
   
                         case 5:                          case 5:
                                 for (i=0; i<=dc; i++) {                                  for (i=0; i<=dc; i++) {
                                         step = (UINT16)((((d1 * i) / dc) + 1) >> 1);                                          step = (UINT16)((((d1 * i) / dc) + 1) >> 1);
                                         gdcpset(&pset, x--, (UINT16)(y - step));                                          gdcpset(&pset, x--, (REG16)(y - step));
                                 }                                  }
                                 break;                                  break;
   
                         case 6:                          case 6:
                                 for (i=0; i<=dc; i++) {                                  for (i=0; i<=dc; i++) {
                                         step = (UINT16)((((d1 * i) / dc) + 1) >> 1);                                          step = (UINT16)((((d1 * i) / dc) + 1) >> 1);
                                         gdcpset(&pset, x--, (UINT16)(y + step));                                          gdcpset(&pset, x--, (REG16)(y + step));
                                 }                                  }
                                 break;                                  break;
   
                         case 7:                          case 7:
                                 for (i=0; i<=dc; i++) {                                  for (i=0; i<=dc; i++) {
                                         step = (UINT16)((((d1 * i) / dc) + 1) >> 1);                                          step = (UINT16)((((d1 * i) / dc) + 1) >> 1);
                                         gdcpset(&pset, (UINT16)(x - step), y++);                                          gdcpset(&pset, (REG16)(x - step), y++);
                                 }                                  }
                                 break;                                  break;
                 }                  }
Line 144  void gdcsub_line(UINT32 csrw, const GDCV Line 152  void gdcsub_line(UINT32 csrw, const GDCV
         calc_gdcslavewait(pset.dots);          calc_gdcslavewait(pset.dots);
 }  }
   
 void gdcsub_box(UINT32 csrw, const GDCVECT *vect, UINT16 pat, BYTE ope) {  void gdcsub_box(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope) {
   
         _GDCPSET        pset;          _GDCPSET        pset;
         UINT            d;          UINT            d;
         UINT            d2;          UINT            d2;
         UINT16          x;          REG16           x;
         UINT16          y;          REG16           y;
         UINT            i;          UINT            i;
   
         gdcpset_prepare(&pset, csrw, pat, ope);          gdcpset_prepare(&pset, csrw, pat, ope);
Line 223  void gdcsub_box(UINT32 csrw, const GDCVE Line 231  void gdcsub_box(UINT32 csrw, const GDCVE
         calc_gdcslavewait(pset.dots);          calc_gdcslavewait(pset.dots);
 }  }
   
 void gdcsub_circle(UINT32 csrw, const GDCVECT *vect, UINT16 pat, BYTE ope) {  void gdcsub_circle(UINT32 csrw, const GDCVECT *vect, REG16 pat, REG8 ope) {
   
         _GDCPSET        pset;          _GDCPSET        pset;
         UINT            r;          UINT            r;
Line 253  void gdcsub_circle(UINT32 csrw, const GD Line 261  void gdcsub_circle(UINT32 csrw, const GD
                                 for (; i<=t; i++) {                                  for (; i<=t; i++) {
                                         s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);                                          s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);
                                         s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;                                          s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;
                                         gdcpset(&pset, (UINT16)(x + s), (UINT16)(y + i));                                          gdcpset(&pset, (REG16)(x + s), (REG16)(y + i));
                                 }                                  }
                                 break;                                  break;
   
Line 261  void gdcsub_circle(UINT32 csrw, const GD Line 269  void gdcsub_circle(UINT32 csrw, const GD
                                 for (; i<=t; i++) {                                  for (; i<=t; i++) {
                                         s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);                                          s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);
                                         s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;                                          s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;
                                         gdcpset(&pset, (UINT16)(x + i), (UINT16)(y + s));                                          gdcpset(&pset, (REG16)(x + i), (REG16)(y + s));
                                 }                                  }
                                 break;                                  break;
   
Line 269  void gdcsub_circle(UINT32 csrw, const GD Line 277  void gdcsub_circle(UINT32 csrw, const GD
                                 for (; i<=t; i++) {                                  for (; i<=t; i++) {
                                         s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);                                          s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);
                                         s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;                                          s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;
                                         gdcpset(&pset, (UINT16)(x + i), (UINT16)(y - s));                                          gdcpset(&pset, (REG16)(x + i), (REG16)(y - s));
                                 }                                  }
                                 break;                                  break;
   
Line 277  void gdcsub_circle(UINT32 csrw, const GD Line 285  void gdcsub_circle(UINT32 csrw, const GD
                                 for (; i<=t; i++) {                                  for (; i<=t; i++) {
                                         s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);                                          s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);
                                         s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;                                          s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;
                                         gdcpset(&pset, (UINT16)(x + s), (UINT16)(y - i));                                          gdcpset(&pset, (REG16)(x + s), (REG16)(y - i));
                                 }                                  }
                                 break;                                  break;
   
Line 285  void gdcsub_circle(UINT32 csrw, const GD Line 293  void gdcsub_circle(UINT32 csrw, const GD
                                 for (; i<=t; i++) {                                  for (; i<=t; i++) {
                                         s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);                                          s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);
                                         s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;                                          s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;
                                         gdcpset(&pset, (UINT16)(x - s), (UINT16)(y - i));                                          gdcpset(&pset, (REG16)(x - s), (REG16)(y - i));
                                 }                                  }
                                 break;                                  break;
   
Line 293  void gdcsub_circle(UINT32 csrw, const GD Line 301  void gdcsub_circle(UINT32 csrw, const GD
                                 for (; i<=t; i++) {                                  for (; i<=t; i++) {
                                         s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);                                          s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);
                                         s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;                                          s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;
                                         gdcpset(&pset, (UINT16)(x - i), (UINT16)(y - s));                                          gdcpset(&pset, (REG16)(x - i), (REG16)(y - s));
                                 }                                  }
                                 break;                                  break;
   
Line 301  void gdcsub_circle(UINT32 csrw, const GD Line 309  void gdcsub_circle(UINT32 csrw, const GD
                                 for (; i<=t; i++) {                                  for (; i<=t; i++) {
                                         s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);                                          s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);
                                         s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;                                          s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;
                                         gdcpset(&pset, (UINT16)(x - i), (UINT16)(y + s));                                          gdcpset(&pset, (REG16)(x - i), (REG16)(y + s));
                                 }                                  }
                                 break;                                  break;
   
Line 309  void gdcsub_circle(UINT32 csrw, const GD Line 317  void gdcsub_circle(UINT32 csrw, const GD
                                 for (; i<=t; i++) {                                  for (; i<=t; i++) {
                                         s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);                                          s = (gdc_rt[(i << RT_TABLEBIT) / m] * r);
                                         s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;                                          s = (s + (1 << (RT_MULBIT - 1))) >> RT_MULBIT;
                                         gdcpset(&pset, (UINT16)(x - s), (UINT16)(y + i));                                          gdcpset(&pset, (REG16)(x - s), (REG16)(y + i));
                                 }                                  }
                                 break;                                  break;
                 }                  }
Line 317  void gdcsub_circle(UINT32 csrw, const GD Line 325  void gdcsub_circle(UINT32 csrw, const GD
         calc_gdcslavewait(pset.dots);          calc_gdcslavewait(pset.dots);
 }  }
   
 void gdcsub_text(UINT32 csrw, const GDCVECT *vect, UINT16 pat, BYTE ope) {  void gdcsub_text(UINT32 csrw, const GDCVECT *vect, const BYTE *pat,
                                                                                                                                   REG8 ope) {
   
         _GDCPSET        pset;          _GDCPSET        pset;
         BYTE            multiple;          BYTE            multiple;
Line 326  void gdcsub_text(UINT32 csrw, const GDCV Line 335  void gdcsub_text(UINT32 csrw, const GDCV
 const TEXTDIR   *dir;  const TEXTDIR   *dir;
         UINT            patnum;          UINT            patnum;
         BYTE            muly;          BYTE            muly;
         UINT16          cx;          REG16           cx;
         UINT16          cy;          REG16           cy;
         UINT            xrem;          UINT            xrem;
         BYTE            bit;          BYTE            bit;
         BYTE            mulx;          BYTE            mulx;
   
         gdcpset_prepare(&pset, csrw, pat, ope);          gdcpset_prepare(&pset, csrw, 0xffff, ope);
         multiple = (gdc.s.para[GDC_ZOOM] & 15) + 1;          multiple = (gdc.s.para[GDC_ZOOM] & 15) + 1;
 #if 0  #if 0
         sx = (LOADINTELWORD(vect->DC)) & 0x3fff) + 1;          sx = (LOADINTELWORD(vect->DC)) & 0x3fff) + 1;
Line 350  const TEXTDIR *dir; Line 359  const TEXTDIR *dir;
                 while(muly--) {                  while(muly--) {
                         cx = pset.x;                          cx = pset.x;
                         cy = pset.y;                          cy = pset.y;
                         bit = gdc.s.para[GDC_TEXTW + (patnum & 7)];                          bit = pat[patnum & 7];
                         xrem = sx;                          xrem = sx;
                         while(xrem--) {                          while(xrem--) {
                                 mulx = multiple;                                  mulx = multiple;

Removed from v.1.7  
changed lines
  Added in v.1.8


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