\ tag: forth bootstrap starter. \ \ Copyright (C) 2003 Patrick Mauritz, Stefan Reinauer \ \ See the file "COPYING" for further information about \ the copyright and warranty status of this work. \ include bootstrap.fs \ all base words include interpreter.fs \ interpreter include builtin.fs \ builtin terminal. : include ( >filename -- ) linefeed parse $include ; : encode-file ( >filename< > -- dictptr size ) parse-word $encode-file ; : bye s" Farewell!" cr type cr cr 0 rdepth! ; \ quit starts the outer interpreter of the forth system. \ zech describes quit as being the outer interpreter, but \ we split it apart to keep the interpreter elsewhere. : quit ( -- ) 2 rdepth! outer-interpreter ; \ initialize is the first forth word run by the kernel. \ this word is automatically executed by the C core on start \ and it's never left unless something goes really wrong or \ the user decides to leave the engine. variable init-chain \ :noname ; initializer : initializer ( xt -- ) here swap , 0 , \ xt, next init-chain begin dup @ while @ na1+ repeat ! ; : initialize-forth ( startmem endmem -- ) over - init-mem init-pockets init-tmp-comp init-builtin-terminal init-chain @ \ execute initializers begin dup while dup @ execute na1+ @ repeat drop ; \ compiler entrypoint : initialize ( startmem endmem -- ) initialize-forth s" OpenBIOS kernel started." type cr quit ;