PMOBJIII860
(George Source)
Macros used: ADDRESS, FIXTRA, ILLEGAL, MASK, PMCORES, PMESSAGE, PMOVE, SEGENTRY
- PMOBJIII860.txt
22FL ...#SKI G3 22^= ...( 23DW ...#OPT K0PMOBJIII=0 23YG ...#LIS K0PMOBJIII>K0POST>K0ALLGEO 24D6 ...# 24XQ ...#SEG PMOBJIII84 [KAREL KOSKUBA - DIAG 25CB ...# 25X2 ...# THIS SEGMENT LISTS THE OBJECT PROGRAMS IN A G3 POSTMORTEM 26BL ...# 26W= ... 8HPMOBJIII 27*W ...# 27TG ...# ENTRY POINT TABLE 28*6 ...# 28SQ ... SEGENTRY K1PMOBJIII,XK1PMOBJIII 29#B ...# 29S2 ...#OPT JOBJ=128 2=?L ...#OPT JXOBJPROG=32 2=R= ...#OPT JCA=9 2?=W ... FIXTRA JJOBJ 2?QG ...ZJOBJ +JOBJ [SIZE OF INITIAL PRINT 2#=6 ...ZOBJ +JXOBJPROG [SIZE OF AREA AROUND [WORD 8] 2#PQ ...ZJCA +JCA [SIZE OF CONTROL AREA 2*9B ...MESSA 15HOBJECT PROGRAMS 2*P2 ...MESSB 22HOPERAND OF SMO ILLEGAL 2B8L ...MESSC 29HAREA AROUND ADDRESS IN WORD 8 2BN= ...MESSD 35HCONTROL AREA OF OBJECT PROGRAM PERI 2C7W ...MESSE 7H A1D 2CMG ...MESSF 7H A1D+8 2D76 ...MESSG 26HCONTENTS OF WORD 8 ILLEGAL 2DLQ ...MESSH 23HOPERAND OF PERI ILLEGAL 2DQM ...#UNS CA1D 2DWJ ...#SKI 2F2F ...( 2F6B ...XA1D +A1D 2FL2 ...XA1D8 +A1D+8 2FTS ...) 2G5L ...REDTAPEPTR +0 [ POINTER TO REDTAPE 2GK= ...PTR +0 [ POINTER TO PROGTAB 2H4W ...SEGEND +OPMOBJIII 2HJG ...OBJPROG +AOBJPROG/#100 2J46 ...XBAT +BAT/#100 2JHQ ...OBRES +AOBRES/#100 2K3B ...XACT #60 2KH2 ...MASK #17777777 2L2L ...UPARROWS 4H^^^^ 2LG= ...XA1 +A1 2L^W ...X0STORE +0 [ STOREAGE FOR X0 2MFG ...XLINK2 +0 2M^6 ...XLINK7 +0 2NDQ ...OPERAND +0 [USED WHEN INVESTIGATING 'PERI' 2NYB ...WORD8 +0 [ADDR. HELD IN PROGRAM'S WORD 8 2PD2 ...XCOUNT +0 [NO. OF WORDS TO BE PRINTED 2PXL ...PREVIOUS +0 [CONTENTS OF LAST WORD PRINTED 2QC= ...RELADD +0 [RELATIVE ADDR. IN AOBJPROG BLOCK 2QWW ...XLIMIT +0 2RBG ...START +0 [HOLDS START ADDRESS OF CHAIN 2RW6 ...ZADD +0 [HOLDS ADDR. OF CURRENT BLOCK 2S*Q ...XBACKPR +0 [LAST BLOCK ADDRESS: USED IN SEARCH 2STB ...REL +0 [NON-ZERO IF OBJ. PROG. ADDR. NEEDED 2T*2 ...XIND +0 [-VE BLANKET ENCOUNTERED 2TSL ... [=1 BACKWARD CHAINING 2W#= ... +0 [-VE DON'T PRINT AREA AROUND WORD 8 2WRW ... [=1 FIRST WORD OF AREA 2X?G ... FIXTRA JPROGTAB 2XR6 ...#REP 4 2Y=Q ... +0 2YQB ...WHICHWAY 2^=2 ... LDN 3 SEARCH(1) [FORWARDS 2^PL ... LDN 3 SEARCHB(1) [BACKWARDS 329= ...# 32NW ...# CODING TO PRINT CONTENTS OF REDTAPE IN FOUR POSSIBLE FORMATS 338G ...# 33N6 ...OCT CALL 7 (JOCT) [OCTAL 347Q ... BRN OBJ14 34MB ...RCHAR CALL 7 (JUP) 3572 ... +5 35LL ... CALL 7 (JCHA) [CHARACTER 366= ... BRN OBJ14 36KW ...RDECS CALL 7 (JUP) 375G ... +1 37K6 ... CALL 7 (JDECS) [SIGNED DECIMAL INTEGER 384Q ... BRN OBJ14 38JB ...RDECP CALL 7 (JDECP) [DECIMAL WITH CHARACTER POSITION 3942 ... BRN OBJ14 39HL ...RTNS BRN OCT 3=3= ... BRN RCHAR 3=GW ... BRN RDECS 3?2G ... BRN RDECP 3?G6 ...# 3?^Q ...# ROUTINE TO GET ADDRESS OF NEXT BLOCK IN CHAIN 3#FB ...# SEARCH :-FORWARD CHAINING 3#^2 ...# SEARCHB:-BACKWARD CHAINING 3*DL ...# 3*Y= ...# ENTRY X2=ADDRESS OF CURRENT BLOCK 3BCW ...# EXIT 0 1 3BXG ...# X2=X3=ADDRESS OF NEXT BLOCK 3CC6 ...# EXIT 0 0 [BREAK IN CHAIN 3CWQ ...# 3DBB ...SEARCH 3DW2 ... LDX 3 BPTR(2) 3F*L ... TXU 3 XBACKPR(1) [J IF BPTR IN CURRENT 3FT= ... BCS S1 [BLOCK IS INCORRECT 3G#W ... LDX 3 FPTR(2) [GET ADDRESS OF NEXT BLOCK 3GSG ...S2 STO 2 XBACKPR(1) [STORE ADDRESS OF CURRENT BLOCK 3H#6 ... PMCORES 3,S1 3HRQ ... LDX 2 3 3J?B ... EXIT 0 1 3JR2 ...S1 EXIT 0 0 [BREAK IN CHAIN 3K=L ...SEARCHB 3KQ= ... LDX 3 FPTR(2) 3L9W ... TXU 3 XBACKPR(1) [J IF FPTR OF CURRENT 3LPG ... BCS S1 [BLOCK IS INCORRECT 3M96 ... LDX 3 BPTR(2) [GET ADDRESS OF NEXT BLOCK 3MNQ ... BRN S2 3N8B ...# 3NN2 ...# ROUTINE TO FIND OUT IF AN INSTRUCTION IS A 'SMO' OR A 'PERI' 3P7L ...# AND IF SO CALCULATE THE VALUE OF N(M) FOR THAT INSTRUCTION 3PM= ...# ENTRY X4 CONTAINS ADDRESS OF INSTRUCTION 3Q6W ...# EXIT 7 0 [NEITHER INSTRUCTION FOUND 3QLG ...# EXIT 7 1 ['PERI' 3R66 ...# EXIT 7 2 ['SMO' 3RKQ ...# X5=VALUE OF N(M) 3S5B ...# X2,X3 UNDEFINED 3SK2 ...# 3T4L ...OMSIREP 3TJ= ... SMO 4 3W3W ... LDX 2 0 [GET INSTRUCTION 3WHG ... SRL 23 14 [X AND F IN X2 3X36 ... SRL 3 10 [N(M) IN X3 3XGQ ... LDN 5 0 3Y2B ... DSA 3 5 [SAVE OPERAND 3YG2 ... SRL 3 12 [M IN X3 3Y^L ... BZE 3 OM [J IF NO MODIFIER 3^38 ...#UNS CA1D 3^4Q ...( 3^6# ... ADX 3 CA1D [GET CONTENTS OF MODIFIER 3^7W ... SMO ZADD(1) [AND ADD TO OPERAND 3^9D ... ADX 5 0(3) 3^?2 ...) 3^#J ...#UNS CA1D 3^B6 ...#SKI 3^CN ...( 3^F= ... SMO ZADD(1) [GET CONTENTS OF MODIFIER 3^YW ... ADX 5 A1D(3) [AND ADD TO OPERAND 428N ...) 42DG ...OM ANDN 2 #177 [F IN X2 42Y6 ... SBN 2 #117 43CQ ... BZE 2 OM1 [J IF 'SMO' 43XB ... SBN 2 #040 44C2 ... BZE 2 OM2 [J IF 'PERI' 44WL ... EXIT 7 0 [NEITHER 45B= ...OM2 EXIT 7 1 ['PERI' 45TW ...OM1 ADX 5 ZADD(1) 45^2 ...#UNS CA1D 4646 ... ADX 5 CA1D [GEORGE ADDR. OF N(M) OF 'SMO' 467= ...#UNS CA1D 46=B ...#SKI 46*G ... ADN 5 A1D [GEORGE ADDR. OF N(M) OF 'SMO/ 46T6 ... SMO 5 47#Q ... LDX 5 0 [CONTENTS OF N(M) OF 'SMO' 47SB ... EXIT 7 2 ['SMO' 48#2 ...# 48RL ...# ROUTINE TO GIVE A CORE PRINT GIVEN A START ADDRESS AND COUNT 49?= ...# IT ALSO CHECKS FOR THE ADDRESSES 'A1D' AND 'A1D+8' 49QW ...# IF TWO OR MORE ADJACENT WORDS ARE FOUND THE SAME,THE FIRST 4==G ...# IS PRINTED FOLLOWED BY A BLANK LINE AND NO MORE WORDS ARE 4=Q6 ...# PRINTED UNTIL AN UNLIKE WORD IS FOUND 4?9Q ...# ENTRY RELADD CONTAINS START ADDRESS RELATIVE TO START OF BLOCK 4?PB ...# XCOUNT CONTAINS COUNT 4#92 ...# EXIT X2 UNCHANGED ALL OTHER ACCS UNDEFINED 4#NL ...# 4*8= ...PROBJ 4*MW ... STO 7 XLINK7(1) 4B7G ... STO 2 XLINK2(1) 4BM6 ... LDN 4 1 4C6Q ... ADS 4 XIND+1(1) [SET FIRST WORD INDICATOR 4CLB ... LDX 0 RELADD(1) 4D62 ...PR7 LDX 7 XCOUNT(1) 4DKL ... BNZ 7 PR3 [J IF MORE TO PRINT 4F5= ... LDX 2 XLINK2(1) 4FJW ... STO 0 RELADD(1) 4G4G ... LDX 7 XLINK7(1) 4GJ6 ... EXIT 7 0 [ EXIT 4H3Q ...PR3 LDN 4 1 4HHB ... SBS 4 XCOUNT(1) 4J32 ... LDN 7 PR2(1) 4J66 ...#UNS CA1D 4J9= ...ZA1D TXU 0 CA1D 4J#B ...#UNS CA1D 4JCG ...#SKI 4JGL ...ZA1D TXU 0 XA1D(1) 4K2= ... BCS PR [J IF NOT 'A1D' 4KFW ... LDN 6 MESSE(1) ['A1D' CHARACTERS 4K^G ... STO 6 REL(1) [SET OBJ. PROG. ADDR. INDICATOR 4LF6 ... BRN PR1 4LH4 ...#UNS CA1D 4LK2 ...( 4LLY ...PR SMO CA1D 4LNW ... TXU 0 8 4LQS ...) 4LSQ ...#UNS CA1D 4LWN ...#SKI 4LYQ ...PR TXU 0 XA1D8(1) 4MDB ... BCS (7) [J IF NOT 'A1D+8' 4MY2 ... LDN 6 MESSF(1) ['A1D+8' CHARACTERS 4NCL ...PR1 ADS 4 JPMOD 4NX= ... LDX 7 JPMOD 4PBW ... MVCH 6 7 [MOVE CHARACTERS INTO BUFFER 4PWG ... STO 7 JPMOD 4QB6 ... SMO 1 4QTQ ... LDCH 6 XIND+1 4R*B ... SMO 1 4RT2 ... SBS 6 XIND+1 [IF SET UNSET FIRST WORD INDICATOR 4S#L ... BRN PR8 4SS= ...PR2 SMO 1 4T?W ... LDCH 6 XIND+1 4TRG ... SMO 1 4W?6 ... SBS 6 XIND+1 4WQQ ... BNZ 6 PR5 [J IF FIRST WORD INDICATOR SET 4X=B ... LDX 6 XCOUNT(1) 4XQ2 ... BZE 6 PR5 [J IF LAST WORD OF AREA 4Y9L ... ADS 0 ZADD(1) 4YP= ... SMO ZADD(1) 4^8W ... LDX 6 0 [ CONTENTS OF WORD 4^NG ... SBS 0 ZADD(1) 5286 ... TXU 6 PREVIOUS(1) 52MQ ... BCC PR6 [J IF CONTENTS=[PREVIOUS] 537B ...PR5 ADS 4 JPMOD 53M2 ... LDX 5 0 546L ... LDX 6 REL(1) 54L= ... BZE 6 PR9 [J IF NORT OBJ. PROG. ADDRESS 54PB ...#UNS CA1D 54SG ... SBX 5 CA1D 54XL ...#UNS CA1D 552Q ...#SKI 555W ... SBN 5 A1D 55KG ...PR9 CALL 7 (JDECN) 5656 ...PR8 ADS 4 JPMOD 56JQ ... ADS 0 ZADD(1) 574B ... SMO ZADD(1) 57J2 ... LDX 5 0 [ GET CONTENTS 583L ... SBS 0 ZADD(1) 58H= ... STO 5 PREVIOUS(1) 592W ... ADN 0 1 59GG ... STO 0 X0STORE(1) 5=26 ... CALL 7 (JCON4) [CONVERT CONTENTS 5=FQ ... CALL 7 (JPRINT1) [PRINT A LINE 5=^B ... LDX 0 X0STORE(1) 5?F2 ... BRN PR7 5?YL ...PR6 CALL 7 (JPRINT1) [THROW A LINE 5#D= ...PR4 LDX 6 XCOUNT(1) 5#XW ... BZE 6 PR5 [J IF LAST WORD OF AREA 5*CG ... SBS 4 XCOUNT(1) 5*X6 ... ADN 0 1 [UPDATE ADDRESS 5BBQ ... CALL 7 ZA1D [TEST IF 'A1D' OR 'A1D+8' 5BWB ... ADS 0 ZADD(1) 5CB2 ... SMO ZADD(1) 5CTL ... LDX 5 0 [ GET NEXT WORD 5D*= ... SBS 0 ZADD(1) 5DSW ... TXU 5 PREVIOUS(1) 5F#G ... BCC PR4 [J IF SAME AS LAST WORD 5FS6 ... BRN PR5 5G?Q ...# 5GRB ...# 5H?2 ...# ENTRY POINT FOR THE SEGMENT 5HQL ...# 5J== ...# 5JPW ...XK1PMOBJIII 5K9G ... LDX 1 FXPM1 5KP6 ... ADS 1 SEGEND(1) 5L8Q ... PMOVE PMINPRIN,SEGEND(1) [ READ DOWN PMINPRIN 5LNB ... LDX 1 FXPM1 5M82 ... PMESSAGE MESSA(1),4 ['OBJECT PROGRAMS' 5MML ... LDX 2 FX2 [LOAD FX2 AS START OF SEARCH 5N7= ... ANDX 2 MASK(1) 5NLW ... BZE 2 OBJ [J IF FX2 INVALID 5P6G ... PMCORES 2,OBJ [ '' '' '' 5PL6 ... STO 2 START(1) [STORE [FX2] AS START 5Q5Q ... LDX 4 BPTR(2) 5QKB ... STO 4 XBACKPR(1) 5R52 ...OBJ5 STO 2 ZADD(1) [CURRENT BLOCK ADDRESS 5RJL ... LDCH 4 ATYPE(2) 5S4= ... TXU 4 OBJPROG(1) 5SHW ... BCC OBJ2 [J IF AOBJPROG BLOCK 5T3G ... TXU 4 XBAT(1) 5TH6 ... BCC OBJ3 [J IF BLANKET 5W2Q ...# 5WGB ...# GET NEXT BLOCK AND CHECK FOR BREAKS IN AND END OF CHAIN 5X22 ...# 5XFL ...OBJ6 LDX 2 ZADD(1) [ADDR. OF CURRENT BLOCK 5X^= ...OBJ10 SMO XIND(1) [INDICATES DIRECTION OF SEARCH 5YDW ... OBEY WHICHWAY(1) 5YYG ... CALL 0 (3) [GET NEXT BLOCK 5^D6 ... BRN OBJ4 [J IF BREAK IN CHAIN 5^XQ ... TXU 2 START(1) 62CB ... BCS OBJ5 [J IF NOT END OF CHAIN 62X2 ...OBJ9 LDXC 4 XIND(1) 63BL ... BCS (JPMSEG) [J IF BLANKET INDICATOR SET 63W= ... STOZ XIND(1) [UNSET BACKWARD CHAINING, IF SET 64*W ...# 64TG ...# BLANKET START OF CHAIN OR ENCOUNTERED 65*6 ...# 65SQ ...OBJ LDN 2 BACT [LOAD BLANKET 66#B ... STO 2 START(1) [AS START OF SEARCH 66S2 ... LDX 4 BPTR(2) 67?L ... STO 4 XBACKPR(1) 67R= ... BRN OBJ8 68=W ...OBJ3 LDXC 4 XIND(1) 68QG ... BCS (JPMSEG) [J IF BLANKET INDICATOR SET 69=6 ...OBJ8 LDCT 4 #400 69PQ ... ADS 4 XIND(1) [SET BLANKET INDICATOR 6=9B ... BRN OBJ10 [J TO GET NEXT BLOCK 6=P2 ...# 6?8L ...# BREAK IN CHAIN FOUND 6?N= ...# 6#7W ...OBJ4 LDXC 4 XIND(1) 6#MG ... BNZ 4 OBJ9 [J IF ALREADY BACKWARD CHAINING 6*76 ... LDN 4 1 [OTHERWISE SET 6*LQ ... ADS 4 XIND(1) [BACKWARD CHAINING INDICATOR 6B6B ... LDX 2 START(1) 6BL2 ... LDX 4 FPTR(2) 6C5L ... STO 4 XBACKPR(1) 6CK= ... BRN OBJ10 6D4W ...# 6DJG ...# AOBJPROG BLOCK FOUND. FIRST PRINT OUT THE RED TAPE WORDS 6F46 ...# AND THEN THE VARIOUS AREAS OF THE PROGRAM 6FHQ ...# 6G3B ...OBJ2 CALL 7 (JPRINT2) [THROW A COUPLE OF LINES 6GH2 ... STOZ WORD8(1) 6H2L ... STOZ XIND+1(1) [UNSET APET INDICATOR 6HG= ... STOZ REL(1) 6H^W ... LDN 4 REDTAPE+2(1) [REDTAPE IDENTIFIER TABLE 6JFG ... STO 4 REDTAPEPTR(1) 6J^6 ... NGN 4 1 6KDQ ...OBJ14 CALL 7 (JPRINT1) [PRINT A LINE 6KYB ... ADN 4 1 6LD2 ... STO 4 RELADD(1) 6LXL ... TXL 4 XA1(1) 6MC= ... BCC OBJ11 [J IF NOT REDTAPE 6MWW ... LDN 5 1 6NBG ... ADS 5 JPMOD 6NW6 ... BZE 4 OBJ12 [J IF FPTR 6P*Q ... SMO REDTAPEPTR(1) 6PTB ... LDX 5 0 6Q*2 ... TXU 5 UPARROWS(1) 6QSL ... BCC OBJ13 [J IF END OF REDTAPE TABLE 6R#= ... BZE 5 OBJ17 [J IF NO MNEMONICS 6RRW ... LDX 5 REDTAPEPTR(1) 6S?G ... CALL 7 (JUP) 6SR6 ... +2 6T=Q ... MVCH 5 5 [MOVE MNEMONICS INTO BUFFER 6TQB ... STO 6 JPMOD 6W=2 ...OBJ35 LDN 3 2 6WPL ... ADS 3 REDTAPEPTR(1) 6X9= ... SMO 5 6XNW ... LDCH 3 0 [GET PRINT FORMAT CHARACTER 6Y8G ...OBJ15 LDN 6 1 6YN6 ... ADS 6 JPMOD 6^7Q ... SMO RELADD(1) 6^MB ... LDX 5 0(2) [GET CONTENTS IN ORDER TO CONVERT 7272 ... SMO 3 72LL ... BRN RTNS [GET CORRECT CONVERSION ROUTINES 736= ...OBJ12 LDN 5 FPTR(2) [ADDRESS OF FORWARD POINTER 73KW ... CALL 7 (JDECN) [PUT ADDRESS INTO LP BUFFER 745G ... LDN 3 3 [PRINT FORMAT FOR FPTR 74K6 ... BRN OBJ15 754Q ...OBJ13 LDX 5 RELADD(1) 75JB ... CALL 7 (JDECN) [RELATIVE ADDRESS OF WORD 7642 ... LDN 3 0 [OCTAL PRINT FORMAT 76HL ... BRN OBJ15 773= ...OBJ17 LDX 5 RELADD(1) 77GW ... CALL 7 (JDECN) [RELATIVE ADDRESS OF WORD 782G ... SMO REDTAPEPTR(1) 78G6 ... LDN 5 1 78^Q ... BRN OBJ35 79FB ...# 79^2 ...# FIND OUT THE SIZE OF THE PROGRAM AND PRINT 7=DL ...# OUT THE FIRST PART OF IT 7=Y= ...# 7?CW ...OBJ11 LDX 5 ALOGLEN(2) 7?XG ... ANDX 5 MASK(1) 7#C6 ... ADX 5 2 7#WQ ... PMCORES 5,,OBJ18 [J IF ALOGLEN IS VALID 7*BB ... LDX 5 ASIZE(2) 7*W2 ... ANDX 5 MASK(1) 7B*L ... ADX 5 2 7BT= ... PMCORES 5,,OBJ20 [J IF ASIZE IS VALID 7C#W ... LDCT 4 #400 7CSG ... STO 4 XIND+1(1) [SET WORD 8 INDICATOR 7D#6 ... BRN OBJ21 7DRQ ...OBJ20 SBN 5 A1 7F?B ...OBJ18 SBX 5 2 7FR2 ... LDX 6 5 7FSY ...#UNS CA1D 7FWW ...( 7FYS ... SBX 5 CA1D [GET AND STORE 7G2Q ... ADN 5 A1 7G4N ...) 7G6L ...#UNS CA1D 7G8J ...#SKI 7G=L ... SBN 5 A1D-A1 [GET AND STORE 7GQ= ... STO 5 XLIMIT(1) [PROGRAM SIZE 7H9W ... LDX 7 XBACKPR(1) [SAVE XBACKPR 7HPG ... STO 2 XLINK2(1) 7J96 ... LDN 5 JPROGTAB-1(1) 7JNQ ... STO 5 PTR(1) 7K8B ... SMO PTR(1) 7KN2 ... LDX 5 1 7L7L ... BZE 5 OBJ36 [J IF PMOBJ MACRO NOT USED 7LM= ...OBJ37 CALL 0 SEARCH [SEARCH FOR REQUEST SLIP BLOCK 7M6W ... BRN OBJ36 [GIVE UP IF CHAIN BREAK 7MLG ... LDCH 0 ATYPE(2) 7N66 ... TXL 0 XACT(1) 7NKQ ... BCC OBJ36 [GIVE UP IF ACTIVITY BLOCK FOUND 7P5B ... TXU 0 OBRES(1) 7PK2 ... BCS OBJ37 [J IF NOT REQUEST BLOCK 7Q4L ...OBJ38 TXU 5 A1+1(2) 7QJ= ... BCC OBJ39 [J IF PROGRAM NAMES MATCH 7R3W ... LDN 5 1 7RHG ... ADS 5 PTR(1) 7S36 ... SMO PTR(1) 7SGQ ... LDX 5 0 7T2B ... BNZ 5 OBJ38 [J IF NOT END OF LIST 7TG2 ...OBJ36 TXL 6 ZJOBJ(1) 7T^L ... BCC OBJ21 [J IF PROGRAM SIZE>DEFAULT 7WF= ...OBJ39 LDCT 4 #400 7WYW ... STO 4 XIND+1(1) [SET WORD 8 INDICATOR 7XDG ... BRN OBJ22 7XY6 ...OBJ21 LDX 6 ZJOBJ(1) [LOAD DEFAULT VALUE 7YCQ ... LDX 5 6 7YXB ... ADN 5 A1(2) [GEORGE ADDRESS OF PRINT END 7^C2 ... PMCORES 5,,OBJ22 [J IF WITHIN GEORGE 7^WL ... LDN 6 128 82B= ...OBJ22 STO 6 XCOUNT(1) [LENGTH OF PRINT 82TW ... STO 7 XBACKPR(1) [RESET XBACKPR 83*G ... LDX 2 XLINK2(1) 83T6 ... CALL 7 PROBJ [PRINT AREA 84#Q ... LDX 4 XIND+1(1) 84SB ... STOZ XIND+1(1) [IF SET UNSET WORD 8 INDICATOR 85#2 ... BNG 4 OBJ6 [J TO GET NEXT BLOCK 85RL ...# 86?= ...# THIS NEXT BIT OF CODING CALCULATES THE AREA AROUND 86QW ...# THE ADDRESS IN WORD 8 AND THEN PRINTS IT OUT 87=G ...# 87#D ...#UNS CA1D 87BB ...( 87D# ... SMO CA1D [CONTENTS OF PROGRAMS WORD 8 87G= ... LDX 5 8(2) 87J8 ...) 87L6 ...#UNS CA1D 87N4 ...#SKI 87Q6 ... LDX 5 A1D+8(2) [CONTENTS OF PROGRAM'S WORD 8 889Q ... ANDX 5 MASK(1) 88PB ... TXL 5 XLIMIT(1) 8992 ... BCS OBJ28 [J IF ADDRESS INSIDE PROGRAM 89NL ... PMESSAGE MESSG(1),7 8=8= ... BRN OBJ6 [J TO GET NEXT BLOCK 8=MW ...OBJ28 STO 5 WORD8(1) 8?7G ... STO 5 REL(1) [SET OBJ. PTOG. ADDR. IND. 8?M6 ... LDX 7 RELADD(1) 8?Q= ...#UNS CA1D 8?TB ... SBX 7 CA1D 8?YG ...#UNS CA1D 8#3L ...#SKI 8#6Q ... SBN 7 A1D 8#LB ... BPZ 7 OBJ1 [IF ADDR. -VE 8*62 ... LDN 7 0 [SET=0 8*KL ...OBJ1 LDX 6 5 8B5= ... SBX 5 ZOBJ(1) [START OF AREA 8BJW ... ADX 6 ZOBJ(1) [END OF AREA 8C4G ... ADN 6 1 8CJ6 ... TXL 6 7 8D3Q ... BCS OBJ23 [J IF AREA ALREADY PRINTED 8DHB ... BNG 5 OBJ24 [J IF START ADDRESS -VE 8F32 ... TXL 5 7 8FGL ... BCC OBJ25 [J IF START OUTSIDE PRINTED AREA 8G2= ...OBJ24 LDX 5 7 [RESET START ADDRSS 8GFW ...OBJ25 TXL 6 XLIMIT(1) 8G^G ... BCS OBJ26 [J IF END INSIDE PROGRAM 8HF6 ... LDX 6 XLIMIT(1) [RESET END ADDRESS 8HYQ ...OBJ26 SBX 6 5 8JDB ... STO 6 XCOUNT(1) [STORE COUNT 8JHG ...#UNS CA1D 8JLL ... ADX 5 CA1D 8JPQ ...#UNS CA1D 8JSW ...#SKI 8JY2 ... ADN 5 A1D 8KCL ... STO 5 RELADD(1) [STORE START ADDRESS 8KX= ... PMESSAGE MESSC(1),8 8LBW ... CALL 7 (JPRINT1) [THROW A LINE 8LWG ... CALL 7 PROBJ [PRINT OUT AREA 8MB6 ...# 8MTQ ...# CHECK IF LAST INSTRUCTION WAS A 'PERI' AND 8N*B ...# AND IF SO PRINT OUT ITS CONTROL AREA 8NT2 ...# 8P#L ...OBJ23 LDX 4 WORD8(1) 8PS= ... BZE 4 OBJ6 [J TO GET NEXT BLOCK 8PW8 ...#UNS CA1D 8PY6 ...( 8Q24 ... ADN 4 0(2) 8Q42 ... ADX 4 CA1D 8Q5Y ...) 8Q7W ...#UNS CA1D 8Q9S ...#SKI 8Q?W ... ADN 4 A1D(2) 8QRG ... STOZ OPERAND(1) 8R?6 ... LDN 0 0 [=0 MEANS CHECKING [WORD8]-1 8RQQ ... [=1 '' '' [WORD8] 8S=B ... SBN 4 1 8SQ2 ...OBJ33 CALL 7 OMSIREP 8T9L ... BRN OBJ32 [J IF NEITHER 8TP= ... BRN OBJ27 [J IF 'PERI' 8W8W ... TXL 5 XLIMIT(1) 8WNG ... BCC OBJ34 [J IF OPERAND OF 'SMO' ILLEGAL 8X86 ... STO 5 OPERAND(1) [SAVE N(M) OF 'SMO' 8XMQ ...OBJ32 BNZ 0 OBJ6 [J IF BOTH CASES TESTED 8Y7B ... LDN 0 1 [SET X0 FOR SECOND CASE 8YM2 ... ADN 4 1 8^6L ... BRN OBJ33 8^L= ...OBJ27 ADS 5 OPERAND(1) [SAVE N(M) OF 'PERI' 925W ... BNZ 0 OBJ29 [J IF SECOND CASE 92KG ... SBN 4 1 9356 ... CALL 7 OMSIREP 93JQ ... BRN OBJ29 [J IF NEITHER 944B ... BRN OBJ29 [J IF 'PERI' 94J2 ... TXL 5 XLIMIT(1) 953L ... BCC OBJ34 [J IF PERAND OF 'SMO' ILLEGAL 95H= ... ADS 5 OPERAND(1) [ADD N(M) OF 'SMO' TO N(M) OF 'PERI' 962W ...OBJ29 LDX 5 OPERAND(1) 96GG ... TXL 5 XLIMIT(1) 9726 ... BCC OBJ31 [J IF OPERAND OUTSIDE PROGRAM 975= ...#UNS CA1D 978B ... ADX 5 CA1D 97?G ...#UNS CA1D 97BL ...#SKI 97FQ ... ADN 5 A1D 97^B ... STO 5 RELADD(1) [STORE START ADDRESS 98F2 ... LDX 6 ZJCA(1) [COUNT FOR CONTROL AREA 98YL ... STO 6 XCOUNT(1) 99D= ... PMESSAGE MESSD(1),9 99XW ... CALL 7 (JPRINT1) [THROW A LINE 9=CG ... CALL 7 PROBJ [PRINT OUT CONTROL AREA 9=X6 ... BRN OBJ6 [J TO GET NEXT BLOCK 9?BQ ...OBJ31 9?WB ... PMESSAGE MESSH(1),6 9#B2 ... BRN OBJ6 [J TO GET NEXT BLOCK 9#TL ...OBJ34 9**= ... PMESSAGE MESSB(1),6 9*SW ... BRN OBJ6 [J TO GET NEXT BLOCK 9B#G ...# 9BS6 ...REDTAPE 9BXP ... 8H00000000 9C3# ... 8HBPTR 3 9C6X ... 8HASIZE 3 9C=G ... 8HAFLAG 0 9CB5 ... 8HATYPE 0 9CFN ... 8HBACK1 3 9CK? ... 8HBACK2 0 9CNW ... 8HALOGL 3 9CSF ... 8HARGNO 0 9CY4 ... 4H^^^^ 9D3M ...# 9D7= ...# 9D?2 ...OPMOBJIII 9DQL ...# 9F== ...#END 9FPW ...) 9G9G ...#SKI G3 ^^^^ ...74275451001800000000