1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-11 23:53:12 +00:00
PDP-10.its/bin/mbprog/pck.fbin

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>