(George Source)
Macros used: ACROSS, BXE, BXGE, BXL, COOR1, DCA, DLCA, FINDLCA, FPUT, GLPERI, HUNTACT, LOCKC, MENDAREA, MHUNTW, NUDGE, SEGENTRY, TRACE, UNLOCK
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