diff --git a/hdr/lol.h b/hdr/lol.h index 721bb1b..5cacf31 100644 --- a/hdr/lol.h +++ b/hdr/lol.h @@ -73,12 +73,19 @@ struct lol { unsigned short min_pars; /* 64 minimum para req by program execed */ unsigned short uppermem_root;/* 66 Start of umb chain (usually 9fff) */ unsigned short last_para; /* 68 para: start scanning during memalloc */ + /* ANY ITEM BELOW THIS POINT MAY CHANGE */ /* FreeDOS specific entries */ unsigned char os_setver_minor;/*6a settable minor DOS version */ unsigned char os_setver_major;/*6b settable major DOS version */ unsigned char os_minor; /* 6c minor DOS version */ unsigned char os_major; /* 6d major DOS version */ - unsigned char rev_number; /* 6e minor DOS version */ + unsigned char rev_number; /* 6e DOS revision#, only 3 bits */ unsigned char version_flags; /* 6f DOS version flags */ char *os_release; /* 70 near pointer to os_release string */ +#ifdef WIN31SUPPORT + unsigned short winInstanced; /* WinInit called */ + unsigned long winStartupInfo[4]; + unsigned short instanceTable[5]; +#endif }; + diff --git a/hdr/win.h b/hdr/win.h new file mode 100644 index 0000000..fdf8483 --- /dev/null +++ b/hdr/win.h @@ -0,0 +1,39 @@ +#ifndef __WINSUPPORT_H +#define __WINSUPPORT_H +#ifdef WIN31SUPPORT /* defined to enable kernel hooks for win3.x compatibility */ + + +extern UWORD winInstanced; /* internal flag marking if Windows is active */ + +/* contains information about data that must be kept for each active DOS + instance, ie data that can NOT be shared between multiple VMs. + */ +struct WinStartupInfo +{ + UWORD winver; /* this structure version, matches Windows version */ + ULONG next; /* far pointer to next WinStartupInfo structure or NULL */ + ULONG vddName; /* far pointer to ASCIIZ pathname of virtual device driver */ + ULONG vddInfo; /* far pointer to vdd reference data or NULL if vddName=NULL */ + ULONG instanceTable; /* far pointer to array of instance data */ + ULONG optInstanceTable; /* used only if winver set to 0x400 (w95)*/ +}; +extern struct WinStartupInfo winStartupInfo; + +/* contains a list of offsets relative to DOS data segment of + various internal variables. + */ +struct WinPatchTable +{ + UWORD dosver; + UWORD OffTempDS; + UWORD OffTempBX; + UWORD OffInDOS; + UWORD OffMachineID; + UWORD OffCritSectPatches; + UWORD OffLastMCBSeg; /* used by Win 3.1 if DOS version 5 or higher */ +}; +extern struct WinPatchTable winPatchTable; + + +#endif /* WIN31SUPPORT */ +#endif /* __WINSUPPORT_H */