Diff for /gforth/compat/struct.fs between versions 1.4 and 1.7

version 1.4, 1997/07/31 16:17:23 version 1.7, 2007/02/08 14:07:28
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 82  cell% 2*              2constant double% Line 84  cell% 2*              2constant double%
 : %allocate ( align size -- addr ior )  : %allocate ( align size -- addr ior )
     nip allocate ;      nip allocate ;
   
 : %alloc ( size align -- addr )  : %alloc ( align size -- addr )
     %allocate throw ;      %allocate throw ;

Removed from v.1.4  
changed lines
  Added in v.1.7


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