anchor.diff:  
   INSTANCE VARIABLE data
   INSTANCE VARIABLE #data
  +INSTANCE VARIABLE indirect-block
  +INSTANCE VARIABLE dindirect-block
   
   : free-data
     data @ ?dup IF #data @ free-mem  0 data ! THEN ;
  
positive.code: : read-inode ( inode# -- )
    1- inodes/group @ u/mod \ # in group, group #
    20 * group-descriptors @ + 8 + l@-le block-size @ * \ # in group, inode table
    swap 80 * + xlsplit seek drop  inode @ 80 read drop ;
  
  : .rwx ( bits last-char-if-special special? -- )
    rot dup 4 and IF ." r" ELSE ." -" THEN
  
negative.code:   2r> 2drop false ."  not found " EXIT THEN
    r@ 0<> IF 2r> ."  more... " RECURSE EXIT THEN
    2r> 2drop ."  got it " ;
  
  : close
     inode @ inode-size @ free-mem
     group-descriptors @ group-desc-size @ free-mem
     free-data
     blocks @ ?dup IF #blocks @ 4 * free-mem THEN
  ;
  
  : open
    0 data ! 0 blocks ! 0 #blocks !
    do-super
    inode-size @ alloc-mem inode !
    my-args nip 0= IF 0 0 ELSE
    2 my-args find-path ?dup 0= IF close false EXIT THEN THEN
    read-inode read-block#s 0 0 seek 0= ;
  