xref: /illumos-gate/usr/src/man/man7/menusets.4th.7 (revision bbf215553c7233fbab8a0afdf1fac74c44781867)
1*bbf21555SRichard Lowe.\" Copyright (c) 2012 Devin Teske
2*bbf21555SRichard Lowe.\" All rights reserved.
3*bbf21555SRichard Lowe.\"
4*bbf21555SRichard Lowe.\" Redistribution and use in source and binary forms, with or without
5*bbf21555SRichard Lowe.\" modification, are permitted provided that the following conditions
6*bbf21555SRichard Lowe.\" are met:
7*bbf21555SRichard Lowe.\" 1. Redistributions of source code must retain the above copyright
8*bbf21555SRichard Lowe.\"    notice, this list of conditions and the following disclaimer.
9*bbf21555SRichard Lowe.\" 2. Redistributions in binary form must reproduce the above copyright
10*bbf21555SRichard Lowe.\"    notice, this list of conditions and the following disclaimer in the
11*bbf21555SRichard Lowe.\"    documentation and/or other materials provided with the distribution.
12*bbf21555SRichard Lowe.\"
13*bbf21555SRichard Lowe.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14*bbf21555SRichard Lowe.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15*bbf21555SRichard Lowe.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16*bbf21555SRichard Lowe.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17*bbf21555SRichard Lowe.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18*bbf21555SRichard Lowe.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19*bbf21555SRichard Lowe.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20*bbf21555SRichard Lowe.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21*bbf21555SRichard Lowe.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22*bbf21555SRichard Lowe.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23*bbf21555SRichard Lowe.\" SUCH DAMAGE.
24*bbf21555SRichard Lowe.\"
25*bbf21555SRichard Lowe.Dd July 20, 2018
26*bbf21555SRichard Lowe.Dt MENUSETS.4TH 7
27*bbf21555SRichard Lowe.Os
28*bbf21555SRichard Lowe.Sh NAME
29*bbf21555SRichard Lowe.Nm menusets.4th
30*bbf21555SRichard Lowe.Nd loader dynamic submenu boot module
31*bbf21555SRichard Lowe.Sh DESCRIPTION
32*bbf21555SRichard LoweThe file that goes by the name of
33*bbf21555SRichard Lowe.Nm
34*bbf21555SRichard Loweis a set of commands designed to add submenu functionality to the dynamic menu
35*bbf21555SRichard Lowesystem provided by
36*bbf21555SRichard Lowe.Xr menu.4th 7 .
37*bbf21555SRichard LoweSubmenus are managed through a system of carefully named environment variables.
38*bbf21555SRichard LoweThe commands of
39*bbf21555SRichard Lowe.Nm
40*bbf21555SRichard Loweby themselves are not enough for most uses.
41*bbf21555SRichard LowePlease refer to the examples below for the most common situations, and to
42*bbf21555SRichard Lowe.Xr menu.4th 7
43*bbf21555SRichard Lowefor additional commands.
44*bbf21555SRichard Lowe.Pp
45*bbf21555SRichard LoweBefore using any of the commands provided in
46*bbf21555SRichard Lowe.Nm ,
47*bbf21555SRichard Loweit must be included
48*bbf21555SRichard Lowethrough the command:
49*bbf21555SRichard Lowe.Pp
50*bbf21555SRichard Lowe.Dl include menusets.4th
51*bbf21555SRichard Lowe.Pp
52*bbf21555SRichard LoweThis line is present in the default
53*bbf21555SRichard Lowe.Pa /boot/forth/menu-commands.4th
54*bbf21555SRichard Lowefile, so it is not needed (and should not be re-issued) in a normal setup.
55*bbf21555SRichard Lowe.Pp
56*bbf21555SRichard LoweThe commands provided by it are:
57*bbf21555SRichard Lowe.Pp
58*bbf21555SRichard Lowe.Bl -tag -width menuset-loadinitial -compact -offset indent
59*bbf21555SRichard Lowe.It Ic menuset-loadsetnum
60*bbf21555SRichard LoweTakes a single integer on the stack to identify the menuset environment
61*bbf21555SRichard Lowevariables to be activated (see environment variables below).
62*bbf21555SRichard Lowe.It Ic menuset-loadinitial
63*bbf21555SRichard LoweIf $menuset_initial is set, passes the value to menuset-loadsetnum.
64*bbf21555SRichard LoweThe value must be a number.
65*bbf21555SRichard Lowe.It Ic menusets-unset
66*bbf21555SRichard LoweUnsets the environment variables associated with all menusets.
67*bbf21555SRichard LoweIncrements starting at 1 and stops at the first unconfigured menuset.
68*bbf21555SRichard LoweA menuset is considered configured if the caption for item 1 is set.
69*bbf21555SRichard Lowe.El
70*bbf21555SRichard Lowe.Pp
71*bbf21555SRichard LoweThe environment variables that effect its behavior are:
72*bbf21555SRichard Lowe.Bl -tag -width bootfile -offset indent
73*bbf21555SRichard Lowe.It Va menuset_initial
74*bbf21555SRichard LoweNumber to pass to menuset-loadsetnum when menuset-loadinitial is called.
75*bbf21555SRichard Lowe.It Va menuset_nameN
76*bbf21555SRichard LoweUsed to give a name to a menuset.
77*bbf21555SRichard Lowe.El
78*bbf21555SRichard Lowe.Pp
79*bbf21555SRichard LoweWhen a menuset is NOT given a name (the default),
80*bbf21555SRichard Lowemenuset N is comprised of the following environment variables:
81*bbf21555SRichard Lowe.Pp
82*bbf21555SRichard Lowe.Bl -tag -width menusetN_caption[x][y] -compact -offset indent
83*bbf21555SRichard Lowe.It Va ansisetN_caption[x]
84*bbf21555SRichard Lowe-> ansi_caption[x]
85*bbf21555SRichard Lowe.It Va ansisetN_caption[x][y]
86*bbf21555SRichard Lowe-> ansi_caption[x][y]
87*bbf21555SRichard Lowe.It Va menusetN_acpi
88*bbf21555SRichard Lowe-> menu_acpi
89*bbf21555SRichard Lowe.It Va menusetN_caption[x]
90*bbf21555SRichard Lowe-> menu_caption[x]
91*bbf21555SRichard Lowe.It Va menusetN_caption[x][y]
92*bbf21555SRichard Lowe-> menu_caption[x][y]
93*bbf21555SRichard Lowe.It Va menusetN_command[x]
94*bbf21555SRichard Lowe-> menu_command[x]
95*bbf21555SRichard Lowe.It Va menusetN_init
96*bbf21555SRichard Lowe->
97*bbf21555SRichard Lowe.Dq Li evaluated
98*bbf21555SRichard Lowe.It Va menusetN_init[x]
99*bbf21555SRichard Lowe-> menu_init[x]
100*bbf21555SRichard Lowe.It Va menusetN_keycode[x]
101*bbf21555SRichard Lowe-> menu_keycode[x]
102*bbf21555SRichard Lowe.It Va menusetN_options
103*bbf21555SRichard Lowe-> menu_options
104*bbf21555SRichard Lowe.It Va menusetN_optionstext
105*bbf21555SRichard Lowe-> menu_optionstext
106*bbf21555SRichard Lowe.It Va menusetN_reboot
107*bbf21555SRichard Lowe-> menu_reboot
108*bbf21555SRichard Lowe.It Va toggledsetN_ansi[x]
109*bbf21555SRichard Lowe-> toggled_ansi[x]
110*bbf21555SRichard Lowe.It Va toggledsetN_text[x]
111*bbf21555SRichard Lowe-> toggled_text[x]
112*bbf21555SRichard Lowe.El
113*bbf21555SRichard Lowe.Pp
114*bbf21555SRichard LoweWhen you choose to give a menuset a name (by setting $menuset_nameN),
115*bbf21555SRichard Lowemenuset N is instead comprised of the following environment variables:
116*bbf21555SRichard Lowe.Pp
117*bbf21555SRichard Lowe.Bl -tag -width NAMEmenu_caption[x][y] -compact -offset indent
118*bbf21555SRichard Lowe.It Va NAMEansi_caption[x]
119*bbf21555SRichard Lowe-> ansi_caption[x]
120*bbf21555SRichard Lowe.It Va NAMEansi_caption[x][y]
121*bbf21555SRichard Lowe-> ansi_caption[x][y]
122*bbf21555SRichard Lowe.It Va NAMEmenu_acpi
123*bbf21555SRichard Lowe-> menu_acpi
124*bbf21555SRichard Lowe.It Va NAMEmenu_caption[x]
125*bbf21555SRichard Lowe-> menu_caption[x]
126*bbf21555SRichard Lowe.It Va NAMEmenu_caption[x][y]
127*bbf21555SRichard Lowe-> menu_caption[x][y]
128*bbf21555SRichard Lowe.It Va NAMEmenu_command[x]
129*bbf21555SRichard Lowe-> menu_command[x]
130*bbf21555SRichard Lowe.It Va NAMEmenu_init
131*bbf21555SRichard Lowe->
132*bbf21555SRichard Lowe.Dq Li evaluated
133*bbf21555SRichard Lowe.It Va NAMEmenu_init[x]
134*bbf21555SRichard Lowe-> menu_init[x]
135*bbf21555SRichard Lowe.It Va NAMEmenu_keycode[x]
136*bbf21555SRichard Lowe-> menu_keycode[x]
137*bbf21555SRichard Lowe.It Va NAMEmenu_options
138*bbf21555SRichard Lowe-> menu_options
139*bbf21555SRichard Lowe.It Va NAMEmenu_optionstext
140*bbf21555SRichard Lowe-> menu_optionstext
141*bbf21555SRichard Lowe.It Va NAMEmenu_reboot
142*bbf21555SRichard Lowe-> menu_reboot
143*bbf21555SRichard Lowe.It Va NAMEtoggled_ansi[x]
144*bbf21555SRichard Lowe-> toggled_ansi[x]
145*bbf21555SRichard Lowe.It Va NAMEtoggled_text[x]
146*bbf21555SRichard Lowe-> toggled_text[x]
147*bbf21555SRichard Lowe.El
148*bbf21555SRichard Lowe.Pp
149*bbf21555SRichard Lowewhere
150*bbf21555SRichard Lowe.Dq Li NAME
151*bbf21555SRichard Loweis the value of $menuset_nameN.
152*bbf21555SRichard LoweIn the case of $NAMEmenu_init ($menusetN_init when $menuset_nameN is unset),
153*bbf21555SRichard Lowethe value is evaluated as an FICL statement.
154*bbf21555SRichard LoweThis can be used to dynamically adjust the menuset variables right before the
155*bbf21555SRichard Lowemenu is activated.
156*bbf21555SRichard Lowe.Pp
157*bbf21555SRichard LoweIn addition,
158*bbf21555SRichard Lowe.Nm
159*bbf21555SRichard Loweprovides the following FICL words:
160*bbf21555SRichard Lowe.Pp
161*bbf21555SRichard Lowe.Bl -tag -width menuset -compact -offset indent
162*bbf21555SRichard Lowe.It Ic menuset-checksetnum ( N -- )
163*bbf21555SRichard LoweGiven a single integer on the stack, sets a global variable
164*bbf21555SRichard Lowe.Va menuset_use_name
165*bbf21555SRichard Loweto a boolean based on whether $menuset_nameN is set (true) or not (false).
166*bbf21555SRichard LoweAlso sets $affix temporary variable (prefix or infix depending on
167*bbf21555SRichard Lowemenuset_use_name).
168*bbf21555SRichard LoweAutomatically called by menuset-loadsetnum and menusets-unset.
169*bbf21555SRichard Lowe.It Ic menuset-loadvar ( -- )
170*bbf21555SRichard LoweUsed indirectly to shorten syntax and mitigate dictionary size.
171*bbf21555SRichard LoweRequires the following temporary environment variables:
172*bbf21555SRichard Lowe.Pp
173*bbf21555SRichard Lowe.Bl -tag -width affix -compact -offset indent
174*bbf21555SRichard Lowe.It Va type
175*bbf21555SRichard Loweshould be set to one of: menu toggled ansi
176*bbf21555SRichard Lowe.It Va var
177*bbf21555SRichard Loweshould be set to one of: caption command keycode text ...
178*bbf21555SRichard Lowe.It Va affix
179*bbf21555SRichard Loweeither a prefix (menuset_use_name is true) or infix (menuset_use_name is false)
180*bbf21555SRichard Lowe.El
181*bbf21555SRichard Lowe.Pp
182*bbf21555SRichard LoweIf the global
183*bbf21555SRichard Lowe.Va menuset_use_name
184*bbf21555SRichard Loweis true, the variable ${type}_${var} is made to
185*bbf21555SRichard Loweequal the value of the variable ${affix}${type}_${var}
186*bbf21555SRichard Lowe(note: in this case menuset-checksetnum has set $affix to $menuset_nameN).
187*bbf21555SRichard LoweOtherwise (when
188*bbf21555SRichard Lowe.Va menuset_use_name
189*bbf21555SRichard Loweis false), the variable ${type}_${var} is made to
190*bbf21555SRichard Loweequal the value of the variable ${type}set${affix}_${var}
191*bbf21555SRichard Lowe(note: in this case menuset-checksetnum has set $affix to N).
192*bbf21555SRichard Lowe.Pp
193*bbf21555SRichard LoweBoth the global variable
194*bbf21555SRichard Lowe.Va menuset_use_name
195*bbf21555SRichard Loweand the environment variable $affix are automatically handled by
196*bbf21555SRichard Lowemenuset-checksetnum above (which is automatically called by
197*bbf21555SRichard Lowemenuset-loadsetnum).
198*bbf21555SRichard Lowe.It Ic menuset-unloadvar ( -- )
199*bbf21555SRichard LoweUsed indirectly to shorten syntax and mitigate dictionary size.
200*bbf21555SRichard LoweLike menuset-loadvar except it unsets the menuset variable.
201*bbf21555SRichard LoweIf global
202*bbf21555SRichard Lowe.Va menuset_use_name
203*bbf21555SRichard Loweis true ($affix is $menuset_nameN),
204*bbf21555SRichard Lowevariable ${affix}${type}_${var} is unset.
205*bbf21555SRichard LoweOtherwise, $affix is N and variable ${type}set${affix}_${var} is unset.
206*bbf21555SRichard Lowe.It Ic menuset-loadmenuvar ( -- )
207*bbf21555SRichard LoweSets $type to
208*bbf21555SRichard Lowe.Dq menu
209*bbf21555SRichard Loweand calls menuset-loadvar.
210*bbf21555SRichard Lowe.It Ic menuset-unloadmenuvar ( -- )
211*bbf21555SRichard LoweSets $type to
212*bbf21555SRichard Lowe.Dq menu
213*bbf21555SRichard Loweand calls menuset-unloadvar.
214*bbf21555SRichard Lowe.It Ic menuset-loadxvar ( -- )
215*bbf21555SRichard LoweLike menuset-loadvar except it takes an additional temporary variable $x.
216*bbf21555SRichard LoweIf the global
217*bbf21555SRichard Lowe.Va menuset_use_name
218*bbf21555SRichard Loweis true (making $affix equal $menuset_nameN),
219*bbf21555SRichard Lowesets variable ${type}_${var}[${x}] to variable ${affix}${type}_${var}[${x}].
220*bbf21555SRichard LoweOtherwise ($affix being N), sets the same variable to instead
221*bbf21555SRichard Lowe${type}set{affix}_${var}[${x}].
222*bbf21555SRichard Lowe.It Ic menuset-unloadxvar ( -- )
223*bbf21555SRichard LoweLike menuset-loadxvar except it unsets the menuset variable.
224*bbf21555SRichard LoweIf global
225*bbf21555SRichard Lowe.Va menuset_use_name
226*bbf21555SRichard Loweis true, unsets ${affix}${type}_${var}[${x}].
227*bbf21555SRichard LoweOtherwise, unsets ${type}set${affix}_${var}[${x}].
228*bbf21555SRichard Lowe.It Ic menuset-loadansixvar ( -- )
229*bbf21555SRichard LoweSets $type to
230*bbf21555SRichard Lowe.Dq ansi
231*bbf21555SRichard Loweand calls menuset-loadxvar
232*bbf21555SRichard Lowe.It Ic menuset-unloadansixvar ( -- )
233*bbf21555SRichard LoweSets $type to
234*bbf21555SRichard Lowe.Dq ansi
235*bbf21555SRichard Loweand calls menuset-unloadxvar
236*bbf21555SRichard Lowe.It Ic menuset-loadmenuxvar ( -- )
237*bbf21555SRichard LoweSets $type to
238*bbf21555SRichard Lowe.Dq ansi
239*bbf21555SRichard Loweand calls menuset-loadxvar
240*bbf21555SRichard Lowe.It Ic menuset-unloadmenuxvar ( -- )
241*bbf21555SRichard LoweSets $type to
242*bbf21555SRichard Lowe.Dq ansi
243*bbf21555SRichard Loweand calls menuset-unloadxvar
244*bbf21555SRichard Lowe.It Ic menuset-loadtoggledxvar ( -- )
245*bbf21555SRichard LoweSets $type to
246*bbf21555SRichard Lowe.Dq toggled
247*bbf21555SRichard Loweand calls menuset-loadxvar
248*bbf21555SRichard Lowe.It Ic menuset-unloadtoggledxvar ( -- )
249*bbf21555SRichard LoweSets $type to
250*bbf21555SRichard Lowe.Dq toggled
251*bbf21555SRichard Loweand calls menuset-unloadxvar
252*bbf21555SRichard Lowe.It Ic menuset-loadxyvar ( -- )
253*bbf21555SRichard LoweLike menuset-loadxvar except it takes an additional temporary variable $y.
254*bbf21555SRichard LoweIf the global
255*bbf21555SRichard Lowe.Va menuset_use_name
256*bbf21555SRichard Loweis true ($affix is $menuset_nameN),
257*bbf21555SRichard Lowesets variable ${type}_${var}[${x}][${y}] to ${affix}${type}_${var}[${x}][${y}].
258*bbf21555SRichard LoweOtherwise ($affix is N) sets the same variable to instead
259*bbf21555SRichard Lowe${type}set${affix}_${var}[${x}][${y}].
260*bbf21555SRichard Lowe.It Ic menuset-unloadxyvar ( -- )
261*bbf21555SRichard LoweLike menuset-loadxyvar except it unsets the menuset variable.
262*bbf21555SRichard LoweIf the global
263*bbf21555SRichard Lowe.Va menuset_use_name
264*bbf21555SRichard Loweis true, unsets ${affix}${type}_${var}[${x}][${y}].
265*bbf21555SRichard LoweOtherwise, unsets ${type}set${affix}_${var}[${x}][${y}].
266*bbf21555SRichard Lowe.It Ic menuset-loadansixyvar ( -- )
267*bbf21555SRichard LoweSets $type to
268*bbf21555SRichard Lowe.Dq ansi
269*bbf21555SRichard Loweand calls menuset-loadxyvar.
270*bbf21555SRichard Lowe.It Ic menuset-unloadansixyvar ( -- )
271*bbf21555SRichard LoweSets $type to
272*bbf21555SRichard Lowe.Dq ansi
273*bbf21555SRichard Loweand calls menuset-unloadxyvar.
274*bbf21555SRichard Lowe.It Ic menuset-loadmenuxyvar ( -- )
275*bbf21555SRichard LoweSets $type to
276*bbf21555SRichard Lowe.Dq menu
277*bbf21555SRichard Loweand calls menuset-loadxyvar.
278*bbf21555SRichard Lowe.It Ic menuset-unloadmenuxyvar ( -- )
279*bbf21555SRichard LoweSets $type to
280*bbf21555SRichard Lowe.Dq menu
281*bbf21555SRichard Loweand calls menuset-unloadxyvar.
282*bbf21555SRichard Lowe.It Ic menuset-setnum-namevar ( N -- C-Addr/U )
283*bbf21555SRichard LoweTakes a single integer on the stack and replaces it with a string (in c-addr/u
284*bbf21555SRichard Loweformat) whose value is
285*bbf21555SRichard Lowe.Dq menuset_nameN .
286*bbf21555SRichard LoweFor example, if given 1 returns
287*bbf21555SRichard Lowe.Dq menuset_name1 .
288*bbf21555SRichard Lowe.It Ic menuset-cleanup ( N -- )
289*bbf21555SRichard LoweUnsets all the various temporary variables, currently
290*bbf21555SRichard Lowe.Va type ,
291*bbf21555SRichard Lowe.Va var ,
292*bbf21555SRichard Lowe.Va x ,
293*bbf21555SRichard Lowe.Va y ,
294*bbf21555SRichard Loweand
295*bbf21555SRichard Lowe.Va affix .
296*bbf21555SRichard Lowe.El
297*bbf21555SRichard Lowe.Pp
298*bbf21555SRichard LoweFor all values of
299*bbf21555SRichard Lowe.Dq Li x
300*bbf21555SRichard Loweabove, use any number between 1 through 9. Sorry, double-digits are not
301*bbf21555SRichard Lowecurrently supported.
302*bbf21555SRichard LoweFor all values of
303*bbf21555SRichard Lowe.Dq Li N
304*bbf21555SRichard Loweabove, use any number between 1 and 65535.
305*bbf21555SRichard Lowe.Sh FILES
306*bbf21555SRichard Lowe.Bl -tag -width /boot/menu-commands.4th -compact
307*bbf21555SRichard Lowe.It Pa /boot/loader
308*bbf21555SRichard LoweThe
309*bbf21555SRichard Lowe.Xr loader 7 .
310*bbf21555SRichard Lowe.It Pa /boot/forth/menu.4th
311*bbf21555SRichard LoweDynamic menu module.
312*bbf21555SRichard Lowe.It Pa /boot/forth/menu-commands.4th
313*bbf21555SRichard LoweContains the goto_menu command.
314*bbf21555SRichard Lowe.It Pa /boot/forth/menusets.4th
315*bbf21555SRichard Lowe.Nm
316*bbf21555SRichard Loweitself.
317*bbf21555SRichard Lowe.It Pa /boot/loader.rc
318*bbf21555SRichard Lowe.Xr loader 7
319*bbf21555SRichard Lowebootstrapping script.
320*bbf21555SRichard Lowe.El
321*bbf21555SRichard Lowe.Sh EXAMPLES
322*bbf21555SRichard LoweA simple boot menu with a submenu:
323*bbf21555SRichard Lowe.Pp
324*bbf21555SRichard Lowe.Bd -literal -offset indent -compact
325*bbf21555SRichard Loweinclude /boot/forth/menu.4th
326*bbf21555SRichard Loweinclude /boot/forth/menu-commands.4th
327*bbf21555SRichard Lowemenu-init
328*bbf21555SRichard Loweset menuset1_caption[1]="Boot"
329*bbf21555SRichard Loweset menuset1_command[1]="boot"
330*bbf21555SRichard Loweset menuset1_caption[2]="Submenu..."
331*bbf21555SRichard Loweset menuset1_command[2]="2 goto_menu"
332*bbf21555SRichard Loweset menuset2_caption[1]="Back"
333*bbf21555SRichard Loweset menuset2_command[1]="1 goto_menu"
334*bbf21555SRichard Loweset menuset_initial=2
335*bbf21555SRichard Lowemenuset-loadinitial
336*bbf21555SRichard Lowemenu-display
337*bbf21555SRichard Lowe.Ed
338*bbf21555SRichard Lowe.Pp
339*bbf21555SRichard LoweThe same boot menu with named menusets:
340*bbf21555SRichard Lowe.Pp
341*bbf21555SRichard Lowe.Bd -literal -offset indent -compact
342*bbf21555SRichard Loweinclude /boot/forth/menu.4th
343*bbf21555SRichard Loweinclude /boot/forth/menu-commands.4th
344*bbf21555SRichard Lowemenu-init
345*bbf21555SRichard Loweset menuset_name1=main
346*bbf21555SRichard Loweset mainmenu_caption[1]="Boot"
347*bbf21555SRichard Loweset mainmenu_command[1]="boot"
348*bbf21555SRichard Loweset mainmenu_caption[2]="Submenu..."
349*bbf21555SRichard Loweset mainmenu_command[2]="2 goto_menu"
350*bbf21555SRichard Loweset menuset_name2=sub
351*bbf21555SRichard Loweset submenu_caption[1]="Back"
352*bbf21555SRichard Loweset submenu_command[1]="1 goto_menu"
353*bbf21555SRichard Lowe.Ed
354*bbf21555SRichard Lowe.Sh SEE ALSO
355*bbf21555SRichard Lowe.Xr loader.conf 5 ,
356*bbf21555SRichard Lowe.Xr beastie.4th 7 ,
357*bbf21555SRichard Lowe.Xr loader 7 ,
358*bbf21555SRichard Lowe.Xr loader.4th 7 ,
359*bbf21555SRichard Lowe.Xr menu.4th 7
360