Anhang C - Strukturen und Laufzeitvariablen
struct bioshd_t {
int hdnum; /* Nummer der Platte (0-x) */
int head; /* Nummer des Kopfes */
int cyl; /* Zylinder */
int sector; /* Sektor */
int count; /* Anzahl Sektoren */
void *buf; /* Zeiger auf Sektorpuffer im DOS-Speicher */
};
Verwendung in :
struct diskfree_t {
unsigned short total_clusters; /* Anzahl Cluster gesamt */
unsigned short avail_clusters; /* freie Cluster */
unsigned short sectors_per_cluster; /* Sektoren pro Cluster */
unsigned short bytes_per_sector; /* Bytes pro Sektor */
};
Verwendung in :
struct dosdate_t {
unsigned char day; /* Tag (1-31) */
unsigned char month; /* Monat (1-12) */
unsigned year; /* Jahr 0=1980, 1=1981, ... */
unsigned char dayofweek; /* Wochentag (1-7) */
};
Verwendung in :
struct dostime_t {
unsigned char hour; /* Stunde (0-23) */
unsigned char minute; /* Minute (0-59) */
unsigned char second; /* Sekunde (0-59) */
unsigned char hsecond; /* Hundertstel-Sekunde */
};
Verwendung in :
struct find_t {
char reserved[21]; /* reserviert für DOS */
char attrib; /* Attribute der gefundenen Datei */
unsigned short time; /* Zeit der Datei */
unsigned short date; /* Datum der Datei */
long size; /* Grösse der Datei in Bytes */
char name[13]; /* Name der Datei */
};
Verwendung in :
union REGS {
struct WORDREGS x; /* 16Bit-Register */
struct BYTEREGS h; /* 8Bit-Register */
};
Verwendung in :
struct WORDREGS {
unsigned short ax; /* AX */
unsigned short bx; /* BX */
unsigned short cx; /* CX */
unsigned short dx; /* DX */
unsigned short si; /* SI */
unsigned short di; /* DI */
unsigned short cflag; /* Carry-Flag */
unsigned short flags; /* Flag-Register */
};
struct BYTEREGS {
unsigned char al, ah; /* AL, AH */
unsigned char bl, bh; /* BL, BH */
unsigned char cl, ch; /* CL, CH */
unsigned char dl, dh; /* DL, DH */
};
struct SEGREGS {
unsigned short es; /* ES */
unsigned short cs; /* CS */
unsigned short ss; /* SS */
unsigned short ds; /* DS */
};
Verwendung in :
struct dpmimem_t {
void *address; /* Zeiger auf Speicherblock */
unsigned handle; /* Handle des Speicherblocks */
};
Verwendung in :
struct dpmimeminfo_t {
unsigned _largestblockfree;
unsigned _maxunlockedpages;
unsigned _maxlockedpages;
unsigned _linearaddresssize;
unsigned _unlockedpages;
unsigned _freepages;
unsigned _physicalpages;
unsigned _freelinearaddressspace;
unsigned _pagefilesize;
char _reserved[12];
};
Verwendung in :
struct dpmiproc_t {
int _pmcs; /* Code-Segment einer ProtectedMode-Prozedur */
unsigned _pmeip; /* Offset einer ProtectedMode-Prozedur */
int _rmcs; /* Code-Segment einer RealMode-Prozedur */
int _rmip; /* Offset einer RealMode-Prozedur */
};
Verwendung in :
struct dpmiver_t {
unsigned char _major, _minor; /* Haupt- und Unterversion des Hosts */
unsigned short _flags; /* Eigenschaften des Hosts */
unsigned char _cpu; /* Prozessor-Typ */
unsigned char _picmaster, _picslave; /* PIC-Werte für Master und Slave */
};
Verwendung in :
typedef union {
struct DREGS e; /* 32Bit-Register */
struct WREGS x; /* 16Bit-Register */
struct BREGS h; /* 8Bit-Register */
} REGS32;
Verwendung in :
struct DREGS {
DWORD _edi; /* EDI */
DWORD _esi; /* ESI */
DWORD _ebp; /* EBP */
DWORD dum15; /* --- */
DWORD _ebx; /* EBX */
DWORD _edx; /* EDX */
DWORD _ecx; /* ECX */
DWORD _eax; /* EAX */
WORD dum16; /* Flag-Register */
WORD dum17; /* ES */
WORD dum18; /* DS */
WORD dum19; /* FS */
WORD dum20; /* GS */
DWORD _csip; /* CS:IP */
DWORD _sssp; /* SS:SP */
};
struct WREGS {
WORD _di,dum1; /* DI */
WORD _si,dum2; /* SI */
WORD _bp,dum3; /* BP */
WORD dum21,dum22; /* --- */
WORD _bx,dum4; /* BX */
WORD _dx,dum5; /* DX */
WORD _cx,dum6; /* CX */
WORD _ax,dum7; /* AX */
WORD _flags; /* Flag-Register */
WORD _es; /* ES */
WORD _ds; /* DS */
WORD _fs; /* FS */
WORD _gs; /* GS */
WORD _ip; /* IP */
WORD _cs; /* CS */
WORD _sp; /* SP */
WORD _ss; /* SS */
};
struct BREGS {
BYTE dum8[16]; /* EDI,ESI,EBP,--- */
BYTE _bl,_bh,dum12[2]; /* BL, BH */
BYTE _dl,_dh,dum11[2]; /* DL, DH */
BYTE _cl,_ch,dum13[2]; /* CL, CH */
BYTE _al,_ah,dum14[2]; /* AL, AH */
};
struct sysvars_t {
int _cpu; /* Prozessortyp : (3/4/5) */
int _fpu; /* Coprozessor vorhanden (1) oder nicht (0) */
int _dos; /* MS-DOS-Version */
int _dpmi; /* DPMI-Version */
void *_ebase; /* Basisadresse Environment */
void *_pbase; /* Basisadresse PSP */
};
Verwendung in :
struct execerr_t {
int code; /* negativer Fehlercode */
char module[16]; /* Modul, bei dem Fehler auftrat */
/* erweiterte Info bei code -6 : */
int symtype; /* Symboltyp, 0:Name 1:Ordinal */
union {
char symbol[256]; /* Symbolname falls symtype 0 */
int ordinal; /* Ordinal falls symtype 1 */
} sym;
char dllmodule[16]; /* Importmodul ohne Symbol */
};
Verwendung in :
typedef struct {
int quot; /* Quotient (Divisionsergebnis) */
int rem; /* Divisionsrest */
} div_t;
Verwendung in :
typedef struct {
long int quot; /* Quotient */
long int rem; /* Divisionsrest */
} ldiv_t;
Verwendung in :
struct tm {
int tm_sec; /* Sekunden (0-59) */
int tm_min; /* Minuten (0-59) */
int tm_hour; /* Stunden (0-23) */
int tm_mday; /* Tag des Monats (1-31) */
int tm_mon; /* Monat (0-11) */
int tm_year; /* Jahr ab 1900 */
int tm_wday; /* Wochentag (0=Sonntag, 1=Montag ... 6=Samstag) */
int tm_yday; /* Tag des Jahres (0-365) */
int tm_isdst; /* Flag für Sommerzeitkonvertierung */
};
Verwendung in :