16 22FL #LIS K0HLSREAD>K0HLS>K0OBJPROG>K0ALLGEO>K0GREATGEO 15 22R2 ... SEG HLSREAD,867,SECTION CENT,,G402 4 234B ...[ 16 23*Q ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 4 23M6 ...[ 21 23YG # THIS SEGMENT DEALS WITH SPECIAL PERI EXTRACODES ISSUED BY HIGH LEVEL 21 24D6 # SCHEDULER AND RELATED SYSTEM SUBJECT PROGRAM. THE PERIS ARE READING 20 24XQ # INFORMATION SUCH AS JOB BLOCKS INTO THE SUBJECT PROGRAM AREA. THE 20 25CB # ACTIVITIES MAKING USE OF THESE ROUTINES ARE SET UP BY THE ACCESS 6 25X2 # COMMAND 8 26BL # ENTRY POINTS 4 26W= # 17 27*W SEGENTRY K1HLSREAD,ZK1 [HLSACTIVE CHANNEL 17 27TG SEGENTRY K2HLSREAD,ZK2 [HLSPASSIVE CHANNEL 17 28*6 SEGENTRY K3HLSREAD,REPEAT [RETURN FROM SCHEDJOB 16 28SQ SEGENTRY K4HLSREAD,ZK4 [RESVIOL ILLEGAL 16 29#B SEGENTRY K5HLSREAD,ZK5 [ILLINS ILLEGAL 15 29S2 SEGENTRY K7HLSREAD,ZK7 [READ JOBQ 15 2=?L SEGENTRY K8HLSREAD,ZK8 [NEXT HLSQ 15 2=R= SEGENTRY K9HLSREAD,ZK9 [NEXT JOBQ 14 2?=W SEGENTRY K10HLSREAD,ZK10 [INSTPARA 14 2?QG SEGENTRY K11HLSREAD,ZK11 [TEMPQ 16 2#=6 SEGENTRY K12HLSREAD,ZK12 [PERIPHERAL LIST 15 2#PQ SEGENTRY K13HLSREAD,ZK13 [GEORGE CORE 16 2*9B SEGENTRY K14HLSREAD,ZK14 [SCHEDJOB XCODE 15 2*P2 SEGENTRY K15HLSREAD,ZK15 [READ HLSQ 17 2B8L SEGENTRY K30HLSREAD,ZK30 [RETURN FROM WS XCODE 12 2BDD ... FSHENTRY K31HLSREAD,ZK31,,ZK31 8 2BN= #DEF RVMODE = #114 19 2C7W XMODE [ MODE 19 2CMG #HAL 5,P1-XMODE [READ HLSQ #100 19 2D76 #HAL 5,P11-XMODE [READ JOBQ #101 19 2DLQ #HAL 5,P60-XMODE [READ PERIPHERAL LIST #102 19 2F6B #HAL 4,P30R-XMODE [READ NEXT HLSQ #103 19 2FL2 #HAL 4,P40R-XMODE [READ NEXT JOBQ #104 19 2G5L #HAL 4,P50R-XMODE [READ IPS #105 19 2GK= #HAL #4004,S6-XMODE [READ TEMPQ #106 19 2H4W #HAL 4,ZM107-XMODE [READ TEMPQ (PASSIVE) #107 19 2HJG #HAL 5,X25K-XMODE [READ GEORGECORE #110 19 2J46 #HAL 2,ZM111-XMODE [REWIND HLSQ #111 19 2JHQ #HAL 2,ZM112-XMODE [REWIND JOBQ #112 19 2K3B #HAL #4004,ZM113-XMODE [SCHEDJOB XCODE #113 19 2KH2 #HAL 3,ZM114-XMODE [RETRIEVE XCODE #114 19 2L2L #HAL 5,ZM115-XMODE [WHATSTATE XCODE #115 5 2LG= XMODEND 6 2LJ8 ...#UNS G402 4 2LL6 ...( 19 2LN4 ...#HAL 5,XMNB-XMODE [MONITOR BLOCK #170 19 2LQ2 ...#HAL 5,XPRG-XMODE [CORE IMAGE #171 6 2LRY ...XDSKMODEND 13 2LTW ...TDSKMODEND #170+XDSKMODEND-XMODEND 4 2LXS ...) 17 2L_W TMODEND #100+XMODEND-XMODE [UPPER LIMIT OF MODES 8 2MFG SA1 +1 8 2M_6 SA3 +3 9 2NDQ MODMASK #77777 9 2NYB XGEOG #40000077 8 2PD2 X100 #100 8 2PXL X101 #101 8 2QC= #UNS ECS 4 2QWW #SKI 20 2RBG RECL +10 [MAX LENGTH OF SCHED CONTROL RECORD 8 2RW6 #UNS ECS 21 2S*Q RECL +12 [MAX LENGTH OF SCHED CONTROL RECORD 20 2STB SCHMAX +8 [LOWER LIMIT OF ILLEG. INDEX NO. 21 2T*2 SAPERLEN +6 [LENGTH OF PERIPHERAL ENTRY TRANS- 17 2TSL [FERRED TO PROGRAM 8 2W#= XCLOSE #1000 5 2WRW PLINK1 9 2X?G PAIR HLSREAD,4 5 2XR6 PLINK2 9 2Y=Q PAIR HLSREAD,5 18 2YQB BITDEFS ATYPE,23,PRMARK [PASSIVE READ INDICATOR 15 2_=2 [ TABLE OF MAXIMUM LENGTHS OF CONTROL RECORDS 15 32NW SCHLEN +12 [0 STARTJOB 14 338G +12 [1 RESET 14 375G +1 [2 WAIT 15 37K6 +2 [3 STOPJOB 15 384Q +2 [4 SAVEJOB 15 38JB +512 [5 JOBWAIT 14 39HL +12 [6 DEWELL 14 3?G6 +4 [7 SWITCH 5 3?_Q RCHECKA 8 3#FB LDX 1 FX1 8 3#_2 SBX 3 FX1 17 3*DL CHECKB 4,5,RILLEGAL,APETADDR(2),W,WORDA,,,REPEAT 5 3*Y= WORDA 8 3BCW ADX 3 FX1 7 3BXG EXIT 3 0 2 3CC6 19 3CWQ [ THE ROUTINE BELOW MOVES OUT THE WORDS2,3,4 OF THE CONTROL AREA 8 3DBB [ INTO ACOMMUNE1-3 6 3DW2 XFOUTMOVE 19 3F*L LDN 3 ACOMMUNE1(2) [X3->DESTINATION FOR FOUTMOVE 10 3FT= LDX 1 APETADDR(2) 9 3G#W LDX 2 EVENT2(2) 7 3GSG LDN 4 3 7 3H#6 ADN 2 2 11 3HRQ FOUTMOVE 1,2,3,4,HLOCK1,,X 8 3J?B LDX 1 FX1 8 3JR2 LDX 2 FX2 7 3K=L EXIT 6 0 15 3KQ= [ ROUTINE TO COPY DATA FROM SUBJECT PROGRAM 14 3L9W [ ON ENTRY X2-> ADDR. OF PROGRAM DATA 14 3LPG [ X3-> ADDR. OF OUTPUT BUFFER 12 3M96 [ X4 = LENGTH OF DATA 11 3MNQ [ X6 - LINK ADDRESS 16 3N8B [ X1=FX1,X2=FX2,X3 DESTROYED ON EXIT 6 3NN2 XFOUTMOVE2 8 3P7L SMO FX2 9 3PM= LDX 1 APETADDR 11 3Q6W FOUTMOVE 1,2,3,4,HLOCK2 8 3QLG LDX 1 FX1 8 3R66 LDX 2 FX2 7 3RKQ EXIT 6 0 4 3S5B [ 5 3SK2 XCLEAR 8 3T4L SBX 7 FX1 12 3TJ= CLEAR APETADDR(2),0,HLOCK2 8 3W3W ADX 7 FX1 7 3WHG EXIT 7 0 4 3X36 # 4 3XGQ # 13 3Y2B # NOTE:- X5 WILL HOLD LENGTH OF BUFFER 14 3YG2 # X7 WILL HOLD ADDITIONAL INFORMATION 20 3Y_L # X4 WILL HOLD ADDRESS OF BUFFER : THROUGH SEG AFTER CHECKB 4 3_F= # 2 3_YW 18 42DG [ THE ROUTINE BELOW DEALS WITH THE HLSACTIVE AND HLSPASSIVE 15 42Y6 [ CHANNELS. IT HAS THE FOLLOWING CONTROL AREA: 9 43CQ [ WORD0 52/MODE 11 43XB [ WORD1 0 -THE REPLY WORD 15 44C2 [* WORD2 NO. OF WORDS IN PROGRAMS BUFFER 15 44WL [ WORD3 START ADDR. OF PROGRAMS BUFFER 13 45B= [ WORD4 ADDITIONAL INFORMATION 13 45TW [* THE RV XCODE HOLD JOB NO. IN WORD2 19 46*G ZK1 LDN 6 0 [HLSACTIVE CHANNEL INDICATOR 8 46T6 BRN ZK2A 19 47#Q ZK2 LDN 6 1 [HLSPASSIVE CHANNEL INDICATOR 15 47SB ZK2A STOZ AWORK1(2) [HLSQ MARKER 15 48#2 STOZ AWORK2(2) [JOBQ MARKER 18 48RL STO 6 AWORK4(2) [SAVE CHANNEL INDICATOR 17 49?= ZK3 [RETURN FROM SCHEDJOB 9 49QW LDX 0 EVENT4(2) 14 4==G ANDN 0 #7777 [GET MODE 17 4=Q6 BXE 0 XCLOSE(1),XCL [J IF CLOSE CHANNEL 6 4=X# ...#UNS G402 4 4?4G ...#SKI 17 4?9Q BXGE 0 TMODEND(1),SILLEGAL [J IF ILLEGAL MODE 6 4??7 ...#UNS G402 4 4?#J ...( 15 4?*_ ... BXL 0 TMODEND(1),ZDSK1 [NORMAL MODE 13 4?CB ... BXGE 0 TDSKMODEND(1),SILLEGAL 8 4?DR ... SBN 0 #170 18 4?G8 ... BNG 0 SILLEGAL [NOT SPECIAL MODE EITHER 16 4?HK ... ADN 0 XMODEND-XMODE [CREATE POINTER 16 4?K2 ... BRN ZDSK2 [JOIN NORMAL CODE 5 4?LC ...ZDSK1 4 4?MS ...) 8 4?PB SBN 0 #100 17 4#92 BNG 0 SILLEGAL [J IF ILLEGAL MODE 6 4#B8 ...#UNS G402 5 4#HB ...ZDSK2 7 4#NL SMO 0 9 4*8= LDXC 5 XMODE(1) 17 4*MW BCC ZK1C [J IF PASSIVE XCODE 9 4B7G LDX 6 AWORK4(2) 18 4BM6 BNZ 6 SILLEGAL [J IF HLSPASSIVE CHANNEL 19 4C6Q ZK1C SRL 5 12 [LENGTH OF PERI CONTROL AREA 8 4CLB BRN RD2 14 4D62 ZK1D LDEX 0 EVENT4(2) [GET MODE 6 4D89 ...#UNS G402 4 4D=D ...( 15 4D#M ... BXL 0 TMODEND(1),ZDSK3 [NORMAL MODE 16 4DBW ... SBN 0 #70+XMODE-XMODEND [MODIFY POINTER 5 4DF5 ...ZDSK3 4 4DH# ...) 8 4DKL SBN 0 #100 7 4F5= SMO 0 18 4FJW LDX 0 XMODE(1) [MODE'S ENTRY IN TABLE 8 4G4G ANDN 0 #7777 17 4GJ6 SMO 0 [J TO APPROPRIATE... 18 4H3Q BRN XMODE [ ... MODE ROUTINE 6 4H3X ...#UNS G402 4 4H44 ...( 9 4H49 ...XG402LANG 4HB1B0 4 4H4B ...# 4 4H4H ...XPRG 8 4H4N ... JOBLOCK 7,3 8 4H4T ... BNG 3 R1 9 4H52 ... FSHCODE A,XPRGA 4 4H57 ...( 18 4H5# ... JBC XPRGA,3,JBFSHALIEN [JIF RUNNING ON MASTER 16 4H5F ... LDN 0 9 [SET OPTION ^9^ 18 4H5L ... CALL 1 XSWOPMC [GET DATA FROM OTHER MC. 8 4H5R ... BRN P15 5 4H5Y ...XPRGA 4 4H65 ...) 10 4H6= ... LDN 1 AJBRING(3) 10 4H6C ... BXE 1 AJBRING(3),R1 16 4H6J ... LDX 1 AJBRING(3) [PTR TO APET/CPAT 17 4H6P ... SBN 1 JOBRING [TO BEGINING OF BLOCK 9 4H6W ... LDCH 0 ATYPE(1) 9 4H73 ... SBN 0 APET/64 15 4H78 ... BNZ 0 R1 [J NOT APET 7 4H7* ... LDX 3 1 5 4H7G ...XPRG2 9 4H7M ... LDX 3 FPTR(3) 9 4H7S ... LDCH 0 ATYPE(3) 10 4H7_ ... SBN 0 AOBJPROG/64 16 4H86 ... BZE 0 XPRG1 [J IF PROG BLOCK 11 4H8? ... SBN 0 #6000-AOBJPROG/64 17 4H8D ... BNG 0 XPRG2 [J UNLESS ACTY BLOCK 8 4H8K ... BRN R1 5 4H8Q ...XPRG1 16 4H8X ... ADN 3 A1D-A1 [PROG START ADDR 9 4H94 ... LDX 0 ALIMIT(1) 8 4H99 ... BRN P16 4 4H9B ...# 4 4H9H ...XMNB 8 4H9N ... JOBLOCK 7,3 16 4H9T ... BNG 3 R1 [JOB NOT FOUND 9 4H=2 ... FSHCODE A,XMNBA 4 4H=7 ...( 18 4H=# ... JBC XMNBA,3,JBFSHALIEN [JIF RUNNING ON MASTER 16 4H=F ... LDN 0 10 [SET OPTION ^10^ 18 4H=L ... CALL 1 XSWOPMC [GET DATA FROM OTHER MC. 16 4H=R ... BRN P15 [DATA TRANSFERED 15 4H=Y ...# BLOCK SWAPPED OUT - READ DIRECTLY 16 4H?5 ... LDX 2 A1(3) [RESIDENCE NO. 15 4H?= ... LDX 6 A1+1(3) [BLOCK NUMBER 14 4H?C ... LDX 7 A1+2(3) [^CMOD^ 17 4H?J ... BRN XDSKH [REJOIN NORMAL CODE 5 4H?P ...XMNBA 4 4H?W ...) 10 4H#3 ... LDN 1 AJBRING(3) 10 4H#8 ... BXE 1 AJBRING(3),R1 13 4H#* ... LDX 1 AJBRING+1(3) [CPAT 12 4H#G ... LDX 2 FILERING-JOBRING(1) 12 4H#M ... SBN 2 FILERING-JOBRING(1) 16 4H#S ... BZE 2 XNOTF [FILERING EMPTY 12 4H#_ ... LDX 1 FILERING+1-JOBRING(1) 14 4H*6 ... ADX 1 2(1) [STACK 13 4H*? ... LDX 2 BPTR(1) [FCB 9 4H*D ... LDX 7 FLAN(2) 8 4H*K ... SMO FX1 17 4H*Q ... BXU 7 XG402LANG,XNOTF [NOT MONITORING FILE 9 4H*X ... LDX 7 CMOD(2) 15 4HB4 ... BNG 7 XNOTF [NOT IN USE 9 4HB9 ... LDX 3 FBLMOD(2) 10 4HBB ... LDN 6 BSPRE-A1+1 15 4HBH ... BXE 3 6,XNOTF [NOT IN USE 7 4HBN ... SMO 3 17 4HBT ... LDX 6 A1-1(2) [CURRENT BLOCK NUMBER 15 4HC2 ... SFUB 1,6,3,XDSKF [FIND BLOCK 8 4HC7 ... BRN XDSKG 12 4HC# ...# READ BLOCK INTO STORE 16 4HCF ...XDSKF LDX 2 BSPRE(2) [RESIDENCE NO. 16 4HCL ...XDSKH LDN 1 512 [TRANSFER LENGTH 18 4HCR ... BACKREAD ,1,XNOTF,2,EX6 [READ BLOCK INTO STORE 8 4HCY ... SMO FX2 17 4HD5 ... LDX 3 FPTR [ADDR.OF READ BLOCK 15 4HD= ...XDSKG LDX 0 7 [GET ^CMOD^ 7 4HDC ... SMO 0 17 4HDJ ... ADX 0 0(3) [ADD IN LAST RECORD 17 4HDP ... SBN 0 A1 [LENGTH TO TRANSFER 8 4HDW ... LDX 2 FX2 8 4HF3 ... BRN P16 8 4HF8 ...XNOTF LDX 2 FX2 16 4HF* ... BRN R1 [BLOCK NOT FOUND 4 4HFG ...) 18 4HHB # THE ROUTINE BELOW DEALS WITH THE READ HLSO ENTRY EXTRACODE 13 4J32 # IT HAS THE FOLLOWING CONTROL AREA: 8 4JGL # WORD0 6/0 11 4K2= # WORD1 0-THE REPLY WORD 13 4KFW # WORD2 NO. OF WORDS TO BE READ 16 4K_G # WORD3 START ADDRESS OF PROGRAM INPUT AREA 16 4LF6 # WORD4 JOB ENTRY OF HLSQ JOBENTRY TO BE READ 4 4LYQ # 4 4MDB ZK15 19 4MY2 # ON ENTRY,EXEC1 POINTS TO PERI CONTROL AREA IN SUBJECT PROGRAM 2 4NCL 20 4NX= LDN 6 2 [HLS READ EXTRACODE ROUTINE N0.0 21 4PBW BRN READOUT [READ OUT WORD2-WORD4 OF PERI CONTROL ARE 21 4PWG [ CA1-CA3 OF CURRENT ACTIVITY BLOCK (OLPA 13 4QB6 # RETURN (VIA SWITCH TABLE) & CONTINUE 15 4QTQ # LOOK DOWN HLSQ FOR BLOCK WITH SPECIFIED JOBNO. 4 4R*B # 4 4RT2 P1 4 4S#L # 8 4SS= FSHCODE B,XB1 4 4T?W ( 19 4TRG # FOR SHARED FILESTORE, WE CAN ONLY SEARCH THE HLSQ ON 'A' 4 4W?6 # 16 4WQQ LDN 0 0 [SET OPTION '0' 16 4X=B CALL 1 XSWOPMC [& SWOP MACHINES 4 4XQ2 # 4 4Y9L XB1 4 4YP= ) 8 4_8W FSHSKIP B,XB2 4 4_NG ( 16 5286 SHLSQ 7,3,R1 [X3 -> HLSQ BLOCK 4 52MQ # 4 537B XB2 4 53M2 ) 21 546L LDN 0 AHLS [ONLY READ AHLS WORDS OF LONG HLSQ BL 8 54L= BRN P16 18 555W # THE ROUTINE BELOW DEALS WITH THE READ JOB BLOCK EXTRACODE. 13 55KG # IT HAS THE FOLLOWING CONTROL AREA: 8 5656 # WORD0 6/0 11 56JQ # WORD1 0 -THE REPLY WORD 13 574B # WORD2 NO. OF WORDS TO BE READ 16 57J2 # WORD3 START ADDRESS OF PROGRAM INPUT AREA 16 583L # WORD4 JOB NUMBER OF JOB BLOCK TO BE READ 4 58H= ZK7 16 592W # ON ENTRY,EXEC1 CONTAINS PTR TO PERI CONTROL AREA 20 59GG LDN 6 3 [HLSREAD EXTRACODE ROUTINE NO.1 21 5=26 BRN READOUT [READ OUT WORD2-WORD4 OF PERI CONTROL ARE 21 5=FQ [ CA1-CA3 OF CURRENT ACTIVITY BLOCK (OLPA 4 5=_B P11 16 5?F2 JOBLOCK 7,3 [X3 -> JOB BLOCK 8 5?YL FSHCODE AORB 4 5#D= ( 18 5#XW # FOR SHARED FILESTORE WE HAVE EXTRA CHECKS TO MAKE HERE 4 5*CG # 8 5*X6 FSHCODE A,XA1 4 5BBQ ( 21 5BWB BNG 3 R1 [ERROR IF JOB BLOCK NOT FOUND ON 'A' 18 5CB2 JBC Y1,3,JBFSHALIEN [JIF JOB NOT ALIEN IN 'A' 4 5CTL # 4 5D*= XA1 4 5DSW ) 8 5F#G FSHCODE B,XB3 4 5FS6 ( 21 5G?Q BNG 3 XB3 [JIF THE JOB DOES NOT EXIST ON 'B' 4 5GRB # 19 5H?2 # WE COPY JOB BLOCKS ON 'B' SO THAT WE CAN SET A BIT IN THEM 16 5HQL # INDICATING THAT THE JOB IS 'AT HOME' IN 'B' 4 5J== # 21 5JPW CALL 6 SCOPYBLOCK [COPY THE BLOCK AND SET 'IN-B' BIT 17 5K9G BRN P11 [JIF COPY HAS FAILED 17 5KP6 BRN Y1 [JIF COPY WAS OK!!! 4 5L8Q # 4 5LNB XB3 4 5M82 ) 4 5MML # 19 5N7= # JOB BLOCK MUST BE FETCHED/LOOKED FOR ON THE OTHER MACHINE 4 5NLW # 16 5P6G LDN 0 1 [SET OPTION '1' 17 5PL6 CALL 1 XSWOPMC [GO TO OTHER MACHINE 4 5Q5Q # 4 5QKB Y1 4 5R52 ) 7 5RJL FSHSKIP 20 5S4= BNG 3 R1 [J. IF JOBLOCK CANNOT BE FOUND 10 5SHW LDX 0 ALOGLEN(3) 9 5T3G SBN 0 JOBNUM-A1 9 5TH6 ADN 3 JOBNUM-A1 8 5W2Q BRN P16 10 5WGB P15 LDX 0 ALOGLEN(3) 7 5X22 P16 LDN 7 0 16 5XFL LDX 6 5 [SAVE BUFFER SIZE 7 5X_= LDX 5 0 17 5YDW BXGE 6 5,P17 [J IF BUFFER>DATA REQD. 7 5YYG LDX 5 6 8 5_D6 P16A LDCT 7 #200 8 5_XQ P17 ADN 3 A1 21 62CB P17A [LABEL FOR INSTPARA EXTRACODE WHICH IS NOT MOVING THE CONTENTS OF 18 62X2 BZE 5 P17C [J IF NO DATA TO BE MOVED 15 63BL LDX 1 APETADDR(2) [X1 -> APET 18 63W= LDX 6 4 [SAVE ADDR. OF TRANSFER 16 64*W FINMOVE 1,4,3,5,HLOCK2 [MOVE -> PROGRAM 9 64TG P17C LDXC 4 AWORK4(2) 20 65*6 BCC P17B [J IF NOT SPECIAL ACTIVE TEMPQ 9 65SQ STO 4 AWORK4(2) 4 66#B P17D 18 66S2 LDX 1 BHTEMP [X1 -> BLOCK TO BE FREED 16 67?L FREECORE 1 [FREE TEMPQ BLOCK 4 67R= P17B 20 68=W ADX 5 AWORK3(2) [END OF TRANS ADDRESS AS REPLY 16 68QG ORX 5 7 [SET OVERFLOW BIT 9 69=6 P17R LDX 3 EVENT2(2) 16 69PQ ADN 3 1 [X3 -> REPLY WORD 15 6=9B LDX 1 APETADDR(2) [X1 -> PCA 18 6=P2 FADDRESS 1,3,HLOCK1 [PTR -> REPLY WORD IN X3 15 6?8L STO 5 0(3) [SET REPLY 10 6?N= VFREEW ADATA,APLIST 10 6#7W VFREEW CQPRINT,CQ11 6 6#*4 ...#UNS G402 10 6#G= ... VFREEW BSTB,BREAD 8 6#MG FSHCODE AORB 11 6*76 VFREEW FSH,HLSTRANSFER 21 6*LQ [ -TRANSFERRED-INTO-INPUT AREA INTO R 9 6B6B #SKIP K6HLSREAD>199-199 10 6BL2 TRACE 6,OLPFINX6 21 6C5L OLPFIN APETADDR(2) [END. RETURN TO SUBJ-PROG 9 6CK= P17T SMO AWORK4(2) 9 6D4W BRN REENTRYPT 2 6DJG 2 6F46 20 6FHQ # THE ROUTINE BELOW DEALS WITH THE'READ NEXT HLSQ ENTRY'EXTRACODE 13 6G3B [ IT HAS THE FOLLOWING CONTROL AREA: 6 6GH2 [ WORD0 11 6H2L [ WORD1 0-THE REPLY WORD 13 6HG= [ WORD2 NO.OF WORDS TO BE READ 16 6H_W [ WORD3 START ADDRESS IF PROGRAM INPUT AREA 19 6JFG [ ON ENTRY:EXEC1 POINTS TO PERI CONTROL AREA IN SUBJECT PROGRAM 4 6J_6 # 21 6KDQ # THE'NEXT'HLSQ OR JOBQ BLOCK IS THAT BLOCK WHICH IMMEDIATELY FOLLOW 14 6KYB # BLOCK LAST ACCESSED BY THIS ROUTINE. 19 6LD2 # THE NUMBER OF LAST ONE READ IS KEPT IN AWORK1 (HLSQ) OR 17 6LXL # AWORK2 (JOBQ). IF NO MORE FOUND SET ZERO AND NEXT 11 6MC= # TIME WILL READ 1ST AGAIN 21 6MWW # IF EITHER Q IS FOUND TO BE EMPTY THE REPLY WORD IN THE PERI CONTRO 9 6NBG # IS SET NEGATIVE 4 6NW6 ZK8 9 6P*Q STOZ AWORK1(2) 19 6PTB P30 [RE-ENTRY PT. FOR SUBSEQUENT PERIS 18 6Q*2 LDN 6 4 [THIS HLSREAD XCODE NO.2 21 6QSL LDN 5 4 [SET X5=LENGTH OF *FR PERI CONTROL AR 21 6R#= BRN RD1 [J.TO S/R TO CHECK THAT THE PERI CONT 21 6RRW [ AREA AND THE INPUT AREA TO WHICH IT 21 6S?G [ ARE BOTH WITHIN THE SUBJ.PROG.S RE 4 6SR6 P30R 13 6T=Q # RETURN (VIA SWITCH TABLE) & CONTINUE 8 6TQB FSHCODE B,XB4 4 6W=2 ( 19 6WPL # FOR SHARED FILESTORE,WE MUST GO TO 'A' TO SEARCH THE HLSQ 4 6X9= # 16 6XNW LDN 0 2 [SET OPTION '2' 19 6Y8G CALL 1 XSWOPMC [& CHANGE TO THE 'A' MACHINE 4 6YN6 # 4 6_7Q XB4 4 6_MB ) 9 7272 FSHSKIP B,XB4A 4 72LL ( 20 736= LDX 0 AWORK1(2) [GET LAST NUMBER (CAN BE ZERO) 20 73KW STOZ AWORK1(2) [CLEAR, JUST IN CASE END REACHED 8 745G SOME LDN 3 BHLSQ 9 74K6 TOUR LDX 3 FPTR(3) 8 754Q TXU 3 CXHL 17 75JB BCC R1 [SET -VE REPLY IF END 10 7642 MIDQ TXL 0 HLSJONO(3) 8 76HL BCC TOUR 10 773= LDX 0 HLSJONO(3) 20 77GW STO 0 AWORK1(2) [ONE READ AND STORE NEW NUMBER 4 782G # 4 78G6 XB4A 4 78_Q ) 21 79FB LDN 0 AHLS [ONLY READ AHLS WORDS OF LONG BLOCK 8 79_2 BRN P16 2 7=DL 2 7=Y= 2 7?CW 20 7?XG # THE ROUTINE BELOW DEALS WITH THE'READ NEXT JOBQ ENTRY'EXTRACODE 2 7#C6 13 7#WQ [ IT HAS THE FOLLOWING CONTROL AREA: 6 7*BB [ WORD0 11 7*W2 [ WORD1 0-THE REPLY WORD 13 7B*L [ WORD2 NO.OF WORDS TO BE READ 16 7BT= [ WORD3 START ADDRESS IF PROGRAM INPUT AREA 2 7C#W 19 7CSG [ ON ENTRY:EXEC1 POINTS TO PERI CONTROL AREA IN SUBJECT PROGRAM 4 7D#6 # 4 7DRQ ZK9 9 7F?B STOZ AWORK2(2) 19 7FR2 P40 [RE-ENTRY PT. FOR SUBSEQUENT PERIS 19 7G=L LDN 6 5 [THIS IS HLSREAD XCODE NO.3 21 7GQ= LDN 5 4 [SET X5=LENGTH OF PERI CONTROL AREA 21 7H9W BRN RD1 [J.TO S/R TO CHECK THAT THE PERI CONT 21 7HPG [ AREA AND THE INPUT AREA TO WHICH IT 21 7J96 [ ARE BOTH WITHIN THE SUBJ.PROG.S RE 4 7JNQ P40R 13 7K8B # RETURN (VIA SWITCH TABLE) & CONTINUE 15 7KN2 LDX 7 AWORK2(2) [PICK UP LAST 7 7L7L FSHSKIP 20 7LM= STOZ AWORK2(2) [CLEAR,JUST IN CASE END REACHED 8 7M6W PHEW LDN 3 BJOBQ 9 7MLG ROUND LDX 3 FPTR(3) 8 7N66 TXU 3 CXJO 8 7NKQ FSHCODE AORB 19 7P5B BCC XENDQ [JIF END OF QUEUE IS REACHED 7 7PK2 FSHSKIP 8 7Q4L BCC R1 9 7QJ= MIDJ TXL 7 JOBNUM(3) 17 7R3W BCC ROUND [J IF NOT THERE YET 9 7RHG FSHCODE B,XB12 4 7S36 ( 21 7SGQ # FOR SHARED FILESTORE IN THE 'B' MACHINE, WE CAN ACCEPT THE NEXT 20 7T2B # JOB QUEUE BLOCK IF IT'S JOB NUMBER IS 'LAST'+1. OTHERWISE, WE 13 7TG2 # MUST GO TO 'A' AND SEARCH THERE. 4 7T_L # 7 7WF= ADN 7 1 20 7WYW BXU 7 JOBNUM(3),Y6 [JIF JOB NUMBER IS NOT 'LAST'+1 4 7XDG # 20 7XY6 # WE MUST NOW COPY THE BLOCK AND SET A BIT TO INDICATE THAT THE 10 7YCQ # JOB IS ACTUALLY IN 'B' 4 7YXB # 20 7_C2 CALL 6 SCOPYBLOCK [COPY BLOCK AND SET 'IN-B' MARKER 20 7_WL BRN P40R [ERROR IN COPY - START AGAIN!! 4 82B= # 4 82TW XB12 4 83*G ) 8 83T6 FSHCODE A,XA5 4 84#Q ( 20 84SB # FOR SHARED FILESTORE IN THE 'A' MACHINE, WE MUST CHECK IF THE 21 85#2 # BLOCK WE HAVE FOUND IS FOR AN ALIEN JOB. IF IT IS, WE GO TO 'B' 16 85RL # TO GET UP-TO-DATE INFORMATION ABOUT THE JOB. 4 86?= # 18 86QW JBC OK,3,JBFSHALIEN [JIF NOT AN 'ALIEN' JOB 4 87=G # 21 87Q6 LDX 0 JOBNUM(3) [UPDATE 'LAST' JOB NUMBER TO REMEMBER 17 889Q STO 0 AWORK2(2) [WHERE WE HAVE GO TO 4 88PB # 16 8992 LDN 0 8 [SET OPTION '8' 19 89NL CALL 1 XSWOPMC [AND TRANSFER TO 'B' MACHINE 21 8=8= BRN P40R [JOB NOT FOUND, SO REPEAT SEARCH HERE 4 8=MW # 4 8?7G XA5 4 8?M6 ) 9 8#6Q OK LDX 0 JOBNUM(3) 16 8#LB STO 0 AWORK2(2) [KEEP LAST NUMBER 10 8*62 LDX 0 ALOGLEN(3) 9 8*KL ADN 3 JOBNUM-A1 19 8B5= SBN 0 JOBNUM-A1 [ADJUST PAST JOBRING ELEMENTS 8 8BJW BRN P16 8 8C4G FSHCODE AORB 4 8CJ6 ( 5 8D3Q XENDQ 4 8DHB # 19 8F32 # END OF QUEUE PROCESSING IS DIFFERENT FOR SHARED FILESTORE 4 8FGL # 8 8G2= FSHCODE A,XA4 4 8GFW ( 12 8G_G # CLEAR LAST JOB NUMBER MARKER 4 8HF6 # 9 8HYQ STOZ AWORK2(2) 8 8JDB BRN R1 4 8JY2 # 4 8KCL XA4 4 8KX= ) 8 8LBW FSHCODE B,XB5 4 8LWG ( 20 8MB6 # AT END OF QUEUE IN 'B' WE HAVE TO GO TO 'A' IN CASE THERE ARE 9 8MTQ # OTHER JOBS THERE 4 8N*B # 4 8NT2 Y6 16 8P#L LDN 0 3 [SET OPTION '3' 19 8PS= CALL 1 XSWOPMC [AND SWOP TO THE 'A' MACHINE 21 8Q?W BRN P40R ['B' M/C JOB FOUND, SO START AGAIN!! 17 8QRG BRN OK [BLOCK SENT WITH DATA 4 8R?6 # 21 8RQQ # WHEN THERE ARE NO MORE JOBS, THE RETURN TO THE LABEL 'R1' DIRECT 4 8S=B # 4 8SQ2 XB5 4 8T9L ) 4 8TP= ) 2 8W8W 2 8WNG 17 8X86 # THE ROUTINE BELOW DEALS WITH THE INSTPARA EXTRACODE. 13 8XMQ # IF HAS THE FOLLOWING CONTROL AREA: 8 8Y7B # WORD0 50/0 11 8YM2 # WORD1 0-THE REPLY WORD 13 8_6L # WORD2 NO.OF WORDS TO BE READ 14 8_L= # WORD3 PROGRAM ADDRESS OF INPUT AREA 4 925W # 4 92KG ZK10 20 9356 LDN 6 6 [THIS IS HLSREAD EXTRACODE NO.4 21 93JQ P50 LDN 5 4 [SET X5= LENGTH OF *FR PERI CONTROL A 21 944B BRN RD1 [J.TO S/R TO CHECK THAT THE PERI CONT 21 94J2 [ AND THE INPUT AREA TO WHICH IT REFE 21 953L [ BOTH WITHIN THE SUBJ.PROGRAM'S RESE 18 95H= P50R [RETURN VIA SWITCH TABLE 11 962W #UNS IPEXTENSION+1*IPEXTENSION 20 96GG LDX 6 5 [REMEMBER NUMBER OF IPS REQUESTED 21 9726 LDN 0 INSTPARL [ = LENGTH OF INSTALLATION PARAMETER 7 97FQ TXL 0 5 19 97_B BCC P51 [J IF MORE IPS THAN REQUESTED 20 98F2 LDX 5 0 [STORE NO OF IPS=LENGTH OF TRANS 20 98YL P51 LDN 3 INSTPARAM [INSTPARAM = START OF INPUT AREA 15 99D= LDN 7 0 [NO OVERFLOW 11 99XW #UNS IPEXTENSION+1*IPEXTENSION 4 9=CG ( 21 9=X6 SBX 6 5 [NUMBER OF IPS STILL REQD AFTER MOVE 18 9?BQ BZE 6 P17A [J IF GOT NUMBER REQUIRED 18 9?WB LDX 1 APETADDR(2) [ADDRESS OF AREA IN APET 21 9#B2 FINMOVE 1,4,3,5,HLOCK2 [MOVE IPS INTO SUBJECT PROGRAM AREA 21 9#TL ADS 5 AWORK3(2) [UPDATE PTR TO NEXT SPARE LOCATION IN 20 9**= LDX 4 AWORK3(2) [ AREA MOVING INTO AND SET IN X4 21 9*SW LDX 0 IPEXTCOUNT [COUNT OF WORDS IN EXTENSION TABLE 21 9B#G LDX 5 6 [RESET X5 TO NO. OF IPS STILL REQD 7 9BS6 TXL 0 5 21 9C?Q BCC P52 [J IF NOT REQUIRE ALL EXTENSION TABLE 21 9CRB LDX 5 0 [SET X5 TO SIZE OF EXTENSION TABLE 20 9D?2 P52 LDX 3 IPEXTTAB [PTR TO START OF EXTENSION TABLE 4 9DQL ) 8 9F== BRN P17A 2 9FPW 19 9G9G # THE ROUTINE BELOW IS THE EXTRACODE TO READ THE NEXT ENTRY 18 9GP6 # FROM HLSTEMP AND INSERT IT ON THE HLSQ IN THE ORDER OF 8 9H8Q # ITS JOBNUMBER 8 9HNB # WORD0 50/0 10 9J82 # WORD1 0- REPLY WORD 13 9JML # WORD2 NO. OF WORDS TO BE READ 16 9K7= # WORD3 START ADDRESS OF PROGRAM INPUT AREA 4 9KLW ZK11 18 9L6G LDN 6 8 [SET SWITCH FOR EXTRACODE 20 9LL6 S5 LDN 5 4 [SET X5=LENGTH OF CONTROL AREA 21 9M5Q BRN RD1 [J TO S/R TO CHECK THAT CA AND INPUT 21 9MKB [BUFFER ARE WITHIN PROG RESERVATIONS 9 9N52 S6 LDX 3 BHTEMP 8 9NJL TXU 3 CXHT 8 9P4= BCC R1 9 9PHW LDX 0 ATYPE(3) 8 9Q3G SRL 0 12 10 9QH6 SBN 0 ADATA+ASUP 16 9R2Q BNZ 0 NOTASUP [J IF NOT SUP. BLOCK 9 9RGB LDX 0 AWORK3(2) 9 9S22 STOC 0 AWORK3(2) 19 9SFL BCS S7 [TRANSFER BLOCK IF SUP WANTED 16 9S_= FREECORE 3 [ELSE THROW IT AWAY 8 9TDW BRN S6 5 9TYG NOTASUP 9 9WD6 LDXC 0 AWORK3(2) 16 9WXQ BCS R1 [ERROR IF SUP WANTED 16 9XCB LDX 7 HLSJONO(3) [X7 HOLDS JOB NO 10 9XX2 LDX 0 HLSYONQA(3) 8 9YBL ANDN 0 #7777 9 9YW= SBN 0 EVWAITIN 16 9_*W BZE 0 S8 [RECHAIN IF WAITIN EVENT 8 9_TG LDCT 0 #001 10 =2*6 ANDX 0 HLSYONQ(3) 14 =2SQ BNZ 0 S8 [J IF REQUEST 8 =3#B LDN 0 #10 10 =3S2 ANDX 0 HLSYONQ(3) 16 =4?L BZE 0 S7 [J IF NOT B-IN BLOCK 16 =4R= SHLSQ 7,1,S7 [X1 -> HLSQ BLOCK 16 =5=W FREECORE 1 [FREE HLS ENTRY 8 =5QG BRN S7 4 =6=6 S8 8 =6PQ LDX 2 BHLSQ 8 =79B TXU 2 CXHL 17 =7P2 BCC S4 [J. IF HLSQ IS EMPTY 8 =88L BRN S2 19 =8N= S1 LDX 2 FPTR(2) [GET POINTER TO NEXT BLOCK 14 =97W TXU 2 CXHL [IN HLSQ 19 =9MG BCC S3 [J. IF END OF HLSQ REACHED 19 ==76 S2 LDX 6 HLSJONO(2) [GET JOBNUMBER OF BLK IN HLSQ 7 ==LQ TXL 7 6 19 =?6B BCC S1 [J. IF BLOCK FROM HLSTEMP HAS 17 =?L2 [THE LOWER JOBNUMBER 19 =#5L S3 LDX 2 BPTR(2) [GET PTR TO PRECEDING BLOCK 18 =#K= S4 CHAIN 3,2 [CHAIN NEW BLOCK IN HLSQ 8 =*4W BRN P15 21 =*JG S7 LDX 6 GSIGN [SET X6 -VE TO INDICATE THAT HLS BLK 8 =B46 LDX 2 FX2 20 =BHQ ORS 6 AWORK4(2) [TEMPQ TO BE REMOVED INDICATOR 8 =C3B BRN P15 21 =CH2 [BEEN COPIED INTO SUBJ.PROGS. AREA 2 =D2L 18 =DG= [ THE ROUTINE BELOW DEALS WITH THE PASSIVE READ OF HLSTEMPQ 12 =D_W [ IT HAS THE FOLLOWING CONTROL AREA 9 =FFG [ WORD0 52/#107 10 =F_6 [ WORD1 0 -REPLY WORD 13 =GDQ [ WORD2 NO.OF WORDS TO BE READ 16 =GYB [ WORD3 START ADDRESS OF PROGRAM INPUT AREA 5 =HD2 ZM107 8 =HXL FSHCODE B,XB6 4 =JC= ( 21 =JWW # WE CANNOT SEARCH THE TEMPQ IN THE 'B' MACHINE AND SO WE TRANSFER 12 =KBG # TO 'A' AND LOOK FOR DATA THERE 4 =KW6 # 16 =L*Q LDN 0 4 [SET OPTION '4' 17 =LTB CALL 1 XSWOPMC [AND SWOP MACHINES 4 =M*2 # 4 =MSL XB6 4 =N#= ) 8 =NRW FSHSKIP B,XB7 4 =P?G ( 9 =PR6 LDX 3 BHTEMP 8 =Q=Q BRN T7L2 17 =QQB T7L1 LDX 3 FPTR(3) [NEXT ENTRY OF TEMPQ 17 =R=2 T7L2 BXE 3 CXHT,R1 [J IF END OF TEMPQ 16 =RPL JBS T7L1,3,PRMARK [J IF UNREAD BLOCK 9 =S9= LDX 0 ATYPE(3) 8 =SNW SRL 0 12 10 =T8G SBN 0 ADATA+ASUP 16 =TN6 BNZ 0 PNOTASUP [J IF NOT SUP. BLOCK 16 =W7Q BS 3,PRMARK [SET READ IND. 9 =WMB LDX 0 AWORK3(2) 9 =X72 STOC 0 AWORK3(2) 19 =XLL BCS P15 [TRANSFER BLOCK IF SUP WANTED 8 =Y6= BRN T7L1 5 =YKW PNOTASUP 9 =_5G LDXC 0 AWORK3(2) 16 =_K6 BCS R1 [ERROR IF SUP WANTED 15 ?24Q BS 3,PRMARK [SET READ IND 4 ?2JB # 4 ?342 XB7 4 ?3HL ) 15 ?43= BRN P15 [J IF UNREAD ENTRY 2 ?4GW 2 ?52G 17 ?5G6 # THE ROUTINE BELOW DEALS WITH THE PERILIST EXTRACODE 13 ?5_Q # IT HAS THE FOLLOWING CONTROL AREA: 11 ?6FB # WORD0 6/0 OR 52/#102 11 ?6_2 # WORD1 0-THE REPLY WORD 14 ?7DL # WORD2 THE NO. OF WORDS TO BE READ 17 ?7Y= # WORD3 START ADDRESS OF THE PROGRAM INPUT AREA 17 ?8CW # WORD4 #100 IF ALL PERIPHERAL LIST TO BE READ 20 ?8XG # OR A PERIPHERAL TYPE,IF ONLY RECORDS OF THAT TYPE TO BE READ. 4 ?9C6 ZK12 18 ?9WQ LDN 6 7 [SET SWITCH FOR RETURN 17 ?=BB BRN READOUT [FROM READOUT ROUTINE 4 ?=W2 P60 10 ??*L STO 4 ACOMMUNE1(2) 8 ??T= FSHCODE AORB 4 ?##W ( 20 ?#SG # FOR SHARED FILESTORE, THERE MAY BE BITS SET AT THE TOP OF THE 21 ?*#6 # COUNT WORD. THESE ARE CLEARED BEFORE THE COUNT VALUE IS STORED 4 ?*RQ # 20 ?B?B LDX 3 5 [KEEP FULL COUNT WORD CONTENTS 18 ?BR2 ANDX 5 BITS22LS [AND MASK THE COUNT FIELD 4 ?C=L ) 10 ?CQ= STO 5 ACOMMUNE2(2) 8 ?D9W BNG 7 R1 21 ?DPG BXGE 7 X101(1),R1 [J IF T# OUT OF RANGE FOR -VE REPLY 8 ?F96 FSHCODE AORB 4 ?FNQ ( 20 ?G8B # WE MUST NOW ANALYSE THE ADDITIONAL INFORMATION SUPPLIED IN THE 8 ?GN2 # COUNT WORD. 4 ?H7L # 20 ?HM= SLC 3 2 [GET BITS DOWN TO BOTTOM OF X3 18 ?J6W ANDN 3 3 [AND MASK OUT OUR BITS 8 ?JLG FSHCODE A,XA2 4 ?K66 ( 19 ?KKQ SMO 3 [USE JUMP TABLE TO INTERPRET 16 ?L5B BRN / [REQUIRED ACTION 15 ?LK2 BRN Y3 [STAY HERE 17 ?M4L BRN Y2 [GO TO OTHER MACHINE 15 ?MJ= BRN Y3 [STAY HERE 17 ?N3W BRN Y2 [GO TO OTHER MACHINE 4 ?NHG # 4 ?P36 XA2 4 ?PGQ ) 8 ?Q2B FSHCODE B,XB8 4 ?QG2 ( 19 ?Q_L SMO 3 [USE JUMP TABLE TO INTERPRET 16 ?RF= BRN / [REQUIRED ACTION 15 ?RYW BRN Y3 [STAY HERE 17 ?SDG BRN Y2 [GO TO OTHER MACHINE 17 ?SY6 BRN Y2 [GO TO OTHER MACHINE 15 ?TCQ BRN Y3 [STAY HERE 4 ?TXB # 4 ?WC2 XB8 4 ?WWL ) 4 ?XB= # 16 ?XTW Y2 LDN 0 5 [SET OPTION '5' 18 ?Y*G CALL 1 XSWOPMC [AND GO TO OTHER MACHINE 18 ?YT6 BRN P17R [JIF NO DATA TO PROCESS 19 ?_#Q BRN P15 [GO TO SET DATA INTO PROGRAM 4 ?_SB # 4 #2#2 Y3 4 #2RL ) 7 #3?= LDX 3 7 9 #3QW LDX 4 JPTI(3) 21 #4=G SBX 4 JPTI [X4 WILL CONTAIN NO OF PERIPHERALS 9 #4Q6 TXU 7 X100(1) 18 #59Q BCC WHOLE [IF =#100, ALL LIST REQD 9 #5PB LDX 4 JPTI+1(3) 21 #692 SBX 4 JPTI(3) [X4 WILL CONTAIN NO OF PERS OF REQD 13 #6NL [TYPE 17 #78= BNZ 4 WHOLE [J IF SOME ENTRIES 21 #7MW LDX 5 AWORK3(2) [SET REPLY EQUAL TO TRANSFER ADDRESS 21 #87G BRN P17R [J TO SET REPLY AND RESTART THE PROGR 7 #8M6 WHOLE LDN 0 6 16 #96Q MPY 4 0 [CORE REQD IN X5 18 #9LB SETUPCOR 5,1,ADATA,APLIST [GET BLOCK TO HOLD GEN 8 #=62 STOZ A1(1) 8 #=KL LDN 3 A1(1) 9 #?5= LDN 4 A1+1(1) 7 #?JW SBN 5 1 7 ##4G SMO 5 16 ##J6 MOVE 3 0 [ZEROISE BLOCK 19 #*3Q LDX 3 1 [KEEP X3 -> START OF BLOCK 8 #*HB LDN 5 #100 7 #B32 LDX 4 7 20 #BGL ADN 1 A1 [X1 -> 1ST WORD FOR STORING GEN 8 #C2= SBN 4 #100 16 #CFW BZE 4 THELOT [J IF ALL REQD 7 #C_G LDN 5 1 8 #DF6 ADN 4 #100 20 #DYQ THELOT [HERE X4 HAS PER TYPE,X5 COUNT OF PERS TO 13 #FDB [BE INSPECTED 12 #FKJ ...[ SET X2 = DEVICE LIST ENTRY ADDRESS 11 #FQQ ...[ IN CME, MACRO BRNS TO XCME IF 16 #FXY ...[ DEVICE IS SWITCHED OUT WITH UNIT NO. KNOWN OR IF 9 #G56 ...[ DEVICE IS ANONYMOUS 14 #G=# ... FINDPEREC 2,APFOTY,4,RETRY,,XCME,XCME 17 #GCL BNG 2 MISS [J IF NO MORE TO FIND 4 #GMD ...XCME 16 #GX= STO 4 0(1) [STORE PER TYPE 15 #HBW LGEOG 2,4 [GET GEOG NO 14 #HDS ...[ IF CME, TEST FOR SWITCHED OUT DEVICE AND 12 #HGQ ...[ SET BIT IN PERIPHERAL LIST ENTRY 9 #HJN ... JENVNOT XNOSW,CME 8 #HLL ... JSWIN 2,XNOSW 8 #HNJ ... LDCT 0 #100 7 #HQG ... ORX 4 0 5 #HSD ...XNOSW 16 #HWG ORX 4 GSIGN [SET WRONGED BIT 15 #JB6 JWRONG 2,WRONG [J IF WRONGED 14 #JTQ ERX 4 GSIGN [UNSET IT 16 #K*B WRONG STO 4 1(1) [STORE THIS LOT 15 #KT2 JONL 2,ONL [J IF ONLINE 16 #L#L JMT 2,SAMMT [J IF MAG TAPE 8 #LS= BRN NOOL 18 #M?W SAMMT JALLOC 2,SAMMS [J IF IN USE BY GEORGE 8 #MRG BRN NOOL 19 #N?6 SAMMS LDCT 0 #200 [SET ALLOCATED REPLY FOR USER 8 #NQQ ORS 0 1(1) 8 #P=B BRN NOOL 15 #PQ2 ONL LJOBNO 2,4 [GET JOB NUM 16 #Q9L ORX 4 GSIGN [SET ONLINE BIT 16 #QP= STO 4 2(1) [STORE THIS LOT 8 #R8W NOOL LPROP 2,4 18 #RNG ORS 4 3(1) [STORE PROPS (PHYSICAL) 16 #S86 JMT 2,TSN [J FOR MAG TAPE 18 #SMQ JBACK 2,XCSN [J IF SUSN/CSN TO PICK UP 8 #T7B BRN NOSN 4 #TM2 XCSN 17 #W6L LDX 4 3 [KEEP -> ADATA/APLIST 8 #WL= LADDP 2,3 10 #X5W LDXC 0 BSUNIT2(3) 19 #XKG BCC NINUSE [J IF NOS IN USE BY GEORGE 8 #Y56 LDCT 0 #200 8 #YJQ ORS 0 1(1) 5 #_4B NINUSE 8 #_J2 LDCT 0 #20 9 *23L ANDX 0 BSUNIT(3) 17 *2H= BZE 0 UNENG [J IF CSN NOT THERE 10 *32W LDX 0 BSUNIT5(3) 15 *3GG UNENG LDX 3 4 [RESTORE PTR 8 *426 BRN STOSN 9 *4FQ TSN DFLOAD 2,TSN,0 5 *4_B STOSN 8 *5F2 STO 0 4(1) 4 *5YL NOSN 16 *6D= LDX 4 0(1) [RESTORE PER TYPE 15 *6XW ADN 1 6 [UPDATE PTR 8 *7CG BRN RETRY 17 *7X6 MISS ADN 4 1 [SET NEXT PER TYPE 18 *8BQ BCT 5 THELOT [IF ALL RETURN FOR NEXT 8 *8WB LDX 2 FX2 10 *9B2 LDX 4 ACOMMUNE1(2) 14 *9TL LDX 5 ACOMMUNE2(2) [RESTORD 17 *=*= BRN P15 [GO TO MOVE IT ALL IN 4 *=SW # 17 *?#G # THE ROUTINE BELOWS DEALS WITH THE GEORGECORE EXTRACODE 12 *?S6 # IT HAS THE FOLLOWING CONTROL AREA 8 *#?Q # WORD 0 6/0 11 *#RB # WORD 1 0-THE REPLY WORD 14 **?2 # WORD 2 THE NO. OF WORDS TO BE READ 14 **QL # WORD 3 START ADDRESS OF THE PROGRAM 19 *B== # WORD 4 ADDRESS IN GEORGE'S CORE OF FIRST WORD TO BE READ 4 *BPW # 7 *C9G ZK13 LDN 6 9 9 *CP6 BRN READOUT 17 *D8Q # X4=BUFFER X5=COUNT X7=GEORGE ADDRESS 4 *DNB X25K 8 *F82 FSHCODE AORB 4 *FML ( 20 *G7= # FOR 'GEOCORE' IN SHARED FILESTORE, THE COUNT WORD OF THE PERI 17 *GLW # INDICATES WHERE THE EXTRACODE IS TO BE CARRIED OUT 4 *H6G # 19 *HL6 LDX 3 5 [COPY THE COUNT WORD AND THEN 20 *J5Q ANDX 5 BITS22LS [CLEAR THE BIT MARKERS (B0,B1) 7 *JKB SLC 3 2 20 *K52 ANDN 3 3 [FORM MODIFIER FROM BITS 0 & 1 4 *KJL # 8 *L4= FSHCODE A,XA3 4 *LHW ( 20 *M3G SMO 3 [USE JUMP TABLE TO GET REQUIRED 14 *MH6 BRN / [ACTION 20 *N2Q BRN Y5 [STAY HERE (HOME) 20 *NGB BRN Y4 [OTHER MACHINE (AWAY) 19 *P22 BRN Y5 [STAY HERE ('A') 19 *PFL BRN Y4 [OTHER MACHINE ('B') 4 *P_= # 4 *QDW XA3 4 *QYG ) 8 *RD6 FSHCODE B,XB9 4 *RXQ ( 20 *SCB SMO 3 [USE JUMP TABLE TO GET REQUIRED 14 *SX2 BRN / [ACTION 19 *TBL BRN Y5 [STAY HERE (HOME) 19 *TW= BRN Y4 [OTHER MACHINE (AWAY) 19 *W*W BRN Y4 [OTHER MACHINE ('A') 19 *WTG BRN Y5 [STAY HERE ('B') 4 *X*6 # 4 *XSQ XB9 4 *Y#B ) 4 *YS2 # 16 *_?L Y4 LDN 0 6 [SET OPTION '6' 18 *_R= CALL 1 XSWOPMC [AND GO TO OTHER MACHINE 19 B2=W ADN 3 A1 [SET ABSOLUTE ADDRESS IN CORE 19 B2QG BRN P17A [GO TO PUT DATA INTO PROGRAM 4 B3=6 # 4 B3PQ Y5 4 B49B ) 8 B4P2 TXL 5 B513 8 B58L BCS X5OK 20 B5N= LDN 5 512 [ALLOW MAX TRANSFER OF 512 WORDS 8 B67W X5OK TXL 7 CORES 21 B6MG BCC R1 [-VE REPLY IF ILLEGAL GEORGE ADDRESS 7 B776 LDX 3 7 7 B7LQ LDX 0 7 15 B86B LDN 7 0 [NO OVERFLOW 7 B8L2 ADX 0 5 8 B95L SBX 0 CORES 21 B9K= BNG 0 P17A [J IF REQUESTED AREA ALL BELOW LIMIT 18 B=4W SBX 5 0 [...ELSE ADJUST COUNT. 8 B=JG BRN P17A 4 B?46 # 15 B?HQ [ THE ROUTINE BELOW DEALS WITH THE REWIND HLSQ 12 B#3B [ IT HAS THE FOLLOWING CONTROL AREA: 9 B#H2 [ WORD0 52/#111 10 B*2L [ WORD1 0 -REPLY WORD 15 B*G= ZM111 STOZ AWORK1(2) [RESET MARKER 8 B*_W BRN REWI5 15 BBFG [ THE ROUTINE BELOW DEALS WITH THE REWIND JOBQ 12 BB_6 [ IT HAS THE FOLLOWING CONTROL AREA 9 BCDQ [ WORD0 52/#112 10 BCYB [ WORD1 0 -REPLY WORD 15 BDD2 ZM112 STOZ AWORK2(2) [RESET MARKER 8 BDXL BRN REWI5 16 BFC= [ THE ROUTINE BELOW DEALS WITH THE SCHEDJOB XCODE 9 BFWW [ WORD0 52/#113 10 BGBG [ WORD1 0 -REPLY WORD 15 BGW6 [ WORD2 NO. OF WORDS IN CONTROL RECORD 15 BH*Q [ WORD3 ADDRESS OF PROGRAMS CONTROL AREA 17 BHTB ZK14 LDN 6 10 [CHANNEL INDICATOR 9 BJ*2 STO 6 AWORK4(2) 19 BJSL LDN 5 4 [LENGTH OF PERI CONTROL AREA 8 BK#= BRN RD2 19 BKRW ZM113 BZE 5 SILLEGAL [CONTROL RECORD ZERO LENGTH 16 BL?G LDX 7 5 [SAVE REC. LENGTH 18 BLR6 BXL 5 RECL(1),T13L2 [J IF REC.< AOLPT AREA 9 BM=Q LDX 5 RECL(1) 10 BMQB T13L2 LDN 3 HLSCONREC(2) 8 BN=2 LDX 0 GSIGN 8 BNPL STO 0 0(3) 8 BP9= LDN 4 1(3) 9 BPNW SMO RECL(1) 15 BQ8G MOVE 3 511 [SET DEFAULTS 8 BQN6 #UNS ECS 8 BR7Q STOZ 11(3) 9 BRMB LDX 2 AWORK3(2) 7 BS72 LDX 4 5 17 BSLL CALL 6 XFOUTMOVE2 [CONTROL REC -> AOLPT 18 BT6= LDX 3 HLSCONREC(2) [GET INDX NO. OF CON.REC. 16 BTKW BXGE 3 SCHMAX(1),SILLEGAL [ILLEGAL INDX NO. 8 BW5G SMO FX1 9 BWK6 LDX 0 SCHLEN(3) 18 BX4Q BXL 0 7,SILLEGAL [CONTROL REC. OVERSIZE 7 BXJB SBN 3 2 18 BY42 BNG 3 NEEDS [J IF STARTJOB OR RESET 7 BYHL SBN 3 4 15 B_3= BZE 3 NEEDS [J IF DEWELL 7 B_GW ADN 3 1 15 C22G BZE 3 WAITMESS [J IF JOBWAIT 9 C2G6 BRN XECUTE 12 C2_Q [ GET ONLINE PERIPHERAL REQUIREMENTS 17 C3FB NEEDS LDXC 4 HLSCONREC+7(2) [PTR. TO NEEDS DATA 16 C3_2 BCS XECUTE [J IF NO NEEDS 13 C4DL CALL 7 XCLEAR [CLEAR HLOCK2 7 C4Y= LDN 5 1 18 C5CW CALL 3 RCHECKA [1ST WORD OF NEEDS CHECK 7 C5XG LDN 3 5 7 C6C6 LDX 2 4 7 C6WQ LDN 4 1 18 C7BB CALL 6 XFOUTMOVE2 [X5 = 1ST WORD OF NEEDS 8 C7W2 ANDN 5 #777 17 C8*L BZE 5 SILLEGAL [J IF NO NEEDS DATA 13 C8T= CALL 7 XCLEAR [CLEAR HLOCK2 11 C9#W LDX 4 HLSCONREC+7(2) 19 C9SG CALL 3 RCHECKA [CHECK IF NEEDS IN SBJ.PROG. 11 C=#6 SETUPCORE 5,3,ADATA,CSTORE 8 C=RQ LDN 3 A1(3) 11 C??B LDX 2 HLSCONREC+7(2) 7 C?R2 LDX 4 5 17 C#=L CALL 6 XFOUTMOVE2 [MOVE NEEDS->AOLPT 11 C#Q= MHUNTW 3,ADATA,CSTORE 8 C*9W LDN 0 #777 8 C*PG ANDS 0 A1(3) 9 CB96 BRN XECUTE 11 CBNQ [ SET UP GMON/HLSOUT FOR JOBWAIT 5 CC8B WAITMESS 11 CCN2 LDX 0 HLSCONREC+2(2) 7 CD7L SBN 0 4 9 CDM= BNG 0 SETUPBLK 7 CF6W SBN 7 4 16 CFLG BNG 7 SILLEGAL [J IF NO MESSAGE 7 CG66 ... ADN 7 3 13 CGKQ [WE ALWAYS SET UP BLOCK TO KEEP MESS NO 5 CH5B SETUPBLK 11 CHK2 SETUPCORE 7,3,GMON,HLSOUT 7 CJ4L ... SBN 7 2 8 CJJ= STO 7 A1(3) 9 CK3W LDX 2 AWORK3(2) 7 CKHG ADN 2 3 9 CL36 LDN 3 A1+2(3) 7 CLGQ LDX 4 7 19 CM2B CALL 6 XFOUTMOVE2 [MOVE CON.REC.->GMON/HLSOUT 5 CMG2 XECUTE 19 CNYW # CODE FOR WAIT,DEWELL AND SWITCH (CONTROL NOS 2,6 AND 7) IS IN 11 CPDG # THE OVERFLOW SEGMENT SCHDJOBA 10 CPY6 LDX 0 HLSCONREC(2) 7 CQCQ SBN 0 2 9 CQXB BZE 0 XECUTA 7 CRC2 SBN 0 4 9 CRWL BPZ 0 XECUTA 10 CSTW ACROSS SCHEDJOB,1 5 CW#Q XECUTA 10 CWSB ACROSS SCHDJOBA,1 16 CXRL [ THE ROUTINE BELOW DEALS WITH THE RETRIEVE XCODE 12 CY?= [ IT HAS THE FOLLOWING CONTROL AREA 9 CYQW [ WORD0 52/#114 19 C_=G [ WORD1 0 -REPLY WORD (COUNT OF OUTSTANDING RVS ON EXIT) 10 C_Q6 [ WORD2 JOB NUMBER 8 D29Q ZM114 BZE 5 R1 9 D2PB FSHCODE B,XB10 4 D392 ( 19 D3NL # WE CANNOT DEAL WITH COUNTS OF OUTSTANDING RETRIEVES ON 'B' 10 D48= # SO WE MUST GO TO 'A' 4 D4MW # 16 D57G LDN 0 7 [SET OPTION '7' 17 D5M6 CALL 1 XSWOPMC [AND TRANSFER TO 'A' 4 D66Q # 4 D6LB XB10 4 D762 ) 9 D7KL FSHSKIP B,XB11 4 D85= ( 17 D8JW LDN 6 0 [SET ZERO COUNT 16 D94G JOBLOCK 5,3 [FIND JOBLOCK 17 D9J6 BNG 3 SAMNW [J NONE PRESENT 21 D=3Q HLSAV 3,SET,SAVING,JOBQ,SAMNW [CHECK AND J IF JOB BEING SAVED 16 D=HB FCAJO 2,3 [FIND CPAT 21 D?32 LDEX 3 CLONG1(2) [CHECK IF JOB IS WAITING FOR A RE 8 D?GL LDN 2 #24 7 D#2= TXU 2 3 15 D#FW BCS SAMNW [J IF NOT 18 D#_G LDN 6 1 [SET COUNT IF IT IS 5 D*F6 SAMNW 19 D*YQ OUTRVCT 5,5 [PUT COUNT OF OUTSTANDING... 21 DBDB ADX 5 6 [ADD NO. OF NON-AUTONOMOUS RETRIE 4 DBY2 # 4 DCCL XB11 4 DCX= ) 20 DDBW BRN P17R [RVS IN X5 (X5=JOBNO ON ENTRY) 19 DDWG [ THE ROUTINE BELOW DEALS WITH THE WHATSTATE XCODE(STARTED JOBS) 12 DFB6 [ IT HAS THE FOLLOWING CONTROL AREA: 9 DFTQ [ WORD0 52/#115 10 DG*B [ WORD1 0 -REPLY WORD 13 DGT2 [ WORD2 NO. OF WORDS TO BE READ 14 DH#L [ WORD3 ADDRESS OF PROGRAM'S BUFFER 10 DHS= [ WORD4 JOB NUMBER 14 DJ?W ZM115 BNG 7 R1 [ERROR... 18 DJRG BZE 7 R1 [...NO SUCH JOB NUMBER 10 DK?6 STO 7 ACOMMUNE1(2) 17 DKQQ ACROSS WSJOBS,1 [GET WS INFORMATION 11 DL=B ZK30 HUNTW 3,CQPRINT,CQ11 16 DLQ2 BNG 3 R1 [J IF NO SUCH JOB 8 DM9L LDX 0 GSIGN 20 DMP= ERS 0 A1(3) [REMOVE XCODE IND. FROM JOB N0. 10 DN8W STO 3 ACOMMUNE7(2) 17 DNNG CALL 6 XFOUTMOVE [REREAD CONTROL AREA 17 DP86 LDX 3 ACOMMUNE7(2) [X3-> CQPRINT/CQ11 15 DPMQ LDX 4 ACOMMUNE2(2) [X4-> BUFFER 15 DQ7B LDX 5 ACOMMUNE1(2) [X5 = LENGTH 16 DQM2 BRN P15 [ OUTPUT RESULTS 2 DR6L 5 DRL= SILLEGAL 8 DS5W LDX 1 FX1 21 DSKG TOPCA PLINK2(1) [SET LINK FOR ILLEGAL ILLINS MESSAGE 6 DT56 COOR1 9 DTJQ BRN REPEAT 5 DW4B RILLEGAL 18 DWJ2 # THE PERI IS ILLEGAL,TRANSFER TO PROCESS CONTROL ACTIVITY 9 DX3L TOPCA PLINK1(1) 6 DXH= COOR1 2 DY2W 2 DYGG 5 D_26 REPEAT 21 D_FQ SMO AWORK4(2) [SINCE THIS IS LEFT SET AS THE ENTRY 21 D__B BRN REENTRYPT [ ALINK2 OF AOLPT),A SWITCH TABLE IS 20 F2F2 REENTRYPT [ J.TO THE APPROPIATE ENTRY POINT 18 F2YL [ (X6) = EXTRACODE NO. 8 F3D= BRN ZK3 8 F3XW BRN ZK3 8 F4CG BRN ZK15 8 F4X6 BRN ZK7 8 F5BQ BRN P30 8 F5WB BRN P40 8 F6B2 BRN ZK10 8 F6TL BRN ZK12 8 F7*= BRN ZK11 8 F7SW BRN ZK13 8 F8#G BRN ZK14 2 F8S6 2 F9?Q 20 F9RB READOUT [FIRST CHECK MODE FOR ED PERIS 15 F=?2 STO 6 AWORK4(2) [EXTRACODE NO. 7 F=QL LDN 5 5 9 F?== LDX 0 EVENT4(2) 8 F?PW ANDN 0 #7777 18 F#9G BZE 0 RD2 [J IF NORMAL CASE FOR ED 9 F#P6 TXU 0 XCLOSE(1) 8 F*8Q BCC XCL 18 F*NB BRN SILLEGAL [OTHERWISE ILLEGAL MODE 16 FB82 RD1 STO 6 AWORK4(2) [EXTRACODE NO. 9 FBML LDEX 0 EVENT4(2) 7 FC7= SBN 0 2 15 FCLW BZE 0 RD2 [J IF MODE 2 7 FD6G SBN 0 5 16 FDL6 BNZ 0 SILLEGAL [J UNLESS MODE 7 19 FF5Q LDX 7 6 [NOW IF EXTRACODE NO 2 OR 3 20 FFKB SBN 7 4 [MODE 7 IS ALLOWED & IS REWIND 9 FG52 TXU 7 SA1(1) 8 FGJL BCC REWI 9 FH4= BNZ 7 SILLEGAL 9 FHHW REWI LDX 4 EVENT2(2) 9 FJ3G CALL 3 RCHECKA 19 FJH6 SMO 7 [X7=1 FOR JOBQ, 0 FOR HLSQ 9 FK2Q STOZ AWORK1(2) 7 FKGB REWI5 LDN 5 0 17 FL22 BRN P17R [SET REPLY AND FINISH 4 FLFL RD2 15 FL_= LDX 4 EVENT2(2) [ADDR OF PCA 21 FMDW CALL 3 RCHECKA [CHECK CONTROL AREA IS WITHIN SUBJEC 21 FMYG [RESERVATIONS AND SET X4=SUBJ PROG'S 18 FND6 CALL 6 XFOUTMOVE [MOVE OUT CONTROL AREA 15 FNXQ LDX 4 ACOMMUNE2(2) [X4->BUFFER 15 FPCB LDX 5 ACOMMUNE1(2) [X5=LENGTH 19 FPX2 LDX 7 ACOMMUNE3(2) [X7=ADDITIONAL INFORMATION 17 FQBL STO 4 AWORK3(2) [SAVE ADDR. OF BUFFER 9 FQW= LDEX 0 EVENT4(2) 9 FR*W SBN 0 RVMODE 17 FRTG BZE 0 ZM114 [J IF RETRIEVE XCIODE 9 FS*6 LDEX 0 EVENT4(2) 8 FSSQ SBN 0 #111 19 FT#B BZE 0 ZM111 [J IF REWIND HLSQ EXTRACODE 7 FTS2 SBN 0 1 19 FW?L BZE 0 ZM112 [J IF REWIND JOBQ EXTRACODE 19 FWR= BZE 5 P16A [J IF ZERO WORDS TO BE READ 8 FX=W FSHCODE AORB 19 FXQG ANDX 5 BITS22LS [MAKE SURE M/C BITS ARE UNSET 9 FY=6 CALL 3 RCHECKA 8 FYPQ FSHCODE AORB 21 F_9B LDX 5 ACOMMUNE1(2) [RECOVER COUNT WORD (WITH M/C BITS) 21 F_P2 SMO AWORK4(2) [CONTROL SWITCHES TO THE INSTRUCTION 21 G28L BRN SWITCH [ THE APPROPRIATE BRN READOUT USING T 21 G2N= SWITCH [ IN X6(SET ON ENTRY,=0 FOR K1,=1 FOR 19 G37W BRN ZK1D [ OPERATE ON THE SWITCH TABLE 8 G3MG BRN ZK1D 8 G476 BRN P1 8 G4LQ BRN P11 8 G56B BRN P30R 8 G5L2 BRN P40R 19 G65L BRN P50R [RETURN TO INSTPARA EXTRACODE 19 G6K= BRN P60 [RETURN TO PERILIST EXTRACODE 19 G74W BRN S6 [RETURN TO HLSTEMP EXTRACODE 19 G7JG BRN X25K [RETURN TO GEORGECORE XCODE 8 G846 BRN ZM113 11 G8HQ # TO CLOSE DOWN THE 'FILE' 10 G93B XCL RELOFP HLSPTYPE(2) 2 G9H2 4 G=2L ZK4 6 G=G= UNPLUG 8 G=_W ILLEGAL RESVIOL 8 G?FG R1 LDX 5 GSIGN 18 G?_6 BRN P17R [GO TO STORE -VE REPLY 4 G#DQ ZK5 6 G#YB UNPLUG 9 G*D2 ILLEGAL ILLINS 8 G*XL FSHCODE AORB 4 GBC= ( 5 GBWW XSWOPMC 4 GCBG # 21 GCW6 # THE FOLLOWING S/R IS USED TO SWOP FROM ONE MACHINE TO THE OTHER 21 GD*Q # USING A 'SUPERVISORY' TRANSBEG. IT STORES THE OPTION INDICATOR 18 GDTB # INTO ACOMMUNE4 AND A RELATIVISED LINK INTO ACOMMUNE5 4 GF*2 # 8 GFSL SBX 1 FX1 18 GG#= STO 0 ACOMMUNE4(2) [STORE OPTION INDICATOR 17 GGRW STO 1 ACOMMUNE5(2) [STORE RETURN LINK 4 GH?G # 4 GH*9 ...# 21 GHBY ...# ERROR RECOVERY DEMANDS A /FSHAMBLES BLOCK WITH A LINK TO THE ERROR 7 GHDM ...# ROUTINE 4 GHGB ...# 21 GHJ5 ... SETNCORE 1,3,FSH,FSHAMBLES [SET UP THE /FSHAMBLES BLOCK AND GIVE 15 GHKS ... LDX 0 X31HLSREAD(1) [IT A LINK 10 GHMH ... STO 0 FSHCDLINK(3) 4 GHP= ...# 21 GHR6 TRANSBEG FSHHLSEXID,FSHHLSRD,1,NOBLOCKS,,ACOMMUNE8,XCANTSWOP,SUP 4 GHY# ...# 20 GJ5G ... MFREEW FSH,FSHAMBLES [ERROR BLOCK WAS NOT NEEDED!!!! 4 GJ=Q # 21 GJCY ... SMO 3 [NOW APPLY THE OFFSET SUPPLIED BY THE 16 GJK6 ... BRN / [OTHER MACHINE 16 GJQB BRN R1 [ERROR REPLY EXIT 18 GK=2 BRN XSWOPMCX [OK REPLY - NO DATA BLOCK 20 GKPL MHUNTW 3,FSH,HLSTRANSFER [OK REPLY - FIND DATA BLOCK SENT 4 GL9= # 5 GLNW XSWOPMCX 18 GM8G LDX 0 ACOMMUNE5(2) [PICK UP LINK AND EXIT 8 GMN6 SMO FX1 7 GN7Q EXIT 0 0 4 GN?M ...# 6 GNCJ ...X31HLSREAD 10 GNHF ... LINK HLSREAD,31 4 GNMB # 4 GP72 # 21 GP=6 ...ZK31 [ERROR RECOVERY ENTRY POINT: TIDY UP AND GIVE ERROR REPLY 4 GP*= ...# 20 GPDB ... FSHACCWK [RESTORE LINK, ACCS AND AWORKS 4 GPHG ...# 6 GPLL XCANTSWOP 4 GQ6= # 17 GQKW # STANDARD ERROR REPLY IF THE LINK IS NOT RUNNING 4 GR5G # 20 GR*# ... MFREEW FSH,FSHAMBLES [GET RID OF ERROR RECOVERY BLOCK 8 GRK6 LDN 5 #101 18 GS4Q ORX 5 GSIGN [SET REPLY = #40000101 20 GSJB BRN P17R [AND GO TO RUN SUBJECT PROGRAM 4 GT42 ) 9 GTHL FSHCODE B,XB13 4 GW3= ( 4 GWGW # 6 GX2G SCOPYBLOCK 4 GXG6 # 19 GX_Q # SHARED FILESTORE: THIS SUBROUTINE IS USED TO MAKE A COPY 20 GYFB # OF A JOB BLOCK AND TO SET A BIT IN THE COPY TO INDICATE THAT 11 GY_2 # THE JOB IS ACTUALLY IN 'B' 4 G_DL # 21 G_Y= # THE BIT THAT IS USED IS 'JBFSHALIEN' WHICH CANNOT BE SET IN THE 12 H2CW # HOME COPY OF ANY JOB BLOCK!! 4 H2XG # 16 H3C6 # ON ENTRY: X3 POINTS TO THE JOB BLOCK TO COPY 13 H3WQ # X7 HOLDS THE JOB NUMBER 4 H4BB # 17 H4W2 # ON EXIT: X3 POINTS TO THE COPY OF THE JOB BLOCK 4 H5*L # 21 H5T= SBX 6 FX1 [PROCESS LINK AND GET BLOCK FOR COPY 14 H6#W SETUPCOR ALOGLEN(3),3,FSH,HLSTRANSFER 17 H6SG ADX 6 FX1 [RE-INSTATE THE LINK 4 H7#6 # 4 H7RQ # 19 H8?B FINDJOBQ 2,7,SGONE [FIND THE ORIGINAL JOB BLOCK 10 H8R2 LDX 0 ALOGLEN(2) 20 H9=L BXU 0 ALOGLEN(3),SGONE [JIF THE BLOCK LENGTH HAS CHANGED 4 H9Q= # 19 H=9W LDN 0 A1(2) [GET SOURCE ADDRESS FOR MOVE 19 H=PG LDN 1 A1(3) [GET TARGET ADDRESS FOR MOVE 19 H?96 SMO ALOGLEN(3) [COPY THE WHOLE BLOCK OVER 7 H?NQ MOVE 0 0 4 H#8B # 21 H#N2 BS 3,JBFSHALIEN [SET THE BIT INDICATING 'B' M/C JOB 8 H*7L LDX 2 FX2 21 H*M= EXIT 6 1 [RETURN TO CALLING ROUTINE - COPY OK 4 HB6W # 21 HBLG SGONE FREECORE 3 [COPY HAS FAILED - SO FREE COPY BLOCK 20 HC66 EXIT 6 0 [ERROR RETURN TO CALLING ROUTINE 4 HCKQ # 4 HD5B XB13 4 HDK2 ) 4 HF4L #END 6 ____ ...672666170002