15 22FL #SEG CONSROOT [LEN WAGSTAFF 16 22KH ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983. 7 22PD #OPT ASPEAK=#33 8 22_= #OPT K0CONSROOT=0 8 23DW #OPT K6CONSROOT=0 10 23YG #LIS K0CONSROOT>K0ALLGEO 10 24D6 8HCONSROOT 4 24XQ # 20 25CB # THIS SEGMENT DEALS WITH ROUTING OF OUTPUT MESSAGES TO OPERATOR 14 25X2 # CONSOLES WHICH ARE KNOWN TO THE IDF. 19 26BL # ENTRY AT K1 IS FROM MONFILE FOR THE INITIAL ROUTING TO THE 19 26W= # PRIMARY CONSOLE,ENTRY AT K2 IS WHEN THE PRIMARY CONSOCE CANNOT 16 27*W # BE USED AND THUS THE OUTPUT MUST BE RE-ROUTED. 17 27TG # THE CODING FOR K1,K2 STARTS WITH '#PAGE' BELOW. 4 28*6 # 16 28SQ # AWORK1 : USED AS LINK DUMP IN 'TIME' 20 29#B # AWORK2 : USED AS LINK DUMP IN'ZPUT','ZFORM' & 'ZFREE' 17 29S2 # AWORK3 : USED AS ROUTING PARAMETER DUMP. 19 2=?L # AWORK4 : +VE IF ENTERED FROM MONFILE (ENTRY K1) 21 2=R= # ---------------------------------------------------------------- 4 2?=W # 4 2?QG # 10 2#=6 # ENTRY POINTS 4 2#PQ # 12 2*9B SEGENTRY K1CONSROOT,X1CONSROOT 12 2*P2 SEGENTRY K2CONSROOT,X2CONSROOT 18 2*SX FSHENTRY K3CONSROOT,X3CONSROOT,X3CONSROOT,X3CONSROOT 15 2*YS FSHENTRY K4CONSROOT,X4CONSROOT,,X4CONSROOT 15 2B4P FSHENTRY K5CONSROOT,X5CONSROOT,,X5CONSROOT 18 2B5N FSHENTRY K7CONSROOT,X7CONSROOT,X7CONSROOT,X7CONSROOT 4 2B6M # 21 2B7L # K8CONSROOT & K9CONSROOT ARE DECLARED FOR RESTORE TIME MACROS!!! 4 2B8L # 4 2BN= # 18 2C7W OPMSK #7700,#770000 [MASK FOR OP# : MX,IPB 21 2CMG SHIFT 6,12 [SHIFT TO GET OP# IN CH.3 : MX,IPB 21 2D76 STARTPT +ADMULTACT,+IPBADDR [ADDR OF START OF AMOP CHAIN : MX,IPB 20 2DLQ UCHAR 0.2,0.2 [CHAR IN AMOP WD CONTAINING OP# 8 2F6B XUNIT BRN YMX 8 2FL2 BRN YIPB 20 2G5L STEP +ADMP,+IPBL [WD IN AMOP POINTING TO NEX0 AMOP 21 2GK= XLID #77,#7777 [MASK FOR LINE NO (MX), IDENT (IPB) 19 2H4W XFRIG NULL [DO NOT RELATIVISE LINE NO. 16 2HJG SBX 0 A1+FOURTHWD(3) [RELATIVISE IDENT 21 2J46 XJUMP BRN ZMX [J AFTER LOCATING ALINES BLOCK (MX) 21 2JHQ BRN ZIPB [J AFTER LOCATING ADEVS BLOCK (IPB) 5 2K3B XBLKA 8 2KH2 #HAL AMXOR+ALINES,0 8 2L2L #HAL AMXOR+ADEVS,0 5 2LG= XBLKB 8 2L_W #HAL A7020+INFORM,0 8 2MFG #HAL CONSA+I7023,0 5 2M_6 XBLKC 9 2NDQ #HAL A7020+CONSOUT,0 5 2NYB XBLKD 9 2PD2 #HAL CONBUFF+IREMTW,0 6 2PXL X256 256 4 2QC= # 19 2QWW # SEARCHF & SEARCHB : SEARCH FORWARDS OR BACKWARDS FOR BLOCK 20 2RBG # (TYPE&SUBTYPE AS GIVEN IN X4) FROM ADDRESS 20 2RW6 # IN X3 AND STOP WHEN AN ACTIVITY IS FOUND. 21 2S*Q # IF REQD BLOCK NOT FOUND,EXIT AT 0, OTHERWISE 21 2STB # EXIT AT 1 WITH X3=POINTER T- THE SOUGHT BLOCK 4 2T*2 # 5 2TSL SEARCHF 8 2W#= LDN 7 FPTR 8 2WRW BRN ZS1 5 2X?G SEARCHB 8 2XR6 LDN 7 BPTR 8 2Y=Q ZS1 LDX 2 FX2 10 2YQB STO 7 ACOMMUNE1(2) 10 2_=2 ZS2 SMO ACOMMUNE1(2) 17 2_PL LDX 3 0(3) [ADDR OF NEXT BLOCK 9 329= LDX 7 ATYPE(3) 9 32NW ANDX 7 HALFTOP 7 338G TXU 7 4 18 33N6 BCC ZS3 [J IF REQD BLOCK FOUND 18 347Q TXL 7 CACT [IS THIS AN ACT BLOCK? 19 34MB BCS ZS2 [J IF NOT TO CONTINUE SEARCH 21 3572 EXIT 0 0 [OTHERWISE RETURN VIA FAILURE EXIT 7 35LL ZS3 EXIT 0 1 4 366= # 21 36KW # TIME : IF CURRENT MESSAGE IS TIME/DATE,LOOK AT REMOTE ACTIVITY 21 375G # AND FREE ANY SIMILAR MESSAGE (EXCEPT 1ST MSGE IN QUEUE 15 37K6 # WHICH THE ACT MAY BE PROCESSING). 21 384Q # THIS ROUTINE MAY NOT CO-ORDINATE. ON ENTRY X2 POINTS TO 20 38JB # THE CURRENT MESSAGE AND X3 TO THE INFORM BLOCK (MX) 20 3942 # OR THE DCB (IPB). THESE VALUES ARE PRESERVED ON EXIT. 4 39HL # 4 3=3= TIME 8 3=GW LDX 1 FX1 8 3?2G LDX 0 A1(2) 9 3?G6 LDX 4 A1+2(2) 10 3?_Q ANDX 0 OPMSK+1(1) 21 3#FB BNZ 0 ZT6 [EXIT IF CURRENT MSGE ISN'T TIME/DATE 7 3#_2 STO 2 5 8 3*DL LDX 2 FX2 7 3*Y= STO 3 6 9 3BCW STO 7 AWORK1(2) 15 3BXG BPZ 4 ZT2 [J IF 7007 14 3CC6 ZT1 LDX 3 BPTR(3) [SEARCH 14 3CWQ LDX 0 ATYPE(3) [BACK TO 15 3DBB TXL 0 CACT [THE CONSA 14 3DW2 BCS ZT1 [FOR IPB. 9 3F*L ZT2 LDX 4 XBLKD(1) 20 3FT= CALL 0 SEARCHF [SEARCH FOR 1ST CONBUFF/IREMTW 15 3G#W BRN ZT5 [J IF ABSENT 9 3GBS LDX 0 A1+2(3) 16 3GDQ BNG 0 ZT3 [NOT PCT BLOCK 18 3GGN SMO 5 [ADDR OF CURRENT BLOCK 19 3GJL ERX 0 A1+2 [COMPARE TERMINAL IDENTIFIERS 8 3GLJ ANDN 0 #7777 21 3GNG BNZ 0 ZT2 [THIS BLK NOT FOR THE SAME TERMINAL 12 3GQD # FIRST CONBUFF FOUND 17 3GSG ZT3 CALL 0 SEARCHF [FIND NEXT CONBUFF 16 3H#6 BRN ZT5 [J IF NOT FOUND 8 3HRQ LDX 0 A1(3) 10 3J?B ANDX 0 OPMSK+1(1) 20 3JR2 BNZ 0 ZT3 [J IF NOT TO CONTINUE THE SEARCH 20 3K=L # WE HAVE FOUND A TIME/DATE MSGE. NWW TEST TO SEE IF IT IS A PCT 21 3KQ= # BLOCK,AND IF SO CHECK THAT THE BLK FOUND IN THE CHAIN IS FOR THE 21 3L9W # SAME PCT AS THE CURRENT ONE.(TO ALLOW FOR MULTI-DROP PCT'S ON MX) 4 3LPG # 9 3M96 ZT4 LDX 0 A1+2(3) 17 3MNQ BNG 0 ZT4A [J IF NOT PCT BLOCK 18 3N8B SMO 5 [ADDR OF CURRENT BLOCK 21 3NN2 ERX 0 A1+2 [IF THE T/D BLK IN THE CHAIN IS NOT 21 3P7L ANDN 0 #7777 [FOR THE SAME PCT AS THE CURRENT BLK 21 3PM= BNZ 0 ZT3 [WE JUMP TO TRY NEXT BLKS IN CHAIN 20 3Q6W ZT4A LDX 4 BPTR(3) [SAVE ADDR OF PRECEEDING BLOCK. 16 3QLG FREECORE 3 [FREE THE BLOCK 20 3R66 LDX 3 4 [PRECEEDING BLOCK BECOMES CURRENT 9 3RKQ LDX 0 ATYPE(3) 19 3S5B TXU 0 XBLKC(1) [IS IT A TRANSMISSION BLOCK? 16 3SK2 BCC ZT4A [FREE IT IF IT IS 21 3T4L ZT5 LDX 7 AWORK1(2) [JOB DONE,NOW RETURN AFTER RESTORING 18 3TJ= LDX 2 5 [ENTRY VALUES IN X2,X3. 7 3W3W LDX 3 6 14 3WHG ZT6 EXIT 7 0 [RETURN 4 3X36 # 21 3XGQ # ZPUT : ENTERED A&TER CONBUFF/IREMTW IS SET UP. THIS SUBR LOCATES 21 3Y2B # THE RELEVANT AMOP ACTIVITY,CHAINS THE ROUTINE BLOCK IN 17 3YG2 # AND FPUTS THE AMOP IF IT IS NOT RUNNING. 21 3Y_L # ON ENTRY X5= UNIQUE WORD DEFINING THE CONSOLE (FROM APERI/CONSOLE) 20 3_F= # X6= PROG.PROP.NO.(CI) OR GEOG.NO.(MX) OR ZERO(7900) 4 3_YW # 4 42DG ZPUT 8 42Y6 LDX 1 FX1 7 43CQ SBX 0 1 8 43XB LDX 2 FX2 9 44C2 STO 0 AWORK2(2) 17 44WL MHUNTW 3,CONBUFF,IREMTW [FIND ROUTING BLOCK 20 45B= LDXC 4 A1+2(3) [SET C IF CONSOLE IS ON 7900 ... 20 45TW ADN 1 0 [... SO X1=FX1+1 FOR 7900 &ONSOLE 20 46*G EXIT 1 XUNIT [BR TO YMX FOR PCT, YIPB FOR IPB 7 46B3 #SKI JSKI04<1$1 4 46BJ ( 13 46C5 YMX [MX 15 46CL HUNTMISB 1,IDF,ITERMID [FIND ITERMID 15 46D7 BPZ 1 YFND [BR IF FOUND 4 46DN XG 9 46F9 GEOERR 1,ITERMID 4 46FQ YFND 9 46G? LDX 0 A1+1(1) 17 46GS BZE 0 XG [BR IF END OF BLOCK 7 46H* TXU 0 5 17 46HW BCC RFND [BR IF ENTRY FOUND 7 46JC ADN 1 2 8 46JY BRN YFND 4 46KF RFND 17 46L2 LDX 3 A1+2(1) [LOAD POINTER TO AMOP 17 46LH BNG 3 XG [BR IF FALSE ENTRY 8 46M4 LDX 1 FX1 8 46MK BRN Z99 4 46N6 YIPB 7 46NM LDX 7 5 16 46P8 SRL 7 12 [GEOG NO OF IPB 15 46PP FMOPG 3,7,IPB [FIND AMOP 9 46Q= BNG 3 REROUTE 4 46QR ) 6 46R# #SKI JSKI04 4 46RT ( 13 46T6 YMX [MX 14 47#Q ANDN 6 #777 [GEOG.NO. 15 47SB FMOPG 3,6,MX [FIND AMOP 15 48#2 BNG 3 REROUTE [NOT FOUND 8 48RL BRN Z99 4 49?= YIPB 7 49QW LDX 7 5 16 4==G SRL 7 12 [GEOG NO OF IPB 15 4=Q6 BNZ 7 YNOTCI [J. IF NOT CI 16 4?9Q ANDX 6 BITS22LS [JUST TO BE SURE 17 4?PB ORX 6 GSIGN [NEED B0=1 FOR CPPTR 15 4#92 FMOPACT 3,6,IPB [FIND AMOP 8 4#NL BRN YBOTH 5 4*8= YNOTCI 15 4*MW FMOPG 3,7,IPB [FIND AMOP 5 4B7G YBOTH 9 4BM6 BNG 3 REROUTE 4 4BWY ) 9 4B_H LDXC 0 IPBSW(3) 19 4C46 BCS REROUTE [J IF IPB INOP. (OR ERROR) 4 4C6Q Z99 4 4CLB # 21 4D62 ZACTFND [REQD AMOP FOUND.NOW FIND ALINES BLOCK(MX) OR ADEVS BLOCK(IPB) 4 4DKL # 9 4F5= LDX 4 XBLKA(1) 18 4FJW CALL 0 SEARCHF [FORWARD SEARCH FROM AMOP 21 4G4G BRN REROUTE [J IF ABSENT TO REROUTE TO 2NDRY CONS 9 4GJ6 LDX 0 XLID(1) 20 4H3Q ANDX 0 5 [GET LINE NO.(MX) OR IDENT (IPB) 18 4HHB OBEY XFRIG(1) [RELATIVISE IT IF REQD 7 4J32 ADX 0 0 7 4JGL ADX 0 0 21 4K2= ADX 3 0 [X3 POINTS TO RELEVANT RECORD IN BLK 8 4KFW LDCT 0 #430 11 4K_G ANDX 0 A1+FOURTHWD(3) 20 4LF6 BNZ 0 REROUTE [BR IF UNAVAIL, ONLINE, UNREADY 19 4LYQ LDX 3 A1+BPTR(3) [POINTER TO LCB/DCB RING ELT 21 4MDB BZE 3 REROUTE [J IF NO LCB/DCB TO TRY 2NDRY CONSOLE 19 4MY2 SBN 3 A1+FPTR [X3 POINTS TO START OF LCB/DCB 19 4NCL EXIT 1 XJUMP [GO TO ZMX (MX) OR ZIPB (IPB) 4 4NX= # 4 4PBW # 4 4PWG ZMX 9 4QB6 LDX 4 XBLKB(1) 21 4QTQ CALL 0 SEARCHB [SEARCH BACK FROM LCB TO INFORM BLK 19 4R*B BRN REROUTE [IF ABSENT,TRY 2NDRY CONSOLE 11 4RT2 MHUNTW 2,CONBUFF,IREMTW 17 4S#L SEGENTRY K8CONSROOT [FOR ALLTIME MACRO 21 4SS= CALL 7 TIME [IF THIS IS TIME MSGE,DELETE ANY EXISTING ONE. 7 4T?W LDN 5 0 19 4TRG LDX 4 APCTNUM(3) [NO. OF PCT'S ON THIS LINE 17 4W?6 LDX 6 A1+2(2) [TERMINAL ADDR CODE 16 4WQQ SLL 6 12 [IN TOP 12 BITS 7 4X=B SRCH SMO 5 20 4XQ2 LDX 0 IDUNIQUE(3) [UNIQUE WD FOR THIS PCT RECORD 20 4Y9L ANDX 0 HALFTOP [TER ADDR CODE IN TOP 12 BITS. 7 4YP= TXU 0 6 18 4_8W BCC PCTFND [J IF THIS IS REQD ONE 17 4_NG ADN 5 APCTRLEN [STEP TO NEXT RECORD 18 5286 BCT 4 SRCH [J IF NOT END OF RECORDS. 18 52MQ BRN REROUTE [J IF REQD PCT NOT FOUND 5 537B PCTFND 18 53M2 ADX 3 5 [X3 POINTS TO PCT RECORD 8 546L LDCT 0 #500 10 54L= ANDX 0 APCTSTAT(3) 19 555W BNZ 0 REROUTE [J IF TERM INOP OR MOPPED OFF 9 55KG LDCH 0 APCTX(3) 17 5656 ORS 0 APCTD(3) [FLIP FOR CONSOLE O/P 10 56JQ LDX 7 IDUNIQUE(3) 19 574B SBX 3 5 [POINT TO TOP OF INFORM BLOCK 20 57J2 HUNT2J 3,A7020,ALCB,,REROUTE [FIND LCB=END OF MSGE QUEUE 17 583L LDX 3 BPTR(3) [LAST MSGE IN QUEUE 9 58H= ZMX1 LDX 4 FPTR(2) 20 592W CHAIN 2,3 [CHAIN CONBUFF BLOCK TO REMOTE 17 59GG LDX 2 4 [ACTIVITY AND THEN 19 5=26 LDX 4 ATYPE(2) [CHAIN IN ANY TRANSMISSION 20 5=FQ TXU 4 XBLKC(1) [BLOCKS (A7020/CONSOUT) BEFORE IT 8 5=_B BCS ZMX2 20 5?F2 STO 7 CIDENTM(2) [SET PCT UNIQUE WD IN TRANS BLOCK 8 5?YL BRN ZMX1 4 5#D= ZMX2 21 5#XW HUNTACT AMOP,2,3 [HUNT BACK IN X2 FOR THE REMOTE ACT 21 5*CG LONGCLEAR 2,#62,ZP10 [WAKE ACT IF IN STYLE #62,THEN EXIT.. 18 5*X6 [... OTHERWISE JUST EXIT. 14 5BBQ ZP10 [COMMON EXIT POINT 8 5BWB LDX 2 FX2 8 5CB2 LDX 1 FX1 9 5CTL LDX 0 AWORK2(2) 7 5D*= ADX 0 1 7 5DSW EXIT 0 0 4 5F#G # 4 5FS6 # 10 5G?Q ZIPB1 GEOERR 1,NO CONSA 4 5GRB # 4 5H?2 # 4 5HQL ZIPB 11 5J== MHUNTW 2,CONBUFF,IREMTW 17 5JPW SEGENTRY K9CONSROOT [FOR ALLTIME MACRO 20 5K9G CALL 7 TIME [IF THIS IS TIME MSGE,DELETE ANY EXISTING ONE 9 5KP6 LDX 7 IWAIT(3) 21 5L8Q STOC 7 IWAIT(3) [CLEAR B0 TO SHOW CONSA (SOON) ACTIVE 21 5LNB LDN 7 0 [ [X7=0 IF CONSA ALREADY ACTIVE, ELSE=1 21 5M82 CHAIN 2,BPTR(3) [CHAIN ROUTING BLOCK INFRONT OF DCB 20 5MML BZE 7 ZP10 [J FOR EXIT IF CONSA ACTIVE... 10 5N7= LDX 4 XBLKB+1(1) 20 5NLW CALL 0 SEARCHB [...ELSE SEARCH BACK FOR IT... 8 5P6G BRN ZIPB1 7 5PL6 LDX 2 3 18 5Q5Q FPUT [...PUT CONSA ON LIST... 15 5QKB BRN ZP10 [...AND EXIT 4 5R52 # 20 5RJL # ZFORM : FORM A CONBUFF/IREMTW BLOCK FROM GMON/AOUT, AND IF 21 5S4= # ROUTING TO MX SET UP TRANSMISSION BLOCKS (A7020/CONSOUT). 21 5SHW # ON ENTRY X4=-VE -> 7900, X5=UNIQUE WD FROM APERI/CONSOLE. 4 5T3G # 5 5TH6 ZFORM 8 5W2Q SBX 0 FX1 8 5WGB SMO FX2 9 5X22 STO 0 AWORK2 17 5XFL MHUNTW 2,GMON,AOUT [FIND MESSAGE BLOCK 17 5X_= LDXC 7 A1(2) [NO OF WDS IN MSGE+2 21 5YDW BCS ZUP [IGNORE THIS MSGE IF 'CANT DO' IS SET 21 5YYG ADN 7 ICBUFF-A1-2 [X7=LENGTH OF MSGE + CONTROL INFORMATION 17 5_D6 SETUPCORE 7,3,CONBUFF,IREMTW [SET UP ROUTING BLOCK 10 5_XQ MHUNTW 2,GMON,AOUT 16 62CB SBN 7 ICBUFF-A1 [X7=MESSAGE WDCT 8 62X2 STO 7 A1(3) 18 63BL DCH 6 A1(3) [ROUTING PARAM IN CH.0 7 63W= LDX 0 5 16 64*W STO 4 A1+2(3) [SET OR CLEAR B0 21 64TG BNG 4 ZF1 [J IF 7900: X0=IDENT IN L.S. 12 BITS 21 65*6 SRL 0 12 [TERMINAL ADDR CODE IN L.S. 12 BITS 9 65SQ ZF1 DSA 0 A1+2(3) 19 66#B SCONS 5,4 [GET 2NDRY CONSOLE WD IN X4 9 66S2 STO 4 A1+1(3) 8 67?L LDX 1 FX2 9 67R= LDCH 0 ATYPE(1) 9 68=W SBN 0 ACTCDT/64 7 68QG BCHX 3 / 21 69=6 DCH 0 A1(3) [CH.1 = 0 IF THIS IS TIME/DATE MSGE. 9 69PQ LDX 0 A1+2(3) 21 6=9B LDN 3 ICBUFF(3) [POINT TO MSGE AREA IN ROUTING BLOCK 16 6=P2 BZE 7 ZF [FOR NULL MESSAGE 21 6?8L ADN 2 A1+2 [POINT TO MSGE AREA IN MESSA7E BLOCK 7 6?N= SMO 7 18 6#7W MOVE 2 0 [MOVE TEXT TO NEW BLOCK 8 6#MG ZF LDX 2 FX2 20 6*76 BNG 0 ZF2 [J IF 7900 TO AVOID TRANSLATION 20 6*LQ PCTMESA [CONSTRUCT TRANSMISSION BLOCKS 9 6B6B ZF2 LDX 0 AWORK2(2) 8 6BL2 ADX 0 FX1 7 6C5L EXIT 0 0 4 6CK= # 4 6D4W # 17 6DJG ZHUNTCON [SUBR TO FIND APERI/CONSOLE BLOCK 11 6F46 HUNTMISB 3,APERI,CONSOLE 7 6FHQ EXIT 4 0 4 6G3B # 21 6GH2 # ZFREE : ON ENTRY X3 POINTS TO ROUTING BLOCK. TEST IS MADE 20 6H2L # ON B0 OF A1+2,AND IF CLEAR (IE 7007) WE FIND AND FREE 21 6HG= # ANY TRANSMISSION BLOCKS CHAINED TO ROUTING BLOCK PROVIDED 21 6H_W # AWORK4 IS +VE,INDICATING THAT GOING UP WILL RE-ENTER THE 11 6JFG # MONFILE SEGMENT. 20 6J_6 # NEXT, IF ENTRY WAS AT ZFREA WE FREE THE ROUTING BLOCK 18 6KDQ # OTHERWISE ENTRY WAS AT ZFREB,SO JUST EXIT. 4 6KYB # 7 6LD2 ZFREA TXU 7 3 21 6LXL ZFREB LDN 4 0 [X4=1 IF ROUTEING BLOCK TO BE FREED 9 6MC= LDX 0 AWORK4(2) 21 6MWW BPZ 0 ZFR1 [J IF TRANSMISSION BLKS MAY BE FREED 18 6NBG ZFR BZE 4 ZFE [J IF BLOCK TO BE KEPT 17 6NW6 FREECORE 3 [FREE ROUTING BLOCK 4 6P*Q ZFE 7 6PTB EXIT 7 0 4 6Q*2 ZFR1 9 6QSL LDX 0 A1+2(3) 21 6R#= BNG 0 ZFR [IF 7900, THERE ARE NO TRANS BLOCKS 4 6RRW ZFR2 16 6S?G LDX 0 XBLKC(1) [ A7020,CONSOUT 9 6SR6 LDX 3 FPTR(3) 9 6T=Q TXU 0 ATYPE(3) 20 6TQB BCS ZFR3 [J IF END OF TRANS BLOCKS FOUND 17 6W=2 FREECORE 3 [FREE A TRANS BLOCK 11 6WPL MHUNTW 3,CONBUFF,IREMTW 20 6X9= BRN ZFR2 [J TO SEE IF THERE ARE ANY MORE 21 6XNW ZFR3 LDX 3 BPTR(3) [RESET X3=POINTER TO ROUTINE BLOCK 20 6Y8G BRN ZFR [J FOR TEST ON RELEASE OF R-BLOCK 16 6YN6 #PAGE [NOW FOR THE ENTRY POINTS. 4 6_7Q # 4 6_MB # 6 6_SJ X1CONSROOT 21 72F# # ENTERED FROM SEGMENT MONFILE VIA 'CONSOLE' MAC 21 72LL # IN RESPONSE TO DEMAND(X),INFORM(X),MONOUT(X). 21 736= # ON ENTRY X6=ROUTING PARAM, X7= CONSOLE PROP NO. 4 73KW # 18 745G STOZ AWORK4(2) [MARK ENTRY VIA MONFILE 17 74K6 LDX 6 ACOMMUNE1(2) [ROUTING PARAMETER 17 754Q STO 6 AWORK3(2) [SAVE ROUTING PARAM 18 75JB CALL 4 ZHUNTCON [FIND APERI/CONSOLE BLOCK 17 7642 BPZ 3 Z1 [J IF BLOCK EXISTS 18 76HL ZUP1 [CENTRAL OUTPUT REQUIRED 8 773= LDX 2 FX2 20 77GW LDCH 0 ATYPE(2) [TIME MESSAGES COME FROM ACTCDT 14 782G SBN 0 ACTCDT/64 [ACTIVITY 21 78G6 BNZ 0 YUP1 [BR IF NOT TIME, ELSE CLEAR ANY OLD 21 78_Q CONSTIME [MESSAGE FROM CONSOLE OUTPUT CHAIN 4 79FB ZUP 5 79_2 UP 4 7=DL YUP1 7 7=Y= UPPLUS 1 4 7?BL # 16 7?CW Z1 LDX 4 6 [ROUTING PARAM 7 7?XG SBN 4 3 20 7#C6 BNZ 4 Z2 [J IF PARTICULAR CONSOLE REQD. 4 7#WQ # 19 7*BB # ROUTING PARAM=3-> O/P TO ALL OPERATOR CONSOLES 7 7*BN #SKI JSKI04<1$1 4 7*C2 ( 21 7*C# LDN 7 0 [X7 MEANINGLESS ON ENTRY IN THIS CASE 20 7*CL Z1A STO 7 AWORK4(2) [SO IT CAN BE FREELY USED HERE. 21 7*CY ADX 3 7 [POINT TO NEXT RECORD IN CONSOLE BLK 15 7*D= LDX 4 A1+1(3) [PROPERTY NO 20 7*DJ ADXC 4 4 [TEST B1: IF SET,THERE IS ANOTHER 20 7*DW BCS Z1B [CELL WITH THIS CONSOLE IN HUIDGE 18 7*F8 [SO J TO IGNORE THIS ONE 17 7*FG LDX 4 A1+1(3) [RELOAD PROPERTY WORD 17 7*FS BZE 4 ZUP1 [J IF END OF RECORDS 17 7*G6 LDX 5 A1+2(3) [CONSOLE UNIQUE WORD 21 7*GD CALL 0 ZFORM [FORM ROUTING BLOCK FOR THIS CONSOLE 20 7*GQ CALL 0 ZPUT [CHAIN IT TO RELEVANT ACTIVITY 18 7*H4 CALL 4 ZHUNTCON [RELOCATE CONSOLE BLOCK 20 7*HB BNG 3 ZUP1 [RETURN IF BLOCK HAS BEEN FREED 19 7*HN LDX 6 AWORK3(2) [RESTORE ROUTING PARAMETER 18 7*J2 LDX 7 AWORK4(2) [RESTORE RECOTD POINTER 18 7*J# BDX 7 Z1A [UPDATE RECORD POINTER 19 7*JL Z1B SBX 3 7 [X3=START OF BLK ADDR AGAIN 18 7*JY BDX 7 Z1A [UPDATE RECORD POINTER 4 7*K= # 17 7*KJ # NORMAL PATH : OUTPUT TO CLUSTER CONSOLE. 4 7*KW # 4 7*L8 Z2 10 7*LG LDX 7 JSOURCE3(2) 9 7*LS ANDX 7 BITS22LS 17 7*L_ NGS 3 AWORK4(2) [ - => APERI/CONSOLE 15 7*M6 Z2A LDX 4 A1+1(3) [PROPERTY NO 18 7*MD BZE 4 ZUP1 [J IF REQD PROP NOT FOUND 9 7*MQ ANDX 4 BITS22LS 7 7*N4 TXU 4 7 20 7*NB BCC ZCONFND [J IF REQD CONSOLE RECORD FOUND 16 7*NN BDX 3 Z2A [TRY NEXT ENTRY 4 7*P2 # 5 7*P# ZCONFND 19 7*PF ADS 3 AWORK4(2) [ X3 REL. PTR. DOWN /CONSOLE 20 7*PL LDX 4 A1+1(3) [CONSOLE PROP WD: B0=1 -> 7900 17 7*PY LDX 5 A1+2(3) [CONSOLE UNIQUE WORD 21 7*Q= ZC1 CALL 0 ZFORM [FORM ROUTING BLK FOR THIS CONSOLE 21 7*QJ CALL 0 ZPUT [OTHERWISE CHAIN BLK FOR PRIMARY CONS 9 7*QW LDX 0 AWORK3(2) 18 7*R8 BNZ 0 ZUP1 [BR FO- CENTRAL OUTPUT 19 7*RG BRN ZUP [AND RETURN VIA SUCCESS PATH. 4 7*RS ) 6 7*S6 #SKI JSKI04 4 7*SD ( 21 7*W2 LDN 7 0 [X7 MEANINGLESS ON ENTRY IN THIS CASE 20 7B*L Z1A STO 7 AWORK4(2) [SO IT CAN BE FREELY USED HERE. 21 7BT= ADX 3 7 [POINT TO NEXT RECORD IN CONSOLE BLK 15 7C#W LDX 4 A1+1(3) [PROPERTY NO 20 7CSG ADXC 4 4 [TEST B1: IF SET,THERE IS ANOTHER 20 7D#6 BCS Z1B [CELL WITH THIS CONSOLE IN HUIDGE 18 7DRQ [SO J TO IGNORE THIS ONE 17 7F?B LDX 4 A1+1(3) [RELOAD PROPERTY WORD 17 7FR2 BZE 4 ZUP1 [J IF END OF RECORDS 18 7G=L LDX 6 A1+3(3) [MAY NEED THIS IN ZPUT 17 7GQ= STO 6 AWORK1(2) [BUT ZFORM USES X6 17 7H9W LDX 5 A1+2(3) [CONSOLE UNIQUE WORD 21 7HPG CALL 0 ZFORM [FORM ROUTING BLOCK FOR THIS CONSOLE 15 7J96 LDX 6 AWORK1(2) [RESTORE X6 20 7JNQ CALL 0 ZPUT [CHAIN IT TO RELEVANT ACTIVITY 18 7K8B CALL 4 ZHUNTCON [RELOCATE CONSOLE BLOCK 20 7KN2 BNG 3 ZUP1 [RETURN IF BLOCK HAS BEEN FREED 19 7L7L LDX 6 AWORK3(2) [RESTORE ROUTING PARAMETER 18 7LM= LDX 7 AWORK4(2) [RESTORE RECOTD POINTER 17 7M6W ADN 7 HUIDGENTLEN [UPDATE RECORD PTR 8 7MLG BRN Z1A 19 7N66 Z1B SBX 3 7 [X3=START OF BLK ADDR AGAIN 17 7NKQ ADN 7 HUIDGENTLEN [UPDATE RECORD PTR 8 7P5B BRN Z1A 4 7PK2 # 17 7Q4L # NORMAL PATH : OUTPUT TO CLUSTER CONSOLE. 4 7QJ= # 4 7R3W Z2 10 7RHG LDX 7 JSOURCE3(2) 9 7S36 ANDX 7 BITS22LS 15 7SGQ Z2A LDX 4 A1+1(3) [PROPERTY NO 18 7T2B BZE 4 ZUP1 [J IF REQD PROP NOT FOUND 9 7TG2 ANDX 4 BITS22LS 7 7T_L TXU 4 7 20 7WF= BCC ZCONFND [J IF REQD CONSOLE RECORD FOUND 16 7WYW ADN 3 HUIDGENTLEN [TRY NEXT ENTRY 8 7XDG BRN Z2A 4 7XY6 # 5 7YCQ ZCONFND 20 7YXB LDX 4 A1+1(3) [CONSOLE PROP WD: B0=1 -> 7900 17 7_C2 LDX 5 A1+2(3) [CONSOLE UNIQUE WORD 18 7_WL LDX 6 A1+3(3) [MAY NEED THIS IN ZPUT 16 82B= STO 6 AWORK1(2) [ZFORM USES X6 21 82TW ZC1 CALL 0 ZFORM [FORM ROUTING BLK FOR THIS CONSOLE 9 83*G LDX 6 AWORK1(2) 21 83T6 CALL 0 ZPUT [OTHERWISE CHAIN BLK FOR PRIMARY CONS 9 84#Q LDX 0 AWORK3(2) 18 84SB BNZ 0 ZUP1 [BR FO- CENTRAL OUTPUT 19 85#2 BRN ZUP [AND RETURN VIA SUCCESS PATH. 4 85HS ) 4 85RL # 4 86?= # 21 86QW REROUTE [FIND 2NDRY CONSOLE AND TRY OUTPUT = K2 ENTRY EQUIVALENT 21 87=G [FOR CASE OF PRIMARY FAILURE FOUND WHILST IN CONSROOT. 4 87Q6 # 8 889Q LDX 1 FX1 8 88PB LDX 2 FX2 8 8992 BRN ZR1 4 89NL # 6 8=8= X2CONSROOT 4 8=MW # 9 8?7G STOZ AWORK2(2) 21 8?M6 NGS 1 AWORK4(2) [MARK -VE = ENTRY NOT FROM MONFILE. 4 8?TB ZR1 17 8#D6 HUNTW 3,CONBUFF,IREMTW [LOCATE ROUTING BLOCK 19 8#LB BNG 3 ZUP [J IF ABSENT - NOTHING TO DO 16 8*62 LDCH 4 A1(3) [ROUTING PARAM 7 8*KL SBN 4 3 19 8B5= BNG 4 ZR2 [J UNLESS O/P ALREADY GONE 18 8BJW ZR1A CALL 7 ZFREA [FREE ROUTING BLOCK ETC 19 8C4G LDX 0 AWORK2(2) [ZERO OR LINK IF FROM MONFILE 20 8CJ6 BZE 0 ZUP [NO CENTRAL FUTPUT, ALREADY GONE 8 8D3Q ADX 0 FX1 19 8DHB BRN (0) [EXIT TO CARRY ON DOWN HUIDGE 4 8DHD ZR2 11 8DMJ HUNTW 1,AMXOR,ASPEAK 17 8DPL BNG 1 NSKNO [J IF NO SPEAK BLOCK 8 8DSQ LDEX 0 A1(1) 18 8DXW BZE 0 NSKNO [J IF INOP CHECK NOT REQD 8 8F32 LDX 0 GSIGN 8 8F66 STO 0 A1(1) 17 8F9= [ TELL SPEAK ITS INOP 8 8F#B NSKNO LDX 1 FX1 17 8FCG LDX 5 A1+1(3) [2NDRY CONSOLE WORD 20 8FGL BNZ 5 ZR3 [J IF 2NDRY CONS IS AN IDF DEVICE 7 8G2= ADN 4 2 21 8GFW BPZ 4 ZR1A [RP SHOWS O/P ALREADY SENT CENTRALLY 19 8G_G CALL 7 ZFREB [FREE ANY TRANSMISSION BLOCKS 18 8HF6 CHAIN 3,2 [MOVE IT NEXT TO ACTIVITY 19 8HYQ CONSOUT 3 [OUTPUT TO CENTRAL CONSOLE 14 8JDB BRN ZUP [RETURN 4 8JY2 # 16 8KCL # SECONDARY CONSOLE IS AN IDF DEVICE. 4 8KX= # 20 8LBW ZR3 CONCONS 3,5 [MARK NEW SECONDARY CONSOLE AND 21 8LWG [GET X5 = UNIQUE WD OF 2NDRY CONSOLE 21 8MB6 CALL 0 ZPUT [CHAIN MESSAGE TO RELEVANT ACTIVITY 8 8MTQ BRN ZUP 4 8N*B # 4 8NT2 # 5 8P#L #PAGE 11 8PS= MENDAREA 40,K99CONSROOT 4 8Q?W #END 8 ____ ...47407242000100000000