[OpenBIOS] r463 - forth/lib ofw/core
svn at openbios.org
svn at openbios.org
Thu Jul 5 19:26:58 CEST 2007
Author: wmb
Date: 2007-07-05 19:26:58 +0200 (Thu, 05 Jul 2007)
New Revision: 463
Added:
forth/lib/binhdr.fth
ofw/core/clntmap.fth
ofw/core/startup.fth
Log:
Added some common files needed by the PowerPC version.
Added: forth/lib/binhdr.fth
===================================================================
--- forth/lib/binhdr.fth (rev 0)
+++ forth/lib/binhdr.fth 2007-07-05 17:26:58 UTC (rev 463)
@@ -0,0 +1,58 @@
+purpose: Header for Forth ".exe" file to be executed by the C wrapper program.
+\ See license at end of file
+
+hex
+
+only forth also hidden also
+forth definitions
+headerless
+
+hidden definitions
+th 20 buffer: bin-header
+: hfield \ name ( offset size -- offset' )
+ create
+ over , +
+ does> ( struct-base -- field-addr )
+ @ bin-header +
+;
+: long 4 hfield ;
+
+struct ( Binary header)
+ long h_magic ( 0) \ Magic Number
+ long h_tlen ( 4) \ length of text (code)
+ long h_dlen ( 8) \ length of initialized data
+ long h_blen ( c) \ length of BSS unitialized data
+ long h_slen ( 10) \ length of symbol table
+ long h_entry ( 14) \ Entry address
+ long h_trlen ( 18) \ Text Relocation Table length
+ long h_drlen ( 1c) \ Data Relocation Table length
+constant /bin-header ( 20)
+
+: text-size ( -- size-of-dictionary ) dictionary-size aligned ;
+headers
+
+only forth also definitions
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2007 FirmWorks
+\
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END
Added: ofw/core/clntmap.fth
===================================================================
--- ofw/core/clntmap.fth (rev 0)
+++ ofw/core/clntmap.fth 2007-07-05 17:26:58 UTC (rev 463)
@@ -0,0 +1,62 @@
+purpose: Use client callbacks, if installed, for address translation
+\ See license at end of file
+
+warning off
+: map ( phys.. virtual size mode -- )
+ vector @ 0= if map exit then
+[ifdef] 2-address-cells
+ \ ??? is the operand order correct? Other possibilities are:
+ \ dup 2 pick 4 pick 6 pick 8 pick
+ \ 4 pick 4 pick 4 pick 4 pick 4 pick
+ dup 2 pick 4 pick 7 pick 7 pick 5 " map" ['] $callback catch if
+ 3drop 3drop 2drop map
+ else ( phys.lo phys.hi virtual size mode 0 )
+ 3drop 3drop
+ then
+[else]
+ dup 2 pick 4 pick 6 pick 4 " map" ['] $callback catch if
+ 3drop 3drop drop map
+ else ( phys virtual size mode 0 )
+ 3drop 2drop
+ then
+[then]
+;
+: translate ( virtual -- false | physical mode true )
+ vector @ 0= if translate exit then
+ dup 1 " translate" ['] $callback catch if ( virtual x x x x )
+ 2drop 2drop translate exit
+ then ( false 1 | phys.. mode true n )
+ drop
+;
+: unmap ( virtual len -- )
+ vector @ 0= if unmap exit then
+ dup 2 pick 2 " unmap" ['] $callback catch if ( virt len x x x x x )
+ 2drop 3drop unmap exit
+ then ( virt len #returns )
+ 3drop
+;
+warning on
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2007 FirmWorks
+\
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END
Added: ofw/core/startup.fth
===================================================================
--- ofw/core/startup.fth (rev 0)
+++ ofw/core/startup.fth 2007-07-05 17:26:58 UTC (rev 463)
@@ -0,0 +1,48 @@
+purpose: Standard last-phase startup sequence
+copyright: Copyright 1997 Firmworks All Rights Reserved
+
+: restore-stdout ( -- )
+ " restore" stdout @ ['] $call-method catch if 3drop then
+;
+
+defer secondary-diagnostics ' noop to secondary-diagnostics
+
+defer kbd-extras \ for fan, key-chord
+' noop to kbd-extras
+
+: startup ( -- )
+ standalone? 0= if exit then
+
+ copy-reboot-info
+
+ \ Ensure a clean startup state regardless of the development
+ \ environment's use of these variables
+ 0 stdin ! 0 stdout ! 0 to my-self
+
+ " nvramrc" ?type
+ use-nvramrc? if nvramrc safe-evaluate then
+
+ install-alarm
+
+ auto-banner? if
+ " Probing" ?type probe-all
+ " Install console" ?type install-console
+ banner
+ then
+
+ hex
+ warning on
+ only forth also definitions
+
+\ install-alarm
+
+ #line off
+
+ secondary-diagnostics
+
+ kbd-extras
+ auto-boot
+ restore-stdout
+
+ user-interface
+;
More information about the OpenBIOS
mailing list