S" SAMPLES\FINDFILE.TXT" INCLUDED

16 CONSTANT FILE_ATTRIBUTE_DIRECTORY
: S, ( addr u -- )
  HERE SWAP DUP ALLOT MOVE
;

VARIABLE REC-DIR-XT
VARIABLE DIR-NAME0
VECT RD

: RECURSE-DIR-FE ( addr u -- )
  ." SCAN: " 2DUP TYPE CR
  OVER 44 - @ FILE_ATTRIBUTE_DIRECTORY AND FILE_ATTRIBUTE_DIRECTORY =
  IF -3 ALLOT HERE >R
     S, S" \*.*" S, HERE 0!
     DIR-NAME0 @ HERE OVER - REC-DIR-XT @ RD
     R> DP ! S" *.*" S, HERE 0!
  ELSE REC-DIR-XT @ EXECUTE THEN
;
: RECURSE-DIR ( addr u xt -- )
  REC-DIR-XT ! HERE DIR-NAME0 !
  2DUP ." DIR: " TYPE CR
  S, S" \*.*" S, HERE 0! DIR-NAME0 @ HERE OVER -
  ['] RECURSE-DIR-FE FIND-FILES
;
' RECURSE-DIR TO RD

: TT TYPE CR ;
: TEST S" ." ['] TT RECURSE-DIR ;
