Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

CM's questions, answered (Miscellaneous)

posted by Ninho(R) E-mail, 13.12.2009, 00:10

>> - Case DOS 8 ...
>> DOSCode = FFFFh. Seems to be hardwired, HiMem is built-into IO.SYS
>> and DOS is always loaded in the HMA (DOS=LOW has no effect).

> I'd still rather use the other method here. If it works just as well,
> handling MS-DOS 8 separately only adds unnecessary code.

Read again, Mister. The DOS7 method won't work in DOS 8, and vice versa. DOS8 CS=FFFF is hardcoded, it's how they built it. MS-DOS 8 is intended as a launcher for Windows ME, not as a compatible all purpose DOS.

> Also, the
> XMM might find the HMA to be unavailable somehow and the kernel would then
> probably revert to another location.

No, no, no! It's hard coded my friend. The necessary mechanics to load DOS elsewhere have been removed (which also makes DOS8 marginally faster than its predecessor). Do like me, just look at the code (if like me you don't own ME, you can make a DOS 8 diskette from Win XP, or download one from many sites. Just remove the junk and study the code!)

>(Might be due to unknown A20 switch
> method, or only 1 MiB of physical memory.

DOS couldn't load. In the better case they'll output a cryptic message (you must reinstall Windows ME ???), or, as we know Microsoft, might simply crash. I don't know which, care to check ? Use an emulator and somehow break the HMA...

Not that you could find a PC using a totally exotic A20 control method these days.
And ME wasn't supposed to run on a 386. I believe it's "Pentium or better" (Win 95 : 386+, 98: 486DX IIRW).

>> Amusingly Microsoft seems to ignore this fact and includes a copy of
>> HIMEM.SYS on their boot disquettes, which is just wasting space (unless
>> you want to give HIMEM extra parameters, you may delete it).

> Don't they load the internal driver unconditionally (before processing
> CONFIG.SYS), thus rendering the executable completely useless?

My bet is they load the standalone HIMEM, or another XMS driver, as specified in Config.sys. The reason there IS a himem.sys must be precisely to allow specifying special parameters. In the majority of cases nowadays, the built-in HIMEM with default params and A20 method autodetection should work.

Not that I am a regular user of Win-ME (who is ? :-) )

>> - Case DOS 7.x : peek into DOSData, there is

> Where? Or rather: How do you find that table? If I'd want to find it now,
> I'd look at the interrupt vector for one of the unaltered interrupts in my
> debugger. Your way might be able to find the table even with all these
> interrupts hooked.

Yes of course it is and is the reason I choose this way. The interrupt table is the worst possible option, unless you're prepared for hardcore virus-like following and possibly even tracing of the interrupt chains !

>> I think I will provide the source code per request rather than make it
>> downloadable anonymously.

> I'll just state it flat out: I do not agree with this; I don't see a
> reason to exclude the source generally but to make it available per
> request nonetheless. (Of course this still is better than not providing
> source at all, therefore I thank you. I just don't see why not to provide
> it directly.)

I like to get an idea of who requests the code, how many samples, their expectations, and possibly get some feedback. Do you think an informal email request is too much to ask of them ? If it were, rather cast margaritas ante porcos.

It's not like I'm concealing trade secrets, on the contrary, I am set up to explain clearly the hows and whys, namely in answers to this forum, in a manner which I think for most people makes more sense than an assembly listing.

I don't expect more than a handful persons to be really interested in the ASM code (you being an exception!); I'll change my mind in case I'm overwhelmed by a flow of requests :-P




Complete thread:

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