|
|
1.1 root 1: \ tag: forth bootstrap starter.
2: \
3: \ Copyright (C) 2003 Patrick Mauritz, Stefan Reinauer
4: \
5: \ See the file "COPYING" for further information about
6: \ the copyright and warranty status of this work.
7: \
8:
9: include bootstrap.fs \ all base words
10: include interpreter.fs \ interpreter
11: include builtin.fs \ builtin terminal.
12:
13: : include ( >filename<eol> -- )
14: linefeed parse $include
15: ;
16:
17: : encode-file ( >filename< > -- dictptr size )
18: parse-word $encode-file
19: ;
20:
21: : bye
22: s" Farewell!" cr type cr cr
23: 0 rdepth!
24: ;
25:
26: \ quit starts the outer interpreter of the forth system.
27: \ zech describes quit as being the outer interpreter, but
28: \ we split it apart to keep the interpreter elsewhere.
29:
30: : quit ( -- )
31: 2 rdepth!
32: outer-interpreter
33: ;
34:
35: \ initialize is the first forth word run by the kernel.
36: \ this word is automatically executed by the C core on start
37: \ and it's never left unless something goes really wrong or
38: \ the user decides to leave the engine.
39:
40: variable init-chain
41:
42: \ :noname <definition> ; initializer
43: : initializer ( xt -- )
44: here swap , 0 , \ xt, next
45: init-chain
46: begin dup @ while @ na1+ repeat
47: !
48: ;
49:
50: : initialize-forth ( startmem endmem -- )
51: over - init-mem
52: init-pockets
53: init-tmp-comp
54: init-builtin-terminal
55:
56: init-chain @ \ execute initializers
57: begin dup while
58: dup @ execute
59: na1+ @
60: repeat
61: drop
62: ;
63:
64: \ compiler entrypoint
65: : initialize ( startmem endmem -- )
66: initialize-forth
67: s" OpenBIOS kernel started." type cr
68: quit
69: ;
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.