22FL #LIS K0PCTCOUT>K0PCT>K0ALLGEO>K0GREATGEO 22^= #SEG PCTCOUT8 [G CONSTANTINIDES 23DW 8HPCTCOUT8 23YG # ENTRY POINTS 24D6 SEGENTRY K1PCTCOUT,Z1PCTCOUT 24XQ SEGENTRY K2PCTCOUT,Z2PCTCOUT 25CB MENDAREA APCTGAP,K100PCTCOUT 25X2 [ 26BL [ THIS SEGMENT CONTROLS THE OUTPUTING OF MESSAGES TO THE ACCEPTOR 26W= [ INTERFACE OF A REMOTE TELETYPE - A 7023. 27*W [ 27TG # 28*6 SMESTYPE 28SQ #HAL +A7020+CONSOUT,0 [MESSAGE BLOCK TYPE 29#B XCONBUFF 29S2 #HAL +CONBUFF+IREMTW,0 [ROUTING BLOCK TYPE 2=?L # 2=R= XALPHA #74 [ALPHA AND DELTA-SPLIT + 4. 2?=W XBETA #75 [BETA 2?QG # 2#=6 # 2#PQ SMESS #76227632,#76277627,#76277627 2*9B 36HTHIS TERMINAL HAS BEEN MOPPED OFF^'^ 2*P2 #27762776,#27763476,#32762076,#04762300 2B8L # 2BN= TMESS 16HEN ATTACHED^'^'^ 2C7W # 2CMG MODE40004 #40004 2D76 # 2DLQ # 2F6B [ 2FL2 [ THIS SUBROUTINE FINDS THE MESSAGE BLOCK FOR THE PCT WITH IDENTITY 2G5L [ GIVEN IN X5. THE LINK IS X7. 2GK= [ THE SUBROUTINE SEARCHES FORWARD FROM THE BLOCK POINTED AT BY X3. 2H4W [ ON EXIT X3 POINTS TO THE LAST BLOCK EXAMINED. EXITS ARE: 2HJG [ +0 IF SEARCH COMPLETELY UNSUCCESSFUL. 2J46 [ +1 IF SEARCH UNSUCCESSFUL BUT X3 PTS. TO A ROUTING BLOCK FOR THIS PCT. 2JHQ [ +2 IF SEARCH SUCCESSFUL. 2K3B [ 2KH2 PCTHUNT 2L2L LDX 3 FPTR(3) [STEP ON TO THE NEXT BLOCK 2LG= PCTH0 LDX 0 ATYPE(3) 2L^W BXE 0 SMESTYPE(1),PCTH2 [J. IF MESSAGE BLOCK 2MFG BXE 0 XCONBUFF(1),PCTH1 [OR ROUTING BLOCK. 2M^6 BXL 0 CACT,PCTHUNT [J. IF NOT END OF ACTIVITY. 2NDQ EXIT 7 0 [FINISHED SEARCH. 2NYB PCTH1 LDX 0 5 [COMPARE IDENTIFIER STRINGS. 2PD2 SLC 0 12 2PXL ERX 0 A1+2(3) 2QC= ANDN 0 -1 2QWW BNZ 0 PCTHUNT [J. IF NPT THIS PCT. 2RBG EXIT 7 1 2RW6 PCTH2 BXU 5 CIDENTM(3),PCTHUNT [J. IF NOT THIS PCT. 2S*Q EXIT 7 2 2STB [TO IT 2T*2 # 2TSL # 2W#= [ 2WRW [ THIS SUBROUTINE SETS UP THE MODE *3 CONTROL AREA IN THE MOP ACTIVITY 2X?G [ REPERI DECIDES WHETHER TO REPEAT THE PERI OR RE-POLL IN THE ERROR CASE 2XR6 [ 2Y=Q REPERI 2YQB LDN 0 1 [J. TO RE-POLL (I.E. TREAT TERMINAL 2^=2 LDX 2 FX2 [AS INOPERABLE) IF THE MAXIMUM 2^PL SBSC 0 ACOMMUNE1(2) [ERROR REPEAT COUNT HAS BEEN EXCEDED. 329= BCS POLL 32NW [ 338G PREPERI 33N6 SLC 4 9 [LINE NUMBER. 347Q PREPERI1 34MB FINDLCA ,4 3572 SRC 4 9 [LINE TO TOP 9 BITS. 35LL DCA ,STO,4,MODE 366= LDN 0 1 36KW DLCA 1,DLA,0,MODE 375G LDN 0 2 37K6 DLCA 1,DLA,0,MODE2 384Q EXIT 7 0 38JB # 3942 [ 39HL [ THIS SUBROUTINE SETS UP THE DCA FOR CANCELLING READS. 3=3= [ 3=GW ZCNCL ORX 4 MODE40004(1) [ADD IN CANCEL MODE, 3?2G DCA ,STO,4,MODE [& INSERT IN DCA. 3?G6 ERX 4 MODE40004(1) [CLEAR OUT MODE AGAIN. 3?^Q EXIT 7 0 3#FB [ 3#^2 [THIS S/R CONVERTS THE STATUS CHARACTER RECEIVED IN SHIFT FORM 3*DL [IN X0 TO BIT SIGNIFICANT FORM IN X5 3*Y= STATENQ 3BCW LDCH 0 0(2) 3BXG BXL 0 XBETA(1),STAT4 [J. IF ALPHA 3CC6 LDX 5 GENQ3(3) [GET THE 1ST. 2 CHARS. (INTERFACE 3CWQ SRL 5 12 [ADDRESS) INTO X5. 3DBB BCHX 2 STAT5 3DW2 STAT4 LDN 5 #7400 [SET UP INTERFACE ADDRESS IF ALPHA. 3F*L ORX 5 0 3FT= STAT5 ERX 5 GENQ1(3) [COMPARE INTERFACE ADDRESS REPLIED 3G#W ANDN 5 -1 [WITH ADDRESS ORIGINALLY SENT. 3GSG BNZ 5 POLL [RE-POLL IF NOT SAME. 3H#6 BCHX 2 STAT3 3HRQ # 3J?B ONLY1 LDCH 5 CENQOUT(3) [IF ONLY 1 CHAR. MUST BE ALPHA. 3JR2 LDN 7 STATOUT(1) [SET LINK. 3K=L SBN 5 #40 [ALPHA CONVERSION. 3KQ= BRN STAT2 3L9W # 3LPG STAT3 LDCH 5 0(2) 3M96 BXL 5 XALPHA(1),STAT1 [J. IF NOT SHIFT 3MNQ STATCON 3N8B LDCH 0 0(2) [GET 1ST CHARACTER OF PAIR 3NN2 BCHX 2 £ 3P7L LDCH 5 0(2) [GET 2ND 3PM= STAT1 BXE 0 XBETA(1),STAT2 [J IF BETA SHIFT 3Q6W SBN 5 #40 [CONVERSION FOR ALPHA STATUS (-#40) 3QLG BXL 0 XBETA(1),STAT2 [J IF WAS ALPHA 3R66 ADN 5 #44 [CONVERSION FOR DELTA 2 STATUS (+4) 3RKQ BXGE 5 XALPHA(1),STAT2 [J IF DELTA 2 3S5B SBN 5 #34 [CONVERSION FOR DELTA 1 STATUS (-#30) 3SK2 STAT2 3T4L SRC 5 1 3TJ= ANDN 6 1 [MASK OUT ERROR BIT FROM READ REPLY. 3W3W BPZ 5 POLL [J. IF DEVICE INOPERABLE. 3WHG BNZ 6 (7) [J. IF TRANSFER ERROR 3X36 SRC 5 1 [BRANCH 3Y2B EXIT 7 1 3YG2 REFINDA 3YPS ... HUNT2J 2,A7020,CONSOUT,,REFINDA 3Y^L ... TXU 5 CIDENTM(2) 3^9D ... BCS REFINDA [J IF NOT FOR RIGHT TERMINAL 3^F= EXIT 1 0 3^YW REFIND [LOCKC 42DG MHUNTW 2,A7020,ALCB 42Y6 EXIT 1 0 43CQ # 43XB # 44C2 Z1PCTCOUT [THE ENTRY TO SELECT THE ACCEPTOR 44WL [INTERFACE OF THE 7023, TO OUTPUT 45B= [ANY ASSEMBLED MESSAGES IN A7020/AOUT 45TW [BLOCKS AND TO REPEAT (IF NECESSARY) 46*G [FIX MESSAGES HELD IN A7020/ALIST OR 46T6 [A7020/INPUT BLOCKS. 47#Q # 47SB MHUNTW 3,A7020,ALCB [FIND THE LCB 48#2 DSA 5 GENQ1(3) [ENQ MESSAGE 48RL LDN 0 APCTERRNUM [SET THE *3 SELECT 49?= STO 0 ACOMMUNE1(2) 49QW LOCKC 3,REFIND 4==G CALL 1 REFIND 4=Q6 LDX 3 2 4?9Q LDX 1 FX1 4?PB LDX 2 FX2 4#92 LDEX 4 GUNITNO(3) [LINE NUMBER. 4#NL CALL 7 PREPERI1 [FINDLCA & SET UP MODES. 4*8= LDN 0 16 [SET UP REST OF SPOUT. 4*MW DLCA 1,DLA,0,COUNT2 4B7G LDN 0 GENQ3(3) 4BM6 DLCA 1,STO,0,CTSA2 4C6Q REALERR [REPEAT PERI COMES IN HERE. 4CLB LDN 0 7 4D62 DLCA 1,DLA,0,COUNT 4DKL LDN 0 GENQ1(3) 4F5= DLCA 1,STO,0,CTSA 4FJW LDN 0 GREP1(3) [SET RWA WORDS LAST, SO EXEC. DOESN'T 4G4G DLCA 1,STO,0,CREP [TRY TO IMPLEMENT PERI TOO SOON. 4GJ6 LDN 0 GREP2(3) 4H3Q DLCA 1,STO,0,CREP2 4HHB PERI1 GLPERI [(SHOULDN'T HAPPEN THO' FOR MODE 3). 4J32 WAIT1 LDXC 0 GTIM(3) [GTIM WILL BE -VE. ON 1ST. PASS. 4JGL BCC WAIT2 4K2= LDX 0 JTIME 4KFW STO 0 GTIM(3) 4K^G WAIT2 LDX 0 GSIGN [MARK IT 4LF6 ORS 0 GWAIT(3) [TO BE WOKEN UP BY THE AMOP 4LYQ COOR1 [GO TO SLEEP DURING THE TRANSFER 4MDB LDXC 0 GREP1(3) 4MY2 BCS WAIT2 4NCL LDX 6 GREP2(3) [2ND. REPLY WORD. 4NX= SLC 0 5 [J. TO RE-POLL IF INOP., 4PBW BPZ 0 ZINOP1 4PWG ANDN 0 #13 [OR TIMED-OUT, ERROR OR NOT-IMP. 4QB6 BNZ 0 ZINOP1 4QTQ BNG 6 WAIT1 [J. BACK TO WAIT FOR READ TERMINATION 4R*B # 4RT2 ADXC 6 6 [J. IF TIMED-OUT 4S#L BCS POLL 4SS= SLC 6 4 4T?W BPZ 6 POLL [OR INOP. TO REPOLL. 4TRG ANDN 6 3 [J. TO TRY AGAIN IF ERROR OR NOT-IMP. 4W?6 BNZ 6 RERR1 4WQQ LDN 2 GENQ3(3) [X2 POINTS TO THE STATUS CHAR. 4X=B SRC 6 1 4XQ2 BNG 6 RERR1 4Y9L CALL 7 STATENQ 4YP= BRN RERR1 4Y^4 ... BPZ 5 POLL [J IF WARNING STATUS 4^8W ANDN 5 1 4^NG UNLOCK 3 [UNLOCK THE LCB. 5286 BZE 5 POLE [RE-POLL IF ATTENTION IS SET. 52MQ MHUNTW 3,A7020,INFORM [FIND THE INFORMATION BLOCK 537B SMO APCTP(3) [STEP ON TO CURRENT PCT RECORD 53M2 LDX 5 IDUNIQUE(3) [GET THE IDENTIFIER WORD 546L STO 5 AWORK1(2) [& SAVE IT. 54L= LDN 0 APCTERRNUM 555W STO 0 ACOMMUNE1(2) 55KG CALL 7 PCTHUNT [FIND THE FIRST RELEVANT MESSAGE BLK. 5656 BRN SHALT [IF NONE - THEN THERE'S BEEN A BOOBOO 56JQ BRN SHALT 574B # 57J2 ZREP LOCKC 3,REFINDA [LOCK IT 583L CALL 1 REFINDA 58H= LDX 3 2 592W LDX 1 FX1 59GG LDX 2 FX2 5=26 CALL 7 PREPERI 5=FQ LDN 0 80 5=^B DLCA 1,DLA,0,COUNT2 [SET UP SPOUT. 5?F2 LDN 0 CENQOUT(3) 5?YL DLCA 1,STO,0,CTSA2 5#D= ZREP1 [REPEAT PERIS ENTER HERE. 5#XW LDN 0 128 5*CG DLCA 1,DLA,0,COUNT 5*X6 LDN 0 COUTBUFF(3) 5BBQ DLCA 1,STO,0,CTSA 5BWB LDN 0 COUTREP(3) [LOAD RWA.S. 5CB2 DLCA 1,STO,0,CREP 5CTL LDN 0 CINREP(3) 5D*= DLCA 1,STO,0,CREP2 5DSW PERI2 GLPERI [MODE 4 REJOINS HERE. 5F#G WAIT3 MHUNTW 1,A7020,ALCB 5FS6 LDXC 0 GTIM(1) [-VE. ON 1ST. PASS. 5G?Q BCC WAIT4 5GRB LDX 0 JTIME 5H?2 STO 0 GTIM(1) 5HQL WAIT4 LDX 0 GSIGN [SET THE 5J== ORS 0 GWAIT(1) [PCT WAITING FOR THE AMOP TO 5JPW COOR1 [PUT IT BACK ON THE LIST 5K9G LDXC 0 COUTREP(3) [J. IF WRITE NOT YET FINISHED. 5KP6 BCS WAIT3 5L8Q LDX 6 CINREP(3) [READ REPLY WORD. 5LNB ADXC 0 0 5M82 BCS ZINOP2 5MML SLC 0 4 5N7= BPZ 0 ZINOP2 5NLW ANDN 0 3 5P6G BNZ 0 ZREP2 [J. IF WRITE WAS ERRORED. 5PL6 BNG 6 WAIT3 [J. IF READ STILL ACTIVE. 5Q5Q ADXC 6 6 5QKB BCS POLL [J. IF READ TIMED-OUT. 5R52 SLC 6 4 5RJL BPZ 6 POLL [OR IF INOP. 5S4= SRC 6 1 5SHW BNG 6 ZREP4 [OR IF NOT IMPLEMENTED. 5T3G LDEX 2 CINREP(3) [READ REPLY COUNT. 5TH6 NGX 2 2 [CALCULATE 5W2Q ADN 2 78 [THE CHARACTER 5WGB BNG 2 ONLY1 [J IF ONLY 1 CHAR. READ IN 5X22 SRC 2 2 [POSITION OF THE 5XFL ADN 2 CENQOUT(3) [STATUS CHARACTER 5X^= CALL 7 STATCON [CONVERT STATUS TO INTERNAL FORM 5YDW STATOUT 5YYG BRN ZREP4 [J. IF TRANS. ERROR BUT DEVICE OK. 5^D6 LDX 2 FX2 [RESET X2 5^XQ LDX 5 AWORK1(2) [RESTORE THE PCT IDENTIFIER. 62CB NXBK STO 3 AWORK2(2) [SAVE ADDR OF NEXT BLK TO BE FREED 62X2 CALL 7 PCTHUNT [IS THERE ANOTHER MESSAGE BLOCK 63BL ORX 7 GSIGN [SET MARK FOR UNSUCCESSFUL SEARCH. 63W= BRN REMFL [X7 +VE (AS V CLEAR) IF IREMTW FOUND. 64*W FREECORE AWORK2(2) [YES - FREE PREVIOUS MESSAGE BLOCK 64TG BRN POLE [AND REPOLE 65*6 # 65SQ REMFL FREECORE AWORK2(2) [FREE THE LAST BLOCK. 66#B BPZ 7 NXBK [J. TO LOOK AGAIN IF NOT END OF CHAIN 66S2 MHUNTW 3,A7020,INFORM [FIND 67?L LDX 6 ALINESTAT(3) [THE INFORM BLOCK AND STEP TO 67R= ADX 3 APCTP(3) [THE 68=W BPZ 6 NOTMO [RELEVANT RECORD, J. IF NOT MOPPING O 68QG LDCT 0 #100 [OTHERWISE HAS MOP OFF MESSAGE ALREAD 69=6 ANDX 0 APCTSTAT(3) [BEEN OUTPUT? J. TO LEAVE OUTPUT FLIP 69PQ BZE 0 POLE [IF NOT, OTHERWISE GET THE 6=9B NOTMO LDCH 4 APCTX(3) [CONSOLE INTERFACE BIT AND UNSET 6=P2 ERS 4 APCTD(3) [THE FLIPED BIT 6?8L POLE ACROSS PCTCON,1 [NOW REPOLE 6?N= # 6#7W # 6#MG SHALT MHUNTW 3,A7020,INFORM [ERROR IF FLIPPED BUT NOT MOPPING OFF 6*76 LDXC 7 ALINESTAT(3) 6*LQ BCC NOTMOPOFF 6B6B LDN 2 FPTPCT(3) [ARE ANY ACTIVITIES STILL RUNNING 6BL2 NOTHS LDX 2 FPCT(2) [FOR THIS TERMINAL? 6C5L LDXC 0 APCTID-FPTPCT(2) 6CK= BCS NOACT [J. IF NOT, 6D4W ANDN 0 -1 [OTHERWISE UNSET THE 6DJG BXU 0 APCTP(3),NOTHS [FLIP BIT AND SET THE 6F46 ADX 3 0 [SECONDARY FLIP BIT TO 6FHQ LDCH 0 APCTX(3) [GIVE THEM A CHANCE TO 6G3B ERS 0 APCTD(3) [FINISH. 6GH2 ORS 0 APCTX(3) 6H2L ACROSS PCTCON,3 [GO TO REPOLL. 6HG= # 6H^W NOACT LDCT 0 #100 [SET THE "CONSOLE OUTPUT FINISHED" 6JFG ADX 3 APCTP(3) [BIT, SO THAT ANY FURTHER MESSAGES 6J^6 ORS 0 APCTSTAT(3) [FOR THIS TERMINAL GET REROUTED. 6KDQ ADXC 7 7 [J. IF CLOSING DOWN BECAUSE "FINISH 6KYB BCS NOTMO [NOW" HAS BEEN ORDERED. 6LD2 SETNCORE COUTBUFF+17-A1,3,A7020,CONSOUT,1 6LXL STO 5 CIDENTM(3) [SET UP A FAREWELL MESSAGE. 6M7D ... LDX 0 5 [SAVE IDENT WORD 6MC= LDN 5 SMESS(1) 6MWW LDN 6 COUTBUFF(3) 6NBG MOVE 5 16 6NW6 ADXC 7 7 [J. UNLESS ATTACHED 6P*Q ... BCC ZREPA [INSTEAD OF MOPPED OFF. 6PTB LDN 5 TMESS(1) [OVERWRITE THE "MOPPED OFF" CHARACTER 6Q*2 LDN 6 COUTBUFF+8(3) 6QSL MOVE 5 4 6R73 ...ZREPA LDX 5 0 [SET X5=CIDENTM READY FOR REFINDA 6RFD ... BRN ZREP 6RRW # 6S?G NOTMOPOFF 6SR6 GEOERR 1,NOPCTMES [FLIPPED FOR NO REASON. 6T=Q # 6TQB RERR1 CALL 7 REPERI [TEST ERROR COUNT & SET UP LCA AGAIN. 6W=2 BRN REALERR [J. TO REPEAT PERI. 6WPL # 6X9= ZREP2 BPZ 6 ZREP4 [J. IF READ ALREADY TERMINATED, 6XNW ZREP3 CALL 7 ZCNCL [OTHERWISE TRY TO CANCEL IT. 6Y8G BRN PERI2 6YN6 # 6^7Q ZREP4 CALL 7 REPERI [TEST ERROR COUNT & SET UP LCA AGAIN. 6^MB BRN ZREP1 [J. TO REPEAT PERI. 7272 # 72LL ZINOP1 736= BPZ 6 POLL [J. IF READ ALREADY TERMINATED, 73KW CALL 7 ZCNCL [OTHERWISE TRY TO CANCEL IT. 745G BRN PERI1 74K6 # 754Q ZINOP2 75JB BNG 6 ZREP3 [J. TO CANCEL READ IF STILL BUSY. 7642 POLL UNLOCK 3 [UNLOCK THE BUFFER BLOCK & RE-POLL. 76HL BRN POLE 773= # 77GW # 782G # 78G6 Z2PCTCOUT [ENTRY FOR CLEARING UP MESSAGES. 78^Q # 79FB # NOW FREE MESSAGE BLOCKS FOR THIS TERMINAL AND USE ROUTING BLOCKS 79^2 # TO RE-ROUTE THE MESSAGES TO A BACK-UP CONSOLE. 7=DL NXTM MHUNTW 3,A7020,INFORM 7=Y= CALL 7 PCTHUNT [LOOK FOR MESSAGE BLOCKS FOR THIS PCT 7?CW BRN NUP [NO MORE - END. 7?XG BRN REROUTE [ROUTING BLOCK - REROUTE THE MESSAGE. 7#C6 LDX 3 FPTR(3) 7#WQ FREECORE BPTR(3) 7*BB BRN PCTH0 [J. BACK IN FOR NEXT. 7*W2 # 7B*L REROUTE 7BT= CHAIN 3,2 [RECHAIN THE ROUTING BLOCK NEXT TO 7C#W DOWN CONSROOT,2 [THE ACTIVITY AND RE-ROUTE IT. 7CSG BRN NXTM [START AGAIN. 7D#6 # 7DRQ NUP MHUNTW 3,A7020,INFORM [GET TERMINAL RECORD AGAIN. 7F?B ADX 3 APCTP(3) 7FR2 LDCH 0 APCTX(3) [CONS O/P FLIP BIT 7G=L ORS 0 APCTD(3) 7GQ= ERS 0 APCTD(3) [ENSURE CONS O/P IS UNFLIPPED 7H9W UP 7HPG # 7J96 # 7JNQ # 7K8B #END ^^^^ ...16312340000500000000