home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / raytrace / pxm_ray / pxm_ray.lha / pxm-ray / pixel_obj.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-12-09  |  839 b   |  56 lines

  1.  
  2. #include    </usr/hyper/devtools/include/pixel.h>
  3. #include    "ray.h"
  4.  
  5.  
  6. struct    obj    *obj_addr(i, size)
  7. int    i,size;
  8. {
  9.     register    int    pagereg, addr;
  10.     register    int    *pg;
  11.     register    int    offset;
  12.     register    int    row, col;
  13.  
  14.     offset = (i+1) * size;
  15.  
  16.     row = offset / 0x0100;
  17.     col = offset & 0x00ff;
  18.  
  19.     pagereg = DESC(FIX_ROW, ZMEM) + row;
  20.     pg = (int *)PAGEREG(2);
  21.     *pg = pagereg;
  22.     pg = (int *)PAGEREG(3);
  23.     *pg = pagereg + 1;
  24.     addr = XLATE(2) + col;
  25.  
  26.     return (struct obj *)addr;
  27. }
  28.  
  29. map_addr(addr)
  30. int    addr;
  31.  
  32. {
  33.     register    int    pagereg;
  34.     register    int    row,col;
  35.     register    int    *pg;
  36.  
  37.     row = addr / 0x0100;
  38.     col = addr & 0x00ff;
  39.  
  40.     pagereg = DESC(FIX_ROW, ZMEM) + row;
  41.     pg = (int *)PAGEREG(2);
  42.     *pg = pagereg;
  43.     pg = (int *)PAGEREG(3);
  44.     *pg = pagereg + 1;
  45. }
  46.  
  47. struct    obj    *calc_addr(i, size)
  48. int    i, size;
  49. {
  50.     int    addr;
  51.  
  52.     addr = (i + 1) * size;
  53.  
  54.     return (struct obj *)addr;
  55. }
  56.