Fred:
I've used sourcer for many years in other spleunking projects. Below
is some heavily snipped output from Windows Sourcer (this is the code
reached from the NE header of MSDOS.EXE):
;??????????????????????????????????????????????????????????????????????????
; MSDOS_10
;??????????????????????????????????????????????????????????????????????????
; Note: Subroutine does not return to instruction after call
1.0000 MSDOS_10 proc far
1.0000 mov si,364h
1.0003 loc_0003:: ; xref
1.0021
1.0003 ? xor ax,ax ; Zero
register
1.0005 push ds
1.0006 push si
1.0007 push ax
1.0008 push ax
1.0009 push ax
1.000A call far ptr GetMessage
1.000F or ax,ax ; Zero ?
1.0011 jz short loc_0004 ; Jump if
zero
1.0013 push ds
1.0014 push si
1.0015 call far ptr TranslateMessage
1.001A push ds
1.001B push si
1.001C call far ptr DispatchMessage
1.0021 jmp short loc_0003 ; (0003)
1.0023 loc_0004:: ; xref
1.0011
1.0023 mov ah,4Ch
1.0025 int 21h ; DOS
Services ah=function 4Ch
; terminate
with al=return code
MSDOS_10 endp
;??????????????????????????????????????????????????????????????????????????
; SESSIONWNDPROC
;??????????????????????????????????????????????????????????????????????????
1.0027 SESSIONWNDPROC proc far
PARAMETER_1 = 6 ; bp+6
PARAMETER_2 = 8 ; bp+8
PARAMETER_3 = 0Ah ; bp+0Ah
PARAMETER_4 = 0Ch ; bp+0Ch
PARAMETER_5 = 0Eh ; bp+0Eh
LOCAL_2 = -4 ; bp+0FFFCh
LOCAL_1 = -2 ; bp+0FFFEh
{snippage}
You can see that the first two routines contained in MSDOS are
exported differently. The first one is MSDOS_10, the second is
SESSIONWNDPROC. If you look at the NE header, MSDOS.EXE only exports window
procedures by name. Everything else is by ordinal. MSDOS_10 above is clearly
the WinMain (the main message loop--notice the calls to GetMessage,
TranslateMessage and DispatchMessage). SESSIONWINDPROC is the main windows
procedure.
The MSDOSD.EXE file really only includes the equivalent code for
FORMAT and SYS.
I just thought that the Win104 SDK would have some helpful
information in it that may aid in renaming these MSDOS_XX calls.
Rich
==========================
Richard A. Cini, Jr.
Congress Financial Corporation
1133 Avenue of the Americas
30th Floor
New York, NY 10036
(212) 545-4402
(212) 840-6259 (facsimile)
-----Original Message-----
From: Fred Cisin (XenoSoft) [mailto:cisin@xenosoft.com]
Sent: Thursday, June 21, 2001 9:38 PM
To: 'ClassCompList'
Subject: Re: SDK for Windows 1.04??
On Wed, 20 Jun 2001, Cini, Richard wrote:
Hello, all:
I was paging through some Sourcer listings that I have of the
Windows 1.04 code and noticed that most of the functions in the DOS Shell
code (MSDOS.exe and MSDOSD.exe) are referenced by ordinal number and not
function name ("MSDOS_23" versus "DoSomeThing"). So, I was wondering
if
anyone had a copy or knows the existence of SDK documentation for Windows
1.
"Sourcer listings" are disassemblies.
You don't want, or need Win SDK for THIS (plenty of use for it for other
stuff!)
What you need is a copy of the DOS Technical Reference, or ANY of the
after-market programmer's references, that will provide you a list of the
MS-DOS (aka INT 21h) functions, so that you can substitute
"DoSomething" in lieu of function "23".
Note: the DOS Technical Reference consists of what used to be the
appendices of the DOS manual in version 2.00 and below. In version 2.10,
they did an appendectomy.
BTW, Norton refers to the functions by DECIMAL numbers, whereas the entire
civilized world always refers to them in hexadecimal. For example,
function 30h of INT 21h reports DOS version, (as opposed to function 48 of
int 33 in Norton-speak)
--
Grumpy Ol' Fred cisin(a)xenosoft.com