%%HP: T(3)A(D)F(.); @ by Eric Davis @ TREE: builds graphic object of directory tree \<< CLLCD @ >>> sect 1 <<< PATH HOME { :0: "HOME" } '$2' STO @ return path & base dir \<< @ dir find prog: $1 1 + @ advance level 15 TVARS 1 IF OVER SIZE @ look for dir objs THEN DO GETI DUP 2 DISP DUP 5 PICK \->TAG @ tag dir at current level PATH HOME SWAP $2 SWAP + '$2' STO EVAL @ save in HOME temp var&rtn EVAL 3 PICK $1 @ next dir & look for more UNTIL DUP 1 == END END 3 DROPN \>> '$1' STO \-> r @ prog in HOME & path local \<< 0 $1 HOME $2 @ dirs; get result list { $1 $2 } PURGE r EVAL @ zap temps & return path CLLCD @ >>> sect 2 <<< DUP SIZE 8 * R\->B # 83h SWAP BLANK SWAP @ build blank GROB :0: "" + @ and add dummy to list 1 DO GETI OBJ\-> OBJ\-> @ indented entry -> GROB 9 * R\->B 3 PICK 2 - 8 * R\->B 2 \->LIST 5 ROLL 3 ROLLD SWAP DUP \->TAG OBJ\-> SWAP DROP 2 \->GROB REPL 3 ROLLD UNTIL DUP 1 == END DROP2 PICT STO { } PVIEW PICT PURGE @ clean up & show \>> \>>