retry, revert FreeDOS specific variables back to original locations

git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/branches/UNSTABLE@1109 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
Kenneth J Davis 2005-01-31 20:48:32 +00:00
parent f9f2461218
commit 304aaa1428
3 changed files with 21 additions and 22 deletions

View File

@ -75,20 +75,21 @@ struct lol {
unsigned short uppermem_root;/* 66 Start of umb chain (usually 9fff) */ unsigned short uppermem_root;/* 66 Start of umb chain (usually 9fff) */
unsigned short last_para; /* 68 para: start scanning during memalloc */ unsigned short last_para; /* 68 para: start scanning during memalloc */
/* FreeDOS specific entries */ /* FreeDOS specific entries */
unsigned char os_minor; /* 6a minor DOS version */ unsigned char os_setver_minor;/*6a settable minor DOS version */
unsigned char os_major; /* 6b major DOS version */ unsigned char os_setver_major;/*6b settable major DOS version */
unsigned char rev_number; /* 6c minor DOS version */ unsigned char os_minor; /* 6c minor DOS version */
unsigned char version_flags; /* 6d DOS version flags */ unsigned char os_major; /* 6d major DOS version */
struct f_node FAR *f_nodes; /* 6e pointer to the array */ unsigned char rev_number; /* 6e minor DOS version */
unsigned short f_nodes_cnt; /* 72 number of allocated f_nodes */ unsigned char version_flags; /* 6f DOS version flags */
char *os_release; /* 74 near pointer to os_release string */ struct f_node FAR *f_nodes; /* 70 pointer to the array */
unsigned short f_nodes_cnt; /* 74 number of allocated f_nodes */
char *os_release; /* 76 near pointer to os_release string */
/* ANY ITEM BELOW THIS POINT MAY CHANGE */
#ifdef WIN31SUPPORT #ifdef WIN31SUPPORT
unsigned short winInstanced; /* WinInit called */ unsigned short winInstanced; /* WinInit called */
unsigned long winStartupInfo[4]; unsigned long winStartupInfo[4];
unsigned short instanceTable[5]; unsigned short instanceTable[5];
#endif #endif
unsigned char os_setver_minor;/*76/96 settable minor DOS version */
unsigned char os_setver_major;/*77/97 settable major DOS version */
}; };
#endif /* __LOL_H */ #endif /* __LOL_H */

View File

@ -23,7 +23,7 @@ extern struct WinStartupInfo winStartupInfo;
*/ */
struct WinPatchTable struct WinPatchTable
{ {
UWORD dosver; /* Note: for FreeDOS this overlaps with os_setver version */ UWORD dosver;
UWORD OffTempDS; UWORD OffTempDS;
UWORD OffTempBX; UWORD OffTempBX;
UWORD OffInDOS; UWORD OffInDOS;

View File

@ -351,6 +351,10 @@ _uppermem_root dw 0ffffh ; 0066 dmd_upper_root (usually 9fff)
_last_para dw 0 ; 0068 para of last mem search _last_para dw 0 ; 0068 para of last mem search
SysVarEnd: SysVarEnd:
;; FreeDOS specific entries ;; FreeDOS specific entries
global _os_setver_minor
_os_setver_minor db 0
global _os_setver_major
_os_setver_major db 5
global _os_minor global _os_minor
_os_minor db 0 _os_minor db 0
global _os_major global _os_major
@ -367,6 +371,9 @@ _f_nodes_cnt dw 0
extern _os_release extern _os_release
os_release dw _os_release os_release dw _os_release
;; any FreeDOS variable below this point are subject to relocation.
;; variables above should not change (unless necessary) as
;; programs may make use of them (even though they should NOT!)
%IFDEF WIN31SUPPORT %IFDEF WIN31SUPPORT
global _winStartupInfo, _winInstanced global _winStartupInfo, _winInstanced
_winInstanced dw 0 ; set to 1 on WinInit broadcast, 0 on WinExit broadcast _winInstanced dw 0 ; set to 1 on WinInit broadcast, 0 on WinExit broadcast
@ -381,19 +388,11 @@ instance_table: ; should include stacks, Win may auto determine SDA region
dw 0, seg _DATASTART ; [?linear?] address of region's base dw 0, seg _DATASTART ; [?linear?] address of region's base
dw markEndInstanceData wrt seg _DATASTART ; size in bytes dw markEndInstanceData wrt seg _DATASTART ; size in bytes
dd 0 ; 0 marks end of table dd 0 ; 0 marks end of table
dw 0 patch_bytes: ; mark end of array of offsets of critical section bytes to patch
dw 0 ; and 0 length for end of instance_table entry
global _winPatchTable global _winPatchTable
_winPatchTable: ; returns offsets to various internal variables _winPatchTable: ; returns offsets to various internal variables
%ENDIF ; WIN31SUPPORT dw 0x0006 ; DOS version, major# in low byte, eg. 6.00
; os version reported, patch table includes DOS version
; so we include it here to save duplicate data, but even
; without WIN31SUPPORT enabled these variables are used.
; The setver variants are used so we report to Windows
; editable (fake) DOS version user wanted.
global _os_setver_minor, _os_setver_major
_os_setver_minor db 0
_os_setver_major db 0
%IFDEF WIN31SUPPORT
dw save_DS ; where DS stored during int21h dispatch dw save_DS ; where DS stored during int21h dispatch
dw save_BX ; where BX stored during int21h dispatch dw save_BX ; where BX stored during int21h dispatch
dw _InDOS ; offset of InDOS flag dw _InDOS ; offset of InDOS flag
@ -407,7 +406,6 @@ _os_setver_major db 0
dw _uppermem_root ; seg of last arena header in conv memory dw _uppermem_root ; seg of last arena header in conv memory
; this matches MS DOS's location, but ; this matches MS DOS's location, but
; do we have the same meaning? ; do we have the same meaning?
patch_bytes dw 0 ; mark end of array of offsets of critical section bytes to patch
%ENDIF ; WIN31SUPPORT %ENDIF ; WIN31SUPPORT
;; The first 5 sft entries appear to have to be at DS:00cc ;; The first 5 sft entries appear to have to be at DS:00cc