16 22FL #SEG PCTCRTR8 [G CONSTANTINIDES 11 22_= #LIS K0PCTCRTR>K0PCT>K0ALLGEO 10 23DW 8HPCTCRTR8 7 23YG # ENTRY POINTS 12 24D6 SEGENTRY K1PCTCRTR,Z1PCTCRTR 12 24XQ MENDAREA APCTGAP,K100PCTCRTR 4 25CB # 15 25X2 XCNCL #76107623 [CANCEL ETX 14 26BL XSUB #76127623 [DC4 ETX 14 26W= XDC4 #76047623 [SUB ETX 21 27*W NBIT45 #74777777 [MASK FOR UNSETTING THE DC4 & EOT BIT 11 27TG ONEDAY 24*3600/K9*1000 21 28*6 YEMODE40004 #40004000 [MODE #40004 SHIFTED LEFT 9 PLACES. 8 28JY ...XCONT +50 4 28SQ # 5 29#B TESTBUF 7 29S2 LDN 4 0 7 2=?L MVCH 3 4 5 2=R= STEST 11 2?=W BXE 0 XCNCL(1),ZCNCL 10 2?QG BXE 0 XSUB(1),ZCNCL 9 2#=6 ERX 0 XDC4(1) 8 2#PQ BNZ 0 XETX 8 2*9B ZDC4 LDCT 0 #20 9 2*P2 ORS 0 EWAIT(2) 7 2B8L EXIT 7 0 4 2BN= # 21 2C7W XETX ANDN 0 -1 [REPEAT READ IF DOESN'T END WITH ETX 8 2CMG BZE 0 (7) 14 2D76 ERN 0 #7623$#7607 [OR ETB. 8 2DLQ BNZ 0 ZENQX 7 2F6B EXIT 7 0 4 2FL2 # 4 2G5L # 14 2GK= REFIND [LOCKC 10 2H4W MHUNTW 2,A7020,ALCB 7 2HJG EXIT 1 0 4 2J46 # 21 2JHQ REFINDA [FIND THE A7020/INPUT BLOCK FOR LOCKC 11 2K3B MHUNTW 3,A7020,INFORM 9 2KH2 LDX 2 FPTPCT(3) 9 2L2L SBN 2 FPTPCT 7 2LG= EXIT 1 0 4 2L_W # 4 2MFG # 21 2M_6 # SELECT AND THEN READ FROM A REMOTE CARD OR TAPE READER ON A 7020 16 2NDQ # CONNECTED THROUGH A MULTIPLEXOR OR UNIPLEXOR 4 2NYB # 6 2PD2 Z1PCTCRTR 4 2PXL # 15 2QC= # FIRST CHECK THAT ALL BUFFERS ARE AVAILABLE. 9 2QWW CALL 1 REFINDA 11 2RBG BXU 5 APCTID(2),POLE 10 2RW6 LDX 4 BUFFNUM(2) 18 2S*Q SBX 4 FREBUFF(2) [J. IF FREBUFF < BUFFNUM 9 2STB BNZ 4 NOTYET 8 2T*2 SMO FX1 20 2TSL LDX 6 NBIT45 [UNSET THE DC4 AND EOT MARKERS 9 2W#= ANDS 6 EWAIT(2) 4 2WRW # 18 2X?G CALL 1 REFIND [FIND THE LCB & LOCK IT 9 2XR6 LOCKC 2,REFIND 10 2Y=Q MHUNTW 3,A7020,ALCB 15 2YQB LDEX 4 GUNITNO(3) [LINE NUMBER 16 2_=2 STO 4 ACOMMUNE3(2) [SAVE LINK NUMBER 8 2_PL FINDLCA ,4 16 329= SRC 4 9 [TO TOP NINE BITS 10 32NW DCA ,STO,4,MODE 7 338G LDN 0 1 10 33N6 DLCA 1,DLA,0,MODE 7 347Q LDN 0 7 10 34MB DLCA 1,DLA,0,COUNT 9 3572 LDN 0 GENQ1(3) 10 35LL DLCA 1,STO,0,CTSA 9 366= LDN 0 GREP1(3) 10 36KW DLCA 1,STO,0,CREP 16 375G DSA 7 GENQ1(3) [IN ENQ MESSAGE 6 37K6 GLPERI 8 384Q LDX 0 JTIME 9 38JB STO 0 GTIM(3) 13 3942 WCONT LDX 0 GSIGN [SET 15 39HL ORS 0 GWAIT(3) [AMOP MARKER 15 3=3= COOR1 [GO TO SLEEP 19 3=GW LDX 7 GREP1(3) [GAS TGE TRANSFER FINISHED 19 3?2G BNG 7 WCONT [NO - THEN CONTINUE WAITING 17 3?G6 UNLOCK 3 [YES - UNLOCK THE LCB 18 3?_Q SLC 7 5 [IS THE LINE INOPERABLE 8 3#FB BPZ 7 POLE 8 3#_2 ANDN 7 #13 8 3*DL BNZ 7 POLE 19 3*Y= ZLOOP CALL 1 REFINDA [FIND THE INPUT BUFFER BLOCK 15 3BCW LOCKC 2,REFINDA [& LOCK IT. 9 3BXG CALL 1 REFINDA 7 3CC6 LDX 1 3 7 3CWQ LDX 3 2 8 3DBB ZTR LDX 2 FX2 21 3DW2 LDX 4 FREBUFF(3) [J. IF AT LEAST 2 BUFFERS AVAILABLE. 7 3F*L SBNC 4 3 8 3FT= BCC YBUF0 21 3G#W UNLOCK 3 [OTHERWISE SET THE ^ASLEEP^ MARKER & 20 3GSG LDX 0 GSIGN [WAIT FOR THE CPAT TO MAKE SOME 20 3H#6 ORS 0 EWAIT(3) [MORE ROOM FOR READING IN DATA. 6 3HRQ COOR1 18 3J?B BRN ZLOOP [J. BACK TO TRY AGAIN. 4 3JR2 # 21 3K=L YBUF0 LDX 6 COMMON(3) [POINTER TO THE LAST BUFFER FILLED. 20 3KQ= SBX 6 BUFFNUM(3) [STEP ON 2 BUFFERS (CYCLICALLY). 7 3L9W ADN 6 2 17 3LPG BNG 6 YBUF1 [J FOR NORMAL CASE 18 3M96 BNZ 6 YBUF2 [J IF BUFFERS ARE 0 AND 1 20 3MNQ LDX 5 BUFFNUM(3) [BUFFERS ARE (BUFFNUM)-1 AND 0 8 3N8B BCT 5 YBUF3 10 3NN2 YBUF1 ADX 6 BUFFNUM(3) 7 3P7L YBUF2 LDX 5 6 7 3PM= SBN 5 1 18 3Q6W YBUF3 STO 6 ACOMMUNE2(2) [POINTER TO 2ND BUFFER 18 3QLG STO 5 ACOMMUNE1(2) [POINTER TO 1ST BUFFER 20 3R66 LDN 7 #42 [PRESENT READ MODE WITH WARNING 18 3RKQ LDCT 0 #200 [J IF READING SINGLE SHOT 9 3S5B ANDX 0 EWAIT(3) 8 3SK2 BNZ 0 SETCA 19 3T4L SBNC 4 2 [OR IF <5 BUFFERS ARE FREE 8 3TJ= BCS SETCA 20 3W3W LDXC 0 ALINESTAT(1) [OR IF MOPPING OFF OR ATTACHING 8 3WHG BCS SETCA 8 3X36 LDCT 0 #100 9 3XGQ ANDX 0 FINISH 19 3Y2B BNZ 0 SETCA [OR IF ^FINISH NOW^ IS SET, 9 3YG2 SMO APCTP(1) 9 3Y_L LDCH 0 APCTX(1) 9 3_F= SMO APCTP(1) 9 3_YW ANDX 0 APCTD(1) 20 42DG BNZ 0 SETCA [OR IF CONSOLE OUTPUT IS FLIPPED, 10 42Y6 LDX 0 ATSLICE(1) 17 43CQ BZE 0 ONEPT [J. IF NOT MULTIDROP 8 43XB LDX 0 JTIME 10 44C2 SBX 0 APCTCLNCT(1) 8 44WL BPZ 0 NODAY 8 45B= SMO FX1 9 45TW ADX 0 ONEDAY 10 46*G NODAY TXL 0 ATSLICE(1) 21 46T6 BCC SETCA [OR IF WE'VE FINISHED OUR TIME SLICE, 21 47#Q ONEPT LDN 7 2 [OTHERWISE USE ORDINARY READ MODE. 4 47SB # 21 48#2 SETCA SLL 5 5 [WORK OUT START ADDRESSES OF BUFFERS. 7 48RL SLL 6 5 10 49?= ADX 5 BUFFNUM(3) 10 49QW ADX 6 BUFFNUM(3) 10 4==G ADN 5 COMMON2(3) 10 4=Q6 ADN 6 COMMON2(3) 9 4=_Y ... STOZ AWORK1(2) 16 4?9Q FINDLCA ,ACOMMUNE3(2) [GET LCA POINTER 17 4?PB LDN 0 #22 [CONTINUATION READ 13 4#92 DLCA 1,DLA,0,MODE2 [MODE 16 4#NL DLCA 1,STO,6,CTSA2 [BUFFER ADDRESS 13 4*8= LDN 0 128 [AND 18 4*MW DLCA 1,DLA,0,COUNT2 [COUNT FOR 2ND. TRANSFER. 20 4B7G DLCA 1,DLA,0,COUNT [COUNT & MODE FOR 1ST. TRANSFER. 19 4BM6 RPERI DLCA 1,DLA,7,MODE [REPEATED PERIS JOIN HERE. 21 4C6Q LDN 4 INREP1(3) [SET CRWA,QRWA LAST TO PREVENT EXEC 16 4CLB DLCA 1,STO,5,CTSA [BUFFER ADDRESS 17 4D62 DLCA 1,STO,4,CREP [& RWA FOR CURRENT. 21 4DKL ADN 4 INREP2-INREP1 [FROM IMPLEMENTING PERI BEFORE LCA 21 4F5= DLCA 1,STO,4,CREP2 [HAS BEEN FULLY LOADED,AS IT MIGHT 21 4FJW LDX 7 ACOMMUNE3(2) [BE TEMPTED TO DO BY A STRAY RED REQU 20 4G4G YCNCL SRC 7 9 [PERI TO CANCEL READ JOINS HERE. 10 4GJ6 DCA ,STO,7,MODE 6 4H3Q GLPERI 8 4HHB LDX 4 JTIME 20 4J32 XWAIT LDXC 7 INREP1(3) [J IF 1ST READ NOT YET FINISHED 20 4JGL BCS WAIT1 [CHECK REPLY BEFORE WAIT TO CATER 21 4K2= LDX 0 INREP2(3) [FOR MISSED INPUT ON V SHORT RECORDS 7 4KFW LDX 2 3 8 4K_G LDX 1 FX1 7 4LF6 ADXC 7 7 9 4LYQ BCS PERINOP 7 4MDB SLC 7 4 9 4MY2 BPZ 7 PERINOP 7 4NCL SRC 7 1 8 4NX= BNG 7 REP 18 4PBW BNG 0 WAIT1 [J IF READ STILL ACTIVE 7 4PWG ADXC 0 0 8 4QB6 BCS RPOLL 7 4QTQ SLC 0 4 8 4R*B BPZ 0 RPOLL 7 4RT2 SRC 0 1 17 4S#L LDX 2 3 [BUFFER BLOCK ADDRESS 8 4SS= BPZ 0 SIM 17 4T?W SRC 7 1 [J. IF READ ERRORED. 8 4TRG BNG 7 ZENQ 7 4W?6 SRC 7 1 20 4WQQ BNG 7 RPOLL [J IF 1ST,NOT LIMITED,2ND N IMPL 7 4X=B SMO 5 18 4XQ2 LDX 0 0 [FIRST WORD OF THE BUFFER 14 4Y9L SRL 0 12 [IS IT 13 4YP= SBN 0 #7624 [EOT? 17 4_8W BZE 0 XEOT [YES - THEN BRANCH 15 4_NG SBN 0 #0001 [IS IT ENQ? 14 5286 BZE 0 ZENQ [J IF SO 9 52MQ NOSEC LDEX 7 INREP1(3) 15 537B LDN 3 124 [PREPARE TO 14 53M2 SBX 3 7 [LOOK AT 14 546L BNG 3 SUMBF [THE LAST 16 54L= SRC 3 2 [FOUR CHARACTERS 15 555W ADX 3 5 [TRANSFERED 20 55KG CALL 7 TESTBUF [HAS DC4 - CNCL BEEN TRANSFERED? 7 5656 SBX 3 5 7 56JQ SLC 3 2 8 574B SUMMK LDX 1 FX2 7 57J2 LDN 6 1 20 583L LDX 5 ACOMMUNE1(1) [REMEMBER ONLY 1 BUFFER FILLED 18 58H= SCO ORX 3 GSIGN [SET BUFFER FILLED BIT 21 592W STO 5 COMMON(2) [UPDATE POINTER TO LAST BUFFER FILLED 20 59GG SBS 6 FREBUFF(2) [AND NO OF BUFFERS LEFT VACANT 10 5=26 SMO ACOMMUNE1(1) 21 5=FQ STO 3 COMMON2(2) [SET CHARACTER COUNT FOR THIS BUFFER 7 5=_B LDX 3 2 15 5?F2 LDXC 0 EWAIT(2) [IS THE CPA 16 5?YL BCC XTR [TO BE WOKEN UP? 20 5#D= STO 0 EWAIT(2) [YES-THEN CLEAR ^WAITING^ MARK, 16 5#XW HUNTACT CPAT,2 [FIND THE CPA AND 17 5*CG FPUT [PUT IT ON THE LIST 20 5*X6 XTR LDX 1 BPTPCT(3) [GET PTR TO A7020/INFORM BLOCK 14 5BBQ LDCT 0 #020 [HAS DC4 9 5BWB SBN 1 FPTPCT 14 5CB2 ANDX 0 EWAIT(3) [OCCURED? 15 5CTL BZE 0 ZTR [JUMP IF NOT 15 5D*= LDX 4 APCTID(3) [IF IT HAS 14 5DSW SRL 45 12 [REMOVE 13 5F#G SRL 5 12 [THE 13 5FS6 SMO 5 [FLIP 13 5G?Q ERS 4 APCTD(1) [BIT 18 5GRB BRN ZTR [AND ROUND TO RECEIVE EOT 4 5H?2 # 4 5HQL SIM 14 5J== SRC 0 1 [IS THE 16 5JPW BNG 0 ZENQ [TRANSFER ERROR? 14 5K9G SRC 0 1 [HAS EOM 16 5KP6 BNG 0 RPOLL [BEEN RECEIVED? 15 5L8Q SRC 0 2 [ISOLATE THE 14 5LNB ANDN 0 #777 [COUNT 14 5M82 LDN 3 124 [POSITION 20 5MML SBX 3 0 [X3 ON THE 4TH CH FROM THE END 9 5N7= BNG 3 SECSUM 13 5NLW SRC 3 2 [FORM 19 5P6G ADX 3 6 [POINTER TO THIS CHARACTER 17 5PL6 CALL 7 TESTBUF [TEST FOR DC4 OR CNCL 16 5Q5Q SBX 3 6 [GET CHARACTER 21 5QKB SOMMK SLC 3 2 [COUNT & INSERT BUFFER FILLED MARKER. 8 5R52 LDX 1 FX2 8 5RJL ORX 3 GSIGN 19 5S4= LDX 5 ACOMMUNE2(1) [REMEMBER BOTH BUFFERS FILLED 16 5SHW SMO 5 [SET THE SECOND 16 5T3G STO 3 COMMON2(2) [BUFFER USED WORD 17 5TH6 LDN 6 2 [2 BUFFERS FILLED. 16 5W2Q LDN 3 128 [SET INITIAL READ 18 5WGB BRN SCO [SET UP FIRST BUFFER WORD 4 5X22 # 20 5XFL RPOLL LDCT 6 #120 [GIVE UP:INOP-WAITING FOR EOT? 9 5X_= ANDX 6 EWAIT(2) 8 5YDW BZE 6 XEOT1 15 5YYG XEOT LDCT 0 #10 [IF SET THE 15 5_D6 ORS 0 EWAIT(2) [EOT MARKER 7 5_XQ XEOT1 UNLOCK 2 15 62CB POLE ACROSS PCTCON,1 [NOW REPOLE 4 62X2 # 5 63BL NOTYET 21 63W= SRL 5 12 [INTERFACE BIT POSN. IN CHARACTER 3. 18 64*W ADX 3 APCTP(3) [STEP DOWN TO THIS PCT. 19 64TG ERS 5 APCTD(3) [UNSET THE PRIMARY FLIP BIT & 19 65*6 ORS 5 APCTX(3) [SET THE SECONDARY FLIP BIT. 9 65SQ ACROSS PCTCON,3 4 66#B # 5 66S2 PERINOP 8 67?L BPZ 0 RPOLL 19 67R= SCANC LDX 2 FX2 [OTHERWISE TRY TO SCRUB IT 16 68=W LDX 7 ACOMMUNE3(2) [GET THE LINE NO 17 68QG ORX 7 YEMODE40004(1) [NON-POWERFUL CANCEL. 17 69=6 BRN YCNCL [J. TO ISSUE PERI. 4 69PQ # 21 6=9B ZCNCL LDCT 0 #100 [SET THE ERROR MARKER & ROUND FOR EOT 9 6=P2 ORS 0 EWAIT(2) 17 6?8L LDX 3 2 [SAVE PTR TO BUFFER 8 6?N= BRN ZENQ 7 6#7W ZENQX LDX 3 2 8 6#MG LDX 2 FX2 10 6*76 LDX 5 ACOMMUNE1(2) 10 6*LQ LDX 6 ACOMMUNE2(2) 7 6B6B SLL 5 5 7 6BL2 SLL 6 5 10 6C5L ADX 5 BUFFNUM(3) 10 6CK= ADX 6 BUFFNUM(3) 10 6D4W ADN 5 COMMON2(3) 10 6DJG ADN 6 COMMON2(3) 8 6F46 BRN ZENQY 4 6FHQ # 19 6G3B REP BNG 0 SCANC [J IF 2ND PART STILL ACTIVE 18 6G4M ...[ INFINITE LOOP WILL OCCUR IF 7503 BEING USED WITHOUT A 7020 18 6G5Y ...[ EMULATOR PROGRAM - SO LIMIT NUMBER OF TIMES WE REPEAT PERI 7 6G79 ... LDN 0 1 9 6G8G ... ADX 0 AWORK1(2) 9 6G9R ... STO 0 AWORK1(2) 8 6G?4 ... SMO FX1 8 6G#* ... TXU 0 XCONT 8 6G*L ... BCS ZENQ 7 6GBX ... UNLOCK 3 9 6GD8 ... ACROSS PCTCON,2 4 6GFF ...[ 21 6GH2 ZENQ LDX 2 FX2 [REPEAT PERI(PARTS OF QLCA STILLVALID 21 6H2L ZENQY LDN 7 #42 [SEND WARNING TO GIVE PCT A CHANCE 17 6HG= FINDLCA ,ACOMMUNE3(2) [TO CORRECT ITSELF 8 6H_W BRN RPERI 4 6JFG # 15 6J_6 WAIT1 MHUNTW 1,A7020,ALCB [FIND THE LCB 19 6KDQ BNG 4 WAIT2 [J IF START TIME ALREADY SET 21 6KYB STO 4 GTIM(1) [STORE TIME AT WHICH PERI WAS INITIAT 17 6LD2 LDX 4 GSIGN [SET ASLEEP MARKER 9 6LXL WAIT2 ORS 4 GWAIT(1) 13 6MC= COOR1 [WAIT 17 6MWW BRN XWAIT [HAVE ANOTHER LOOK 4 6NBG # 20 6NW6 SUMBF SMO 5 [<4 CHARS READ IN:GET WHAT WE CAN 7 6P*Q LDX 0 0 16 6PTB NGX 4 3 [RIGHT JUSTIFY. 7 6Q*2 ROUND SRL 0 6 8 6QSL BCT 4 ROUND 7 6R#= ADN 3 4 16 6RRW CALL 7 STEST [CHECK FOR ETX 20 6S?G BRN SUMMK [J TO SET MARKERS FOR USED BUFFER 4 6SR6 # 5 6T=Q SECSUM 15 6TQB ADN 3 4 [RESET COUNT. 8 6W=2 BNZ 3 XAX 7 6WPL LDX 3 2 19 6X9= BRN NOSEC [J IF NOTHING IN THE BUFFER 4 6XNW XAX 7 6Y8G SMO 5 8 6YN6 LDX 5 31 7 6_7Q SRC 3 2 7 6_MB SMO 6 7 7272 LDX 6 0 7 72LL ADN 3 5 7 736= LDN 4 0 7 73KW MVCH 3 4 16 745G SMO FX2 [RESTORE X5,X6 9 74K6 LDX 5 ACOMMUNE1 8 754Q SMO FX2 9 75JB LDX 6 ACOMMUNE2 7 7642 SLL 5 5 7 76HL SLL 6 5 10 773= ADX 5 BUFFNUM(2) 10 77GW ADX 6 BUFFNUM(2) 19 782G ADN 5 COMMON2(2) [POINTERS TO THE TWO BUFFERS 18 78G6 ADN 6 COMMON2(2) [WHERE DATA HAS BEEN READ 8 78_Q CALL 7 STEST 7 79FB SBN 3 6 21 79_2 BRN SOMMK [J. TO MARK BOTH BUFFERS AS FILLED. 4 7=DL # 4 7=Y= # 4 7?CW #END 8 ____ ...24572313000300000000