home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-11-27 | 3.6 KB | 58 lines | [04] ASCII Text (0x0000) |
- \ Forth Prodos catalog
-
- VARIABLE #FILES
- : PAD+ PAD 10 + ; HEX
- : .FILE DUP 10 + C@ 0F = IF ." /" THEN COUNT 0F AND TYPE ;
- : ?DEL C@ 0= ;
-
- : READH PAD+ 27 READF .FILE ; DEC
-
- \ Forth disk catalog
- HEX
- : ?TYPE HEX 0 <# ASCII ] HOLD # #
- ASCII $ HOLD ASCII [ HOLD #> TYPE DEC ;
- : READN PAD+ 4 READF PAD+ [ 200 4 - ] LITERAL READF ;
- : FBASE PAD+ I' 27 * + ;
- : NFILES PAD+ 21 + @ DUP #FILES ! CR . ." files" CR CR ;
- : MORE? CR ." More? " KEY DUP ASCII N =
- SWAP ASCII n = OR CR CR ;
- : ?STOP #FILES @ 0< ?DUP 0= IF MORE? THEN 0= ;
- DEC
-
- \ Forth Prodos Catalog
- HEX : ?NAMES \ list of file types... modifiable
- DUP 1 = IF DROP ." [bad]" ELSE
- DUP 4 = IF DROP ." [txt]" ELSE
- DUP 6 = IF DROP ." [bin]" ELSE
- DUP 0F = IF DROP ." [dir]" ELSE
- DUP 19 = IF DROP ." [adb]" ELSE \ used by Appleworks:3
- DUP 1A = IF DROP ." [awp]" ELSE
- DUP 1B = IF DROP ." [asp]" ELSE
- DUP 0F4 = IF DROP ." [mac]" ELSE \ used by Ascii Express
- DUP 0F8 = IF DROP ." [lnk]" ELSE \ used by Merlin asm
- DUP 0FC = IF DROP ." [bas]" ELSE
- DUP 0FD = IF DROP ." [var]" ELSE
- DUP 0FE = IF DROP ." [rel]" ELSE \ used by EDASM
- DUP 0FF = IF DROP ." [sys]" ELSE ?TYPE [ DEC ] THEN THEN
- THEN THEN THEN THEN THEN THEN THEN THEN THEN THEN THEN ;
-
- \ Forth Prodos Catalog
- HEX
- : ?TYPEX DUP C@ 0F0 AND DUP E0 = IF
- ." Subdirectory: /" DROP .FILE CR CR
- ELSE F0 = IF
- ." Directory: /" .FILE CR CR
- ELSE
- DUP 10 + C@ ?NAMES 2 SPACES .FILE CR
- THEN THEN ; DEC
-
- \ Forth Prodos Catalog
- HEX
- : 1BLK 0D 0 DO
- FBASE ?DEL 0= IF
- FBASE ?TYPEX
- -1 #FILES +! #FILES @ 0< ?LEAVE
- THEN LOOP ;
- : DIR" OPENF" READN CR NFILES BEGIN
- 1BLK ?STOP
- WHILE READN REPEAT 0 CLOSEF ; DEC