1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-21 16:52:34 +00:00
Files
PDP-10.its/bin/librm2/gnjfni.fbin

79 lines
1.8 KiB
Plaintext

'<PCODE "2GNJFNI">
<PACKAGE "GNJFN">
<ENTRY NEXT-FILE GNJFN-RESET>
<USE "NSTR" "SORTX">
<SETG MFDPTR 2>
<SETG MFDENTLEN 2>
<SETG UDNAMP 2>
<SETG LUNBLK 5>
<SETG UNFN1 1>
<SETG UNFN2 2>
<SETG UNRNDM 3>
<SETG UNDATE 4>
<SETG UNLNKB <BITS 1 18>>
<SETG UNWRDC <BITS 10 24>>
<SETG UNDSCP <BITS 13 0>>
<MANIFEST MFDPTR MFDENTLEN UDNAMP LUNBLK UNFN1 UNFN2 UNRNDM UNDATE UNLNKB UNWRDC
UNDSCP>
<PUT CUR-STATE DECL '<VECTOR <OR STRING <UVECTOR [REST WORD]>> <OR FALSE <
UVECTOR [REST WORD]>> [2 <OR FALSE WORD>] [3 WORD]>>
<SETG CS-MFD 1>
<SETG CS-DIR 2>
<SETG CS-FN1 3>
<SETG CS-FN2 4>
<SETG CS-LDIR 5>
<SETG CS-LFN1 6>
<SETG CS-LFN2 7>
<MANIFEST CS-MFD CS-DIR CS-FN1 CS-FN2 CS-LDIR CS-LFN1 CS-LFN2>
<SETG LAST-SPEC "">
<GDECL (LAST-SPEC) STRING (MFD-BUF DIR-BUF) <UVECTOR [REST WORD]>>
"On 20x, the state is simply a JFN (full-word), which can be passed
to GNJFN. If it is false, we aren't initialized. On ITS, the state is
a pair: a pointer into a uvector of directories to be searched, and
a pointer into the current directory."
<SETG CUR-STATE <>>
"Takes a file spec, including *'s, and returns a vector containing
a string and bits as for the GNJFN call, or false if no more files."
<SETG NEXT-FILE %<RSUBR!- '[ %<PCODE!- "2GNJFNI" 0> NEXT-FILE #DECL ("VALUE" <
OR FALSE <VECTOR STRING>> "OPTIONAL" STRING ANY) SIXTOS STRTOX %<RGLOC LAST-SPEC
T> %<RGLOC CUR-STATE T> "READ" "*" MFD-BUF %<RGLOC MFD-BUF T> "READB"
"M.F.D. (FILE)" CANT-GET-MFD NEXT-FILE DIR-BUF %<RGLOC DIR-BUF T> T ".FILE."
"(DIR)" "DSK" "DSK:" ";" " "]>>
<AND <ASSIGNED? GLUE> .GLUE <PUT ,NEXT-FILE PGLUE ![738197503 -16777216!]>>
<SETG GNJFN-RESET %<RSUBR-ENTRY '[NEXT-FILE GNJFN-RESET #DECL ("VALUE" FALSE
"OPTIONAL" <OR ATOM FALSE>)] 661>>
<ENDPACKAGE>