home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 2 / FreeSoftwareCollection2pd199x-jp.img / ms_dos / fmgraph / g_tilept.c < prev    next >
Text File  |  1990-06-14  |  981b  |  47 lines

  1. #include    <stdio.h>
  2. #include    <dos.h>
  3.  
  4. struct TILE {
  5.     char    id,reserve;
  6.     unsigned    wdh,hgt;
  7.     unsigned char    img[128];
  8. };
  9.  
  10. extern    unsigned char    gds_fshift;
  11. extern    unsigned    gds_wrkoff;
  12. extern    unsigned    gds_wrkseg;
  13.  
  14. int    g_tilepattern(char tileid,unsigned height,unsigned char *pln0,
  15.         unsigned char *pln1,unsigned char *pln2,unsigned char *pln3)
  16. {
  17.     union REGS    reg;
  18.     struct SREGS    seg;
  19.     struct TILE    tiledata;
  20.     int    i;
  21.     unsigned char *ptr;
  22.  
  23.     if((height==0)||(height>32))
  24.         return -1;
  25.     segread(&seg);
  26.     reg.h.ah=gds_fshift+0x7c;
  27.     reg.x.di=(unsigned)&tiledata;
  28.     seg.ds=seg.ss;
  29.     tiledata.id=tileid;
  30.     tiledata.reserve=0;
  31.     tiledata.wdh=8;
  32.     tiledata.hgt=height;
  33.     ptr=&tiledata.img[0];
  34.     for(i=0;i<height;i++)
  35.         *ptr++ = *pln0++;
  36.     for(i=0;i<height;i++)
  37.         *ptr++ = *pln1++;
  38.     for(i=0;i<height;i++)
  39.         *ptr++ = *pln2++;
  40.     for(i=0;i<height;i++)
  41.         *ptr++ = *pln3++;
  42.     reg.x.bx=gds_wrkoff;
  43.     seg.es=gds_wrkseg;
  44.     int86x(0x92,®,®,&seg);
  45.     return (int)reg.h.ah;
  46. }
  47.