{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: OPILLS70)}} ====== OPILLS70 ====== (George Source) **Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:CAPCA|CAPCA]], [[george:macro:CHANGEACT|CHANGEACT]], [[george:macro:CHECKBX|CHECKBX]], [[george:macro:DOWN|DOWN]], [[george:macro:FCAPCA|FCAPCA]], [[george:macro:FINDTP|FINDTP]], [[george:macro:FLIPS|FLIPS]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GETWORDX|GETWORDX]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNT2OPT|HUNT2OPT]], [[george:macro:MACCS|MACCS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:ONR|ONR]], [[george:macro:PMODES|PMODES]], [[george:macro:RINGTP|RINGTP]], [[george:macro:RUNPROG|RUNPROG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:STEPBAC|STEPBAC]], [[george:macro:TESTPUC|TESTPUC]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TRACE|TRACE]], [[george:macro:VETC|VETC]], [[george:macro:VFREE|VFREE]], [[george:macro:VFREEW|VFREEW]], [[george:macro:WORDFIN|WORDFIN]] 22FL #LIS K0OPILLS 22^= #SEG OPILLS70 [R.H.THOMPSON 7/OPAW 23DW # THIS SEGMENT IS ENTERED BY THE ILLEGAL MACRO WHEN AN OBJ.PROG ILLE 23YG # IS DISCOVERED. 24D6 # THIS SEGMENT EXAMINES THE CORE IMAGE & STORES DIHGNOSTIC INFORMATI 24XQ # ABOUT THE ILLEGAL INSTRUCTION IN AN APED,ANOMESS BLOCK. 25CB # THE SEGMENT OPILLSA IS THEN ENTRED TO PRINT THIS & TO GENERATE 25X2 # A PROGRAM EVENT. 26BL 8HOPILLS6 26W= SEGENTRY K2OPILLS,XENT2 27*W SEGENTRY K8OPILLS,XENT8 27TG #SKI G4 28*6 SEGENTRY K9OPILLS,XENT9 28SQ #DEF VOWNMON=A1+6 29#B #DEF VSPROG=A1 29S2 #DEF VMCOND=A1+1 2=?L #DEF VSCOND=A1+2 2=R= #DEF VSTATE=A1+3 2?=W #DEF VFADDR=A1+4 2?QG #DEF VMASK=A1+5 2#=6 #DEF VMEMS=A1+6 2#PQ #DEF VSMOAD=VMEMS+4 2*9B #DEF VLINK=VSMOAD+1 2*P2 #DEF VACC=VLINK+1 2B8L #DEF VSMO=VACC+8 2BN= #DEF VINSTR=VSMO+4 2C7W #DEF VCAREA=VINSTR+3 2CMG #DEF VLENGTH=VCAREA+12 2CSN ...#UNS ADUALDME 2C^W ...XJYPROCFAIL +JYPROCFAIL 2D76 XJYTIMEUP +JYTIMEUP [SPECIAL ILLEGAL CATEGORY-IF ONE 2DLQ XJYPERFAIL +JYPERFAIL [OF THESE IS REPORTED WORD8 IS LEFT 2F6B XJYUNALLOC +JYUNALLOC 2FL2 XJYFILE +JYFILE 2G5L XJYOUTPUT +JYOUTPUT 2GK= XJYPERFAIL1 +JYPERFAIL1 2H4W XJYPARFAIL +JYPARFAIL 2HJG XJYOUTFULL +JYOUTFULL 2J46 XJYSTREAM +JYSTREAM 2JHQ XJYILLINS +JYILLINS 2K3B XJYRESVIOL +JYRESVIOL 2KH2 XJYNOCA +JYNOCA 2L2L XMINTIME +0 [MIN TIME GIVEN AFTER MONITOR ON ILLE 2LG= +1000 2L^W QCHOBEY +CHOBEYP+GNOMESS [IN GEORGE 4 MARK 6 WE MUST INHIBIT 2MFG QCHREAD +GREAD+GNOMESS [THE CREATION OF AN ADATA/ERREPLY BLK 2M^6 ...QCHWRITE +CHWRITE+GNOMESS 2NDQ QM1 #77777 [15 BIT MASK 2NYB QM2 #17777777 [22 BIT ADDR MASK 2PD2 QM3 #67777777 [MASK FOR CLEARING SMO BIT 2PXL QM4 #60000000 2QC= QM5 #17777 [RELATIVE PART OF JUMP ADDR 2QWW QM6 #37777 [ADDR OF REPLACER 2RBG QOBEY #023 [OBEY FN BITS 2RW6 # 2S*Q # SUBROUTINES 2STB # ----------- 2T*2 # 2TSL # THESE SUBROUTINES DO ALL THE RESERVATION CHECKING AND OBTAIN 2W#= # ACCESS TO LOCATIONS REQUIRED USING GETWORDX 2WRW # 2X?G # ON ENTRY X5=O/P ADDRESS OF START OF AREA REQUIRED 2XR6 # X1=CONTAINS THE PERMISSION 2Y=Q # 2YQB # ON EXIT X3=GEORGE ADDRESS OF START OF AREA 2^=2 # X2=-> TO APED/ANOMESS 2^PL PGET 329= SBX 7 FX1 32NW GETWORDX 5,3,1 338G PGET1 33N6 TESTREP2 RESVIOL,PNOK 347Q ADN 7 1 34MB PNOK ADX 7 1 3572 HUNT2 2,APED,ANOMESS 35LL EXIT 7 0 366= # 36KW # ON ENTRY X6=NO.OF WORDS REQUESTED 375G # 37K6 # ON EXIT X5=NO.OF WORDS GIVEN 384Q PGETM 38JB SBX 7 FX1 3942 GETWORDX 5,3,1,5,6 39HL BRN PGET1 3=3= #SKI G4 3=GW ( 3?2G # PAGE DEFAULT ENTRY POINT 3?G6 XENT9 3?^Q LDCT 6 #600 [SET MARK TO INICATE THIS ENTRY 3#FB #SKI K6OPILLS>99-99 3#^2 TRACE 5,K9OPILLS 3*DL LDX 4 5 3*Y= BRN ZL1 3BCW ) 3BXG # ENTRY FROM ILLEGAL MACRO 3CC6 XENT8 3CWQ LDN 6 0 3DBB #SKIP K6OPILLS>99-99 3DW2 TRACE 5,ILLENTRY 3F*L LDCH 4 ATYPE(2) 3FT= SBN 4 APET/64 3G#W BZE 4 XAPET [J IF APET 3GSG LDX 4 5 3H#6 TXU 4 XJYPERFAIL(1) 3HRQ BCS XCPAT 3J?B ORX 4 GSIGN [DON'T STEPBACK 3JR2 BRN XCPAT 3K=L XAPET 3KQ= LDX 4 5 3L9W TXU 4 XJYTIMEUP(1) 3LPG BCC ZL1B 3M96 TXU 4 XJYPERFAIL(1) 3MNQ BCC ZL1B 3N8B TXU 4 XJYPARFAIL(1) 3N=^ ...#UNS ADUALDME 3N*J ...( 3ND7 ... BCC ZL1B 3NGQ ... TXU 4 XJYPROCFAIL(1) 3NK* ...) 3NN2 BCS ZL1 3P7L ZL1B 3PM= #SKI ARCTP 3Q6W ( 3QLG TESTPUC FX2,XPUC 3R66 BRN XNPUC 3RKQ XPUC RINGTP FX2 3S5B FINDTP ,3 3SK2 CHANGEACT 3 3T4L XNPUC 3TJ= ) 3W3W LDCT 6 #400 [MARK TO INDICATE DONT STEPBAC 3WHG #SKIP G3 3X36 ZL1 ORX 4 6 3XGQ #SKIP G4 3Y2B ( 3YG2 ZL1F 3Y^L BRN ZL1H 3^F= ZL1 TESTPUC FX2,PUC 3^YW BRN ZL1H [J UNLESS PUC 42DG PUC FCAPCA 3,FX2 [FREE ANY ADATA,ERREPLY BLOCK SETUP 42Y6 HUNT2OPT 3,ADATA,ERREPLY 43CQ BNG 3 PUC1 43XB FREECORE 3 44C2 PUC1 MACCS ,2,3 [ADDRESS OF PUCS WORD 0 44WL BNZ 6 PUC2 [UNLESS ENTRY WAS AT K9OPILLS STEPBAC 45B= STEPBAC 3 [THE PUCS ONR. 45TW PUC2 PMODES 5 46*G SRC 5 8 46T6 LDX 0 GMSK1 47#Q ANDS 0 9(3) 47SB ORS 5 9(3) [STORE IN WORD 9 OF PUC 48#2 FINDTP 2,3 48RL MACCS ,3,3 [FIND TP WORD ZERO 49?= LDCT 1 #500 49QW ORS 1 31(3) [& SET IT TO INDICATE AN ILLEGAL 4==G RINGTP FX2 4=Q6 FINDTP ,3 4?9Q CHANGEACT 3 4?PB RUNPROG 4#92 ZL1H ORX 4 6 4#NL ) 4*8= LDCT 3 #100 4*MW ANDX 3 CLONG1(2) 4B7G BZE 3 NASET [J IF NO ASET BLOCK 4BM6 ERS 3 CLONG1(2) 4C6Q CAPCA GMON,ASET 4CLB ORS 3 CLONG1(2) 4D62 BRN XCPAT 4DKL NASET 4F5= CAPCA 4FJW XCPAT 4G4G # SET UP APED,ANOMESS BLOCK & INITIALISE VARIOUS LOCATIONS 4GJ6 SETNCORE VLENGTH,2,APED,ANOMESS 4H3Q STO 3 VSPROG(2) 4HHB LDN 0 APEDFAIL 4J32 STO 0 VMCOND(2) 4JGL STO 4 VSCOND(2) [STORE CATEGORY OF ILLEGAL 4K2= # SET UP STATE WORD & MASK FOR CALCULATING OBJ.PROG ADDRESSES 4KFW FPCACA 3,FX2 4K^G PMODES 7,3 4LF6 STO 7 VSTATE(2) 4LYQ ANDN 7 8 4MDB LDX 6 QM1(1) [15 BIT ADDRESS MASK 4MY2 BZE 7 ZEBM [J IF 15 A.M. 4NCL LDX 6 QM2(1) [22 BIT ADDRESS MASK 4NX= ZEBM 4PBW STO 6 VMASK(2) 4PWG LDX 6 ANM(3) [MEMBER NO. 4QB6 ANDN 6 3 4QTQ STO 6 VSPROG(2) 4R*B LDCT 7 #400 [INITIALISE VARIOUS LOCATIONS 4RT2 STO 7 VSMO(2) 4S#L STO 7 VINSTR(2) 4SS= STO 7 VCAREA(2) 4T?W LDN 6 128 [TAKE MINIMUM OF 128 AND ALIMIT 4TRG TXL 6 ALIMIT(3) 4W?6 BCS ZL8B 4WQQ LDX 6 ALIMIT(3) 4X=B ZL8B LDN 5 0 [START ADDRESS 4XQ2 LDX 1 QCHWRITE(1) [TYPE OF ACCESS 4Y9L CALL 7 PGETM 4YP= BRN (BITS22LS) 4^8W VETC 3 [GET STATE OF V,SMO,ZSM BITS 4^NG ORS 0 VSTATE(2) 5286 BNG 4 ZL8A [J IF NO STEPBAC 52MQ STEPBAC 3 537B BRN ZL8 53M2 ZL8A SLC 4 1 546L BNG 4 ZL8 [J IF NOT K9 ENTRY 54L= LDX 0 QM3(1) 555W ANDS 0 VSTATE(2) [CLEAR SMO BIT 55KG ZL8 5656 LDN 4 VACC(2) 56JQ MOVE 3 8 [MOVE IN ACCUMULATORS 574B LDX 7 3 57J2 FPCACA 3,FX2 583L # FIND ONR OF MEMBERS 58H= LDN 6 4 592W ADN 3 K61*4 59GG ZYX1 5=26 SBN 6 1 5=FQ SBN 3 K61 5=^B LDCT 5 #400 5?F2 LDX 0 ASU1(3) 5?YL BNG 0 ZYX2 [J IF NON EXISTENT 5#D= TXU 6 VSPROG(2) 5#XW BCC ZYX4 [J IF CURRENT MEMBER 5*CG LDX 1 6 5*X6 SLL 1 4 5BBQ ADN 1 32 5BWB ADX 1 7 5CB2 ONR 1,5 [GET ONR OF MEMBER 5CTL LDX 1 FX1 5D*= ZYX2 5DSW SMO 6 5F#G STO 5 VMEMS(2) 5FS6 BNZ 6 ZYX1 5G?Q BRN ZON 5GRB ZYX4 5H?2 ONR 7,5 [GET ONR OF CURRENT MEMBER 5HQL STO 5 VFADDR(2) 5J== BRN ZYX2 5JPW ZON LDX 5 VFADDR(2) 5K9G LDX 0 VSTATE(2) 5KP6 SLC 0 3 5L8Q ANDN 0 1 5LNB ADS 0 VFADDR(2) 5M82 STOZ VSMOAD(2) 5MML BZE 0 ZL3 [J IF NO SMO 5N7= CALL 7 XOBEY 5NLW STO 5 VSMO(2) 5P6G STO 4 VSMO+1(2) 5PL6 SBN 3 #117 [JUMP IF SMO NOT FOUND 5Q5Q BNZ 3 ZL7 5QKB CALL 7 MODADDR1 5R52 STO 5 VSMO+2(2) 5RJL LDX 1 QCHREAD(1) [CHECK'READ'ACCESS FOR 1 WORD 5S4= CALL 7 PGET 5SHW BRN ZL7A 5T3G LDX 4 0(3) [PICK UP PREMODIFIER 5TH6 ANDX 4 VMASK(2) 5W2Q STO 4 VSMOAD(2) [SET PREMOD REG 5WGB STO 4 VSMO+3(2) 5X22 # FIND THE INSTR & ITS EFFECTIVE ADDR. 5XFL ZL3 5X^= ZL3A LDX 5 VFADDR(2) 5YDW CALL 7 XOBEY 5YYG STO 5 VINSTR(2) 5^D6 STO 4 VINSTR+1(2) [CALCULATION OF ADDR DEPENDS ON 5^XQ #SKIP K6OPILLS>99-99 62CB TRACE 5,ILLADDR 62X2 #SKIP K6OPILLS>99-99 63BL TRACE 4,ILLINSTR 63W= ANDN 3 #176 [WHETHER IT IS A BRANCH INSTRUCTION 64*W SBN 3 #050 [OR NOT 64TG BNG 3 ZL4 65*6 SBN 3 #030 65SQ BPZ 3 ZL4 66#B ADN 3 6 66S2 BNZ 3 ZL4A [JUMP UNLESS'EXIT'. 67?L LDX 5 VSMOAD(2) 67R= LDX 7 VMASK(2) 68=W LDX 0 VSTATE(2) 68QG ANDN 0 #50 69=6 SBN 0 #40 69PQ BNZ 0 ZL4B [JUMP UNLESS EBM & 15 AM 6=9B LDX 7 QM2(1) 6=P2 STO 7 VMASK(2) [FRIG TO AVOID MENDING ILLEXIT 6?8L SLL 5 9 6?N= BPZ 5 ZL4C 6#7W ORN 5 #177 [PROPAGATE B9 AS FAR AS B2 6#MG ZL4C SRC 5 9 6*76 ZL4B LDX 0 VINSTR+1(2) 6*LQ ANDX 0 QM1(1) 6B6B ADX 5 0 6BL2 ANDX 5 7 6C5L BRN ZL5 6CK= ZL4A 6D4W CALL 7 MODADDR3 6DJG BRN ZL5 6F46 ZL4 6FHQ CALL 7 MODADDR2 6G3B ZL5 STO 5 VINSTR+2(2) 6GH2 # THIS SECTION CHECKS TO SEE WHAT IS WRONG.WITH THE INSTR.FIRST WE C 6H2L # TO SEE WHETHER THE FUNCTION BITS ARE LEGAL & THEN WHETHER RESERVAT 6HG= # ARE VIOLATED-THIS MAY INVOLVE SWITCHING TO ANOTHER SEGMENT. 6H^W # AT THIS POINT X4 HOLDS INSTR & X5 )THE N(M) ADDR.X2->ILLEGAL BLOCK 6JFG LDX 6 4 [EXTRACT FN BITS OF FN 6J^6 SLC 6 10 6KDQ ANDN 6 #177 6KYB SBN 6 #160 [IF >PERI MAKE THEM LOOK LIKE'LDN' 6LD2 BNG 6 ZM1 6LXL NGN 6 #60 6MC= ZM1 ADN 6 #72 [IF999-999 6QSL TRACE 6,FNTYPE 6R#= LDX 1 FX1 6RRW LDX 0 6 [MASK OUT TYPE OF FN BITS 6S?G ANDN 0 7 6SR6 SMO 0 [SWITCH TO DECIDE WHWTHER FN IS LEGAL 6T=Q CALL 7 XFN 6TQB BRN XILLINS [JUMP IF ILLEGAL 6W=2 SRL 6 3 [MASK OUT TYPE OF 'CONTROL AREA' 6WPL LDX 0 6 [MULTIPLY BY 3 6X9= BZE 0 ZENDA [LDN ETC 6XNW SBN 0 1 6Y8G BZE 0 ZENDC [BRN,SMO,CALL AND OTHERS 6YN6 SBN 0 5 6^7Q BNG 0 ZEXC [MOVE,MVCH,SUM,EXIT 6^MB BZE 0 ZENDD [FLOATING POINT 7272 LDN 6 4 [PERI 72LL LDX 0 QCHREAD(1) 736= ADX 0 QCHWRITE(1) 73KW STO 0 1 73P2 ... 73S6 ... 73X= ... SMO FX1 742B ... ANDX 5 QM2 745G CALL 7 PGETM 74K6 BRN XNOCA 754Q LDX 6 0(3) [1ST WORD OF CONTROL AREA 75JB ACROSS ILLPERI,1 7642 ZEXC ACROSS ILLEXC,1 76HL ZENDD NGNC 0 1 773= ZENDC LDN 6 1 77GW FPCACA 3,FX2 782G CHECKBX 5,6,XRESVIOL,3 78G6 BRN ZENDA 78^Q # 79FB # CONTROL AREA OUT OF RESERVATIONS 79^2 # 7=DL XNOCA 7=Y= LDX 6 XJYNOCA(1) 7?CW BRN ZEND 7?XG # TABLE OF TYPE OF INSTRUCTION:ONE CHAR PER FN FROM'BCT'TO'PERI'INC 7#C6 XFNTYPE 7#WQ #11111010 [BCT,BCT,CALL,CALL 7*BB #20201010 [EXIT,EXIT,BEN AND OTHERS 7*W2 #15150000 [076,077,LDN ADN 7B*L #00000000 [NGN,SBN,LDNC,ADNC 7BT= #00000000 [NGNC,SBNC,SLC ETC 7C#W #00000202 [SRC ETC,NORM 7CSG #51160000 [MVCH,SMO,ANDN,ORN 7D#6 #00000000 [ERN,NULL,LDCT,MODE 7DRQ #40306363 [MOVE,SUM,FLOAT,FIX 7F?B #64646464 [FAD,FSB,FMPY,FDVD 7FR2 #64640000 [LFP,SFP,140,141 7G=L #00000000 [142-145 7GQ= #00000000 [146;147,SUSBY,REL 7H9W #00000000 [DIS,ISBY,CONT,SUSDP 7HPG #00700000 [ALLOT,PERI,-,- 7J96 # TABLE OF TYPE OF FN BITS 7JNQ XFN BRN XFN0 7K8B BRN XFN1 7KN2 BRN XFN2 7L7L BRN XFN3 7LM= BRN XFN4 7M6W BRN XFN5 7MLG BRN XFN6 [SMO 7N66 # THESE SUBRS DETERMINE WHETHER VARIOUS LEVELS OF INSTRUCTIONS ARE 7NKQ # AVAILABLE THEY EXIT 7 1 IF SO & +0 OTHERWISE 7P5B # CHECK WHETHER LEVELS B OR C ARE AVAILABLE (BCT,SMO,MVCH) 7PK2 XFN1 7Q4L XFN0 7QJ= ZFN EXIT 7 1 [YES 7R3W # CHECK WHETHER SUBLEVEL 2 & FLOATING PT IS AVAILABLE (114,5) 7RHG XFN2 LDX 0 CPEXECINFO 7S36 SLC 0 5 7SGQ BNG 0 ZFN 7T2B # CHECK WHETHER FLOATING POINT IS AVAILABLE 7TG2 XFN3 LDX 0 CPEXECINFO 7T^L SLL 0 6 7WF= BNG 0 ZFN 7WYW EXIT 7 0 7XDG # GENERALISED FLOATING POINT 7XY6 XFN4 LDX 0 4 [JUMP IF X=0 OR 4 I.E.NORMAL FLOATING 7YCQ SLC 0 3 7YXB ANDN 0 3 7^C2 BZE 0 XFN3 7^WL LDX 0 CPEXECINFO 82B= SLL 0 7 82TW BNG 0 ZFN 83*G EXIT 7 0 83T6 # LEVEL B OR C & FLOATING POINT 84#Q XFN5 BRN XFN3 84SB XFN6 LDX 0 VSTATE(2) [SMOED SMOS ARE ILLEGAL:SO EXAMINE SM 85#2 SLC 0 2 85RL BPZ 0 XFN1 86?= EXIT 7 0 86QW XRESVIOL 87=G LDX 6 XJYRESVIOL(1) [MAKE USE OF 2 SPARE WORDS-REPORT RES 87Q6 BRN ZEND 889Q XENT2 88PB HUNT2 2,APED,ANOMESS 8992 XILLINS 89NL ZENDA LDX 6 XJYILLINS(1) [CONVENTIONAL MESSAGE 8=8= ZEND LDX 4 VSCOND(2) 8=MW ANDX 4 QM2(1) 8?7G BNZ 4 ZEND1 8?M6 LDX 4 6 8#6Q STO 4 VSCOND(2) 8#8N ...ZEND1 8#=L ...#UNS G4ILLDIAG 8##J ...( 8#BG ...#SKI G4 8#DD ...( 8#GB ... LDX 0 AMAXQUOTA [TURN OFF THE 8#J# ... SRC 0 1 [DIAGNOSTIC WHEN 8#L= ... BNG 0 NOTRESVIOL2 [MAXQUOTA IS ODD 8#N8 ... TXU 4 XJYRESVIOL(1) 8#Q6 ... BCS NOTRESVIOL2 8#S4 ... DOWN TIMILLS,1 8#W2 ...NOTRESVIOL2 8#XY ...) 8#^W ...) 8*3S ... TXU 4 XJYUNALLOC(1) [JUMP IF MESSAGE MUST NOT 8*62 BCC ZEND1A [BE OWN MONITORED 8*KL TXU 4 XJYOUTFULL(1) 8B5= BCC ZEND1A 8BJW TXU 4 XJYOUTPUT(1) 8C4G BCC ZEND1A 8CJ6 TXU 4 XJYFILE(1) 8D3Q BCC ZEND1A 8DHB TXU 4 XJYSTREAM(1) 8F32 BCC ZEND1A 8FGL TXU 4 XJYTIMEUP(1) 8G2= BCC ZEND1A 8GFW TXU 4 XJYPERFAIL(1) 8G^G BCC ZEND1A 8HF6 TXU 4 XJYPERFAIL1(1) 8HYQ BCC ZEND1A 8JDB TXU 4 XJYPARFAIL(1) 8JY2 BCC ZEND1A 8K2K ...#UNS ADUALDME 8K58 ...( 8K7R ... TXU 4 XJYPROCFAIL(1) 8K=B ... BCC ZEND1A 8K#^ ...) 8KCL FPCACA 3,FX2 8KX= HUNT2 2,AOBRES,0,3 8LBW LDX 4 VOWNMON(2) 8LWG ANDX 4 QM2(1) 8MB6 BZE 4 ZEND1A [J IF NOT OWN MONITORING 8MTQ [ENTER OWN MONITORING ROUTINE 8N*B LDX 5 4 8NT2 LDX 1 QCHOBEY(1) 8P#L CALL 7 PGET [CHECK OWN MONITORING ADDRESS 8PS= BRN ZEND1A [PREVENT OWN MONITORING 8Q?W LDN 5 0 8QRG LDN 6 15 [ACCESS 15 WORDS 8R?6 LDX 1 QCHWRITE(1) 8RQQ CALL 7 PGETM 8S=B BRN (GEOERR) 8SQ2 LDX 0 8(3) [STORE WORD 8 IN WORD 14 8T9L STO 0 14(3) 8TP= LDCT 0 #377 [STORE B1-8 OF 9 & MEMBER NO IN WRD15 8W8W ANDX 0 9(3) [ & CLEAR B1-8 OF 9 8WNG ERS 0 9(3) 8X86 ORX 0 VSPROG(2) 8XMQ STO 0 15(3) 8Y7B STO 4 8(3) [RESET ONR 8YM2 FREECORE 2 [FREE APED,ANOMESS 8^6L VFREE GMON,ASET [FREE 8^L= #SKI G4 925W VFREEW ADATA,ERREPLY 92KG WORDFIN [TIDY UP 9356 FLIPS CLONG1(2),2 [NO GMON/ASET BLOCK PRESENT 93JQ RUNPROG 944B ZEND1A 94J2 WORDFIN [TIDY UP 953L ACROSS OPILLSA,1 95H= # THIS SECTION IS ENTERED WHEN A'SMO' IS NOT FOUND 962W ZL7A 96GG ZL7 LDCT 0 #200 9726 ORS 0 VSMO(2) [SET'SMO'NOT FOUND BIT 97FQ LDX 5 VFADDR(2) 97^B CALL 7 XOBEY 98F2 STO 5 VINSTR(2) 98YL STO 4 VINSTR+1(2) 99D= LDCT 0 #200 99XW ORS 0 VINSTR(2) 9=CG BRN ZENDA 9=X6 # ************* 9?BQ # *SUBROUTINES* 9?WB # ************* 9#B2 # 9#TL # THE FOLLOWING SUBROUTINE GETS THE FAILING INSTRUCTION SEARCHING 9**= # DOWN'OBEY'CHAINS IF NECESSARY 9*SW # 9B#G # ON ENTRY X5=OBJECT PROGRAM ADDRESS 9BS6 # X2->APED/ANOMESS BLOCK 9C?Q # 9CRB # ON EXIT X5=O/P ADDRESS OF LAST'OBEY'IN THE CHAIN 9D?2 # X4=THE INSTRCTION 9DQL # X3=FUNCTION BITS 9F== # X2->APED/ANOMESS 9FPW # 9G9G # 9GP6 # THE ROUTINE WILL ONLY SEARCH TO A DEPTH OF 5 9H8Q # THE LINK ACCUMULATOR IS X7 9HNB # 9J82 XOBEY LDN 6 5 9JML SBX 7 1 9K7= STO 7 VLINK(2) 9KLW BRN ZOB1 9L6G ZOB2 9LL6 STO 5 VCAREA+1(2) 9M5Q CALL 7 MODADDR1 [NEXT IN CHAIN 9MKB LDX 1 QCHREAD(1) [READ PERMISSION 9N52 CALL 7 PGET [NEXT IN CHAIN 9NJL BRN ZOB4 9P4= STOZ VSMOAD(2) [CLEAR PREMOD REG 9PHW BRN ZOB5 9Q3G ZOB1 9QH6 LDX 1 QCHREAD(1) [READ ACCESS 9R2Q CALL 7 PGET [GET 1 WORD 9RGB BRN XRESVIOL 9S22 ZOB5 9SFL LDX 4 0(3) [INSTRUCTION IN X4 9S^= #SKIP K6OPILLS>999-999 9TDW TRACE 4,ILLOBEY 9TYG LDX 3 4 [FN BITS 9WD6 SLC 3 10 9WXQ ANDN 3 #177 9XCB TXU 3 QOBEY(1) 9XX2 BCS ZOB3 9YBL BCT 6 ZOB2 [EXIT IF MAX DEPTH 9YW= ZOB3 LDX 7 VLINK(2) 9^*W ADX 7 1 9^TG EXIT 7 0 =2*6 ZOB4 =2SQ LDX 5 VCAREA+1(2) =3#B LDN 3 #023 =3S2 BRN ZOB3 =4?L # THE FOLLOWING SUBROUTINES CALCULATE THE EFFECTIVE ADDRESS OF THE =4R= # INSTRUCTION IN X4 & LEAVE IT IN X5.IN THE CASE OF A BRANCH INSTR =5=W # THIS IS THE DESTINATION (UNLESS THERE IS A RES VIOL ON THE REPLACE =5QG # THEY USE XSMO (SET IF PREMOD),VSTATE , VFADDR.& VMASK =6=6 MODADDR1 =6PQ LDX 5 4 =79B ANDN 5 #7777 [ADDR PART OF INSTR =7P2 ADX 5 VSMOAD(2) =88L LDX 0 4 =8N= SRL 0 12 [FIND MODIFIER NO =97W ANDN 0 3 =9MG BZE 0 ZAD1 ==76 SMO 0 ==LQ ADX 5 VACC(2) [ADD CONTENTS OF MODIFIER =?6B ZAD1 ANDX 5 VMASK(2) [TIDY UP =?L2 #SKIP K6OPILLS>999-999 =#5L TRACE 5,NMADDR1 =#K= EXIT 7 0 =*4W # ADDR WITH CHAR BITS =*JG MODADDR2 =B46 LDX 5 4 =BHQ ANDN 5 #7777 [ADDR PART OF INSTR =C3B ADX 5 VSMOAD(2) =CH2 LDX 0 4 =D2L SRL 0 12 =DG= ANDN 0 3 =D^W BZE 0 ZAD1 [ENTER OTHER SUBR =FFG SMO 0 =F^6 ADX 5 VACC(2) =GDQ ANDX 5 VMASK(2) =GYB SMO 0 =HD2 LDX 0 VACC(2) =HXL ANDX 0 QM4(1) =JC= ORX 5 0 =JWW #SKIP K6OPILLS>999-999 =KBG TRACE 5,NMADDR2 =KW6 EXIT 7 0 =L*Q # BRANCH INSTRUCTIONS =LTB MODADDR3 =M*2 SBX 7 1 =MSL STO 7 VLINK(2) =N#= LDX 5 4 =NRW LDX 0 VSTATE(2) [JUMP IF EXTENDED BRANCH MODE =P?G ANDN 0 32 =PR6 BNZ 0 ZAD2 =Q=Q ANDX 5 QM1(1) [NORMAL MODE =QQB ZAD2A ADX 5 VSMOAD(2) =R=2 ANDX 5 VMASK(2) =RPL ZAD5 =S9= #SKIP K6OPILLS>999-999 =SNW TRACE 5,BRADDR1 =T8G LDX 7 VLINK(2) =TN6 ADX 7 1 =W7Q EXIT 7 0 =WMB ZAD2 LDX 0 4 [JUMP IF REPLACED JUMP =X72 SLC 0 9 =XLL BNG 0 ZAD3 =Y6= SLC 0 1 [RELATIVE JUMP =YKW ANDX 5 QM5(1) =^5G BPZ 0 ZAD4 =^K6 NGX 5 5 [NEGATE IF BACKWARD JUMP ?24Q ZAD4 ADX 5 VFADDR(2) ?2JB BRN ZAD2A ?342 ZAD3 ANDX 5 QM6(1) ?3HL LDX 1 QCHREAD(1) ?43= CALL 7 PGET ?4GW BRN ZAD5 ?52G LDX 5 0(3) ?5G6 BRN ZAD2A ?5^Q MENDAREA 20,K100OPILLS ?6FB #END ^^^^ ...47254573000900000000