home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <dos.h>
-
- struct BITRECT {
- unsigned char far *buff;
- unsigned char pagenumber,clcnt;
- int x1,y1,x2,y2;
- unsigned colorid[16];
- };
-
- extern unsigned char gds_fshift;
- extern unsigned gds_wrkoff;
- extern unsigned gds_wrkseg;
-
- int g_colorget(unsigned char far *readbuff,unsigned char readpage,
- int startx,int starty,int endx,int endy,unsigned count,unsigned *list)
- {
- union REGS reg;
- struct SREGS seg;
- struct BITRECT rimg;
- int i;
-
- if((count==0)||(count>16))
- return -1;
- segread(&seg);
- reg.h.ah=gds_fshift+0x0d;
- reg.x.di=(unsigned)&rimg;
- seg.ds=seg.ss;
- rimg.buff=readbuff;
- rimg.pagenumber=readpage;
- rimg.clcnt=count;
- rimg.x1=startx;
- rimg.y1=starty;
- rimg.x2=endx;
- rimg.y2=endy;
- for(i=0;i<count;i++)
- rimg.colorid[i]= *list++;
- reg.x.bx=gds_wrkoff;
- seg.es=gds_wrkseg;
- int86x(0x92,®,®,&seg);
- }