CONMXA85

(George Source)

Macros used: ACROSS, ALTLENG, BXE, BXU, CHAIN, CHECKA, CJOBLOCK, COOR3, DCA, FINDLCA, FREECORE, GEOERR, GLPERI, HUNT2, HUNTMISB, IDFOFF, ILLEGALX, JLUNBUSY, LINK, LOCKC, LOCKCA, LONGCLEAR, MACCS, MENDAREA, MFREEW, MHUNTW, MURDER, OLPFIN1, PMODES, RINGTWO, SEGENTRY, SETNCORE, SETUPCORE, STEP, TOPCA1, UNPLUG, UP

CONMXA85.txt
22FL    #SEG  CONMXA                       [JOHN BAILEY.
22S3 ...#OPT  K0CONMXA=0
236D ...#LIS  K0CONMXA>K0CONMX>K0MULTIPLX>K0ALLGEO  
23DW                   8HCONMXA80   
23YG    #   
24D6    # THIS SEGMENT PERFORMS THE INITIALISATION AND CLOSE DOWN   
24XQ    # PROCEDURES FOR CONCEPTUAL MULTIPLEXORS.   
25CB    #   
25X2    #   
26BL          SEGENTRY K1CONMXA,X1CONMXA
26W=          SEGENTRY K2CONMXA,X2CONMXA
273D ...#SKI JSKI14 
278L ...      SEGENTRY K92CONMXA,X92CONMXA  
27*W    #   
27TG    #   
28*6    #   
28SQ    # K1CONMXA MONITORS THE FIRST OBJECT PROGRAM PERI TO THE CONCEPTUAL,
29#B    # CHECKS THAT THE MODE ISSUED WAS #4000 AND, IF SO, INITIALISES THE 
29S2    # OLPA, ITS DATA BLOCK (AMXOR/CONLCB) AND THE RELEVANT ENTRIES IN   
2=?L    # THE AMXOR/ALINES BLOCK ASSOCIATED WITH EACH MULTIPLEXOR ACTIVITY. 
2=R=    #   
2?=W    # K2CONMXA IS ENTERED FROM RELPER TO RELEASE THE CONCEPTUAL FROM THE
2?QG    # OBJECT PROGRAM. IT UNBUSIES ALL THE LINES, RESETS THE AMXOR/ALINES
2#=6    # ENTRIES, MARKS THE CONCEPTUAL FREE IN THE IDF AND MURDERS THE OLPA.   
2#PQ    #   
2*9B    #   
2*P2    PAIR1 LINK     CONMXA,1            [REENTRY POINT AFTER ILLEGAL 1ST.PERI
2B8L    PAIR2 LINK     CONMXC,1            [ENTRY POINT FOR TRANSFER PERIS. 
2BN=    #   
2C7W    #   
2CMG    RESV  CALL  1  XILL                [CALL ILLEGAL ROUTINE.   
2D76                   +JYNOFA             [FLAG AREA OUT OF RESERVATIONS.  
2DLQ    MODIL CALL  1  XILL                [CALL ILLEGAL ROUTINE.   
2F6B                   +JYMODE             [MODE IN ERROR.  
2FL2    XILL  MACCS    ,APETADDR(2),3      [SET REJECTED RESPONSE.  
2G5L          LDX   5  0(1)                [GET IDENTIFIER FOR ILLEGAL MESSAGE. 
2GK=          STOZ     9(3) 
2H4W          LDX   1  FX1  
2HJG          TOPCA1   PAIR1(1) 
2J46          UNPLUG                       [OBEYED FROM PCA.
2JHQ          ILLEGALX 5                   [FAIL THE O.P.   
2JJM ...#SKI JSKI14 
2JKJ ...(   
2JLF ...ZCHAPLEN
2JMB ...      BNG   1  TISIN
2JP8 ...      SRL   1  15   
2JQ5 ...      SLL   1  2
2JR2 ...      ADX   2  1
2JRX ...      BNZ   1  (0)  
2JSS ...      ADN   2  1024 
2JTP ...      EXIT  0  0
2JWL ...TISIN ADX   2  ALOGLEN(1)   
2JXH ...      EXIT  0  0
2JYD ...SEEK  MHUNTW   2,AMXOR,CHAPCOPY 
2J^* ...      EXIT  1  0
2K2= ...)   
2K3B    #   
2KH2    #   
2L2L    #   
2LG=    X1CONMXA                           [ENTRY FOR OLPA TO ANALYSE MODE #4000
2L^W          LDX   1  EVENT1(2)           [MEL ADDRESS 
2MFG          LDCH  0  ARM1-AFW1(1)        [CONTROLLING MEMBER NO,  
2M^6          STO   0  CMEMBER(2)   
2NDQ          LDX   6  EVENT2(2)           [RELATIVE ADDRESS OF O.P. CONTR. AREA
2NYB    XCOOR LDX   1  APETADDR(2)         [GET PCA ADDRESS INTO A MODIFIER.
2PD2          LOCKCA   1,6,3               [LOCK DOWN C.A., AND GET ABS. ADDRESS
2PXL          LDX   4  0(3)                [GET TYPE/MODE WORD. 
2QC=          ANDN  4  #4000               [J. IF NOT MODE #4000.   
2QWW          BZE   4  MODIL
2RBG          LDX   0  CMAXLINE(2)         [FIND LENGTH OF INTERRUPT FLAG AREA. 
2RW6          BZE   0  UPX1                [J. IF UPX.  
2S*Q          LDN   4  4
2STB          SBN   0  64   
2T*2          BNG   0  MPX1 
2TSL          LDN   4  16   
2W#=          BRN      MPX1 
2WRW    UPX1  LDN   4  1
2X?G    MPX1  ADN   3  1                   [2ND. WD. OF C.A.
2XR6          LDX   5  0(3)                [RELATIVE ADDRESS OF 1ST. WD. OF F.A.
2Y=Q          LDX   3  CMEMBER(2)          [GET CURRENT MEMBER NUMBER.  
2YQB          PMODES   3,APETADDR(2)       [EXTRACT PROGRAM MODES OF THIS MEMBER
2^=2          ANDN  3  #10                 [J. IF 22 BIT ADDRESSING.
2^PL          BNZ   3  X15AM
329=          ANDX  5  BSP16               [MASK FOR 15 BIT ADDRESSING. 
32NW    X15AM CHECKA   5,4,RESV,APETADDR(2),W,XCOOR[CHECK F.A. WITHIN O/P & LOCK
338G          STO   5  CFLAG(2)            [SAVE RELATIVE ADDRESS OF 1ST. WORD. 
33N6          MHUNTW   1,AMXOR,CONLCB      [FIND CONCEPTUAL LINE DATA BLOCK.
347Q          LDX   4  CMAXLINE(2)         [HIGHEST LINE NO. (0 IF UPX).
34MB          LDN   3  0                   [CURRENT CONCEPTUAL LINE NO. 
3572          LDX   7  GSIGN
35LL    NLINE LDCT  5  0(3)                [INSERT CURRENT CONCEP. LINE NO. 
366=          LDX   2  A1+ADDMOP(1)        [GET ADDRESS OF LINE'S AMOP(IF ANY), 
36KW          ORS   5  A1+ACTUAL(1)        [IT HAS BEEN SET WHEN IDFONLINE FOUND
375G          BZE   2  NULL1               [J. IF NO LINE IS YET ATTACHED.  
37K6          ERS   7  A1+ADDMOP(1) 
384Q          HUNT2    2,AMXOR,ALINES      [GET ALINES BLOCK.   
38JB          LDEX  0  A1+ACTUAL(1)        [GET LINE NO FROM CONLCB ENTRY   
3942          SLL   0  2
39HL          ADX   2  0
3=3=          RINGTWO  A1(1),A1(2)         [ENRING ALINES AND CONLCB ENTRIES.   
3=GW    NULL1 BZE   4  OUT                 [J. IF FINISHED. 
3?2G          ADN   1  CONRECLEN           [STEP TO NEXT ENTRY IN CONLCB.   
3?G6          ADN   3  1
3?^Q          SBN   4  1
3#FB          BRN      NLINE
3#P8 ...#SKI JSKI14<1$1 
3#^2    OUT   LDX   2  FX2                 [SET "ACCEPTED" RESPONSE IN  
3#^H ...#SKI JSKI14 
3*24 ...(   
3*2K ...OUT   LDN   2  1
3*36 ...      LDX   1  ADMULTACT
3*3M ...      LDX   1  IMOPADDR(1)  
3*48 ...      ADX   2  ICONCEP(1)   
3*4P ...      STOC  2  ICONCEP(1)   
3*4^ ...      BCS      SETED
3*5= ...      BCT   2  SETED               [J IF BLOCK EXISTS   
3*5R ...      LDX   1  KTAB+KCONMXC        [GET LTH. OF BLOCK   
3*6# ...      CALL  0  ZCHAPLEN 
3*6T ...      LDX   1  KTAB+KPROFLAG
3*7B ...      ADN   2  A1+A1
3*7X ...      CALL  0  ZCHAPLEN 
3*8= ...      LDX   3  2
3*8K ...      SETUPCORE 3,3,AMXOR,CHAPCOPY,1
3*8^ ...      LOCKC    3,SEEK              [LOCK BLOCK  
3*9G ...      MHUNTW   3,AMXOR,CHAPCOPY 
3*=3 ...      SMO      FX2  
3*=J ...      STO   3  AWORK4              [SAVE BLOCK ADDRESS  
3*?5 ...      ADN   3  A1   
3*?L ...      ACROSS   PROFLAG,92   
3*#7 ...X92CONMXA   
3*#N ...      LDX   2  AWORK4(2)
3**9 ...      LDX   3  ADMULTACT
3**Q ...      LDX   3  IMOPADDR(3)  
3*B? ...      CHAIN    2,3                 [CHAIN AFTER IMOPQ   
3*BS ...SETED   
3*C* ...      LDX   2  FX2  
3*CW ...)   
3*DL          LDX   1  FX1                 [OBJECT PROGRAM'S WORD 9.
3*Y=          MACCS    ,APETADDR(2),3   
3BCW          ORS   7  9(3) 
3BXG          OLPFIN1  PAIR2(1) 
3CC6    #   
3CWQ    #   
3DBB    #   
3DW2    X2CONMXA                           [ENTRY FROM RELPER: OBEYED FROM CPA. 
3F*L          LDN   6  4
3FT=          STO   3  AWORK1(2)           [SAVE ADDRESS OF LOCKED OLPA 
3G#W          LDX   5  JOBNO(2) 
3GSG          HUNTMISB 1,AMXOR,INTRPT      [CHECK FOR AN INTERRUPT BLOCK.   
3H#6          BNG   1  START               [NONE - NOTHING TO DO.   
3HRQ          LDX   0  INTENT(1)
3J?B          LDX   7  ALOGLEN(1)   
3JR2          LDX   6  1
3K=L          ANDN  4  #77  
3KQ=          ADN   7  -1(1)               [ADDRESS OF END OF TABLE (MOD 512).  
3L9W    TICK1 BXU   5  INTJOBNO(1),TICK2   [CHECK FOR AN ENTRY FOR THIS UNIT.   
3LPG          BXE   4  INTUNIT(1),TICK3    [X4 HOLDS UNIT NO. (C. F. RELPER).   
3M96    TICK2 ADN   1  INTRECLEN
3MNQ          BCT   0  TICK1
3N8B          BRN      START               [NO ENTRIES, OR ENTRY DELETED.   
3NN2    TICK3 SBN   7  INTRECLEN(1)        [DISTANCE TO END OF TABLE (MOD 512). 
3P7L          ANDN  7  -1   
3PM=          BZE   7  TICK4
3Q6W          LDN   4  INTTIME+INTRECLEN(1)[OTHERWISE MOVE REST OF TABLE DOWN   
3QLG          LDN   5  INTTIME(1)          [OVER DISCARDED ENTRY.   
3R66          SMO      7
3RKQ          MOVE  4  0
3S5B    TICK4 LDX   1  6
3SK2          LDX   0  INTENT(1)           [SHORTEN BLOCK.  
3T4L          SBN   0  1
3TJ=          BZE   0  TICK5               [NO ENTRIES LEFT : J. TO FREE BLOCK. 
3W3W          LDX   7  ALOGLEN(1)   
3WHG          STO   0  INTENT(1)
3X36          SBN   7  INTRECLEN
3XGQ          ALTLENG  1,7  
3Y2B          BRN      START
3YG2    TICK5 FREECORE 1
3Y^L          BRN      START
3^F=    PLOOP COOR3    #41                 [WAIT FOR 1/5 SEC. THEN TRY AGAIN.   
3^YW          LDX   3  AWORK1(2)           [OLPA ADDRESS.   
42DG    START STOZ     AWORK2(2)           [CLEAR MARKER.   
42Y6          LDX   7  CMAXLINE(3)         [HIGHEST LINE NO. (0 IF UPX).
43CQ          HUNT2    3,AMXOR,CONLCB      [FIND THE CONCEPTUAL LINE BLOCK. 
43XB          ADN   3  A1   
44C2          BZE   7  UPX2                [J. IF UPX.  
44WL    QLOOP SBN   7  1                   [STEP POINTERS.  
45B=          ADN   3  CONRECLEN
45TW    UPX2  LDX   4  BPTR(3)             [J. IF NOT RINGED.   
46*G          BZE   4  STEP 
46T6          LDX   2  ADDMOP(3)           [AMOP ADDRESS
47#Q          BZE   2  NULL2               [J. IF NULL LINE WITH STORED PERIS   
47SB          LDEX  4  ACTUAL(3)           [LINE NUMBER 
48#2          FINDLCA  ,4   
48RL          SRC   4  9                   [ISSUE CANCEL REGARDLESS OF WHETHER  
49?=          ORN   4  4                   [LINE APPEARS BUSY, SO THAT EXEC. CAN
49QW          DCA      ,STO,4,MODE         [RESET ITS INTERNAL MARKERS. 
4==G          GLPERI                       [CANCEL  
4=Q6          JLUNBUSY 1,NULL2             [J. IF ACCEPTED [NO CURRENT TRANSFERS
4?9Q          LDX   2  FX2                 [IN PROGRESS ON THE LINE 
4?PB          STO   6  AWORK2(2)           [SET "LINE STILL BUSY" MARKER.   
4#92    STEP  BNZ   7  QLOOP               [J. IF MORE LINES IN THIS PASS.  
4#NL          LDX   0  AWORK2(2)           [J. IF SOME LINES STILL BUSY.
4*8=          BNZ   0  PLOOP
4*MW    #   
4B7G          SETNCORE 4,1,IDF,CONNAME     [SET UP BLOCK CONTAINING CONCEP. NAME
4BM6          LDX   3  AWORK1(2)           [GET OLPA (LOCKED) ADDRESS.  
4C6Q          LDN   0  CNAME(3) 
4CLB          ADN   1  A1+1 
4D62          MOVE  0  3
4DKL          LDX   7  CMAXLINE(3)  
4DNQ ...#UNS  IDFMARK8  
4DRW ...      IDFOFF   (GEOERR),VAB,IDF,CONNAME,A1+1,1[UNSET "ONLINE" & "ATTACHE
4DX2 ...#UNS  IDFMARK8  
4F26 ...#SKI
4F5=          IDFOFF   VAB,IDF,CONNAME,A1+1,1[UNSET "ONLINE" & "ATTACHED" MARKER
4FJW          MFREEW   IDF,CONNAME         [IN IDF THEN GO ROUND SETTING UP ACTS
4G4G                                       [TO RESTART SYSTEM USE OF LINES  
4GJ6          HUNT2    3,AMXOR,CONLCB      [OLPA IS LOCKED : ADDRESS IN X3  
4H3Q          LDN   6  0
4HHB          ADN   3  A1   
4J32          BNZ   7  RW   
4JGL          BUX   7  RLOOP
4K2=    RW    ADN   3  CONRECLEN
4KFW    #   
4K^G    RLOOP LDXC  2  ADDMOP(3)           [J. IF LINE WAS NOT ATTACHED.
4LF6          BZE   2  STOP 
4LYQ          ADN   6  1
4MDB          HUNT2    2,AMXOR,ALINES   
4MY2          LDX   0  ACTUAL(3)
4NCL          ANDN  0  #7777
4NX=          SLL   0  2
4PBW          ADX   2  0
4PWG          LDCT  0  #634                [SET UP THE "BUSY", "SETTING UP" 
4QB6          ORS   0  A1+FOURTHWD(2)      [AND "NEEDS ACTIVITY" BITS.  
4QTQ          LDCT  0  #210                [UNSET "ATTACHED" & "ONLINE" BITS.   
4R*B          ERS   0  A1+FOURTHWD(2)   
4RT2    STOP  BCT   7  RW   
4S#L          BZE   6  NOMPX
4SS=          LDX   1  ADMULTACT           [J.IF NO ACTUAL PLEXORS  
4T?W          LDX   2  IMOPADDR(1)         [WAKE UP THE CORE REQUEST ACTIVITY   
4TRG          ADS   6  IWAKE(2)            [ADD TO IWAKE IN IMOPQUE THE NO OF   
4W?6          LONGCLEAR 2,#125,NOMPX       [ACTIVITIES TO BE WOKEN UP   
4WQQ    NOMPX CJOBLOCK 1                   [SOMETHING MORE ELABORATE MAY
4X=B          LDN   0  1                   [BE NEEDED HERE WHEN JOBS RUNNING
4XQ2          SBS   0  AEXCO(1)            [CONCEPTUALS ARE NOT NECESS. REALTIME
4XRJ ...#SKI JSKI14 
4XT6 ...(   
4XTD ...      SMO      AWORK1(2)
4XTQ ...      LDX   3  CFLAG
4XW4 ...      BNG   3  NIVK 
4XWB ...      BZE   3  NIVK 
4XWN ...      LDX   3  ADMULTACT
4XY= ...      LDX   3  IMOPADDR(3)  
4X^S ...      LDX   0  ICONCEP(3)   
4Y3B ...      BCT   0  SMLFT
4Y4Y ...      ORX   0  GSIGN
4Y6G ...SMLFT STO   0  ICONCEP(3)   
4Y7? ...NIVK
4Y84 ...)   
4Y9L          LDX   3  AWORK1(2)
4YP=          MURDER   3                   [GET RID OF THE OLPA & CONLCB.   
4^8W          UP
4^NG    NULL2 LDX   1  BPTR(3)             [DERING CONLCB ENTRY.
5286          STOZ     BPTR(3)  
52MQ          STOZ     BPTR(1)  
537B          LDX   2  FX2  
53M2          BRN      STEP                [J. FOR NEXT LINE.   
546L    #   
54L=    #   
555W    #   
55KG    #   
5656    #   
56JQ    #   
574B    VAB   GEOERR   1,IDFERROR          [ERROR IF NAME NOT RECOGNISED BY IDF.
57J2    #   
583L    #   
58H=    #SKI  K6ALLGEO>99-99
592W    (   
59GG          MENDAREA 20,K100CONMXA
5=26    )   
5=FQ    #END
^^^^ ...72127537000200000000