MONRESUM850

(George Source)

Macros used: ACROSS, BXE, BXGE, BXL, BXU, CHAIN, CHECKA, CLEAR, COMBRKIN, COMERRX, COOR1X, FADDRESS, FCAPCA, FJOCA, FJOPCA, FPCACA, FPERENTA, FPUT, FREECORE, GEOERR, GETWORD, HLSINFORM, HUNT2, JBS, LINKSET, MELPTR, MENDAREA, MHUNT, MHUNTW, PAIR, PAPARAM, PARAFREE, PARAPASS, PCAPLUG, SEGENTRY, SETNCORE, TESTREPNOT, TRACE, VFREE, WORDFIN, XCLEAR

MONRESUM850.txt
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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1