Annotation of gforth/kernel/main.fs, revision 1.20
1.1 anton 1: \ MAIN.FS Kernal main load file 20may93jaw
2:
1.20 ! anton 3: \ Copyright (C) 1995,1996,1997,1998,2000 Free Software Foundation, Inc.
1.1 anton 4:
5: \ This file is part of Gforth.
6:
7: \ Gforth is free software; you can redistribute it and/or
8: \ modify it under the terms of the GNU General Public License
9: \ as published by the Free Software Foundation; either version 2
10: \ of the License, or (at your option) any later version.
11:
12: \ This program is distributed in the hope that it will be useful,
13: \ but WITHOUT ANY WARRANTY; without even the implied warranty of
14: \ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: \ GNU General Public License for more details.
16:
17: \ You should have received a copy of the GNU General Public License
18: \ along with this program; if not, write to the Free Software
19: \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20:
21: \ : include bl word count included ;
22: \ we want write include...
23:
24: \ : : ( -- colon-sys ) Header [ ' : @ ] ALiteral cfa, 0 ] ;
25: \ : ; ( colon-sys -- ) ?struc postpone exit reveal postpone [ ; immediate
26: \ : :noname ( -- xt colon-sys ) here [ ' : @ ] ALiteral cfa, 0 ] ;
27:
28: Create mach-file here over 1+ allot place
29:
1.18 jwilke 30: 0 [IF]
31: \ debugging: produce a relocation and a symbol table
32: s" rel-table" r/w create-file throw
33: Constant fd-relocation-table
34:
35: \ debuggging: produce a symbol table
36: s" sym-table" r/w create-file throw
37: Constant fd-symbol-table
38: [THEN]
39:
40:
41: bl word vocabulary find nip 0= [IF]
42: \ if search order stuff is missing assume we compile on a gforth
43: \ system and include it
44: \ We want the files taken from out current gforth installation
45: \ so we don't include relatively to this file
46:
47: require search.fs
1.19 pazsan 48: require environ.fs
49: require envos.fs
1.18 jwilke 50: require errors.fs
1.19 pazsan 51: require extend.fs \ load core-extended
52: require hash.fs
1.18 jwilke 53:
54: [THEN]
1.1 anton 55:
56: \ include etags.fs
57:
1.14 jwilke 58: include ./../cross.fs \ include cross-compiler
1.1 anton 59:
60: decimal
61:
1.11 pazsan 62: has? kernel-size makekernel ( size )
1.1 anton 63: \ create image-header
1.4 jwilke 64: has? header [IF]
1.1 anton 65: 0 A, \ base address
66: 0 , \ checksum
67: 0 , \ image size (without tags)
1.11 pazsan 68: >address , \ dict size
69: has? stack-size , \ data stack size
70: has? fstack-size , \ FP stack size
71: has? rstack-size , \ return stack size
72: has? lstack-size , \ locals stack size
1.1 anton 73: 0 A, \ code entry point
74: 0 A, \ throw entry point
1.11 pazsan 75: has? stack-size , \ unused (possibly tib stack size)
1.1 anton 76: 0 , \ unused
77: 0 , \ data stack base
78: 0 , \ fp stack base
79: 0 , \ return stack base
80: 0 , \ locals stack base
81: [THEN]
82:
83: UNLOCK ghost - drop \ ghost must exist because - would be treated as number
84: LOCK
85:
86: doc-off
1.4 jwilke 87: has? prims [IF]
1.14 jwilke 88: include ./aliases.fs \ include primitive aliases
1.1 anton 89: [ELSE]
90: prims-include
91: undef-words
1.17 pazsan 92: include prim.fs
1.1 anton 93: all-words UNLOCK LOCK
94: [THEN]
95: doc-on
96:
97: 0 AConstant forthstart
98:
1.14 jwilke 99: \ include ./vars.fs \ variables and other stuff
100: \ include kernel/version.fs \ is in $(build)/kernel
1.13 jwilke 101: include ./kernel.fs \ load kernel
1.15 jwilke 102: \ include ./special.fs \ special must be last!
1.14 jwilke 103: \ include ./errore.fs
1.13 jwilke 104: include ./doers.fs
1.4 jwilke 105: has? file [IF]
1.13 jwilke 106: include ./args.fs
107: include ./files.fs \ load file words
108: include ./paths.fs
109: include ./require.fs
1.1 anton 110: [THEN]
1.6 pazsan 111:
112: has? compiler [IF]
1.4 jwilke 113: has? glocals [IF]
1.13 jwilke 114: include ./cond.fs \ load IF and co
1.1 anton 115: [ELSE]
1.13 jwilke 116: include ./cond-old.fs \ load IF and co w/o locals
1.1 anton 117: [THEN]
1.2 pazsan 118: \ include arch/misc/tt.fs
119: \ include arch/misc/sokoban.fs
1.6 pazsan 120: [THEN]
1.15 jwilke 121: include ./quotes.fs
1.13 jwilke 122: include ./toolsext.fs
123: include ./tools.fs \ load tools ( .s dump )
124: include ./getdoers.fs
1.1 anton 125:
126: \ Setup 13feb93py
127:
1.4 jwilke 128: has? header [IF]
1.11 pazsan 129: \ UNLOCK
130: here >address 2 cells ! \ image size
131: ' boot >body 8 cells A! \ Entry point
132: \ LOCK
1.1 anton 133: [ELSE]
134: >boot
135: [THEN]
136:
1.16 jwilke 137: include ./pass.fs
138:
1.1 anton 139: .unresolved
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>