SBM is a great software which brings life also to very old computer
hardware. I just love the ATAPI boot feature, although there is a
limitation.
Let's define a hypothetical situation:
What
if I have a system where there is no need or possibility to use floppy
or hard drives, so the only boot media is the cd-rom drive, and the
motherboard bios does not understand booting from cd-
roms.
What I am suggesting is that you could also provide an
(makefile?) option to compile SBM to a ROM image which hooks itself
to bootstrap interrupts when motherboard BIOS does a ROM scan and
either (configurable option)
(1) starts immediately from int
19h when boostrapping
or
(2) starts from int 18h(?) when BIOS
does not find any known boot devices,
so it then loads SBM, which
is configured to boot from ATAPI cd-rom or whatever default
device.
The ROM image could then be written to a normal EPROM
chip and used in ROM sockets that some network adapters have for
optional network boot ROMs. I've also seen old multi-i/o adapters
with add-on ROM sockets, and it might be even possible to write it to
motherboard ROM if it has space left after the BIOS.
It should
be fairly easy to make a ROM image out of SBM, I examined the code a
little bit and came into conclusion, that there's no point for me to
try extracting the SMB kernel and write a ROM loader and ROM image
maker unless I really know how SBM works and to what memory address
it is supposed to be loaded when (for example) loaded from a floppy
disk. But I am convinced that it could be fit into a 32 kbyte
EPROM,
and it would make a handy low-end hardware diskless OS
bootstrapper for Linux X-terminals or car MP3 players with
software and songs easily upgradeable on cd-
rw.
Comments?
-- Jani Laaksonen
( jjlaakso at students
dot cs dot tut dot fi )
Logged In: YES
user_id=729958
In fact there are two problems when trying to do so (plus
any problems caused by the ROM image stuff, I do not know
how these images work...).
1. You have to compress half of main.bin since it will be
decompressed at load.
2. SBM tries to save its settings to the disk it has been
loaded from; in ROM this is hard.
The rest is easy:
the main.bin (after compressing it) must be loaded to
1000:0000. Put the current drive id (where settings should
be saved) to dl and jump to 1000:0000.
To work around these two problems (that are exactly the
same when you want to chainload SBM from another
bootloader), I made a patch:
http://sourceforge.net/tracker/
index.php?func=detail&aid=1553637&group_id=4185&atid=304185
Just take the "bzimage", remove the first 1K (the loader)
and build a ROM image that loads the rest to 1000:0000. Set
dl to 0xFF and jump to 1000:0000. (The "bzimage" loader is
quite straightforward as well).
HTH,
Michael