C:\>reboot
Performing action: WARMBOOT
Triggering warm reboot...
Calling int28 so MSCLIENT can flush...
Resetting DOS filesystem and BIOS disk handler.
JemmEx: exception 0D occured at CS:EIP=E800:000006DA, ERRC=00000000
SS:ESP=9C40:000026C5 EBP=00009C40 EFL=00033046 CR0=80000013 CR4=00000648
EAX=00005000 EBX=00000000 ECX=00000000 EDX=008F9300 ESI=F7200668 EDI=00000010
DS=E800 ES=5000 FS=9C40 GS=D03D [CS:IP]=2E 0F 01 16 78 06 0F 20
Press ESC to abort program
C:\>logger off print > reboot.txt

This is LGDT [cs:0x678] at e800:06da, so apparently you have
some sort of controller related BIOS extension there which
directly uses protected mode, incompatible with EMM386. This
could be a disk, USB, network or similar controller BIOS and
you could try to boot without EMM386 (JEMMEX) but maybe you
could also convince the controller BIOS to cooperate via VDS.

Have you tried using FDAPM cold boot instead of warm boot?

The following things are done to flush and reset disk I/O:

- call int 28

- call int 2f with ax=1500, bx=1234, ch=90 to see if CDBLITZ
  is installed. If yes, call the same with ch=96 to flush it.

- call int 16 with ax=ffa5, cx=1111 to see if PC CACHE is
  installed. If yes, call the same with cx=ffff to flush it.

- call int 13 with ah=27, bx=0 to see if Quick Cache is
  installed. If yes, call int 13 with ax=21 (!), dx=0 to flush.

- call int 21 with ah=2b, cx=4358 to see if QCache, PC Tools or
  Super PC Kwik is installed. If yes, call int 13 with ax=a1,
  dx=0, si=4358 to flush any of those.

- call int 2f with ax=4a10, bx=0, cx=ebab to see if smartdrv
  is installed. If yes, call the same with bx=1 to flush it.

- try to open device file SMARTAAR to see if smartdrv is
  installed. If yes, call int 21 with ax=4403, cx=0, dx=some
  pointer to a byte with value 2 to flush that :-p

- call int 21 with ah=0d as generic DOS filesystem reset.

- call int 13 with ax=0, dx=80 as generic BIOS disk reset,
  then outb 3f2, 0 to stop all floppy drive motors, if any.

Long story short, I think your special BIOS at e800:0 is some
sort of disk controller BIOS, but it could also be any type of
USB legacy support, bootable RAMDISK, netboot drive, and so on.

Configuring any of those in different ways may help, but another
easy solution might be to just boot without EMM386 style drivers.

Regards, Eric




_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to