Diff for /gforth/compat/struct.fs between versions 1.3 and 1.6

version 1.3, 1997/06/23 15:54:02 version 1.6, 1999/02/22 21:39:43
Line 23 Line 23
 \ from MEMORY :  \ from MEMORY :
 \ allocate   \ allocate 
   
 : nalign ( addr1 n -- addr2 )  : naligned ( addr1 n -- addr2 )
 \ addr2 is the aligned version of addr1 wrt the alignment size n      \ addr2 is the aligned version of addr1 wrt the alignment size n
  1- tuck +  swap invert and ;      1- tuck +  swap invert and ;
   
   : nalign naligned ; \ old name, obsolete
   
 : dofield ( -- )  : dofield ( -- )
 does> ( name execution: addr1 -- addr2 )  does> ( name execution: addr1 -- addr2 )
Line 37  does> ( name execution: -- ) Line 39  does> ( name execution: -- )
     drop ;      drop ;
   
 : create-field ( align1 offset1 align size "name" --  align2 offset2 )  : create-field ( align1 offset1 align size "name" --  align2 offset2 )
     create rot dup , ( align1 align size offset1 )      create swap rot over nalign dup , ( align1 size align offset )
     + >r nalign r> ;      rot + >r nalign r> ;
   
 : field ( align1 offset1 align size "name" --  align2 offset2 )  : field ( align1 offset1 align size "name" --  align2 offset2 )
     \ name execution: addr1 -- addr2      \ name execution: addr1 -- addr2
Line 66  does> ( name execution: -- ) Line 68  does> ( name execution: -- )
 cell% 2*              2constant double%  cell% 2*              2constant double%
   
 \ memory allocation words  \ memory allocation words
   : %alignment ( align size -- align )
       drop ;
   
   : %size ( align size -- size )
       nip ;
   
 : %align ( align size -- )  : %align ( align size -- )
     drop here swap nalign here - allot ;      drop here swap nalign here - allot ;
   

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


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