| Welcome to the OpenBIOS forth core "begin again". | |
| Find more information about OpenBIOS at http://www.openbios.org/ | |
| This program was written by Patrick Mauritz and Stefan Reinauer in 2003 | |
| For license details on this piece of software, check Documentation/COPYING. | |
| How OpenBIOS works | |
| ------------------ | |
| The OpenBIOS forth core is split into a forth kernel written in C | |
| and a forth dictionary which operated on by the kernel. | |
| When building the forth core, you get different versions of | |
| the forth kernel: | |
| * a "hosted" unix binary. This binary can be used on a unix system | |
| - to execute a forth dictionary from a file. This can be used for | |
| testing openbios code in a development environment on a unix host. | |
| - to create a dictionary file. Such a dictionary file sets up | |
| all of the forth language. Primitives are indexed to save relocations. | |
| The default is to create a forth dictionary forth.dict from | |
| forth/start.fs. This file includes all of the basic forth language | |
| constructs from forth/bootstrap.fs and starts the interpreter. | |
| To achieve this, the hosted unix version contains a basic set of | |
| forth words coded in C that allow creating a full dictionary. | |
| * a varying number of target specific binaries. On x86 you can start | |
| openbios for example from GRUB or LinuxBIOS. They are all based on | |
| the same forth engine consisting of a dictionary scheduler, primitive | |
| words needed to build the forth environment, 2 stacks and a simple | |
| set of console functions. These binaries can not be started directly | |
| in the unix host environment. | |
| Requirements | |
| ------------ | |
| * gcc | |
| * grub or any other multiboot loader to run the standalone | |
| binary "openbios.multiboot" | |
| Building & Usage | |
| ---------------- | |
| * make | |
| this builds "openbios.multiboot", the standalone image and "unix", | |
| the hosted image. Additionally it creates a forth dictionary | |
| file from forth/start.fs. All generated files are written to | |
| the absolute directory held by the variable BUILDDIR, which defaults | |
| to obj-[platform]. Some compile time parameters can be tweaked in | |
| include/config.h | |
| * use "unix" to create a forth dictionary on your own: | |
| $ ./unix -Iforth start.fs | |
| creates the file forth.dict from forth source forth/start.fs. | |
| * use "unix" to run a created dictionary: | |
| $ ./unix forth.dict | |
| This is useful for testing | |
| * booting openbios | |
| You can boot openbios i.e. in grub. Add the following lines to | |
| your menu.lst: | |
| title openbios | |
| kernel (hd0,2)/boot/openbios.multiboot | |
| module (hd0,2)/boot/openfirmware.dict | |
| Note: change (hd0,2) to the partition you copied openbios and | |
| forth.dict to. | |
| To boot OpenBIOS from LinuxBIOS/etherboot, you can either use | |
| "openbios" or "openbios.full": | |
| - openbios is the pure kernel that loads the dictionary from a | |
| hardcoded address in flash memory (0xfffe0000) | |
| - openbios.full also includes the dictionary directly so that it | |
| can be easily used from etherboot or the LinuxBIOS builtin ELF | |
| loader without taking care of the dictionary | |
| Comments are welcome. | |
| OpenBIOS team | |
| ------------------------------------------------------------------------ | |
| tag: README for openbios forth core |