Date: Sun, 20 Dec 1998 20:58:12 +0900 From: "Daniel C. Sobral" <dcs@newsguy.com> To: Andrzej Bialecki <abial@nask.pl> Cc: freebsd-current@FreeBSD.ORG Subject: Re: BootFORTH - demo floppy Message-ID: <367CE654.CCB48556@newsguy.com> References: <Pine.BSF.4.02A.9812192234070.20141-100000@korin.warman.org.pl>
next in thread | previous in thread | raw e-mail | index | archive | help
Andrzej Bialecki wrote:
>
> The built-ins I was talking about are the original bootloader commands,
> such as set, show, load, boot, reboot, pnpscan, ls etc..., which need
> closer integrations with Forth engine. Namely, they should recognize the
> state (either interpretive, or compiling), and be able to accept
> parameters either from command line (like: "load -t userconfig_script
> kernel.config" when interpreting), or from the stack (like:
>
> s" kernel.config"
> s" userconfig_script"
> s" -t"
> load
>
> when compiling). As it is now, we cannot use the full Forth power to
> program booting behaviour because of this deficiency.
Well, aside from being... well... ugly, you _can_ wrap it like:
80 constant Buffersize
Create Buffer Buffersize allot
: cat
>r over >r \ save sizes
dup >r \ save original append position
swap move \ append
r> r@ + \ skip newly added string
bl over c! \ add a space...
1+ \ ...and skip it
r> r> + 1+ \ new size
;
: concatenate_command_and_arguments
>r \ Save number of strings
buffer 0 \ Destination of copy
r> 0 do \ Copy all strings
cat
loop
0 rot c! \ Null-terminate the buffer, because of problems with
evaluate
Buffer swap \ return begin-of-buffer, size
;
: insert_command
rot 1+
;
: wrapper
insert_command
concatenate_command_and_arguments
evaluate
;
: wrap" postpone s" postpone wrapper ; immediate
And then do:
> s" kernel.config"
> s" userconfig_script"
> s" -t"
3
> wrap" load"
in compile mode (inside a definition).
I'll see what I can do after I get the source, but that will have to
wait a new hd. Meanwhile...
1) Could someone please add a key pause to "words"? :-)
2) Could someone please add the 30-years old traditional
"ok<newline>" prompt in interpreting mode?
3) I noticed "evaluate" is working with null-ended string, ignoring
completely the count on the stack. Not good.
--
Daniel C. Sobral (8-DCS)
dcs@newsguy.com
"This never happened to the other fellow!"
- The second James Bond
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?367CE654.CCB48556>
