home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <dos.h>
-
- struct CIRCLESECTOR {
- unsigned type;
- int cx,cy,stx,sty,edx,edy,r;
- unsigned char sctmode,reserve;
- };
-
- extern unsigned char gds_fshift;
- extern unsigned gds_wrkoff;
- extern unsigned gds_wrkseg;
-
- int g_circle_sector(int centerx,int centery,int startx,int starty,
- int endx,int endy,int r)
- {
- union REGS reg;
- struct SREGS seg;
- struct {
- unsigned len;
- struct CIRCLESECTOR sector;
- } gdata;
-
- segread(&seg);
- reg.h.ah=gds_fshift+0x0f;
- reg.x.di=(unsigned)&gdata;
- seg.ds=seg.ss;
- gdata.len=18;
- gdata.sector.type=0x4210;
- gdata.sector.cx=centerx;
- gdata.sector.cy=centery;
- gdata.sector.stx=startx;
- gdata.sector.sty=starty;
- gdata.sector.edx=endx;
- gdata.sector.edy=endy;
- gdata.sector.r=r;
- gdata.sector.sctmode=0;
- gdata.sector.reserve=0;
- reg.x.bx=gds_wrkoff;
- seg.es=gds_wrkseg;
- int86x(0x92,®,®,&seg);
- return (int)reg.h.ah;
- }