PCTLPTP851

(George Source)

Macros used: ACROSS, BXE, BXGE, BXL, COOR1, DCA, DLCA, FINDLCA, FPUT, GLPERI, HUNTACT, LOCKC, MENDAREA, MHUNTW, NUDGE, SEGENTRY, TRACE, UNLOCK

PCTLPTP851.txt
22FL    #LIS  K0PCTLPTP>K0PCT>K0ALLGEO>K0GREATGEO   
22^=    #SEG  PCTLPTP8                     [G CONSTANTINIDES
23DW                   8HPCTLPTP8   
23YG    # ENTRY POINTS  
24D6          SEGENTRY K1PCTLPTP,Z1PCTLPTP  
24XQ          MENDAREA APCTGAP,K100PCTLPTP  
25CB    [   
25X2    [ THIS SEGMENT CONTROLS THE WRITING OF DATA TO A REMOTE LINE PRINTER
26BL    [ - A 7021 OR TAPE PUNCH - A 7025   
26W=    [   
27*W    #   
27TG    XALPHA         #74                 [ALPHA & DELTA-SPLIT 
28*6    XBETA          #75                 [BETA
28SQ    ONEDAY         24*3600/K9*1000  
29#B    MODE40004      #40004   
29J8 ...ZMMD4          4                    [KEEP 1 AFTER MODE4004  
29S2    #   
2=?L    #   
2=R=    [   
2?=W    [ THIS SUBROUTINE SETS UP THE MODE *3 CONTROL AREA IN THE MOP ACTIVITY  
2?QG    [   
2#=6    PREPERI 
2#PQ          LDX   2  FX2  
2*9B          LDX   4  AWORK2(2)           [GET THE LINE NUMBER.
2*P2    PREPERI1
2B8L          FINDLCA  ,4                  [GET POINTER TO THE LCA IN X1.   
2BN=          SRC   4  9                   [LINE NUMBER TO TOP 9 BITS.  
2C7W          DCA      ,STO,4,MODE  
2CMG          LDN   0  1
2D76          DLCA     1,DLA,0,MODE 
2DLQ          LDN   0  2
2F6B          DLCA     1,DLA,0,MODE2
2FL2          EXIT  7  0
2G5L    #   
2GK=    PERI  LDN   0  80                  [SET UP THE SPOUT.   
2H4W          DLCA     1,DLA,0,COUNT2   
2HJG          LDN   0  ENQOUT(3)
2J46          DLCA     1,STO,0,CTSA2
2JHQ    PERI2 SBX   7  FX1                 [ERROR RETRANSMISSIONS RE-JOIN HERE. 
2K3B          LDN   0  128                 [SET UP THE CURRENT AREA.
2KH2          DLCA     1,DLA,0,COUNT
2L2L          DLCA     1,STO,5,CTSA 
2LG=          LDN   0  INREP1(3)
2L^W          DLCA     1,STO,0,CREP        [PRE-EMPT OUR LOADING UP THE LCA.
2MFG          LDN   0  INREP2(3)
2M^6          DLCA     1,STO,0,CREP2
2NDQ    PERI1 GLPERI
2NYB    WAIT2 CALL  1  ZHUNTALCB
2PD2          LDX   0  GTIM(2)  
2PXL          BPZ   0  WAIT3
2QC=          LDX   0  JTIME
2QWW          STO   0  GTIM(2)  
2RBG    WAIT3 LDX   0  GSIGN
2RW6          ORS   0  GWAIT(2) 
2S*Q          COOR1 
2STB          LDXC  0  INREP1(3)
2T*2          BCS      WAIT2
2TSL          LDX   4  INREP2(3)           [READ REPLY WORD.
2W#=          ADXC  0  0
2WRW          BCS      ZINOP2              [J. IF TIMED-OUT ON WRITE.   
2X?G          SLC   0  4
2XR6          BPZ   0  ZINOP2              [J. IF INOPERABLE ON WRITE.  
2Y=Q          ANDN  0  3
2YQB          BZE   0  PERI3               [J. IF NOT ERROR OR NOT-IMP. 
2YS^ ...      ANDN  0  1
2YXJ ...      BZE   0  XRRA 
2^27 ...      TRACE    4,PCTNI2 
2^4Q ...      BRN      ZINOP2   
2^7* ...XRRA  TRACE    4,PCTER2 
2^=2          LDXC  4  INREP2(3)
2^PL          SMO      FX1  
329=          BCC      (7)  
32NW    PCNCL LDX   4  AWORK2(2)           [SET UP THE DCA & J. TO CANCEL THE   
338G          SRC   4  9                   [READ.   
33N6          ORX   4  MODE40004(1) 
347Q          DCA      ,STO,4,MODE  
34MB          BRN      PERI1
3572    PERI3 BNG   4  WAIT2               [J. IF READ NOT YET TERMINATED.  
35LL          ADXC  4  4
366=          BCS      ZINOP3              [J. IF READ TIMED-OUT,   
36KW          SLC   4  4
375G          BPZ   4  ZINOP3              [OR INOPERABLE.  
37K6          SRC   4  1
384Q          ADX   7  1
38JB          BNG   4  (7)  
3942          LDEX  2  INREP2(3)
39HL          NGX   2  2                   [FIND THE STATUS REPLY CHARACTER(S). 
3=3=          BNG   6  YETX                [J. IF OUTPUTTING FROM ETXBUFF.  
3=GW          SMO      6                   [SAVE THE RESTART WORD, AS IT COULD  
3?2G          LDX   0  INTLK2(3)           [BE OVERWRITTEN BEFORE WE NOTICE 
3?G6          STO   0  INTLK4(3)           [OUTPUT FAILURE ON THIS BUFFER.  
3?^Q          LDX   0  BITS22LS            [CLEAR THE "FILLED" AND "BEING OUTPUT
3#FB          SMO      6
3#^2          ANDS  0  INTLK(3) 
3*DL    YETX  ADN   2  78   
3*Y=          BNG   2  ONLY1               [J. IF ONLY 1 CHAR. READ IN. 
3BCW          SRC   2  2
3BXG          ADN   2  ENQOUT(3)           [POINTER TO LAST TWO CHARS. READ IN. 
3CC6          BRN      STATCON  
3CWQ    ONLY1 LDCH  5  ENQOUT(3)           [IF ONLY 1 CHAR. MUST BE ALPHA SHIFT.
3DBB          SBN   5  #40                 [ALPHA CONVERSION.   
3DW2          BRN      STAT2
3F*L    #   
3FT=    [   
3G#W    [ THIS SUBROUTINE CONVERTS THE STATUS CHARACTER RECEIVED IN SHIFT FORM  
3GSG    [ IN X0 TO BIT SIGNIFICANT FORM IN X5   
3H#6    [   
3HRQ    STATENQ                            [DECODE STATUS REPLY TO INITIAL SELEC
3J?B          LDCH  0  0(2) 
3JR2          BXL   0  XBETA(1),STAT3      [J. IF ALPHA.
3K=L          LDX   5  GENQ3(3)            [GET THE 1ST. 2 CHARS. (INTERFACE
3KQ=          SRL   5  12                  [ADDRESS) INTO X5.   
3L9W          BCHX  2  STAT4
3LPG    STAT3 LDN   5  #7400               [SET UP INTERFACE ADDRESS IF ALPHA.  
3M96          ORX   5  0
3MNQ    STAT4 ERX   5  GENQ1(3)            [COMPARE INTERFACE ADDRESS REPLIED   
3N8B          ANDN  5  -1                  [WITH ADDRESS ORIGINALLY SENT.   
3NN2          BNZ   5  POLL                [RE-POLL IF NOT THE SAME.
3P7L          BCHX  2  STAT5
3PM=    STAT5 LDCH  5  0(2)                [GET NEXT CHAR.  
3Q6W          BXL   5  XALPHA(1),STAT1     [J. IF NOT SHIFT.
3QLG    #   
3R66    #   
3RKQ    STATCON 
3S5B          LDCH  0  0(2)                [GET 1ST. CHARACTER OF PAIR. 
3SK2          BCHX  2  £
3T4L          LDCH  5  0(2)                [GET 2ND.
3TJ=    STAT1 BXE   0  XBETA(1),STAT2      [J. IF BETA SHIFT.   
3W3W          SBN   5  #40                 [CONVERSION FOR ALPHA STATUS. (-#40).
3WHG          BXL   0  XBETA(1),STAT2      [J. IF WAS ALPHA.
3X36          ADN   5  #44                 [CONVERSION FOR DELTA 2 STATUS. (+4).
3XGQ          BXGE  5  XALPHA(1),STAT2     [J. IF WAS DELTA 2.  
3Y2B          SBN   5  #34                 [CONVERSION FOR DELTA 1 STATUS. (-#30
3YG2    STAT2 SRC   5  1                   [J. IF STATUS SHOWS DEVICE INOPERABLE
3Y^L          ANDN  4  1
3^F=          BPZ   5  XDEV 
3^YW          BNZ   4  (7)                 [EXIT 0 IF TRANSFER REPLY SHOWS ERROR
42DG          EXIT  7  1                   [EXIT 1 IF ALL OK.   
42Y6    #   
43CQ    ZHUNTALCB                          [FIND A7020/ALCB BLOCK.  
43XB          MHUNTW   2,A7020,ALCB 
44C2          EXIT  1  0
44WL    #   
45B=    ZHUNTALIST                         [FIND A7020/ALIST BLOCK. 
45TW          MHUNTW   3,A7020,INFORM   
46*G          LDX   2  FPTPCT(3)
46T6          SBN   2  FPTPCT   
47#Q          EXIT  1  0
47SB    #   
48#2    #   
48RL    #   
49?=    Z1PCTLPTP                          [THE ENTRY POINT TO ADDRESS THE  
49QW                                       [DEVISE AND COMMENCE OUTPUT  
4==G    #   
4=Q6          CALL  1  ZHUNTALIST          [CHECK WHETHER THE NEXT BUFFER IS FUL
4=QM ...      LDX   0  EWAIT(2) 
4=R8 ...      ANDN  0  #2000
4=RP ...      BZE   0  NRESET              [J IF ALIST NOT RESET
4=S= ...      ERS   0  EWAIT(2) 
4=SR ...      STOZ     INTLK1(2)           [REAET LAST USED BUFFER NUMBER   
4=T# ...NRESET  
4=W3 ...      LDX   0  EWAIT(2) 
4=^Y ...      ANDX  0  BIT9 
4?5T ...      BNZ   0  NSELY
4?9Q          LDX   0  INTLK1(2)
4?PB          SBN   0  ALFBUFFNUM-1 
4#92          BZE   0  OFIR 
4#NL          ADN   0  ALFBUFFNUM   
4*8=          SMO      0
4*MW    OFIR  LDXC  0  INTLK(2)            [J. IF BUFFER FULL, I.E. SAFE TO SELE
4B7G          BCS      OK2GO
4B9P ...#UNS  JSKI33
4B?Y ...(   
4BB7 ...      LDX   0  EWAIT(2) 
4BDB ...      ANDX  0  BIT11
4BGK ...      BNZ   0  OK2GO
4BJS ...)   
4BM6 ...NSELY ORX   2  GSIGN               [OTHERWISE UNSET THE FLIP BIT IF IT'S
4C6Q          ADX   3  APCTP(3)            [STILL SET, AND SET THE SECONDARY BIT
4CLB          LDCH  0  APCTID(2)
4D62          ANDX  0  APCTD(3) 
4DKL          LDCT  4  #20                 [IS THE "END" MARKER SET?
4F5=          ANDX  4  EWAIT(2) 
4FJW          ERS   0  APCTD(3) 
4G4G          BNZ   4  ONLYX
4GJ6          ORS   0  APCTX(3) 
4H3Q          BRN      NOPUT
4HHB    ONLYX LDCT  0  #10                 [SET THE OUTPUT FINISHED MARKER  
4J32          ERX   4  EWAIT(2) 
4JGL          ORS   0  4
4K2=          STOC  4  EWAIT(2) 
4KFW          BCC      NOPUT
4K^G          HUNTACT  ACTLF,2  
4LF6          FPUT  
4LYQ    NOPUT ACROSS   PCTCON,3            [REPOLL. 
4MDB    #   
4MY2    OK2GO CALL  1  ZHUNTALCB           [FIND THE LCB.   
4NCL          LDCT  6  #200                [MARKER TO SHOW WE'RE SELECTING. 
4NX=          LOCKC    2,ZHUNTALCB  
4PBW          MHUNTW   3,A7020,ALCB 
4PWG          DSA   7  GENQ1(3)            [ENQ MESSAGE 
4QB6          LDN   0  APCTERRNUM-1        [SET THE *3 SELECT.  
4QTQ          STO   0  ACOMMUNE1(2)        [ERROR TRANSFER COUNT
4R*B          LDEX  4  GUNITNO(3)          [GET THE LINE NUMBER & SAVE IT.  
4RT2          STO   4  AWORK2(2)
4S#L          CALL  7  PREPERI1            [SET UP THE DCA & FIND THE LCA.  
4SS=          LDN   0  16   
4T?W          DLCA     1,DLA,0,COUNT2   
4TRG          LDN   0  GENQ3(3) 
4W?6          DLCA     1,STO,0,CTSA2
4WQQ    REALERR                            [ERROR RETRANSMISSIONS RE-ENTER HERE.
4X=B          LDN   0  7
4XQ2          DLCA     1,DLA,0,COUNT
4Y9L          LDN   0  GENQ1(3) 
4YP=          DLCA     1,STO,0,CTSA 
4^8W          LDN   0  GREP1(3)            [SET UP THE RWA.S LAST SO THAT   
4^NG          DLCA     1,STO,0,CREP        [EXEC DOESN'T PRE-EMPT THE LOADING.  
5286          LDN   0  GREP2(3) 
52MQ          DLCA     1,STO,0,CREP2
537B    WAITY GLPERI
53M2    WAITW LDXC  0  GTIM(3)             [J. IF 2ND. TIME THROUGH AND TIME
546L          BCC      WAIT                [ALREADY SET UP FOR CURRENT TRANSFER,
54L=          LDX   0  JTIME               [OTHERWISE SET THE PERI START TIME.  
555W          STO   0  GTIM(3)  
55KG    WAIT  LDX   0  GSIGN               [MARK IT 
5656          ORS   0  GWAIT(3)            [TO BE WOKEN UP BY THE AMOP  
56JQ          COOR1                        [GO TO SLEEP DURING THE TRANSFER 
574B          LDXC  0  GREP1(3) 
57J2          BCS      WAIT 
583L          LDX   4  GREP2(3)            [GET THE READ REPLY WORD.
58H=          SLC   0  5                   [J. IF INOPERABLE.   
592W          BPZ   0  ZINOP1   
59GG          ANDN  0  #13                 [J. IF ERROR, NOT-IMP OR TIMED-OUT.  
5=26          BNZ   0  ZINOP1   
5=FQ          BNG   4  WAITW               [J. IF READ NOT YET TERMINATED.  
5=^B          ADXC  4  4                   [J. IF TIMED-OUT OR INOP. TO RE-POLL.
5?F2          BCS      POLL 
5?YL          SLC   4  4
5#D=          BPZ   4  POLL 
5#XW          SRC   4  1
5*CG          BNG   4  RERROR   
5*X6          LDN   2  GENQ3(3)            [ADDRESS OF  
5BBQ          CALL  7  STATENQ  
5BWB          BRN      RERROR              [J. IF READ WAS ERRORED. 
5CB2          SRC   5  1                   [J. IF WARNING SET.  
5CTL          BPZ   5  WARNA
5D*=          ANDN  5  1                   [J. IF ATTENTION SET.
5DSW          BZE   5  POLL 
5F#G          UNLOCK   3                   [UNLOCK THE LCB. 
5FS6    #   
5G?Q    ZBUF  CALL  1  ZHUNTALIST          [FIND THE OUTPUT BUFFER & LOCK IT.   
5GRB          LOCKC    2,ZHUNTALIST 
5H?2          CALL  1  ZHUNTALIST   
5HQL          LDX   3  2
5J==          LDX   6  INTLK1(3)           [STEP ON 
5JPW    ZLP1  CALL  0  NEXT                [GET NEXT BUFFER.
5JQ5 ...      LDX   0  EWAIT(3) 
5JQ# ...      ANDN  0  #2000
5JQH ...      BZE   0  NCHAN               [J IF ALIST NOT RESET
5JQQ ...      ERS   0  EWAIT(3) 
5JQ^ ...      STOZ     INTLK1(3)           [RESET NUMBER OF LAST EMPTIED BUFFER 
5JR8 ...      LDN   6  0
5JRC ...      BRN   ZLP1           [TRY WITH RESET BUFFER NUMBER
5JRL ...NCHAN   
5JS5 ...#UNS  JSKI33
5JW# ...(   
5JYH ...      LDX   0  EWAIT(3) 
5K2Q ...      ANDX  0  BIT11
5K4^ ...      BNZ   0  RESTOP   
5K78 ...)   
5K9G          UNLOCK   3                   [NOT AVAILABLE YET - UNLOCK BUFFER   
5KP6          LDX   0  GSIGN               [BLOCK, SET THE WAITING BIT & WAIT.  
5L8Q          ORS   0  EWAIT(3) 
5LNB          COOR1 
5M82          BRN      ZBUF                [TRY AGAIN.  
5MML    #   
5N7=    NEXT  SBN   6  ALFBUFFNUM-1        [GET NEXT BUFFER 
5NLW          BZE   6  NFIR 
5P6G          ADN   6  ALFBUFFNUM   
5PL6          SMO      6
5Q5Q    NFIR  LDXC  4  INTLK(3)            [J. IF NOT ALREADY FILLED
5QKB          BCC      (0)  
5R52    #   
5RJL    ZLP2  STO   6  INTLK1(3)           [UPDATE CURRENT BUFFER POINTER.  
5S4=          LDCT  0  #600                [YES - THEN SET  
5SHW          SMO      6                   [THE 'BEING OUTPUT'  
5T3G          ORS   0  INTLK(3)            [MARKER  
5TH6          SMO      6                   [SET 
5W2Q          LDX   5  INTLK(3)            [UP THE OUTPUT BUFFER ADDRESS.   
5WGB          ANDN  5  -1   
5X22          ADN   5  ACTBUFF(3)   
5XFL          CALL  7  PREPERI             [SET UP THE DCA & FIND THE LCA.  
5X^=          CALL  7  PERI                [DO THE TRANSFER.
5YDW          CALL  7  ZREP1               [TAKE ERROR ACTION.  
5YYG          LDXC  0  EWAIT(3)            [WAKE UP THE LISTFILE ACTIVITY IF
5^D6          BCC      XCLF                [IT'S WAITING FOR BUFFERS.   
5^XQ          STO   0  EWAIT(3) 
62CB          HUNTACT  ACTLF,2,3           [FIND THE LISTFILE ACTIVITY  
62X2          FPUT                         [WAKE IT UP  
63BL    XCLF  SMO      6                   [END OF MESSAGE YET? 
63W=          LDXC  0  INTLK2(3)
64*W          BCC      ZLP1                [J. FOR NEXT BUFFER IF NOT.  
64B^ ...      LDN   0  8
64C# ...#UNS  JSKI33
64CM ...      ORX   0  BIT11
64D4 ...      ANDX  0  EWAIT(3) 
64F7 ...      BZE   0  NENYE
64G= ...      LDX   0  6
64H* ...      SBN   0  ALFBUFFNUM-1 
64JD ...      BZE   0  SPFIR
64KH ...      ADN   0  ALFBUFFNUM   
64LL ...      SMO      0
64MP ...SPFIR LDXC  0  INTLK(3) 
64NS ...      BCS      NENYE
64NY ...#UNS  JSKI33
64P4 ...(   
64P8 ...      LDX   0  BIT11
64P# ...      ANDX  0  EWAIT(3) 
64PD ...      BNZ   0  RESTOP                 [J IF DISENGAGING 
64PJ ...[                                      ELSE SEND DC2
64PN ...)   
64PX ...      LDN   0  2
64R2 ...      BCHX  3  XOUT 
64RS ...NENYE SMO      6
64SL ...      LDXC  0  INTLK2(3)
64TG          ADXC  0  0                   [DO WE NEED TO DISENGAGE THE DEVICE? 
65*6          BCS      STOP 
65SQ          SRC   5  1                   [IF YES, DO WE WANT TO HOLD UP OUTPUT
66#B          BPZ   5  WARNG               [FOR ANY REASON - LIKE WARNING   
66S2          ANDN  5  1                   [OR ATTENTION
67?L          BZE   5  XATTN
67R=          LDX   2  BPTPCT(3)
68=W          SBN   2  FPTPCT   
68QG          LDXC  0  ALINESTAT(2) 
69=6          BCS      XATTN               [J. IF MOP OFF   
69PQ          LDCT  0  #100 
6=9B          ANDX  0  FINISH   
6=P2          BNZ   0  XATTN               [J. IF 'FINISH NOW' SET  
6?8L          SMO      APCTP(2) 
6?N=          LDCH  0  APCTX(2) 
6#7W          SMO      APCTP(2) 
6#MG          ANDX  0  APCTD(2) 
6*76          BNZ   0  XATTN               [J. IF O/P CONSOLE FLIPPED   
6*LQ          LDX   0  ATSLICE(2)   
6B6B          BZE   0  ZCONT               [J. IF NOT MULTIDROP 
6BL2          LDX   0  JTIME
6C5L          SBX   0  APCTCLNCT(2) 
6CK=          BPZ   0  NODAY
6D4W          ADX   0  ONEDAY(1)
6DJG    NODAY TXL   0  ATSLICE(2)   
6F46          BCC      XATTN               [J. IF TIME SLICE UP 
6FHQ    ZCONT CALL  0  NEXT                [OR NEXT BUFFER NOT FILLED. J. IF NOT
6G3B    XATTN LDN   0  #23                 [IF NOT SENDING DC3 OR DC4 SEND  
6GH2          BCHX  3  £                   [STX:C/R:ETX, (STX:NULL:ETX FOR TP), 
6H2L    XOUT  DCH   0  ETXBUFF+1(3)        [TO END THE MESSAGE. 
6HG=          ORX   6  GSIGN               [SET MARKER SO WE DON'T CLEAR INTLK W
6H^W          ANDX  3  BITS22LS 
6JFG          LDN   5  ETXBUFF(3)   
6J^6          CALL  7  PREPERI             [SET UP THE DCA & FIND THE LCA.  
6KDQ          CALL  7  PERI                [SEND THE ETX.   
6KYB          CALL  7  ZREP2               [TAKE ERROR ACTION.  
6LD2          LDX   6  INTLK1(3)           [GET THE NEXT BUFFER POINTER.
6LXL          SBN   6  ALFBUFFNUM-1 
6MC=          BZE   6  NSEC 
6MWW          ADN   6  ALFBUFFNUM   
6NBG          SMO      6
6NW6    NSEC  LDXC  0  INTLK(3)            [IS THIS BUFFER FULL?
6P*Q          BCS      POLL                [YES - REPOLL.   
6PTB    XDEAD LDCT  4  #20                 [NO - IS THE "END" MARKER SET?   
6Q2J ...#UNS  JSKI33
6Q7Q ...      ORX  4  BIT11 
6Q*2          ANDX  4  EWAIT(3) 
6QSL          BZE   4  POLL                [NO - REPOLL 
6QWJ ...#UNS  JSKI33
6QYG ...(   
6R2D ...      LDX   0  4
6R4B ...      SRL   0  1
6R6# ...)   
6R8= ...#UNS  JSKI33
6R=8 ...#SKI
6R#=          LDCT  0  #10                 [YES - UNSET IT, SET THE TRANSMISSION
6RRW          ERS   4  EWAIT(3)            [ENDED MARKER AND WAKE UP THE ACTLF. 
6S?G          LDX   2  3
6SR6          LDX   3  BPTPCT(3)
6T=Q          SBN   3  FPTPCT   
6TQB          BRN      NUDGE
6W=2    #   
6WPL    WARNA UNLOCK   3                   [WARNING SEEN AT ADDRESS STAGE:  
6X9=          CALL  1  ZHUNTALIST          [UNLOCK LCB, FIND & LOCK ALIST BLOCK.
6XNW          LDN   6  0                   [UNSET THE "SELECT PHASE" MARKER.
6Y8G          LOCKC    2,ZHUNTALIST 
6YN6          CALL  1  ZHUNTALIST   
6^7Q          LDX   3  2                   [& SET IT UP TO SEND DC3.
6^MB    #   
7272    WARNG LDN   0  #03                 [IF WARNING SEEN SEND STX/CR/DC3/ETX 
72LL          BCHX  3  XOUT                [(OR STX/NULL/DC3/ETX IF TAPE PUNCH).
736=    #   
738T ...#UNS  JSKI33
73?D ...(   
73B3 ...RESTOP  
73DL ...      ANDX  3  BITS22LS 
73H9 ...)   
73KW    STOP  LDN   0  4
745G          BCHX  3  XOUT 
74K6    #   
754Q    #   
75JB    RERROR  
7642          LDN   0  1                   [J. TO RETRANSMIT UNLESS MAXIMUM 
76HL          LDX   2  FX2                 [ERROR COUNT HAS BEEN REACHED,   
773=          SBSC  0  ACOMMUNE1(2)        [IN WHICH CASE REPOLL.   
77GW          BCS      POLL 
782G          CALL  7  PREPERI  
78G6          BRN      REALERR             [REPEAT PERI.
78^Q    #   
79FB    ZREP1 SMO      6                   [RESET THE OUTPUT BUFFER ADDRESS.
79^2          LDX   5  INTLK(3) 
7=DL          ANDN  5  -1   
7=Y=          ADN   5  ACTBUFF(3)   
7?CW          LDCT  0  #600 
7?XG          SMO      6
7#C6          ORS   0  INTLK(3) 
7#WQ          BRN      ZREP3
7*BB    ZREP2 LDN   5  ETXBUFF(3)          [SET UP THE OUTPUT BUFFER ADDRESS.   
7*W2    ZREP3 SMO      FX2  
7B*L          STO   7  AWORK3              [SAVE THE LINK.  
7BT=          CALL  7  PREPERI             [SET UP DCA & FIND THE LCA.  
7C#W          LDX   7  AWORK3(2)           [RESTORE LINK.   
7CSG          BCT   7  PERI2               [J. BACK TO S/R & STEP BACK LINK TOO.
7D#6    #   
7DRQ    XDEV  BNZ   4  ZDEV                [READ ERROR AS WELL? 
7F?B          ANDN  5  4                   [J. UNLESS DEVICE ERROR AS WELL, TO  
7FR2          BZE   5  ZDEV                [SEND "PLEASE ENGAGE",   
7G=L          BPZ   6  POLL 
7GQ=          ADXC  6  6                   [OR TO SET END MARKER IF WE'VE FINISH
7H9W          BCS      POLL 
7HPG          BRN      XDEAD
7J96    #   
7JNQ    ZDEV  LDX   2  3                   [ALIST BLOCK, OR ALCB IF IN SELECT PH
7K8B          LDX   3  BPTPCT(3)           [INFORM BLOCK POINTER.   
7KN2          SLL   6  1
7L7L          SBN   3  FPTPCT   
7LM=          BPZ   6  XETC                [J. UNLESS CAME IN ON SELECT PATH.   
7M6W          UNLOCK   2                   [UNLOCK THE LCB. 
7MLG          MHUNTW   3,A7020,INFORM      [FIND THE INFORMATION BLOCK. 
7N66          LDX   2  FPTPCT(3)           [POINTER 
7NKQ          SBN   2  FPTPCT              [TO THE 7020 BUFFER  
7P5B    XETC  LDX   1  3                   [FIND THE RECORD ENTRY FOR THIS DEVIC
7PK2          LDX   4  APCTID(2)
7Q4L          ADX   1  APCTP(3) 
7QJ=          ANDX  4  HALFTOP  
7R3W    NXT   LDX   0  APCTDEV(1)   
7RHG          ANDX  0  4
7S36          BNZ   0  XFND 
7SGQ          BDX   1  NXT  
7T2B    XFND  LDN   0  #100                [SET THE "NOTIFY OPERABILITY" MARKER.
7TG2          ORS   0  APCTDEV+1(1) 
7T^L          LDCT  0  #140                [SET THE "PLEASE ENGAGE" AND ERROR   
7WF=    NUDGE ORS   0  EWAIT(2)            [RESTART MARKER. 
7WYW          LDX   4  APCTID(2)           [THE DEVISE IDENTIFIER WORD  
7XDG          LDXC  0  EWAIT(2)            [WAKE UP THE ACTLF IF WAITING.   
7XY6          BCC      UNFLP
7YCQ          STO   0  EWAIT(2) 
7YXB          HUNTACT  ACTLF,2  
7^C2          FPUT  
7^D? ...#UNS  JSKI33
7^FJ ...(   
7^GT ...UNFLP LDX   2  FPTPCT(3)
7^J6 ...      LDN   0  #4000
7^KC ...      ANDX  0  EWAIT-FPTPCT(2)  
7^LN ...      BNZ   0  POLEZ
7^M^ ...[                                  DO NOT UNFLIP IF DISENGAGING 
7^P= ...      SRL   4  12   
7^QH ...)   
7^RS ...#UNS  JSKI33
7^T5 ...#SKI
7^WL    UNFLP SRL   4  12                  [REMOVE THE  
82B=          SMO      APCTP(3)            [FLIP
82TW          ERS   4  APCTD(3)            [BIT 
835N ...POLEZ   
83*G          BNG   6  POLE                [J. IF CAME IN FROM SELECT PATH. 
83T6          LDX   3  FPTPCT(3)           [UNLOCK THE BUFFER BLOCK.
84#Q          SBN   3  FPTPCT   
84SB    POLL  UNLOCK   3
85#2    POLE  ACROSS   PCTCON,1            [BACK TO REPOLL. 
85RL    #   
86?=    #   
86QW    #   
87=G    ZINOP1  
87Q6          BPZ   4  POLL                [J. IF READ ALREADY TERMINATED, ELSE 
889Q          LDX   4  AWORK2(2)           [SET UP CANCEL PERI & J. TO ISSUE IT.
88PB          SRC   4  9
8992          ORX   4  MODE40004(1) 
89NL          DCA      ,STO,4,MODE  
8=8=          BRN      WAITY
8=MW    #   
8?7G    ZINOP2  
8?M6          BNG   4  PCNCL               [J. IF READ NOT YET TERMINATED.  
8#6Q    ZINOP3                             [STEP BACK THE BUFFER POINTER &  
8#LB          BNG   6  POLL                [UNSET THE "BEING OUTPUT" MARKER.
8*62          LDCT  4  #200 
8*KL          SMO      6
8B5=          ERS   4  INTLK(3) 
8BJW          SBNC  6  1
8C4G          BCC      ZTM  
8CJ6          LDN   6  ALFBUFFNUM-1 
8D3Q    ZTM   STO   6  INTLK1(3)
8DHB          BRN      POLL 
8F32    #   
8FGL    #   
8G2=    #   
8GFW    #END
^^^^ ...50312000000200000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1