MOPPM84
(George Source)
Macros used: BXE, BXGE, BXL, BXU, COORDINATE, DCA, DLCA, FINDLCA, FINDPEREC, FIXTRA, GLPERI, JLUNBUSY, JWRONG, LGEOG, LNLI, OUTMOP, PMCORES, READB, SEG, SEGENTRY, SUICIDE
- MOPPM84.txt
22FL ... SEG MOPPM,,PHIL. TURNER 23YG #LIS K0MOPPM>K0POST>K0ALLGEO 248# ... SEGENTRY K1MOPPM,Z1MOPPM 24D6 # 24XQ # 25CB #DEF PMERRCNT=5 25X2 # 26BL # 2*P2 XCACT +GENERAL/8:0 2B8L XHALFTOP #77770000 2BN= XMIN1 -1 2C7W SIGN #40000000 2CMG WORKWORD 0 2D76 XFX2 0 [POINTER TO CURRENT ACTIVITY. 2DLQ YFX2 0 [POINTER TO LAST ACTIVE ACTIVITY. 2F6B PCTTWMASK #40404040 [DEFAULT FOR TW OUTPUT IS INTERFACE 4 2FL2 PCTADDRESS #7420,#7430,#7400,#7410,#7440,#7450 2G5L #7460,#7470,#7540,#7550,#7560,#7570 2GK= # 2H4W PINFORM 2HJG #HAL A7020+INFORM,0 2J46 MLIN 2JHQ #HAL AMXOR+ALINES,0 2K3B TENSECONDS 10*K9/1000 [TEN SECONDS. 2KH2 ONEDAY 3600*24/K9*1000 2KSB ... FIXTRA K50MOPPM 2L5Q ...X50MP +1*60*1000/K9 [CRUNCHTIME FOR EACH TRANSFER. 2LC6 ... FIXTRA K51MOPPM 2LNG ...X51MP +2*60*1000/K9 [CRUNCHTIME FOR WHOLE PM. ROUTINE. 2L^W MODEX #40004 2MFG TOTALTIME 0 2M^6 XALPHA #74 2NDQ XDELMAX #40 2NR7 ...#DEF TABLELIMIT=ENDFIX 2P5J ...YAMOP +ADMULTACT-ADMP 2PD2 # 2PXL OUTMOP 54H^3^*^-^*^ THE SYSTEM HAS TEMPORARILY CLOSED DOWN^*^-^8 2QC= OUTPCT 52H^"^*^*^ THE SYSTEM HAS TEMPORARILY CLOSED DOWN^,^4^# 2QWW OUTCAN 16H^" CANCEL^*^4^# [STX CANCEL N/L DC4 ETX 2RBG OUTENQ #76247000,#76250000 [EOT (ADDRESS) ENQ 2RW6 OUTLP #76227634 [STX.FORMFEED )MUST BE 2S*Q OUTEND #76047623 [DC4 ETX )IN THIS 2STB OUTTP #76227673,#76737673 [STX DEL DEL DEL)ORDER. 2T*2 # 2TSL #DEF OUTTPX=OUTTP+31 [TP OUTPUT BUFFER = 32 WORDS (128CH.) 2W#= #DEF PCTDUSTBIN=OUTTPX+1 [OVERWRITE K1MOPPM WHEN FINISHED WITH 2WRW # 2X?G # 2XR6 Z1MOPPM 2Y7L ... LDX 3 FXPM1 2YJ6 ... LDX 2 3 2YYL ...PM1 LDX 1 YAMOP(2) 2^*6 ...PM1A LDX 1 ADMP(1) [GET NEXT MOP ACTIVITY. 2^PL ... BZE 1 START [J. IF END OF LIST. 3266 ... PMCORES 1,START 32GL ... LDX 6 CPPTR(1) 32X6 ... PMCORES 6,PM1A 33?L ... STO 1 YAMOP(2) 33N6 LGEOG 6,7 347Q FINDPEREC 1,APGEOG,7 34MB BXU 1 6,PM1 [J. UNLESS CPPTR POINTS TO DEV. LIST 3572 ... LDX 1 YAMOP(2) 35LL PM3 LDX 1 FPTR(1) 366= PMCORES 1,PM1 36KW LDX 0 ATYPE(1) 375G BXGE 0 CACT,PM1 [J. IF NO ALINES BLOCK 37K6 ... SBX 0 MLIN(2) 384Q BNZ 0 PM3 38JB LNLI 6,7 3942 SLL 7 2 39HL ... STO 1 TOTALTIME(2) [USE AS TEMPORARY DUMP. 3=3= PM4 ADX 1 7 3=GW LDEX 0 A1+FOURTHWD(1) 3?2G LDCH 5 A1+FOURTHWD(1) 3?G6 LDX 1 A1+BPTR(1) 3?^Q ERN 0 CONSMACH [J. IF NOT MOP CONSOLE. 3#FB BNZ 0 PM11 3#^2 ANDN 5 #20 [J. IF NOT RINGED & NOT ATTACHED. 3*DL ORX 5 1 3*Y= BZE 5 PM10 3BCW ... LDN 4 MOPLEN-1(3) [J. OUT IF NOT ENOUGH CORE LEFT. 3BXG BXGE 4 TABLELIMIT,START 3CC6 ... LDN 0 MOP(2) [LINK FOR MOP CONSOLE. 3CWQ PM5 SRC 7 11 [LINE NO.: 0 3DBB ... SBN 4 TABLE-1 [RELATIVE PTR. TO NEXT TABLE ENTRY. 3DW2 STO 7 XLINE(3) 3F*L STO 6 XDEV(3) [DEVICE LIST POINTER. 3FT= STO 4 XFPTR(3) 3G#W ... STO 3 YFX2(2) [REMEMBER CURRENT ENTRY ADDRESS. 3GSG STO 0 XLINK(3) 3H#6 SLC 7 9 [LINE NUMBER. 3HRQ FINDLCA 6,7 3J?B STO 1 X3(3) [SAVE LCA ADDRESS. 3JR2 LDX 3 4 3K=L SLL 7 2 3KQ= PM10 BZE 7 PM1 [J. IF UNIPLEXER 3L9W SBN 7 4 3LPG BZE 7 PM1 [J. IF ALL LINES DEALT WITH 3M96 ... LDX 1 TOTALTIME(2) 3MNQ BRN PM4 3N8B PM11 ERN 0 APCTMACH$CONSMACH [J. IF NOT 7020. 3NN2 BNZ 0 PM10 3P7L ... LDN 4 PCTLEN-1(3) [J. IF NOT ENOUGH ROOM FOR 7020 ENT 3PM= BXGE 4 TABLELIMIT,PM10 3Q6W ... LDX 0 PCTTWMASK(2) [DEFAULT FOR TW IS INTERFACE 4 3QLG STO 0 XOPMASK(3) [ON ALL DROPS. 3R66 STO 0 XOPMASK+1(3) 3RKQ STO 0 XOPMASK+2(3) 3S5B ... LDX 0 OUTENQ(2) [SET UP ENQ BUFFER FOR POLL & SELE 3SK2 STO 0 XENQ(3) 3T4L ... LDX 0 OUTENQ+1(2) 3TJ= STO 0 XENQ+1(3) 3W3W STOZ XDROPPTR(3) [START POLLING AT ADDRESS 0. 3WHG LDX 0 JTIME [REMEMBER CURRENT TIME. 3X36 STO 0 XTIME(3) 3XGQ ... LDN 0 NEXTDROP(2) [LINK FOR PCT WHEN NO INTERFACE SE 3Y2B BZE 1 PM5 [J. IF NOT RINGED. 3Y=8 ... SRC 5 6 3YG2 BNG 5 PM5 [J. IF RINGED BUT ATTACHED (ONLINE). 3Y^L SBN 1 A1 [PTR. TO LCB. 3^F= PMCORES 1,PM5 [J. IF NOT 3^YW LDEX 0 GENQ1(1) [GET LAST ENQ ADDRESS SENT. 42DG ... ORX 0 OUTENQ(2) 42Y6 BXU 0 GENQ1(1),PM12 [J. IF DOESN'T LOOK VALID 43CQ DEX 0 XENQ(3) [OTHERWISE SAVE IT. 43XB LDX 0 GTIM(1) [SAVE TIME PERI WAS INITIATED. 44C2 BNG 0 PM12 [IF STILL (POSSIBLY) ACTIVE. 44WL STO 0 XTIME(3) 45B= PM12 LDX 1 BPTR(1) 45TW PMCORES 1,PM18 [J. IF CAN'T FIND INFORM BLOCK. 46*G LDX 0 ATYPE(1) 46T6 ... BXGE 0 XCACT(2),PM18 47#Q ... SBX 0 PINFORM(2) 47SB BNZ 0 PM12 48#2 LDN 4 APCTRLEN [CHECK INFORM BLOCK LOOKS OK. 48RL LDN 5 APCTSTAT-A1+1 [I.E. ALOGL CORRESPONDS TO NO. OF 49?= MPA 4 APCTNUM(1) [DROPS RECORDED IN APCTNUM, & LAST 49QW BXU 5 ALOGLEN(1),PM17 [ENTRY = -1. 4==G PMCORES 5,PM17 4=Q6 SMO 5 4?9Q NGX 0 A1-1(1) 4?PB BCT 0 PM17 4#92 LDX 5 APCTNUM(1) [LOOK THROUGH EACH DEFINED DROP. 4#NL ... STO 3 WORKWORD(2) 4*8= PM13 LDCH 4 APCTX(1) [J. UNLESS CONSOLE OUTPUT INTERFACE 4*MW ERN 4 #10 [IS NO. 2. 4B7G BNZ 4 PM16 4BM6 LDX 0 APCTHADD(1) [IS SO FIND TERMINAL ADDRESS NO. 4C6Q LDN 3 12 4CLB PM14 BXE 0 PCTADDRESS-1(3),PM15 4D62 BCT 3 PM14 4DKL BRN PM16 [IF POSSIBLE 4F5= PM15 SBN 3 1 [AND OVERWRITE DEFAULT SETTING. 4FJW LDN 4 #10 4G4G SRC 3 2 4GJ6 ... SMO WORKWORD(2) 4H3Q DCH 0 XOPMASK(3) 4HHB PM16 ADN 1 APCTRLEN 4J32 BCT 5 PM13 [J. FOR NEXT DROP. 4JGL ... LDX 3 WORKWORD(2) 4K2= ...PM17 LDN 4 PCTLEN-1(3) [RESET POINTER 4KFW ...PM18 LDN 0 PCTACTIVE(2) [AND LINK FOR STORING. 4K^G BRN PM5 4LF6 # 4LQG ...START TXU 3 FXPM1 4M3W ... BCC PMDIS 4M*= ... LDX 1 FXPM1 4MLL ... LDX 0 OUTEND(1) [SET UP TP OUTPUT BUFFER. 4N36 ... LDX 2 FXPM1 4NCL LDX 4 JTIME [SET START TIME. 4NX= ... LDN 6 OUTTP+1(1) 4PBW ... LDN 7 OUTTP+2(1) 4PWG ... STO 0 OUTTPX(1) 4QB6 MOVE 6 29 4QTQ ... SMO YFX2(1) [COMPLETE ACTIVITY LIST. 4R*B ... STO 2 XFPTR 4RT2 ... STO 4 TOTALTIME(1) 4S#L BRN XC3 [ENTER THE TIME SHARER. 4SS= # 4T?W ...#SKI 0?-PCTDUSTBIN-32�[PCTDUSTBIN - OVERWRITES K1MOPPM 4TRG ...#GAP PCTDUSTBIN+32-0? [IF WE HAVE TO READ IN ANY GASH BLOCK 4W?6 # 4WQQ PMDIS LDN 1 2 4X=B PMDS1 LDN 7 9(1) 4XQ2 FINDPEREC 2,APFOTY,7,PMDS2 4Y9L BNG 2 PMDS3 4YP= JWRONG 2,PMDS2 [J. IF WRONGED. 4^8W DISENGPE 2 [DIS EXTRACODE: CLEARS EVERYTHING UP. 4^NG BRN PMDS2 5286 PMDS3 BCT 1 PMDS1 52MQ ... BRN (JPMSEG) 537B # 53M2 # 546L MODE40004 54BD ... SMO FXPM1 54L= LDX 1 MODEX 555W BRN MD1 [CANCEL 55KG MODE4 LDN 1 4 [SUPER CANCEL 5656 MD1 ADX 1 XLINE(2) 574B DCA XDEV(2),STO,1,MODE 57#8 ... LDX 1 0 57J2 GLPERI XDEV(2) [ISSUE CANCEL PERI. 583L ... BRN (1) [EXIT. 58H= # 592W OUTPUT [SET UP & ISSUE WRITE PERI. 59GG DLCA 3,DLA,0,COUNT [X0=COUNT, X5=BUFFER START ADDRESS, 5=26 DLCA 3,STO,1,CTSA [X7=LINK. 5=FQ LDN 0 #11 5=^B DLCA 3,DLA,0,MODE 5?F2 BRN PERI 5?YL # 5#D= OUTIN DLCA 3,DLA,0,MODE [SET UP & ISSUE WRITE/READ PERI. 5#XW DLCA 3,DLA,1,COUNT [X0=WRITE MODE, X1=COUNT, X5=OUTPUT 5*CG DLCA 3,STO,5,CTSA [BUFFER START ADDRESS, X7=LINK. 5*X6 LDN 0 XSTATUS(2) 5BBQ LDN 1 2 5BWB LDN 5 80 5CB2 # 5CTL READB DLCA 3,STO,0,CTSA2 [FINISH SETTING UP & ISSUE DOUBLE PER 5D*= DLCA 3,DLA,1,MODE2 [X0=START ADDRESS FOR 2ND. TRANSFER, 5DSW DLCA 3,DLA,5,COUNT2 [X1=MODE FOR 2ND. TRANSFER, X5=COUNT, 5F#G LDN 0 XREP2(2) [X7=LINK. 5FS6 DLCA 3,STO,0,CREP2 5G?Q # 5GRB PERI LDN 0 XREP1(2) 5H?2 DLCA 3,STO,0,CREP 5HQL LDX 0 XLINE(2) 5J== DCA XDEV(2),STO,0,MODE 5JPW GLPERI XDEV(2) 5K9G # 5KP6 LDX 0 JTIME [REMEMBER WHEN TRANSFER(S) INITIATED. 5L8Q STO 0 XTIME(2) 5LNB WAIT COORDINATE [LET OTHER ACTIVITIES HAVE A GO. 5M82 # 5MML LDXC 1 XREP1(2) [J. UNLESS (1ST.) TRANSFER FINISHED. 5N7= BCS WAITCHECK 5NLW ADXC 1 1 [J. IF TIMED-OUT, 5P6G BCS SCRUB 5PL6 SLC 1 4 [OR INOPERABLE 5Q5Q BPZ 1 SCRUB 5QKB ANDN 1 3 5R52 EXIT 6 0 5RJL # 5S4= WAITCHECK 5SHW CALL 1 TIMECHECK [CHECK WHETHER TRANSFER HAS LASTED 5T3G BRN WAIT [FOR TOO LONG - J. IF NOT. 5TH6 # 5W2Q SCRUB JLUNBUSY 3,(7) [OTHERWISE EXIT IF LINE IDLE, 5WGB CALL 0 MODE4 [OTHERWISE CRUNCH ANY TRANSFERS STILL 5X22 EXIT 7 0 [OUTSTANDING THEN EXIT. 5XFL # 5X^= READWAIT 5YDW LDXC 0 XREP2(2) [J. IF READ STILL BUSY. 5YYG BCS WAITCHECK 5^D6 ADXC 0 0 [J. IF TIMED-OUT, 5^XQ BCS (7) 62CB SLC 0 4 [OR INOPERABLE. 62X2 BPZ 0 (7) 63BL ANDN 0 3 63W= SRC 0 1 [J. IF READ IMPLEMENTED. 64*W BPZ 0 (5) 64TG EXIT 5 1 [2ND. TRANSFER NOT IMPLEMENTED. 65*6 # 65SQ TIMECHECK [CHECK WHETHER LINE HAS BEEN BUSY 66#B LDX 0 JTIME [FOR TOO LONG. X1=LINK. 66S2 SBX 0 XTIME(2) 67?L BPZ 0 TODAY [J. UNLESS WRAPPED ROUND THROUGH 67HD ... SMO FXPM1 67R= ADX 0 ONEDAY [MIDNIGHT. 685M ...TODAY SMO FXPM1 68D4 ... SBXC 0 K50MOPPM [J. IF STILL O.K. 68QG BCS (1) 69=6 EXIT 1 1 [HAVE TO CRUNCH TRANSFER(S). 69PQ # 6=9B SENDENQ [POLL, SELECT OR SEND DATA. X7=LINK, 6=P2 CALL 6 OUTIN [X0=WRITE MODE, X1=COUNT, X5=OUTPUT 6?8L BZE 1 NERR1 [BUFFER START ADDRESS. 6?N= CALL 0 MODE40004 [EXIT 0 IF TIMED-OUT OR INOPERABLE, 6#7W NERR1 CALL 5 READWAIT [EXIT 1 IF WRITE FAILED &/OR READ WAS 6#MG BRN NERR2 [NOT IMPLEMENTED, OR NO CHARS. READ I 6*76 XIT71 EXIT 7 1 [OTHERWISE EXIT 2, WITH ERROR BIT 6*LQ NERR2 LDEX 5 XREP2(2) [IN B23 OF X0. 6B6B SBNC 5 80 6BL2 BCC XIT71 6C5L EXIT 7 2 6CK= # 6D4W READGASH [READ BLOCKS FROM SOURCE INTERFACE. 6DJG LDN 4 PMERRCNT [X7=LINK, EXIT WHEN TIMED-OUT, INOPER 6F46 READ1 LDN 0 XSTATUS(2) [(INCL. MULTIPLE ERRORS), OR EOT SEEN 6FHQ LDN 1 #42 6G3B LDN 5 80 6GH2 DLCA 3,STO,0,CTSA [SET UP 1ST. PART OF DOUBLE READ. 6H2L DLCA 3,DLA,1,MODE [READ WITH "WARNING". 6HG= DLCA 3,DLA,5,COUNT 6HQ4 ... SMO FXPM1 6H^W LDN 0 PCTDUSTBIN 6JFG LDN 1 #22 6J^6 LDN 5 128 6KDQ CALL 6 READB 6KYB CALL 5 READWAIT [WAIT FOR 2ND. PART TO FINISH. 6LD2 BRN READ2 [LONG BLOCK - J. TO CHECK FOR ERROR. 6LXL BNZ 1 READ3 [SHORT BLOCK - J. IF ERROR OR NOT IMP 6MC= LDX 0 XSTATUS(2) [GET 1ST. 2 CHARS. READ IN. 6MWW SRL 0 12 6NBG SBN 0 #7624 [READ AGAIN UNLESS EOT RECEIVED. 6NW6 BNZ 0 READGASH 6P*Q EXIT 7 0 6PTB # 6Q*2 READ2 ANDN 0 1 [J. TO READ ANOTHER BLOCK 6QSL BZE 0 READGASH [UNLESS ERROR SEEN. 6R#= READ3 BCT 4 READ1 [DO WE HAVE ANOTHER GO? 6RRW EXIT 7 0 [NO - GIVE UP. 6S?G # 6SR6 TERMSTATUS [DECODE STATUS REPLY TO POLL OR SELEC 6T=Q LDX 1 2 6TQB LDCH 5 XSTATUS(2) 6W28 ... SMO FXPM1 6W=2 BXL 5 XALPHA,STAT1 [J. IF ALPHA TO SET UP ALPHA PAIR 6WPL SLL 5 6 [OTHERWISE USE 1ST. 2 CHARS IN BUFFER 6X9= BCHX 1 STAT2 6XNW STAT1 LDN 5 #7400 6Y8G STAT2 LDCH 6 XSTATUS(1) 6YN6 ORX 5 6 6^7Q LDX 6 XENQ(2) [CHECK AGAINST ADDRESS SENT IN ENQ. 6^MB ANDN 6 -1 7272 BXU 5 6,(7) [EXIT 7 0 IF WRONG ADDRESS. 72LL BCHX 1 £ 736= SRL 6 6 [SAVE SHIFT. 73KW LDCH 5 XSTATUS(1) [GET 1ST. STATUS CHARACTER. 745G ADN 7 1 [STEP LINK ON BY 1. 74*# ... SMO FXPM1 74K6 BXL 5 XALPHA,STAT5 [J. IF NO CHANGE IN SHIFT. 754Q LDX 6 5 [SAVE NEW SHIFT. 75JB BCHX 1 STAT5 [J. TO GET 2ND. STATUS CHARACTER. 7642 # 76HL PRIPHSTATUS [DECODE STATUS REPLY IN DATA PHASE. 773= LDEX 1 XREP2(2) [GET STATUS READ REPLY COUNT. 77GW SBN 1 79 [GET POINTER TO LAST 2 CHARS. READ IN 782G BNG 1 STAT4 [J. UNLESS ONLY 1. 78G6 LDCH 5 XSTATUS(2) [MUST BE ALPHA. 78^Q STAT3 SBN 5 #40 [CONVERT ALPHA SHIFT STATUS CHAR. 79FB EXIT 7 0 79RR ...STAT4 SMO FXPM1 7=68 ... ERX 1 XMIN1 7=DL SRC 1 2 7=Y= ADX 1 2 7?CW LDCH 6 XSTATUS(1) [GET PENULTIMATE CHAR. - MAY BE SHIFT 7?XG BCHX 1 STAT5 [IF NOT THEN DEFAULT GIVES ALPHA ANYH 7#C6 # 7#WQ STAT5 LDCH 5 XSTATUS(1) [GET LAST CHAR - GIVES ACTUAL STATUS. 7*BB SBNC 6 #75 [J. IF ALPHA SHIFT. 7*W2 BCS STAT3 7B*L BZE 6 (7) [J. IF BETA SHIFT - DO NO CONVERSION. 7BT= SBN 5 #30 [MUST BE DELTA SHIFT : CONVERSION 7C54 ... SMO FXPM1 7C#W BXL 5 XDELMAX,(7) [RULE SAY SUBTRACT #30 IF < #70 7CSG ADN 5 #34 [ADD 4 OTHERWISE. 7D#6 EXIT 7 0 7DRQ # 7F?B # 7FR2 MOP JLUNBUSY 3,MOP1 7G=L CALL 0 MODE4 [BASH IT IF BUSY 7GQ= MOP1 LDN 4 PMERRCNT 7H9W MOP2 LDN 0 55 [SEND VALEDICTION. 7HFN ... SMO FXPM1 7HPG LDN 1 OUTMOP 7H^# ... SMO FXPM1 7J96 LDN 7 SUICIDE [LINK TO SUICIDE IF INOPERABLE. 7JNQ CALL 6 OUTPUT 7K8B BZE 1 SUICIDE [J. IF IMPLEMENTED & NOT ERRORED: END 7KN2 BCT 4 MOP2 [J. TO REPEAT TRANSFER 7L7L SUICIDE [ACTIVITY FINISHED 7LJL ... LDX 1 FXPM1 7L^L ... SMO XFX2(1) [J. TO END IF THIS WAS THE 7MBL ... LDX 2 XFPTR [LAST ACTIVITY, 7MRL ... BXE 2 XFX2(1),PMDIS 7N8L ... SMO YFX2(1) [OTHERWISE JUST EXCLUDE THIS 7NKQ STO 2 XFPTR [ACTIVITY FROM THE ACTIVITY LIST. 7P5B BRN XC1 [RE-ENTER THE TIME SHARER. 7PK2 XCOOR [CO-ORDINATOR 7PXC ... LDX 1 FXPM1 7Q9S ... LDX 2 XFX2(1) 7QJ= STO 0 XLINK(2) [DUMP LINK. 7R3W ... STO 2 YFX2(1) [REMEMBER THIS AS LAST ACTIVE ACTI 7RHG LDN 0 3 [AND X3-X7 7S36 LDN 1 X3(2) 7SGQ MOVE 0 5 7T2B LDX 2 XFPTR(2) [MOVE ON TO THE NEXT ACTIVITY ON LIST 7T=8 ... LDX 1 FXPM1 7TG2 XC1 LDX 0 JTIME 7T^L ... SBX 0 TOTALTIME(1) 7WF= BPZ 0 XC2 7WYW ... ADX 0 ONEDAY(1) 7XDG ...XC2 SBX 0 K51MOPPM(1) 7XY6 BPZ 0 PMDIS [J. IF 2 MINUTES HAVE ELAPSED 7YCQ ...XC3 STO 2 XFX2(1) 7YXB LDN 0 X3(2) 7^C2 LDN 1 3 7^WL MOVE 0 5 [RESTORE X3-X7 82B= LDX 0 XLINK(2) 82TW EXIT 0 0 [JUMP TO LINK 83*G # 83T6 # 84#Q PCT0 COORDINATE 84SB PCTACTIVE [ENTRY IF TERMINAL IS ACTIVE 85#2 JLUNBUSY 3,PCT1 [J. IF NO BUSY TRANSFERS. 85RL CALL 1 TIMECHECK [WAIT FOR TRANSFER(S) TO FINISH. 86?= BRN PCT0 86QW CALL 0 MODE4 [UNTERMINATED - SCRUB IT. 87=G BRN NEXTDROP [J. TO POLL. 87Q6 PCT1 LDX 6 XENQ(2) [GET LAST ADDRESS SENT OUT. 889Q ANDN 6 7 88PB BZE 6 NEXTDROP [IF ZERO MUST HAVE BEEN POLL - QUIESC 8992 ANDN 6 1 89NL BZE 6 SENDING [IF EVEN MUST HAVE BEEN DOING OUTPUT, 8=8= # [OTHERWISE INPUT IS SELECTED. 8=D4 ... LDX 1 FXPM1 8=MW LDX 4 JTIME [SET XTIME SO THAT WE WAIT FOR 8?7G ... ADX 4 K50MOPPM(1) [AT MOST 10 SECS. TO SEE WHETHER 8?M6 ... SBX 4 TENSECONDS(1) [TERMINAL IS SHOWING SIGNS OF 8#6Q ... BXL 4 ONEDAY(1),SAMEDAY [ACTIVITY. 8#LB ... SBX 4 ONEDAY(1) 8*62 SAMEDAY 8*KL STO 4 XTIME(2) 8B5= TESTACTIVE [THESE CHECKS WILL ONLY CURRENTLY 8BJW LDCT 0 #200 [WORK ON WEST GORTON EXECUTIVES. 8C4G DLCA 3,ANDX,0,FLAG [J. IF TIMED-OUT MARKER SET. 8CJ6 BNZ 0 TWINCHECK 8D3Q LDN 6 #140 [J. IF LOST INPUT, OR READ REQUEST SE 8DHB DLCA 3,ANDX,6,FLAG 8F32 BNZ 6 READING 8FGL CALL 1 TIMECHECK [CHECK WHETHER TO GIVE UP. 8G2= BRN STILLINACT [J. TO WAIT A LITTLE LONGER. 8GFW BRN TWINCHECK [GIVE UP AND POLL: EOT ALREADY RECEIV 8G^G STILLINACT 8H?X ... LDX 1 FXPM1 8HL# ... COORDINATE TESTACTIVE(1) [WAIT & J. 8HYQ READING [SOURCE INTERFACE SELECTED & SENDING. 8JDB CALL 7 READGASH [READ DATA UNTILL EOT IS SEEN. 8JY2 TWINCHECK 8KCL LDX 4 XENQ(2) [J. IF INTERFACE 5 (*TR) WAS SELECTED 8KX= ANDN 4 4 8LBW BNZ 4 NEXTDROP 8LWG LDX 7 XENQ(2) [CONVERT TERMINAL ADDRESS (IN RANGE 8MB6 LDX 1 XENQ(2) [#7400 TO #7570) TO TERMINAL NUMBER 8MTQ ANDN 7 #140 [(IN RANGE 1 TO 12) MINUS 1. 8N*B ANDN 1 #170 8NT2 BNZ 7 NLE4 8P#L ERN 1 #20 8PS= NLE4 ANDN 7 #100 8Q?W SRC 1 5 8QRG BZE 7 NGE9 8R?6 ERN 1 1 8RQQ NGE9 SMO 2 [GET TW OUTPUT MASK FOR THIS TERMINAL 8S=B LDCH 0 XOPMASK(1) 8SQ2 LDX 4 XENQ(2) [SET UP INTERFACE BIT MASK FOR "PAIR" 8T9L LDN 5 #40 [OF SOURCE WHICH IS SELECTED. 8TP= ANDN 4 2 [TW INPUT INTERFACE IS 1 OR 3 8W8W BNZ 4 TWIS4 [J. IF INTERFACE 3 SELECTED. 8WNG LDN 5 #10 [INTERFACE 1 SELECTED. 8X86 TWIS4 ANDX 5 0 [IF NON ZERO THEN TW INPUT MUST HAVE 8XMQ BZE 5 NEXTDROP [BEEN SELECTED 8Y7B SRL 5 1 [SO SET MARKER SO WE OUTPUT "CANCEL". 8YM2 ORX 0 5 8^6L BRN SETOPMASK2 8^L= # 925W SENDING [ACCEPTOR INTERFACE SELECTED. 92*N ... LDX 1 FXPM1 92KG LDX 0 XENQ(3) [CHECK WHETHER LP, TW OR TP. 9356 ORN 0 6 93JQ ... LDN 5 OUTLP(1) [IF TW OR LP SEND FORM FEED TO CLE 944B BXU 0 XENQ(2),NOTTP [UP SO WE CAN SEND EOT. 94J2 ... LDN 5 OUTTP(1) [IF TP SEND DELETES. 953L NOTTP LDN 0 1 95H= LDN 1 128 962W CALL 7 SENDENQ [OUTPUT CLEAN UP MESSAGE. 96GG BRN NEXTDROP [LINE INOPERABLE - POLL. 9726 BRN SENDING [NOT IMP. - REPEAT. 97FQ CALL 7 PRIPHSTATUS [GET STATUS REPLIED. 97^B ANDN 5 1 98F2 BZE 5 NEXTDROP [J. IF DEVICE INOPERABLE. 98YL BZE 0 NEXTDROP [J. IF O.K. 99D= BRN SENDING [ERROR - REPEAT. 99XW # 9=CG POLLERR 9=X6 BCT 4 POLL [POLL AGAIN IF NOT COUNTED OUT. 9?BQ PCTINOP 9?WB LDN 0 0 [SET INOPERABLE MARKER FOR THIS DROP. 9#B2 SETOPMASK1 9#TL LDX 1 XDROPPTR(2) 9**= SETOPMASK2 9*SW SMO 2 9B#G DCH 0 XOPMASK(1) [SET STATUS FOR THIS DROP. 9BS6 BCHX 1 NDRP3 9C?Q NDRP1 BXU 1 XDROPPTR(2),NDRP2 [GET NEXT DROP, J. UNLESS BEEN RIGHT 9CRB LDN 6 #7620 [ROUND & NOTHING LEFT TO DO. 9D?2 LDN 0 #11 [SEND EOT & FINISH. 9DQL LDN 1 7 9F== LDN 5 XENQ(2) 9FPW DSA 6 XENQ(2) 9G9G CALL 7 SENDENQ 9GP6 BRN SUICIDE 9H8Q BRN SUICIDE 9HNB BRN SUICIDE 9J82 # 9JML SOPERR 9K7= BCT 4 SOP2 [ERROR ON SENDING DATA - POLL IF TOO 9KLW NEXTDROP [STEP ON TO THE NEXT DROP. 9L6G # 9LL6 LDX 1 XDROPPTR(2) 9M5Q NDRP2 BCHX 1 £ 9MKB NDRP3 SBN 1 3 9N52 BZE 1 NDRP4 9NJL ADN 1 3 9P4= NDRP4 SMO 2 [PICK UP THE "ACTIVE" SWITCH. 9PHW LDCH 0 XOPMASK(1) 9Q3G BZE 0 NDRP1 [J. IF MARKED AS INOPERABLE. 9QH6 STO 1 XDROPPTR(2) [REMEMBER THIS DROP. 9R2Q SLC 1 2 9R=J ... SMO 2 9RGB LDX 0 PCTADDRESS(1) [SET UP TERMINAL ADDRESS FOR THIS DRO 9S22 DSA 0 XENQ(2) 9SFL LDN 4 PMERRCNT 9S^= POLL LDN 0 #11 [SEND POLL MESSAGE FOR THIS DROP. 9TDW LDN 1 7 9TYG LDN 5 XENQ(2) 9WD6 CALL 7 SENDENQ 9WXQ BRN PCTINOP [INOP. 9XCB BRN POLLERR [NOT IMP. ) TRY 9XX2 BNZ 0 POLLERR [ERROR ) AGAIN? 9YBL CALL 7 TERMSTATUS [GET TERMINAL STATUS. 9YW= BRN POLLERR [ERROR IN STATUS BUFFER CONTENTS. 9^*W BZE 5 NEXTDROP [J. FOR NEXT DROP IF WAITING FOR TW I 9^TG LDX 1 XDROPPTR(2) =2*6 SMO 2 =2SQ LDCH 6 XOPMASK(1) [GET TW INPUT/OUTPUT INTERFACE MASK. =3#B LDX 0 6 =3S2 ANDN 0 #50 [TW OUTPUT INTERFACE BIT. =4?L ANDX 0 5 =4R= BNZ 0 SELECTOUTPT [J. IF TW OUTPUT OPERABLE. =5=W ANDN 6 #50 [TW OUTPUT. =5QG LDX 0 6 =6=6 SRL 6 1 [TW INPUT. =6PQ ANDX 6 5 =79B BNZ 6 SELECTINPUT [J. IF TW INPUT OPERABLE =7P2 ERN 0 #50 [LP INTERFACE BIT. =88L ANDX 0 5 =8N= BZE 0 SETOPMASK2 [J. IF LP INOPERABLE - MARK DROP INOP =97W SELECTOUTPT [SELECT INTERFACE & SENT GOODBYE. =9MG ANDN 6 #24 [REMEMBER TW INPUT SWITCH SETTING. ==76 DEX 6 XENQ+1(2) ==LQ ANDN 0 #40 [GET INTERFACE NUMBER. =?6B LDN 5 4 =?L2 BNZ 0 SOP1 =#5L LDN 5 2 =#K= SOP1 ORS 5 XENQ(2) [SET UP BUFFER FOR SELECTING OUTPUT. =*4W LDN 4 PMERRCNT =*JG SOP2 LDN 0 1 =B46 LDN 1 7 =BHQ LDN 5 XENQ(2) =C3B CALL 7 SENDENQ [SELECT OUTPUT INTERFACE. =CH2 BRN NEXTDROP [INOP. =D2L BRN SOPERR [NOT IMP. =DG= CALL 7 TERMSTATUS [GET PERIPHERAL STATUS. =D^W BRN SOPERR [RUBBISH REPLY. =FFG ANDN 5 1 [J. IF DEVICE NOW INOPERABLE. =F^6 BZE 5 NEXTDROP =GDQ BNZ 0 SOPERR =GYB LDEX 6 XENQ+1(2) [J. IF TW INPUT MARK NOT SET. =HD2 BZE 6 SENDGOODBYE =HXL SENDCANCEL [SEND "CANCEL" TO TYPEWRITER IF JUST =JC= LDN 0 1 [RECEIVED AN INPUT MESSAGE. =JWW LDN 1 17 =K6N ... SMO FXPM1 =KBG LDN 5 OUTCAN =KW6 CALL 7 SENDENQ =L*Q BRN NEXTDROP [LINE INOP. =LTB BRN SENDCANCEL [NOT IMP. =M*2 CALL 7 PRIPHSTATUS [GET PERIPHERAL STATUS =MSL SRC 5 1 [J. IF INOP. =N#= BPZ 5 NEXTDROP =NRW BNZ 0 SENDCANCEL [J. IF LINE ERROR. =P?G ANDN 5 2 [J. IF DEVICE ERROR. =PR6 BZE 5 SENDCANCEL =Q=Q LDX 0 XENQ+1(2) [CLEAR TW INPUT MARKER IF OUTPUT O.K. =QQB ADXC 0 0 [NOT PARTICULARLY INTERESTED IN V OR =R=2 BRN SETOPMASK1 =RPL # [SEND "THE SYSTEM HAS CLOSED DOWN" TO =S9= SENDGOODBYE [TW OR LP. =SNW LDN 0 1 =T8G LDN 1 53 =TD# ... SMO FXPM1 =TN6 LDN 5 OUTPCT =W7Q CALL 7 SENDENQ =WMB BRN NEXTDROP [INOP =X72 BRN SENDGOODBYE [NOT IMP. =XLL CALL 7 PRIPHSTATUS [GET STATUS. =Y6= SRC 5 1 =YKW BPZ 5 NEXTDROP [INOP. =^5G BNZ 0 SENDGOODBYE [ERROR. =^K6 ANDN 5 2 [ERROR ?24Q BZE 5 SENDGOODBYE ?2JB BRN PCTINOP [FINISHED - MARK INOP. TO SAVE REPEAT ?342 # ?3HL SELECTINPUT [SELECT TW INPUT - HAVE TO READ FROM ?43= ANDN 6 #20 [TW BEFORE OUTPUT INTERFACES WILL ?4GW LDN 5 3 [RESPOND. ?52G BNZ 6 SINP1 ?5G6 LDN 5 1 [SET TW INPUT ADDRESS IN ENQ BUFFER. ?5^Q SINP1 LDN 4 PMERRCNT ?6FB ORS 5 XENQ(2) ?6^2 SINP2 LDN 0 7 ?7DL LDN 1 XENQ(2) ?7ND ... SMO FXPM1 ?7Y= LDN 7 NEXTDROP [REPOLL IF IT GOES INOP. ?8CW CALL 6 OUTPUT [SEND SELECTION MESSAGE. ?8XG BZE 1 READING [J. IF WENT OUT O.K. ?9C6 BCT 4 SINP2 [J. TO TRY AGAIN ?9WQ BRN NEXTDROP [OR NOT, AS THE CASE MAY BE. ?=BB # ?=W2 # ??*L #SKI ADEVELOP ??T= #GAP 20 ?##W # ?#SG # [ACTIVITY FORMAT. ?*#6 TABLE ?*RQ XFPTR +0 ?B?B XLINK +0 ?BR2 X3 +0 ?C=L X4 +0 ?CQ= X5 +0 ?D9W X6 +0 ?DPG X7 +0 ?F96 XREP1 +0 ?FNQ XREP2 +0 ?G8B XDEV +0 ?GN2 XLINE +0 ?H7L XTIME +0 ?HM= #DEF MOPLEN=XTIME+1 ?J6W XDROPPTR +0 ?JLG XOPMASK +0,+0,+0 ?K66 XENQ +0,+0 ?KKQ XSTATUS +0 ?L5B #DEF PCTLEN=XSTATUS+21 ?LK2 #END ^^^^ ...23456667001900000000