{{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