[gforth] / gforth / comp-i.fs  

gforth: gforth/comp-i.fs

Diff for /gforth/comp-i.fs between version 1.2 and 1.6

version 1.2, Sat Mar 21 21:36:56 1998 UTC version 1.6, Fri Jan 19 21:07:05 2001 UTC
Line 1 
Line 1 
 \ Compare nonrelocatable images and produce a relocatable image  \ Compare nonrelocatable images and produce a relocatable image
   
 \ Copyright (C) 1996-1997 Free Software Foundation, Inc.  \ Copyright (C) 1996,1997,1998 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 16 
Line 16 
   
 \ You should have received a copy of the GNU General Public License  \ You should have received a copy of the GNU General Public License
 \ along with this program; if not, write to the Free Software  \ along with this program; if not, write to the Free Software
 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
 s" address-unit-bits" environment? drop constant bits/au  s" address-unit-bits" environment? drop constant bits/au
 6 constant dodoes-tag  6 constant dodoes-tag
Line 80 
Line 80 
         endif          endif
     loop ;      loop ;
   
 : slurp-file ( c-addr1 u1 -- c-addr2 u2 )  
     \ c-addr1 u1 is the filename, c-addr2 u2 is the file's contents  
     r/o bin open-file throw >r  
     r@ file-size throw abort" file too large"  
     dup allocate throw swap  
     2dup r@ read-file throw over <> abort" could not read whole file"  
     r> close-file throw ;  
   
 : comp-image ( "image-file1" "image-file2" "new-image" -- )  : comp-image ( "image-file1" "image-file2" "new-image" -- )
     name slurp-file { image1 size1 }      name slurp-file { image1 size1 }
     image1 size1 s" Gforth1" search 0= abort" not a Gforth image"      image1 size1 s" Gforth2" search 0= abort" not a Gforth image"
     drop 8 + image1 - { header-offset }      drop 8 + image1 - { header-offset }
     size1 aligned size1 <> abort" unaligned image size"      size1 aligned size1 <> abort" unaligned image size"
     size1 image1 header-offset + 2 cells + @ header-offset + <> abort" header gives wrong size"      size1 image1 header-offset + 2 cells + @ header-offset + <> abort" header gives wrong size"


Generate output suitable for use with a patch program
Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help