diff options
author | dcs <dcs@FreeBSD.org> | 1999-05-14 18:06:27 +0000 |
---|---|---|
committer | dcs <dcs@FreeBSD.org> | 1999-05-14 18:06:27 +0000 |
commit | c4a4e43379d03c23d1c1380b5403db2e18bf0c61 (patch) | |
tree | 76e39285df4d929f502026d3cc9ea77464085fcb /share/examples/bootforth/menuconf.4th | |
parent | 2e962e0f39a316d8de7e2033c2e4015f92758761 (diff) | |
download | FreeBSD-src-c4a4e43379d03c23d1c1380b5403db2e18bf0c61.zip FreeBSD-src-c4a4e43379d03c23d1c1380b5403db2e18bf0c61.tar.gz |
Add a menu example making use of loader.4th(8) facilities.
Merge candidate, as it is just an example...
Diffstat (limited to 'share/examples/bootforth/menuconf.4th')
-rw-r--r-- | share/examples/bootforth/menuconf.4th | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/share/examples/bootforth/menuconf.4th b/share/examples/bootforth/menuconf.4th new file mode 100644 index 0000000..ae053ec --- /dev/null +++ b/share/examples/bootforth/menuconf.4th @@ -0,0 +1,110 @@ +\ Simple greeting screen, presenting basic options. +\ XXX This is far too trivial - I don't have time now to think +\ XXX about something more fancy... :-/ +\ $Id$ + +: title + f_single + 60 11 10 4 box + 29 4 at-xy 15 fg 7 bg + ." Welcome to BootFORTH!" + me +; + +: menu + 2 fg + 20 7 at-xy + ." 1. Start FreeBSD /boot/stable.conf." + 20 8 at-xy + ." 2. Start FreeBSD /boot/current.conf." + 20 9 at-xy + ." 3. Start FreeBSD /boot/loader.rc." + 20 10 at-xy + ." 4. Reboot." + me +; + +: tkey ( d -- flag | char ) + seconds + + begin 1 while + dup seconds u< if + drop + -1 + exit + then + key? if + drop + key + exit + then + repeat +; + +: prompt + 14 fg + 20 12 at-xy + ." Enter your option (1,2,3,4): " + 10 tkey + dup 32 = if + drop key + then + dup 0< if + drop 51 + then + dup emit + me +; + +: help_text + 10 18 at-xy ." * Choose 1 or 2 to run special configuration file." + 10 19 at-xy ." * Choose 3 to proceed with standard bootstrapping." + 12 20 at-xy ." See '?' for available commands, and 'words' for" + 12 21 at-xy ." complete list of Forth words." + 10 22 at-xy ." * Choose 4 in order to warm boot your machine." +; + +: (reboot) 0 reboot ; + +: main_menu + begin 1 while + clear + f_double + 79 23 1 1 box + title + menu + help_text + prompt + cr cr cr + dup 49 = if + drop + 1 25 at-xy cr + ." Loading /boot/stable.conf. Please wait..." cr + s" /boot/stable.conf" read-conf + boot-conf + then + dup 50 = if + drop + 1 25 at-xy cr + ." Loading /boot/current.conf. Please wait..." cr + s" /boot/current.conf" read-conf + boot-conf + then + dup 51 = if + drop + 1 25 at-xy cr + ." Proceeding with standard boot. Please wait..." cr + boot-conf + then + dup 52 = if + drop + 1 25 at-xy cr + ['] (reboot) catch abort" Error rebooting" + then + 20 12 at-xy + ." Key " emit ." is not a valid option!" + 20 13 at-xy + ." Press any key to continue..." + key drop + repeat +; + |