22FL #SEG CONMXC [JOHN BAILEY. 22PD #OPT K6CONMXC=700 22^= ...#OPT K0CONMXC=0 2394 ...#LIS K0CONMXC>K0CONMX>K0MULTIPLX>K0ALLGEO 23DW 8HCONMXC80 23YG # 24D6 # 24XQ # THIS SEGMENT MONITORS AND SERVICES THE PERI INSTRUCTIONS 25CB # ISSUED BY THE OBJECT PROGRAM TO A CONCEPTUAL MPX OR UPX 25X2 # THE FIRST PERI MUST HAVE MODE #4000 TO ESTABLISH AN INTERRUPT 26BL # FLAG AREA FOR THE DEVICE (SERVICED BY CONMXA), CONMXC CHECKS 26W= # SUBSEQUENT PERIS AND 27*W # 1.REPERIES THE PERIS TO THE ATTACHED LINES TO EXECUTIVE 27TG # USING THE CONTROL AREA IN THE AMOP ACTIVITY BLOCK ASSOCIATED 28*6 # WITH THE PARTICULAR LINE INVOLVED.IN THE CORRESPONDING ENTRANT 28SQ # IN CONLCB BLOCK THE CONTENT OF ADDMOP AND BPTR IS NOT EQUAL 29#B # ZERO.INTERRUPT FLAGS ON ATTACHED LINES FOR THE OBJECT PROGRAM 29S2 # ARE RAISED AUTONOMOUSLY FROM THE AMOP WITHOUT ENTERING EITHER 2=?L # 2.PERIS TO LINES WHICH DO NOT EXIST ON THE CONCEPTUAL MPX,BUT 2=R= # WHOSE EXISTENCE IS POSSIBLE(LINE NO LESS THAN 64) ARE SERVICED 2?=W # BY THE SEGMENT AS NON IMPLEMENTED PERIS 2?QG # 2#=6 # 3.ON RECEIVING A MODE #1000 PERI,THE CONCEPTUAL IS DEEMED TO 2#PQ # HAVE BEEN RELEASED AND THE LINE CONTROL BLOCK IS FREED 2*9B # 2*P2 # 4.ON RECEIVING PERIS TO LINE ZERO AND NON ATTACHED LINES SEGMENT 2B8L # JUMPS ACROSS TO K1CONMXB 2BN= # 2C7W # 2CMG # 2D76 SEGENTRY K1CONMXC,X1CONMXC 2D## ...#SKI JSKI14 2DFG ... SEGENTRY K92CONMXC,X92CONMXC 2DLQ # 2F6B # 2FL2 # 2G5L # 2GK= #DEF ZLEN=INTRECLEN+INTTIME-INTENT 2H4W # 2HJG # 2J46 # 2JHQ # 2K3B #SKI BALROG<1$1 2KH2 ( 2L2L ZAFW +AFW1 2LG= +AFW2 2L^W +AFW3 2MFG +AFW4 2M^6 ) 2NDQ # 2NYB RMASK #60077777 2PD2 RECCON +CONRECLEN 2PXL PJYCOLI +JYCOLI [CONCEPTUAL LINE NO.ILLEGAL 2QC= PJYNOCA +JYNOCA [CONTROL AREA OUT OF RESERVATIONS 2QWW PJYRESVIOL +JYRESVIOL [RESERVATION VIOLATION 2RBG PJYCOUNT +JYCOUNT [COUNT OUT RANGE 2RW6 PJYMODE +JYMODE [MODE IN ERROR 2S*Q PAIR1 LINK CONMXC,1 [ENTRY POINT FOR ILLEGAL ROUTINES 2STB # 2T*2 SUFR STO 0 ACOMMUNE9(2) 2TSL LDX 2 APETADDR(2) 2W#= FADDRESS 2,1,HLOCK2 2WRW LDX 2 FX2 2X?G LDX 0 ACOMMUNE9(2) 2XR6 EXIT 0 0 2Y=Q # 2YQB # SUBROUTINE NAFLC FINDS THE CORRESPONDING FLAGCOUNT IN OLPA,PUTS IT 2^=2 # IN X4 AND IN X3 IS PUT THE CHARACTER/WORD MODIFIER 2^PL # 329= # 32NW NAFLC LDX 3 AWORK3(2) [CONCEPTUAL LINE NO. 338G SRC 3 2 33N6 SMO 2 347Q LDCH 4 FLAGCT(3) 34MB EXIT 0 0 3572 # 35LL # 366= # SUBROUTINE NFLWR CREATES THE PATTERN FOR SETTING/UNSETTING THE 36KW # FLAG IN FLAG AREA IN X4 AND THE WORD MODIFIER IN X3 375G # 37K6 NFLWR LDX 3 AWORK3(2) [LINE NO. 384Q BNZ 3 REGO 38JB LDCT 4 #200 3942 EXIT 0 0 39HL REGO SRC 3 4 3=3= LDCH 5 3 3=GW ANDX 3 HALFTOP 3?2G SLC 3 4 3?G6 LDCT 4 #400 3?^Q SRL 4 0(3) [CREATE THE PATTERN 3#FB LDX 3 5 [LOAD THE WORD MODIFIER 3#^2 EXIT 0 0 3*DL # 3*Y= # 3BCW # 3BXG # SUBROUTINE SETS FLAGS.THE NUMBER OF FLAGS,BY WHICH IS THE FLAGCOUNT 3CC6 # TO BE INCREASED,IS EXPECTED IN X5 3CWQ SUB3 STO 0 AWORK1(2) 3DBB CALL 0 NAFLC 3DW2 ADX 4 5 3F*L SMO 2 3FT= DCH 4 FLAGCT(3) 3G#W SBX 4 5 3GSG BZE 4 MFNOS 3H#6 ZORKA LDX 0 AWORK1(2) 3HRQ EXIT 0 0 3J?B MFNOS CALL 0 NFLWR 3JR2 LDX 1 CFLAG(2) 3K=L ADX 1 3 3KQ= CALL 0 SUFR 3L9W ORS 4 0(1) 3LPG LDX 4 CMEMBER(2) [PROGRAM MEMBER NUMBER 3M96 TICKLE JOBNO(2),4 3MNQ BRN ZORKA 3N8B # 3NN2 # THIS SUBROUTINE CHECKS WHETHER 22AM OR 15 AM 3P7L RMODE LDX 7 APETADDR(2) 3PM= LDX 2 EVENT1(2) 3Q6W PMODES 2,7 3QLG ANDN 2 #10 3R66 BNZ 2 REXMO 3RKQ LDX 1 FX1 3S5B ANDX 5 RMASK(1) 3SK2 REXMO LDX 2 FX2 3T4L EXIT 0 0 3TJ= # 3W3W # SUBROUTINE CHECKS RESV RESV.VIOLATION AND CALCULATES 3WHG # GE0,ADDRESS OF REPLY WORD FO- NULL LINES AND LINE ZERO ROUTINE 3X36 SUB5 CHECKB 5,,RESV3,APETADDR(2),,RGER1 3XGQ EXIT 4 0 3Y2B # FOR THIS SUBROUTINE ONE ASSUMES HLOCKN IN X1 AND THE ADDRESS TO BE 3YG2 # CONVERTED IN X5 (N=1,2...N ) 3Y^L # 3^F= SUB6 ADX 1 APETADDR(2) 3^YW FADDRESS 1,5 42DG EXIT 4 0 42Y6 # 43CQ SUB7 LDX 4 6 43XB ANDN 4 2 44C2 BZE 4 RDOP 44WL CALL 0 NAFLC 45B= BZE 4 RDOP 45TW LDN 4 0 46*G SMO 2 46T6 DCH 4 FLAGCT(3) 47#Q CALL 0 NFLWR 47SB LDX 1 CFLAG(2) 48#2 ADX 1 3 [CLEAR THE BIT IN FLAGWORD 48RL CALL 0 SUFR 49?= ERS 4 0(1) 49QW RDOP EXIT 7 0 4==G # THIS SUBROUTINE MOVES NUMBER OF WORDS DEFINED IN X7 FROM AREA DEFINED 4=Q6 # IN X4(RELATIVE TO OBJECT PROG.) TO AREA DEFINED IN X5 (IN GEORGE) 4?9Q SUB9 SMO APETADDR(2) 4?PB LDN 1 HLOCK1 4#92 STO 0 ACOMMUNE9(2) 4#NL FOUTMOVE 1,4,5,7 4*8= LDX 0 ACOMMUNE9(2) 4*MW EXIT 0 0 4B7G # 4BM6 SREWO SLC 6 1 [SET EITHER B4 AND B5,OR B4 ONLY 4C6Q RSEW BNG 6 RMAJ 4CLB LDCT 4 #30 4D62 EXIT 0 0 4DKL RMAJ LDCT 4 #20 4F5= EXIT 0 0 4FJW # 4G4G OUTAC LDX 2 FX2 4GJ6 MACCS ,APETADDR(2),3 4H3Q LDCT 0 #400 4HHB STO 0 9(3) 4J32 BRN MOLFI 4JGL OUTRE LDX 2 FX2 4K2= MACCS ,APETADDR(2),3 4KFW STOZ 9(3) 4K^G MOLFI 4LF6 #SKI K6CONMX>99-99 4LYQ TRACE 9(3),WOKEN UP 4MDB LDX 1 FX1 4MY2 OLPFIN1 PAIR1(1) 4NCL # 4NX= # 4PBW NOLIL LDX 5 PJYCOLI(1) 4PWG BRN MCURD 4QB6 RESV2 LDX 1 FX1 4QTQ LDX 5 PJYNOCA(1) 4R*B BRN MCURD 4RT2 RESV3 LDX 1 FX1 4S#L LDX 5 PJYRESVIOL(1) 4SS= BRN MCURD 4T?W MCOWR LDX 1 FX1 4TRG LDX 5 PJYCOUNT(1) 4W?6 BRN MCURD 4WQQ MODIL LDX 5 PJYMODE(1) 4X=B MCURD LDX 2 FX2 4XQ2 MACCS ,APETADDR(2),3 4Y9L STOZ 9(3) 4YP= TOPCA1 PAIR1(1) 4^8W UNPLUG 4^NG ILLEGALX 5 4^P2 ...#SKI JSKI14 4^PG ...( 4^Q2 ...RCHN LDX 2 FX1 4^QG ... SBN 2 A1 4^R2 ... LDX 1 ATYPE(2) 4^RG ... BNZ 1 ZNNN 4^S2 ... LDX 1 BPTR(2) 4^SG ... BZE 1 ZNNN 4^T2 ... SMO FPTR(2) 4^TG ... STO 1 BPTR 4^W2 ... LDX 1 FPTR(2) 4^WG ... SMO BPTR(2) 4^X2 ... STO 1 FPTR 4^XG ... STOZ BPTR(2) 4^Y2 ... STO 2 FPTR(2) 4^YG ...ZNNN LDX 1 FX1 4^^2 ... LDX 2 FX2 4^^G ... EXIT 0 0 5222 ...RMV LDEX 3 4 522G ... BZE 3 ZEMV 5232 ... SMO 3 523G ...NMV MOVE 1 0 5242 ... ADX 1 3 524G ... ADX 2 3 5252 ... SBX 4 3 525G ...ZEMV LDN 3 512 5262 ... BNZ 4 NMV 526G ... EXIT 0 0 5272 ...) 5286 # [ENTRY FOR ALL SUBSEQUENT PERIS. 52MQ X1CONMXC 537B # 53M2 # IN EVENT 2 IN OLPA IS THE ADDRESS OF CA RELATIVE TO OP DATUM 546L # IN EVENT 3 IN OLPA IS THE LINE NO. 54L= # IN APETADDR IN OLPA IS THE PCA ADDRESS 54RD ...#SKI JSKI14 54YL ... CALL 0 RCHN 555W STOZ 6 55KG LDX 1 APETADDR(2) 5656 LDX 3 EVENT2(2) [ADDRESS OF CA RELATIVE TO OP 56JQ LOCKCA 1,3,3 [GEO.ADDR.OF CA IN OP INTO X3 574B STO 3 AWORK4(2) [GEORGE ADDRESS OF OP CA 57J2 LDX 5 CFLAG(2) [LOCK F.A INTO HLOCK1 583L CALL 4 SUB5 58H= LDX 5 0(3) 592W ANDX 5 BSP16 [B9-B23 OF TYPE/MODE WORD 59GG STO 5 AWORK1(2) [INTO AWORK1 5=26 LDX 1 FX1 5=FQ BZE 5 MODIL [MODE #0 IS ILLEGAL 5=^B LDN 4 #4200 [J. IF MODE #4000 OR MODE #200. 5?F2 ANDX 4 5 5?YL BNZ 4 TICK1 5#D= MHUNTW 3,AMXOR,CONLCB [DEFINE GA OF A1 IN CONLCB 5#XW LDX 7 3 5*CG ADN 3 A1 5*X6 LDN 4 #1000 [BRANCH IF MODE #1000 5BBQ BXE 5 4,M1000 5BWB LDX 4 CMAXLINE(2) [IS IT UPX 5CB2 STOZ AWORK3(2) 5CTL # 5D*= #SKI K6CONMX>99-99 5DSW ( 5F#G TRACE EVENT3(2),LINE NO 5FS6 TRACE AWORK1(2),MODE 5G?Q ) 5GRB BZE 4 UNIPL 5H?2 LDX 2 EVENT3(2) [LOAD THE LINE NUMBER 5HQL SRL 2 6 5J== SMO FX2 5JPW STO 2 AWORK3 [LINE NO. 5K9G BZE 2 NICLI [J TO LINE ZERO ROUTINES 5KP6 BXL 2 4,NOLAJ [LINE NO LE OR EQ 5L8Q BXE 2 4,NOLAJ 5LNB LDN 4 #100 5M82 BXGE 2 4,NOLIL [LINE NO GE OR EQ 64 5MML LDCT 6 #600 [SET MARKER NOT LINE ZERO END 5N7= LDX 2 FX2 [J TO NON EXISTENT LINES ROUTINE 5NLW BRN VUBLI 5P6G NOLAJ MPA 2 RECCON(1) [CALCULATE THE ADDRESS OF THE 5PL6 LDX 2 FX2 [CORRESPONDING ELEMENT 5Q5Q UNIPL STO 3 AWORK2(2) [ELEMENT ADDRESS INTO AWORK2 5QKB LDX 4 ADDMOP(3) [WHEN EQUALS ZERO 5R52 BZE 4 NOOPR [J TO NON ATTACHED-NULL LINE ROUTINES 5RJL LDCT 6 #400 5S4= STO 4 AWORK4(2) [AMOP ADDRESS 5SHW SMO 4 5T3G LDX 0 CPPTR 5TH6 STO 0 ACOMMUNE2(2) [POINTER TO THE DEVICE LIST 5W2Q LDX 0 ACTUAL(3) 5WGB ANDX 0 BSP16 5X22 STO 0 ACOMMUNE1(2) [ACTUAL LINE NO 5XFL LDX 4 1 5X^= FINDLCA ACOMMUNE2(2),ACOMMUNE1(2) 5YDW STO 1 ACOMMUNE3(2) 5YYG LDX 1 4 5^D6 BRN VUBLI 5^XQ NOOPR LDCT 6 #200 [NON ATTACHED LINES 62CB RIDIO SBS 7 AWORK2(2) [DISTANCE OF THE CONLCB ENTRANT FROM 62X2 [THE BEGINNING OF THE BLOCK 63BL ACROSS CONMXB,1 63W= NICLI LDX 2 FX2 64*W STO 3 AWORK2(2) [ELEMENT ADDRESS 64TG BRN RIDIO 65*6 # 65SQ # 66#B # TYPE/MODE WORD IS CHECKED-IF MODE #2000 ONLY -B20 SET 66S2 # -IF MODE #2000 WITH OTHER MODES -B21 SET 67?L # -IF MODE #2000 TOGETHER WITH #10 MODE - 67R= # ERROR IN MODE DISPLAYED AND PERI REJECTED 68=W # 68QG VUBLI LDX 5 AWORK1(2) [MODE WORD 69=6 LDX 4 5 [CHECK IF BITS 14,15,16,17 SET 69PQ ANDN 4 #1700 6=9B BNZ 4 MODIL 6=P2 LDN 4 #2000 6?8L BXU 5 4,NEDVO [IF MODE #2000 ONLY SET BIT 20 6?N= ORN 6 #10 6#7W BRN NODUT 6#MG NEDVO ANDX 4 5 6*76 BZE 4 NEKAM [J IF NOT MODE #2000 AT ALL 6*LQ ANDN 5 #10 6B6B BNZ 5 MODIL [IF MODE #10 PRESENT,GO ILLEGAL 6BL2 ORN 6 4 [IN OTHER CASE SET B21 6C5L NODUT CALL 0 NAFLC [FLAGCOUNT INTO X4 6CK= BNZ 4 RFVP 6D4W BRN TONCA [TEMPORARY FRIG ONLY!!!!!!!!!!!!!!!! 6DJG # 6F46 # 6FHQ # 6G3B LDX 1 ACOMMUNE3(2) [LCA DISPLACEMENT 6GH2 DLCA 1,LDX,0,FLAG 6H2L ANDN 0 #77 6HG= BZE 0 TONCA [IF NOT A FLAG DO NOTHING DND CARRY O 6H^W LDX 1 AWORK2(2) [CONLCB ENTRY 6JFG LDCT 0 1 6J^6 SMO BPTR(1) 6KDQ ORS 0 FOURTHWD 6KYB BRN TONCA 6LD2 RFVP SBN 4 1 6LXL SMO 2 [UNSET IN FLAGCOUNT ONE FLAG 6MC= DCH 4 FLAGCT(3) 6MWW BZE 4 TYNA 6NBG LDX 4 CMEMBER(2) 6NW6 TICKLE JOBNO(2),4 6P*Q BRN TONCA 6PTB TYNA [FLAG PATTERN INTO X4, MODIFIER INTO 6Q*2 CALL 0 NFLWR [X3 6QSL LDX 1 CFLAG(2) [RELATIVE ADDRESS OF F.A AND REL.ADDR 6R#= ADX 1 3 [OF THE CORRESPONDING WORD IN IT 6RRW CALL 0 SUFR 6S?G ERS 4 0(1) [SET THE FLAG 6SR6 # 6T=Q # 6TQB # 6W=2 TONCA LDX 4 6 [IF MODE #2000 ONLY ACCEPTED 6WPL ANDN 4 #10 [AND WAKE THE PROGRAM 6X9= BZE 4 NEKAM 6XNW LDX 5 EVENT2(2) [RELATIVE ADDRESS OF CA 6Y8G ADN 5 1 [DEFINE REL.ADDRESS OF CA2 6YN6 LDN 1 HLOCK1 6^7Q CALL 4 SUB6 [CONVERT TO GEO.ADDR. 6^MB SMO 5 7272 LDX 5 0 72LL CALL 0 RMODE [CHECK MODE 736= CALL 4 SUB5 [CHECK WHETHER REPLY WORD WITHIN RESV 73KW BRN OUTAC 745G # 74K6 # THIS SUBROUTINE ANALYSES MODES LE OR EQ #63 754Q # 75JB # 7642 # 76HL NEKAM LDX 3 AWORK2(2) [ADDRESS OF CONLCB INTO X3 773= LDX 4 AWORK1(2) [MODE 77GW ANDN 4 7 782G SBN 4 3 78G6 BZE 4 RCHE 78^Q SBN 4 3 79FB BNZ 4 ROKO [IF DOUBLE TRANSFER CHECK 79^2 RCHE LDN 5 7 [WHETHER THE WHOLE(7 WORDS) OF CA 7=DL CHECKEXT EVENT2(2),5,RESV2,APETADDR(2),,RGER1,HLOCK1 [IS WITHIN 7=Y= [RESERVATIONS 7?CW ROKO LDX 4 AWORK1(2) 7?XG ANDN 4 #77 [MASK LAST SIX BITS 7#C6 LDN 5 #30 [IF MODE LE #30 J 7#WQ BXL 4 5,MODNI 7*BB # 7*W2 LDN 5 #40 [IF MODE GE OR EQ #40 J 7B*L BXGE 4 5,MODVY 7BT= BRN MODIL [IN ANY OTHER CASE ERROR IN MODE 7C#W # 7CSG # 7D#6 # 7DRQ MODVY SRC 4 5 [IF B19 SET J MOD60 7F?B BNG 4 MOD60 7FR2 # 7G=L SLC 4 1 7GQ= BNG 4 MOD50 [IF B20 SET J MOD50 7H9W # 7HPG SLC 4 4 7J96 ERN 4 #42 [MODE #42 ? 7JNQ BNZ 4 MOD43 7K8B LDN 4 #42 7KN2 STO 4 AWORK1(2) 7L7L STOZ AWORK2(2) [MODE #42 7LM= BRN MODOK 7M6W [ 7MLG MOD43 ERN 4 1 [MODE #43? 7N66 BNZ 4 MODIL [IF NOT GO ILLEGAL 7NKQ [ 7P5B LDN 4 1 7PK2 STO 4 AWORK1(2) 7Q4L LDN 4 #42 7QJ= STO 4 AWORK2(2) [MODE #43 7R3W BRN MODOK 7RHG MOD60 SLC 4 5 7S36 ERN 4 #62 [MODE #62? 7SGQ BNZ 4 MOD66 7T2B LDN 4 #62 7TG2 STO 4 AWORK1(2) 7T^L STOZ AWORK2(2) [MODE #62 7WF= BRN MODOK 7WYW [ 7XDG MOD66 ERN 4 4 [MODE #66? 7XY6 BNZ 4 MODIL 7YCQ LDN 4 #42 7YXB STO 4 AWORK1(2) 7^C2 LDN 4 #22 7^WL STO 4 AWORK2(2) [MODE #66 82B= BRN MODOK 82TW [ 83*G MOD50 SLC 4 4 83T6 ERN 4 #53 [MODE #53? 84#Q BNZ 4 MODIL 84SB ORN 6 2 [SET B22 IN X6 -MODE #10 85#2 LDN 4 #11 85RL STO 4 AWORK1(2) [MODE #53 86?= LDN 4 #42 86QW STO 4 AWORK2(2) 87=G BRN MODOK 87Q6 MODNI SRC 4 5 [B19 SET,MOD #20 ? 889Q BPZ 4 MOMAL 88PB SLC 4 2 [B21 SET ? 8992 BNG 4 MOD26 89NL SLC 4 3 8=8= ERN 4 #22 [MODE #22 ? 8=MW BNZ 4 MOD23 8?7G LDN 4 #22 [MODE #22 8?M6 STO 4 AWORK1(2) 8#6Q STOZ AWORK2(2) 8#LB BRN MODOK 8*62 [ 8*KL MOD23 ERN 4 3 [IF NOT MODE #21 MODE ILLEGAL 8B5= BNZ 4 MODIL 8BJW LDN 4 #21 8C4G STO 4 AWORK1(2) [MODE #21 8CJ6 STOZ AWORK2(2) 8D3Q BRN MODOK 8DHB [ 8F32 MOD26 SLC 4 3 8FGL ERN 4 #26 [IF MODE #26 THAN OK OTHERWISE 8G2= BNZ 4 MODIL [ILLEGAL 8GFW LDN 4 2 8G^G STO 4 AWORK1(2) 8HF6 LDN 4 #22 8HYQ STO 4 AWORK2(2) [MODE #26 8JDB BRN MODOK 8JY2 MOMAL SLC 4 1 [IF BIT 20 IN X4 NOT SET J MODJE 8KCL BPZ 4 MODJE 8KX= [ 8LBW SLC 4 4 8LWG ERN 4 #11 [MODE #11 ? 8MB6 BNZ 4 MOD13 8MTQ ORN 6 2 [SET B22 IN X6 -MODE #10 8N*B LDN 4 #11 8NT2 STO 4 AWORK1(2) 8P#L STOZ AWORK2(2) [MODE #11 8PS= BRN MODOK 8Q?W [ 8QRG MOD13 ERN 4 2 [IF ALSO NOT MODE #13,MODE ILLEGAL 8R?6 BNZ 4 MODIL 8RQQ ORN 6 2 8S=B LDN 4 #11 8SQ2 STO 4 AWORK1(2) 8T9L LDN 4 2 8TP= STO 4 AWORK2(2) [MODE #13 8W8W BRN MODOK [B22 - MOD *10 8WNG [ 8X86 MODJE SLC 4 1 [IF B21 NOT SET J M123 8XMQ BPZ 4 M123 8Y7B [ 8YM2 SLC 4 3 [MODE#4 ? 8^6L ERN 4 4 8^L= BNZ 4 MODIL 925W LDX 3 ACOMMUNE3(2) [MODE *4 92KG JLUNBUSY 3,OUTAC [ACCEPT IMMEDIATELY IF NOT BUSY. 9356 LDX 4 ACOMMUNE1(2) [PERI *40004 + LINE NO INTO DCA 93JQ SRC 4 9 944B ORX 4 BIT9 94J2 ORN 4 4 953L DCA ACOMMUNE2(2),STO,4,MODE 95H= GLPERI ACOMMUNE2(2) 962W JLBUSY 3,OUTRE 96GG BRN OUTAC 9726 M123 LDN 0 1 97FQ LDN 5 2 97^B SLC 4 3 98F2 SBN 4 2 98YL BNG 4 MOD1 [J FOR MODE #1 99D= BZE 4 MOD2 [J FOR MODE #2 99XW STO 0 AWORK1(2) 9=CG STO 5 AWORK2(2) [MODE #3 9=X6 BRN MODOK 9?BQ MOD2 STO 5 AWORK1(2) [MODE #2 9?WB BRN ROK 9#B2 MOD1 STO 0 AWORK1(2) [MODE #1 9#TL ROK STOZ AWORK2(2) 9**= # 9*SW MODOK SLC 6 1 [CHECK IF NORMAL LINES OR 9B#G BNG 6 ZVLAL [LEGAL LINES BUT NOT AVAILABLE 9BS6 SRC 6 1 [OR LINE REFERRING TO NULL ELEMENT 9C?Q # 9CRB CALL 7 SUB7 [CALL SUBROUTINE WHICH CHECKS THE 9D?2 [PRESENCE OF M #10 & UNSETS ALL FLAGS 9DQL LDX 3 AWORK4(2) [ADDRESS OF AMOP INTO X3 9F== LDX 4 AWORK1(3) 9FPW ADN 4 1 [STORE MAX.NO OF CHARACTERS TO BE 9G9G STO 4 AWORK3(2) [TRANSFERRED INTO AWORK3 9GP6 # 9H8Q LDX 3 ACOMMUNE3(2) [LINE ENTRY DISPLACEMENT IN LCA 9HNB LDN 4 1 [PRESET TO ACCESS WDS 2-4 OF O.P. CA. 9J82 JLUNBUSY 3,RLCFR [J. IF CURRENT IS FREE. 9JML LDX 0 AWORK2(2) [J. TO REJECT IF DOUBLE TRANSFER 9K7= BNZ 0 OUTRE 9KLW JLSBUSY 3,OUTRE [OR SPOUT IS ALSO BUSY. 9L6G RSPOU ADN 3 ILMODE2-ILMODE [SET MODIFIER TO ACCESS SPOUT. 9LL6 RLCFR ADX 4 EVENT2(2) [PTR. TO RELEVANT PART OF O.P. C.A. 9M5Q LDN 5 5 [MOVE 3 WDS (CA2-CA4 OR CA5-CA7) INTO 9MKB LDN 7 3 [X5,X6,X7. 9N52 CALL 0 SUB9 9NJL LDX 4 AWORK1(2) [MODE 9P4= ORX 4 BIT9 [PLUS ADDITIVE #40000. 9PHW RELO DLCA 3,DLA,6,COUNT [SET UP LCA. 9Q3G DLCA 3,STO,7,CTSA 9QH6 DLCA 3,DLA,4,MODE [RWA GOES IN LAST TO PREVENT ANY 9R2Q DLCA 3,STO,5,CREP [PREMATURE DESPOUTING BY EXEC. 9RGB LDX 0 AWORK2(2) [J. IF SPOUT NOW DEALT WITH OR IF 9S22 BZE 0 RKON [SINGLE TRANSFER. 9SFL LDN 4 4 [ACCESS O.P.'S CA5-CA7. 9S^= STO 0 AWORK1(2) [STORE SPOUTED MODE. 9TDW STOZ AWORK2(2) [SET MARKER TO SHOW FINISHED AT NEXT 9TYG BRN RSPOU [TEST. 9WD6 RKON LDX 3 ACOMMUNE3(2) [LCA POINTER. 9WXQ JLLD 3,XDESP [J. UNLESS CURRENT TERMINATED WHILE 9XCB DLCA 3,STOZ,,CREP2 [LOADING SPOUT: IF SO CLEAR SPOUT & 9XX2 BRN RELO [J. TO SET UP CURRENT INSTEAD. 9YBL XDESP LDX 4 ACOMMUNE1(2) [LINE NO. 9YW= SRC 4 9 9^*W DCA ACOMMUNE2(2),STO,4,MODE [INTO TOP 9 BITS OF K50 MODE WORD 9^TG LDX 4 APETADDR(2) =2*6 ADN 4 ASTOP =2SQ DCA ACOMMUNE2(2),STO,4,DTSA =3#B RX3 GLPERI ACOMMUNE2(2) =3S2 LDX 4 9 =4?L BNG 4 OUTAC =4R= MACCS ,APETADDR(2),3 =5=W STOZ 9(3) =5QG LDX 1 FX1 =6=6 #SKI BALROG<1$1 =6PQ ( =79B SMO APETADDR(2) =7P2 LDCH 3 ANM =88L SMO FX1 =8N= LDX 3 ZAFW(3) =97W SMO APETADDR(2) =9MG LDN 0 0(3) ==76 SMO APETADDR(2) ==LQ STO 0 CHAINADD+K47 =?6B ) =?L2 #SKI BALROG =#5L ( =#K= LDX 0 APETADDR(2) =*4W SMO 0 =*JG STO 0 CHAINADD+K47 =B46 ) =BHQ LINKSET 2,PAIR1 =C3B COOR1X =CH2 # =D2L # THIS ROUTINE SERVICES LINES LEGAL BUT NOT AVAILABLE =DG= # =D^W ZVLAL LDX 4 AWORK1(2) [MODE =FFG SBN 4 4 [IF MODE #4,ACCEPT THE PERI =F^6 BZE 4 OUTAC =GDQ SRC 6 1 =GYB CALL 7 SUB7 [SUB7 CHECKS THE PRESENCE OF MODE #10 =HD2 STOZ 7 =HXL LDN 5 1 =JC= ZDENA ADX 5 EVENT2(2) [REL.ADDRESS OF THE CA2 OR CA5 =JWW LDN 1 HLOCK1 =KBG CALL 4 SUB6 [CALCULATE GA OF CA2 OR CA5 =KW6 SMO 5 =L*Q LDX 5 0 =LTB CALL 0 RMODE [CHECK MODE OF REPLY WORD =M*2 CALL 4 SUB5 [CHECK WHETHER WITHIN RESV.VIOL =MSL LDN 1 HLOCK3 =N#= CALL 4 SUB6 [GEO ADDR OF R.W. =NRW LDCT 4 #20 [SET IN THE 1ST OR 2ND R.W.B4 - NOT =P?G SMO 5 [IMPLEMENTED =PR6 STO 4 0 =Q=Q ADN 7 1 [NO OF FLAGS =QQB LDX 0 AWORK2(2) =R=2 BZE 0 SEPAP [IF SINGLE TRANSFER J =RPL STOZ AWORK2(2) =S9= LDN 5 4 =SNW #SKI G4 =T8G CLEAR APETADDR(2),0,HLOCK3 =TN6 BRN ZDENA =W7Q SEPAP LDX 5 7 =WMB CALL 0 SUB3 [CALL SUBROUTINE FOR SETTING FLAGS =X72 BRN OUTAC =XLL # =Y6= # =YKW # THIS ROUTINE SERVICES MODE #200 PERIS. =^5G # =^K6 # ?24Q TICK1 ANDN 4 #4000 [MODE #4000 IS ILLEGAL AT THIS POINT. ?2JB BNZ 4 MODIL ?342 LDX 6 CMAXLINE(2) [MODE #200 IS ILLEGAL FOR UNIPLEXERS. ?3HL BZE 6 MODIL ?43= LDX 1 EVENT2(2) [GET 2ND. WORD OF CONTROL AREA. ?4GW ADN 1 1 ?52G SMO APETADDR(2) ?5G6 LDN 3 HLOCK1 ?5^Q FADDRESS 3,1 ?6FB LDXC 6 0(1) [NO. OF 100 MILLISEC. INTERVALS ?6^2 BCS MODIL [REQUIRED BETWEEN TIMING INTERRUPTS. ?7DL BZE 6 MODIL [ILLEGAL IF -VE. OR ZERO. ?7Y= #SKI K6CONMXC>99-99 ?8CW TRACE 6,MODE 200 ?8XG LDX 7 EVENT3(2) [CONTENTS OF (POSSIBLY REPLACED) X. ?9C6 ADN 6 1 [GEORGE TIMING IS IN 200 MILLISECS. ?9WQ ANDN 7 #77 [GET UNIT NO. ?=BB SRL 6 1 [ROUND COUNT UP & DIVIDE BY 2. ?=W2 TICK2 HUNTMISB 3,AMXOR,INTRPT [LOOK FOR TABLE OF THE TICKLEWORTHY. ??*L BPZ 3 TICK8 [J. IF ONE ALREADY EXISTS. ??T= BNG 4 TICK6 [J. IF WE'VE JUST SET ONE UP & ITS OK ?##W BNZ 4 TICK4 [J. IF ONE WAS THERE BUT NO LONGER IS ?#SG LDN 3 INTTIME-INTENT [NO BLOCK THERE : MUST SET ONE UP. ?*#6 LDCT 4 #400 [SET SWITCH TO SHOW START FROM SCRATC ?*HY ...#SKI JSKI14<1$1 ?*RQ TICK3 SETNCORE INTRECLEN(3),1,AMXOR,INTRPT [GET A NEW (OR LARGER) BLOCK. ?*T7 ...#SKI JSKI14 ?*WJ ...( ?*X^ ...TICK3 GETCOREN INTRECLEN(3),0 ?*^B ... BRN YSCOR ?B2R ... CALL 0 RCHN ?B48 ... COOR3 #1 ?B4W ... CALL 0 RCHN ?B5K ... BRN TICK3 ?B72 ...YSCOR FINDCORE 1 ?B8C ... NAME 1,AMXOR,INTRPT ?B9S ...) ?B?B STOZ INTENT(1) [ONLY REALLY NEEDED FOR NEW BLOCK. ?BR2 LDX 5 1 ?BTK ...#SKI JSKI14 ?BY8 ...( ?C2R ... CALL 0 RCHN ?C5B ... LDX 1 5 ?C7^ ...) ?C=L BRN TICK2 [FIND TABLE (IF ANY) AFTER COOR. ?CQ= TICK4 LDN 4 ZLEN [TABLE GONE : CUT NEW ONE TO 1 ENTRY. ?D9W TICK5 ALTLENG 1,4 [CUT BACK SIZE OF BLOCK JUST SET UP. ?DPG LDX 1 5 ?F96 TICK6 LDX 3 5 ?FNQ CHAIN 1,BMISC+1 [CHAIN NEW BLOCK INTO MISCELLANEOUS ?G8B LDX 1 3 [CHAIN. ?GN2 LDN 0 1 [ADD 1 TO COUNT OF ENTRIES. ?H7L ADX 1 ALOGLEN(3) ?HM= ADS 0 INTENT(3) ?J6W LDX 4 JOBNO(2) ?JLG TICK7 LDX 5 CFLAG(2) [ADDRESS OF 1ST. WD. OF FLAG AREA. ?K66 STO 6 INTTIME-ZLEN(1) [NO. OF SPRING CLEANS PER TICKLE. ?KKQ ADN 5 3 [INTERRUPT FLAG GOES IN LAST WORD. ?L5B STO 7 INTUNIT-ZLEN(1) [UNIT NO. ?LK2 STO 6 INTNEXT-ZLEN(1) [######SC'S TO NEXT TICKLE. (+1 INITI ?M4L STO 5 INTFLAG-ZLEN(1) [ADDRESS OF FLAG WORD. [ALLY). ?MJ= STO 4 INTJOBNO-ZLEN(1) [JOB NO. ?N3W BRN OUTAC [SET "ACCEPTED" & OLPFIN. ?NHG TICK8 BZE 4 TIK10 [J. IF 1ST. TIME THROUGH. ?P36 LDX 2 ALOGLEN(3) [IS BLOCK JUST SET UP STILL BIG ENOUG ?PGQ BXGE 2 ALOGLEN(1),TICK9 [J. IF NOT, TO GET ANOTHER ONE ?Q2B LDN 4 INTENT(3) [OTHERWISE SHIFT CONTENTS OF OLD ?QG2 LDN 5 INTENT(1) [BLOCK INTO NEW ONE. ?Q^L MOVE 4 0(2) ?RF= SBN 5 INTENT [REMEMBER ADDRESS OF NEW BLOCK. ?RYW LDN 4 INTRECLEN(2) [& SIZE OF OLD 1 PLUS 1 TABLE ENTRY. ?SDG FREECORE 3 [FREE OLD BLOCK. ?SY6 LDX 1 5 [J. IF NEW BLOCK JUST RIGHT ?TCQ BXE 4 ALOGLEN(1),TICK6 ?TXB BRN TICK5 [OTHERWISE SHORTEN IT AS NECESSARY. ?WC2 TICK9 FREECORE 1 [FREE NEW BLOCK ('COS ITS TOO SHORT). ?WWL BRN TIK13 [J. TO GET NEW NEW BLOCK. ?XB= TIK10 LDX 4 JOBNO(2) [SEE IF THERE IS ALREADY AN ENTRY ?XTW LDN 1 ZLEN(3) [FOR THIS UNIT. ?Y*G LDX 0 INTENT(3) ?YT6 TIK11 LDN 5 INTRECLEN(1) ?^#Q BXU 4 INTJOBNO-ZLEN(1),TIK12 ?^SB BXE 7 INTUNIT-ZLEN(1),TICK7 [J. IF AN OLD ENTRY FOUND : OVERWRI #2#2 TIK12 LDX 1 5 [IT. #2RL BCT 0 TIK11 #3?= TIK13 LDX 3 ALOGLEN(3) [NO PREVIOUS ENTRY : GET NEW, LONGER #3QW BRN TICK3 [BLOCK & COPY OLD TABLE INTO IT. #4=G # #4Q6 # #59Q # THIS ROUTINE SERVICES MODE #1000 PERIS. #5PB # #692 # #6NL M1000 #78= #SKI K6CONMX>99-99 #7MW TRACE AWORK1(2),M1000 #87G LDX 6 CMAXLINE(2) [HIGHEST LINE NO AS A COUNT #8M6 BZE 6 SECOM [UPX OR MPX ? #96Q LDX 1 ADDMOP(3) [CHECK IF ANY TRANSFER CONCERNING #9LB BZE 1 MJEJE [LINE ZERO IN PROGRESS #=62 BRN OUTRE #=KL SECOM SBN 3 CONRECLEN [IN X3 IS THE ADDR OF A1 IN CONLCB #?5= ADN 6 1 #?JW MJEJE ADN 3 CONRECLEN [CREATE THE ADDRESS OF NEXT ENTRANT ##4G LDX 4 BPTR(3) [THE LINE IS CHECKED WHETHER IT IS ##J6 BZE 4 METE [BUSY.IF BPTR=0 LINE CAN'T BE BUSY #*3Q LDX 4 ADDMOP(3) [IF BPTR IS NOT ZERO AND ADDMOP=0 #*HB BZE 4 OUTRE [LINE IS BUSY-A NON-ATTACHED LINE #B32 [WITH STORED READ #BGL SMO 4 #C2= LDX 1 CPPTR [POINTER TO DEVICE LIST #CFW STO 1 AWORK2(2) #C^G LDX 4 ACTUAL(3) [LOAD THE ACTUAL LINE NO AND UNIT NO #DF6 ANDX 4 BSP16 [INTO X4 #DYQ FINDLCA AWORK2(2),4 #FDB JLBUSY 1,OUTRE #FY2 METE BCT 6 MJEJE [IF NOT BUSY CHECK FURTHER LINE #GCL MACCS ,APETADDR(2),1 #GX= LDX 0 GSIGN [SET W9 ACCEPTED #HBW STO 0 9(1) #HWG # #JB6 # THIS ROUTINE UNRINGS THE ELEMENTS IN AMXOR,ALINES AND CONLCB BLOCKS #JTQ # #K*B LDX 6 CMAXLINE(2) [MAX.NO.OF ENTRANTS AS THE COUNT #KT2 BNZ 6 UNRI [UPX OR MPX ? #L#L ADN 6 1 #LS= UNRI LDX 1 BPTR(3) [IS IT AN ENTRANT CORRESPONDING TO #M?W BZE 1 RJEST [AN ATTACHED LINE - UNLESS IT IS J #MRG STOZ BPTR(1) [ZEROIZE BPTR IN AMXOR,ALINES #N?6 STOZ BPTR(3) [ZEROIZE BPTR IN CONLCB #NQQ RJEST SBN 3 CONRECLEN [CREATE ADDRESS OF NEXT ELEMENT #P=B BCT 6 UNRI #PQ2 LDN 6 CHAINADD(2) [FIND ENTRY FOR THIS OLPA #Q9L HUNT2B 2,APERI,APERIRES [IN THE PERIPHERAL RESERVATION #QP= PIDAS LDX 4 A1+1(2) [BLOCK IN ORDER TO GET #R8W ANDX 4 BITS22LS #RNG TXU 6 4 #S86 BCC ZUPIK #SMQ ADN 2 2 [TYPE/UNIT NO. ENTRY FOR RELEASE. #T7B BRN PIDAS #TM2 ZUPIK RELOFP A1(2) #W6L # #WL= RGER1 GEOERR 1,COORDERR [COORDINATION DURING CHECKA #X5W # #XKG # #XL2 ...#SKI JSKI14 #XLG ...( #XM2 ...X92CONMXC #XMG ... LDX 2 3 [START ADDRESS IN BLK. #XN2 ... SBN 1 A1 #XNG ... LDX 6 ALOGLEN(1) [LTH. OF CHAPTER #XP2 ... LDX 4 6 #XPG ... ADN 4 A1 #XQ2 ... CALL 0 RMV [MOVE INTO BLOCK #XQG ... LDX 3 2 [SAVE END OF CHAP #XR2 ... SBX 2 6 #XRG ... SBX 1 6 #XS2 ... STO 2 FX1 [RESET FX1 #XSG ... SBN 2 A1 #XT2 ... STOZ ATYPE(2) [MARK "CHAPTER IN BLOCK" #XTG ... STOZ BPTR(2) #XW2 ... STO 2 FPTR(2) #XWG ... ORX 2 GSIGN #XX2 ... STO 2 KTAB+KCONMXC [RESET KTAB ENTRY #XXG ... ADNC 2 ZRS+A1 #XY2 ... BRN (2) [JUMP INTO COPIED VERSION #XYG ...ZRS SBN 1 A1 #X^2 ... TXU 1 GFIXCHAP #X^G ... BCS NOTFX #Y22 ... STOZ BACK2(1) #Y27 ... BRN TINFX #Y2# ...NOTFX #Y2G ... LDX 0 ASIZE(1) #Y2H ... LDX 2 AFLAG(1) #Y2J ... ANDN 2 2 #Y2K ... BZE 2 NVREZ #Y2L ...[ J IF NOT FROZEN CHAPTER #Y2M ... SBS 0 FREZCHAP #Y2N ...[ UPDATE FROZEN CHAPTER SIZE #Y2P ... BRN TVREE #Y2Q ...NVREZ #Y32 ... SBS 0 ACHAP [UPDATE ACHAP #Y3= ...TVREE #Y3G ... FREECORE 1 [FREE CHAPTER BLOCK #Y42 ...TINFX ACROSS CONMXA,92 #Y4G ...) #Y56 #SKI K6ALLGEO>99-99 #YJQ MENDAREA 40,K100CONMXC #^4B # #^J2 # *23L #END ^^^^ ...56305213003200000000