(George Source)
Macros used: ACROSS, ALTLENG, BXE, BXU, CHAIN, CHECKA, CJOBLOCK, COOR3, DCA, FINDLCA, FREECORE, GEOERR, GLPERI, HUNT2, HUNTMISB, IDFOFF, ILLEGALX, JLUNBUSY, LINK, LOCKC, LOCKCA, LONGCLEAR, MACCS, MENDAREA, MFREEW, MHUNTW, MURDER, OLPFIN1, PMODES, RINGTWO, SEGENTRY, SETNCORE, SETUPCORE, STEP, TOPCA1, UNPLUG, UP
22FL #SEG CONMXA [JOHN BAILEY. 22S3 ...#OPT K0CONMXA=0 236D ...#LIS K0CONMXA>K0CONMX>K0MULTIPLX>K0ALLGEO 23DW 8HCONMXA80 23YG # 24D6 # THIS SEGMENT PERFORMS THE INITIALISATION AND CLOSE DOWN 24XQ # PROCEDURES FOR CONCEPTUAL MULTIPLEXORS. 25CB # 25X2 # 26BL SEGENTRY K1CONMXA,X1CONMXA 26W= SEGENTRY K2CONMXA,X2CONMXA 273D ...#SKI JSKI14 278L ... SEGENTRY K92CONMXA,X92CONMXA 27*W # 27TG # 28*6 # 28SQ # K1CONMXA MONITORS THE FIRST OBJECT PROGRAM PERI TO THE CONCEPTUAL, 29#B # CHECKS THAT THE MODE ISSUED WAS #4000 AND, IF SO, INITIALISES THE 29S2 # OLPA, ITS DATA BLOCK (AMXOR/CONLCB) AND THE RELEVANT ENTRIES IN 2=?L # THE AMXOR/ALINES BLOCK ASSOCIATED WITH EACH MULTIPLEXOR ACTIVITY. 2=R= # 2?=W # K2CONMXA IS ENTERED FROM RELPER TO RELEASE THE CONCEPTUAL FROM THE 2?QG # OBJECT PROGRAM. IT UNBUSIES ALL THE LINES, RESETS THE AMXOR/ALINES 2#=6 # ENTRIES, MARKS THE CONCEPTUAL FREE IN THE IDF AND MURDERS THE OLPA. 2#PQ # 2*9B # 2*P2 PAIR1 LINK CONMXA,1 [REENTRY POINT AFTER ILLEGAL 1ST.PERI 2B8L PAIR2 LINK CONMXC,1 [ENTRY POINT FOR TRANSFER PERIS. 2BN= # 2C7W # 2CMG RESV CALL 1 XILL [CALL ILLEGAL ROUTINE. 2D76 +JYNOFA [FLAG AREA OUT OF RESERVATIONS. 2DLQ MODIL CALL 1 XILL [CALL ILLEGAL ROUTINE. 2F6B +JYMODE [MODE IN ERROR. 2FL2 XILL MACCS ,APETADDR(2),3 [SET REJECTED RESPONSE. 2G5L LDX 5 0(1) [GET IDENTIFIER FOR ILLEGAL MESSAGE. 2GK= STOZ 9(3) 2H4W LDX 1 FX1 2HJG TOPCA1 PAIR1(1) 2J46 UNPLUG [OBEYED FROM PCA. 2JHQ ILLEGALX 5 [FAIL THE O.P. 2JJM ...#SKI JSKI14 2JKJ ...( 2JLF ...ZCHAPLEN 2JMB ... BNG 1 TISIN 2JP8 ... SRL 1 15 2JQ5 ... SLL 1 2 2JR2 ... ADX 2 1 2JRX ... BNZ 1 (0) 2JSS ... ADN 2 1024 2JTP ... EXIT 0 0 2JWL ...TISIN ADX 2 ALOGLEN(1) 2JXH ... EXIT 0 0 2JYD ...SEEK MHUNTW 2,AMXOR,CHAPCOPY 2J^* ... EXIT 1 0 2K2= ...) 2K3B # 2KH2 # 2L2L # 2LG= X1CONMXA [ENTRY FOR OLPA TO ANALYSE MODE #4000 2L^W LDX 1 EVENT1(2) [MEL ADDRESS 2MFG LDCH 0 ARM1-AFW1(1) [CONTROLLING MEMBER NO, 2M^6 STO 0 CMEMBER(2) 2NDQ LDX 6 EVENT2(2) [RELATIVE ADDRESS OF O.P. CONTR. AREA 2NYB XCOOR LDX 1 APETADDR(2) [GET PCA ADDRESS INTO A MODIFIER. 2PD2 LOCKCA 1,6,3 [LOCK DOWN C.A., AND GET ABS. ADDRESS 2PXL LDX 4 0(3) [GET TYPE/MODE WORD. 2QC= ANDN 4 #4000 [J. IF NOT MODE #4000. 2QWW BZE 4 MODIL 2RBG LDX 0 CMAXLINE(2) [FIND LENGTH OF INTERRUPT FLAG AREA. 2RW6 BZE 0 UPX1 [J. IF UPX. 2S*Q LDN 4 4 2STB SBN 0 64 2T*2 BNG 0 MPX1 2TSL LDN 4 16 2W#= BRN MPX1 2WRW UPX1 LDN 4 1 2X?G MPX1 ADN 3 1 [2ND. WD. OF C.A. 2XR6 LDX 5 0(3) [RELATIVE ADDRESS OF 1ST. WD. OF F.A. 2Y=Q LDX 3 CMEMBER(2) [GET CURRENT MEMBER NUMBER. 2YQB PMODES 3,APETADDR(2) [EXTRACT PROGRAM MODES OF THIS MEMBER 2^=2 ANDN 3 #10 [J. IF 22 BIT ADDRESSING. 2^PL BNZ 3 X15AM 329= ANDX 5 BSP16 [MASK FOR 15 BIT ADDRESSING. 32NW X15AM CHECKA 5,4,RESV,APETADDR(2),W,XCOOR[CHECK F.A. WITHIN O/P & LOCK 338G STO 5 CFLAG(2) [SAVE RELATIVE ADDRESS OF 1ST. WORD. 33N6 MHUNTW 1,AMXOR,CONLCB [FIND CONCEPTUAL LINE DATA BLOCK. 347Q LDX 4 CMAXLINE(2) [HIGHEST LINE NO. (0 IF UPX). 34MB LDN 3 0 [CURRENT CONCEPTUAL LINE NO. 3572 LDX 7 GSIGN 35LL NLINE LDCT 5 0(3) [INSERT CURRENT CONCEP. LINE NO. 366= LDX 2 A1+ADDMOP(1) [GET ADDRESS OF LINE'S AMOP(IF ANY), 36KW ORS 5 A1+ACTUAL(1) [IT HAS BEEN SET WHEN IDFONLINE FOUND 375G BZE 2 NULL1 [J. IF NO LINE IS YET ATTACHED. 37K6 ERS 7 A1+ADDMOP(1) 384Q HUNT2 2,AMXOR,ALINES [GET ALINES BLOCK. 38JB LDEX 0 A1+ACTUAL(1) [GET LINE NO FROM CONLCB ENTRY 3942 SLL 0 2 39HL ADX 2 0 3=3= RINGTWO A1(1),A1(2) [ENRING ALINES AND CONLCB ENTRIES. 3=GW NULL1 BZE 4 OUT [J. IF FINISHED. 3?2G ADN 1 CONRECLEN [STEP TO NEXT ENTRY IN CONLCB. 3?G6 ADN 3 1 3?^Q SBN 4 1 3#FB BRN NLINE 3#P8 ...#SKI JSKI14<1$1 3#^2 OUT LDX 2 FX2 [SET "ACCEPTED" RESPONSE IN 3#^H ...#SKI JSKI14 3*24 ...( 3*2K ...OUT LDN 2 1 3*36 ... LDX 1 ADMULTACT 3*3M ... LDX 1 IMOPADDR(1) 3*48 ... ADX 2 ICONCEP(1) 3*4P ... STOC 2 ICONCEP(1) 3*4^ ... BCS SETED 3*5= ... BCT 2 SETED [J IF BLOCK EXISTS 3*5R ... LDX 1 KTAB+KCONMXC [GET LTH. OF BLOCK 3*6# ... CALL 0 ZCHAPLEN 3*6T ... LDX 1 KTAB+KPROFLAG 3*7B ... ADN 2 A1+A1 3*7X ... CALL 0 ZCHAPLEN 3*8= ... LDX 3 2 3*8K ... SETUPCORE 3,3,AMXOR,CHAPCOPY,1 3*8^ ... LOCKC 3,SEEK [LOCK BLOCK 3*9G ... MHUNTW 3,AMXOR,CHAPCOPY 3*=3 ... SMO FX2 3*=J ... STO 3 AWORK4 [SAVE BLOCK ADDRESS 3*?5 ... ADN 3 A1 3*?L ... ACROSS PROFLAG,92 3*#7 ...X92CONMXA 3*#N ... LDX 2 AWORK4(2) 3**9 ... LDX 3 ADMULTACT 3**Q ... LDX 3 IMOPADDR(3) 3*B? ... CHAIN 2,3 [CHAIN AFTER IMOPQ 3*BS ...SETED 3*C* ... LDX 2 FX2 3*CW ...) 3*DL LDX 1 FX1 [OBJECT PROGRAM'S WORD 9. 3*Y= MACCS ,APETADDR(2),3 3BCW ORS 7 9(3) 3BXG OLPFIN1 PAIR2(1) 3CC6 # 3CWQ # 3DBB # 3DW2 X2CONMXA [ENTRY FROM RELPER: OBEYED FROM CPA. 3F*L LDN 6 4 3FT= STO 3 AWORK1(2) [SAVE ADDRESS OF LOCKED OLPA 3G#W LDX 5 JOBNO(2) 3GSG HUNTMISB 1,AMXOR,INTRPT [CHECK FOR AN INTERRUPT BLOCK. 3H#6 BNG 1 START [NONE - NOTHING TO DO. 3HRQ LDX 0 INTENT(1) 3J?B LDX 7 ALOGLEN(1) 3JR2 LDX 6 1 3K=L ANDN 4 #77 3KQ= ADN 7 -1(1) [ADDRESS OF END OF TABLE (MOD 512). 3L9W TICK1 BXU 5 INTJOBNO(1),TICK2 [CHECK FOR AN ENTRY FOR THIS UNIT. 3LPG BXE 4 INTUNIT(1),TICK3 [X4 HOLDS UNIT NO. (C. F. RELPER). 3M96 TICK2 ADN 1 INTRECLEN 3MNQ BCT 0 TICK1 3N8B BRN START [NO ENTRIES, OR ENTRY DELETED. 3NN2 TICK3 SBN 7 INTRECLEN(1) [DISTANCE TO END OF TABLE (MOD 512). 3P7L ANDN 7 -1 3PM= BZE 7 TICK4 3Q6W LDN 4 INTTIME+INTRECLEN(1)[OTHERWISE MOVE REST OF TABLE DOWN 3QLG LDN 5 INTTIME(1) [OVER DISCARDED ENTRY. 3R66 SMO 7 3RKQ MOVE 4 0 3S5B TICK4 LDX 1 6 3SK2 LDX 0 INTENT(1) [SHORTEN BLOCK. 3T4L SBN 0 1 3TJ= BZE 0 TICK5 [NO ENTRIES LEFT : J. TO FREE BLOCK. 3W3W LDX 7 ALOGLEN(1) 3WHG STO 0 INTENT(1) 3X36 SBN 7 INTRECLEN 3XGQ ALTLENG 1,7 3Y2B BRN START 3YG2 TICK5 FREECORE 1 3Y^L BRN START 3^F= PLOOP COOR3 #41 [WAIT FOR 1/5 SEC. THEN TRY AGAIN. 3^YW LDX 3 AWORK1(2) [OLPA ADDRESS. 42DG START STOZ AWORK2(2) [CLEAR MARKER. 42Y6 LDX 7 CMAXLINE(3) [HIGHEST LINE NO. (0 IF UPX). 43CQ HUNT2 3,AMXOR,CONLCB [FIND THE CONCEPTUAL LINE BLOCK. 43XB ADN 3 A1 44C2 BZE 7 UPX2 [J. IF UPX. 44WL QLOOP SBN 7 1 [STEP POINTERS. 45B= ADN 3 CONRECLEN 45TW UPX2 LDX 4 BPTR(3) [J. IF NOT RINGED. 46*G BZE 4 STEP 46T6 LDX 2 ADDMOP(3) [AMOP ADDRESS 47#Q BZE 2 NULL2 [J. IF NULL LINE WITH STORED PERIS 47SB LDEX 4 ACTUAL(3) [LINE NUMBER 48#2 FINDLCA ,4 48RL SRC 4 9 [ISSUE CANCEL REGARDLESS OF WHETHER 49?= ORN 4 4 [LINE APPEARS BUSY, SO THAT EXEC. CAN 49QW DCA ,STO,4,MODE [RESET ITS INTERNAL MARKERS. 4==G GLPERI [CANCEL 4=Q6 JLUNBUSY 1,NULL2 [J. IF ACCEPTED [NO CURRENT TRANSFERS 4?9Q LDX 2 FX2 [IN PROGRESS ON THE LINE 4?PB STO 6 AWORK2(2) [SET "LINE STILL BUSY" MARKER. 4#92 STEP BNZ 7 QLOOP [J. IF MORE LINES IN THIS PASS. 4#NL LDX 0 AWORK2(2) [J. IF SOME LINES STILL BUSY. 4*8= BNZ 0 PLOOP 4*MW # 4B7G SETNCORE 4,1,IDF,CONNAME [SET UP BLOCK CONTAINING CONCEP. NAME 4BM6 LDX 3 AWORK1(2) [GET OLPA (LOCKED) ADDRESS. 4C6Q LDN 0 CNAME(3) 4CLB ADN 1 A1+1 4D62 MOVE 0 3 4DKL LDX 7 CMAXLINE(3) 4DNQ ...#UNS IDFMARK8 4DRW ... IDFOFF (GEOERR),VAB,IDF,CONNAME,A1+1,1[UNSET "ONLINE" & "ATTACHE 4DX2 ...#UNS IDFMARK8 4F26 ...#SKI 4F5= IDFOFF VAB,IDF,CONNAME,A1+1,1[UNSET "ONLINE" & "ATTACHED" MARKER 4FJW MFREEW IDF,CONNAME [IN IDF THEN GO ROUND SETTING UP ACTS 4G4G [TO RESTART SYSTEM USE OF LINES 4GJ6 HUNT2 3,AMXOR,CONLCB [OLPA IS LOCKED : ADDRESS IN X3 4H3Q LDN 6 0 4HHB ADN 3 A1 4J32 BNZ 7 RW 4JGL BUX 7 RLOOP 4K2= RW ADN 3 CONRECLEN 4KFW # 4K^G RLOOP LDXC 2 ADDMOP(3) [J. IF LINE WAS NOT ATTACHED. 4LF6 BZE 2 STOP 4LYQ ADN 6 1 4MDB HUNT2 2,AMXOR,ALINES 4MY2 LDX 0 ACTUAL(3) 4NCL ANDN 0 #7777 4NX= SLL 0 2 4PBW ADX 2 0 4PWG LDCT 0 #634 [SET UP THE "BUSY", "SETTING UP" 4QB6 ORS 0 A1+FOURTHWD(2) [AND "NEEDS ACTIVITY" BITS. 4QTQ LDCT 0 #210 [UNSET "ATTACHED" & "ONLINE" BITS. 4R*B ERS 0 A1+FOURTHWD(2) 4RT2 STOP BCT 7 RW 4S#L BZE 6 NOMPX 4SS= LDX 1 ADMULTACT [J.IF NO ACTUAL PLEXORS 4T?W LDX 2 IMOPADDR(1) [WAKE UP THE CORE REQUEST ACTIVITY 4TRG ADS 6 IWAKE(2) [ADD TO IWAKE IN IMOPQUE THE NO OF 4W?6 LONGCLEAR 2,#125,NOMPX [ACTIVITIES TO BE WOKEN UP 4WQQ NOMPX CJOBLOCK 1 [SOMETHING MORE ELABORATE MAY 4X=B LDN 0 1 [BE NEEDED HERE WHEN JOBS RUNNING 4XQ2 SBS 0 AEXCO(1) [CONCEPTUALS ARE NOT NECESS. REALTIME 4XRJ ...#SKI JSKI14 4XT6 ...( 4XTD ... SMO AWORK1(2) 4XTQ ... LDX 3 CFLAG 4XW4 ... BNG 3 NIVK 4XWB ... BZE 3 NIVK 4XWN ... LDX 3 ADMULTACT 4XY= ... LDX 3 IMOPADDR(3) 4X^S ... LDX 0 ICONCEP(3) 4Y3B ... BCT 0 SMLFT 4Y4Y ... ORX 0 GSIGN 4Y6G ...SMLFT STO 0 ICONCEP(3) 4Y7? ...NIVK 4Y84 ...) 4Y9L LDX 3 AWORK1(2) 4YP= MURDER 3 [GET RID OF THE OLPA & CONLCB. 4^8W UP 4^NG NULL2 LDX 1 BPTR(3) [DERING CONLCB ENTRY. 5286 STOZ BPTR(3) 52MQ STOZ BPTR(1) 537B LDX 2 FX2 53M2 BRN STEP [J. FOR NEXT LINE. 546L # 54L= # 555W # 55KG # 5656 # 56JQ # 574B VAB GEOERR 1,IDFERROR [ERROR IF NAME NOT RECOGNISED BY IDF. 57J2 # 583L # 58H= #SKI K6ALLGEO>99-99 592W ( 59GG MENDAREA 20,K100CONMXA 5=26 ) 5=FQ #END ^^^^ ...72127537000200000000