Diff for /gforth/comp-i.fs between versions 1.1 and 1.6

version 1.1, 1997/05/21 20:39:19 version 1.6, 2001/01/19 21:07:05
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 47  s" address-unit-bits" environment? drop Line 47  s" address-unit-bits" environment? drop
     if      if
         ." images have the same code base address; producing only a data-relocatable image" cr          ." images have the same code base address; producing only a data-relocatable image" cr
     else      else
         coffset abs 11 cells <> abort" images produced by different engines"          coffset abs 22 cells <> abort" images produced by different engines"
         ." code offset=" coffset . cr          ." code offset=" coffset . cr
         0 image1 cell+ ! 0 image2 cell+ !          0 image1 cell+ ! 0 image2 cell+ !
     endif      endif
Line 80  s" address-unit-bits" environment? drop Line 80  s" address-unit-bits" environment? drop
         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"

Removed from v.1.1  
changed lines
  Added in v.1.6


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>