home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <dos.h>
-
- struct TILE {
- char id,reserve;
- unsigned wdh,hgt;
- unsigned char img[128];
- };
-
- extern unsigned char gds_fshift;
- extern unsigned gds_wrkoff;
- extern unsigned gds_wrkseg;
-
- int g_tilepattern(char tileid,unsigned height,unsigned char *pln0,
- unsigned char *pln1,unsigned char *pln2,unsigned char *pln3)
- {
- union REGS reg;
- struct SREGS seg;
- struct TILE tiledata;
- int i;
- unsigned char *ptr;
-
- if((height==0)||(height>32))
- return -1;
- segread(&seg);
- reg.h.ah=gds_fshift+0x7c;
- reg.x.di=(unsigned)&tiledata;
- seg.ds=seg.ss;
- tiledata.id=tileid;
- tiledata.reserve=0;
- tiledata.wdh=8;
- tiledata.hgt=height;
- ptr=&tiledata.img[0];
- for(i=0;i<height;i++)
- *ptr++ = *pln0++;
- for(i=0;i<height;i++)
- *ptr++ = *pln1++;
- for(i=0;i<height;i++)
- *ptr++ = *pln2++;
- for(i=0;i<height;i++)
- *ptr++ = *pln3++;
- reg.x.bx=gds_wrkoff;
- seg.es=gds_wrkseg;
- int86x(0x92,®,®,&seg);
- return (int)reg.h.ah;
- }