]> wirehaze git hosting - MS-DOS.git/blob - v4.0/src/INC/SYSVAR.C

wirehaze git hosting

MZ is back!
[MS-DOS.git] / v4.0 / src / INC / SYSVAR.C
1 /* return the system variables in sysVars */
2
3 #include "sysvar.h"
4 #include <dos.h>
5 #include "jointype.h"
6
7 GetVars(pSVars)
8 struct sysVarsType *pSVars ;
9 {
10 struct sysVarsType far *vptr ;
11 int i ;
12
13 union REGS ir ;
14 register union REGS *iregs = &ir ; /* Used for DOS calls */
15 struct SREGS syssegs ;
16
17 iregs->h.ah = GETVARS ; /* Function 0x52 */
18 intdosx(iregs, iregs, &syssegs) ;
19
20 *(long *)(&vptr) = (((long)syssegs.es) << 16)+(iregs->x.bx & 0xffffL) ;
21
22 for (i=0 ; i <= sizeof(*pSVars) ; i++)
23 *((char *)pSVars+i) = *((char far *)vptr+i) ;
24
25 }
26
27
28
29
30 PutVars(pSVars)
31 struct sysVarsType *pSVars ;
32 {
33 struct sysVarsType far *vptr ;
34 int i ;
35
36 union REGS ir ;
37 register union REGS *iregs = &ir ; /* Used for DOS calls */
38 struct SREGS syssegs ;
39
40 iregs->h.ah = GETVARS ; /* Function 0x52 */
41 intdosx(iregs, iregs, &syssegs) ;
42
43 *(long *)(&vptr) = (((long)syssegs.es) << 16)+(iregs->x.bx & 0xffffL) ;
44
45 for (i=0 ; i <= sizeof(*pSVars) ; i++)
46 *((char far *)vptr+i) = *((char *)pSVars+i) ;
47
48 }
49 \1a