home *** CD-ROM | disk | FTP | other *** search
- /***
- *dos.h - Definitionen für MS-DOS-Schnittstellenroutinen
- *
- * Copyright (c) 1985-1990, Microsoft Corporation. Alle Rechte vorbehalten.
- *
- * Zweck:
- * Definiert die Strukturen und Unions, die für direkte MS-DOS-Schnitt-
- * stellenroutinen verwendet werden; dazu gehören Makros zum Zugriff auf
- * Segment- und Offsetwerte von far-Zeigern, damit sie innerhalb der
- * Routinen verwendet werden können und schließlich Funktionsprototypen
- * für direkte DOS-Schnittstellenfunktionen.
- *
- ***/
-
-
- #ifndef _REGS_DEFINED
-
- /* Wortregister */
-
- struct WORDREGS {
- unsigned int ax;
- unsigned int bx;
- unsigned int cx;
- unsigned int dx;
- unsigned int si;
- unsigned int di;
- unsigned int cflag;
- };
-
-
- /* Byteregister */
-
- struct BYTEREGS {
- unsigned char al, ah;
- unsigned char bl, bh;
- unsigned char cl, ch;
- unsigned char dl, dh;
- };
-
-
- /* Mehrzweck Registerverbund -
- * überlagert die entsprechenden Wort- und Byteregister.
- */
-
- union REGS {
- struct WORDREGS x;
- struct BYTEREGS h;
- };
-
-
- /* Segmentregister */
-
- struct SREGS {
- unsigned int es;
- unsigned int cs;
- unsigned int ss;
- unsigned int ds;
- };
-
- #define _REGS_DEFINED
-
- #endif
-
-
- /* dosexterror-Struktur */
-
- #ifndef _DOSERROR_DEFINED
-
- struct DOSERROR {
- int exterror;
- char class;
- char action;
- char locus;
- };
-
- #define _DOSERROR_DEFINED
-
- #endif
-
-
- /* _dos_findfirst-Struktur */
-
- #ifndef _FIND_T_DEFINED
-
- struct find_t {
- char reserved[21];
- char attrib;
- unsigned wr_time;
- unsigned wr_date;
- long size;
- char name[13];
- };
-
- #define _FIND_T_DEFINED
-
- #endif
-
-
- /* die Strukturen _dos_getdate/_dossetdate und _dos_gettime/_dos_settime */
-
- #ifndef _DATETIME_T_DEFINED
-
- struct dosdate_t {
- unsigned char day; /* 1-31 */
- unsigned char month; /* 1-12 */
- unsigned int year; /* 1980-2099 */
- unsigned char dayofweek; /* 0-6, 0=Sonntag */
- };
-
- struct dostime_t {
- unsigned char hour; /* 0-23 */
- unsigned char minute; /* 0-59 */
- unsigned char second; /* 0-59 */
- unsigned char hsecond; /* 0-99 */
- };
-
- #define _DATETIME_T_DEFINED
-
- #endif
-
-
- /* die Struktur _dos_getdiskfree */
-
- #ifndef _DISKFREE_T_DEFINED
-
- struct diskfree_t {
- unsigned total_clusters;
- unsigned avail_clusters;
- unsigned sectors_per_cluster;
- unsigned bytes_per_sector;
- };
-
- #define _DISKFREE_T_DEFINED
-
- #endif
-
-
- /* manifeste Konstanten für Ergebnisparameter _hardresume */
-
- #define _HARDERR_IGNORE 0 /* Fehler ignorieren */
- #define _HARDERR_RETRY 1 /* Vorgang nochmals versuchen */
- #define _HARDERR_ABORT 2 /* Programm mit Ausgabe von */
- /* Unterbrechung 23h abbrechen */
- #define _HARDERR_FAIL 3 /* Systemaufruf fehlschlagen lassen */
- /* _HARDERR_FAIL ist mit DOS 2.x */
- /* nicht verwendbar */
-
- /* Dateiattribut-Konstanten */
-
- #define _A_NORMAL 0x00 /* Normale Datei - Ohne Lese- */
- /* Schreibeinschränkungen */
- #define _A_RDONLY 0x01 /* Nur-Lese-Datei */
- #define _A_HIDDEN 0x02 /* Verborgene Datei */
- #define _A_SYSTEM 0x04 /* System-Datei */
- #define _A_VOLID 0x08 /* Datei für Datenträger-ID */
- #define _A_SUBDIR 0x10 /* Unterverzeichnis */
- #define _A_ARCH 0x20 /* Archiv-Datei */
-
- /* Makros, um MS C "far"-Zeiger in ihre Segment- und
- * Offsetkomponenten zu zerlegen
- */
-
- #define FP_SEG(fp) (*((unsigned _far *)&(fp)+1))
- #define FP_OFF(fp) (*((unsigned _far *)&(fp)))
-
-
- /* Deklarationen für externe Variable */
-
- extern unsigned int _near _cdecl _osversion;
-
-
- /* Funktionsprototypen */
-
- #ifndef _MT
- int _cdecl bdos(int, unsigned int, unsigned int);
- void _cdecl _chain_intr(void (_cdecl _interrupt _far *)());
- void _cdecl _disable(void);
- unsigned _cdecl _dos_allocmem(unsigned, unsigned *);
- unsigned _cdecl _dos_close(int);
- unsigned _cdecl _dos_creat(const char *, unsigned, int *);
- unsigned _cdecl _dos_creatnew(const char *, unsigned, int *);
- unsigned _cdecl _dos_findfirst(const char *, unsigned, struct find_t *);
- unsigned _cdecl _dos_findnext(struct find_t *);
- unsigned _cdecl _dos_freemem(unsigned);
- void _cdecl _dos_getdate(struct dosdate_t *);
- void _cdecl _dos_getdrive(unsigned *);
- unsigned _cdecl _dos_getdiskfree(unsigned, struct diskfree_t *);
- unsigned _cdecl _dos_getfileattr(const char *, unsigned *);
- unsigned _cdecl _dos_getftime(int, unsigned *, unsigned *);
- void _cdecl _dos_gettime(struct dostime_t *);
- void (_cdecl _interrupt _far * _cdecl _dos_getvect(unsigned))();
- void _cdecl _dos_keep(unsigned, unsigned);
- unsigned _cdecl _dos_open(const char *, unsigned, int *);
- unsigned _cdecl _dos_read(int, void _far *, unsigned, unsigned *);
- unsigned _cdecl _dos_setblock(unsigned, unsigned, unsigned *);
- unsigned _cdecl _dos_setdate(struct dosdate_t *);
- void _cdecl _dos_setdrive(unsigned, unsigned *);
- unsigned _cdecl _dos_setfileattr(const char *, unsigned);
- unsigned _cdecl _dos_setftime(int, unsigned, unsigned);
- unsigned _cdecl _dos_settime(struct dostime_t *);
- void _cdecl _dos_setvect(unsigned, void (_cdecl _interrupt _far *)());
- unsigned _cdecl _dos_write(int, const void _far *, unsigned, unsigned *);
- int _cdecl dosexterr(struct DOSERROR *);
- void _cdecl _enable(void);
- void _cdecl _harderr(void (_far *)());
- void _cdecl _hardresume(int);
- void _cdecl _hardretn(int);
- int _cdecl intdos(union REGS *, union REGS *);
- int _cdecl intdosx(union REGS *, union REGS *, struct SREGS *);
- int _cdecl int86(int, union REGS *, union REGS *);
- int _cdecl int86x(int, union REGS *, union REGS *, struct SREGS *);
- #endif /* _MT */
-
- void _cdecl segread(struct SREGS *);
-