Trailing-Edge
-
PDP-10 Archives
-
SRI_NIC_PERM_SRC_3_19910112
-
midas/stink.dif
There are no other files named stink.dif in the archive.
;COMPARISON OF PS:<MIDAS>STINK.121T.1 AND PS:<MIDAS>STINK.MID.177
;OPTIONS ARE /E /L /W /3
**** FILE PS:<MIDAS>STINK.121T.1, 1-1 (0)
1) TITLE TSTINKING ODOR
1) ZR=0
**** FILE PS:<MIDAS>STINK.MID.177, 1-2 (2)
2) TITLE TSTINKING ODER
2) .MLLIT==1
2) ZR=0
***************
**** FILE PS:<MIDAS>STINK.121T.1, 1-6 (40)
1) B=3
1) C=4 ;FOR L.OP
1) D=5
1) T=6
1) TT=7
1) ADR=10
**** FILE PS:<MIDAS>STINK.MID.177, 1-9 (55)
2) B=3 ;SEE L.OP
2) C=B+1
2) D=C+1
2) T=6
2) TT=T+1 ;SEE CD1, SIXO, ASPT
2) ADR=10
***************
**** FILE PS:<MIDAS>STINK.121T.1, 1-29 (248)
1) ALTF==1
1) LOSE==2
**** FILE PS:<MIDAS>STINK.MID.177, 1-32 (292)
2) ALTF==1 ;ALT MODE READ FLAG(USED LOCALLY IN COMMMAND READER)
2) LOSE==2
***************
**** FILE PS:<MIDAS>STINK.121T.1, 1-39 (497)
1) NAME==2000 ;SET JOB NAME TO PROGRAM NAME
1) LOCF=4000 ;LOCAL IN SYM PRT
**** FILE PS:<MIDAS>STINK.MID.177, 1-42 (595)
2) ADRREL==2000 ;ADR IS RELOCATABLE QUANTITY
2) LOCF=4000 ;LOCAL IN SYM PRT
***************
**** FILE PS:<MIDAS>STINK.121T.1, 1-49 (797)
1) HSW==1
1) ;MISCELLANEOUS CONSTANTS
1) LOWLOD==0 ;LOWEST LOCATION LOADED
1) LPDL==20
1) CBUFL==2000 ;COMMAND BUFFER LENGTH (MOBY LONG!)
1) DOLL==44 ;REAL DOLLAR SIGN (NOT ALT MODE ETC.)
1) INHASH==151. ; HASH TABLE LENGTH
1) ICOMM==10000 ;INITIAL COMMON
1) PPDL==60 ;POLISH PUSH DOWN LENGTH
**** FILE PS:<MIDAS>STINK.MID.177, 1-51 (894)
2) ;LEFT HALF FLAGS
2) HSW==1 ;HALF WORD TOGGLE USED TO READ POLISH
2) NAME==2000 ;SET JOB NAME TO PROGRAM NAME
2) ;UUO'S FOR ERRORS
2) FATAL=3000,,0 ;FATAL ERROR WITH NO SYMBOL TYPE OUT
2) WARN=7000,,0 ;WARNING ERROR MESSAGE, NO SYMBOL OR OCTAL TYPE OUT
2) SYMERR=5000,,0 ;ILLEGAL GLOBAL ASSIGNMENT
2) FATADR==2000,,0 ;FATAL ERROR, TYPE ADR
2) ;INSTRUCTIONS
2) DEFINE HALT
2) .VALUE
2) TERMIN
2) DEFINE OPEN CHANNEL,MODE
2) .CALL [SETZ
2) SIXBIT/OPEN/
2) 3000,,ERRSTS
2) 5000,,MODE
2) 1000,,CHANNEL
2) DEV
2) NM1
2) NM2
2) SETZ SNAME]
2) TERMIN
2) ;MISCELLANEOUS CONSTANTS
2) LOWLOD==0 ;LOWEST LOCATION LOADED
2) CBUFL==2000 ;COMMAND BUFFER LENGTH (MOBY LONG!)
2) FNBLEN==200 ;FILE NAME BUFFER LENGTH
2) ALTMOD==33 ;THE ALTMODE CHARACTER
2) INHASH==151. ; HASH TABLE LENGTH
2) ICOMM==10000 ;INITIAL COMMON
2) HIREL0==400000 ;RELOCATABLE VALUES GE THIS ARE HI SEG
2) LPDL==20 ;LENGTH OF PROCESS PUSH DOWN AREA
2) PPDL==60 ;POLISH PUSH DOWN LENGTH
***************
**** FILE PS:<MIDAS>STINK.121T.1, 1-65 (1190)
1) ;REFERECNE WORD FLAGS
1) FIXRT==1
**** FILE PS:<MIDAS>STINK.MID.177, 1-98 (1925)
2) ;REFERENCE WORD FLAGS
2) FIXRT==1
***************
**** FILE PS:<MIDAS>STINK.121T.1, 2-8 (1495)
1) DEFINE INFORM A,B
**** FILE PS:<MIDAS>STINK.MID.177, 2-8 (2226)
2) DEFINE CHECK A,B
2) IF1,[IFN .-A-<B>,[PRINTX \ A LOSES **************
2) \]]
2) TERMIN
2) DEFINE INFORM A,B
***************
**** FILE PS:<MIDAS>STINK.121T.1, 2-16 (1606)
1) DMCGSW==0
1) DEFINE DMCG
1) IFN DMCGSW!TERMIN
1) DEFINE NODMCG
1) IFE DMCGSW!TERMIN
1) LOC 100
1) REL: ADDI@ T,FACTOR
1) ABS: HRRZ ADR,T
1) DATABK: HRRZS ADR
**** FILE PS:<MIDAS>STINK.MID.177, 3-2 (2424)
2) LOC 100
2) REL: MOVEI TT,1 ;RELOCATE RIGHT HALF OF T
2) PUSHJ P,RELOCT
2) TROA FF,ADRREL ;FLAG TO SAVE ADR WHEN FINISHED LOADING BLOCK
2) ABS: TRZ FF,ADRREL
2) HRRZ ADR,T
2) DATABK: HRRZS ADR
***************
**** FILE PS:<MIDAS>STINK.121T.1, 3-13 (1877) AFTER COM1:
1) IFN LOWLOD,[CAIGE ADR,LOWLOD
1) AOJA ADR,DATABK
1) ]GCR2: CAMLE ADR,MEMTOP
1) JRST GCR1
1) TRNE FF,CODEF
1) MOVEM T,(ADR)
1) TRNN FF,CODEF
1) MOVEM T,@ADRPTR
1) AOJA ADR,DATABK
1) ERR1:
**** FILE PS:<MIDAS>STINK.MID.177, 3-17 (2733) AFTER COM1:
2) IFN LOWLOD,[
2) CAIGE ADR,LOWLOD
2) AOJA ADR,DATABK
2) ]
2) GCR2: TRNE FF,CODEF
2) JRST GCR3
2) CAMLE ADR,MEMTOP
2) JRST GCR1
2) MOVEM T,@ADRPTR
2) SKIPA
2) GCR3: MOVEM T,(ADR)
2) AOJA ADR,DATABK
2) ERR1:
***************
**** FILE PS:<MIDAS>STINK.121T.1, 3-30 (2177) AFTER USE:
1) DPB C,[(261200)ADR]
1) JUMPGE D,USE1A
**** FILE PS:<MIDAS>STINK.MID.177, 3-38 (3049) AFTER USE:
2) DPB C,[261200,,ADR]
2) JUMPGE D,USE1A
***************
**** FILE PS:<MIDAS>STINK.121T.1, 3-40 (2341) AFTER CDATABK:
1) GCR1: TRNE ADR,400000 ; PURE?
1) JRST HIGHSG ; YES, USE HIGH SEG
1) PUSHJ P,GETMEM
1) JRST GCR2
1) HIGHSG: CAMLE ADR,HIGTOP ; WITHIN HIGH BOUND?
1) PUSHJ P,GETHI ; NO, GROW
1) MOVEM T,(ADR) ; STORE
1) AOJA ADR,DATABK
1) ; ROUTINE TO GROW HIGH SEGMENT
1) GETHI:
1) DMCG,[
1) PUSH P,A
1) SKIPE TT,USINDX ; DO WE KNOW USER INDEX
1) JRST GETHI1 ; YES, CONTINUE
1) .SUSET [.RUIND,,USINDX]
1) MOVE TT,USINDX
1) GETHI1: MOVEI A,200001 ; FOR SEG #1 FROM CORE JOB
1) DPB TT,[MFOR,,A] ; STORE USER POINTER
1) MOVEI TT,(ADR) ; GET WHERE TO POINTER
1) SUBI TT,400000-2000 ; ROUND UP AND REMOVE HIGH BIT
1) ASH TT,-10. ; TO BLOCKS
1) DPB TT,[MBLKS,,A] ; STORE IT ALSO
1) .CBLK A, ; GOT TO SYSTEM
1) PUSHJ P,SCE
1) MOVE A,HIBLK ; GET NO. OF HIGH BLOCKS
1) SUBM TT,A ; GET NEW BLOCKS
1) MOVEM TT,HIBLK ; AND STORE
1) ASH TT,10. ; NOW COMPUTE NEW HIGTOP
1) TRO TT,400000 ; WITH HIGH BIT
1) SUBI TT,1
1) MOVEM TT,HIGTOP
1) JRST POPAJ
1) ];DMCG
1) NODMCG,[
1) PUSH P,A
1) MOVEI TT,(ADR)
1) SUBI TT,400000-2000
1) ASH TT,-10.
**** FILE PS:<MIDAS>STINK.MID.177, 3-48 (3213) AFTER CDATABK:
2) GCR1: CAML ADR,HIORG ; PURE?
2) JRST HIGHSG ; YES, USE HIGH SEG
2) PUSHJ P,GETMEM
2) JRST GCR2
2) HIGHSG: CAMLE ADR,HIGTOP ; WITHIN HIGH BOUND?
2) PUSHJ P,GETHI ; NO, GROW
2) MOVEM T,(ADR) ; STORE
2) AOJA ADR,DATABK
2) ; ROUTINE TO GROW HIGH SEGMENT
2) GETHI: PUSH P,A
2) MOVEI TT,(ADR)
2) SUB TT,HIORG ;SUBI TT,400000-2000
2) ADDI TT,2000
2) ASH TT,-10.
***************
**** FILE PS:<MIDAS>STINK.121T.1, 4-39 (3432) AFTER GETHI1:
1) .VALUE
1) MOVE A,CWORD1
1) ADDI A,1000
1) .CBLK A,
1) PUSHJ P,SCE
1) SOJG TT,.-3
1) MOVEM A,CWORD1
**** FILE PS:<MIDAS>STINK.MID.177, 4-12 (3669) AFTER GETHI:
2) FATAL [ASCIZ/High Segment Request is Negative/]
2) MOVE A,CWORD1
2) GETHI1: ADDI A,1000
2) .CBLK A,
2) PUSHJ P,SCE
2) SOJG TT,GETHI1
2) MOVEM A,CWORD1
***************
**** FILE PS:<MIDAS>STINK.121T.1, 4-48 (3556) AFTER GETHI1:
1) ADDI TT,400000-1
1) MOVEM TT,HIGTOP
1) JRST POPAJ
1) ];NODMCG
1) USE2: MOVE T,1(D) ;FILL REQUEST
**** FILE PS:<MIDAS>STINK.MID.177, 4-21 (3844) AFTER GETHI1:
2) ADD TT,HIORG ;ADDI TT,400000-1
2) SUBI TT,1
2) MOVEM TT,HIGTOP
2) JRST POPAJ
2) USE2: MOVE T,1(D) ;FILL REQUEST
***************
**** FILE PS:<MIDAS>STINK.121T.1, 5-12 (3792) AFTER USE1:
1) ERR2: (5000+SIXBIT /UGA/)
1) JRST DATABK
**** FILE PS:<MIDAS>STINK.MID.177, 5-12 (4096) AFTER USE1:
2) ERR2: SYMERR [ASCIZ/Undefined Global Assignment/]
2) JRST DATABK
***************
**** FILE PS:<MIDAS>STINK.121T.1, 6-15 (4321) AFTER DEF3:
1) (5000+SIXBIT /MDG/)
1) DEF4: TRZ FF,GPARAM
**** FILE PS:<MIDAS>STINK.MID.177, 6-15 (4647) AFTER DEF3:
2) SYMERR [ASCIZ/Multiply Defined Global/]
2) DEF4: TRZ FF,GPARAM
***************
**** FILE PS:<MIDAS>STINK.121T.1, 6-27 (4629) AFTER PATCH:
1) HRRZ D,(A)
1) PUSHJ P,PARRET
1) SKIPE A,D
1) JRST .-3
1) PATCH2: HRRZ A,T2 ; POINT TO SYMBOL TO BE FLUSHED(REFS ARE GONE)
**** FILE PS:<MIDAS>STINK.MID.177, 6-27 (4975) AFTER PATCH:
2) PTCH2A: HRRZ D,(A)
2) PUSHJ P,PARRET
2) SKIPE A,D
2) JRST PTCH2A
2) PATCH2: HRRZ A,T2 ; POINT TO SYMBOL TO BE FLUSHED(REFS ARE GONE)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 6-42 (5015) AFTER PATCH2:
1) JRST .+3 ; NO, SKIP
1) HRRM C,(B) ; IT IS, CLOBBER IN
1) JRST .+2
1) HRRM C,BUCK(B) ; SPLICE BUCKET
1) SKIPE C
**** FILE PS:<MIDAS>STINK.MID.177, 6-42 (5371) AFTER PATCH2:
2) JRST PTCH2A ; NO, SKIP
2) HRRM C,(B) ; IT IS, CLOBBER IN
2) CAIA
2) PTCH2A: HRRM C,BUCK(B) ; SPLICE BUCKET
2) SKIPE C
***************
**** FILE PS:<MIDAS>STINK.121T.1, 6-55 (5357) AFTER PATCH2:
1) PATCH6: POPJ P,.+1
1) PATCH7: PUSHJ P,LKUP1A
**** FILE PS:<MIDAS>STINK.MID.177, 6-55 (5719) AFTER PTCH2A:
2) PATCH6: POPJ P, .+1
2) PATCH7: PUSHJ P,LKUP1A
***************
**** FILE PS:<MIDAS>STINK.121T.1, 7-22 (5785) AFTER PATCH1:
1) UNTHR: TRNN B,400000 ; HIGH SEG?
1) MOVEI B,@BPTR ; NO FUDGE
1) HRL T,(B)
1) HRRM T,(B)
1) HLRZ B,T
1) JUMPN B,UNTHR
1) CPTCH1: POPJ P,PATCH1
1) DEFIF: SKIPGE (B)
**** FILE PS:<MIDAS>STINK.MID.177, 7-23 (6150) AFTER PATCH1:
2) UNTHR: PUSH P,D
2) HRRZ D,B ; VIRUTAL ADDRESS
2) PUSHJ P,MAPD ; GET REAL ADDRESS
2) HRL T,(D)
2) HRRM T,(D)
2) POP P,D
2) HLRZ B,T
2) JUMPN B,UNTHR
2) CPTCH1: POPJ P, PATCH1
2) DEFIF: SKIPGE (B)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 8-4 (6012) AFTER DEFIF:
1) JRST 4,.
1) DEFIF6: EXCH A,B
**** FILE PS:<MIDAS>STINK.MID.177, 8-5 (6410) AFTER DEFIF:
2) HALT
2) DEFIF6: EXCH A,B
***************
**** FILE PS:<MIDAS>STINK.121T.1, 8-11 (6137) AFTER DEFIF1:
1) JRST 4,. ;SYMBOL FIXED UP BUT NOT EXPUNGED FROM TABLE
1) TLC ADR,FIXRT+FIXLT
1) TLCN ADR,FIXRT+FIXLT
1) JRST 4,. ;BOTH BITS TURNED ON!!
1) PUSH P,D
**** FILE PS:<MIDAS>STINK.MID.177, 8-12 (6531) AFTER DEFIF1:
2) HALT ;SYMBOL FIXED UP BUT NOT EXPUNGED FROM TABLE
2) TLC ADR,FIXRT+FIXLT
2) TLCN ADR,FIXRT+FIXLT
2) HALT ;BOTH BITS TURNED ON!!
2) PUSH P,D
***************
**** FILE PS:<MIDAS>STINK.121T.1, 8-21 (6443) AFTER DEFIF1:
1) JRST 4,. ;LOSER
1) PUSHJ P,GLOBS3 ;FIND THE VALUE
1) JUMPE B,[JRST 4,.]
1) TLNE ADR,FIXRT
**** FILE PS:<MIDAS>STINK.MID.177, 8-22 (6832) AFTER DEFIF1:
2) HALT ;LOSER
2) PUSHJ P,GLOBS3 ;FIND THE VALUE
2) CAIN B,0
2) HALT
2) TLNE ADR,FIXRT
***************
**** FILE PS:<MIDAS>STINK.121T.1, 8-29 (6629) AFTER DEFIF1:
1) JRST 4,.
1) HLRE T,1(A)
**** FILE PS:<MIDAS>STINK.MID.177, 8-31 (7014) AFTER DEFIF1:
2) HALT
2) HLRE T,1(A)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 8-58 (7203) AFTER DEFIFR:
1) JRST 4,.
1) HRRE T,1(A)
**** FILE PS:<MIDAS>STINK.MID.177, 8-60 (7585) AFTER DEFIFR:
2) HALT
2) HRRE T,1(A)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 9-2 (7515) AFTER DEFIF5:
1) GEN: PUSHJ P, DECGEN
1) TRNN B,400000 ; HIGH SEG
1) MOVEI B,@BPTR ; NO GET REAL LOC
1) ADD T,(B)
1) ADD TT,T
1) HRR T,TT
1) MOVEM T,(B)
1) JRST PATCH1
**** FILE PS:<MIDAS>STINK.MID.177, 9-2 (7894) AFTER DEFIF5:
2) GEN: PUSHJ P,DECGEN
2) PUSH P,D
2) HRRZ D,B ; VIRTUAL ADDRESS
2) PUSHJ P,MAPD ; REAL ADDRESS
2) ADD T,(D)
2) ADD TT,T
2) HRR T,TT
2) MOVEM T,(D)
2) POP P,D
2) JRST PATCH1
***************
**** FILE PS:<MIDAS>STINK.121T.1, 10-33 (8891) AFTER RELOC:
1) TRNE TT,1
1) ADD T,FACTOR
1) TRNE TT,2
1) ADD C,FACTOR
1) HRL T,C
1) POPJ P,
**** FILE PS:<MIDAS>STINK.MID.177, 10-33 (9283) AFTER RELOC:
2) TRNE TT,1 ;RELOCATE RIGHT HALF?
2) PUSHJ P,RELOCT
2) EXCH C,T
2) TRNE TT,2
2) PUSHJ P,RELOCT ;PERHAPS RELOCATE THE LEFT HALF
2) EXCH C,T
2) HRL T,C
2) POPJ P,
2) RELOCT: PUSH P,T ;DON'T CLOBBER THE LEFT HALF OF T
2) HRRZS T
2) TRNN FF,INDEF ;GLOBAL RELOCATION?
2) JRST RT1 ;NO
2) ADDI T,@RELADR
2) JRST RT2
2) RT1: CAIGE T,HIREL0
2) ADD T,FACTOR ;LOW SEGMENT
2) CAIL T,HIREL0
2) ADD T,HIFACT ;HI SEGMENT
2) RT2: HRRM T,(P)
2) POP P,T
2) POPJ P,
***************
**** FILE PS:<MIDAS>STINK.121T.1, 12-3 (10117) AFTER THRDR:
1) ADD T,FACTOR
1) HRLI T,100000
**** FILE PS:<MIDAS>STINK.MID.177, 12-4 (10870) AFTER THRDR:
2) PUSHJ P,RELOCT ;RELOCATE RIGHT HALF OF T
2) HRLI T,100000
***************
**** FILE PS:<MIDAS>STINK.121T.1, 12-8 (10193) AFTER THRDR:
1) JRST THRD2 ;PREV DEFINED
1) PUSHJ P,DOWN ;ENTER LINK REQUEST
1) MOVEM T,(D)
**** FILE PS:<MIDAS>STINK.MID.177, 12-9 (10975) AFTER THRDR:
2) JRST THRD2 ;PREV DEFINED
2) PUSHJ P,DOWN ;ENTER LINK REQUEST
2) MOVEM T,(D)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 12-22 (10466) AFTER LOCGLO:
1) JUMPGE D,[JRST 4,.] ;NO SYMBOL THERE
1) HRRZM D,T2 ;TABLE ENTRY TO DELETE
1) PUSHJ P,RPB ;SOAK UP ANOTHER WORD
1) JUMPGE T,LG1 ;JUMP TO RENAME LOCAL
1) TLNN B,200000 ;MAKE SURE THING IS DEFINED
1) JRST 4,. ;CANNOT HACK UNDEFINED SYMBOL
1) PUSHJ P,PATCH
**** FILE PS:<MIDAS>STINK.MID.177, 12-23 (11250) AFTER LOCGLO:
2) JUMPGE D,[ ;NO SYMBOL THERE
2) WARN [ASCIZ/bad format: symbol missing/]
2) JRST DATABK]
2) HRRZM D,T2 ;TABLE ENTRY TO DELETE
2) PUSHJ P,RPB ;SOAK UP ANOTHER WORD
2) JUMPGE T,LG1 ;JUMP TO RENAME LOCAL
2) TLNN B,200000 ;MAKE SURE THING IS DEFINED
2) GO [WARN [ASCIZ/bad format: symbol undefined/]
2) JRST DATABK ;CANNOT HACK UNDEFINED SYMBOL
2) ]
2) PUSHJ P,PATCH
***************
**** FILE PS:<MIDAS>STINK.121T.1, 12-46 (11201) AFTER LG1:
1) MOVEI B,.+3 ;MUST RECOVER TO GLOBAL
1) PUSH P,B ;RETURN ADDRESS
1) JRST ENT ;ENTER IT
1) MOVE B,(D) ;SQUOZE AND FLAGS
1) MOVE A,B ;SQUOZE WITH . . .
**** FILE PS:<MIDAS>STINK.MID.177, 12-51 (12096) AFTER LG1:
2) MOVEI B,LG1A ;MUST RECOVER TO GLOBAL
2) PUSH P,B ;RETURN ADDRESS
2) JRST ENT ;ENTER IT
2) LG1A: MOVE B,(D) ;SQUOZE AND FLAGS
2) MOVE A,B ;SQUOZE WITH . . .
***************
**** FILE PS:<MIDAS>STINK.121T.1, 14-8 (12922) AFTER LOAD:
1) LOAD2: PUSHJ P,GTWD
1) LDB A,[(220700)T]
**** FILE PS:<MIDAS>STINK.MID.177, 14-8 (13815) AFTER LOAD:
2) LOAD2: TRZE FF,ADRREL
2) PUSHJ P,SETADR ;SAVE ADR FOR RELOCATION OF OTHER SEGEMT AT PRGEND
2) PUSHJ P,GTWD
2) AOS BLKCNT ;COUNT BLOCKS
2) LDB A,[(220700)T]
***************
**** FILE PS:<MIDAS>STINK.121T.1, 14-50 (13972) AFTER OUT:
1) ADRM: POPJ P,
1) ;HERE TO PROCESS AN .EXTERN
**** FILE PS:<MIDAS>STINK.MID.177, 14-53 (14977) AFTER OUT:
2) POPJ P,
2) ;HERE TO PROCESS AN .EXTERN
***************
**** FILE PS:<MIDAS>STINK.121T.1, 15-7 (14132) AFTER AEXTER:
1) JUMPGE D,.+3 ;NEVER APPEARED, MUST ENTER
1) TLNE B,200000 ;SKIP IF NOT DEFINED
1) JRST AEXTER ;THIS ONE EXISTS, GO AGAIN
1) MOVE B,USDATP ;GET POINTER TO USDAT
1) PUSH P,A ;SAVE SYMBOL
**** FILE PS:<MIDAS>STINK.MID.177, 15-7 (15132) AFTER AEXTER:
2) JUMPGE D,AXTER1 ;NEVER APPEARED, MUST ENTER
2) TLNE B,200000 ;SKIP IF NOT DEFINED
2) JRST AEXTER ;THIS ONE EXISTS, GO AGAIN
2) AXTER1: MOVE B,USDATP ;GET POINTER TO USDAT
2) PUSH P,A ;SAVE SYMBOL
***************
**** FILE PS:<MIDAS>STINK.121T.1, 15-17 (14472) AFTER AEXTER:
1) TRNN B,400000 ; HIGH SEG?
1) MOVEM A,@BPTR ; NO GET REAL LOC
1) TRNE B,400000 ; SKIP IF LOW SEG
1) MOVEM A,(B) ;STORE INTO CORE IMAGE BEING BUILT
1) POP P,A ;RESTORE SYMBOL
1) MOVEI T,1(B) ;ALSO COMPUTE 'VALUE' OF SYMBOL
**** FILE PS:<MIDAS>STINK.MID.177, 15-17 (15482) AFTER AXTER1:
2) PUSH P,D
2) HRRZ D,B ; VIRTUAL ADDRESS
2) PUSHJ P,MAPD ; REAL ADDRESS
2) MOVEM A,(D) ; STORE INTO CORE IMAGE BEING BUILT
2) POP P,D
2) POP P,A ;RESTORE SYMBOL
2) MOVEI T,1(B) ;ALSO COMPUTE 'VALUE' OF SYMBOL
***************
**** FILE PS:<MIDAS>STINK.121T.1, 15-26 (14724) AFTER AEXTER:
1)
1) ;USDAT HAS OVERFLOWN
1) TMX: (3000+SIXBIT /TMX/)
1) GPA: PUSHJ P,RPB
**** FILE PS:<MIDAS>STINK.MID.177, 15-27 (15719) AFTER AXTER1:
2) ;USDAT HAS OVERFLOWN
2) TMX: FATAL [ASCIZ/Too Many External Symbols/]
2) GPA: PUSHJ P,RPB
***************
**** FILE PS:<MIDAS>STINK.121T.1, 16-9 (14898) AFTER LDCMD:
1) TRO FF,UNDEF+CODEF
1) HRRM ADR,ADRM
1) MOVEI B,@LKUP3
**** FILE PS:<MIDAS>STINK.MID.177, 16-10 (15913) AFTER LDCMD:
2) MOVEM ADR,ADRM ;SAVE ADR AND RELOCATION
2) HRLM FF,ADRM
2) TRO FF,UNDEF+CODEF
2) TRZ FF,ADRREL
2) MOVEI B,@LKUP3
***************
**** FILE PS:<MIDAS>STINK.121T.1, 16-17 (15032) AFTER LDCMD1:
1) HRRZ ADR,ADRM
1) CLEARB RH,AWORD
**** FILE PS:<MIDAS>STINK.MID.177, 16-20 (16105) AFTER LDCMD1:
2) MOVE ADR,ADRM
2) TLNE ADR,ADRREL ;ADRREL WAS SAVED IN LEFT HALF
2) TRO FF,ADRREL
2) HRRZS ADR
2) CLEARB RH,AWORD
***************
**** FILE PS:<MIDAS>STINK.121T.1, 17-12 (15505) AFTER GLOBAL:
1) MOVEI D,RELADR
1) GLOB1: HRRM D,REL
1) JRST JMP1
1) RESPNT: TRZ FF,INDEF
1) MOVEI D,FACTOR
1) HRRZ ADR,FACTOR
1) JRST GLOB1
1) LDCVAL: JUMP D,JMP1
**** FILE PS:<MIDAS>STINK.MID.177, 17-12 (16658) AFTER GLOBAL:
2) ;MOVEI D,RELADR
2) ;HRRM D,REL
2) JRST JMP1
2) RESPNT: TRZ FF,INDEF
2) ;MOVEI D,FACTOR
2) HRRZ ADR,FACTOR
2) ;HRRM D,REL
2) JRST JMP1
2) LDCVAL: JUMP D,JMP1
***************
**** FILE PS:<MIDAS>STINK.121T.1, 17-46 (16042) AFTER L.OP:
1) JRST .+2
1) L.OP2:] IOR B,[0 4,5]
**** FILE PS:<MIDAS>STINK.MID.177, 17-47 (17217) AFTER L.OP:
2) CAIA
2) L.OP2:] IOR B,[0 4,5]
***************
**** FILE PS:<MIDAS>STINK.121T.1, 19-20 (17203) AFTER GLOBS:
1) JRST 4,.
1) LSH C,-2 ;SHIFT OUT GARBAGE
**** FILE PS:<MIDAS>STINK.MID.177, 19-21 (18376) AFTER GLOBS:
2) HALT
2) LSH C,-2 ;SHIFT OUT GARBAGE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 19-44 (17833) AFTER GDFIT:
1) JRST 4,. ;ALREADY DEFINED
1) PUSHJ P,GLOBS3 ;RETURNS REFERENCE WORD IN A
1) JUMPE B,GDFIT1 ;MUST ADD DEFERRED VALUE
**** FILE PS:<MIDAS>STINK.MID.177, 19-45 (19003) AFTER GDFIT:
2) HALT ;ALREADY DEFINED
2) PUSHJ P,GLOBS3 ;RETURNS REFERENCE WORD IN A
2) JUMPE B,GDFIT1 ;MUST ADD DEFERRED VALUE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 19-49 (17980) AFTER GDFIT:
1) JRST 4,. ;REFERENCE WORDS DON'T MATCH
1) MOVE B,CGLOBV
1) CAME B,1(A)
1) JRST 4,. ;VALUES DON'T MATCH
1) JRST GLOBS ;ALL'S WELL THAT ENDS WELL
**** FILE PS:<MIDAS>STINK.MID.177, 19-50 (19149) AFTER GDFIT:
2) HALT ;REFERENCE WORDS DON'T MATCH
2) MOVE B,CGLOBV
2) CAME B,1(A)
2) HALT ;VALUES DON'T MATCH
2) JRST GLOBS ;ALL'S WELL THAT ENDS WELL
***************
**** FILE PS:<MIDAS>STINK.121T.1, 20-12 (18615) AFTER GLOBRQ:
1) PUSHJ P,DOWN ;NOT DEFINED, ENTER REQEST INTO TABLE
1) MOVE C,CGLOBV
1) HRLI C,100000 ;THIS IS A LINK LIST
1) MOVEM C,(D)
**** FILE PS:<MIDAS>STINK.MID.177, 20-13 (19782) AFTER GLOBRQ:
2) MOVE C,CGLOBV
2) HRLI C,100000 ;THIS IS A LINK LIST
2) ;BEGIN CROCK
2) ;AVOID DUPLICATE ENTRIES
2) ; HRRZ A,1(D)
2) ; JUMPE A,GLBRQ2
2) ;GLBRQ1: CAMN C,1(A)
2) ; JRST GLOBS
2) ; HRRZ A,(A)
2) ; JUMPN A,GLBRQ1
2) ;GLBRQ2:
2) ;END CROCK
2) PUSHJ P,DOWN ;NOT DEFINED, ENTER REQEST INTO TABLE
2) MOVEM C,(D)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 21-49 (20091) AFTER GLOBR3:
1) MAPB: TRNN B,400000 ;SECOND SEGMENT
1) HRRI B,@BPTR ;NO, RELOCATE THE ADDRESS
1) POPJ P,
1) ; HERE FOR SINGLE WORD FIXUP, SYMBOL NOT IN TABLE
**** FILE PS:<MIDAS>STINK.MID.177, 21-50 (21429) AFTER GLOBR3:
2) MAPB: PUSH P,D
2) HRRZ D,B
2) PUSHJ P,MAPD
2) HRR B,D
2) POP P,D
2) POPJ P,
2) ; HERE FOR SINGLE WORD FIXUP, SYMBOL NOT IN TABLE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 22-17 (20528) AFTER GLOBST:
1) ; JRST 4,. ;DON'T AGREE
1) JUMPGE D,GLOBS5 ;JUMP IF FIXUP NOT SEEN
**** FILE PS:<MIDAS>STINK.MID.177, 22-18 (21851) AFTER GLOBST:
2) ; HALT ;DON'T AGREE
2) JUMPGE D,GLOBS5 ;JUMP IF FIXUP NOT SEEN
***************
**** FILE PS:<MIDAS>STINK.121T.1, 22-27 (20769) AFTER GLOBST:
1) JRST 4,.
1) PUSHJ P,GLOBS3 ;FIND THE GLOBAL VALUE
1) SKIPE B
1) SKIPN (A)
1) JRST 4,.
1) POP P,T
**** FILE PS:<MIDAS>STINK.MID.177, 22-28 (22090) AFTER GLOBST:
2) HALT
2) PUSHJ P,GLOBS3 ;FIND THE GLOBAL VALUE
2) SKIPE B
2) SKIPN (A)
2) HALT
2) POP P,T
***************
**** FILE PS:<MIDAS>STINK.121T.1, 22-40 (21055) AFTER GLOBST:
1) JRST 4,. ;NO
1) JRST GLOBS2 ;YES
**** FILE PS:<MIDAS>STINK.MID.177, 22-41 (22371) AFTER GLOBST:
2) HALT ;NO
2) JRST GLOBS2 ;YES
***************
**** FILE PS:<MIDAS>STINK.121T.1, 22-47 (21201) AFTER GLOBS1:
1) JRST 4,. ;NOPE
1) ; HERE TO FINISH UP SYMBOL TABLE FIX
**** FILE PS:<MIDAS>STINK.MID.177, 22-48 (22515) AFTER GLOBS1:
2) HALT ;NOPE
2) ; HERE TO FINISH UP SYMBOL TABLE FIX
***************
**** FILE PS:<MIDAS>STINK.121T.1, 22-67 (21668) AFTER GLOBS9:
1) POPJ P, ;REFERENCE WORD NOT FOUND
1) GLOBS8: SKIPGE (A)
1) JRST GLOBS9 ;DEFERED INTERNAL FOR ANOTHER SYMBOL
1) POPJ P,
1) GLOBS5: PUSHJ P,GLOBS7
**** FILE PS:<MIDAS>STINK.MID.177, 22-68 (22980) AFTER GLOBS9:
2) POPJ P, ;REFERENCE WORD NOT FOUND
2) GLOBS8: SKIPGE (A)
2) JRST GLOBS9 ;DEFERED INTERNAL FOR ANOTHER SYMBOL
2) POPJ P,
2) GLOBS5: PUSHJ P,GLOBS7
***************
**** FILE PS:<MIDAS>STINK.121T.1, 22-106 (22419) AFTER GLST2:
1) JRST 4,. ;ITS GLOBAL, THERE'S NO HOPE
1) MOVEI B,0 ;BLOCK NAME
**** FILE PS:<MIDAS>STINK.MID.177, 22-107 (23731) AFTER GLST2:
2) HALT ;ITS GLOBAL, THERE'S NO HOPE
2) MOVEI B,0 ;BLOCK NAME
***************
**** FILE PS:<MIDAS>STINK.121T.1, 22-111 (22541) AFTER GLST2:
1) JRST 4,. ;CROCK
1) MOVE B,1(T) ;VALUE TO FIX
**** FILE PS:<MIDAS>STINK.MID.177, 22-112 (23851) AFTER GLST2:
2) HALT ;CROCK
2) MOVE B,1(T) ;VALUE TO FIX
***************
**** FILE PS:<MIDAS>STINK.121T.1, 23-26 (23364) AFTER UNTHL:
1) POPJ P,
1) UNTHF: PUSHJ P,MAPB
**** FILE PS:<MIDAS>STINK.MID.177, 23-27 (24674) AFTER UNTHL:
2) POPJ P,
2) UNTHF: PUSHJ P,MAPB
***************
**** FILE PS:<MIDAS>STINK.121T.1, 23-33 (23449) AFTER UNTHF:
1) POPJ P,
1) ;POLISH FIXUPS <BLOCK TYPE 22>
**** FILE PS:<MIDAS>STINK.MID.177, 23-34 (24759) AFTER UNTHF:
2) POPJ P,
2) ;POLISH FIXUPS <BLOCK TYPE 22>
***************
**** FILE PS:<MIDAS>STINK.121T.1, 24-5 (23562) AFTER PDLOV:
1) (3000+SIXBIT /POV/)
1) COMPOL: (3000+SIXBIT /PTC/)
1) LOAD4A: (3000+SIXBIT /IBF/)
1) ;READ A HALF WORD AT A TIME
**** FILE PS:<MIDAS>STINK.MID.177, 24-6 (24874) AFTER PDLOV:
2) FATAL [ASCIZ/PDL Overflow/]
2) COMPOL: FATAL [ASCIZ/Polish Too Complex/]
2) LOAD4A: FATAL [ASCIZ/Illegal Block Format/]
2) ;READ A HALF WORD AT A TIME
***************
**** FILE PS:<MIDAS>STINK.121T.1, 25-25 (24849) AFTER POLFIX:
1) MOVEI B,100 ;IN CASE OF ON OPERATORS
1) MOVEM B,SVSAT
1) SETOM POLSW ;WE ARE DOING POLISH
**** FILE PS:<MIDAS>STINK.MID.177, 25-26 (26199) AFTER POLFIX:
2) SETOM POLSW ;WE ARE DOING POLISH
***************
**** FILE PS:<MIDAS>STINK.121T.1, 25-31 (25080) AFTER POLFIX:
1) PUSH D,[15] ;FAKE OPERATOR SO STORE WILL NOT HACK
1) RPOL: PUSHJ P,RDHLF ;GET A HALF WORD
1) TRNE T,400000 ;IS IT A STORE OP?
1) JRST STOROP ;YES, DO IT
1) CAIGE T,3 ;0,1,2 ARE OPERANDS
1) JRST OPND
1) CAILE T,14 ;14 IS HIGHEST OPERATOR
1) JRST LOAD4A ;ILL FORMAT
1) PUSH D,T ;SAVE OPERATOR IN STACK
1) MOVE B,DESTB-3(T) ;GET NUMBER OF OPERANDS NEEDED
1) MOVEM B,SVSAT ;ALSO SAVE IT
1) JRST RPOL ;BACK FOR MORE
1) ;HANDLE OPERANDS. THIS GETS COMPLICATED BECAUSE OF THE PRESENCE OF
**** FILE PS:<MIDAS>STINK.MID.177, 25-30 (26375) AFTER POLFIX:
2) MOVEI T,MXPLOP ;STORE OPERATOR
2)
2) RPOL0: PUSH D,T ;SAVE OPERATOR IN STACK
2) MOVE B,DESTB-3(T) ;GET NUMBER OF OPERANDS NEEDED
2) MOVEM B,SVSAT ;ALSO SAVE IT
2) RPOL: PUSHJ P,RDHLF ;GET A HALF WORD
2) TRNE T,400000 ;IS IT A STORE OP?
2) JRST STOROP ;YES, DO IT
2) CAIGE T,3 ;0,1,2 ARE OPERANDS
2) JRST OPND
2) CAILE T,MXPLOP-1 ;HIGHEST OPERATOR
2) JRST LOAD4A ;ILL FORMAT
2) JRST RPOL0 ;BACK FOR MORE
2) ;HANDLE OPERANDS. THIS GETS COMPLICATED BECAUSE OF THE PRESENCE OF
***************
**** FILE PS:<MIDAS>STINK.121T.1, 28-4 (28485) AFTER STOROP:
1) CAIE B,15 ;IS IT
1) JRST LOAD4A ;NO, ILL FORMAT
**** FILE PS:<MIDAS>STINK.MID.177, 28-5 (29783) AFTER STOROP:
2) CAIE B,MXPLOP ;IS IT
2) JRST LOAD4A ;NO, ILL FORMAT
***************
**** FILE PS:<MIDAS>STINK.121T.1, 28-26 (29143) AFTER GLSTR:
1) JRST 4,. ;PUSHJ P,FSYMT ;SYMBOL TABLE FIXUP
1) PUSHJ P,RDHLF ;GET THE STORE LOCATION
**** FILE PS:<MIDAS>STINK.MID.177, 28-27 (30445) AFTER GLSTR:
2) HALT ;CL FSYMT ;SYMBOL TABLE FIXUP
2) PUSHJ P,RDHLF ;GET THE STORE LOCATION
***************
**** FILE PS:<MIDAS>STINK.121T.1, 29-9 (30200) AFTER STRTAB:
1) DESTB: 1
1) 1
1) 1
1) 1
1) 1
1) 1
1) 1
1) 1
1) 0
1) 0
1) 100
1) OPTAB: ADD T,C
**** FILE PS:<MIDAS>STINK.MID.177, 29-10 (31497) AFTER STRTAB:
2) DESTB: 1 ;+
2) 1 ;-
2) 1 ;*
2) 1 ;/
2) 1 ;AND
2) 1 ;OR
2) 1 ;LSH
2) 1 ;XOR
2) 0 ;NOT
2) 0 ;-
2) 0 ;JFFO
2) 1 ;REM
2) 0 ;ABSOLUTE VALUE
2) 100 ;STORE OPERAND
2) MXPLOP==.-DESTB+3
2) OPTAB: ADD T,C
***************
**** FILE PS:<MIDAS>STINK.121T.1, 29-32 (30369) AFTER OPTAB:
1) ;HERE TO LOOK UP LOCAL IN SYMBOL TABLE
**** FILE PS:<MIDAS>STINK.MID.177, 29-36 (31776) AFTER OPTAB:
2) PUSHJ P,JFFOP
2) PUSHJ P,REMOP
2) MOVM T,C
2) HALT ;STORE OP
2) CHECK OPTAB,MXPLOP-3
2) JFFOP: PUSH P,D
2) JFFO C,.+2
2) MOVEI D,44
2) MOVE T,D
2) POPDJ: POP P,D
2) POPJ P,
2) REMOP: IDIV T,C
2) MOVE T,TT
2) POPJ P,
2) ;HERE TO LOOK UP LOCAL IN SYMBOL TABLE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 29-47 (30847) AFTER SLCL4:
1) JRST 4,. ;SYMBOL NOT FOUND
1) SLCL1: JUMPE B,POPAJ1 ;SYMBOL IS IN THIS BLOCK
1) PUSH P,T ;THIS POINTER POSSIBLY A WINNER
1) ADD T,[2,,2] ;NEXT SYMBOL
1) JUMPGE T,[JRST 4,.] ;WE HAVE RUN OUT OF TABLE
1) MOVE A,(T) ;SQUOZE
1) TLNE A,740000 ;SKIP ON BLOCK NAME
1) JRST .-4
1) ; HERE WHEN WE FIND BLOCK NAME
**** FILE PS:<MIDAS>STINK.MID.177, 29-68 (32462) AFTER SLCL4:
2) HALT ;SYMBOL NOT FOUND
2) SLCL1: JUMPE B,POPAJ1 ;SYMBOL IS IN THIS BLOCK
2) PUSH P,T ;THIS POINTER POSSIBLY A WINNER
2) SLCL1A: ADD T,[2,,2] ;NEXT SYMBOL
2) CAIL T,0
2) HALT ;WE HAVE RUN OUT OF TABLE
2) MOVE A,(T) ;SQUOZE
2) TLNE A,740000 ;SKIP ON BLOCK NAME
2) JRST SLCL1A
2) ; HERE WHEN WE FIND BLOCK NAME
***************
**** FILE PS:<MIDAS>STINK.121T.1, 29-63 (31285) AFTER POPAJ1:
1) AOS (P) ;SKIP THE PUSHJ P,RDHLF THAT FOLLOWS THIS CALL
1) POPJ P,
1) SLCL3: JUMPN B,SLCL4
1) JRST 4,. ;SYMBOL SHOULD BE IN THIS BLOCK
1) SLCL2: SUB P,[1,,1] ;FLUSH THE LOSING SYMBOL POINTER
**** FILE PS:<MIDAS>STINK.MID.177, 29-85 (32905) AFTER POPAJ1:
2) AOS (P) ;SKIP THE CL RDHLF THAT FOLLOWS THIS CALL
2) POPJ P,
2) SLCL3: JUMPN B,SLCL4
2) HALT ;SYMBOL SHOULD BE IN THIS BLOCK
2) SLCL2: SUB P,[1,,1] ;FLUSH THE LOSING SYMBOL POINTER
***************
**** FILE PS:<MIDAS>STINK.121T.1, 30-7 (31746) AFTER POLSAT:
1) JUMPGE D,[JRST 4,.] ;CANNOT FIND POLISH
1) MOVE T,CGLOB ;SQUOOZE (SET UP AT DFSYM2)
**** FILE PS:<MIDAS>STINK.MID.177, 30-8 (33361) AFTER POLSAT:
2) CAIL D,0
2) HALT ;CANNOT FIND POLISH
2) MOVE T,CGLOB ;SQUOOZE (SET UP AT DFSYM2)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 30-34 (32413) AFTER FXP1:
1) JRST 4,. ;DID NOT FIND SYMBOL
1) ;HERE TO FINISH THE POLISH AFTER ALL REQUESTS ARE SATISFIED
**** FILE PS:<MIDAS>STINK.MID.177, 30-36 (34027) AFTER FXP1:
2) HALT ;DID NOT FIND SYMBOL
2) ;HERE TO FINISH THE POLISH AFTER ALL REQUESTS ARE SATISFIED
***************
**** FILE PS:<MIDAS>STINK.121T.1, 31-18 (32943) AFTER PSAT1:
1) CAIGE B,15
1) CAIGE B,3
1) JRST 4,. ;NOT OPERATOR
1) MOVE T,1(A) ;OPERANDS (SECOND,,FIRST)
1) HLRZ C,(T) ;FIRST OPERAND
1) JUMPE C,[JRST 4,.] ;SQUOZE NEVER DEFINED
1) CAIE C,1 ;SKIP IF DEFINED
**** FILE PS:<MIDAS>STINK.MID.177, 31-19 (34556) AFTER PSAT1:
2) CAIGE B,MXPLOP
2) CAIGE B,3
2) HALT ;NOT OPERATOR
2) MOVE T,1(A) ;OPERANDS (SECOND,,FIRST)
2) HLRZ C,(T) ;FIRST OPERAND
2) CAIN C,0
2) HALT ;SQUOZE NEVER DEFINED
2) CAIE C,1 ;SKIP IF DEFINED
***************
**** FILE PS:<MIDAS>STINK.121T.1, 31-30 (33267) AFTER PSAT1:
1) JUMPE C,[JRST 4,.]
1) CAIE C,1
**** FILE PS:<MIDAS>STINK.MID.177, 31-32 (34881) AFTER PSAT1:
2) CAIN C,0
2) HALT
2) CAIE C,1
***************
**** FILE PS:<MIDAS>STINK.121T.1, 32-34 (34452) AFTER UNSATE:
1) JRST 4,. ;TIME TO REASSEMBLE
1) UNSAT1: SOJL B,UNSAT3
**** FILE PS:<MIDAS>STINK.MID.177, 32-34 (36064) AFTER UNSATE:
2) HALT ;TIME TO REASSEMBLE
2) UNSAT1: SOJL B,UNSAT3
***************
**** FILE PS:<MIDAS>STINK.121T.1, 33-39 (35585) AFTER LNKF1:
1) JRST .+3
1) PUSHJ P,MAPB
1) HLRM B,(B)
1) SOJG A,LNKF1
1) JRST POPBAJ
**** FILE PS:<MIDAS>STINK.MID.177, 33-40 (37197) AFTER LNKF1:
2) JRST LNKF1A
2) PUSHJ P,MAPB
2) HLRM B,(B)
2) LNKF1A: SOJG A,LNKF1
2) JRST POPBAJ
***************
**** FILE PS:<MIDAS>STINK.121T.1, 35-9 (36331) AFTER PRGN:
1) TLNE A,40000
**** FILE PS:<MIDAS>STINK.MID.177, 35-9 (37949) AFTER PRGN:
2) PUSHJ P,SETADR ;SAVE THIS ADR IN CASE WE RESET RELOCATION CONSTANT
2) TLNE A,40000
***************
**** FILE PS:<MIDAS>STINK.121T.1, 35-15 (36462) AFTER PRGN:
1) NODMCG, MOVSI T,1 ; WANT NON-ZERO, BUT POSITIVE LEFT HALF
1) DMCG, MOVE T,1(BOT) ; POINTS TO TOP AND BOTTOM OF PROGRAM
1) TLZ A,740000 ; MARK AS PROGNAME
**** FILE PS:<MIDAS>STINK.MID.177, 35-16 (38150) AFTER PRGN:
2) MOVSI T,1 ; WANT NON-ZERO, BUT POSITIVE LEFT HALF
2) TLZ A,740000 ; MARK AS PROGNAME
***************
**** FILE PS:<MIDAS>STINK.121T.1, 35-26 (36772) AFTER PRGN:
1) PRGEND: HRRZM ADR,FACTOR
1) SETZM LFTFIX
1) POPJ P,
**** FILE PS:<MIDAS>STINK.MID.177, 35-26 (38394) AFTER PRGN:
2) PRGEND: PUSH P,A
2) MOVE A,HIADR
2) SUBI A,HIREL0
2) MOVEM A,HIFACT
2) MOVE A,LOWADR
2) MOVEM A,FACTOR
2) SETZM LFTFIX
2) HRRZ A,DPTR ; LOW SEGMENT OFFSET
2) ADD A,LOWADR ; LAST WORD OF LOW SEGMENT IN STINK
2) CAMGE A,HIORG ; OVERLAP WITH HIGH SEGMENT?
2) JRST PE1 ; NO
2) HRRZ ADR,LOWADR ; FOR ERROR MESSAGE
2) FATADR [ASCIZ/Low Segment Full/]
2) PE1: MOVE A,LOWADR ; LOW SEGMENT MAY END WITH BLOCKS
2) CAMG A,MEMTOP
2) JRST POPAJ
2) PUSHJ P,GETMEM
2) JRST PE1
2) SETADR: HRRZS ADR ;THIS ROUTINE SAVES ADR SO THAT RELOCATION FACTORS WIN
2) CAMGE ADR,HIORG
2) MOVEM ADR,LOWADR
2) CAML ADR,HIORG
2) MOVEM ADR,HIADR
2) POPJ P,
***************
**** FILE PS:<MIDAS>STINK.121T.1, 35-33 (36940) AFTER PRGEND:
1) ;THAT THE TRANSLATOR GAVE THEM TO STINK
1) SHUFLE: MOVE B,DDPTR
**** FILE PS:<MIDAS>STINK.MID.177, 35-54 (39116) AFTER SETADR:
2) ;THAT STINK READ THEM
2) SHUFLE: MOVE B,DDPTR
***************
**** FILE PS:<MIDAS>STINK.121T.1, 36-33 (38370) AFTER RDRET:
1) RDFRST: PUSH P,TT
1) JRST DOREAD ;READ A NEW BUFFER
1) RCKS: (3000+SIXBIT /CKS/)
1) ;LOADER INTERFACE
1) TYPR: 0
**** FILE PS:<MIDAS>STINK.MID.177, 36-33 (40528) AFTER RDRET:
2) OPNPTR: OPEN TPCHN,6
2) PUSHJ P,FNF
2) RDFRST: PUSH P,TT
2) SETOM BLKCNT
2) JRST DOREAD ;READ A NEW BUFFER
2) RCKS: FATAL [ASCIZ/Checksum Error/]
2) ;LOADER INTERFACE
2) ;UUO HANDLER EFFECTIVE ADDRESS OF UUO IS ASCIZ ERROR MESSAGE
2) ;IF 4.3 IS ZERO THEN ERROR IS FATAL AND LOADER IS RESTARTED
2) ;UUO'S ARE DECODED AS FOLLOWS (ONLY 4.1-4.3 ARE RELEVANT)
2) ; 7 (-1) NO SYMBOL OR VALUE IS TYPED
2) ; 6 (-2) TYPE ADR IN OCTAL
2) ; 5 (-3) TYPE SQUOZE IN A AND ADR
2) TYPR: 0
***************
**** FILE PS:<MIDAS>STINK.121T.1, 37-7 (38516) AFTER TYPR:
1) LDB C,[(330300)40]
1) MOVEI TT,LI3
1) TRON C,4
1) HRRM TT,TYPR
1) ORCMI C,7
1) HRLZ TT,40
1) TYPR2: PUSHJ P,SIXTYO
1) AOJE C,TYPR1
1) PUSHJ P,SPC
1) HRRZ T,ADR
1) PUSHJ P,OPT
1) AOJE C,TYPR1
1) PUSHJ P,SPC
1) PUSHJ P,ASPT
1) TYPR1: PUSHJ P,CRL
1) POP P,TT
**** FILE PS:<MIDAS>STINK.MID.177, 37-15 (41022) AFTER TYPR:
2) LDB C,[330300,,40] ;PICKUP LOW ORDER 3 BITS OF UUO CODE
2) MOVEI TT,RESTRT
2) TRON C,4
2) HRRM TT,TYPR ;FATAL ERROR CLOBBER RETURN
2) ORCMI C,7 ;MAKE IT A SMALL NEGATIVE NUMBER
2) HRRZ TT,40 ;PICK UP ERROR MESSAGE
2) PUSHJ P,TYOS ;PRINT MESSAGE
2) AOJE C,TYPR1 ;PRINT SQUOZE AND VALUE?
2) PUSHJ P,SPC ;YES
2) HRRZ T,ADR
2) PUSHJ P,OCTPR ;PRINT OCTAL
2) AOJE C,TYPR1
2) PUSHJ P,SPC
2) PUSHJ P,ASPT ;AND SYMBOL
2) TYPR1: PUSHJ P,CRL ;GOOD BYE
2) POP P,TT
***************
**** FILE PS:<MIDAS>STINK.121T.1, 37-50 (39130) AFTER SPTY:
1) ;0 1-12 13-44 45 46 47
1) ;NULL 0-9 A-Z . $ %
1) LI4: CAMN A,[(10700)CBUF-1]
1) JRST LI3
1) LDB T,A
1) ADD A,[(70000)]
1) SKIPGE A
1) SUB A,[(430000)1]
1) .IOT TYOC,T
1) JRST LI1
1) TYI: .IOT TYIC,T
1) CAIE T,15
1) CAIN T,12
1) JRST TYO
1) CAIN T,^R
1) JRST TYO
1) POPJ P,
1) LIS: ANDI FF,GETTY
1) LI3: MOVE A,[(10700)CBUF-1]
1) MOVEM A,CPTR
1) MOVE P,[(,-LPDL)PDL-1]
1) PUSHJ P,CRLS
1) TRZ FF,LOCF
1) LI1: TRZ FF,ALTF
1) LI2: PUSHJ P,TYI
1) CAIN T,33
1) MOVEI T,"
1) CAIN T,7
1) JRST LI3
1) CAIN T,177 ;RUBOUT
1) JRST LI4
1) IDPB T,A
1) CAMN A,[(10700)CBUF+CBUFL]
1) JRST LI4
1) LIS1: CAIE T,"
1) JRST LI1
1) TRON FF,ALTF
1) JRST LI2
1) PUSHJ P,CRL
1) CD: MOVEI D,0
1) CD3: TRZ FF,ARG
1) CD2: ILDB T,CPTR
1) CAIL T,"0
**** FILE PS:<MIDAS>STINK.MID.177, 37-57 (41841) AFTER SPTY:
2) ;SQUOZE CHARACTER CODES
2) ;0 1-12 13-44 45 46 47
2) ;NULL 0-9 A-Z . $ %
2) ;HERE TO BUFFER TTY INPUT
2) FILBUF: PUSH P,A ;CAN'T CLOBBER A
2) FILB0: SETZM CCNT
2) MOVE A,[10700,,CBUF-1]
2) MOVEM A,CPTR
2) PUSHJ P,CRLS ;PROMPT
2) TRZ FF,LOCF
2) FILB1: TRZ FF,ALTF
2) FILB2: PUSHJ P,TYI
2) CAIN T,7
2) JRST FILB0 ;BELL, RESET
2) CAIN T,177 ;RUBOUT
2) JRST RUBOUT
2) IDPB T,A
2) AOS CCNT ;CHARACTER COUNT
2) CAMN A,[10700,,CBUF+CBUFL]
2) JRST BUFFUL ;BUFFER FULL
2) CAIE T,ALTMOD
2) JRST FILB1
2) TRON FF,ALTF
2) JRST FILB2
2) PUSHJ P,CRL ;GIVE HIM CR AFTER TWO ALTS
2) JRST POPAJ
2) BUFFUL: MOVEI T,^G ;BUFFER FULL, DING TTY AND RUBOUT LAST CHARACTER
2) PUSHJ P,TYO
2) RUBOUT: LDB T,A ;THE CHARACTER TO RUBOUT
2) PUSHJ P,DECBP ;DECREMENT BYTE POINTER
2) SKIPGE CCNT
2) JRST FILB0 ;CCNT WENT NEGATIVE
2) TRNN FF,GETTY
2) JRST [ .IOT TYOC,T
2) JRST FILB1]
2) CAIE T,15 ;CARRIAGE RETURNS ARE A PAIN!!!
2) JRST [ .IOT TYOC,[^P] ;BACK UP CURSOR
2) .IOT TYOC,["X]
2) JRST FILB1]
2) PUSH P,CCNT
2) PUSH P,A
2) .IOT TYOC,[^P]
2) .IOT TYOC,["U] ;MOVE TO BEGINNING OF PREVIOUS LINE
2) RUBCR: PUSHJ P,DECBP ;DECREMENT BYTE POINTER
2) LDB T,A ;THE PRECEEDING CHARACTER
2) SKIPGE CCNT ;AT BEGINNING OF BUFFER?
2) JRST RUBCR1
2) .IOT TYOC,[^P]
2) .IOT TYOC,["F] ;MOVE FORWARD ONE
2) CAIE T,15 ;END OF LINE?
2) JRST RUBCR
2) RUBCR1: POP P,A
2) POP P,CCNT
2) JRST FILB1
2) DECBP: SOS CCNT
2) ADD A,[70000,,0] ;DECREMENT BYTE POINTER AND ECHO
2) SKIPGE A
2) SUB A,[430000,,1]
2) POPJ P,
2) TYI: .IOT TYIC,T
2) CAIN T,12
2) MOVEI T,15 ;NO LINE FEEDS IN BUFFER
2) CAIN T,15
2) JRST TYO
2) CAIE T,^L
2) POPJ P,
2) PUSH P,CCNT ;FORM FEED RETYPES BUFFER
2) PUSH P,A
2) MOVE A,[440700,,CBUF]
2) TRNE FF,GETTY
2) PUSHJ P,FORMF ;CLEAR DISPLAY SCREEN
2) PUSHJ P,CRL
2) TYI1: SOSGE CCNT
2) JRST [ POP P,A
2) POP P,CCNT
2) JRST TYI]
2) ILDB T,A
2) PUSHJ P,TYO
2) TRNN FF,GETTY
2) JRST TYI1 ;DON'T WORRY ABOUT ^P IF NOT DISPLAY
2) CAIN T,^P ;^P IS CONTROL CODE
2) PUSHJ P,TYO ;WHICH QUOTES ITSELF
2) JRST TYI1
2) LIS: ANDI FF,GETTY
2) SKIPA ;DON'T CLOBBER DDT STYLE COMMANDS
2) RESTRT: SETZM CCNT ;FLUSH STALE TYPE IN
2) MOVE P,[-LPDL,,PDL-1] ;RESTART AFTER VARIOUS ERRORS
2) RESTR1: SOSL UDEPTH
2) JRST [ .IOPOP TYIC, ;UNWIND THE IO PDL
2) JRST RESTR1]
2) SETZM UDEPTH ;FOR SAFETY SACK
2) CD: MOVEI D,0
2) CD3: TRZ FF,ARG
2) ;THE MAIN READ LOOP
2) CD2: PUSHJ P,GETCC
2) CAIL T,"0
***************
**** FILE PS:<MIDAS>STINK.121T.1, 39-13 (39843) AFTER CD2:
1) LSH D,3
1) ADDI D,-"0(T)
**** FILE PS:<MIDAS>STINK.MID.177, 39-19 (44190) AFTER CD2:
2) LSH D,3 ;ACCUMULATE NUMERIC ARGS
2) ADDI D,-"0(T)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 39-18 (39902) AFTER VALRET:
1) CD1: CAIE T,33
1) CAIN T,DOLL ;CHECK FOR A REAL DOLLAR SIGN
1) JRST LI3
1) CAIL T,"<
1) CAILE T,"[
1) JRST CD
1) IDIVI T,4
1) LDB T,DTAB(TT)
1) MOVEI A,SLIS(T) ;WHERE TO?
1) CAIE A,DUMPY ;IS IT A DUMP
1) TRZ FF,MLAST+SETDEV ;NO, KILL FUNNY FLAGS
1) CAIE A,HASHS ; HASH SET?
1) PUSHJ P,HASHS1 ; MAYBE DO IT
1) PUSHJ P,SLIS(T)
1) JRST CD
1) JRST VALRET
1) SLIS: TDZA C,C
1) MLIS: MOVEI C,2
1) TRNE FF,GETTY
1) PUSHJ P,FORMF
1) TRNE FF,ARG
**** FILE PS:<MIDAS>STINK.MID.177, 39-24 (44276) AFTER VALRET:
2) CD1: CAIN T,ALTMOD ;STRAY ALTMODE?
2) JRST RESTRT
2) CAIL T,"< ;LEGAL COMMAND?
2) CAILE T,"[
2) JRST CD ;NO, FORGIVE AND FORGET
2) SUBI T,"<
2) IDIVI T,2
2) HLRZ A,DTB(T)
2) CAIE TT,0 ;GET ADDRESS OF ROUTINE INTO A
2) HRRZ A,DTB(T)
2) MOVE T,A
2) CAIE A,DUMPY ;IS IT A DUMP
2) TRZ FF,MLAST+SETDEV ;NO, KILL FUNNY FLAGS
2) CAIE A,HASHS ; HASH SET?
2) PUSHJ P,HASHS1 ; MAYBE DO IT
2) PUSHJ P,(T) ;DISPATCH TO ACTION ROUTINE
2) JRST CD
2) JRST VALRET
2) DEFINE FOUR A,B,C,D
2) A,,B ? C,,D
2) TERMIN
2) DTB: FOUR LBRAK,EQLS,ERR,MLIS, ;< = > ?
2) FOUR GETCOM,SHIORG,BEG,COMSET, ;@ A B C
2) FOUR DDT,NTS,NTS,GOCOM, ;D E F G
2) FOUR HASHS,ERR,JOB,KILL, ;H I J K
2) FOUR LOADG,MCOM,LOADN,SOFSET, ;L M N O
2) FOUR PAPER,COMVAL,SFACT,SLIS, ;P Q R S
2) FOUR CPOPJ,ERR,ERR,WASH, ;T U V W
2) FOUR SADR,DUMPY,ZERO,EXAM, ;X Y Z [
2) SLIS: TDZA C,C
2) MLIS: MOVEI C,2
2) TRNE FF,ARG
***************
**** FILE PS:<MIDAS>STINK.121T.1, 40-9 (40355) AFTER MLIS:
1) JRST LISTER
1) LISTER: MOVE A,(D)
1) LDB TT,[(410300)A]
**** FILE PS:<MIDAS>STINK.MID.177, 40-8 (45158) AFTER MLIS:
2) LISTER: MOVE A,(D)
2) TLZ A,740000
2) CAMGE A,[50*50*50*50*50]
2) JRST LIST6 ; IGNORE POLISH FIXUPS
2) MOVE A,(D)
2) LDB TT,[(410300)A]
***************
**** FILE PS:<MIDAS>STINK.121T.1, 40-15 (40502) AFTER LISTER:
1) LIST4: PUSHJ P,ASPT
1) LIST5: PUSHJ P,VALPT
1) JRST LIST6
**** FILE PS:<MIDAS>STINK.MID.177, 40-16 (45381) AFTER LISTER:
2) LIST4: MOVEM D,CPROTE
2) SKIPN C
2) PUSHJ P,ASPT
2) LIST5: SKIPN C
2) PUSHJ P,VALPT
2) JRST LIST6
***************
**** FILE PS:<MIDAS>STINK.121T.1, 40-25 (40736) AFTER LIST6:
1) LIST7: PUSHJ P,SPC ; PRINT UNDEFINED SYMBOL
1) PUSHJ P,ASPT ; PRINT SYMBOL
**** FILE PS:<MIDAS>STINK.MID.177, 40-29 (45652) AFTER LIST6:
2) LIST7: SKIPN C
2) JRST LIST10
2) SKIPN CPROTE
2) JRST LIST10
2) EXCH D,CPROTE
2) MOVE A,(D)
2) PUSHJ P,ASPT
2) PUSHJ P,VALPT
2) EXCH D,CPROTE
2) SETZM CPROTE
2) MOVE A,(D)
2) LIST10: PUSHJ P,SPC ; PRINT UNDEFINED SYMBOL
2) PUSHJ P,ASPT ; PRINT SYMBOL
***************
**** FILE PS:<MIDAS>STINK.121T.1, 41-2 (41177) AFTER VALPT:
1) ; INITIALIZES ALL AREAS OF CORE
**** FILE PS:<MIDAS>STINK.MID.177, 40-62 (46258) AFTER VALPT:
2) WASH: SETOM PURE ;MAKE HIGH SEG PURE
2) POPJ P,
2) ;WASH PURIFIES THE HIGH SEGMENT
2) DOWASH: SKIPG A,HIBLK
2) POPJ P, ; DON'T BOTHER IF NO HIGH SEG BLOCKS
2) HRRZ B,HIORG
2) LSH B,-10.
2) MOVE 0,B
2) LSH 0,9.
2) IOR B,0
2) IORI B,400000
2) WASH1: .CBLK B,
2) FATAL [ASCIZ/Purification Failure/]
2) ADDI B,1001
2) SOJG A,WASH1
2) POPJ P,
2) ; INITIALIZES ALL AREAS OF CORE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 41-8 (41347) AFTER HASHS1:
1) POPJ P,
1) PUSH P,A ; NOW SAVEE IT
**** FILE PS:<MIDAS>STINK.MID.177, 41-8 (46757) AFTER HASHS1:
2) POPJ P,
2) PUSH P,A ; NOW SAVEE IT
***************
**** FILE PS:<MIDAS>STINK.121T.1, 41-72 (42535) AFTER SYMINT:
1) POPJ P,
1) CORRUP: PUSHJ P,GETCOR
**** FILE PS:<MIDAS>STINK.MID.177, 41-71 (47943) AFTER SYMINT:
2) POPJ P,
2) CORRUP: PUSHJ P,GETCOR
***************
**** FILE PS:<MIDAS>STINK.121T.1, 41-80 (42670) AFTER CORRUP:
1) CCRL: POPJ P,CRL
1) TMSERR: JRST SCE
**** FILE PS:<MIDAS>STINK.MID.177, 41-79 (48078) AFTER CORRUP:
2) CCRL: POPJ P, CRL
2) TMSERR: JRST SCE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 42-5 (42749) AFTER OPTCR:
1) OPT: MOVEI TT,10
1) HRRM TT,OPT1
**** FILE PS:<MIDAS>STINK.MID.177, 42-4 (48156) AFTER OPTCR:
2) OCTPR: MOVEI TT,10
2) HRRM TT,OPT1
***************
**** FILE PS:<MIDAS>STINK.121T.1, 42-17 (42916) AFTER TYOM:
1) TAB: PUSHJ P,SPC
**** FILE PS:<MIDAS>STINK.MID.177, 42-16 (48325) AFTER TYOM:
2) TYOS: PUSH P,T
2) HRLI TT,440700
2) TYOS1: ILDB T,TT
2) CAIN T,0
2) JRST TYOS2
2) PUSHJ P,TYO
2) JRST TYOS1
2) TYOS2: POP P,T
2) POPJ P,
2) TAB: PUSHJ P,SPC
***************
**** FILE PS:<MIDAS>STINK.121T.1, 42-27 (43069) AFTER FORMF1:
1) TYO: .IOT TYOC,T
1) C.12: POPJ P,12
1) CRLS1: MOVEI T,"*
1) JRST TYO
1) FORMF: POPJ P,12
1) TDDT: SKIPE LINKDB ;TEST FOR LINK HACKAGE
**** FILE PS:<MIDAS>STINK.MID.177, 42-36 (48608) AFTER FORMF1:
2) TYO: ANDI T,177 ;YET ANOTHER INCOMPATIBLE CHANGES TO ITS BY RMS
2) .IOT TYOC,T
2) C.12: POPJ P, 12
2) CRLS1: MOVEI T,"*
2) JRST TYO
2) FORMF: MOVEI T,^P
2) PUSHJ P,TYO
2) JRST FORMF1
2) ; THIS CALLED BEFORE DUMPING OR RETURNING TO DDT
2) TDDT: SKIPE LINKDB ;TEST FOR LINK HACKAGE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 43-60 (44817) AFTER OKSYM:
1) SYMS5: POPJ P,
1) GO: TRNE FF,ARG
1) MOVEM D,SA
**** FILE PS:<MIDAS>STINK.MID.177, 43-62 (50499) AFTER OKSYM:
2) SYMS5: POPJ P,
2) GOCOM: TRNE FF,ARG
2) MOVEM D,SA
***************
**** FILE PS:<MIDAS>STINK.121T.1, 44-6 (44890) AFTER GO:
1) EXAM: CAMLE D,MEMTOP
1) JRST TRYHI ; COULD BE IN HIGH SEG
1) MOVE T,@DPTR
1) JRST OPTCR
1) TRYHI: TRNE D,400000 ; SKIP IF NOT HIGH
1) CAMLE D,HIGTOP ; SKIP IF OK
1) (3000+SIXBIT /NEM/)
1) MOVE T,(D) ; GET CONTENTS
1) JRST OPTCR
1) C.CD2: POPJ P,CD2
1) GETCOM: MOVE A,[10700,,CBUF-1]
1) MOVEM A,CPTR
1) MOVE P,[(,-LPDL)PDL-1]
1) PUSH P,C.CD2
1) MOVEM P,SAVPDL
1) MOVEI T,0 ;REOPEN CHANNEL IN ASCII MODE
1) HLLM T,DEV
1) .OPEN TPCHN,DEV ;RE OPEN
1) JRST FNF2 ;LOSE
1) GTCM1: .IOT TPCHN,T
1) JUMPL T,FIXOPN ;JUMP IF EOF
1) CAIN T,3 ;CHECK FOR EOF
1) JRST FIXOPN ;IF SO QUIT
1) CAIL T,"a
1) CAILE T,"z
1) CAIA
1) SUBI T,40
1) IDPB T,A ;DEPOSIT CHARACTER
1) CAME A,[10700,,CBUF+CBUFL]
1) JRST GTCM1
1) TPOK: SKIPA T,BELL
**** FILE PS:<MIDAS>STINK.MID.177, 44-7 (50577) AFTER GOCOM:
2) MAPD: ; MAP VIRTUAL LOC IN D TO REAL LOC
2) CAMGE D,MEMTOP ; MUST BE IN HIGH SEGMENT
2) JRST MD1 ; IS IN LOW SEGMENT
2) CAML D,HIORG ; SKIP IF NOT IN HIGH SEGMENT
2) CAMLE D,HIGTOP ; SKIP IF IN HIGH SEGMENT
2) FATAL [ASCIZ/Non-existent Memory/]
2) POPJ P,
2) MD1: HRRZ 0,DPTR ; GET FUDGE FACTOR
2) ADD D,0 ; ACTUAL ADDRESS
2) SKIPN HIBLK ; ANY HIGH SEGMENT?
2) POPJ P, ; NO, NOTHING TO CHECK
2) CAMGE D,HIORG ; OVERLAP WITH HIGH SEGMENT
2) POPJ P, ; NO
2) SUB D,0 ; VIRTUAL ADDRESS
2) HRRZM D,ADR ; FOR ERROR MESSAGE
2) FATADR [ASCIZ/Low Segment Full/]
2) EXAM: ; GET CONTENTS SPEC BY VIRTUAL ADDR IN D
2) PUSHJ P,MAPD
2) MOVE T,(D)
2) JRST OPTCR
2) C.CD2: POPJ P, CD2
2) GETCOM: MOVE P,[-LPDL,,PDL-1]
2) PUSH P,C.CD2
2) MOVEM P,SAVPDL
2) .IOPUSH TYIC,
2) MOVE T,NM2 ;DON'T USE REL FOR COMMAND FILE
2) CAMN T,DEFFN2
2) MOVE T,[SIXBIT /LOADER/]
2) MOVEM T,NM2
2) OPEN TYIC,0
2) PUSHJ P,FNF ;LOSE
2) AOS UDEPTH
2) POPJ P,
2) TPOK: SKIPA T,BELL
***************
**** FILE PS:<MIDAS>STINK.121T.1, 44-42 (45610) AFTER ERR:
1) PUSHJ P,FIXOPN ;FIX UP OPEN CODE
1) JRST LI3
1) ;HERE TO RESET OPEN
1) FIXOPN: MOVEI T,6
1) HRLM T,DEV
1) POPJ P,
1) FNF2: PUSHJ P,FIXOPN
1) JRST FNF
1) PAPER: MOVEI A,(SIXBIT /PTR/)
1) HRRM A,DEV
1) POPJ P, ;REAL OPEN WILL OCCUR LATER
1) UTAP: TRZN FF,ARG
1) JRST OPNTP
**** FILE PS:<MIDAS>STINK.MID.177, 44-47 (51529) AFTER ERR:
2) JRST RESTRT
2) PAPER: MOVE A,[SIXBIT /PTR/]
2) MOVEM A,DEV
2) POPJ P, ;REAL OPEN WILL OCCUR LATER
2) MCOM: TRZN FF,ARG
2) JRST OPNTP
***************
**** FILE PS:<MIDAS>STINK.121T.1, 45-9 (45928) AFTER UTAP:
1) HRRM A,DEV
1) OPNTP: TRO FF,MLAST ;SET M LAST COMMAND
1) PUSHJ P,FRD
1) .SUSET [.SSNAM,,SNAME]
1) MOVEM B,NM1
1) MOVEM C,NM2
1) POPJ P, ;REAL OPEN WILL OCCUR LATER
1) OPNPTR: .OPEN TPCHN,DEV
1) JRST FNF
1) JRST RDFRST ;STAART UP THE READ ING
1) NTS: (3000+SIXBIT /NTS/)
1) DEV: 6,,(SIXBIT /DSK/)
1) NM1: SIXBIT /BIN/
1) NM2: SIXBIT /BIN/
1) 0
1) SNAME: 0 ;SYSTEM NAME
1) SIXTYO: JUMPE TT,CPOPJ
**** FILE PS:<MIDAS>STINK.MID.177, 45-10 (51714) AFTER MCOM:
2) MOVEM A,DEV
2) OPNTP: TRO FF,MLAST ;SET M LAST COMMAND
2) PUSHJ P,FRD
2) POPJ P, ;REAL OPEN WILL OCCUR LATER
2) NTS: FATAL [ASCIZ/Non-Time Sharing Command/]
2) SIXTYO: JUMPE TT,CPOPJ
***************
**** FILE PS:<MIDAS>STINK.121T.1, 45-36 (46373) AFTER SIXTYO:
1) JOB: PUSHJ P,FRD
1) MOVEM B,JOBNAM
1) TRO FF,JBN
1) POPJ P,
1) JOBNAM: 0
1) DEVTBL: IRPS DEV,,[DSK UT1 UT2 UT3 UT4 UT5 UT6 UT7 UT8]
1) (SIXBIT /DEV/)
1) TERMIN
1) FNF: PUSHJ P,TYPFIL
1) REPEAT 2,PUSHJ P,SPC
1) .OPEN ERCHN,ERRBL ;OPEN ERROR DEVICE
1) JRST .-1 ;DON'T TAKE NO FOR AN ANSWER
1) ERLP: .IOT ERCHN,A ;READ A CHAR
**** FILE PS:<MIDAS>STINK.MID.177, 45-24 (51961) AFTER SIXTYO:
2) JOB: PUSH P,DEV
2) PUSH P,SNAME
2) PUSH P,NM1
2) PUSH P,NM2
2) PUSHJ P,FRD
2) MOVE B,NM1
2) MOVEM B,JOBNAM
2) TRO FF,JBN
2) POP P,NM2
2) POP P,NM1
2) POP P,SNAME
2) POP P,DEV
2) POPJ P,
2) FNF: PUSHJ P,TYPFIL
2) PUSHJ P,SPC
2) PUSHJ P,SPC
2) .CALL [SETZ
2) SIXBIT/OPEN/
2) 5000,,0
2) 1000,,ERCHN
2) [SIXBIT/ERR/]
2) 1000,,4
2) SETZ ERRSTS]
2) JRST .-1 ;DON'T TAKE NO FOR AN ANSWER
2) ERLP: .IOT ERCHN,A ;READ A CHAR
***************
**** FILE PS:<MIDAS>STINK.121T.1, 45-62 (46813) AFTER ERDON:
1) JRST LI3
1) ERRBL: (SIXBIT /ERR/) ;ERROR DEVICE
1) 2
1) TPCHN
1) TYPFIL: MOVSI A,-4
1) HRLZ TT,DEV
1) JRST .+3
1) TYPF2: SKIPN TT,DEV(A)
1) AOJA A,.-1
1) PUSHJ P,SIXTYO
**** FILE PS:<MIDAS>STINK.MID.177, 45-60 (52488) AFTER ERDON:
2) PUSH P,C
2) MOVEI TT,[ASCIZ/ Use What Filename Instead? /]
2) PUSHJ P,TYOS
2) PUSHJ P,GTYIP ;GET TYPEIN
2) PUSHJ P,RFD ;GET NEW FILE DESCRIPTION
2) POP P,C
2) POP P,A ;ADDRESS OF .CALL OPEN+2
2) JRST -2(A) ;RETRY .CALL OPEN
2) TYPFIL: MOVE A,[-4,,0] ; TYPE OUT CURRENT FILE NAME
2) TYPF2: SKIPN TT,DEV(A)
2) JRST TYPF3
2) PUSHJ P,SIXTYO
***************
**** FILE PS:<MIDAS>STINK.121T.1, 45-78 (47013) AFTER TYPF2:
1) AOBJN A,TYPF2
1) POPJ P,
1) TYPFTB: ":
1) 40
1) 40
1) 0
1) ";
1) LOADN: SKIPA C,SYMFLG
**** FILE PS:<MIDAS>STINK.MID.177, 45-75 (52851) AFTER TYPF2:
2) TYPF3: AOBJN A,TYPF2
2) POPJ P,
2) TYPFTB: ":
2) ";
2) 40
2) 40
2) LOADN: SKIPA C,SYMFLG
***************
**** FILE PS:<MIDAS>STINK.121T.1, 46-12 (47266) AFTER RESTAR:
1) RESET: MOVEI A,FACTOR ;LEAVE GLOBAL LOCATION MODE
1) HRRM A,REL
1) TRZA FF,UNDEF+GPARAM+INDEF+GLOSYM+SEARCH+CODEF+COND
1) SFACT: MOVEM D,FACTOR
1) CJMP1: POPJ P,JMP1
1) KILL: POPJ P,
1) COMVAL: SKIPA COMLOC
**** FILE PS:<MIDAS>STINK.MID.177, 46-12 (53106) AFTER RESTAR:
2) RESET: ;LEAVE GLOBAL LOCATION MODE
2) ; MOVEI A,FACTOR
2) ; HRRM A,REL
2) TRZ FF,UNDEF+GPARAM+INDEF+GLOSYM+SEARCH+CODEF+COND+ADRREL
2) POPJ P,
2) SHIORG: SKIPE HIBLK
2) FATAL [ASCIZ/Too Late to Change High Segment Origin/]
2) HRRZ D,D
2) ADDI D,1777
2) ANDI D,776000
2) MOVEM D,HIORG
2) MOVEM D,HIADR
2) SUBI D,HIREL0
2) MOVEM D,HIFACT
2) MOVE D,HIORG
2) LSH D,-10.
2) SUBI D,1
2) LSH D,9.
2) IORI D,400000
2) HRRM D,CWORD1
2) JRST CJMP1
2) SFACT: HRRZS D
2) CAIL D,HIORG
2) JRST SF1
2) MOVEM D,FACTOR
2) JRST CJMP1
2) SF1: SUB D,HIORG
2) MOVEM D,HIFACT
2) CJMP1: POPJ P, JMP1
2) KILL: POPJ P,
2) COMVAL: SKIPA COMLOC
***************
**** FILE PS:<MIDAS>STINK.121T.1, 46-23 (47524) AFTER COMSET:
1) BELL: POPJ P,7
1) LBRAK: MOVEM D,T1
**** FILE PS:<MIDAS>STINK.MID.177, 46-49 (53759) AFTER COMSET:
2) BELL: POPJ P, 7
2) LBRAK: MOVEM D,T1
***************
**** FILE PS:<MIDAS>STINK.121T.1, 46-33 (47662) AFTER LBRAK:
1) (3000+SIXBIT /UND/)
1) MOVE D,1(D)
**** FILE PS:<MIDAS>STINK.MID.177, 46-59 (53898) AFTER LBRAK:
2) FATAL [ASCIZ/Undefined Symbol/]
2) MOVE D,1(D)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 46-37 (47726) AFTER LBRAK:
1) (2000+SIXBIT /UND/)
1) SOFSET: HRRM D,LKUP3
**** FILE PS:<MIDAS>STINK.MID.177, 46-63 (53974) AFTER LBRAK:
2) FATADR [ASCIZ/Undefined Symbol/] ;TYPES ADR, BUT I DON'T KNOW WHY
2) SOFSET: HRRM D,LKUP3
***************
**** FILE PS:<MIDAS>STINK.121T.1, 47-8 (47857) AFTER DDT:
1) PUSHJ P,TDDT
1) MOVE A,JOBNAM
**** FILE PS:<MIDAS>STINK.MID.177, 47-8 (54152) AFTER DDT:
2) MOVE B,LOWSIZ ; PUT LOW-SEGMENT TOP IN LOCATION 20
2) SUBI B,(NBLKS)
2) LSH B,10.
2) SUBI B,1
2) MOVEM B,20
2) HRLZ B,HIORG ; PUT HIORG,,HIGTOP IN LOCATION 21
2) HRR B,HIGTOP
2) MOVEM B,21
2) PUSHJ P,TDDT
2) .IOPDL ;RESET THE I/O PUSH DOWN LIST
2) SKIPE PURE
2) PUSHJ P,DOWASH ;PURIFY HIGH SEGMENT
2) MOVE A,JOBNAM
***************
**** FILE PS:<MIDAS>STINK.121T.1, 48-1 (48071) AFTER DDT2:
1) DMCG,[
1) DDT1: MOVEI C,[CONC69 ASCIZ \J,\SA,[/9B!Q
1) ],\DDPTR,[/Q:VP \]]
1) HRLI C,440700
1) DDT6: ILDB T,C
1) IDPB T,B
1) JUMPN T,DDT6 ;END OF STRING MARKED WITH ZERO BYTE
1) MOVE T,SA ;GET STARTING ADDRESS
1) TLNN T,777000 ;IF INSTRUCTION PART ZERO,
**** FILE PS:<MIDAS>STINK.MID.177, 48-2 (54650) AFTER DDT2:
2) DDT1: MOVE T,SA ;GET STARTING ADDRESS
2) TLNN T,777000 ;IF INSTRUCTION PART ZERO,
***************
**** FILE PS:<MIDAS>STINK.121T.1, 48-13 (48464) AFTER DDT6:
1) MOVE B,LOBLKS ;GET CURRENT CORE ALLOCATION+1
1) SUBI B,1(NBLKS) ;REDUCE TO PROGRAM CORE ALLOCATION
1) HRRM B,PALLOC ;SAVE IN EXIT ROUTINE
1) LSH B,10. ;SHIFT TO MEMORY LOCATION
1) SUBI B,1 ;REDUCE TO TOP LOCATION IN CORE OF PROGRAM
1) HRRM B,PMEMT ;SAVE FOR MAIN PROGRAM BLT (DON'T LET NON-ZERO CORE ABOVE PROGRAM STAY AROUND)
1) HRLZ 17,BPTR ;GET LOCATION OF BEGINNING OF PROGRAM IN LH(17)
**** FILE PS:<MIDAS>STINK.MID.177, 48-8 (54875) AFTER DDT1:
2) MOVEI T,DDT4 ;MAKE OCTPR GO TO DDT4
2) HRRM T,TYOM ;INSTEAD OF TYO
2) MOVEI C,[ASCIZ \J9B/#0
2) #1P\]
2) ;# CAUSES FOLLOWING DIGIT TO BE INTERPRETED AS INDEX INTO DDTST
2) HRLI C,440700
2) PUSHJ P,DDTSG ;GENERATE REST OF STRING
2) MOVE B,LOWSIZ ;GET CURRENT CORE ALLOCATION
2) SUBI B,(NBLKS) ;REDUCE TO PROGRAM CORE ALLOCATION
2) MOVE C,B ;SAVE OUR SIZE
2) LSH B,10. ;SHIFT TO MEMORY LOCATION
2) SUBI B,1 ;REDUCE TO TOP LOCATION IN CORE OF PROGRAM
2) HRRM B,PMEMT ;SAVE FOR MAIN PROGRAM BLT
2) ;(DON'T LET NON-ZERO CORE ABOVE PROGRAM STAY AROUND)
2) SUB C,LOWSIZ
2) MOVNM C,PALL0 ;NUMBER OF BLOCKS TO FLUSH
2) MOVE C,LOWSIZ
2) SUBI C,1
2) LSH C,9.
2) HRRZM C,PALL1
2) HRLZ 17,BPTR ;GET LOCATION OF BEGINNING OF PROGRAM IN LH(17)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 48-23 (49026) AFTER YPTR:
1) ;DON'T TRY TO STOP THEN START STINK AFTER HERE (AFTER BREAKPOINT OR WITH $G)
1) BLT B,LEXEND ;BLT IN EXIT ROUTINE
**** FILE PS:<MIDAS>STINK.MID.177, 48-31 (55770) AFTER YPTR:
2) ;DON'T TRY TO STOP THEN START STINK AFTER HERE
2) ; (AFTER BREAKPOINT OR WITH $G)
2) BLT B,LEXEND ;BLT IN EXIT ROUTINE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 48-32 (49297) AFTER YPTR:
1) ;EXIT ROUTINE FROM LOADER
1) ;BLT'ED INTO 30 - 30+N
1) EXBLTP: .+1,,LEXIT ;BLT POINTER
1) OFST==30-. ;LEXIT=30
1) LEXIT=.+OFST
1) PMEMT: BLT 17, ;BLT DOWN MAIN PROGRAM
1) MOVE 17,SV17 ;GIVE USER HIS LOCATION 17
1) PALLOC: .CORE ;REDUCE CORE ALLOCATION TO WHAT REQUIRED BY PROGRAM
1) PSV17: SV17=.+OFST
1) 40,,40 ;40 FIRST PROGRAM ADDRESS LOADED INTO
1) EXIT: .VALUE LEXEND
1) LEXEND=.+OFST
1) 0 ;END OF EXIT ROUTINE
1) ];DMCG
1) NODMCG,[
1) DDT1: MOVE T,SA ;GET STARTING ADDRESS
1) TLNN T,777000 ;IF INSTRUCTION PART ZERO,
1) TLO T,(JRST) ;THEN TURN INTO JRST
1) MOVEM T,SA ;USE AS STARTING ADDRESS
1) TRNE FF,GOF ;IF G COMMAND,
1) MOVEM T,EXIT ;THEN USE AS LOADER EXIT
1) MOVEI T,DDT4 ;MAKE OPT GO TO DDT4
1) HRRM T,TYOM ;INSTEAD OF TYO
1) MOVEI C,[ASCIZ \J9B/#0
1) #1P\] ;# CAUSES FOLLOWING DIGIT TO BE INTERPRETED AS INDEX INTO DDTST
1) HRLI C,440700
1) PUSHJ P,DDTSG ;GENERATE REST OF STRING
1) MOVE B,LOWSIZ ;GET CURRENT CORE ALLOCATION
1) SUBI B,(NBLKS) ;REDUCE TO PROGRAM CORE ALLOCATION
1) MOVE C,B ;SAVE OUR SIZE
1) LSH B,10. ;SHIFT TO MEMORY LOCATION
1) SUBI B,1 ;REDUCE TO TOP LOCATION IN CORE OF PROGRAM
1) HRRM B,PMEMT ;SAVE FOR MAIN PROGRAM BLT (DON'T LET NON-ZERO CORE ABOVE PROGRAM STAY AROUND)
1) SUB C,LOWSIZ
1) MOVNM C,PALL0 ;NUMBER OF BLOCKS TO FLUSH
1) MOVE C,CWORD0
1) TRZ C,400000 ;DELETE PAGE
1) HRRZM C,PALL1
1) HRLZ 17,BPTR ;GET LOCATION OF BEGINNING OF PROGRAM IN LH(17)
1) ADDM 17,PSV17 ;17 BLT POINTER FOR AC'S, TURN SV17 INTO BLT POINTER FOR PROGRAM
1) MOVE B,EXBLTP ;GET EXIT ROUTINE BLT POINTER
1) YPTR: .VALUE ;ADDRESS POINTS TO VALRET STRING
1) ;DON'T TRY TO STOP THEN START STINK AFTER HERE (AFTER BREAKPOINT OR WITH $G)
1) BLT B,LEXEND ;BLT IN EXIT ROUTINE
1) BLT 17,17 ;BLT IN PROGRAM AC'S
1) EXCH 17,SV17 ;SAVE PROGRAM LOCATION 17, SET UP BLT POINTER
1) .CLOSE TYOC,
1) .CLOSE TYIC,
1) .CLOSE TPCHN,
1) JRST LEXIT
1) DDTST: MOVE T,SA ;#0
**** FILE PS:<MIDAS>STINK.MID.177, 48-41 (56048) AFTER YPTR:
2) DDTST: MOVE T,SA ;#0
***************
**** FILE PS:<MIDAS>STINK.121T.1, 49-42 (51232) AFTER DDTSN:
1) PUSHJ P,OPT ;"TYPE OUT" INTO VALRET STRING IN OCTAL
1) DDTSG: ILDB T,C ;GET CHAR FROM INPUT STRING
**** FILE PS:<MIDAS>STINK.MID.177, 48-46 (56171) AFTER DDTSN:
2) PUSHJ P,OCTPR ;"TYPE OUT" INTO VALRET STRING IN OCTAL
2) DDTSG: ILDB T,C ;GET CHAR FROM INPUT STRING
***************
**** FILE PS:<MIDAS>STINK.121T.1, 49-51 (51526) AFTER DDTSG:
1) ;BLT'ED INTO 20 - 20+N
1) EXBLTP: .+1,,LEXIT ;BLT POINTER
1) OFST==20-. ;OFFSET, THIS CODE DESTINED FOR LEXIT
1) LEXIT=.+OFST ;LEXIT=20
1) PMEMT: BLT 17, ;BLT DOWN MAIN PROGRAM
**** FILE PS:<MIDAS>STINK.MID.177, 48-55 (56467) AFTER DDTSG:
2) ;BLT'ED INTO 22 - 22+N
2) EXBLTP: .+1,,LEXIT ;BLT POINTER
2) OFST==22-. ;OFFSET, THIS CODE DESTINED FOR LEXIT
2) LEXIT=.+OFST ;LEXIT=22
2) PMEMT: BLT 17, ;BLT DOWN MAIN PROGRAM
***************
**** FILE PS:<MIDAS>STINK.121T.1, 49-71 (52020) AFTER PALL1:
1) ];NODMCG
1) NJN: TRZ FF,GOF
1) (3000+SIXBIT /NJN/)
1) ZERO: MOVEI A,(NBLKS)
**** FILE PS:<MIDAS>STINK.MID.177, 49-2 (56964) AFTER PALL1:
2) NJN: TRZ FF,GOF
2) FATAL [ASCIZ/No Job Name/]
2) ZERO: MOVEI A,(NBLKS)
***************
**** FILE PS:<MIDAS>STINK.121T.1, 50-22 (52347) AFTER GETMEM:
1) GETCOR:
1) DMCG,[
1) .CORE @LOBLKS
1) POPJ P,
1) JRST POPJ1
1) ];DMCG
1) NODMCG,[
1) PUSH P,A
1) PUSH P,B
1) MOVE B,LOBLKS
1) SUB B,LOWSIZ ;NUMBER OF BLOCKS WE WANT
1) JUMPE B,GETC2
1) SKIPG B
1) .VALUE
1) MOVE A,CWORD0
1) GETC1: ADDI A,1000
1) .CBLK A,
1) JRST POPBAJ
1) MOVEM A,CWORD0
1) AOS LOWSIZ
1) SOJG B,GETC1
1) GETC2: AOS -2(P) ;SKIP RETURN
1) JRST POPBAJ
1) ];NODMCG
1) SCE: SOS (P) ;MAKE POPJ BE A "JRST .-1"
1) SOS (P)
1) PUSHJ P,COREQ ;ASK LOSER
1) POPJ P, ;HE SAID YES
1) (2000+SIXBIT /SCE/)
1) COREQ: PUSH P,A ;SAVE SOME ACS
**** FILE PS:<MIDAS>STINK.MID.177, 49-22 (57285) AFTER GETMEM:
2) GETCOR: PUSH P,A
2) PUSH P,B
2) MOVE B,LOWSIZ ; NUMBER OF BLOCKS WE HAVE
2) SUB B,LOBLKS ; NEGATIVE NUMBER OF BLOCKS TO GET
2) SKIPL B ; WANT TO GIVE SOME UP?
2) FATAL [ASCIZ/Low Segment Request is Negative/]
2) AOS -2(P) ; SET UP FOR SKIP RETURN (SUCCESSFUL)
2) JUMPE B,POPBAJ ; THAT WAS EASY
2) HRLZ B,B ; NOW IN LEFT HALF
2) HRR B,LOWSIZ ; FIRST PAGE TO GET IN RIGHT HALF
2) .CALL [SETZ
2) 'CORBLK
2) 1000,,300000 ; GET READ AND WRITE ACCESS
2) 1000,,-1 ; PUT PAGES IN MY JOB
2) B ; CPTR
2) 401000,,400001 ; GET FRESH PAGES
2) ]
2) SOS -2(P) ; GUESS WE LOST AFTER ALL
2) HRRZM B,LOWSIZ ; NEW NUMBER OF LOW BLOCKS
2) JRST POPBAJ ; RETURN
2) SCE: SOS (P) ;MAKE POPJ BE A "GO .-1"
2) SOS (P)
2) PUSHJ P,COREQ ;ASK LOSER
2) POPJ P, ;HE SAID YES
2) FATADR [ASCIZ/Storage Capacity Exceeded/]
2) COREQ: PUSH P,A ;SAVE SOME ACS
***************
**** FILE PS:<MIDAS>STINK.121T.1, 50-57 (52906) AFTER COREQ:
1) COREQ0: MOVEI A,[ASCIZ /NO CORE:
1) TYPE C TO TRY INDEFINITELY
1) TYPE Y TO TRY ONCE
1) TYPE N TO LOSE/]
1) PUSHJ P,LINOUT
**** FILE PS:<MIDAS>STINK.MID.177, 49-52 (58149) AFTER COREQ:
2) COREQ0: MOVEI A,[ASCIZ /No Core:
2) Type C to try indefinately
2) Type Y to try once
2) Type N to lose/]
2) PUSHJ P,LINOUT
***************
**** FILE PS:<MIDAS>STINK.121T.1, 51-2 (53616) AFTER WINP:
1) DEFINE FOUR A,B,C,D
1) (<<A-SLIS>_9>+B-SLIS)<<C-SLIS>_9>+D-SLIS
1) TERMIN
1) DTAB: (331100+T)DTB-74/4
1) (221100+T)DTB-74/4
1) (111100+T)DTB-74/4
1) (1100+T)DTB-74/4
1) DTB: FOUR LBRAK,EQLS,ERR,MLIS, ;< = > ?
1) FOUR GETCOM,ERR,BEG,COMSET, ;@ A B C
1) FOUR DDT,NTS,NTS,GO, ;D E F G
1) FOUR HASHS,ERR,JOB,KILL, ;H I J K
1) FOUR LOADG,UTAP,LOADN,SOFSET, ;L M N O
1) FOUR PAPER,COMVAL,SFACT,SLIS, ;P Q R S
1) FOUR CPOPJ,ERR,ERR,ERR, ;T U V W
1) FOUR SADR,DUMPY,ZERO,EXAM, ;X Y Z [
1) IFLE 1000-DDT+SLIS,[PRINTX /DISPATCH OVERFLOW
1) /]
1) INFORM [DISPATCH ROOM]\<1000-DDT+SLIS>
1) ;THIS CODE DUMPS THE LOADED CORE IMAGE INTO A DISK FILE AND THEN CAUSES
1) ;STINK TO KILL ITSELF.
1) DUMPY: TRZN FF,MLAST ;WAS "M" THE LAST COMMAND?
1) PUSHJ P,FIXFIL ;FIX UP THE FILE NAME
1) MOVEI A,(SIXBIT /DSK/)
1) TRZN FF,SETDEV ;WAS DEVICE SET?
1) HRRM A,DEV ;NO, SET IT
1) .OPEN TPCHN,DEV ;SEE IF IT EXISTS
1) JRST OPNOK ;NO, WIN
1) .CLOSE TPCHN, ;CLOSE IT
1) .FDELE DEV ;DELETE IT
1) JFCL ;IGNORE LOSSAGE
1) OPNOK: MOVSI A,7 ;SET DEVICE SPEC TO BE WRITE/IMAGE/BLOCK
1) HLLM A,DEV
1) .OPEN TPCHN,DEV ;OPEN THE CHANNEL
1) JRST FNF
1) PUSHJ P,TDDT ;MOVE ALL SYMBOLS TO DDT TABLE
1) MOVE B,[JRST 1] ;START FILE WITH "JRST 1"
1) PUSHJ P,OUTWRD ;PUT IT OUT
1) MOVN ADR,MEMTOP ;GET -<LENGTH OF CORE IMAGE>
**** FILE PS:<MIDAS>STINK.MID.177, 50-2 (58859) AFTER WINP:
2) ;THIS CODE DUMPS THE LOADED CORE IMAGE INTO A DISK FILE AND THEN CAUSES
2) ;STINK TO KILL ITSELF.
2) DUMPY: SKIPE PURE
2) WARN [ASCIZ/Must do PDUMP to Get Pure High Segment/]
2) TRZN FF,MLAST ;WAS "M" THE LAST COMMAND?
2) PUSHJ P,FIXFIL ;FIX UP THE FILE NAME
2) MOVE A,[SIXBIT /DSK/]
2) TRZN FF,SETDEV ;WAS DEVICE SET?
2) MOVEM A,DEV ;NO, SET IT
2) MOVSI A,'REL
2) CAME A,NM2 ;IS THAT ANY NAME FOR A BIN FILE
2) JRST DUMPY1
2) MOVSI A,'BIN
2) MOVEM A,NM2
2) DUMPY1: OPEN TPCHN,6
2) JRST OPNOK ;DOES NOT EXIST, WIN
2) .CLOSE TPCHN, ;CLOSE IT
2) .CALL [SETZ
2) SIXBIT/DELETE/
2) DEV
2) NM1
2) NM2
2) SETZ SNAME]
2) JFCL ;IGNORE LOSSAGE
2) OPNOK: OPEN TPCHN,7
2) PUSHJ P,FNF
2) PUSHJ P,TDDT ;MOVE ALL SYMBOLS TO DDT TABLE
2) MOVE B,[GO 1] ;START FILE WITH "GO 1"
2) PUSHJ P,OUTWRD ;PUT IT OUT
2) MOVE B,LOWSIZ ; PUT LOW-SEGMENT TOP IN LOCATION 20
2) SUBI B,(NBLKS)
2) LSH B,10.
2) SUBI B,1
2) MOVEI ADR,20
2) MOVEM B,@ADRPTR
2) HRLZ B,HIORG ; PUT HIORG,,HIGTOP IN LOCATION 21
2) HRR B,HIGTOP
2) MOVEI ADR,21
2) MOVEM B,@ADRPTR
2) MOVN ADR,MEMTOP ;GET -<LENGTH OF CORE IMAGE>
***************
**** FILE PS:<MIDAS>STINK.121T.1, 52-73 (56079) AFTER CHKHI:
1) LDB ADR,[2100,,MEMTOP] ; GET NO. OF WORDS
1) MOVNS ADR ; NEGATE
1) MOVSI ADR,(ADR)
1) HRRI ADR,400000 ; START OF HIGH SEG
1) JRST DMP2
**** FILE PS:<MIDAS>STINK.MID.177, 50-93 (61107) AFTER CHKHI:
2) HLLZS DPTR
2) HRRZ ADR,MEMTOP ; GET NO. OF WORDS
2) SUB ADR,HIORG
2) MOVNS ADR ; NEGATE
2) MOVSI ADR,(ADR)
2) HRR ADR,HIORG ; START OF HIGH SEG
2) JRST DMP2
***************
**** FILE PS:<MIDAS>STINK.121T.1, 52-101 (56601) AFTER DMPSYMS:
1) MOVSI B,(JRST) ;FINISH WITH "JRST 0"
1) PUSHJ P,OUTWRD
**** FILE PS:<MIDAS>STINK.MID.177, 50-121 (61645) AFTER DMPSYMS:
2) MOVSI B,(JRST) ;FINISH WITH "GO 0"
2) PUSHJ P,OUTWRD
***************
**** FILE PS:<MIDAS>STINK.121T.1, 52-109 (56746) AFTER DMPSYMS:
1) .VALUE [ASCIZ /:KILL /] ;KILL
1) ;SUBROUTINE TO PUT OUT ONE WORD
**** FILE PS:<MIDAS>STINK.MID.177, 50-129 (61788) AFTER DMPSYMS:
2) .BREAK 16,60000 ; GOOD-BYE
2) ;SUBROUTINE TO PUT OUT ONE WORD
***************
**** FILE PS:<MIDAS>STINK.121T.1, 54-11 (57317) AFTER PAIR3:
1) POPJ P,
1) PAIR1: MOVE A,PARCUR ; TRY FREE AREA
**** FILE PS:<MIDAS>STINK.MID.177, 52-11 (62350) AFTER PAIR3:
2) POPJ P,
2) PAIR1: MOVE A,PARCUR ; TRY FREE AREA
***************
**** FILE PS:<MIDAS>STINK.121T.1, 55-15 (58419) AFTER MORPAR:
1) POPJ P,
1) ; HERE TO MOVE CODE
**** FILE PS:<MIDAS>STINK.MID.177, 53-15 (63452) AFTER MORPAR:
2) POPJ P,
2) ; HERE TO MOVE CODE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 55-40 (58931) AFTER MOVCO2:
1) POPJ P,
1) ; HERE TO MOVE DDT SYMBOLS
**** FILE PS:<MIDAS>STINK.MID.177, 53-40 (63964) AFTER MOVCO2:
2) POPJ P,
2) ; HERE TO MOVE DDT SYMBOLS
***************
**** FILE PS:<MIDAS>STINK.121T.1, 55-75 (59578) AFTER ADDDD1:
1) POPJ P,
1) GROWDD: PUSHJ P,GETCOR
**** FILE PS:<MIDAS>STINK.MID.177, 53-73 (64607) AFTER ADDDD1:
2) POPJ P,
2) GROWDD: PUSHJ P,GETCOR
***************
**** FILE PS:<MIDAS>STINK.121T.1, 55-96 (59997) AFTER ADDDD3:
1) JRST ADDDD3 ;NOT THIS ONE.
1) MOVE A,1(B) ;SYM'S REAL NAME IS IN 2ND WD OF STE,
**** FILE PS:<MIDAS>STINK.MID.177, 53-94 (65026) AFTER ADDDD3:
2) GO ADDDD3 ;NOT THIS ONE.
2) MOVE A,1(B) ;SYM'S REAL NAME IS IN 2ND WD OF STE,
***************
**** FILE PS:<MIDAS>STINK.121T.1, 55-110 (60368) AFTER TDDTE1:
1) JRST TDDTE1 ;THIS NOT PROGRAM NAME.
1) CAMN A,DDPTR
1) JRST POPBAJ ;IF IT'S ALREADY 1ST, NO PROBLEM.
1) MOVE B,DDPTR
**** FILE PS:<MIDAS>STINK.MID.177, 53-108 (65395) AFTER TDDTE1:
2) GO TDDTE1 ;THIS NOT PROGRAM NAME.
2) CAMN A,DDPTR
2) GO POPBAJ ;IF IT'S ALREADY 1ST, NO PROBLEM.
2) MOVE B,DDPTR
***************
**** FILE PS:<MIDAS>STINK.121T.1, 56-4 (60673) AFTER ISYM:
1) ISYM0: ILDB A,CPTR
1) CAIN A,"*
**** FILE PS:<MIDAS>STINK.MID.177, 54-5 (65698) AFTER ISYM:
2) ISYM0: PUSH P,T
2) PUSHJ P,GETCC
2) MOVE A,T
2) POP P,T
2) CAIN A,"*
***************
**** FILE PS:<MIDAS>STINK.121T.1, 57-1 (60940) AFTER ISYM2:
1) FRD2: CAME B,[SIXBIT /@/]
1) JRST DEVNAM
1) SKIPA B,C
1) FRD: MOVSI B,(SIXBIT /@/)
1) MOVSI C,(SIXBIT /@/)
1) MOVE A,[(600)C-1]
1) FRD1: ILDB T,CPTR
1) CAIE T,33
1) CAIN T,DOLL
1) JRST CHBIN ;CHECK IF SHOULD CHANGE NAME 2 TO BIN
1) TRC T,40
1) JUMPE T,FRD2
1) CAIN T,32
1) JRST DEVSET
1) CAIN T,33
1) JRST USRSET
1) CAIN T,77
1) MOVEI T,0
1) CAME A,[(600)C]
1) IDPB T,A
1) JRST FRD1
1) USRSET: MOVEM C,SNAME
1) JRST FRD+1
1) DEVNAM: PUSH P,CDEVN1
1) MOVEM C,NM2
1) JRST FRD+1
1) DEVNM1: TRO FF,SETDEV ;SAY DEVICE SET
1) HLRM C,DEV
1) MOVE C,NM2
1) JRST CHBIN ;CHECK FOR CHANGE TO BIN
1) DEVSET: TRO FF,SETDEV ;DEVICE SET
1) HLRM C,DEV
1) JRST FRD+1
1) CHBIN: CAME B,[SIXBIT /@/] ;WAS NO NAME2 SUPPLIED?
1) POPJ P, ;NAME2 SUPPLIED, GO AWAY
1) MOVE B,C ;MAKE NAME1 INTO NAME2
1) NODMCG, MOVSI C,(SIXBIT /REL/) ;USE REL FOR NAME2
1) DMCG, MOVSI C,(SIXBIT /BIN/)
1) CDEVN1: POPJ P,DEVNM1
1) CONSTANTS
1) ;IMPURE STORAGE
**** FILE PS:<MIDAS>STINK.MID.177, 55-2 (65999) AFTER ISYM2:
2) ;READ SINGLE FILE DESCRIPTION
2) ;USES A,B,C,D,T
2) ;REGISTER A USED TO CONTAIN INSTRUCTION TO GET NEXT CHARACTER
2) RFD: ; READ FROM FILE-NAME-BUFFER -- DEFAULT NM2 IS PREVIOUS
2) MOVE T,[440700,,FNBUF]
2) MOVEM T,FNPTR
2) MOVE A,[ILDB T,FNPTR]
2) JRST RFD8
2) FRD: ; READ FROM COMMAND STRING -- DEFAULT NM2 IS 'REL'
2) SETZM NM2
2) MOVE A,[CL GETCC]
2) RFD8: SETZ D, ;D COUNTS FILENAMES. 0 BEFORE 1ST.
2) RFD1: MOVEI C,0 ;INITIALIZE SIXBIT NAME.
2) MOVE B,[440600,,C] ;SET UP BP FOR INPUT
2) RFD2: XCT A ;GET CHARACTER IN T
2) CAIN T,": ;IF COLON...
2) JRST RFDCOL ;THEN PROCESS AS SUCH
2) CAIN T,"; ;SIMILARLY FOR SEMICOLON
2) JRST RFDSEM
2) CAIN T,^Q ;IF CONTROL Q...
2) JRST RFDCQ ;THEN GET NEXT CHARACTER AND TREAT AS NON-SYNTACTICAL
2) CAILE T,40 ;LOGICAL SPACE? (INCLUDING CR)
2) JRST RFDC ;NO
2) RFD6: JUMPE C,RFD5 ;IGNORE NULL FILENAMES
2) XCT RFDTAB(D) ;STORE THE NAME (MAY SKIP)
2) ADDI D,1 ;NEXT NAME PUT ELSEWHERE
2) RFD5: CAIE T,ALTMOD
2) GO RFD1 ;NEXT NAME
2) CAIL D,2 ;SECOND NAME SPECIFIED?
2) POPJ P, ;YES
2) SKIPE NM2 ;USE OLD SECOND NAME?
2) POPJ P, ;YES
2) MOVE T,DEFFN2 ;NO, USE DEFAULT
2) MOVEM T,NM2
2) POPJ P,
2) RFDCOL: JUMPE C,RFD1 ;IF HE WANTS THE NULL DEVICE HE GETS TO TYPE IT IN
2) MOVEM C,DEV ;MOVE TO DEVICE LOCATION
2) TRO FF,SETDEV
2) JRST RFD1 ;LOOP
2) RFDSEM: JUMPE C,RFD1 ;NO NULL SYSTEM NAMES PLEASE
2) MOVEM C,SNAME ;MOVE TO SYSTEM NAME LOCATION
2) JRST RFD1 ;LOOP
2) RFDCQ: XCT A ;CONTROL Q EATS UP THE NEXT CHARACTER
2) CAIN T,15
2) JRST RFD6 ;BUT NOT IF CR
2) RFDC: CAIL T,140 ;CONVERT LOWER CASE TO UPPER.
2) SUBI T,40
2) SUBI T,40 ;CONVERT CHARACTER TO SIXBIT
2) TLNE B,770000 ;TOO MANY CHARACTERS?
2) IDPB T,B ;NO
2) JRST RFD2 ;LOOP
2) RFDTAB: MOVEM C,NM1 ;1ST NAME.
2) MOVEM C,NM2 ;2ND NAME.
2) CAIA ;3RD AND ON IGNORED, DON'T INCR. D.
2) ;GET COMMAND CHARACTER
2) ;RETURNS CHARACTER IN T
2) ;DOES NOT MODIFY A, B, C, D
2) GETCC: SKIPN T,UDEPTH
2) JRST GETTTY ;GET GOODIES FROM TTY BUFFER
2) .IOT TYIC,T
2) JUMPG T,UPPER
2) JUMPE T,.-2 ;IGNORE NULLS
2) SOSGE UDEPTH ;FOUND EOF ON TYIC
2) HALT ;OVER POPPING IOPDL
2) .IOPOP TYIC,
2) JRST GETCC
2) ;HERE TO GET COMMAND GOODIES FROM TTY
2) GETTY0: PUSHJ P,FILBUF ;GET BUFFER GOODIES FROM TTY
2) GETTTY: SOSGE CCNT
2) JRST GETTY0
2) ILDB T,CPTR
2) UPPER: ANDI T,177
2) CAIN T,"$
2) MOVEI T,"
2) CAIL T,"a ;IF LOWER CASE THEN CONVERT TO UPPER CASE
2) CAILE T,"z
2) POPJ P,
2) SUBI T,40
2) POPJ P,
2) ; READ TTY LINE INTO FILE-NAME-BUFFER
2) GTYIP: MOVE A,[440700,,FNBUF]
2) .IOPUSH TYIC,
2) .OPEN TYIC,TTYI
2) .VALUE
2) GTYI1: PUSHJ P,TYI
2) CAIN T,15
2) JRST GTYICR
2) CAIN T,177 ;RUBOUT
2) JRST GTYRUB
2) IDPB T,A
2) JRST GTYI1
2) GTYICR: MOVEI T,33
2) IDPB T,A
2) .IOPOP TYIC,
2) POPJ P,
2) GTYRUB: CAMN A,[(10700)FNBUF-1]
2) JRST GTYI1
2) LDB T,A
2) ADD A,[(70000)]
2) SKIPGE A
2) SUB A,[(430000)1]
2) TRNN FF,GETTY
2) JRST [ .IOT TYOC,T
2) JRST GTYI1]
2) .IOT TYOC,[^P]
2) .IOT TYOC,["X]
2) JRST GTYI1
2) LITTER: CONSTANTS
2) VARS:: VARIABLES
2) ;IMPURE STORAGE
***************
**** FILE PS:<MIDAS>STINK.121T.1, 58-8 (61897) AFTER FACTOR:
1) CPOINT: SQUOZE 64,$.
**** FILE PS:<MIDAS>STINK.MID.177, 58-9 (68954) AFTER FACTOR:
2) HIFACT: SQUOZE 64,$R.H
2) 0
2) 0
2) CPOINT: SQUOZE 64,$.
***************
**** FILE PS:<MIDAS>STINK.121T.1, 58-22 (62040) AFTER EISYME:
1) POLSW: 0 ;-1=>WE ARE DOING POLISH
**** FILE PS:<MIDAS>STINK.MID.177, 58-26 (69129) AFTER EISYME:
2) BLKCNT: 0 ;SEQUENTIAL BLOCK OF THIS FILE (FIRST ONE IS ZERO)
2) POLSW: 0 ;-1=>WE ARE DOING POLISH
***************
**** FILE PS:<MIDAS>STINK.121T.1, 58-32 (62519) AFTER CGLOBV:
1) GLBFS: 0 ;GLOBAL BEING FIXED UP DURINGS DEFERED REQUEST
**** FILE PS:<MIDAS>STINK.MID.177, 58-37 (69672) AFTER CGLOBV:
2) CPROTE: 0 ;SYMTAB ENTRY OF CURRENT PROGRM WHILE LISTING
2) GLBFS: 0 ;GLOBAL BEING FIXED UP DURINGS DEFERED REQUEST
***************
**** FILE PS:<MIDAS>STINK.121T.1, 58-39 (62873) AFTER HIBLK:
1) KEEP: 0 ; FLAG SAYING WE ARE IN A CORE LOOP
1) DMCG,[
1) USINDX: 0 ; USER INDEX
1) ];DMCG
1) HIGTOP: 0 ; TOP OF HIGH SEG
**** FILE PS:<MIDAS>STINK.MID.177, 58-45 (70085) AFTER HIBLK:
2) PURE: 0 ;NON-ZERO IF HIGH SEG PURE
2) KEEP: 0 ; FLAG SAYING WE ARE IN A CORE LOOP
2) HIGTOP: 0 ; TOP OF HIGH SEG
***************
**** FILE PS:<MIDAS>STINK.121T.1, 58-48 (63107) AFTER PAT:
1) CPTR: 0
1) AWORD: 0
**** FILE PS:<MIDAS>STINK.MID.177, 58-52 (70315) AFTER PAT:
2) CPTR: 0 ;BYTE POINTER INTO COMMAND BUFFER
2) CCNT: 0 ;# CHARACTERS IN COMAND BUFFER
2) DEV: SIXBIT /DSK/ ;ARGS FOR OPEN AND DELETE
2) SNAME: 0
2) NM1: SIXBIT /BIN/
2) NM2: SIXBIT /BIN/
2) ERRSTS: 0 ;FOR OPEN ERROR CODE
2) DEFFN2: SIXBIT /REL/ ;DEFAULT FILE NAME 2
2) UDEPTH: 0 ;# TIMES TYIC PUSHED
2) DEVTBL: IRPS DEV,,[DSK UT1 UT2 UT3 UT4 UT5 UT6 UT7 UT8]
2) SIXBIT /DEV/
2) TERMIN
2) JOBNAM: 0 ;NAME OF JOB
2) HIORG: 0 ;ORIGIN OF HIGH SEGMENT
2) LOWADR: 0 ;FIRST FREE LOCATION IN LOW SEGMENT
2) HIADR: 0 ;FIRST FREE IN HIGH SEGMENT
2) ADRM: 0 ;TEMPORY CELL TO SAVE ADR AND ADRREL
2) AWORD: 0
***************
**** FILE PS:<MIDAS>STINK.121T.1, 58-68 (63366) AFTER PRGNAM:
1) NODMCG,[
1) CWORD0: 4000,,400000+<<INITCR-1>_9.>
1) CWORD1: 4000,,600000-1000
1) LOWSIZ: INITCR ; NUMBER BLOCKS WE GOT (IN LOW SEGMENT)
1) ];NODMCG
1) LOBLKS: INITCR+1 ; NUMBER OF BLOCKS OF CORE WE WANT
**** FILE PS:<MIDAS>STINK.MID.177, 58-90 (71142) AFTER PRGNAM:
2) ;CWORD0: 4000,,400000+<<INITCR-1>_9.>
2) CWORD1: 4000,,600000-1000
2) LOWSIZ: INITCR ; NUMBER BLOCKS WE GOT (IN LOW SEGMENT)
2) LOBLKS: INITCR+1 ; NUMBER OF BLOCKS OF CORE WE WANT
***************
**** FILE PS:<MIDAS>STINK.121T.1, 59-1 (63988) AFTER HBOT:
1) INIT:
**** FILE PS:<MIDAS>STINK.MID.177, 59-2 (71747) AFTER HBOT:
2) ;INITITALIZATION CODE
2) OPTCMD==40000 ;IF .OPTIO HAS THIS TURNED ON THEN DDT HAS COMMAND
2) INIT:
***************
**** FILE PS:<MIDAS>STINK.121T.1, 59-5 (64080) AFTER PDL:
1) MOVE NBLKS,[20,,INITCR]
**** FILE PS:<MIDAS>STINK.MID.177, 59-10 (71933) AFTER PDL:
2) SETZM HIFACT
2) MOVEI A,400000 ;ORIGIN OF HIGH SEGEMNT
2) MOVEM A,HIORG
2) MOVEM A,HIADR
2) SETZM LOWADR
2) MOVE NBLKS,[20,,INITCR]
***************
**** FILE PS:<MIDAS>STINK.121T.1, 59-10 (64168) AFTER PDL:
1) MOVEI A,FACTOR
1) HRRM A,REL
1) MOVE P,[(,-1)PDL]
1) PUSHJ P,KILL
1) .OPEN TYOC,TTYO
1) .VALUE 0
1) .OPEN TYIC,TTYI
1) .VALUE 0
1) .STATUS TYIC,T
**** FILE PS:<MIDAS>STINK.MID.177, 59-20 (72125) AFTER PDL:
2) ; MOVEI A,FACTOR
2) ; HRRM A,REL
2) MOVE P,[-10,,PDL]
2) PUSHJ P,KILL
2) .OPEN TYOC,TTYO
2) .VALUE [ASCIZ/: CAN'T OPEN TTY OUTPUT /]
2) .OPEN TYIC,TTYI
2) .VALUE [ASCIZ/: CAN'T OPEN TTY INPUT /]
2) .STATUS TYIC,T
***************
**** FILE PS:<MIDAS>STINK.121T.1, 59-26 (64427) AFTER PDL:
1) .SUSET [.RMEMT,,TT]
**** FILE PS:<MIDAS>STINK.MID.177, 59-36 (72461) AFTER PDL:
2) .IOT TYOC,[15]
2) .IOT TYOC,[12]
2) .SUSET [.RMEMT,,TT]
***************
**** FILE PS:<MIDAS>STINK.121T.1, 59-29 (64481) AFTER PDL:
1) SUBI TT,1
1) LSH TT,9.
1) TDO TT,[4000,,400000]
1) MOVEM TT,CWORD0
1) JRST LIS
1) TTYO==.
1) 1,,(SIXBIT /TTY/)
1) SIXBIT /STINK/
**** FILE PS:<MIDAS>STINK.MID.177, 59-41 (72549) AFTER PDL:
2) ; SUBI TT,1
2) ; LSH TT,9.
2) ; TDO TT,[4000,,400000]
2) ; MOVEM TT,CWORD0
2) .SUSET [.ROPTI,,TT]
2) TLNN TT,OPTCMD ;IS DDT TRYING TO GIVE US A COMMAND?
2) JRST LIS ;NO, READ TTY COMMAND
2) .BREAK 12,[5,,DDTBUF+1] ;ZAP
2) MOVE T,[440700,,DDTBUF+1]
2) INIT0: MOVEM T,B
2) ILDB TT,T
2) CAIE TT,40 ;IGNORE LEADING SPACES AND TABS
2) CAIN TT,11
2) JRST INIT0
2) CAIE TT,12
2) CAIN TT,15
2) JRST LIS ;NULL COMMAND LINE
2) CAIN TT,ALTMOD ;FLUSH LEADING ALTMODES
2) JRST INIT0
2) MOVE A,[440700,,DDTBUF]
2) MOVEM A,CPTR
2) MOVEI T,"M ;SET UP FILE OF FORM M<loader command file>$@$$
2) INIT1: CAIE T,12
2) CAIN T,15
2) JRST INIT2 ;END OF COMMAND
2) CAIN T,ALTMOD
2) JRST INIT2 ;ALTMODE STOPS ALL THIS NON-SENSE TOO
2) IDPB T,A
2) AOS CCNT
2) ILDB T,B
2) JRST INIT1
2) INIT2: MOVEI T,ALTMOD
2) MOVEI TT,"@
2) IDPB T,A
2) IDPB TT,A
2) IDPB T,A
2) IDPB T,A
2) MOVEI TT,4 ;WE TACKED ON 4 EXTRA CHARACTERS AT END
2) ADDM TT,CCNT
2) JRST LIS
2) TTYO==.
2) 21,,(SIXBIT /TTY/)
2) SIXBIT /STINK/
***************
**** FILE PS:<MIDAS>STINK.121T.1, 59-47 (64705) AFTER PDL:
1) LOC PDL+LPDL
1) CBUF: BLOCK CBUFL
1) LOSYM: ;LOWEST LOC AVAIL FOR SYM TBL
1) INITCR==<LOSYM+3000>/2000 ;LDR LENGTH IN BLOCKS
**** FILE PS:<MIDAS>STINK.MID.177, 59-94 (73592) AFTER INIT2:
2) DDTBUF: BLOCK 20 ; DDT COMMAND BUFFER GOES HERE
2) -1
2) LOC PDL+LPDL
2) CBUF: BLOCK CBUFL-1
2) 0
2) FNBUF: BLOCK FNBLEN
2) FNPTR: BLOCK 1
2) LOSYM: ;LOWEST LOC AVAIL FOR SYM TBL
2) IFG DDTBUF+80.-LOSYM,INFORM [DDT BUFFER OVERFLOWS SYMBOLS]\DDTBUF+80.-LOSYM
2) INITCR==<LOSYM+3000>/2000 ;LDR LENGTH IN BLOCKS
***************
**** FILE PS:<MIDAS>STINK.121T.1, 60-1 (64996) AFTER LOSYM:
1)
1)
1)
**** FILE PS:<MIDAS>STINK.MID.177, 59-115 (74064) AFTER LOSYM:
***************