Hi David.

 >> All you have to do is to insure your ROM image uses correct
 >> format (utils in netboot package create correct images from
 >> executable binaries) and BIOS will do the rest of the job

 > Actually, 'format' simply means 0x55aa at the start of the
 > image, and the 3rd byte contains the number of 256 byte pages
 > in the ROM. Nothing else is involved in the 'format'.

There is a little more than that involved:

 1. When checksummed over the length of the ROM, the checksum
    must be correct.

 2. There were TWO entry points to each ROM that had to be in
    the correct place. One was the initialisation entry point,
    the second was the "DOS Extended Commands" table, which
    consisted of a table of additional DOS commands together
    with the offset of the command within the ROM.

Miss those out and you can expect your ROM to cause problems...

 >> it will detect the ROM fetch its size and start address and start
 >> executing code from it. It is up to you (ROM) to return control to
 >> BIOS (and let it boot normaly) or execute kernel and boot into
 >> your OS (that's the way you want it if you implant a ROM in 
 >> there).

 > I'd suggest that you don't do it this way, and that you actually
 > hook interrupt 0x19. This allows BIOS to detect various
 > hardware, and call any other important ROMs, such as video and
 > disk controller. While you (in theory) can boot directly from
 > the ROM, ELKS won't like you much. Apart from anything else,
 > quite a few drivers, notably the disk and console drivers
 > generally use BIOS calls.

Very true, and I will definately second this recommendation.

Best wishes from Riley.

 * Copyright (C) 1999, Memory Alpha Systems.
 * All rights and wrongs reserved.

+----------------------------------------------------------------------+
| There is something frustrating about the quality and speed of Linux  |
| development, ie., the quality is too high and the speed is too high, |
| in other words, I can implement this XXXX feature, but I bet someone |
| else has already done so and is just about to release their patch.   |
+----------------------------------------------------------------------+
 * http://www.memalpha.cx/Linux/Kernel/

Reply via email to