[syslinux] Chainloading DRMK

Gene Cumm gene.cumm at gmail.com
Sun Aug 1 07:13:39 PDT 2010


DRMK (Dell Real Mode Kernel), now used in their DOS-based diagnostic
images (probably about 2-4 years), has a rather unusual entry into the
IO file (DELLBIO.BIN; similar to IO.SYS and IBMBIO.COM).  After
fumbling around with it over the last few days, I _think_ I've figured
out the quirks of this entry point (and successfully tweaked chain.c32
to do such).

dl Usual; drive number
bp 0

cs 0x0070
ss 0
ds Location of relocated boot sector code that loaded it; only used
for 1 data element then initialized.

The following registers are initialized by DELLBIO.BIN prior to use:
ax, cx, si, di, sp, and es.

fs and gs were 0 but are not used by DELLBIO.BIN.

I believe bx is a remnant from loading DELLBIO.BIN and probably
initialized by DELLBIO.BIN prior to use.  On entry it is equal to the
file size & 0xFC00.

In addition to those register values, it also must have a value of
0x0000003f (little endian, of course) at ds:[bp+28].  I still need to
trace around to find what that's used for.

Gert Hulselmans, thank you for your help and making others aware that
it couldn't be chainloaded from Syslinux.

-- 
-Gene

"No one ever says, 'I can't read that ASCII(plain text) e-mail you sent me.'"




More information about the Syslinux mailing list