Annotation of qemu/roms/openbios/forth/bootstrap/start.fs, revision 1.1.1.1

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: ;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.