• Please review our updated Terms and Rules here

Need help to build DOS/32 DOS Extender from sources

The source files contain C and H files as well so Watcom is needed as well. The ASM files look to be MASM or TASM style. I think the various directories contain each a tool which needs to be assembled or compiled.

If you only want DOS/32, go to the src\dos32a directory and assemble dos32a.asm. This file includes all other needed ASM files.

I hope this helps a bit.
 
Yes, I only need the DOS32A from all the tools there to be built and it has no C at all in it, only asm. C was probably used in other supporting utilities that are of no interest to me to be modified. Before opening this topic I had tried to assemble dos32a.asm with TASM 5 and the result was many errors due to inability to find dependencies (most likely) ;( During my teenage years I used a lot TASM 3.X for my own programs and the BC 3.1 IDE as well. But assembling this dos32a seems to be very difficult to me nowadays.
 
The source files contain C and H files as well so Watcom is needed as well. The ASM files look to be MASM or TASM style. I think the various directories contain each a tool which needs to be assembled or compiled.

Definitely not MASM--various pseudo-ops aren't in MASM. They are in TASM, however. Note that you need to use the appropriate "include" files found in the "text" directory.
 
They're all the same error. The symbol "EXEC_TYPE" needs to be defined on the TASM command line. Possible values seem to be zero and nonzero. So, add /dEXEC_TYPE=0 to your TASM command line. (cf. Page 11 on the TASM 5.0 manual here )
 
That worked, thank you! You are great as usual Chuck(G)! Now the linker complains about definitions from kernel.asm
 
Last edited:
Easy--note that this is a multi-module executable. So you need to assemble each of the modules dos32a, kernel, loader, loadc, loadpe to .obj files and then, using tlink, link them all together.
 
Well, kernel fails to assemble the way dos32a did...
 
Last edited:
"SELZERO" and "selzero" in this situation are two different symbols. By default, TASM treats uppercase = lowercase; that is, the BASIC way, not the C way. Try adding /ml to the TASM command line to enforce case sensitivity.
 
Thanks, that came to my mind too and solved the problem.
 
Last edited:
Looks like loadpe etc. are included in one of the other modules: a grep on "include" on dos32a.asm yields:

Code:
include TEXT\include.asm
include TEXT\oemtitle.asm
include TEXT\CLIENT\config.asm
include TEXT\CLIENT\strings.asm
include TEXT\CLIENT\misc.asm
include TEXT\CLIENT\debug.asm
include TEXT\CLIENT\int10h.asm
include TEXT\CLIENT\int21h.asm
include TEXT\CLIENT\int33h.asm
include loader.asm
include loadlc.asm
include loadpe.asm
include TEXT\CLIENT\data.asm
include TEXT\testbeta.asm

So those modules (loader, loadc, loadpe) aren't assembled separately. So it's just dos32a.asm and kernel.asm that need to be assembled and linked.
 
Thank you Chuck(G)! This worked like a charm! You gave me a perfect and very needed impulse. I am focusing now on my idea(s). Will report back when positive results achieved or if I need further help.
 
tasm /ml /m5 /DEXEC_TYPE=0 dos32a.asm
tasm /ml /m5 /DEXEC_TYPE=0 kernel.asm
tlink /3 dos32a kernel,dos32a.exe

should be no errors, no warnings.
 
I thought he was still having issues. atleast correct build instructions are posted now and nobody else need to try and figure it out.
 
Back
Top