Initial commit of OpenSPARC T2 architecture model.
[OpenSPARC-T2-SAM] / obp / obp / fm / cwrapper / sparc / savefort.fth
\ ========== Copyright Header Begin ==========================================
\
\ Hypervisor Software File: savefort.fth
\
\ Copyright (c) 2006 Sun Microsystems, Inc. All Rights Reserved.
\
\ - Do no alter or remove copyright notices
\
\ - Redistribution and use of this software in source and binary forms, with
\ or without modification, are permitted provided that the following
\ conditions are met:
\
\ - Redistribution of source code must retain the above copyright notice,
\ this list of conditions and the following disclaimer.
\
\ - Redistribution in binary form must reproduce the above copyright notice,
\ this list of conditions and the following disclaimer in the
\ documentation and/or other materials provided with the distribution.
\
\ Neither the name of Sun Microsystems, Inc. or the names of contributors
\ may be used to endorse or promote products derived from this software
\ without specific prior written permission.
\
\ This software is provided "AS IS," without a warranty of any kind.
\ ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
\ INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
\ PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
\ MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
\ ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
\ DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
\ OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
\ FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
\ DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
\ ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
\ SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
\
\ You acknowledge that this software is not designed, licensed or
\ intended for use in the design, construction, operation or maintenance of
\ any nuclear facility.
\
\ ========== Copyright Header End ============================================
\ savefort.fth 2.5 94/09/01
\ Copyright 1985-1990 Bradley Forthware
\ save-forth ( filename -- )
\ Saves the Forth dictionary to a file so it may be later used under Unix
\
\ save-image ( header-adr header-len init-routine-name filename -- )
\ Primitive save routine. Saves the dictionary image to a file.
\ The header is placed at the start of the file. The latest definition
\ whose name is the same as the "init-routine-name" argument is
\ installed as the init-io routine.
only forth also hidden also forth definitions
headerless
: save-image ( header header-len init-routine-name filename -- )
new-file ( header header-len init-routine-name )
init-save ( header header-len )
( header header-len ) ofd @ fputs \ Write header
origin text-size ofd @ fputs \ Write dictionary
up@ user-size ofd @ fputs \ Write user area
ofd @ fclose
;
headers
0 value growth-size
\ Save an image of the target system in a file.
: save-forth ( str -- )
>r
30800008 h_magic l! \ This is a ba,a .+0x20 instruction
text-size h_tlen l! \ Set the text size in program header
user-size h_dlen l! \ Set the data size in program header
growth-size h_blen l! \ Set the bss size in program header
0 h_slen l! \ Set the symbol size in program header
origin h_entry l! \ Set the current starting address
0 h_trlen l! \ Set the relocation size
0 h_drlen l! \ Set the data relocation size
" unix-init-io" $find-name is init-io
bin-header /bin-header " unix-init" r> save-image
;
only forth also definitions