freebsd-skq/share/examples/bootforth
John Baldwin 0889b9be41 - Add 'fwrite' and 'fseek' words for writing to and seeking on files.
- Change the 'fopen' keyword to accept a mode parameter.  Note that this
  will break existing 4th scripts that use fopen.  Thus, the loader
  version has been bumped and loader.4th has been changed to check for a
  sufficient version on i386 and alpha.  Be sure that you either do a full
  world build or install or full build and install of sys/boot after this
  since loader.old won't work with the new 4th files and vice versa.

PR:		kern/32389
Submitted by:	Jonathan Mini <mini@haikugeek.com>
Sponsored by:	ClickArray, Inc.
2001-12-11 00:49:34 +00:00
..
boot.4th
frames.4th
loader.rc
menu.4th
menuconf.4th
README
screen.4th

Here you can find some simple examples how to use BootFORTH (part of the
new bootloader) together with terminal emulation code (available when
compiling /sys/boot/i386/libi386 with -DTERM_EMU).

Normally, you can place the files in /boot as they are here, and they will be
automatically loaded by /boot/loader. You must choose between boot.4th or
loader.rc, though. Copy one or the other, but not both. Also, menu.4th is
only used by boot.4th, and menuconf.4th is only used by loader.rc, so you
don't need to copy both files.

The files are:

boot.4th	example of file which is always loaded by /boot/loader, if
		present in /boot/
loader.rc	example of file which is always loader by /boot/loader, if
		present in /boot/
screen.4th	helpful words for screen manipulation.
frames.4th	basic frame drawing primitives. Requires screen.4th.
menu.4th	example of simple startup menu.
menuconf.4th	another example of simples startup menu.

You're encouraged to add more features to these files - I'm not a Forth
hacker, unfortunately...

Andrzej Bialecki
<abial@freebsd.org>

If you use loader.rc/menuconf.4th, be sure to create /boot/stable.conf and
/boot/current.conf, like described in loader.conf(5), with appropriate
configuration to distinguish one from the other.

Daniel C. Sobral
<dcs@freebsd.org>

$FreeBSD$