anchor.diff:      drop 2drop
   ;
   
  -header code@
  -: code@
  -    h# 2000 or
  -;fallthru
   header execute
   : execute
       >r
   ;
   
  -header source
  -: source
  -    sourceC
  -;fallthru
  -
   header 2@
   : 2@ \ ( a -- lo hi )
       dup cell+ @ swap @
   ;
  -
  -: source! ( addr u -- ) \ set the source
  -    sourceC
  -;fallthru
   
   header 2!
   : 2! \ ( lo hi a -- )
       tuck !
       cell+ !
  +;
  +
  +header source
  +: source
  +    sourceC 2@
  +;
  +
  +: source! ( addr u -- ) \ set the source
  +    sourceC 2!
   ;
   
   \ From Forth200x - public domain
  
positive.code: \   (doubleAlso) ( c-addr u -- x 1 | x x 2 )
  \               If the string is legal, give a single or double cell number
  \               and size of the number.
  header negate   : negate    invert ;fallthru
  header 1+       : 1+        d# 1 + ;
  header 1-       : 1-        d# -1 + ;
  header 0=       : 0=        d# 0 = ;
  header cell+    : cell+     d# 2 + ;
  
  header 0<>      : 0<>       d# 0 ;fallthru
  header <>       : <>        = invert ; 
  header >        : >         swap < ; 
  header 0<       : 0<        d# 0 < ; 
  header 0>       : 0>        d# 0 > ;
  
negative.code:     then
  ;
  
  : -throw ( a b -- ) \ if a is nonzero, throw -b
      negate and throw
  ;
  
  header abort
  : abort
      d# -1 throw
  