Hi, Pavel Novy, author of some tiny tool which Tyler found useful,
writes me some explanation for "if you want to keep it tiny, then
why does it start with mov ah,30h / int 21h (but does not do any-
thing with the returned DOS version information)?". He found that
the following code sequence would hang in Virtual PC:

(com program)
> Start:        jmp       Begin
> XMSControl    dd        ?
> Begin:        mov       ax,4300h
>                int       2fh
>                cmp       al,80h
>                jne       _errexit
>                mov       ax,4310h
>                int       2fh
>                mov       word ptr [XMSControl],bx
>                mov       word ptr [XMSControl + 2],es
>                mov       ah,00h
>                call      dword ptr [XMSControl]
> _errexit:
>                mov       ax,4c00h
>                int       21h

Can somebody try to reproduce? Should we add some handling to our
HIMEM / EMM386 for it? I think this is A20 related, something like
"disable A20 on exec() and reenable it again on the first int 21
call". Which is, by the way, a very useless feature: LOADFIX (should be
part of every FreeDOS distro! Do we have one? It takes care to load
programs outside the first 64k) is, as far as I know, taking care of
possible "program might expect wraparound at 1 MB" in a better way.

And of course I vote - again - for some HIMEM command line option "switch
A20 on at HIMEM start time but refuse to switch it off later". Thanks.


Thanks to Pavel for checking his archives about the background of this
"use int 21.30 before releasing the environment of the program" (which
is where it was used in the binary found by Tyler) trick.

Eric




-------------------------------------------------------
SF.Net email is sponsored by Shop4tech.com-Lowest price on Blank Media
100pk Sonic DVD-R 4x for only $29 -100pk Sonic DVD+R for only $33
Save 50% off Retail on Ink & Toner - Free Shipping and Free Gift.
http://www.shop4tech.com/z/Inkjet_Cartridges/9_108_r285
_______________________________________________
Freedos-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to