PCTCON8

(George Source)

Macros used: ACROSS, BXE, BXL, BXU, COOR1, DCA, DLCA, DOWN, ENRINGD, FINDLCA, FPUT, FSHCODE, FSHKILL, GEOERR, GEOPACK, GLPERI, HUNTW, INFORMX, LGEOG, LINKSET, LOCKC, LONGOFF, LONGSET, LONGSTOP, MENDAREA, MHUNTW, NUDGE, OUTNUM, OUTPACK, PAIR, PCT7020, PCTFACT, PCTFIND, RERING, SEGENTRY, SUICIDE, UNLOCK, WAITSTOP

PCTCON8.txt
22FL    #LIS  K0PCTCON>K0PCT>K0ALLGEO>K0GREATGEO
22^=    #SEG  PCTCON8                      [G CONSTANTINIDES
23DW                   8HPCTCON8
23YG    # ENTRY POINTS  
24D6          SEGENTRY K1PCTCON,Z1PCTCON
24MY ...      SEGENTRY K2PCTCON,Z2PCTCON
24XQ          SEGENTRY K3PCTCON,Z3PCTCON
25CB          MENDAREA APCTGAP,K100PCTCON   
25X2    [   
26BL    [ THIS SEGMENT IS THE CENTRAL CONTROL SEGMENT FOR THE PCT ROUTINES  
26W=    [   
27*W    #   
27TG    XALPHA         #74                 [ALPHA   
28*6    XBETA          #75                 [BETA
28SQ    XDELTA         #76                 [DELTA   
29#B    XDELMAX        #40  
29S2    #   
2=?L    TABTYPE 
2=R=                                       [OUTPUT ROUTINE  
2?=W          BRN      ZLP                 [LINE PRINTER    7021
2?QG          BRN      ZCR                 [CARD READER     7022
2#=6          BRN      ZTW                 [TELE-TYPEWRITER 7023
2#PQ          BRN      ZTR                 [TAPE READER     7024
2*9B          BRN      ZTP                 [TAPE PUNCH      7025
2*P2    #   
2B8L    ZLP 
2BN=          ACROSS   PCTLPTP,1           [LINE PRINTER ROUTINE
2C7W    ZCR 
2CMG          ACROSS   PCTCRTR,1           [CARD READER ROUTINE 
2D76    ZTW 
2DLQ          ACROSS   PCTCIN,1            [TELE-TYPE INPUT ROUTINE 
2F6B    ZTR 
2FL2          ACROSS   PCTCRTR,1           [TAPE READER ROUTINE 
2G5L    ZTP 
2GK=          ACROSS   PCTLPTP,1           [TAPE PUNCH ROUTINE  
2H4W    #   
2HJG    XLINK PAIR     PCTSTART,1   
2J46    #   
2JHQ    PHUINOP        +HUINOP  
2K3B    PJINOP         +JINOP   
2KH2    ONEDAY         24*3600/K9*1000  
2L2L    YEMODE40004    #40004   
2LG=    #   
2L^W    [ THIS SUBROUTINE CHECKS WHETHER IT IS NECESSARY TO ABANDON 
2MFG    [ SYSTEM USE OF THE LINE, AND ATTEMPTS TO DO SO IF IT IS.   
2M^6    [   
2NDQ    [ IT EXITS AT LINK+1 IF NO CLOSE DOWN REQUIRED, AND AT LINK+0 IF NOT YET
2NYB    [ ABLE TO CLEAR UP BECAUSE ACTIVITIES &/OR CONSOLE OUTPUT STILL EXIST   
2PD2    [ (IF ENTRY IS FROM THE INOP. PATH IT DOESN'T BOTHER ABOUT CONSOLE O/P).
2PXL    [ IF EVERYTHING IS CLEARED UP IT DOES NOT EXIT, BUT SUICIDES INSTEAD.   
2QC=    #   
2QWW    QOFF1 ORX   5  GSIGN               [SET MARKER FOR QOFF1 ENTRY. 
2RBG          LDX   2  FX2  
2RW6    QOFF2 MHUNTW   3,A7020,INFORM   
2S*Q          LDXC  0  ALINESTAT(3)        [J. IF NOT MOPPING OFF.  
2STB          BCS      YMPOF
2T*2          LDCT  0  #100                [OR FINISHING ("FINISH NOW" BIT SET")
2TSL          ANDX  0  FINISH   
2W#=          BZE   0  QOFF5               [TO EXIT +1. 
2WRW          LDCT  0  #600                [SET THE FINISH MARKER.  
2X?G          ORS   0  ALINESTAT(3) 
2XR6    YMPOF LDX   0  JOBRING+BPTR(2)     [J. IF ACTIVITIES STILL BEING CREATED
2Y=Q          SBN   0  JOBRING(2)   
2YQB          BNZ   0  (5)  
2^=2          LDN   2  FPTPCT(3)           [J. UNLESS SOME ACTIVITIES ARE STILL 
2^PL          BXE   2  BPTPCT(3),ZMPOF     [RUNNING, IN WHICH CASE ENSURE THAT  
329=          LDCT  4  1                   [THE MOP OFF MARKER IS SET IN EACH   
32NW    STOP  LDX   2  FPCT(2)             [BUFFER BLOCK, AND THAT THE ACTIVITY 
338G          LDXC  0  APCTID-FPTPCT(2)    [IS KICKED INTO LIFE.
33N6          BCS      (5)  
347Q          ORS   4  EWAIT-FPTPCT(2)  
34MB          LDX   7  2
3572          SBN   2  FPTPCT   
35LL          LDX   1  2
366=          PCTFACT  2
36KW          LDX   0  EWAIT(1) 
375G          STOC  0  EWAIT(1) 
37K6          BCC      QOFF3               [J. UNLESS WAITING ON COOR1. 
384Q          FPUT  
38JB          BRN      QOFF4
3942    QOFF3 WAITSTOP QOFF4               [WAKE UP IF IN LONG WAIT OR DEMAND.  
39HL    QOFF4 LDX   2  7
3=3=          BRN      STOP                [J. BACK FOR NEXT.   
3=GW    #   
3?2G    QOFF5 ADN   5  1
3?G6          BRN      (5)                 [EXIT +1 (X5 MAY BE -VE : DON'T SET V
3?^Q    #   
3#FB    ZMPOF BNG   5  QOFF6               [J. IF ENTRY FROM INOP. LINE PATH.   
3#^2          HUNTW    2,A7020,CONSOUT     [J. IF TW O/P STILL TO BE DEALT WITH.
3*DL          BPZ   2  (5)  
3*Y=          LDX   2  3                   [ARE ANY INTERFACES STILL FLIPPED?   
3BCW          LDN   0  0
3BXG    NXFLP LDXC  4  APCTSTAT(2)  
3CC6          BCS      NOTOP
3CWQ          ORX   0  APCTD(2) 
3DBB          ORX   0  APCTX(2) 
3DW2    NOTOP ADNC  4  1
3F*L          ADN   2  APCTRLEN 
3FT=          BNZ   4  NXFLP
3G#W          ANDN  0  #77  
3GSG          BNZ   0  (5)  
3H#6    QOFF6 MHUNTW   3,A7020,ALCB        [CLEAR UP THE RING & DIE GRACEFULLY. 
3HRQ          STOZ     A1+BPTR(3)   
3J?B          LDX   2  A1+FPTR(3)   
3JR2          LDX   4  GSIGN
3K=L          STOZ     BPTR(2)  
3KQ=          ORS   4  FOURTHWD(2)  
3KST ...      FSHCODE  B,NOKILLA
3KXD ...(   
3L23 ...      FSHKILL   
3L4L ...NOKILLA 
3L79 ...)   
3L9W          SUICIDE   
3LPG    #   
3M96    #   
3MNQ    [ THIS SUBROUTINE SETS UP CPA ACTIVITIES FOR C/R, T/R OR CONSOLE INPUT  
3N8B    [ ENGAGES AND ACTLF'S WHEN THE L/P OR T/P ARE ENGAGED   
3NN2    [ THE ROUTINE IS CALLED FROM X7 
3P7L    [ ON ENTRY X4 CONTAINS IN CH.3. THE INTERFACE BIT POSITIONS FOR THE 
3PM=    [ ACTIVITIES WHICH NEED TO BE SET UP
3Q6W    [   
3QLG    SETACT  
3R66          SLL   4  6                   [REMOVE THE 'NO  
3RKQ          ERS   4  APCTD(2)            [ACTIVITY' BITS  
3S5B          LDX   2  FX2                 [REMEMBER THE
3SK2          STO   6  ACOMMUNE1(2)        [STATUS REPLY
3T4L          SMO      APCTP(3)            [REMEMBER THIS PCT'S IDENTIFIER WORD.
3TJ=          LDX   0  IDUNIQUE(3)  
3W3W          SBX   7  FX1                 [RELITAVISE THE CALL ADDRESS 
3WHG          STO   7  ACOMMUNE2(2)        [AND REMEMBER IT 
3X36          STO   0  ACOMMUNE3(2) 
3XGQ          LDX   2  3                   [X2 TO POINT TO THE INFORMATION BLOCK
3Y2B          LDN   6  12                  [DEVICE DESCRIPTION LENGTH   
3YG2          BRN      NWACT
3Y^L    NEWAC MHUNTW   2,A7020,INFORM      [FIND THE INFORMATION BLOCK  
3^F=    NWACT LDX   3  APCTP(2)            [SET X3 TO CURRENT PCT RECORD
3^YW          ADX   2  APCTP(2)            [GET RECORD ADDRESS  
42DG    NXACT SMO      6                   [GET 
42Y6          LDX   7  APCTDEV-2(2)        [THE DEVISE BIT  
43CQ          SRL   7  6                   [CHARACTER   
43XB          ANDX  7  4                   [IS AN ACTIVITY REQUIRED?
44C2          BNZ   7  OKGET               [YES - THEN GET IT   
44WL          SBN   6  2                   [NO - THEN TRY THE   
45B=          BNZ   6  NXACT               [NEXT DEVISE 
45TW          SBX   2  3                   [X3 TO POINT TO THE  
46*G          LDX   3  2                   [INFORMATION BLOCK   
46T6          LDX   2  FX2                 [RESET X2
47#Q          LDX   6  ACOMMUNE1(2)        [RESET X6
47SB          LDX   7  ACOMMUNE2(2)        [DATUMISE
48#2          ADX   7  FX1                 [THE LINK
48RL          LDX   2  APCTP(3)            [X2 TO RECORD
49?=          ADX   2  3                   [POINTER 
49QW          EXIT  7  0                   [FINISH  
4==G    #   
4=Q6    NOCOR MHUNTW   2,A7020,INFORM      [FIND THE INFORMATION BLOCK  
4?9Q          LDX   3  APCTP(2)            [RELATIVE PCT RECORD POINTER 
4?PB          ADX   2  APCTP(2)            [STOP TO CURRENT PCT RECORD  
4#92          SMO      6                   [ACCESS THE FIRST
4#NL          LDX   0  APCTDEV-2(2)        [DEVISE WORD 
4*8=          SRL   0  6                   [ISOLATE 
4*MW          ANDN  0  #7700               [INTERFACE BIT POSITION  
4B7G          ORS   0  APCTD(2)            [RESET THE 'NO ACTIVITY' MARKER  
4BM6          ERS   0  4                   [REMOVE THE 'SET UP' ACTIVITY BIT
4BWY ...      LDX   2  FX2  
4C6Q          BRN      MORAC               [BACK FOR THE NEXT ACTIVITY  
4CLB    OKGET   
4D62          ADX   2  6                   [POINT TO THE RECORD 
4DKL          LDX   7  APCTDEV-2(2)        [ACCESS THE BIT SIGNIFICANT CHARACTER
4F5=          DSA   3  7                   [FORM THE IDENTIFIER WORD
4FJW          LDX   0  APCTDEV-1(2)        [JUMP IF WE ARE SETTING  
4G4G          SMO      FX2                 [REMEMBER THE 2ND DEVISE RECORD  
4GJ6          STO   0  ACOMMUNE4           [THROUGH THE NEXT CO-ORDINATION  
4H3Q          BPZ   0  SETLF               [SOURCE INTERFACE?   
4HHB          LDN   5  CPAT                [ACCESS THE ACTIVITY TYPE
4J32          LDN   3  CPATLEN             [LENGTH OF A CPAT
4JGL    XGET  SLL   5  12                  [SET BLOCK TYPE WORD.
4K2=          GETACTXO NOCOR,5,3           [OPTIONAL GETCORE.   
4KFW          LDX   1  BPTR(2)             [POINTER TO THE NEW ACTIVITY 
4K^G          ENRINGD  JOBRING(1),JOBRING(2)[RING ACTIVITY INTO TEMPORARY RING. 
4LF6          LDX   0  ACOMMUNE3(2) 
4LYQ          LDX   3  ACOMMUNE4(2)        [DEVISE RECORD WORD  
4MDB          LDX   2  BPTR(2)             [POINTER TO THE NEW ACTIVITY 
4MY2          STO   0  JSOURCE1(2)         [STORE THE PCT IDENTIFIER.   
4NCL          STO   3  ACC4(2)             [STORE THE SECOND DEVISE RECORD WORD 
4NX=          STO   7  ACC5(2)             [STORE THE IDENTIFIER WORD   
4PBW          LINKSET  2,XLINK(1)          [LINK TO K1PCTSTART  
4PWG          FPUT                         [PUT THE ACTIVITY ON THE LIST
4QB6    MORAC SBN   6  2                   [HAVE ALL THE
4QTQ          BNZ   6  NEWAC               [BITS BEEN LOOKED AT?
4R*B          LDX   6  ACOMMUNE1(2)        [RESET X6
4RT2          LDX   7  ACOMMUNE2(2)        [DATUMISE
4S#L          ADX   7  FX1                 [THE LINK
4SS=          MHUNTW   3,A7020,INFORM      [REFIND THE INFORMATION BLOCK
4T?W          LDX   2  APCTP(3)            [RESET   
4TRG          ADX   2  3                   [THE POINTERS
4W?6          EXIT  7  0                   [AND EXIT
4WQQ    SETLF LDN   5  ACTLF+GREMOTE       [ACCESS LISTFILE ACTIVITY TYPE   
4X=B          LDN   3  ACTLFLEN+GREMOTELEN [LENGTH OF A REM ACTLF   
4XQ2          BRN      XGET                [NON GET THE ACTIVITY
4Y9L    #   
4YP=    #   
4^8W    [   
4^NG    [ THIS SUBROUTINE CAUSES THE PCT ACTIVITY TO WAIT. IT EXITS 1 UPON AN   
5286    [ EVENT AND EXITS 0 ON A TIME INTERUPT  
52MQ    [   
537B    PAUSE   
53M2          SBX   5  FX1                 [RELITAVISE THE CALL ADDRESS 
546L          LONGSET  #62,XFAIL           [SET WAIT FIELD  
54L=          LONGSTOP XEVENT,XWAIT        [WAIT FOR EVENT OR TIME INTERUPT 
555W    XEVENT  
55KG          ADX   5  FX1                 [DATUMISE THE CALL ADDRESS   
5656          EXIT  5  1                   [EXIT UPON EVENT 
56JQ    XWAIT LONGOFF                      [IF TIME WAKEUP - CLEAR WAIT FIELD   
574B          MHUNTW   3,A7020,INFORM      [J. IF MOP OFF HAS OCCURRED. 
57J2          LDXC  0  ALINESTAT(3) 
583L          BCS      XEVENT   
58H=          ADX   5  FX1                 [DATUMISE THE CALL ADDRESS   
592W          EXIT  5  0                   [EXIT FOR TIME INTERUPT  
59GG    XFAIL GEOERR   1,WAIT SET   
5=26    #   
5=FQ    #   
5=^B    #   
5?F2    [   
5?YL    [ THIS IS THE SUBROUTINE TO RELOCATE THE LCB, AS REQUIRED BY LOCKC MACRO
5#D=    [   
5#XW    ZFINDLCB
5*CG          MHUNTW   2,A7020,ALCB 
5*X6          EXIT  1  0
5BBQ    #   
5BWB    #   
5CB2    #   
5CTL    [   
5D*=    [ THIS IS THE 7020 POLING ROUTINE. IT SELECTS THE NEXT INTERFACE TO 
5DSW    [ BE POLED  
5F#G    [   
5FS6    Z1PCTCON
5G?Q    POLE
5GRB          MHUNTW   3,A7020,INFORM      [FIND THE INFORMATION BLOCK  
5H?2          SMO      APCTP(3)            [GET THE SECONDARY FLIP MASK.
5HQL          LDX   0  APCTX(3) 
5J==          LDX   7  HALFTOP  
5JPW          ANDN  0  #77  
5K9G          BZE   0  TIMETEST            [J. IF NOTHING TO DO 
5KP6          SMO      APCTP(3)            [OTHERWISE RESET PRIMARY 
5L8Q          ORS   0  APCTD(3)            [AND CLEAR SECONDARY.
5LNB          BRN      TIMETEST 
5M82    [   
5MML    Z3PCTCON
5N7=          MHUNTW   3,A7020,INFORM   
5NLW          NGN   7  #7701               [#77770077   
5P6G    TIMETEST
5PL6          SMO      APCTP(3)            [CLEAR "INTERFACE ACTIVE" MARKER, IF 
5Q5Q          ANDS  7  APCTX(3)            [SET (ALSO SECONDARY FLIP IF K3 ENTRY
5QKB          LDX   0  ATSLICE(3)   
5R52          BZE   0  ONEPCT              [J. IF NOT MULTIDROP 
5RJL          LDX   0  JTIME
5S4=          SBX   0  APCTCLNCT(3) 
5SHW          BPZ   0  NODAY
5T3G          ADX   0  ONEDAY(1)           [ADD IN 24 HRS. IF PAST MIDNIGHT.
5TH6    NODAY TXL   0  ATSLICE(3)   
5W2Q          BCS      ONEPCT              [J. IF TIME SLICE UP 
5WGB    NXT   SMO      APCTP(3)            [HAS THE 
5X22          LDX   0  APCTSTAT+APCTRLEN(3) [LAST MULTIDROP 
5XFL          ADN   0  1
5X^=          BZE   0  NEND                [PCT BEEN REACHED?   
5YDW          LDN   0  APCTRLEN            [NO - THEN   
5YYG          ADS   0  APCTP(3)            [STEP RELATIVE POINTER   
5^D6          BRN      NOTED
5^XQ    NEND  STOZ     APCTP(3)            [BACK TO FIRST PCT   
62CB    NOTED LDX   0  JTIME
62X2          STO   0  APCTCLNCT(3)        [TIME COUNT  
63BL    ONEPCT  
63W=          LDX   1  3
64*W          ADX   1  APCTP(3) 
64TG          LDX   7  APCTHADD(1)         [HARDWARE ADDRESS
65*6          CALL  1  ZFINDLCB            [FIND THE LINE CONTROL BLOCK,
65SQ          LOCKC    2,ZFINDLCB          [LOCK IT, & AGAIN
66#B          MHUNTW   3,A7020,ALCB        [FIND THE LINE CONTROL BLOCK 
66S2          DSA   7  GENQ1(3)            [SET HARDWARE ADDRESS IN ENQ SEQUENCE
67?L          LDN   7  APCTERRNUM   
67R=    REP 
68=W          LDX   4  GUNITNO(3)   
68QG          FINDLCA  ,4   
69=6          SLL   4  15   
69PQ          DCA      ,STO,4,MODE  
6=9B          LDN   0  #11  
6=P2          DLCA     1,DLA,0,MODE 
6?8L          LDN   0  GREP1(3) 
6?N=          DLCA     1,STO,0,CREP 
6#7W          LDN   0  7
6#MG          DLCA     1,DLA,0,COUNT
6*76          LDN   0  GENQ1(3) 
6*LQ          DLCA     1,STO,0,CTSA 
6B6B          LDN   0  2
6BL2          DLCA     1,DLA,0,MODE2
6C5L          LDN   0  GREP2(3) 
6CK=          DLCA     1,STO,0,CREP2
6D4W          LDN   0  16   
6DJG          DLCA     1,DLA,0,COUNT2   
6F46          LDN   0  GENQ3(3) 
6FHQ          DLCA     1,STO,0,CTSA2
6G3B    PERI  GLPERI
6GH2    WAIT1 LDX   0  JTIME
6H2L          STO   0  GTIM(3)  
6HG=    WAIT  LDX   0  GSIGN               [SET MARKER IN PCT'S LCB 
6H^W          ORS   0  GWAIT(3)            [WAITING FOR AMOP TO FPUT THE PCT
6JFG          COOR1                        [GO TO SLEEP 
6J^6          LDX   0  GREP1(3)            [ACCESS WRITE PART REPLY WORD
6KDQ          BNG   0  WAIT                [HAS THE PERI FINISHED?  
6KYB          ADXC  0  0
6LD2          BCS      XINOP1   
6LXL          SLC   0  4
6MC=          BPZ   0  XINOP1   
6MWW          ANDN  0  3
6NBG          LDX   4  GREP2(3) 
6NW6          BNZ   0  XERRX
6P*Q          BPZ   4  WAIT2
6PTB          LDX   0  GTIM(3)  
6Q*2          BNG   0  WAIT1
6QSL          BRN      WAIT 
6R#=    WAIT2 ADXC  4  4
6RRW          BCS      XINOP2   
6S?G          SLC   4  4
6SR6          BPZ   4  XINOP2   
6T=Q          ANDN  4  7
6TQB          BNZ   4  XERROR   
6W=2          LDCH  6  GENQ3(3) 
6WPL          BXL   6  XALPHA(1),XSHAD  
6X9=          SLL   6  6
6XNW          BCHX  3  SHADD
6Y8G    XSHAD LDN   6  #7400
6YN6    SHADD LDCH  0  GENQ3(3) 
6^7Q          ORX   6  0
6^MB          LDX   0  GENQ1(3) 
7272          ANDN  0  -1   
72LL          BXU   6  0,XERROR 
736=          BCHX  3  £
73KW          SRL   0  6
745G          LDCH  6  GENQ3(3) 
74K6          BXL   6  XALPHA(1),XSHST  
754Q          LDX   0  6
75JB          BCHX  3  £
7642          LDCH  6  GENQ3(3) 
76HL    XSHST SBNC  0  #75  
773=          BCS      YALPH
77GW          BZE   0  YOUT 
782G          SBN   6  #30  
78G6          BXL   6  XDELMAX(1),YOUT  
78^Q          ADN   6  #74  
79FB    YALPH SBN   6  #40  
79^2    YOUT  ANDX  3  BITS22LS 
7=DL          UNLOCK   3
7=Y=          CALL  5  QOFF2               [TEST FOR MOP OFF, ATTACH OR FINISH. 
7?CW          NULL                         [DON'T WORRY IF CAN'T YET BE STOPPED.
7?XG          LDX   2  APCTP(3) 
7#C6          ADX   2  3                   [STEP TO THE CURRENT PCT RECORD  
7#WQ          LDXC  0  APCTSTAT(2)         [WAS THE PCT 
7*BB          BCC      NOTOUT              [INOPERABLE? 
7*W2          LDX   0  BITS22LS            [UNSET THE   
7B*L          ANDS  0  APCTINOP(3)         ['ALL OUT' MARKER
7BT=          ANDS  0  APCTSTAT(2)         [AND THE INOP. & INACTIVE BITS, AND  
7C#W          LDN   0  1                   [ADD 1 TO THE COUNT OF ACTIVE PCTS.  
7CSG          ADS   0  APCTACT(3)   
7D#6    NOTOUT  
7DRQ          BZE   6  WAITAWYL            [J. TO WAIT IF CONSOLE INPUT PRESSED.
7F?B          LDCH  0  APCTX(2)            [GET THIS TERMINAL'S CONSOLE OUTPUT  
7FR2          BZE   0  STOCON              [INTERFACE : J. OUT IF NO CONSOLE.   
7G=L          SRL   0  1                   [CONSOLE INPUT INTERFACE IS PAIRED WI
7GQ=          ANDX  0  6                   [IS THE CONSOLE INPUT INTERFACE ACTIV
7H9W          BZE   0  STOCON              [J. IF NOT.  
7HPG          LDX   4  APCTD(2)            [IS THERE
7J96          SRL   4  6                   [ALREADY A   
7JNQ          ANDX  4  0                   [CPA FOR IT ?
7K8B          BZE   4  TESTFLIP            [J TO SEE IF FLIPPED BEFORE WAITING  
7KN2          CALL  7  SETACT              [NO - SET IT UP  
7L7L          BZE   4  WAITAWYL            [OK? - NO, THEN REPOLL IN A WHILE.   
7LM=          BRN      NEWDEV              [NOW AWAIT FLIP  
7M6W    #   
7MLG    STOCON  
7N66          BCHX  2  £                   [NO  
7NKQ          LDCH  5  APCTD(2)            [GET THE OPERABILITY FROM LAST TIME  
7P5B          LDCH  0  APCTX(2)            [& MASK FOR "LISTFILE TYPE INTERFACES
7PK2          DCH   6  APCTD(2)            [REMEMBER THE OPERABILITY
7Q4L          ANDX  5  0                   [PREVIOUSLY OPERABLE LPS & TPS.  
7QJ=          LDN   4  0
7R3W ...      LDXC  0  ALINESTAT(3)        [DON'T SET UP ANY ACTIVITIES IF  
7RHG          BCS      OFFED               [MOPPING OFF.
7S36          BCHX  2  £
7SGQ          LDCH  4  APCTD(2)            [NO-ACTIVITY MASK
7T2B    OFFED ANDX  2  BITS22LS 
7TG2          LDCH  0  APCTD(2)            [RIGHT MASK. 
7T^L          ANDX  4  0                   [WITH THE RIGHT MASK 
7WF=          ANDX  4  6                   [NOW WITH THE STATUS 
7WYW          ANDX  5  4                   [KNOCK DOWN BITS FOR LPS & TPS EXCEPT
7XDG          ERX   4  5                   [ANY WHICH HAVE ONLY JUST BECOME OPER
7XY6          BZE   4  NCO                 [ARE THERE ANY   
7YCQ          CALL  7  SETACT              [ACTIVITIES TO BE SET UP?
7YXB    NCO   LDCH  7  APCTD(2)            [PUT THE RIGHT MASK  
7^C2          ANDX  7  APCTD(2)            [WITH THE FLIP CHARACTER 
7^WL          BNZ   7  YDEVISE             [ANYTHING TO SERVISE 
82B=          BNZ   4  NEWDEV              [NO - THEN DID WE SET UP NEW ACTS?   
82TW          LDCT  0  #200                [WAS THIS
83*G          ANDX  0  APCTSTAT(2)         [PCT INACTIVE BEFORE?
83T6          BZE   0  SINAZ               [J. IF NOT   
84#Q          LDX   4  APCTACT(3)          [ARE ANY PCTS STILL ACTIVE?  
84SB          BNZ   4  POLENX   
85#2    SINAK LDX   5  APCTP(3)            [NO - POLL NEXT UNLESS ON FIRST DROP 
85RL          BNZ   5  POLENX              [IN WHICH CASE ALLOW TIME
86?=          BRN      WAITAWYL            [FOR SOMETHING TO HAPPEN.
86QW    SINACT  
87=G          LDCT  0  #200                [SET THE 
87Q6          ORS   0  APCTSTAT(2)         [MARKER TO SAY 'INACTIVE'
889Q          LDX   0  APCTACT(3)          [REDUCE  
88PB          SBN   0  1                   [THE 
8992          STO   0  APCTACT(3)          ['ACTIVE' COUNT  
89NL          BNZ   0  POLENX              [NO - GO ON  
8=8= ...      SEGENTRY K50PCTCON                          [USED BY MACRO POLLTIM
8=MW    WAITAWYL
8?7G          LDN   6  1
8?M6          BRN      TIMEWAIT 
8#6Q    TESTFLIP                           [FOR CONSOLE INPUT ONLY  
8#LB          ANDX  0  APCTD(2)            [MASK OUT FLIP BIT   
8*62          BNZ   0  SELECTCI            [J IF FLIPPED WHEN APCT WAS ON LIST  
8*KL    NEWDEV  
8B5=          CALL  5  PAUSE               [WAIT A TIME 
8BJW          BRN      NEWDEV              [CONTINUE WAITING
8C4G    SELECTCI
8CJ6          MHUNTW   3,A7020,INFORM      [FIND THE INFORMATION BLOCK  
8D3Q          LDX   2  3                   [STOP TO THE 
8DHB          ADX   2  APCTP(3)            [CURRENT PCT RECORD  
8F32          LDCT  4  #200                [WAS THE TERMINAL
8FGL          ANDX  4  APCTSTAT(2)         [INACTIVE LAST TIME  
8G2=          BZE   4  NOINACT             [IT WAS POLLED?  
8GFW          ERS   4  APCTSTAT(2)         [UNSET THE INACTIVE MARKER   
8G^G          LDN   4  1                   [AND UPDATE  
8HF6          ADS   4  APCTACT(3)          [ACTIVE PCT COUNT.   
8HYQ    NOINACT 
8JDB          LDCH  7  APCTD(2)            [FLIPED AND RIGHTED  
8JY2          ANDX  7  APCTD(2)            [CHARACTER   
8KCL          ANDX  7  6                   [WITH THE OPERABILITY CHARACTER  
8KX=          BRN      SELECT              [NOW SELECT  
8LBW    YDEVISE 
8LWG          LDCT  4  #200                [WAS THIS PCT
8MB6          ANDX  4  APCTSTAT(2)         [INACTIVE THE LAST TIME  
8MTQ          BZE   4  NOTINAC             [IT WAS POLED?   
8N*B          ERS   4  APCTSTAT(2)         [UNSET THE INACTIVE MARKER   
8NT2          LDN   4  1                   [AND 
8P#L          ADS   4  APCTACT(3)          [INCREMENT THE ACTIVE PCT COUNT. 
8PS=    NOTINAC 
8Q?W          ORX   7  6                   [FLIPPED AND 
8QRG          ERX   7  6                   [INOPERABLE INTERFACES   
8R?6          BZE   7  NOWOP               [NO - JUMP TO MASK OP.INTERFACES 
8RQQ          LDN   4  12   
8S=B    SNXT  SMO      4                   [ACCESS THE FIRST
8SQ2          LDXC  5  APCTDEV-2(2)        [DEVISE RECORD WORD  
8T9L          BCS      SONXCON             [JUMP IF CONSOLE OUTPUT  
8TP=          SRL   5  12                  [ISOLATE THE INTERFACE BIT POSITION  
8W8W          ANDX  5  7                   [JUMP IF AN ENGAGE   
8WNG          BNZ   5  SMARK               [IS REQUIRED ON THAT DEVISE  
8X86    SONX  SBN   4  2                   [ON TO   
8XMQ          BNZ   4  SNXT                [THE NEXT DEVISE 
8Y7B          BRN      NOWOP               [OR MARK THOSE DEVISES WHICH ARE 
8YM2                                       [ENGAGED 
8^6L    SONXCON 
8^L=    [X7 HAS FLIPPED AND INOP INTERFACES 
925W          SRL   5  12   
92KG          ANDX  5  7
9356          BZE   5  SONX                [J IF CONSOLE OUTPUT NOT FLIPPED 
93JQ          LDX   5  IDUNIQUE(2)         [THE TERMINAL IDENTIFIER 
944B          DOWN     PCTCOUT,2           [REROUTE ANY OUTPUT FOR INOP CONSOLE.
94J2          MHUNTW   3,A7020,INFORM      [RESET   
953L          LDX   2  3                   [X2  
95H=          ADX   2  APCTP(3)            [AND X3  
962W          BRN      SONX                [POINTERS
96GG    SMARK LDN   0  #0100               [SET THE 
9726          SMO      4                   [WAS THE 'PLEASE ENGAGE' 
97FQ          ANDX  0  APCTDEV-1(2)        [BIT SET?
97^B          BNZ   0  SONX                [JUMP IF IT WAS  
98F2          LDN   0  #0100               [IF NOT SET  
98YL          SMO      4                   [SET THIS
99D=          ORS   0  APCTDEV-1(2)        ['PLEASE ENGAGE' MARKER  
99XW          SLL   5  12                  [FORM THE DEVISE 
9=CG          ORX   5  APCTP(3)            [IDENTIFIER  
9=X6          LDX   2  3                   [FIND THE
9?BQ          PCT7020  2,5                 [7020 BUFFER BLOCK   
9?WB          LDCT  0  #040                [SET THE DISENGAGED  
9#B2          ORS   0  EWAIT(2)            [DEVISE MARKER   
9#TL          LDX   0  GSIGN               [IS THE ACTIVITY 
9**=          ANDX  0  EWAIT(2)            [WAITING FOR DATA?   
9*SW          BZE   0  RFIND               [NO - PASS ON
9B#G          ERS   0  EWAIT(2)            [REMOVE THE WAIT 
9BS6          PCTFACT  2                   [FIND THE ACTIVITY   
9C?Q          FPUT                         [AND SET IT GOING
9CRB    RFIND LDX   2  3                   [RESET BLOCK AND RECORD  
9D?2          ADX   2  APCTP(3)            [POINTERS
9DQL          BRN      SONX                [AND ON TO THE NEXT INTERFACE
9F==    NOWOP LDCH  7  APCTD(2)            [INTERFACES  
9FPW          ANDX  7  APCTD(2)            [RIGHTED AND FLIPPED 
9G9G          ANDX  7  6                   [OPERABLE TOO
9GP6          BZE   7  SINACT              [NONE TO SERVISE?
9H8Q          LDN   4  12   
9HNB    RNXT  SMO      4                   [ACCESS THE FIRST
9J82          LDXC  5  APCTDEV-2(2)        [DEVISE RECORD WORD  
9JML          BCS      RONX                [JUMP IF CONSOLE OUTPUT  
9K7=          SRL   5  12                  [JUMP IF ACTIVE  
9KLW          ANDX  5  7                   [DEVISE IS ACTIVE
9L6G          BNZ   5  REMOV               [AND OPERABLE
9LL6    RONX  SBN   4  2                   [ON TO   
9M5Q          BNZ   4  RNXT                [THE NEXT DEVISE 
9MKB          BRN      SELECT              [NOW SELECT  
9N52    REMOV LDN   0  #0100               [WAS THE 
9NJL          SMO      4                   ["PLEASE ENGAGE" 
9P4=          ANDX  0  APCTDEV-1(2)        [MARKER SET? 
9PHW          BZE   0  RONX                [IF NOT - RETURN TO TEST NEXT INTER. 
9Q3G          SMO      4                   [IF SO - REMOVE  
9QH6          ERS   0  APCTDEV-1(2)        [THE MARKER  
9R2Q          SLL   5  12                  [FIND
9RGB          ORX   5  APCTP(3)            [THE 
9S22          LDN   2  FPTPCT(3)           [RELEVANT ACTIVITY   
9SFL          PCTFIND  2,5                 [AND UNSET THE "PLEASE ENGAGE" MARKER
9S^=          SBN   2  FPTPCT   
9TDW          LDCT  0  #40  
9TYG          ERS   0  EWAIT(2) 
9WD6          NUDGE                        [WAKE UP THE ACTIVITY.   
9WXQ          LDX   2  3                   [RESET BLOCK AND RECORD  
9XCB          ADX   2  APCTP(3)            [POINTERS
9XX2          BRN      RONX                [AND ON TO THE NEXT INTERFACE
9YBL    SELECT  
9YW=          LDN   4  12                  [FIND
9^*W    NXTES SMO      4                   [THE 
9^TG          LDX   0  APCTDEV-2(2)        [HIGHEST 
=2*6          SRL   0  12                  [PRIORITY
=2SQ          ANDX  0  7                   [INTERFACE   
=3#B          BNZ   0  XFND                [REQUIRING   
=3S2          SBN   4  2                   [SEVICE  
=4?L          BNZ   4  NXTES
=4R=    SINAZ LDEX  0  APCTX(2)            [J. IF NONE. (N.B. ACTIVE INT. MARK=0
=5=W          BZE   0  SINACT   
=5QG          BRN      SINAK
=6=6    #   
=6PQ    XFND  SLL   7  6                   [SET THE "INTERFACE ACTIVE" MARKER.  
=79B          ORS   7  APCTX(2) 
=7P2          ADX   2  4                   [POINTER TO DEVICE WORD PAIR.
=88L          LDX   5  APCTDEV-2(2)        [GET THE DEVISE DESCRIPTION  
=8N=          BNG   5  TOUT                [JUMP IF TELE-TYPE OUT   
=97W          LDX   0  APCTP(3)            [FORM
=9MG          DSA   0  5                   [THE IDENTIFER WORD  
==76          ADN   3  FPTPCT              [STEP TO THE RING ELEMENT
==LQ          LDX   1  3                   [SET X1 READY FOR PCT RING SEARCH
=?6B          PCTFIND  1,5                 [FIND THE RELEVANT 7020 BUFFER   
=?L2          LDX   4  2                   [REMEMBER POINTER TO PCT RECORD  
=#5L          RERING   1,3                 [RE-RING 
=#K=                                       [AT THE HEAD OF THE PCT RING 
=*4W          LDX   2  4                   [RESTORE PCT RECORD POINTER  
=*JG          LDX   6  APCTDEV-1(2)        [GET DEVISE RECORD   
=B46          ANDN  6  #77                 [ISOLATE THE DEVISE TYPE 
=BHQ          LDX   7  APCTDEV-2(2)        [REMEMBER FIRST WORD OF DEVISE RECORD
=C3B          SBN   6  3
=CH2          BZE   6  XFND1
=D2L          LDXC  1  ALINESTAT-FPTPCT(3)  
=DG=          BCC      XFND1
=D^W          SRL   5  12   
=FFG          SMO      APCTP-FPTPCT(3)  
=F^6          ERS   5  APCTD-FPTPCT(3)  
=GDQ          BRN      WAITAWYL            [DON'T SELECT BULK DEVICES IF CLOSING
=GYB    XFND1 ADN   6  3
=HD2          SMO      6
=HXL          BRN      TABTYPE-1
=JC=    #   
=JWW    TOUT
=KBG          ACROSS   PCTCOUT,1           [FOR CONSOLE OUTPUT  
=KW6    #   
=L*Q    #   
=LTB    XINOP1  
=M*2          LDX   0  GREP2(3)            [HAS THE READ
=MSL          BPZ   0  XINOP2              [TERMINATED? 
=N#=    XINPX LDEX  4  GUNITNO(3)          [SET UP, AND ISSUE, "SOFT" CANCEL.   
=NRW          SRC   4  9
=P?G          SMO      FX1  
=PR6          ORX   4  YEMODE40004  
=Q=Q          DCA      ,STO,4,MODE  
=QQB          BRN      PERI 
=R=2    #   
=RPL    XERRX BNG   4  XINPX               [J. IF READ STILL IN PROGRESS.   
=S9=    XERROR  
=SNW          LDX   1  FX1  
=SYN ...      ANDX  3  BITS22LS 
=T8G          BCT   7  REP                 [REPEAT IF NOT YET >APCTERRNUM ERRORS
=TN6    #   
=W7Q    XINOP2  
=WMB          ANDX  3  BITS22LS 
=X72          UNLOCK   3                   [UNLOCK LCB  
=XLL    [   
=Y6=    [ THIS IS THE ENTRY POINT IF THE LINK GOES INOPERABLE WHEN A DEVISE 
=YKW    [ HAS ALREADY BEEN SELECTED 
=^5G    [   
=^*# ...Z2PCTCON
=^K6    #   
?24Q    #   
?2JB          MHUNTW   3,A7020,INFORM      [FIND THE INFORMATION BLOCK  
?342          LDX   2  APCTP(3)            [GET PCT RECORD POINTER  
?3HL          ADX   2  3                   [ADD IN ABSOLUTE ADDRESS 
?43=          LDX   0  APCTSTAT(2)         [WAS THE 
?48D ...      BPZ   0  NWINO               [J IF NOT ALREADY INOP   
?4*L ...      LDXC  0  APCTINOP(3)  
?4GS ...      BCC      POLENX              [DO NOT COUNT AGAIN UNLESS ALL INOP  
?4N2 ...      BRN      XLKINOP  
?4T8 ...NWINO   
?52G          LDCT  0  #200                [WAS THIS PCT
?5G6          ANDX  0  APCTSTAT(2)         [PREVIOUSLY INACTIVE?
?5^Q          ERS   0  APCTSTAT(2)         [UNSET INACTIVE MARKER   
?6FB          BNZ   0  SINAC               [NO-THEN GO ON   
?6^2          LDN   0  1                   [AND 
?7DL          SBS   0  APCTACT(3)          [REDUCE THE ACTIVE PCT COUNT.
?7Y=    SINAC   
?8CW          LDX   0  GSIGN               [SET INOPERABLE  
?8XG          ORS   0  APCTSTAT(2)         [MARKER  
?9C6          DOWN     PCTINOP,1           [OUTPUT INOP MESSAGE AND CLEAR UP
?9WQ          MHUNTW   3,A7020,INFORM      [REFIND THE INFORMATION BLOCK
?=BB    XLKINOP 
?=W2          LDX   0  APCTINOP(3)         [GET THE NUMBER OF 'INOP' PCT'S  
??*L          ADN   0  1                   [STEP IT 
??T=          STO   0  APCTINOP(3)         [UP BY ONE   
?##W          ANDX  0  BITS22LS            [ARE 
?#SG          SBX   0  APCTNUM(3)          [THEY
?*#6          BNZ   0  POLENX              [ALL OUT?
?*RQ          LDXC  0  APCTINOP(3)         [NO - THEN HAS THE 'ALL OUT' MESSAGE 
?B?B          BCS      OUTMESGN            [BEEN GIVEN? 
?BR2          MHUNTW   3,A7020,ALCB        [POINTER TO THE  
?C=L          LDX   2  FX2  
?CQ=          LGEOG    ,5   
?D9W          LDX   6  GUNITNO(3)          [AND THE 
?DPG    #SKI  JNL   
?F96    (   
?FNQ          GEOPACK  5,5,5
?G8B          OUTPACK  5,1,GEOPER   
?GN2    )   
?H7L    #SKI  JNL<1$1   
?HM=          OUTNUM   5,0                 [UNIT NUMBER INTO MF PARAMETER FORM  
?J6W          LDN   5  1
?JLG          LDX   3  PHUINOP(1)          [UNIT M HAS BECOME INOPERABLE.   
?K66          BZE   6  OUTMX
?KKQ          LDX   3  PJINOP(1)           [UNIT N LINE X HAS BECOME INOPERABLE.
?L5B          OUTNUM   6,0                 [LINE NUMBER INTO MF PARAMETER FORM  
?LK2    OUTMX INFORMX  5,3,1
?M4L          MHUNTW   3,A7020,INFORM      [FIND THE INFORMATION BLOCK  
?MJ=    OUTMESGN
?N3W          LDX   0  GSIGN
?NHG          STO   0  APCTINOP(3)         [RESET INOP COUNT
?P36          CALL  5  QOFF1               [TEST FOR MOP OFF, ATTACH OR FINISH. 
?PGQ          BRN      WAITAWYL 
?Q2B    #   
?QG2    TIMELOOP
?Q^L          LDN   6  APOLETIME/FONINTP   [POLE INTERVAL WHILE LINE INOP.  
?RF=    [   
?RYW    [ THIS INSTRUCTION SHOULD BE A LDX OF AN INSTALLATION PARAMETER 
?SDG    [   
?SY6    TIMEWAIT
?TCQ          LDX   2  FX2                 [RESET X2
?TXB    STILL CALL  5  PAUSE               [WAIT A BIT  
?WC2          BCT   6  STILL               [HAS THE POLETIME BEEN EXCEEDED? 
?WWL    NOW   MHUNTW   3,A7020,INFORM      [FIND THE INFORMATION BLOCK  
?XB=    POLENX  
?XFK ...      LDX   0  ATSLICE(3)   
?XJY ...      BZE   0  ZAONE               [J IF ONLY ONE 7020  
?XN? ...      SMO      APCTP(3) 
?XRL ...      LDX   0  APCTSTAT+APCTRLEN(3) 
?XW^ ...      ADN   0  1
?Y2# ...      BZE   0  ZANEN               [J IF LAST 7020  
?Y5M ...      LDN   0  APCTRLEN 
?Y92 ...      ADS   0  APCTP(3)            [POINT AT NEXT   
?Y#* ...      BRN      ZATIU
?YCN ...ZANEN STOZ     APCTP(3)            [POINT AT FIRST 7020 
?YH3 ...ZATIU LDX   0  JTIME
?YLB ...      STO   0  APCTCLNCT(3)        [UPDATE TIME ON THIS 7020
?YPP ...ZAONE   
?YT6          SMO      APCTP(3)            [YES - RESET THE PRIMARY FLIP MASK   
?^#Q          LDEX  0  APCTX(3)            [FROM THE SECONDARY. 
?^JJ ...      ANDN  0  #77  
?^SB          BZE   0  ONEPCT   
#2#2          SMO      APCTP(3) 
#2RL          ORS   0  APCTD(3) 
#3?=          SMO      APCTP(3) 
#3QW          ERS   0  APCTX(3) 
#4=G          BRN      ONEPCT   
#4Q6    #   
#59Q    #   
#5PB    #END
^^^^ ...63424777001200000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1