Hi Bart!

> It seems to need this dirty technique to try to restore the BIOS
> IRQ vectors to their original values.

Interesting point... that reminds me of something which FreeDOS kernel
should support and which would not be too hard to do:

--------D-M00700100--------------------------
MEM 0070h:0100h - DOS 5+ - ORIGINAL INTERRUPT VECTORS 10h,13h,15h,19h,1Bh
Size:   25 BYTEs
Note:   each value is stored as a BYTE for the interrupt number followed by
          a DWORD for the vector
        these values are restored on INT 19 by recent versions of
          DR/Novell/PC/MS-DOS (MS-DOS 3.x used this area to support HIMEM.SYS)

> Booting with STACKS=0 without HIMEM
> could avoid this hackery.

STACKS=0,0 seems a perfectly acceptable solution - would GRUB detect
that out of the box, or would the GRUB-check-for-FreeDOS spoil that
simple workaround?

For "grab int 15 back from HIMEM", please have a look at kill15 from:
http://www.coli.uni-sb.de/~eric/memtest-1.27.zip
Note that MKEYB hooks int 15 in a different way (int 15.4f keyboard
intercept, can be detected by "JNC notme / cmp ah,4f / jnz notme / ...",
so it is the carry flag that counts) and that different HIMEM versions
will have different styles of intercepting int 15 and chaining on to
the original handler.

Still, I hope that the code can somehow inspire the GRUB people to
get better compatibility with FreeDOS and DOS drivers.

Eric


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user

Reply via email to