diff --git a/release/picobsd/forth/loader.rc b/release/picobsd/forth/loader.rc new file mode 100644 index 000000000000..735cde2af009 --- /dev/null +++ b/release/picobsd/forth/loader.rc @@ -0,0 +1,20 @@ +\ Simple loader.rc for picobsd floppies +\ $Id: loader.rc,v 1.1.2.1 1999/05/07 10:02:53 abial Exp $ + +include /boot/loader.4th + +only forth definitions also support-functions + +s" /boot/defaults/loader.conf" initialize +include_conf_files +\ For now always display menu. You can remove this if you want. +.( Loading screen routines...) +include /boot/screen.4th +.( Done) cr +.( Loading frame routines...) +include /boot/frames.4th +.( Done) cr +.( Loading menu...) +include /boot/menu.4th +.( Done) cr +main_menu diff --git a/release/picobsd/forth/menu.4th b/release/picobsd/forth/menu.4th new file mode 100644 index 000000000000..e5a5e7b9376b --- /dev/null +++ b/release/picobsd/forth/menu.4th @@ -0,0 +1,99 @@ +\ 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: menu.4th,v 1.1.2.1 1999/05/07 10:02:55 abial Exp $ + +: title + f_single + 60 11 10 4 box + 31 4 at-xy 15 fg 7 bg + ." Welcome to PicoBSD!" + me +; + +: menu + 2 fg + 20 7 at-xy + ." 1. Start PicoBSD." + 20 8 at-xy + ." 2. Interact with BootFORTH." + 20 9 at-xy + ." 3. 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 11 at-xy + ." Enter your option (1,2,3): " + 10 tkey + dup 32 = if + drop key + then + dup 0< if + drop 49 + then + dup emit + me +; + +: help_text + 10 18 at-xy ." * Choose 1 if you just want to run PicoBSD." + 10 19 at-xy ." * Choose 2 if you want to use bootloader facilities." + 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 3 in order to warm boot your machine." +; + +: (boot) 0 boot ; +: (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 + clear + ." Starting PicoBSD. Please wait..." cr + start + exit + then + dup 50 = if + drop + 1 25 at-xy cr + exit + then + dup 51 = 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 +;