At 09:02 PM 7/26/2006 +0200, tom ehlert  wrote:
> > Well, heck, if I already to have to change some A20 behavior to get a few
> > ancient programs to work with that idiotic EXEPACK 0FFFFh address-wrapping
> > (assuming EXEPACK makes A20 calls),
>*VERY* early PKLITE (~1992) versions had the same bug
>
>AFAIK, it doesn't - it's older then the invention of HMA
>
>but it's decompression code is based on the assumption that
>
>    [cs:100]
>is equivalent to
>    [cs-f00:100+f000]
>
>(don't ask why, I didn't write it)
>
>this is true if
>    the code is loaded above 1000:0 (that's what LOADFIX
>       does)
>    A20 is disabled
>
>in fact, this shouldn't happen in freedos; exactly for this reason
>the kernel disables A20 before beginning execution of any program, so
>that the (potential) startup code gets executed with A20 disabled, and
>gets only enabled with the first Int 21
>
>of course this might have been 'optimized' in newer kernels ;)

You are right again.  Eric indicated I need to allow local A20 control, but 
as it turns out, that won't help.  EXEPACK code simply doesn't call A20 
routines, so EMM386 cannot fix this problem.  It never "sees" the wrap 
occurring.  The situation has to be corrected within the kernel.

So how do we agitate to restore the kernel to its original behavior?  I've 
got a couple test program here someone provided me which consistently 
failed due to EXEPACK.
At a guess, there are plenty more.

I suppose we could tell users to run the program from DEBUG which eats up 
just enough memory that the programs work, but doesn't seem like an elegant 
solution.  (Anybody with the 'packed file corrupt' problem, type 'debug 
full_program_name', then press 'G' and hit return).


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to