Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

DPMILD32 issues - spawn trouble: solution found ??? (DOSX)

posted by DOS386, 20.02.2008, 03:40

> I'm not sure if it is worth to analyze DPMILD32 too deeply. There will be
> a significant change in next hx: a simplified PE loader stub - LOADPE.BIN,
> size just 1.25 kB. This stub will make DPMILD32.EXE obsolete for 32bit DOS
> applications which don't need dll support ... which are virtually all.

Very good news :-) Also HDLDPE32.BIN with HDPMI32 built-in ?

This is very good for new DOS development, but won't really make DPMILD32 obsolete: for Win32 emulation, one still needs the DLL hell :-P Thus, it might be "worth" to analyze DPMILD32 "too deeply" nevertheless ... and the questions of spawning, NE usefulness, and protection from TripleFault'ing remain open ... plus the long mode :-|

> DPMILDR=8 prevents DPMILD32 from trying to load another application, but
> it doesn't tell HDPMI32 to supply separate address spaces for clients.

> a) must supply base relocations with your PE binary ("/FIXED:NO")

Not useful for existing Win32 stuff, since this pretty never has fixups :crying:

> or
> b) set HDPMI=32 to tell HDPMI to supply separate address spaces.

Works :clap:

[image]

In other forum you mentioned DPMILDR=8 only, so I missed the HDPMI=32 :-(

But still, it might be a good idea to have spawning working without those hacks ...

1. DPMILDR=8 : but why not suppress this hack, check for address space & fixups, and load into same if possible, and into a new one otherwise ?

2. HDPMI=32 : OK, making this the default would hog low memory :-( But I have an other idea:

In Win32 there is true multitaxing, you can have 1'000'000 tasks, every of them has its private throne at $400000, and the space gets switched on every task switch (?), and the DLL hell ... no idea how to share it then :confused:

Anyway, in DOS there is no true multitaxing, just spawning, A spawns B, thus A is suspended while B is running, when B has done, A resumes ... and the obvious (or did I miss something ?) solution arises: when A spawns B, just allocate a memory block with size of A at highest free / some high and free address, move A there, free the famous throne at $400000, load B into there, run B, and when B has done just move A back and resume it :clap:

---
This is a LOGITECH mouse driver, but some software expect here
the following string:*** This is Copyright 1983 Microsoft ***

 

Complete thread:

Back to the forum
Board view  Mix view
22049 Postings in 2034 Threads, 396 registered users, 237 users online (0 registered, 237 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum