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

  1. #include    <stdio.h>
  2. #include    <farstr.h>
  3. #include    <dos.h>
  4.  
  5. struct STRING {
  6.     unsigned    type,dlen;
  7.     int        sx,sy;
  8.     unsigned char    flag,length;
  9.     char    str[256];
  10. };
  11.  
  12. extern unsigned char    gds_fshift;
  13. extern unsigned     gds_wrkoff;
  14. extern unsigned     gds_wrkseg;
  15.  
  16. int    g_string(int x,int y,unsigned char cont,char far *strings)
  17. {
  18.     union REGS    reg;
  19.     struct SREGS    seg;
  20.     struct {
  21.         unsigned    len;
  22.         struct STRING    strs;
  23.     }    gdata;
  24.     int    i,l;
  25.  
  26.     l=far_strlen(strings);
  27.     if((l==0)||(l>255))
  28.         return -1;
  29.     segread(&seg);
  30.     reg.h.ah=gds_fshift+0x0f;
  31.     reg.x.di=(unsigned)&gdata;
  32.     seg.ds=seg.ss;
  33.     gdata.len=10+l;
  34.     gdata.strs.type=0x409f;
  35.     gdata.strs.dlen=6+l;
  36.     gdata.strs.sx=x;
  37.     gdata.strs.sy=y;
  38.     gdata.strs.flag=cont;
  39.     gdata.strs.length=l;
  40.     for(i=0;i<l;i++)
  41.         gdata.strs.str[i]=*strings++;
  42.     gdata.strs.str[i]=0;
  43.     reg.x.bx=gds_wrkoff;
  44.     seg.es=gds_wrkseg;
  45.     int86x(0x92,®,®,&seg);
  46.     return (int)reg.h.ah;
  47. }
  48.