mirror of
https://github.com/PDP-10/its.git
synced 2026-01-11 23:53:12 +00:00
299 lines
8.7 KiB
Plaintext
299 lines
8.7 KiB
Plaintext
'<PCODE "3PCK">
|
|
|
|
<BLOCK <ROOT>>
|
|
|
|
PACKAGE
|
|
|
|
RPACKAGE
|
|
|
|
ENTRY
|
|
|
|
EXTERNAL
|
|
|
|
USE
|
|
|
|
USE-TOTAL
|
|
|
|
DROP
|
|
|
|
NULL-OBLIST
|
|
|
|
ENDPACKAGE
|
|
|
|
FILSTR
|
|
|
|
FILPRS
|
|
|
|
L-SEARCH-PATH
|
|
|
|
L-SECOND-NAMES
|
|
|
|
L-TEMP-PATH
|
|
|
|
L-LOAD
|
|
|
|
L-DOITEM
|
|
|
|
L-ITEMS-NAME
|
|
|
|
L-INDEX-NAME
|
|
|
|
L-DATUM
|
|
|
|
USE-DATUM
|
|
|
|
L-NO-FILES
|
|
|
|
L-NO-MAGIC
|
|
|
|
L-ALWAYS-INQUIRE
|
|
|
|
L-HANDLER
|
|
|
|
L-UNUSE
|
|
|
|
L-FIND
|
|
|
|
USE-DEFER
|
|
|
|
L-GASSIGNED?
|
|
|
|
L-NO-DEFER
|
|
|
|
L-NOISY
|
|
|
|
INDENT-TO
|
|
|
|
L-TRANSLATIONS
|
|
|
|
TRANSLATE
|
|
|
|
UNTRANSLATE
|
|
|
|
<MOBLIST PACKAGE 29>
|
|
|
|
<MOBLIST PKG!-PACKAGE 17>
|
|
|
|
<SETG OBLIST (<GET INITIAL OBLIST> <ROOT>)>
|
|
|
|
<BLOCK (<MOBLIST IPKG!-PKG!-PACKAGE 23> <GET PKG!-PACKAGE OBLIST> <ROOT>)>
|
|
|
|
<SETG PKG!-PACKAGE .OBLIST>
|
|
|
|
<SETG PKG-OB <GET PACKAGE OBLIST>>
|
|
|
|
<SETG COL-OB <MOBLIST RPACKAGE 7>>
|
|
|
|
<SET L-SEARCH-PATH '("LIBMUD" "LIBMUD;LIBMUD" [] ["MBPROG"] ["MPROG" ">"])>
|
|
|
|
<SETG L-SECOND-NAMES '["FBIN" "GBIN" "NBIN" ">"]>
|
|
|
|
<GDECL (L-SECOND-NAMES) VECTOR>
|
|
|
|
<SETG L-ITEMS-NAME "ITEMS">
|
|
|
|
<SETG L-INDEX-NAME "INDEX">
|
|
|
|
<SETG L-NO-FILES <>>
|
|
|
|
<SETG L-NOISY T>
|
|
|
|
<SET L-TEMP-PATH <>>
|
|
|
|
<SETG L-TRANSLATIONS ()>
|
|
|
|
<SETG L-NULL-TRANS ()>
|
|
|
|
<SETG FILSTR %<RSUBR!- '[ %<PCODE!- "3PCK" 0> FILSTR #DECL ("VALUE" STRING
|
|
"TUPLE" <TUPLE [REST STRING]>) "READ"]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,FILSTR PGLUE ![805306368!]>>
|
|
|
|
|
|
<SETG FILPRS %<RSUBR!- '[ %<PCODE!- "3PCK" 60> FILPRS #DECL ("VALUE" <LIST [4
|
|
STRING] [REST STRING]> STRING) "READ"]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,FILPRS PGLUE ![805306368!]>>
|
|
|
|
|
|
<SETG FIND/LOAD %<RSUBR!- '[ %<PCODE!- "3PCK" 102> FIND/LOAD #DECL ("VALUE" <OR
|
|
ATOM FALSE> STRING "OPTIONAL" LIST) TRANSLATE? SEARCH L-TEMP-PATH L-SEARCH-PATH
|
|
OUTCHAN %<RGLOC OUTCHAN T> (CHANNEL) (ANY) OBLIST %<RGLOC PKG-OB T> %<RGLOC
|
|
L-NOISY T> "/" "<>" T %<RGLOC L-NULL-TRANS T> IN-COLLECTION]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,FIND/LOAD PGLUE ![738197503 -17179869184!]>>
|
|
|
|
|
|
<SETG SEARCH %<RSUBR!- '[ %<PCODE!- "3PCK" 354> SEARCH #DECL ("VALUE" <OR
|
|
CHANNEL FALSE> ANY <LIST [REST <OR STRING VECTOR>]>) GDCHN %<RGLOC L-NO-FILES T>
|
|
GDCHN %<RGLOC L-ITEMS-NAME T> %<RGLOC L-SECOND-NAMES T> "READ" "DSK"]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,SEARCH PGLUE ![805240832!]>>
|
|
|
|
|
|
<SETG PACKAGE %<RSUBR!- '[ %<PCODE!- "3PCK" 476> PACKAGE #DECL ("VALUE" ATOM
|
|
STRING "OPTIONAL" STRING FIX FIX) TRANSLATE? %<RGLOC PKG-OB T> IOBLIST
|
|
IN-COLLECTION %<RGLOC L-NULL-TRANS T> T]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,PACKAGE PGLUE ![805044224!]>>
|
|
|
|
|
|
<SETG RPACKAGE %<RSUBR!- '[ %<PCODE!- "3PCK" 670> RPACKAGE #DECL ("VALUE" ANY
|
|
STRING "OPTIONAL" STRING FIX) TRANSLATE? %<RGLOC PKG-OB T> %<RGLOC COL-OB T>
|
|
IOBLIST IN-COLLECTION %<RGLOC L-NULL-TRANS T> T]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,RPACKAGE PGLUE ![805240832!]>>
|
|
|
|
|
|
<SETG ENTRY %<RSUBR!- '[ %<PCODE!- "3PCK" 849> ENTRY #DECL ("VALUE" ATOM
|
|
"TUPLE" <TUPLE [REST ATOM]>) T %<RGLOC L-NULL-TRANS T> OBLIST USE-DEFER
|
|
IN-COLLECTION ENTRY NOT-IN-PACKAGE-OR-COLLECTION!-ERRORS
|
|
ALREADY-USED-ELSEWHERE!-ERRORS]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,ENTRY PGLUE ![1073725440!]>>
|
|
|
|
|
|
<SETG USE %<RSUBR!- '[ %<PCODE!- "3PCK" 992> USE #DECL ("VALUE" ATOM "TUPLE" <
|
|
TUPLE [REST STRING]>) FIND/LOAD OBLIST USE PACKAGE NOT-FOUND!-ERRORS T %<RGLOC
|
|
PKG-OB T>]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,USE PGLUE ![805240832!]>>
|
|
|
|
|
|
<SETG USE-TOTAL %<RSUBR!- '[ %<PCODE!- "3PCK" 1148> USE-TOTAL #DECL ("VALUE"
|
|
ATOM "TUPLE" <TUPLE [REST STRING]>) FIND/LOAD OBLIST USE PACKAGE
|
|
NOT-FOUND!-ERRORS T %<RGLOC PKG-OB T> IOBLIST]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,USE-TOTAL PGLUE ![805289984!]>>
|
|
|
|
|
|
<SETG L-NO-DEFER <>>
|
|
|
|
<SETG L-GASSIGNED? %<RSUBR!- '[ %<PCODE!- "3PCK" 1428> L-GASSIGNED? #DECL (
|
|
"VALUE" <OR ATOM FALSE> ANY) USE L-TEMP-PATH L-SEARCH-PATH (LIST) USE-DEFER
|
|
PACKAGE "PACKAGE DID NOT DEFINE FUNCTION" T]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,L-GASSIGNED? PGLUE ![805289984!]>>
|
|
|
|
|
|
<SETG EXTERNAL ,USE>
|
|
|
|
<SETG DROP %<RSUBR!- '[ %<PCODE!- "3PCK" 1490> DROP #DECL ("VALUE" ATOM "TUPLE"
|
|
<TUPLE [REST STRING]>) TRANSLATE? OBLIST DROP %<RGLOC PKG-OB T> PACKAGE
|
|
NOT-PACKAGE-OR-COLLECTION!-ERRORS IOBLIST]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,DROP PGLUE ![805240832!]>>
|
|
|
|
|
|
<SETG NULL-OBLIST <MOBLIST NULL 1>>
|
|
|
|
<SETG ENDPACKAGE %<RSUBR!- '[ %<PCODE!- "3PCK" 1717> ENDPACKAGE #DECL ("VALUE"
|
|
ATOM) OBLIST IN-COLLECTION %<RGLOC L-NULL-TRANS T> T IOBLIST %<RGLOC NULL-OBLIST
|
|
T> UNMATCHED-ENDPACKAGE-OR-ENDCOLLECTION!-ERRORS]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,ENDPACKAGE PGLUE ![1073676288!]>>
|
|
|
|
|
|
<SETG L-UNUSE %<RSUBR!- '[ %<PCODE!- "3PCK" 1888> L-UNUSE #DECL ("VALUE" <OR
|
|
ATOM STRING !<FALSE STRING!>> <OR STRING FALSE>) TRANSLATE? DROP T %<RGLOC
|
|
PKG-OB T> IOBLIST OBLIST "PACKAGE REMOVED" %<RGLOC UDOB T> "DATUM REMOVED" #
|
|
FALSE ("NOT PACKAGE OR DATUM")]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,L-UNUSE PGLUE ![738196480!]>>
|
|
|
|
|
|
<SETG TRANSLATE? %<RSUBR!- '[ %<PCODE!- "3PCK" 2023> TRANSLATE? #DECL ("VALUE"
|
|
<OR FALSE <LIST [REST <OR FALSE STRING>]>> STRING "OPTIONAL" <OR ATOM FALSE>) %<
|
|
RGLOC L-TRANSLATIONS T> "!-"]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,TRANSLATE? PGLUE ![1006632960!]>>
|
|
|
|
|
|
"/* MAGIC KLUDGE, LOAD SDML HERE, WHERE ENOUGH IS DEFINED, BUT NOT THE
|
|
PART THAT DEPENDS ON SDML, OLD BOOTSTRAPPING PROBLEM */"
|
|
|
|
<EXTERNAL "PMAP" "SDML">
|
|
|
|
<SETG USE-DEFER %<RSUBR!- '[ %<PCODE!- "3PCK" 2120> USE-DEFER #DECL ("VALUE"
|
|
ATOM "TUPLE" <TUPLE [REST STRING]>) USE GDCHN OBLIST NMLST (LIST) %<RGLOC
|
|
L-NO-DEFER T> USE-DEFER %<RGLOC PKG-OB T> L-SEARCH-PATH %<RGLOC L-INDEX-NAME T>
|
|
%<RGLOC SDMGET T> PACKAGE NOT-FOUND!-ERRORS]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,USE-DEFER PGLUE ![738197488 0!]>>
|
|
|
|
|
|
<SETG L-DATUM %<RSUBR!- '[ %<PCODE!- "3PCK" 2408> L-DATUM #DECL ("VALUE" ANY
|
|
ANY "OPTIONAL" ANY) SEARCH L-SEARCH-PATH #FALSE ("DATUM NOT FOUND")]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,L-DATUM PGLUE ![788529152!]>>
|
|
|
|
|
|
<SETG UDOB <MOBLIST USE-DATUM 17>>
|
|
|
|
<SETG USE-DATUM %<RSUBR!- '[ %<PCODE!- "3PCK" 2482> USE-DATUM #DECL ("VALUE"
|
|
ANY ANY) TRANSLATE? L-DATUM %<RGLOC UDOB T>]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,USE-DATUM PGLUE ![721420288!]>>
|
|
|
|
|
|
<SETG TRANSLATE %<RSUBR!- '[ %<PCODE!- "3PCK" 2552> TRANSLATE #DECL ("VALUE" <
|
|
OR FALSE STRING> STRING <OR FALSE STRING>) %<RGLOC L-TRANSLATIONS T>]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,TRANSLATE PGLUE ![805306368!]>>
|
|
|
|
|
|
<SETG UNTRANSLATE %<RSUBR!- '[ %<PCODE!- "3PCK" 2617> UNTRANSLATE #DECL (
|
|
"VALUE" <OR STRING !<FALSE STRING!>> STRING) %<RGLOC L-TRANSLATIONS T> #FALSE (
|
|
"NOT TRANSLATED")]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,UNTRANSLATE PGLUE ![1006632960!]>>
|
|
|
|
|
|
<SETG GDCHN %<RSUBR!- '[ %<PCODE!- "3PCK" 2683> GDCHN #DECL ("VALUE" ANY STRING
|
|
<OR LIST STRING> STRING "OPTIONAL" ANY) L-DOITEM %<RGLOC SDMGETCHAN T>]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,GDCHN PGLUE ![738197504!]>>
|
|
|
|
|
|
<SETG L-LOAD %<RSUBR!- '[ %<PCODE!- "3PCK" 2773> L-LOAD #DECL ("VALUE" <OR
|
|
FALSE STRING> ANY "OPTIONAL" ANY) GDCHN L-SEARCH-PATH %<RGLOC L-ITEMS-NAME T>]>
|
|
>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,L-LOAD PGLUE ![788529152!]>>
|
|
|
|
|
|
<SETG DBASEOB <MOBLIST DBASEOB 7>>
|
|
|
|
<SETG L-DOITEM %<RSUBR!- '[ %<PCODE!- "3PCK" 2822> L-DOITEM #DECL ("VALUE" ANY
|
|
STRING STRING ANY ANY "TUPLE" TUPLE) POPEN PCLOSE SDMACT SDMDCT PRESET %<RGLOC
|
|
DBASEOB T> T "READ" " " "PRINT" "NUL:"]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,L-DOITEM PGLUE ![716177152!]>>
|
|
|
|
|
|
<SETG DOSEARCH %<RSUBR!- '[ %<PCODE!- "3PCK" 3061> DOSEARCH #DECL ("VALUE" <
|
|
LIST [REST LIST]> LIST STRING ANY) L-DOITEM %<RGLOC SDMGET T> T BAD-ARG!-ERRORS
|
|
DOSEARCH]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,DOSEARCH PGLUE ![804257792!]>>
|
|
|
|
|
|
<SETG EXSEARCH %<RSUBR!- '[ %<PCODE!- "3PCK" 3214> EXSEARCH #DECL ("VALUE" <
|
|
LIST [REST LIST]> ANY ANY ANY) DOSEARCH]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,EXSEARCH PGLUE ![536870912!]>>
|
|
|
|
|
|
<SETG L-FIND %<RSUBR!- '[ %<PCODE!- "3PCK" 3340> L-FIND #DECL ("VALUE" <OR
|
|
FALSE <UVECTOR ANY>> STRING) EXSEARCH L-SEARCH-PATH %<RGLOC L-INDEX-NAME T>]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,L-FIND PGLUE ![788529152!]>>
|
|
|
|
|
|
<SETG L-NO-MAGIC <>>
|
|
|
|
<SETG L-ALWAYS-INQUIRE <>>
|
|
|
|
<SETG IOB <GET <LOOKUP "INITIAL" <ROOT>> OBLIST>>
|
|
|
|
<SETG L-HANDLER %<RSUBR!- '[ %<PCODE!- "3PCK" 3410> L-HANDLER #DECL ("VALUE"
|
|
ANY FRAME "TUPLE" TUPLE) L-GASSIGNED? EXSEARCH DISP-CHOICE TRANSLATE? USE
|
|
REDEFINE (ANY) UNASSIGNED-VARIABLE!-ERRORS GVAL UNBOUND-VARIABLE!-ERRORS VALUE
|
|
CALLER T %<RGLOC ERRET T> %<RGLOC L-NO-MAGIC T> %<RGLOC IOB T> L-SEARCH-PATH %<
|
|
RGLOC L-INDEX-NAME T> %<RGLOC L-ALWAYS-INQUIRE T> " " "!-PACKAGE!- " OBLIST
|
|
L-TEMP-PATH (<LIST <OR STRING VECTOR>>) "PACKAGE DID NOT DEFINE FUNCTION"]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,L-HANDLER PGLUE ![716177407 -65536!]>>
|
|
|
|
|
|
<SETG DISP-CHOICE %<RSUBR!- '[ %<PCODE!- "3PCK" 3773> DISP-CHOICE #DECL (
|
|
"VALUE" FIX <LIST [REST LIST]> ANY) INDENT-TO OUTCHAN %<RGLOC OUTCHAN T> (
|
|
CHANNEL) "
|
|
TO GET " " DYNAMICALLY LOAD
|
|
0 NONE -- GENERATE ERROR
|
|
" " " "in " "# to load? " %<RGLOC INCHAN T>]>>
|
|
<AND <ASSIGNED? GLUE> .GLUE <PUT ,DISP-CHOICE PGLUE ![805305344!]>>
|
|
|
|
|
|
<ENDBLOCK>
|
|
|
|
<ENDBLOCK>
|
|
|
|
<SET OBLIST ,OBLIST>
|
|
|
|
<ON "ERROR" ,L-HANDLER 100>
|