re: Re: Success running Descent -> snippets for 32bit insiders
Eric Auer <[email protected]> Sat, 9 Nov 2002 04:35:31 +0100 (MET)
| Newsgroups | gmane.os.freedos.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Bart, Descent does not use DOS4GW.EXE - DOS4GW is part of the big
DCNTSHR.EXE file ("DesCeNTSHaReware")...
Strings tells me that there are references to:
DOS/4G Copyright (C) Rational Systems, Inc. 1987 - 1993
DOS16M.386
4.45
DOS/16M
DOS/16M Protected Mode Run-Time Version
RUN.COM
LOADER3.EXE
.EXP
\VM.EXP
\VMD.EXP
DOS16M=
SWMODE=
INBOARD
FAST
VCPI
DPMI
PS/2
NOVM
TSTK
DOS16M=
\VM.
\VMD.
QEXTXXX0
VDISK
MICROSOFT EMM CTRL
ZCOMP
ERR16M=
.ETX
RMSG
ESSAGE
ONTINUE
NDMSG
WICB
PWX_
...
cannot run under OS/2
system software does not follow VCPI or DPMI specifications
you must specify an extended memory range (SET DOS16M= )
computer must be AT- or PS/2- compatible
unsupported DOS16M switchmode choice
requires DOS 3.0 or later
...
cannot initialize VCPI
8042 timeout
program must be built -AUTO for DPMI
protected mode already in use in this DPMI virtual machine
DPMI host error (possibly insufficient memory)
DPMI host error (need 64K XMS)
DPMI host error (cannot lock stack)
The DOS16M.386 virtual device driver was never loaded
Unable to reserve selectors for DOS16M.386 Windows driver
Cannot use extended memory: HIMEM.SYS not version 2
An obsolete version of DOS16M.386 was loaded
...
MINMEM
MAXMEM
VIRTUALSIZE
SWAPNAME
SWAPINC
SWAPMIN
DELETESWAP
NODELETESWAP
VERBOSE
TRACE
INFO
DOS4GVM
...
DOS4GLOADER
(probably an environment variable???)
Searching LIBPATH32=%s for %s%s
Searching LIBPATH=%s for %s%s
Searching COMSPEC=%s for %s%s
...
R6000
- stack overflow
R6003
- integer divide by 0
...
4GWPRO.EXP
...
RATIONAL DOS/4G
...
requires DOS/16M
...
DOS/16M
!.EXE has not been processed by MAKEPM
...
DOS/4GW Professional Protected Mode Run-time
Copyright (c) Rational Systems, Inc. 1990-1994
May 19 1994 14:44:26
1.97
...
DOS/4GW Professional
4GWPRO
can't lock extender kernel in memory
DOS4G
verbose
fix34
crashp
autolock
quiet
...
syntax is 4GWPRO <executable.xxx>
...
EXP_LOADER
RSIHELP
WSAMPRSI
...
%s is not a WATCOM program
...
dummy fcb
Installing 16-bit handler for %X %X:%X autolock code %X and stack %X
$Forcing 16-bit gate for int %02X
Can't force gate type for int %02X!
TSR function not supported
...
os2env
LINEXE: Using OS/2 2.0 Startup Conditions...
LINEXE: Using DOS:Extended Startup Conditions...
LINEXE: Building Tiled LDT...
LINEXE: Built Tiled LDT...
...
DOS4GW.EXE
4GWPRO.EXE
DOS4G.EXE
DOS4GS.EXE
DOS16X.EXP
LOADER3
LOADER4
RUN.COM
PROCMAN
PROCM16
PX.EXE
...
WATCOM C Run-Time system code is provided on an "as is" basis and is (c) Copyrig
ht by WATCOM Systems Inc. 1988-1992. All rights reserved.
...
DOS4GPATH
PATH
dos4gw.exe
dos4g.exe
...
Not enough memory on exec
descent
alone in a dark wood.
Midway in our life's journey, I went astray
from the straight road and woke to find myself 000000000000
...
WATCOM C/C++32 Run-Time system. (c) Copyright by WATCOM International Corp. 198
8-1993. All rights reserved.
...
This program requires MS-DOS 5.0 or higher.
You are using MS-DOS %d.%d.
s-1You can use the -nodoscheck command line
oiswitch to override this check, but it
may have unpredictable results, namely
with DOS file error handling.
...
Version 1.4 4/11/95
SHAREWARE
...
I think this exe contains at least 2 or 3 other exe files, for example
you can still see the help screen of "loadpats" (a GUS patch loader), but
I also think that while still being visible in this "many in one" file,
you can no longer reach or configure most embedded files. If somebody is
experienced with the programming environment that the strings above "look
like", maybe he/she can tell me if/how I can set some environment variables
or place some ini files to change behaviour of the protected mode loader.
Neither dos32a.exe nor cwstub.exe are mentioned in the descent executable,
so I think it will not try to use them... Maybe it will try to use them
when I rename them to dos4gw.exe, BUT note that there is NOT dos4gw.exe in
my descent directory right now. Descent has dos4gw built into its big main
exe file.
By the way:
DESCENT COPYRIGHT (C) 1994 PARALLAX SOFTWARE CORPORATION
$Id: game.c 1.697 1995/01/03 11:25:44 allender Exp $
$Id: gauges.c 1.167 1995/01/03 13:03:57 allender Exp $
... other changes by adam, john, matt, yuann, mike, rob. Also several .pcx
filenames... a keyboard layout... Whatever. I think geometry and textures
are in .hog and .pig files (one each, yet another "many in one" format).
Although the readme.txt is 53k big, it does not tell much about memory :-(.
PS: When I run Descent in Dosemu, the external debugger tells me that Dosemu
is currently in DPMI-32 state ->
r32
EAX: 00000001 EBX: 00001208 ECX: 00000000 EDX: 00000000 VFLAGS(h): 00000216
ESI: 00000000 EDI: 00002000 EBP: 000014f8 DS: 08af ES: 181d FS: 0000 GS: 0000
CS: f800 IP: 480a SS: 181d SP: 0200
ldt
008f: 082e2438 0000ffff Data32 3 P
...
00cf: 00000000 bffff000 Data32 3 P WA
...
stop
system state: stopped in DPMI-32bit
EAX: 00000000 EBX: 0000002e ECX: 00000000 EDX: 00000000 eflags: 00010246
ESI: 00000000 EDI: 00000001 EBP: 00000008 DS: 022f ES: 022f FS: 0000 GS: 00af
CS:EIP= 0227:4093e0cd SS:ESP= 022f:40a9e4cc
...
ldt 217 6
0217: 40a9e4d8 0000ffff Data16 3 P WA
021f: 00011150 000003ff Data16 3 P W
0227: 00000000 bffff000 Code32 3 P RAa
022f: 00000000 bffff000 Data32 3 P WAa
0237: 40886000 00001364 Data16 3 P WA
023f: 40974000 0000055d Data32 3 P WAa
ldt 0a7 3
00a7: 00008af0 0000ffff Code16 3 P RA
00af: 00003f50 0000ffff Data16 3 P WA
00b7: 00008af0 0000ffff Data16 3 P WA
As we have probably all guessed, the DOS EXTENDER of Descent has allocated
flat code and data segments for the whole 4GB (Dosemu cheats and gives only
3GB) address space, plus a single 64k DOS compatible data segment which is
probably some buffer to share data with DOS, drivers and hardware.
You can also see that Descent does use an existing DPMI instead of its
builtin one here. But I doubt that it tried to search for a DOS4GW.EXE
file...
An strace of dosemu while starting Descent tells me: The .exe opens the
directory, dosemu opens /dev/zero several times, descent.hog and then
descent.cfg get loaded. Due to lots of SIGALRM spamming my log, descent runs very slowly in
a straced dosemu :-). After switching to graphics mode, the directory,
descent.hog and /dev/zero get opened several times. Descent does not try
to allocate a swapfile as this is probably done by its DPMI, and in dosemu,
this DPMI is not active at all. Dosemu provides it with enough memory
(according to top, my dosemu process is roughly 10 MB in size).
While playing, the size increases to roughly 13 MB. Snapshot:
system state: running in DPMI-32bit
EAX: 40e0403c EBX: 40e0403c ECX: 00000000 EDX: 40a9f268 eflags: 00000206
ESI: 40e0a762 EDI: 000a473e EBP: 00000001 DS: 022f ES: 022f FS: 0000 GS: 00af
CS:EIP= 0227:40e045bf SS:ESP= 022f:40a9e510
ldt 227 2
0227: 00000000 bffff000 Code32 3 P RAa
022f: 00000000 bffff000 Data32 3 P WAa
ldt 0af 1
00af: 00003f50 0000ffff Data16 3 P WA