{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CONMXA85)}}
====== CONMXA85 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHECKA|CHECKA]], [[george:macro:CJOBLOCK|CJOBLOCK]], [[george:macro:COOR3|COOR3]], [[george:macro:DCA|DCA]], [[george:macro:FINDLCA|FINDLCA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GLPERI|GLPERI]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNTMISB|HUNTMISB]], [[george:macro:IDFOFF|IDFOFF]], [[george:macro:ILLEGALX|ILLEGALX]], [[george:macro:JLUNBUSY|JLUNBUSY]], [[george:macro:LINK|LINK]], [[george:macro:LOCKC|LOCKC]], [[george:macro:LOCKCA|LOCKCA]], [[george:macro:LONGCLEAR|LONGCLEAR]], [[george:macro:MACCS|MACCS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MURDER|MURDER]], [[george:macro:OLPFIN1|OLPFIN1]], [[george:macro:PMODES|PMODES]], [[george:macro:RINGTWO|RINGTWO]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:STEP|STEP]], [[george:macro:TOPCA1|TOPCA1]], [[george:macro:UNPLUG|UNPLUG]], [[george:macro:UP|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