What would it take just to write a Hello World program? I think seeing this code would give people something of a starting place. Do we just load the Video BIOS up and use it to write a string to the screen and halt, or can/should we do it without the Video BIOS?
You can do without the video BIOS in text mode. Just write the string to the video buffer. When writing to this space in the address space, the memory controller (part of the chipset) redirects this access to ROM (or maps the ROM in RAM if this is in the setup). So, you write directly to the video adapter's card ROM. In some memory controllers like in the PCI chipset, you can even redefine where to put the video buffer and other ROM area's. So you don't need the BIOS at all (unless the BIOS is coded really good and has lots of functionality available, so you don't have to write your own I/O routines. Its the goal of OpenBIOS to make such a good BIOS). In graphics modes, you ill not want to program the video cards directly, as huge differences can occur between types of cards. It's a lot easier to let the BIOS safely do the right work for you (programming the video card in a wrong way might destroy your screen if you cannot find the power button quickly enough !). Adapter cards can "install" their own adapter BIOS like now most SVGA adapters do. Mind that now, all adapter BIOSs are 16-bit, real-mode as they have to work together with the BIOS now existing in the PCs, werecompletely outdated OSs like DOS and Windows95/98 still rule the world.
From there you can add support to initialize your chipsets functions.
BTW, do we have anybody here with a SMP machine? Those do require more to initialize, and we will eventually want to make sure that works.
Ah, nice idea . Some basic multi-processor support must really be provided by OpenBIOS. For instance routines for the interrupt controllers etc (Like the APICs used in multi-processor Pentium/PentiumPro/PentiumII systems. Every Pemtium has even its own interrupt controller!) Scheduling and processor control is a OS kernel's job, however, and shouldn't be included an any BIOS. I know some people here would like to include a whole OS kernel, with filesystem and everything in the ROM BIOS, but thsi really isn't the way of making a good BIOS and it surpasses the BIOS goals : provide easy and good direct access to the hardware, with an API that is equal for al systems, but providing all the functionality that a specific system has.
---------------------------------------- Pieter Dumon aka Death of the Rats
Pieter.Dumon@rug.ac.be
http://studwww.rug.ac.be/~pdumon ---------------------------------------
--- OpenBIOS -- http://www.linkscape.net/openbios/ openbios-request@linkscape.net Body: un/subscribe Problems? dcinege@psychosis.com