[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