home *** CD-ROM | disk | FTP | other *** search
- #ifndef _DOS_H_
- #define _DOS_H_
-
- union REGS {
- struct {
- unsigned long ax;
- unsigned long bx;
- unsigned long cx;
- unsigned long dx;
- unsigned long si;
- unsigned long di;
- unsigned long cflag;
- unsigned long flags;
- } x;
- struct {
- unsigned char al;
- unsigned char ah;
- unsigned short upper_ax;
- unsigned char bl;
- unsigned char bh;
- unsigned short upper_bx;
- unsigned char cl;
- unsigned char ch;
- unsigned short upper_cx;
- unsigned char dl;
- unsigned char dh;
- unsigned short upper_dx;
- } h;
- };
-
- struct SREGS {
- unsigned short cs;
- unsigned short ds;
- unsigned short es;
- unsigned short fs;
- unsigned short gs;
- unsigned short ss;
- };
-
- struct ftime {
- unsigned ft_tsec:5; /* 0-29, double to get real seconds */
- unsigned ft_min:6; /* 0-59 */
- unsigned ft_hour:5; /* 0-23 */
- unsigned ft_day:5; /* 1-31 */
- unsigned ft_month:4; /* 1-12 */
- unsigned ft_year:7; /* since 1980 */
- };
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- int bdos(int func, unsigned dx, unsigned al);
- int bdosptr(int func, void *dx, unsigned al);
- int int86(int ivec, union REGS *in, union REGS *out);
- int int86x(int ivec, union REGS *in, union REGS *out, struct SREGS *seg);
- int intdos(union REGS *in, union REGS *out);
- int intdosx(union REGS *in, union REGS *out, struct SREGS *seg);
-
- int getftime(int handle, struct ftime *ftimep);
- int setftime(int handle, struct ftime *ftimep);
-
- int getcbrk(void);
- int setcbrk(int new_value);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif
-