home *** CD-ROM | disk | FTP | other *** search
- #include <stdio.h>
- #include <farstr.h>
- #include <dos.h>
-
- struct STRING {
- unsigned type,dlen;
- int sx,sy;
- unsigned char flag,length;
- char str[256];
- };
-
- extern unsigned char gds_fshift;
- extern unsigned gds_wrkoff;
- extern unsigned gds_wrkseg;
-
- int g_string(int x,int y,unsigned char cont,char far *strings)
- {
- union REGS reg;
- struct SREGS seg;
- struct {
- unsigned len;
- struct STRING strs;
- } gdata;
- int i,l;
-
- l=far_strlen(strings);
- if((l==0)||(l>255))
- return -1;
- segread(&seg);
- reg.h.ah=gds_fshift+0x0f;
- reg.x.di=(unsigned)&gdata;
- seg.ds=seg.ss;
- gdata.len=10+l;
- gdata.strs.type=0x409f;
- gdata.strs.dlen=6+l;
- gdata.strs.sx=x;
- gdata.strs.sy=y;
- gdata.strs.flag=cont;
- gdata.strs.length=l;
- for(i=0;i<l;i++)
- gdata.strs.str[i]=*strings++;
- gdata.strs.str[i]=0;
- reg.x.bx=gds_wrkoff;
- seg.es=gds_wrkseg;
- int86x(0x92,®,®,&seg);
- return (int)reg.h.ah;
- }