{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: MONRESUM850)}}
====== MONRESUM850 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHECKA|CHECKA]], [[george:macro:CLEAR|CLEAR]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:COOR1X|COOR1X]], [[george:macro:FADDRESS|FADDRESS]], [[george:macro:FCAPCA|FCAPCA]], [[george:macro:FJOCA|FJOCA]], [[george:macro:FJOPCA|FJOPCA]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FPERENTA|FPERENTA]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETWORD|GETWORD]], [[george:macro:HLSINFORM|HLSINFORM]], [[george:macro:HUNT2|HUNT2]], [[george:macro:JBS|JBS]], [[george:macro:LINKSET|LINKSET]], [[george:macro:MELPTR|MELPTR]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PAIR|PAIR]], [[george:macro:PAPARAM|PAPARAM]], [[george:macro:PARAFREE|PARAFREE]], [[george:macro:PARAPASS|PARAPASS]], [[george:macro:PCAPLUG|PCAPLUG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:TRACE|TRACE]], [[george:macro:VFREE|VFREE]], [[george:macro:WORDFIN|WORDFIN]], [[george:macro:XCLEAR|XCLEAR]]
22FL #SEG MONRESUM [R H TERRY
22^= #OPT K0MONRESUM=0
23DW #LIS K0MONRESUM>K0ALLGEO
23YG #OPT K6MONRESUM=K6ALLGEO
24D6 #
24XQ # THIS SEGMENT IMPLEMENTS THE MONRESUME COMMAND.THE FIRST PARAMETER IS
25CB # ANALYSED AND A FLAG SET ACCORDING AS THIS IS STOP OR GO (OR NULL). WE
25X2 # THEN LOOK UP THE CURRENT O/P INSTRUCTION, AND IF IT IS AN EXTRACODE
26BL # WHICH COULD HAVE GENERATED AN 'OPEN PERI' TYPE MONITOR EVENT,A
26W= # PROGRAM EVENT IS SIMULATED BY SETTING THE EVENT WORDS OF THE APET OR
27*W # AOLPT ACTIVITY AND FPUT-ING IT ON THE LIST.
27TG # AWORK1 IS USED AS FOLLOWS:
28*6 # B23 PARAM IS STOP B22 C/I IS SMOED B21 C/I IS PERI
28SQ # B20 22AM DATA MODE B19 PCA TO BE FPUT B18 C/I IS OBEY(MK6 ONLY
29#B # IN MK6 AWORK2-4 ARE SET UP TO CONTAIN OUR FUTURE EVENT WORDS
29S2 # IN MK6.5 VENT1-6 OF THE DATA BLOCK ARE SET UP TO CONTAIN OUR FUTURE
2=?L # EVENT WORDS
2=R= #
2?=W 8HMONRESUM
2?QG #
2#=6 # THE ONLY ENTRY POINT
2#PQ #
2*9B SEGENTRY K1MONRESUM,ZEP1
2*P2 #
2B8L # DATA WORDS IN AN ADATA/CSTORE WORK BLOCK
2BN= #
2C7W #DEF VENT1=A1
2CMG #DEF VENT2=VENT1+1
2D76 #DEF VENT3=VENT2+1
2DLQ #DEF VENT4=VENT3+1
2F6B #DEF VENT5=VENT4+1
2FL2 #DEF VENT6=VENT5+1
2G5L #DEF PREMOD=VENT6+1
2GK= #DEF ZINST=PREMOD+1
2H4W #DEF WORK1=ZINST+1
2HJG #DEF START=WORK1+1
2J46 #DEF ZLEN=START+10-A1 [DATA BLOCK LOGICAL LENGTH
2JHQ #
2K3B #DEF VENTSZ=2*G4+4 [SIZE OF AN AOLPT'S EVENT AREA
2KH2 #
2L2L XSTOP 4HSTOP
2LG= XGO 4HGO
2L^W SMOBIT #10000000 [B2 OF O/P WD 9 SET IF LAST INSTRUCTN
2MFG [ WAS SMO-ED
2MP# ...XMDAMSK #77700077
2M^6 XFMSK #07740000
2NDQ XTHOU +1000
2NYB ZERR1 +APFERR [PARAMETER FORMAT ERROR:%C
2P88 ...ZERR1A +JMAXPAR
2PD2 ZERR3 +JMONILL [ILLEGAL CHANGES TO CORE IMAGE SINCE
2PXL [ MONITOR EVENT
2QC= #SKI G3
2QWW XLINK PAIR OPCA,1
2RBG #SKI G4
2RW6 XLINK PAIR PAGETURN,2
2S*Q PERI PERI 0 0 [ADMISSABLE O/P CURRENT INSTRUCTIONS
2STB XCODS
2T*2 ALLOT 0 0
2TSL REL 0 0
2W#= DIS 0 0
2WRW CONT 0 0
2X?G #DEF NXCODS=0?-XCODS [NO OF ENTRIES IN XCODS TABLE
2XR6 OBEY OBEY 0
2Y=Q SMO SMO 0
2YQB ZEP1 [ENTRY POINT
2^=2 STOZ AWORK1(2) [UNSET ALL SWITCHES
2^PL PARAPASS
329= MHUNT 3,CPB,CUNI
32NW LDX 0 ANUM(3)
338G BZE 0 STGO
33N6 BNG 0 STGO [IF NO PARAMETER, 'GO' ASSUMED
347Q SBN 0 5
34MB BPZ 0 XERR1 [ERROR IF 1ST PARAM HAS >4 CHARS
3572 LDX 0 APARA(3)
35LL BXU 0 XSTOP(1),NOTST
366= LDN 7 1
36KW ORS 7 AWORK1(2) [IF 'STOP' SET B23 OF SWITCH WORD
375G BRN STGO
37K6 NOTST BXU 0 XGO(1),XERR1 [IF NOT 'GO' ERROR
384Q STGO FREECORE 3 [FREE UNI BLOCK
389Y ... FJOCA 3,2
38C6 ... JBS XERR3A,3,JBLOAD [ERROR IF NOT LOADED
38JB PARAFREE [FREE MULTI BLOCKS FOR PARPARAM
3942 ... PAPARAM XERR1,XERR1A [SET UP O/P PARAMS
39HL FPCACA 1,2
3=3= LDX 0 ALMT(1) [GET MODE OF CURRENT MEMBER
3=GW ANDN 0 #10
3?2G ORS 0 AWORK1(2) [B20 OF AWORK1 SET IF 22AM
3?G6 SETNCORE ZLEN,3,ADATA,CSTORE [WORK BLOCK TO HOLD WDS 0-9 OF O/P
3?^Q LDN 5 0 [FIRST O/P WORD WANTED
3#FB RET LDN 6 10 [NO OF O/P WORDS WANTED
3#^2 SBX 6 5
3*DL CALL 7 ZGETWORD
3*Y= BRN XGEO
3BCW BXL 4 6,NOTAL [J IF NOT ACCESS TO ALL WDS REQUESTED
3BXG LDX 4 6 [ OTHERWISE SET NO GOT=NO REQUESTED
3CC6 LDN 6 0 [ AND FLAG NO MORE GETWORDS NEEDED
3CWQ NOTAL LDX 2 3
3DBB MHUNTW 3,ADATA,CSTORE [FIND DATA BLOCK
3DW2 LDX 7 3 [ AND REMEMBER ITS ADDRESS
3F*L ADN 3 START
3FT= ADX 3 5 [X3-> NEXT POSITION IN DATA BLOCK
3G#W SMO 4
3GSG MOVE 2 0 [MOVE THIS BATCH OF WORDS ACROSS
3H#6 ADX 5 4
3HRQ BNZ 6 RET [DO A FURTHER GETWORD IF REQUIRED
3J?B LDX 2 FX2
3JR2 LDX 3 7 [RESTORE DATA BLOCK ADDR
3K=L LDX 6 START+8(3) [O/P WORD 8
3KQ= LDX 7 START+9(3) [O/P WORD 9
3L9W SMO 6
3LPG LDN 5 0 [GET ONR (B2-23)
3M96 SBN 5 1 [NOW X5 IS O/P ADDR OF MONITORED XCOD
3MNQ ANDX 7 SMOBIT(1)
3N8B BZE 7 NOSMO [J IF LAST O/P INSTR NOT SMO-ED
3NN2 LDN 0 2
3P7L ORS 0 AWORK1(2) [ OTHERWISE SET 'SMO-ED' BIT
3PM= SBN 5 1
3Q6W LDN 6 2
3QLG CALL 7 ZGETWORD [ AND TRY TO ACCESS WDS [8]-2 & [8]-1
3R66 BRN XERR3
3RKQ MHUNTW 2,ADATA,CSTORE
3S5B LDX 0 0(3)
3SK2 STO 0 PREMOD(2) [STORE PREMODIFYING INSTRUCTION
3T4L ADN 5 1
3TJ= SBN 4 1
3W3W BZE 4 NOSMO [J IF C/I INACCESSIBLE THIS GETWORD
3WHG LDX 0 1(3)
3X36 STO 0 ZINST(2) [ ELSE STORE CURRENT INSTRUCTION
3XGQ BRN XANAL
3Y2B NOSMO LDN 6 1 [ACCESS CURRENT INSTRUCTION
3YG2 CALL 7 ZGETWORD
3Y^L BRN XERR3
3^F= MHUNTW 2,ADATA,CSTORE
3^YW LDX 0 0(3)
42DG STO 0 ZINST(2) [STORE CURRENT INSTRUCTION
42Y6 XANAL [NOW ZINST CONTAINS CURRENT O/P INSTRUCTION,AND IF THIS
43CQ [WAS PREMODIFIED, PREVIOUS INSTRUCTION IS IN PREMOD
43XB LDX 2 FX2
44C2 STOZ AWORK4(2) [CLEAR CONCEPTUAL 'SMO' REGISTER
44WL LDX 0 AWORK1(2)
45B= ANDN 0 2
45TW BZE 0 N117 [J IF CURRENT INSTR NOT PREMODIFIED
46*G MHUNTW 3,ADATA,CSTORE
46T6 LDX 6 PREMOD(3) [GET PREMODIFYING INSTRUCTION
47#Q LDX 0 6
47SB ANDX 0 XFMSK(1)
48#2 BXU 0 OBEY(1),N023A [J IF PREMOD INSTR NOT OBEY
48RL CALL 7 ZOBEY [ ELSE GET INSTR AT END OF OBEY CHAIN
49?= LDX 0 6
49QW ANDX 0 XFMSK(1)
4==G N023A BXU 0 SMO(1),XERR3 [ERROR IF PREMOD INSTR NOT SMO OR
4=Q6 [ OBEY -> SMO
4?9Q LDX 5 6
4?PB CALL 7 OPERAND [GET OPERAND OF SMO
4#92 LDN 6 1
4#NL CALL 7 ZGETWORD [GET WORD ADDRESSED BY SMO
4*8= BRN XERR3
4*MW LDX 0 0(3)
4B7G STO 0 AWORK4(2) [ AND SET OUR 'SMO' REGISTER
4BM6 N117 MHUNTW 3,ADATA,CSTORE
4C6Q LDX 6 ZINST(3) [GET CURRENT INSTRUCTION
4CLB LDX 0 6
4D62 ANDX 0 XFMSK(1)
4DKL BXU 0 OBEY(1),N023B [J IF CURRENT INSTRUCTION NOT OBEY
4F5= CALL 7 ZOBEY [ ELSE GET INSTR AT END OF OBEY CHAIN
4FJW LDX 0 6
4G4G ANDX 0 XFMSK(1)
4GJ6 N023B BXE 0 PERI(1),YPERI [J IF MONITORED INSTR IS PERI
4H3Q LDN 7 NXCODS
4HHB TXCOD BXE 0 XCODS(1),XFND [TEST IF MNTRD O/P INSTR COULD HAVE
4J32 ADN 1 1 [ CAUSED AN 'OPEN PERI' TYPE MONEVENT
4JGL BCT 7 TXCOD
4K2= BRN XERR3 [ERROR IF NOT
4KFW YPERI LDN 0 4
4K^G ORS 0 AWORK1(2) [IF MNTRD INSTR WAS PERI,SET B21
4LF6 XFND LDX 1 FX1
4LYQ MHUNTW 3,ADATA,CSTORE
4MDB STO 6 VENT5(3) [DUMP COPY OF MONITORED INSTRUCTION
4MY2 LDX 5 6
4NCL CALL 7 OPERAND
4NX= MHUNT 3,ADATA,CSTORE
4PBW STO 5 VENT2(3) [DUMP OPERAND (+ ALL MODIFICATION) OF
4PWG [ MONITORED INSTRUCTION
4QB6 STOZ VENT6(3) [INDICATES 'E/CODE NOT IMPLD BY EXEC'
4QTQ LDX 0 AWORK1(2)
4R*B ANDN 0 4
4RT2 BNZ 0 T157 [J IF PERI
4S#L SRL 6 21 [ISOLATE ACCUMULATOR FIELD OF INSTR
4SS= ANDN 5 256
4T?W BZE 5 XUNO [J IF ACC FIELD IS UNIT NO
4TRG SMO 6
4W?6 LDX 6 START(3)
4WQQ ANDN 6 #77 [ ELSE GET UNIT NO FROM B18-23 OF ACC
4X=B XUNO STO 6 VENT3(3) [REMEMBER UNIT NO FOR EVENT3
4XQ2 WORDFIN [CLEAR UP AFTER GETWORDS
4Y9L BRN N157 [ AND J TO SET PCA EVENT WORDS
4YP= T157 LDN 6 1
4^8W CALL 7 ZGETWORD [GET 1ST WORD OF PERI CONTROL AREA
4^NG BRN XERR3 [USER ERROR IF OUT OF RESERVATIONS
5286 LDX 4 0(3) [TYPE/MODE WORD OF PERI CONTROL AREA
52MQ #SKI K6MONRESUM>699-699
537B TRACE 4,PERICA
53M2 WORDFIN
546L MHUNTW 3,ADATA,CSTORE [FIND DATA BLOCK
54L= LDCT 6 #700
555W ANDX 6 VENT5(3) [ISOLATE ACC FIELD OF PERI INSTRN
55KG BNG 4 UNO1 [J IF ACC SPECD IN PERI CONTAINS
5656 [ UNIT NUMBER
56JQ SLC 6 3 [SET UNIT NO IN B9-23
574B BRN SETTP
57J2 UNO1 SLC 6 3
583L SMO 6
58H= LDX 6 START(3) [GET SPECIFIED ACCUMULATOR
59GG SETTP STO 4 VENT4(3) [EVENT4-1ST WD OF PERI CONTROL AREA
5=26 STO 6 VENT3(3) [EVENT3-X OR REPLACED X IN PERI
5=FQ LDCT 0 #377
5=^B ANDX 0 4 [ISOLATE TYPE FROM TYPE/MODE WORD
5?5? ... SEGENTRY K90MONRESUM [MEND POINT FOR MANYDA
5?98 ... ANDN 6 #77 [ONLY WANT UNIT NO
5?F2 ORX 6 0 [SET TYPE IN B0-8 OF X6[
5?YL [ MAKE TYPE 13 LOOK LIKE TYPE 6
5#D= LDX 0 6
5#XW SRL 0 15
5*CG SBN 0 13
5*X6 BNZ 0 NOTFDS
5BBQ ANDX 6 BSP16
5BWB LDCT 0 6
5CB2 ORX 6 0
5CTL NOTFDS
5CYQ ... ADN 0 13-6
5D3W ... BZE 0 TYPE6 [FOR MANYDA SPECIAL
5D72 ... ANDX 6 XMDAMSK(1)
5D=6 ...TYPE6
5D*= FPCACA 3,2
5DSW HUNT2 3,APERI,APERIRES
5F#G FPERENTA 3,6,NOENT [IF PRL ALLOCATED,X3-> ENTRY ELSE
5FS6 [ IF UNALLOCATED J TO NOENT
5G?Q LDX 0 1(3)
5GRB BNG 0 OFFLN [J IF PERIPHERAL MARKED OFF-LINE
5H?2 NOENT
5HQL N157 LDN 0 #20
5J== ORS 0 AWORK1(2) [SET 'PCA TO BE FPUT' BIT
5JPW OFFLN
5JX4 ...#SKI JWPHASE4
5K4= ... HLSINFORM XBRK,RESUME,JOBNO(2)
5K9G VFREE APED,ANEVENT [NOW ALL CHECKS ARE OVER, FREE ANY
5KP6 VFREE APED,ADELETE [ PROGRAM EVENT BLOCK
5L8Q MHUNTW 3,ADATA,CSTORE
5LNB LDX 0 AWORK1(2)
5M82 STO 0 WORK1(3) [SAVE AWORK1 ACROSS PCAPLUG
5MML PCAPLUG XBRK [PLUG IN O/P,CONTROL -> PCA
5N7= FJOPCA 3,2
5NLW LDX 4 APROGTIME(3) [RESET PROGRAM TIMER IF IT HAS EXPIRE
5P6G BNG 4 RMORE
5PL6 BNZ 4 RNMOR
5Q5Q LDX 4 APROGTIME+1(3)
5QKB BNZ 4 RNMOR
5R52 RMORE LDX 4 IPROGTIME
5RJL MPY 4 XTHOU(1)
5S4= STO 4 APROGTIME(3)
5SHW STO 5 APROGTIME+1(3)
5T3G RNMOR FCAPCA 3,2
5TH6 HUNT2 3,ADATA,CSTORE
5W2Q CHAIN 3,2 [RECHAIN DATA BLOCK AFTER PCA
5WGB LDX 0 WORK1(3)
5X22 STO 0 AWORK1(2) [RESTORE OUR OLD AWORK1
5XFL #SKI K6MONRESUM>699-699
5X^= TRACE VENT5(3),EV5
5YDW MELPTR 2 [GET PNTR TO CURRENT MEMBER ELEMENT
5YYG STO 2 VENT1(3) [REMEMBER FOR EVENT1
5^D6 LDX 2 FX2
5^XQ LDX 0 AWORK1(2)
62CB ANDN 0 1
62X2 ORN 0 2
63BL SRC 0 2 [SET B0:'MONRESUME TAKING PLACE'
63W= ORS 0 AMON(2) [ & IF PARAM WAS STOP,B1 OF AMON
64*W LDX 0 AWORK1(2)
64TG ANDN 0 #20
65*6 BNZ 0 OPCA [J IF PCA IS TO DEALWITH THE EVENT
65SQ #SKI G4
66#B (
66S2 #
67?L # IN G4 WE MUST ALSO SET EVENT5 TO THE ABSOLUTE ADDRESS OF THE CONTROL
67R= # AREA, AND IF THE 1ST 4 WORDS 6F THIS CROSS A PAGE BOUNDARY, EVENT6 IS
68=W # SET TO THE ABSOLUTE ADDRESS OF THE START OF THE NEW PAGE
68QG #
69=6 LDN 7 4 [CHECKA CONTROL AREA PAGES INTO CORE
69PQ CHECKA VENT2(3),7,(GEOERR),,W,XCOOR
6=9B XCOOR MHUNTW 3,ADATA,CSTORE
6=P2 LDX 4 VENT2(3)
6?8L CALL 7 ZADDRESS [X4:= ABSOLUTE ADDR OF 1ST WD OF C/A
6?N= STO 4 VENT5(3) [REMEMBER THIS FOR EVENT5
6#7W STOZ VENT6(3) [EVENT6 ZERO UNLESS C/A CROSSES BNDY
6#MG LDX 4 VENT2(3) [START O6 CONTROL AREA
6*76 ADN 4 3
6*LQ LDX 0 4
6B6B ANDN 0 #1777
6BL2 BXGE 0 JTHREE,XCLEAR [J IF 1ST 4 C/A WDS DONT CROSS BNDY
6C5L ERX 4 0 [X4:= O/P ADDR OF 1ST WD IN NEW PAGE
6D4W CALL 7 ZADDRESS [X4:= ABS ADDR OF 1ST WD IN NEW PAGE
6DJG STO 4 VENT6(3) [REMEMBER THIS FOR EVENT6
6F46 XCLEAR
6FHQ CLEAR FX2,0 [CLEAR LOCKD6WN ENTRIES FOR C/A PAGES
6G3B )
6GH2 MHUNTW 1,APERI,APERIRES
6H2L FPERENTA 1,6,XMISS
6HG= SMO 1(1)
6H^W LDN 5 EVENT1-CHAINADD [ADDR OF EVENT1 OF AOLPT
6JFG LDN 4 VENT1(3)
6J^6 MOVE 4 VENTSZ [MOVE IN EVENT WORDS TO AOLPT
6KDQ FREECORE 3 [FREE DATA BLOCK
6KYB LINKSET 2,XLINK(1) [SET LINK IN PCA
6LD2 #SKI K6MONRESUM>699-699
6LXL TRACE ATYPE(2),AOLPT
6MC= LDX 2 5
6MWW SBN 2 EVENT1
6NBG FPUT [PUT AOLPT ON LIST
6NW6 COOR1X [GO TO SLEEP
6P*Q OPCA LDN 5 EVENT1(2)
6PTB LDN 4 VENT1(3)
6Q*2 MOVE 4 6 [MOVE 6 EVENT WORDS TO PCA EVENT AREA
6QSL FREECORE 3 [FREE DATA BLOCK
6R#= #SKI K6MONRESUM>699-699
6RRW TRACE ATYPE(2),PCA
6S?G ACROSS OPCA,1 [GENERATE PSEUDO O/P EVENT
6SR6 #
6T=Q # ERROR EXITS
6TQB XERR1 LDN 1 ZERR1
6W=2 BRN XMESS
6W*X ...XERR1A
6WFS ... LDN 1 ZERR1A
6WKP ... BRN XMESS
6WPL XERR3 WORDFIN
6X9= XERR3A
6XNW LDN 1 ZERR3
6Y8G XMESS SMO FX1
6YN6 LDX 4 0(1)
6^7Q COMERRX 4
6^MB XBRK COMBRKIN [BROKEN IN BEFORE MONRESUME
7272 XMISS GEOERR 1,MONRESU1 [ENTRY IN PERIRES NOT FOUND
72LL XGEO GEOERR 1,MONRESU2 [NO CORE IMAGE OR WD 8 OUT OF RESERVN
736= #
73KW # SUBROUTINES
745G #
74K6 ZGETWORD [JUST THE GETWORD MACRO
754Q SBX 7 FX1
75JB GETWORD 5,3,READ,4,6
7642 ADX 7 FX1
76HL TESTREPNOT OK,XGET1 [REPLY WILL BE RESVIOL IF NOT OK
773= EXIT 7 1
77GW XGET1 EXIT 7 0
782G #
78G6 OPERAND [X5:=OPERAND OF INSTRN IN X5(IF NEC. MODIFIED).ON ENTRY
78^Q [X2=FX2,AWORK4=PREMODIFICATION.ON EXIT X0,X3,GEN6 DESTRD,
79FB [AND AWORK4=0
79^2 LDX 0 5
7=DL SRL 0 12
7=Y= ANDN 0 3
7?CW ANDN 5 #7777
7?XG BZE 0 OPER1 [J IF INSTR NOT MODIFIED
7#C6 STO 0 GEN6
7#WQ MHUNTW 3,ADATA,CSTORE
7*BB SMO GEN6
7*W2 ADX 5 START(3) [ OTHERWISE ADD IN CNTS OF MODIF. AC.
7B*L OPER1 ADX 5 AWORK4(2) [ADD IN PREMODIFICATION
7BT= STOZ AWORK4(2)
7C#W LDX 0 AWORK1(2)
7CSG ANDN 0 #10
7D#6 BZE 0 OPER2 [J IF 15AM
7DRQ LDX 0 BITS22LS [#17777777 FOR 22AM
7F?B OPER2 ORX 0 BSP16 [#00077777 FOR 15AM
7FR2 ANDX 5 0 [TAKE ADDR MODULO 15/22 BITS(15/22AM)
7G=L EXIT 7 0
7GQ= #
7H9W ZOBEY [ENTER WITH X6=OBEY INSTR;AWORK4=PREMODIFICATION
7HPG [EXIT WITH X6=INSTR ENDING OBEY CHAIN,X1=FX1,X2=FX2,ALL
7J96 [OTHER ACCS & AWORK2 & AWORK3 DESTROYED,AWORK4=0.
7JNQ LDX 2 FX2
7K8B SBX 7 FX1
7KN2 STO 7 AWORK2(2) [DUMP LINK
7L7L LDN 0 32 [SET UPPER BOUND ON COUNT OF OBEYS
7LM= OB2 STO 0 AWORK3(2)
7M6W LDX 5 6
7MLG CALL 7 OPERAND [OPERAND OF CURRENT OBEY TO X5
7N66 LDN 6 1
7NKQ CALL 7 ZGETWORD
7P5B BRN XERR3 [USER ERROR IF OUT OF RESERVATIONS
7PK2 LDX 6 0(3) [WORD REFERENCED BY CURRENT OBEY
7Q4L LDX 0 6
7QJ= ANDX 0 XFMSK(1)
7R3W BXU 0 OBEY(1),OB1 [EXIT IF WORD NOT AN OBEY
7RHG LDX 0 AWORK3(2)
7S36 BCT 0 OB2
7SGQ BRN XERR3 [ERROR IF OBEY CHAIN > 32 DEEP
7T2B OB1 LDX 7 AWORK2(2)
7TG2 ADX 7 FX1
7T^L EXIT 7 0
7WF= #
7WYW #SKI G4
7XDG (
7XY6 ZADDRESS [JUST THE FADDRESS MACRO. ON ENTRY X4=O/P ADDRESS AND
7YCQ [HLOCK1(2)-> CORRESPONDING HLOCK ENTRY$ ON EXIT X4=
7YXB [CORRESPONDING GEORGE ADDRESS ,X0 DESTROYED,OTHERS UNCHGD
7^C2 [LINK IS X7
7^WL FADDRESS FX2,4,HLOCK1,2
82B= EXIT 7 0
82TW )
83*G #
83T6 MENDAREA 25
84#Q #END
^^^^ ...36030123000700000000