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

  1. #include    <stdio.h>
  2. #include    <dos.h>
  3.  
  4. struct HATCHPATTERN {
  5.     unsigned    type,escno,escln;
  6.     char    id,reserve;
  7.     unsigned    hrzsize,vrtsize;
  8.     unsigned char    ptndata[20];
  9. };
  10.  
  11. extern    unsigned    char    gds_fshift;
  12. extern    unsigned    gds_wrkoff;
  13. extern    unsigned    gds_wrkseg;
  14.  
  15. int    g_hatchpattern(char formid,unsigned height,unsigned char *pattern)
  16. {
  17.     union REGS    reg;
  18.     struct SREGS    seg;
  19.     struct {
  20.         unsigned    len;
  21.         struct HATCHPATTERN    hptn;
  22.     }    gdata;
  23.     int    i;
  24.  
  25.     if((height==0)||(height>20))
  26.         return -1;
  27.     segread(&seg);
  28.     reg.h.ah=gds_fshift+0x0f;
  29.     reg.x.di=(unsigned)&gdata;
  30.     seg.ds=seg.ss;
  31.     gdata.len=12+height;
  32.     gdata.hptn.type=0x602a+height;
  33.     gdata.hptn.escno=3;
  34.     gdata.hptn.escln=6+height;
  35.     gdata.hptn.id=formid;
  36.     gdata.hptn.reserve=0;
  37.     gdata.hptn.hrzsize=8;
  38.     gdata.hptn.vrtsize=height;
  39.     for(i=0;i<height;i++){
  40.         gdata.hptn.ptndata[i]=*pattern;
  41.         pattern++;
  42.     }
  43.     reg.x.bx=gds_wrkoff;
  44.     seg.es=gds_wrkseg;
  45.     int86x(0x92,®,®,&seg);
  46.     return (int)reg.h.ah;
  47. }
  48.