mirror of
https://github.com/PDP-10/its.git
synced 2026-01-11 23:53:12 +00:00
365 lines
14 KiB
Plaintext
365 lines
14 KiB
Plaintext
'<PCODE "1UNASSM">
|
||
|
||
<PACKAGE "UNASSM">
|
||
|
||
<ENTRY UNASSEMBLE GROUP-CONVERT CONVERT-RSUBR DUMP-U>
|
||
|
||
<BLOCK (<ROOT>)>
|
||
|
||
<SET GLUE T>
|
||
|
||
MUDREF
|
||
|
||
<ENDBLOCK>
|
||
|
||
<SETG RWH <BITS 18>>
|
||
|
||
<SETG LHW <BITS 18 18>>
|
||
|
||
<SETG TYPBYT <CHTYPE <BITS 13 18> FIX>>
|
||
|
||
<NEWTYPE MUDREF WORD>
|
||
|
||
<NEWTYPE SPEC-LABEL WORD>
|
||
|
||
<NEWTYPE MUDREF WORD>
|
||
|
||
<SETG MUDREFIN %<RSUBR!- '[ %<PCODE!- "1UNASSM" 0> MUDREFIN #DECL ("VALUE"
|
||
MUDREF CHARACTER) INCHAN %<TYPE-C MUDREF WORD> OUTCHAN ">" T %<RGLOC BITS-VEC T>
|
||
%<RGLOC INSTRUCTION-VEC T> STACK-SIZE " <" %<RGLOC ACS T> " " "(" %<
|
||
RGLOC ADDR-ACS T> ") " "[" "<(%<TYPE-CODE ATOM>) -1>" "<" "]" "<MQUOTE " " -1"
|
||
"@ " LABNUM %<TYPE-W SPEC-LABEL WORD> "TAG" %<TYPE-W MUDREF WORD> %<TYPE-W
|
||
SPEC-SUBR LIST> ["" " " " " " " " "
|
||
" " " "
|
||
" " " "
|
||
" "
|
||
" "
|
||
" "
|
||
" "
|
||
" "
|
||
" "
|
||
] ["" " " " " " " " " " " " " " "] STARTING-INSTRUCTION ")"
|
||
"MOVEI" LAST-A LAST-O "SUB" "PUSH" LAST-P "MCALL" "PUSHJ" %<RGLOC SPEC-HACKERS
|
||
T> COM-FLG ";" GLUE INTERNAL-ENTRYS (CHANNEL) STACK (ANY) (FIX) FIX #FALSE (
|
||
"NO GLUE BITS") " <TITLE " " <DECLARE " %<RGLOC SKIPGE-INTFLG T> %<
|
||
RGLOC JSR-LCKINT T> "INTGO" "DPB" "LDB" "PUTYP" "GETYP" "MOVSI" "CAIN" "CAIE"
|
||
"<TYPE-CODE " "DEFER" %<RGLOC $TLOSE T> %<RGLOC $TLOSEHI T> "<TYPE-WORD " #FALSE
|
||
("Bad group") SETG "PAGE " "" "INDEX" "DONE" NM2 "UNASSM" (STRING) "PRINT"
|
||
"MUDDLE;" "UNASSM " %<RGLOC MUDDLE T> "SAVE" "" "SAVED" "READY"
|
||
"MUDDLE UNASSEMBLER."]>>
|
||
<AND <ASSIGNED? GLUE> .GLUE <PUT ,MUDREFIN PGLUE ![1073741823 -1 -1 -1 -64 0!]>>
|
||
|
||
|
||
<SETG OUTPUT-MUDREF %<RSUBR-ENTRY '[MUDREFIN OUTPUT-MUDREF #DECL ("VALUE" ANY
|
||
MUDREF)] 57>>
|
||
|
||
<SETG MUDOBJ %<RSUBR-ENTRY '[MUDREFIN MUDOBJ #DECL ("VALUE" <OR FALSE FIX> <
|
||
PRIMTYPE WORD>)] 118>>
|
||
|
||
<SETG GET-MUDDLE-SUBR %<RSUBR-ENTRY '[MUDREFIN GET-MUDDLE-SUBR #DECL ("VALUE"
|
||
ATOM <PRIMTYPE WORD>)] 134>>
|
||
|
||
<DEFINE BEGIN-MHACK () <SET READ-TABLE <SETG READ-TABLE <COND (<GASSIGNED?
|
||
READ-TABLE> ,READ-TABLE) (ELSE <IVECTOR 128 0>)>>> <PUT .READ-TABLE <+ <ASCII
|
||
!\|> 1> ,MUDREFIN> <PRINTTYPE MUDREF ,OUTPUT-MUDREF> T>
|
||
|
||
<DEFINE END-MHACK () <PUT ,READ-TABLE <+ <ASCII !\|> 1> 0> <PRINTTYPE MUDREF ,
|
||
PRINT> T>
|
||
|
||
<BEGIN-MHACK>
|
||
|
||
INSTRUCION-VEC
|
||
|
||
<SETG INSTRUCTION-VEC '[#FALSE () "MCALL" "ACALL" #FALSE () "SAVAC" #FALSE ()
|
||
"ERRUU" #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () "UFA" "DFN" "FSC" "IBP" "ILDB" "LDB" "IDPB" "DPB" "FAD" "FADL" "FADM"
|
||
"FADB" "FADR" "FADRI" "FADRM" "FADRB" "FSB" "FSBL" "FSBM" "FSBB" "FSBR" "FSBRI"
|
||
"FSBRM" "FSBRB" "FMP" "FMPL" "FMPM" "FMPB" "FMPR" "FMPRI" "FMPRM" "FMPRB" "FDV"
|
||
"FDVL" "FDVM" "FDVB" "FDVR" "FDVRI" "FDVRM" "FDVRB" "MOVE" "MOVEI" "MOVEM"
|
||
"MOVES" "MOVS" "MOVSI" "MOVSM" "MOVSS" "MOVN" "MOVNI" "MOVNM" "MOVNS" "MOVM"
|
||
"MOVMI" "MOVMM" "MOVMS" "IMUL" "IMULI" "IMULM" "IMULB" "MUL" "MULI" "MULM"
|
||
"MULB" "IDIV" "IDIVI" "IDIVM" "IDIVB" "DIV" "DIVI" "DIVM" "DIVB" "ASH" "ROT"
|
||
"LSH" "JFFO" "ASHC" "ROTC" "LSHC" #FALSE () "EXCH" "BLT" "AOBJP" "AOBJN" "JRST"
|
||
"JFCL" "XCT" #FALSE () "PUSHJ" "PUSH" "POP" "POPJ" "JSR" "JSP" "JSA" "JRA" "ADD"
|
||
"ADDI" "ADDM" "ADDB" "SUB" "SUBI" "SUBM" "SUBB" "CAI" "CAIL" "CAIE" "CAILE"
|
||
"CAIA" "CAIGE" "CAIN" "CAIG" "CAM" "CAML" "CAME" "CAMLE" "CAMA" "CAMGE" "CAMN"
|
||
"CAMG" "JUMP" "JUMPL" "JUMPE" "JUMPLE" "JUMPA" "JUMPGE" "JUMPN" "JUMPG" "SKIP"
|
||
"SKIPL" "SKIPE" "SKIPLE" "SKIPA" "SKIPGE" "SKIPN" "SKIPG" "AOJ" "AOJL" "AOJE"
|
||
"AOJLE" "AOJA" "AOJGE" "AOJN" "AOJG" "AOS" "AOSL" "AOSE" "AOSLE" "AOSA" "AOSGE"
|
||
"AOSN" "AOSG" "SOJ" "SOJL" "SOJE" "SOJLE" "SOJA" "SOJGE" "SOJN" "SOJG" "SOS"
|
||
"SOSL" "SOSE" "SOSLE" "SOSA" "SOSGE" "SOSN" "SOSG" "SETZ" "SETZI" "SETZM"
|
||
"SETZB" "AND" "ANDI" "ANDM" "ANDB" "ANDCA" "ANDCAI" "ANDCAM" "ANDCAB" "SETM"
|
||
"SETMI" "SETMM" "SETMB" "ANDCM" "ANDCMI" "ANDCMM" "ANDCMB" "SETA" "SETAI"
|
||
"SETAM" "SETAB" "XOR" "XORI" "XORM" "XORB" "IOR" "IORI" "IORM" "IORB" "ANDCB"
|
||
"ANDCBI" "ANDCBM" "ANDCBB" "EQV" "EQVI" "EQVM" "EQVB" "SETCA" "SETCAI" "SETCAM"
|
||
"SETCAB" "ORCA" "ORCAI" "ORCAM" "ORCAB" "SETCM" "SETCMI" "SETCMM" "SETCMB"
|
||
"ORCM" "ORCMI" "ORCMM" "ORCMB" "ORCB" "ORCBI" "ORCBM" "ORCBB" "SETO" "SETOI"
|
||
"SETOM" "SETOB" "HLL" "HLLI" "HLLM" "HLLS" "HRL" "HRLI" "HRLM" "HRLS" "HLLZ"
|
||
"HLLZI" "HLLZM" "HLLZS" "HRLZ" "HRLZI" "HRLZM" "HRLZS" "HLLO" "HLLOI" "HLLOM"
|
||
"HLLOS" "HRLO" "HRLOI" "HRLOM" "HRLOS" "HLLE" "HLLEI" "HLLEM" "HLLES" "HRLE"
|
||
"HRLEI" "HRLEM" "HRLES" "HRR" "HRRI" "HRRM" "HRRS" "HLR" "HLRI" "HLRM" "HLRS"
|
||
"HRRZ" "HRRZI" "HRRZM" "HRRZS" "HLRZ" "HLRZI" "HLRZM" "HLRZS" "HRRO" "HRROI"
|
||
"HRROM" "HRROS" "HLRO" "HLROI" "HLROM" "HLROS" "HRRE" "HRREI" "HRREM" "HRRES"
|
||
"HLRE" "HLREI" "HLREM" "HLRES" "TRN" "TLN" "TRNE" "TLNE" "TRNA" "TLNA" "TRNN"
|
||
"TLNN" "TDN" "TSN" "TDNE" "TSNE" "TDNA" "TSNA" "TDNN" "TSNN" "TRZ" "TLZ" "TRZE"
|
||
"TLZE" "TRZA" "TLZA" "TRZN" "TLZN" "TDZ" "TSZ" "TDZE" "TSZE" "TDZA" "TSZA"
|
||
"TDZN" "TSZN" "TRC" "TLC" "TRCE" "TLCE" "TRCA" "TLCA" "TRCN" "TLCN" "TDC" "TSC"
|
||
"TDCE" "TSCE" "TDCA" "TSCA" "TDCN" "TSCN" "TRO" "TLO" "TROE" "TLOE" "TROA"
|
||
"TLOA" "TRON" "TLON" "TDO" "TSO" "TDOE" "TSOE" "TDOA" "TSOA" "TDON" "TSON" #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #FALSE () #
|
||
FALSE ()]>
|
||
|
||
<SETG BITS-VEC '![0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 4 0 0
|
||
0 0 0 0 0 4 0 0 0 0 0 0 0 4 0 0 0 4 0 0 0 4 0 0 0 4 0 0 0 4 0 0 0 4 0 0 0 4 0 0
|
||
0 4 0 0 0 4 0 0 0 0 0 2 0 0 0 0 0 0 2 2 3 1 1 0 2 0 0 2 3 2 2 2 0 4 0 0 0 4 0 0
|
||
4 4 4 4 4 4 4 4 0 0 0 0 0 0 0 0 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2
|
||
1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 0 4 1 0 0 4 0 0 0 4 0 0 0 4 1 0
|
||
0 4 0 0 0 4 1 0 0 4 0 0 0 4 0 0 0 4 0 0 0 4 0 0 0 4 1 0 0 4 0 0 0 4 1 0 0 0 0 0
|
||
0 4 0 0 0 4 1 0 0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1
|
||
0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1 0 4 0 1 0 0 0 0 0 0 0 0
|
||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
|
||
0!]>
|
||
|
||
<SETG NDO <BITS 1 0>>
|
||
|
||
<SETG JMP <BITS 1 1>>
|
||
|
||
<SETG IMM <BITS 1 2>>
|
||
|
||
<SETG JSR-LCKINT <CHTYPE <ORB #WORD *264000000000* <SQUOTA |LCKINT >> FIX>>
|
||
|
||
<SETG SKIPGE-INTFLG <CHTYPE <ORB #WORD *335000000000* <SQUOTA |INTFLG >> FIX>>
|
||
|
||
<GDECL (INSTRUCTION-VEC) VECTOR>
|
||
|
||
<GDECL (BITS-VEC ACS ADDR-ACS) UVECTOR>
|
||
|
||
<GDECL (JSR-LCKINT SKIPGE-INTFLG) FIX>
|
||
|
||
<SETG SPEC-ATOM 10485759>
|
||
|
||
<MANIFEST NDO JMP IMM SPEC-ATOM>
|
||
|
||
<USE "SQUOZE" "SORTX">
|
||
|
||
<SETG $TLOSE <SQUOTA <SQUOZE "$TLOSE">>>
|
||
|
||
<SETG $TLOSEHI <+ ,$TLOSE <LENGTH <ALLTYPES>>>>
|
||
|
||
<PRINTTYPE MUDREF ,OUTPUT-MUDREF>
|
||
|
||
<SETG UUOTOP 64>
|
||
|
||
<SETG 9BIT <BITS 9 27>>
|
||
|
||
<SETG ACF <BITS 4 23>>
|
||
|
||
<SETG @BIT <BITS 1 22>>
|
||
|
||
<SETG IDF <BITS 4 18>>
|
||
|
||
<SETG RHW <BITS 18 0>>
|
||
|
||
<MANIFEST UUOTOP 9BIT ACF @BIT IDF RHW LHW TYPBYT>
|
||
|
||
<GDECL ($TLOSE $TLOSEHI) FIX>
|
||
|
||
\
|
||
|
||
"HERE TO ESTABLISH THE ACS"
|
||
|
||
<PROG ((CNT 0)) <MAPF <> <FUNCTION (AC) <SETG .AC .CNT> <SET CNT <+ .CNT 1>>> '
|
||
![AC-O AC-A AC-B AC-C AC-D AC-E AC-PVP AC-TVP AC-SP AC-AB AC-TB AC-TP AC-FRM
|
||
AC-M AC-R AC-P!]>>
|
||
|
||
<MANIFEST AC-O AC-A AC-B AC-C AC-D AC-E AC-PVP AC-TVP AC-FRM AC-AB AC-TB AC-TP
|
||
AC-SP AC-M AC-R AC-P>
|
||
|
||
<SETG ADDR-ACS ![O A B C D E PVP TVP SP AB TB TP FRM M R P!]>
|
||
|
||
<SETG ACS ![O* A* B* C* D* E* PVP* TVP* SP* AB* TB* TP* FRM* M* R* P*!]>
|
||
|
||
<SETG SPEC-HACKERS '(|CIVEC |CIUVEC |CTYPEQ |CSBSTR |CISTNG |CMIN |CMAX
|
||
|IILIST |IIFORM |CMINUS |CDIVID |CPLUS |CTIMES )>
|
||
|
||
<GDECL (SPEC-HACKERS) LIST>
|
||
|
||
\
|
||
|
||
<SETG PRINT-INST %<RSUBR-ENTRY '[MUDREFIN PRINT-INST #DECL ("VALUE" CHARACTER
|
||
STRING)] 145>>
|
||
|
||
<SETG FIN-INST %<RSUBR-ENTRY '[MUDREFIN FIN-INST #DECL ("VALUE" <OR FALSE FIX>
|
||
ANY FIX)] 169>>
|
||
|
||
<SETG M? %<RSUBR-ENTRY '[MUDREFIN M? #DECL ("VALUE" <OR ATOM FALSE> <PRIMTYPE
|
||
WORD>)] 202>>
|
||
|
||
<SETG R? %<RSUBR-ENTRY '[MUDREFIN R? #DECL ("VALUE" <OR ATOM FALSE> <PRIMTYPE
|
||
WORD>)] 220>>
|
||
|
||
<SETG JUMP? %<RSUBR-ENTRY '[MUDREFIN JUMP? #DECL ("VALUE" <OR ATOM FALSE> <
|
||
PRIMTYPE WORD>)] 238>>
|
||
|
||
<SETG UUO? %<RSUBR-ENTRY '[MUDREFIN UUO? #DECL ("VALUE" <OR ATOM FALSE> <
|
||
PRIMTYPE WORD>)] 272>>
|
||
|
||
<SETG INSTRUCTION? %<RSUBR-ENTRY '[MUDREFIN INSTRUCTION? #DECL ("VALUE" ANY <
|
||
PRIMTYPE WORD>)] 297>>
|
||
|
||
<SETG PASS-1 %<RSUBR-ENTRY '[MUDREFIN PASS-1 #DECL ("VALUE" <VECTOR [REST ANY]>
|
||
<PRIMTYPE UVECTOR>)] 328>>
|
||
|
||
<SETG INIT-INST %<RSUBR-ENTRY '[MUDREFIN INIT-INST #DECL ("VALUE" <OR FALSE <
|
||
VECTOR [2 ANY] <OR FALSE FIX>>> FIX VECTOR)] 442>>
|
||
|
||
<SETG PRINT-ACF %<RSUBR-ENTRY '[MUDREFIN PRINT-ACF #DECL ("VALUE" <OR FALSE
|
||
STRING> <PRIMTYPE WORD> <PRIMTYPE WORD>)] 500>>
|
||
|
||
<SETG PRINT-INDEX-AC %<RSUBR-ENTRY '[MUDREFIN PRINT-INDEX-AC #DECL ("VALUE" <OR
|
||
FALSE STRING> <PRIMTYPE WORD>)] 556>>
|
||
|
||
<SETG ADDR-AC %<RSUBR-ENTRY '[MUDREFIN ADDR-AC #DECL ("VALUE" ANY <PRIMTYPE WORD
|
||
>)] 615>>
|
||
|
||
<SETG PRINT-NUMB %<RSUBR-ENTRY '[MUDREFIN PRINT-NUMB #DECL ("VALUE" <OR ATOM
|
||
MUDREF SPEC-SUBR STRING> <PRIMTYPE WORD>)] 655>>
|
||
|
||
<SETG PRINT-MVAL %<RSUBR-ENTRY '[MUDREFIN PRINT-MVAL #DECL ("VALUE" ANY <
|
||
PRIMTYPE UVECTOR> <PRIMTYPE WORD> VECTOR <PRIMTYPE WORD>)] 680>>
|
||
|
||
<SETG PRINT-R %<RSUBR-ENTRY '[MUDREFIN PRINT-R #DECL ("VALUE" ANY <PRIMTYPE
|
||
VECTOR> <PRIMTYPE WORD> <OR FALSE ATOM>)] 774>>
|
||
|
||
<SETG NUMBER-PRINT %<RSUBR-ENTRY '[MUDREFIN NUMBER-PRINT #DECL ("VALUE" <OR ATOM
|
||
SPEC-SUBR <PRIMTYPE WORD>> <PRIMTYPE WORD>)] 871>>
|
||
|
||
<SETG STANDARD-PRINT %<RSUBR-ENTRY '[MUDREFIN STANDARD-PRINT #DECL ("VALUE" ANY
|
||
<PRIMTYPE WORD> ANY ANY <PRIMTYPE WORD> "OPTIONAL" ANY)] 946>>
|
||
|
||
<SETG MAKE-LABEL %<RSUBR-ENTRY '[MUDREFIN MAKE-LABEL #DECL ("VALUE" SPEC-LABEL)]
|
||
994>>
|
||
|
||
<SETG PRINT-LABEL %<RSUBR-ENTRY '[MUDREFIN PRINT-LABEL #DECL ("VALUE" FIX <
|
||
PRIMTYPE WORD>)] 1012>>
|
||
|
||
<PRINTTYPE SPEC-LABEL ,PRINT-LABEL>
|
||
|
||
<SETG GET-SUBR %<RSUBR-ENTRY '[MUDREFIN GET-SUBR #DECL ("VALUE" <OR ATOM FALSE
|
||
MUDREF SPEC-SUBR> FIX "OPTIONAL" ANY)] 1037>>
|
||
|
||
<SETG ATSIGN? %<RSUBR-ENTRY '[MUDREFIN ATSIGN? #DECL ("VALUE" <OR ATOM FALSE> <
|
||
PRIMTYPE WORD>)] 1104>>
|
||
|
||
<SETG SPEC-MEMQ %<RSUBR-ENTRY '[MUDREFIN SPEC-MEMQ #DECL ("VALUE" <OR FALSE <
|
||
VECTOR [2 ANY]>> FIX VECTOR)] 1122>>
|
||
|
||
<SETG SPEC-MEMQ1 %<RSUBR-ENTRY '[MUDREFIN SPEC-MEMQ1 #DECL ("VALUE" ANY FIX
|
||
VECTOR)] 1168>>
|
||
|
||
<SETG OCTAL-PRINT %<RSUBR-ENTRY '[MUDREFIN OCTAL-PRINT #DECL ("VALUE" <OR ATOM
|
||
SPEC-SUBR <PRIMTYPE WORD>> <PRIMTYPE WORD> "OPTIONAL" <OR ATOM FALSE>)] 1191>>
|
||
|
||
<SETG PRINT-ATSIGN %<RSUBR-ENTRY '[MUDREFIN PRINT-ATSIGN #DECL ("VALUE" <OR
|
||
FALSE STRING> ANY)] 1306>>
|
||
|
||
<SETG IMMEDIATE? %<RSUBR-ENTRY '[MUDREFIN IMMEDIATE? #DECL ("VALUE" <OR ATOM
|
||
FALSE> FIX)] 1327>>
|
||
|
||
<SETG NDV? %<RSUBR-ENTRY '[MUDREFIN NDV? #DECL ("VALUE" <OR ATOM FALSE> FIX)]
|
||
1355>>
|
||
|
||
<SETG SUBR-PRINT %<RSUBR-ENTRY '[MUDREFIN SUBR-PRINT #DECL ("VALUE" <OR ATOM
|
||
FALSE MUDREF SPEC-SUBR> <PRIMTYPE WORD>)] 1383>>
|
||
|
||
<NEWTYPE SPEC-SUBR LIST>
|
||
|
||
<SETG SPEC-SUBR-PRINT %<RSUBR-ENTRY '[MUDREFIN SPEC-SUBR-PRINT #DECL ("VALUE"
|
||
ANY SPEC-SUBR)] 1422>>
|
||
|
||
<PRINTTYPE SPEC-SUBR ,SPEC-SUBR-PRINT>
|
||
|
||
<SETG TABS <PROG ((I -1)) <IVECTOR 15 '<ISTRING <SET I <+ .I 1>> !\ >>>>
|
||
|
||
<SETG SPACES <PROG ((I -1)) <IVECTOR 8 '<ISTRING <SET I <+ .I 1>> !\ >>>>
|
||
|
||
<MANIFEST TABS SPACES>
|
||
|
||
<SETG INDENT-TO %<RSUBR-ENTRY '[MUDREFIN INDENT-TO #DECL ("VALUE" <OR FALSE
|
||
STRING> FIX "OPTIONAL" <CHANNEL [12 ANY] [4 FIX]>)] 1463>>
|
||
|
||
\
|
||
|
||
"VARIOUS SPECIAL VARIABLES USED FOR STACK HACKERS."
|
||
|
||
"STACK-SIZE == CURRENT STACK SIZE"
|
||
|
||
"LAST-A == LAST X IN <MOVEI A* X>"
|
||
|
||
"LAST-0 == LAST X IN <MOVEI O* X>"
|
||
|
||
"LAST-P == LAST X IN <PUSH P* [X]>"
|
||
|
||
"STARTING-INSTRUCTION == WHERE TO START HACKING"
|
||
|
||
<SETG STACK-HANDLER %<RSUBR-ENTRY '[MUDREFIN STACK-HANDLER #DECL ("VALUE" ANY
|
||
STRING FIX <PRIMTYPE UVECTOR> ANY FIX FIX FIX)] 1537>>
|
||
|
||
<SETG COMMENT-START %<RSUBR-ENTRY '[MUDREFIN COMMENT-START #DECL ("VALUE" STRING
|
||
)] 1912>>
|
||
|
||
<SETG HACK-GLUE-BITS %<RSUBR-ENTRY '[MUDREFIN HACK-GLUE-BITS #DECL ("VALUE" ANY
|
||
RSUBR)] 1948>>
|
||
|
||
<SETG LOOK-ITEM %<RSUBR-ENTRY '[MUDREFIN LOOK-ITEM #DECL ("VALUE" <OR FALSE FIX>
|
||
FIX)] 2069>>
|
||
|
||
<SETG HRRE %<RSUBR-ENTRY '[MUDREFIN HRRE #DECL ("VALUE" FIX FIX)] 2109>>
|
||
|
||
<SETG STORE-INTERNAL-ENTRIES %<RSUBR-ENTRY '[MUDREFIN STORE-INTERNAL-ENTRIES #
|
||
DECL ("VALUE" ATOM <UVECTOR [REST FIX]> VECTOR)] 2128>>
|
||
|
||
<SETG JUMP-STACK %<RSUBR-ENTRY '[MUDREFIN JUMP-STACK #DECL ("VALUE" <OR ATOM
|
||
FALSE <VECTOR ANY ANY FIX>> STRING <VECTOR [3 ANY]> FIX)] 2181>>
|
||
|
||
\
|
||
|
||
<SETG CONVERT-RSUBR %<RSUBR-ENTRY '[MUDREFIN CONVERT-RSUBR #DECL ("VALUE" <OR
|
||
ATOM !<FALSE STRING!>> RSUBR "OPTIONAL" CHANNEL ANY)] 2239>>
|
||
|
||
<SETG GROUP-CONVERT %<RSUBR-ENTRY '[MUDREFIN GROUP-CONVERT #DECL ("VALUE" <OR
|
||
STRING !<FALSE STRING!>> ATOM CHANNEL "OPTIONAL" ANY)] 3118>>
|
||
|
||
"UNASSEMBLE -- top level entry which takes care of channels and such"
|
||
|
||
<SETG UNASSEMBLE %<RSUBR-ENTRY '[MUDREFIN UNASSEMBLE #DECL ("VALUE" <OR ATOM
|
||
FALSE STRING> <OR ATOM RSUBR> "OPTIONAL" <OR FALSE CHANNEL STRING> <OR ATOM
|
||
FALSE>)] 3345>>
|
||
|
||
"DUMP-U -- dumps an unassem save file"
|
||
|
||
<SETG DUMP-U %<RSUBR-ENTRY '[MUDREFIN DUMP-U #DECL ("VALUE" <OR ATOM STRING>
|
||
"OPTIONAL" ANY)] 3447>>
|
||
|
||
<ENDPACKAGE>
|