Lines Matching +full:- +full:set

26 marker task-menusets.4th
28 vocabulary menusets-infrastructure
29 only forth also menusets-infrastructure definitions
37 : menuset-loadvar ( -- )
40 \ $type should be set to one of:
42 \ $var should be set to one of:
47 s" set cmdbuf='set ${type}_${var}=\$'" evaluate
48 s" cmdbuf" getenv swap drop ( -- u1 ) \ get string length
50 s" set cmdbuf=${cmdbuf}${affix}${type}_${var}"
51 ( u1 -- u1 c-addr2 u2 )
53 s" set cmdbuf=${cmdbuf}${type}set${affix}_${var}"
54 ( u1 -- u1 c-addr2 u2 )
56 evaluate ( u1 c-addr2 u2 -- u1 )
57 s" cmdbuf" getenv ( u1 -- u1 c-addr2 u2 )
58 rot 2 pick 2 pick over + -rot + tuck -
59 ( u1 c-addr2 u2 -- c-addr2 u2 c-addr1 u1 )
61 getenv dup -1 = if
62 ( c-addr2 u2 c-addr1 u1 -- c-addr2 u2 -1 )
63 \ NOT set -- clean up the stack
64 drop ( c-addr2 u2 -1 -- c-addr2 u2 )
65 2drop ( c-addr2 u2 -- )
67 ( c-addr2 u2 c-addr1 u1 -- c-addr2 u2 c-addr1 u1 )
68 \ SET -- execute cmdbuf (c-addr2/u2) to inherit value
69 2drop ( c-addr2 u2 c-addr1 u1 -- c-addr2 u2 )
70 evaluate ( c-addr2 u2 -- )
76 : menuset-unloadvar ( -- )
79 \ $type should be set to one of:
81 \ $var should be set to one of:
87 s" set buf=${affix}${type}_${var}"
89 s" set buf=${type}set${affix}_${var}"
96 : menuset-loadmenuvar ( -- )
97 s" set type=menu" evaluate
98 menuset-loadvar
101 : menuset-unloadmenuvar ( -- )
102 s" set type=menu" evaluate
103 menuset-unloadvar
106 : menuset-loadxvar ( -- )
109 \ $type should be set to one of:
111 \ $var should be set to one of:
117 s" set cmdbuf='set ${type}_${var}[${x}]=\$'" evaluate
118 s" cmdbuf" getenv swap drop ( -- u1 ) \ get string length
120 s" set cmdbuf=${cmdbuf}${affix}${type}_${var}[${x}]"
121 ( u1 -- u1 c-addr2 u2 )
123 s" set cmdbuf=${cmdbuf}${type}set${affix}_${var}[${x}]"
124 ( u1 -- u1 c-addr2 u2 )
126 evaluate ( u1 c-addr2 u2 -- u1 )
127 s" cmdbuf" getenv ( u1 -- u1 c-addr2 u2 )
128 rot 2 pick 2 pick over + -rot + tuck -
129 ( u1 c-addr2 u2 -- c-addr2 u2 c-addr1 u1 )
131 getenv dup -1 = if
132 ( c-addr2 u2 c-addr1 u1 -- c-addr2 u2 -1 )
133 \ NOT set -- clean up the stack
134 drop ( c-addr2 u2 -1 -- c-addr2 u2 )
135 2drop ( c-addr2 u2 -- )
137 ( c-addr2 u2 c-addr1 u1 -- c-addr2 u2 c-addr1 u1 )
138 \ SET -- execute cmdbuf (c-addr2/u2) to inherit value
139 2drop ( c-addr2 u2 c-addr1 u1 -- c-addr2 u2 )
140 evaluate ( c-addr2 u2 -- )
146 : menuset-unloadxvar ( -- )
149 \ $type should be set to one of:
151 \ $var should be set to one of:
158 s" set buf=${affix}${type}_${var}[${x}]"
160 s" set buf=${type}set${affix}_${var}[${x}]"
167 : menuset-loadansixvar ( -- )
168 s" set type=ansi" evaluate
169 menuset-loadxvar
172 : menuset-unloadansixvar ( -- )
173 s" set type=ansi" evaluate
174 menuset-unloadxvar
177 : menuset-loadmenuxvar ( -- )
178 s" set type=menu" evaluate
179 menuset-loadxvar
182 : menuset-unloadmenuxvar ( -- )
183 s" set type=menu" evaluate
184 menuset-unloadxvar
187 : menuset-loadtoggledxvar ( -- )
188 s" set type=toggled" evaluate
189 menuset-loadxvar
192 : menuset-unloadtoggledxvar ( -- )
193 s" set type=toggled" evaluate
194 menuset-unloadxvar
197 : menuset-loadxyvar ( -- )
200 \ $type should be set to one of:
202 \ $var should be set to one of:
209 s" set cmdbuf='set ${type}_${var}[${x}][${y}]=\$'" evaluate
210 s" cmdbuf" getenv swap drop ( -- u1 ) \ get string length
212 s" set cmdbuf=${cmdbuf}${affix}${type}_${var}[${x}][${y}]"
213 ( u1 -- u1 c-addr2 u2 )
215 s" set cmdbuf=${cmdbuf}${type}set${affix}_${var}[${x}][${y}]"
216 ( u1 -- u1 c-addr2 u2 )
218 evaluate ( u1 c-addr2 u2 -- u1 )
219 s" cmdbuf" getenv ( u1 -- u1 c-addr2 u2 )
220 rot 2 pick 2 pick over + -rot + tuck -
221 ( u1 c-addr2 u2 -- c-addr2 u2 c-addr1 u1 )
223 getenv dup -1 = if
224 ( c-addr2 u2 c-addr1 u1 -- c-addr2 u2 -1 )
225 \ NOT set -- clean up the stack
226 drop ( c-addr2 u2 -1 -- c-addr2 u2 )
227 2drop ( c-addr2 u2 -- )
229 ( c-addr2 u2 c-addr1 u1 -- c-addr2 u2 c-addr1 u1 )
230 \ SET -- execute cmdbuf (c-addr2/u2) to inherit value
231 2drop ( c-addr2 u2 c-addr1 u1 -- c-addr2 u2 )
232 evaluate ( c-addr2 u2 -- )
238 : menuset-unloadxyvar ( -- )
241 \ $type should be set to one of:
243 \ $var should be set to one of:
251 s" set buf=${affix}${type}_${var}[${x}][${y}]"
253 s" set buf=${type}set${affix}_${var}[${x}][${y}]"
260 : menuset-loadansixyvar ( -- )
261 s" set type=ansi" evaluate
262 menuset-loadxyvar
265 : menuset-unloadansixyvar ( -- )
266 s" set type=ansi" evaluate
267 menuset-unloadxyvar
270 : menuset-loadmenuxyvar ( -- )
271 s" set type=menu" evaluate
272 menuset-loadxyvar
275 : menuset-unloadmenuxyvar ( -- )
276 s" set type=menu" evaluate
277 menuset-unloadxyvar
280 : menuset-setnum-namevar ( N -- C-Addr/U )
282 s" menuset_nameNNNNN" ( n -- n c-addr1 u1 ) \ variable basename
283 drop 12 ( n c-addr1 u1 -- n c-addr1 12 ) \ remove "NNNNN"
284 rot ( n c-addr1 12 -- c-addr1 12 n ) \ move number on top
287 s>d <# #s #> ( c-addr1 12 n -- c-addr1 12 c-addr2 u2 )
290 begin ( using u2 in c-addr2/u2 pair as countdown to zero )
291 over ( c-addr1 u1 c-addr2 u2 -- continued below )
292 ( c-addr1 u1 c-addr2 u2 c-addr2 ) \ copy src-addr
293 c@ ( c-addr1 u1 c-addr2 u2 c-addr2 -- continued below )
294 ( c-addr1 u1 c-addr2 u2 c ) \ get next src-addr byte
296 ( c-addr1 u1 c-addr2 u2 c -- continued below )
297 ( c-addr1 u1 c-addr2 u2 c c-addr1 u1 )
298 \ get destination c-addr1/u1 pair
299 + ( c-addr1 u1 c-addr2 u2 c c-addr1 u1 -- cont. below )
300 ( c-addr1 u1 c-addr2 u2 c c-addr3 )
301 \ combine dest-c-addr to get dest-addr for byte
302 c! ( c-addr1 u1 c-addr2 u2 c c-addr3 -- continued below )
303 ( c-addr1 u1 c-addr2 u2 )
304 \ store the current src-addr byte into dest-addr
306 2swap 1+ 2swap \ increment u1 in destination c-addr1/u1 pair
307 swap 1+ swap \ increment c-addr2 in source c-addr2/u2 pair
308 1- \ decrement u2 in the source c-addr2/u2 pair
313 2drop ( c-addr1 u1 c-addr2 u2 -- c-addr1 u1 )
314 \ drop temporary number-format conversion c-addr2/u2
317 : menuset-checksetnum ( N -- )
320 \ adjust input to be both positive and no-higher than 65535
322 abs dup 65535 > if drop 65535 then ( n -- n )
326 \ methodology (referencing the original numeric stack-input), or if-
331 false menuset_use_name ! \ assume name is not set
333 menuset-setnum-namevar
338 2dup ( c-addr1 u1 -- c-addr1 u1 c-addr1 u1 ) \ save a copy
339 getenv dup -1 <> if ( c-addr1 u1 c-addr1 u1 -- c-addr1 u1 c-addr2 u2 )
340 \ The variable is set. Let's clean up the stack leaving only
344 2swap 2drop ( c-addr1 u1 c-addr2 u2 -- c-addr2 u2 )
346 else ( c-addr1 u1 c-addr1 u1 -- c-addr1 u1 -1 ) \ no such variable
347 \ The variable is not set. Let's clean up the stack leaving the
350 drop ( c-addr1 u1 -1 -- c-addr1 u1 ) \ drop -1 result
351 12 - swap 12 + swap ( c-addr1 u1 -- c-addr2 u2 )
352 \ truncate to original numeric stack-input
356 \ Now, depending on whether $menuset_name{N} has been set, we have
358 \ variables or we have a string representing the numeric stack-input
359 \ to be used as a "set{N}" infix to the same menu_* variables.
361 \ For example, if the stack-input is 1 and menuset_name1 is NOT set
363 \ ansiset1_caption[x] -> ansi_caption[x]
364 \ ansiset1_caption[x][y] -> ansi_caption[x][y]
365 \ menuset1_acpi -> menu_acpi
366 \ menuset1_caption[x] -> menu_caption[x]
367 \ menuset1_caption[x][y] -> menu_caption[x][y]
368 \ menuset1_command[x] -> menu_command[x]
369 \ menuset1_init -> ``evaluated''
370 \ menuset1_init[x] -> menu_init[x]
371 \ menuset1_kernel -> menu_kernel
372 \ menuset1_keycode[x] -> menu_keycode[x]
373 \ menuset1_options -> menu_options
374 \ menuset1_optionstext -> menu_optionstext
375 \ menuset1_reboot -> menu_reboot
376 \ toggledset1_ansi[x] -> toggled_ansi[x]
377 \ toggledset1_text[x] -> toggled_text[x]
379 \ represents the value of $menuset_name1 (given 1 as stack-input):
380 \ {name}ansi_caption[x] -> ansi_caption[x]
381 \ {name}ansi_caption[x][y] -> ansi_caption[x][y]
382 \ {name}menu_acpi -> menu_acpi
383 \ {name}menu_caption[x] -> menu_caption[x]
384 \ {name}menu_caption[x][y] -> menu_caption[x][y]
385 \ {name}menu_command[x] -> menu_command[x]
386 \ {name}menu_init -> ``evaluated''
387 \ {name}menu_init[x] -> menu_init[x]
388 \ {name}menu_kernel -> menu_kernel
389 \ {name}menu_keycode[x] -> menu_keycode[x]
390 \ {name}menu_options -> menu_options
391 \ {name}menu_optionstext -> menu_optionstext
392 \ {name}menu_reboot -> menu_reboot
393 \ {name}toggled_ansi[x] -> toggled_ansi[x]
394 \ {name}toggled_text[x] -> toggled_text[x]
397 \ for the entire menu (for wholly dynamic menus) opposed to the per-
398 \ menuitem initializers (with [x] afterward). The whole-menu init
401 \ can initialize the menuset before we transfer it to active-duty.
406 \ to our buffer so that we can safely use the s-quote (s") buf again.
408 menuset_affixbuf 0 2swap ( c-addr2 u2 -- c-addr1 0 c-addr2 u2 )
409 begin ( using u2 in c-addr2/u2 pair as countdown to zero )
410 over ( c-addr1 u1 c-addr2 u2 -- c-addr1 u1 c-addr2 u2 c-addr2 )
411 c@ ( c-addr1 u1 c-addr2 u2 -- c-addr1 u1 c-addr2 u2 c )
413 ( c-addr1 u1 c-addr2 u2 c -- continued below )
414 ( c-addr1 u1 c-addr2 u2 c c-addr1 u1 )
415 + ( c-addr1 u1 c-addr2 u2 c c-addr1 u1 -- continued below )
416 ( c-addr1 u1 c-addr2 u2 c c-addr3 )
417 c! ( c-addr1 u1 c-addr2 u2 c c-addr3 -- continued below )
418 ( c-addr1 u1 c-addr2 u2 )
420 swap 1+ swap \ increment strbuf pointer (source c-addr2)
421 1- \ decrement strbuf byte count (source u2)
424 2drop ( c-addr1 u1 c-addr2 u2 -- c-addr1 u1 ) \ drop strbuf c-addr2/u2
431 s" affix" setenv ( c-addr1 u1 -- )
434 : menuset-cleanup ( -- )
442 only forth definitions also menusets-infrastructure
444 : menuset-loadsetnum ( N -- )
446 menuset-checksetnum ( n -- )
450 \ dealing with variable-length strings easier.
457 s" set var=init" evaluate
458 menuset-loadmenuvar
460 \ If menu_init was set by the above, evaluate it here-and-now
462 s" menu_init" 2dup getenv dup -1 <> if
463 2swap unsetenv \ don't want later menu-create to re-call this
466 drop 2drop ( n c-addr u -1 -- n )
469 [char] 1 ( -- x ) \ Loop range ASCII '1' (49) to '8' (56)
471 dup menuset_x tuck c! 1 s" x" setenv \ set loop iterator and $x
473 s" set var=caption" evaluate
476 menuset-loadmenuxvar
479 menuset-loadansixvar
481 [char] 0 ( x -- x y ) \ Inner Loop ASCII '1' (48) to '9' (57)
484 \ set inner loop iterator and $y
487 menuset-loadmenuxyvar
490 menuset-loadansixyvar
492 1+ dup 57 > ( x y -- y' 0|-1 ) \ increment and test
494 drop ( x y -- x )
497 s" set var=command" evaluate
498 menuset-loadmenuxvar
501 s" set var=init" evaluate
502 menuset-loadmenuxvar
505 s" set var=keycode" evaluate
506 menuset-loadmenuxvar
509 s" set var=text" evaluate
510 menuset-loadtoggledxvar
513 s" set var=ansi" evaluate
514 menuset-loadtoggledxvar
516 1+ dup 56 > ( x -- x' 0|-1 ) \ increment iterator
519 drop ( x -- ) \ loop iterator
522 s" set var=reboot" evaluate
523 menuset-loadmenuvar
526 s" set var=acpi" evaluate
527 menuset-loadmenuvar
530 s" set var=kernel" evaluate
531 menuset-loadmenuvar
534 s" set var=options" evaluate
535 menuset-loadmenuvar
538 s" set var=optionstext" evaluate
539 menuset-loadmenuvar
541 menuset-cleanup
544 : menusets-unset ( -- )
549 dup menuset-checksetnum ( n n -- n )
551 dup menuset-setnum-namevar ( n n -- n )
558 s" set buf=${affix}menu_caption[1]"
560 s" set buf=menuset${affix}_caption[1]"
562 evaluate s" buf" getenv getenv -1 = if
563 drop ( n -- )
565 menuset-cleanup
568 drop ( n c-addr2 -- n ) \ unused
571 [char] 1 ( n -- n x ) \ Loop range ASCII '1' (49) to '8' (56)
573 dup menuset_x tuck c! 1 s" x" setenv \ set $x to x
575 s" set var=caption" evaluate
576 menuset-unloadmenuxvar
577 menuset-unloadmenuxvar
578 menuset-unloadansixvar
579 [char] 0 ( n x -- n x y ) \ Inner loop '0' to '9'
583 menuset-unloadmenuxyvar
584 menuset-unloadansixyvar
585 1+ dup 57 > ( n x y -- n x y' 0|-1 )
587 drop ( n x y -- n x )
588 s" set var=command" evaluate menuset-unloadmenuxvar
589 s" set var=init" evaluate menuset-unloadmenuxvar
590 s" set var=keycode" evaluate menuset-unloadmenuxvar
591 s" set var=text" evaluate menuset-unloadtoggledxvar
592 s" set var=ansi" evaluate menuset-unloadtoggledxvar
594 1+ dup 56 > ( x -- x' 0|-1 ) \ increment and test
596 drop ( n x -- n ) \ loop iterator
598 s" set var=acpi" evaluate menuset-unloadmenuvar
599 s" set var=init" evaluate menuset-unloadmenuvar
600 s" set var=kernel" evaluate menuset-unloadmenuvar
601 s" set var=options" evaluate menuset-unloadmenuvar
602 s" set var=optionstext" evaluate menuset-unloadmenuvar
603 s" set var=reboot" evaluate menuset-unloadmenuvar
605 1+ dup 65535 > ( n -- n' 0|-1 ) \ increment and test
607 drop ( n' -- ) \ loop iterator
610 menuset-cleanup
615 : menuset-loadinitial ( -- )
616 s" menuset_initial" getenv dup -1 <> if
618 menuset-loadsetnum