| \ MAIN.FS Kernal main load file 20may93jaw |
\ MAIN.FS Kernal main load file 20may93jaw |
| |
|
| |
\ Copyright (C) 1995 Free Software Foundation, Inc. |
| |
|
| |
\ This file is part of Gforth. |
| |
|
| |
\ Gforth is free software; you can redistribute it and/or |
| |
\ modify it under the terms of the GNU General Public License |
| |
\ as published by the Free Software Foundation; either version 2 |
| |
\ of the License, or (at your option) any later version. |
| |
|
| |
\ This program is distributed in the hope that it will be useful, |
| |
\ but WITHOUT ANY WARRANTY; without even the implied warranty of |
| |
\ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| |
\ GNU General Public License for more details. |
| |
|
| |
\ You should have received a copy of the GNU General Public License |
| |
\ along with this program; if not, write to the Free Software |
| |
\ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
| |
|
| \ : include bl word count included ; |
\ : include bl word count included ; |
| \ we want write include... |
\ we want write include... |
| |
|
| \ : ; ( colon-sys -- ) ?struc postpone exit reveal postpone [ ; immediate |
\ : ; ( colon-sys -- ) ?struc postpone exit reveal postpone [ ; immediate |
| \ : :noname ( -- xt colon-sys ) here [ ' : @ ] ALiteral cfa, 0 ] ; |
\ : :noname ( -- xt colon-sys ) here [ ' : @ ] ALiteral cfa, 0 ] ; |
| |
|
| [IFUNDEF] vocabulary include search-order.fs [THEN] |
include search-order.fs |
| |
|
| |
\ include etags.fs |
| |
|
| include cross.fs \ include cross-compiler |
include cross.fs \ include cross-compiler |
| |
|
| decimal |
decimal |
| |
|
| 256 KB makekernal , 0 , 0 , 0 A, 0 A, 0 A, |
cell 2 = [IF] 32 [ELSE] 256 [THEN] KB makekernel ( size ) |
| |
\ create image-header |
| |
0 A, \ base address |
| |
0 , \ checksum |
| |
0 , \ image size (without tags) |
| |
, \ dict size |
| |
16 KB , \ data stack size |
| |
15 KB 512 + , \ FP stack size |
| |
15 KB , \ return stack size |
| |
14 KB 512 + , \ locals stack size |
| |
0 A, \ code entry point |
| |
0 A, \ throw entry point |
| |
16 KB , \ unused (possibly tib stack size) |
| |
0 , \ unused |
| |
0 , \ data stack base |
| |
0 , \ fp stack base |
| |
0 , \ return stack base |
| |
0 , \ locals stack base |
| |
|
| UNLOCK ghost - drop \ ghost must exist because - would be treated as number |
UNLOCK ghost - drop \ ghost must exist because - would be treated as number |
| LOCK |
LOCK |
| |
|
| 0 AConstant forthstart |
0 AConstant forthstart |
| |
|
| |
doc-off |
| include aliases.fs \ include primitive aliases |
include aliases.fs \ include primitive aliases |
| |
doc-on |
| \ include cond.fs \ conditional compile |
\ include cond.fs \ conditional compile |
| \ include patches.fs \ include primitive patches |
\ include patches.fs \ include primitive patches |
| |
|
| include vars.fs \ variables and other stuff |
include vars.fs \ variables and other stuff |
| include add.fs \ additional things |
include add.fs \ additional things |
| include errore.fs |
include errore.fs |
| include kernal.fs \ load kernal |
include version.fs |
| |
include kernel.fs \ load kernel |
| |
include conditionals.fs \ load IF and co |
| include extend.fs \ load core-extended |
include extend.fs \ load core-extended |
| include tools.fs \ load tools ( .s dump ) |
include tools.fs \ load tools ( .s dump ) |
| |
include toolsext.fs |
| |
include special.fs |
| \ include words.fs |
\ include words.fs |
| \ include wordinfo.fs |
\ include wordinfo.fs |
| \ include see.fs \ load see |
\ include see.fs \ load see |
| include toolsext.fs |
|
| \ include search-order.fs |
\ include search-order.fs |
| |
|
| \ Setup 13feb93py |
\ Setup 13feb93py |
| tudp H @ minimal udp ! |
tudp H @ minimal udp ! |
| decimal |
decimal |
| |
|
| \ 64 KB 0 cells ! \ total Space... defined above! |
here 2 cells ! \ image size |
| here 1 cells ! \ Size of the system |
' boot >body 8 cells ! \ Entry point |
| 16 KB 2 cells ! \ Return and fp stack size |
|
| ' boot >body 3 cells ! \ Entry point |
|
| |
|
| UNLOCK Tlast @ |
UNLOCK Tlast @ |
| LOCK |
LOCK |
| 1 cells - dup forth-wordlist ! Last ! |
1 cells - dup forth-wordlist ! Last ! |
| .unresolved |
.unresolved |
| |
|
| cr cr |
|
| cell bigendian |
|
| [IF] |
|
| dup 2 = [IF] save-cross kernl16b.fi [THEN] |
|
| dup 4 = [IF] save-cross kernl32b.fi [THEN] |
|
| dup 8 = [IF] save-cross kernl64b.fi [THEN] |
|
| [ELSE] |
|
| dup 2 = [IF] save-cross kernl16l.fi [THEN] |
|
| dup 4 = [IF] save-cross kernl32l.fi [THEN] |
|
| dup 8 = [IF] save-cross kernl64l.fi [THEN] |
|
| [THEN] drop cr |
|
| |
|
| bye |
|