13 22FL SEG LDSTART,70,RUTH PORTER 4 22_= # 4 23DW # 11 23YG SEGENTRY K1LDSTART,XENT1 11 24D6 SEGENTRY K2LDSTART,XENT2 11 24XQ SEGENTRY K5LDSTART,XENT5 11 25CB SEGENTRY K7LDSTART,XENT7 4 25X2 # 21 26BL # THE SEGMENT DEALS WITH THE INITIALISATION OF THE LOADING PROCESS FOR 21 26W= # OBJECT PROGRAMS.IT OPENS THE LOAD FILE,READS THE FIRST RECORD FROM IT, 4 27*W # 9 27TG #OPT ASHEETSIZE=BSSS 4 28*6 # 8 28SQ # WORKING SPACE 4 29#B # 19 29S2 # YCOUNT B0-20 COUNT OF RECORDS READ - SERIAL FILE ONLY 20 2=?L # B21-3 COUNT OF BLOCKS OF BINARY PROG READ & DEALT 17 2=R= # WITH ONLY VALUES 0,1,2 POSSIBLE 4 2?=W # 14 2?QG # XLDEXA B0-9 FLAGS ALREADY USED 17 2#=6 # B12 INITIAL LOAD OF A PURE PROCEDURE 18 2#PQ # B13 SUBSEQUENT LOAD OF A PURE PROCEDURE 11 2*9B # B21 RESUME 11 2*P2 # B22 LOADENTER 10 2B8L # B23 LOAD 4 2BN= # 8 2C7W #DEF YCOUNT=EXTPS 8 2CMG #DEF XLDEX=EXTPS+3 8 2D76 #DEF XLDEXA=EXTPS+4 4 2DLQ # 9 2F6B PGLP 4HLO # 9 2FL2 PLOAD 4HLOAD 9 2G5L PGPLS 4H0LO# 9 2GK= XB2B23 #10000001 9 2H4W XNBIT1 #57777777 21 2HJG XNB6T17 #77000077 [FOR CHECKING START OF BINARY PROG BK 18 2J46 XRQS #73000001 [FIRST WORD OF REQ SLIP 19 2JHQ XSRQS #73000006 [FIRST WORD OF SUPP REQ SLIP 9 2K3B MAXSIZE #20000001 5 2KH2 #SKIP G4 4 2L2L ( 18 2LG= XSUDNOMAX +512 [MAX PERMITTED SUD NO. 9 2L_W XB15LS #77777 4 2MFG ) 11 2M_6 # NAMES OF COMMAND ERROR REPORTS 8 2NDQ NAME +JFNAME 8 2NYB NAPP +FNAPP 8 2PD2 PARMIS +JPARMIS 9 2PXL PTYPE +ERPERITYPE 8 2QC= WRBLK +JWRBLK 8 2QWW RINF +JINFF 8 2RBG RJCHER +JCHER 8 2RW6 NORES +JNORES 7 2S*Q RICR +ICR 8 2STB NOENT +JNOENT 5 2T*2 #SKIP G4 4 2TSL ( 8 2W#= WQUOTA +IQR 9 2WRW WRLP +JINFF 4 2X?G ) 4 2XR6 # 4 2Y=Q # 13 2YQB # ENTRY POINT FOR THE RESUME COMMAND 4 2_=2 # 5 2_PL XENT7 18 329= VFREEW APED,ADISPLAY [CLEAR CURRENT DISPLAY 21 32NW LDN 4 4 [SET FLAGS TO INDICATE ENTRY POINT 8 338G BRN Z011 4 33N6 # 4 347Q # 13 34MB # ENTRY POINTS FOR LOAD & LOADENTER 19 3572 # ANY EXISTING CORE IMAGE IS DELETED AND THEN THE PARAMETERS 20 35LL # ARE ANALYSED.THE FIRST PARAMETER IS EITHER A FILE NAME OR NULL 20 366= # INDICATING A LOAD FROM THE JOB SOURCE,WHICH MUST NOT BE MOP. 21 36KW # A LOAD COMMAND CAN OPTIONALLY HAVE A 'CORE'PARAM'SPECIFYING THE 21 375G # SIZE OF THE PROG,A'QUOTA'PARAM SPECIFYING ITS INITIAL QUOTA AND 21 37K6 # A'PRIVATE'PARAM SPECIFYING THAT THE PROGRAM IS NOT TO BE TREATED 20 384Q # AS A PURE PROCEDURE.THE LAST TWO PARAMS ARE ONLY SIGN.IN G4 4 38JB # 17 3942 XENT2 [ENTRY FOR LOADENTER 7 39HL NGNC 4 1 19 3=3= XENT1 [ENTRY FOR LOAD AND RESTORE 9 3=GW LDX 4 XB2B23(1) 8 3?2G LDN 0 #1000 21 3?G6 ANDX 0 CONTEXT(2) [DELETE PREVIOUS CORE IMAGE IF THE 19 3?_Q BNZ 0 Z947 [CONTEXT SHOWS THERE IS ONE 18 3#FB VFREEW APED,ADISPLAY [CLEAR CURRENT DISPLAY 19 3#_2 VFREEW APED,ANEVENT [CLEAR PROGRAM EVENT MESSAGE 8 3*DL BRN Z01 10 3*Y= Z947 DOWN PROSTART,10 7 3BCW Z01 SPARANOT 1 4 3BXG Z011 10 3CC6 MHUNT 3,CPB,CUNI 15 3CWQ STO 4 XLDEXA(2) [STORE FLAGS 17 3DBB STOZ YCOUNT(2) [CLEAR WORKING SPACE 9 3DW2 STOZ XLDEX(2) 10 3F*L STOZ EXTPS+1(2) 10 3FT= STOZ EXTPS+2(2) 19 3G#W STOZ AWORK1(2) [TO CONTAIN CORE PARAMETER 5 3GSG #SKI G4 19 3H#6 STOZ AWORK2(2) [TO CONTAIN QUOTA PARAMETER 9 3HRQ NGX 0 ANUM(3) 19 3J?B BNG 0 Z02 [J UNLESS FIRST PARAM NULL 21 3JR2 Z012 FILECOUNT 0 [A NULL 1ST PARAM INDICATES A LOAD 21 3K=L SBN 0 2 [FROM THE JOB SOURCE.CHECK THAT JOB 16 3KQ= [HAS A JOB SOURCE 16 3L9W BNG 0 XJSLO [JUMP IF ERROR 21 3L#5 ...# NEXT THREE LINES ARE FOR B6858.IF A MOP CONNECTS TO A JOB THEN QUITS 20 3LB# ...# IT STILL HAS 2 FILES OPEN.THEREFORE WE MUST ALSO CHECK THAT THE 13 3LDH ...# COMMAND PROCESSOR LEVEL IS AT LEAST 1. 9 3LGQ ... LDX 0 CPLEV(2) 7 3LJ_ ... SBN 0 1 8 3LM8 ... BNG 0 XJSLO 8 3LPG Z014 LDCT 0 #40 9 3M96 ORS 0 XLDEXA(2) 8 3MNQ BRN Z03 19 3N8B Z02 NAMETOP 3,FILE,FNAME [RENAME CPB,CUNI FOR FNORM 7 3NN2 FNORM 3 10 3NR6 ... TESTREP2 NAMEFORM,Z09 6 3NW= ...#UNS FTS1 4 3N_B ...#SKI 4 3P4G ...( 4 3P7L ...[ 17 3P=Q ...[ THIS IS A TWIN SYSTEM ENHANCEMENT CORRECTION 14 3P*W ...[ *** NO TESTING OF ADJUNCTS BLOCK ! 13 3PF2 ...[ DONE 19.FEB.75 :CENT 4 3PJ6 ...[ 20 3PM= TESTRPN2 ADJUNCTS,Z03 [JUMP IF NO ADJUNCTS SPECIFIED 21 3Q6W MHUNTW 3,FILE,ADJUNCTS [OTHERWISE LOCATE THE ADJUNCTS BLOCK 20 3QLG LDX 0 A1(3) [& REPORT AN ERROR IF IT CONTAINS 21 3R66 SBN 0 ADPAIR-A1 [ANYTHING OTHER THAN THE TEMPORARY 15 3RKQ BNZ 0 XCE1 [FILE MARKER. 15 3S5B LDX 0 XNBIT1(1) [#57777777 9 3SK2 ANDX 0 A1+1(3) 8 3T4L BNZ 0 XCE1 9 3TJ= TXU 0 A1+2(3) 9 3W3W TXU 0 A1+3(3) 8 3WHG BCS XCE1 4 3WR# ...) 4 3X36 Z03 16 3XGQ ANDN 4 1 [JUMP UNLESS LOAD 8 3Y2B BZE 4 Z07 4 3YG2 # 19 3Y_L # THE LOAD COMMAND CAN HAVE 'CORE','QUOTA'&'PRIVATE'PARAMS 21 3_F= # THE LATTER ARE ONLY SIGN.IN GEORGE 4 & ARE IGNORED IN GEORGE 3. 4 3_YW # 15 42DG PARANUMB 4 [NO OF PARAMS 7 42Y6 SBN 4 2 18 43CQ BNG 4 Z07 [JUMP UNLESS AT LEAST TWO 17 43XB CALL 7 Z1000 [LOOK FOR CORE PARAM. 8 44C2 +4 9 44WL 8HCORE 8 45B= BRN Z038 8 45TW BRN Z039 9 46*G Z038 MFREE CPB,CUNI 16 46T6 CALL 7 Z1000 [OR A SIZE PARAM 8 47#Q +4 9 47SB 8HSIZE 8 48#2 BRN Z04 18 48RL Z039 CHNUMCO1 [EVAL CORE OR SIZE PARAM 18 49?= TESTRPN2 OK,NOERR [ERROR IN CORE OR SIZE 10 49QW LDX 0 ACOMMUNE1(2) 9 4==G STO 0 AWORK1(2) 8 4=Q6 BZE 0 SERR2 17 4?9Q TXL 0 MAXSIZE(1) [INVALID CORE PARAM 8 4?PB BCC SERR2 18 4#92 SBN 4 1 [REDUCE COUNT OF PARAMS 9 4#NL Z04 MFREE CPB,CUNI 5 4*8= #SKIP G4 4 4*MW ( 8 4B7G BNG 4 Z07 17 4BM6 CALL 7 Z1000 [LOOK FOR QUOTA PARAM 8 4C6Q +5 9 4CLB 8HQUOTA 8 4D62 BRN Z05 18 4DKL CHNUMCO1 [EVALUATE QUOTA PARAM. 16 4F5= TESTRPN2 OK,NOERR [ERROR IN QUOTA 10 4FJW LDX 0 ACOMMUNE1(2) 9 4G4G BZE 0 XQUOTA 17 4GJ6 TXL 0 MAXSIZE(1) [INVALID QUOTA PARAM 8 4H3Q BCC SERR2 8 4HHB ADN 0 1023 8 4J32 SRL 0 10 9 4JGL STO 0 AWORK2(2) 7 4K2= SBN 4 1 9 4KFW Z05 MFREE CPB,CUNI 8 4K_G BNG 4 Z07 8 4LF6 CALL 7 Z1000 8 4LYQ +7 9 4MDB 8HPRIVATE 18 4MY2 BNZ 0 Z06 [J IF NO'PRIVATE'PARAM 8 4NCL LDCT 0 #400 16 4NX= ORS 0 AWORK2(2) [SET'PRIVATE'BIT 9 4PBW Z06 MFREE CPB,CUNI 4 4PWG ) 4 4QB6 # 21 4QTQ # LOOK TO SEE WHETHER THE PROG IS A PURE PROCEDURE WHICH IS ALREADY 13 4R*B # LOADED - OTHERWISE OPEN THE FILE 4 4RT2 # 8 4S#L Z07 LDCT 0 #40 9 4SS= ANDX 0 XLDEXA(2) 19 4T?W BNZ 0 Z200 [J IF LOAD FROM JOB SOURCE 4 4TRG Z08 19 4W?6 MHUNT 2,FILE,FNAME [RENAME BLOCK FOR USEROPEN 10 4WQQ NAMETOP 2,CPB,CUNI 5 4X=B #SKIP G4 4 4XQ2 ( 10 4Y9L MHUNT 3,FILE,FABSNB 9 4YP= LDX 3 ATYPE(3) 8 4_8W ANDN 3 #200 19 4_NG BNZ 3 Z088A [TREAT WORKFILE AS PRIVATE 8 5286 SMO FX2 9 52MQ LDX 0 AWORK2 18 537B BNG 0 Z088 [J IF PRIVATE PARAM SPEC 12 53M2 USEROPEN XBN,EXECUTE,DIR,LEAVE 17 546L TESTRPN2 OK,Z09A [REPORT ERROR IF NEC 10 54L= MHUNTW 1,FILE,ENT 21 555W LDX 0 ELAN(1) [STORE NAME OF FILE IN ACOMMUNE WORDS 10 55KG STO 0 ACOMMUNE9(2) 21 5656 ADN 1 ELOC1 [& REST OF LOCAL NAME FROM FILE,ENT 9 56JQ ADN 2 ACOMMUNE4 7 574B MOVE 1 5 17 57J2 TOPFCB 1 [USER NAME FROM FCB 8 583L ADN 1 FME1 12 58H= SBN 2 ACOMMUNE4-ACOMMUNE1 7 592W MOVE 1 3 16 59GG CLOSETOP [CLOSE DIRECTORY 19 5=26 CALL 7 Z4100A [SEE IF ENTRY ON SUD CHAIN 17 5=FQ BRN Z088 [J IF NO SUD FOUND 9 5=_B LDX 5 HSUDNO(3) 9 5?F2 LDX 0 HUSER(3) 18 5?YL BNG 0 Z088 [J IF PP NOT FULLY LOADED 2 5#D= 16 5#XW PPCUBS XBN,Z09A [CHECK BS LIMITS 15 5*CG FSUD 3,5,(GEOERR) [X3 -> SUD 8 5*X6 BRN Z300A 8 5BBQ Z088A LDX 0 GSIGN 8 5BWB SMO FX2 9 5CB2 ORS 0 AWORK2 4 5CTL Z088 4 5D*= ) 15 5DSW USEROPEN XBN,EXECUTE,LEAVE [OPEN FILE 10 5F#G TESTREP2 RANDOM,Z10 8 5FS6 Z09A REPERR Z10 6 5G?Q Z09 ENDCOM 4 5GRB Z10 19 5H?2 LDN 0 #1000 [THIS DELETE OF CORE IMAGE 19 5HQL ANDX 0 CONTEXT(2) [IS REQD FOR THE RESUME PATH 21 5J== BZE 0 Z11 [WE KINDLY DO NOT DESTROY AN EXISTING 21 5JPW DOWN PROSTART,10 [PROG UNTIL WE ARE SURE THEY MEAN IT 4 5K9G Z11 4 5KP6 # 12 5L8Q # CHECK & SWITCH ON TYPE OF FILE 4 5LNB # 5 5M82 RANDOM 10 5MML MHUNTW 3,FILE,ENT 9 5N7= LDXC 0 EINF1(3) 9 5NLW BCS SERLOAD 9 5P6G LDXC 0 ETM(3) 8 5PL6 SRL 0 15 7 5Q5Q SBN 0 5 15 5QKB BZE 0 XMT [JUMP IF MT 7 5R52 SBN 0 1 15 5RJL BZE 0 XFOEDS [JUMP IF EDS 7 5S4= SBN 0 7 15 5SHW BZE 0 XFOEDS [ OR FDS 9 5T3G BRN XFILETYPE 18 5TH6 # READ RQS & SUPP RQS FROM SERIAL FILE & SET UP AOBRES 4 5W2Q # 5 5WGB SERLOAD 18 5X22 Z200 LDN 4 0 [INIT'LOAD'CARD MARKER 16 5XFL CALL 7 Z1300 [READ A RECORD 17 5X_= BRN Z201 [NOT PART OF A PROG 21 5YDW CALL 7 Z1100 [CHECK THAT IT'S A RQS & SETUP AOBRES 16 5YYG CALL 7 Z1300 [READ NEXT RECORD 19 5_D6 BRN Z205 [ERROR IF NOT PART OF A PROG 17 5_XQ CALL 7 Z1200 [DEAL WITH SUPP RQS 16 62CB BRN Z200A [J IF NO SUPP RQS 12 62X2 BRN SETUP [ 16 63BL Z200A BACKSPACE [BACKSPACE FILE 9 63W= MFREEW FILE,FRB 19 64*W LDN 0 8 [REDUCE COUNT OF RECORDS READ 9 64TG SBS 0 YCOUNT(2) 8 65*6 BRN SETUP 19 65SQ # NULL RECORDS,SPACEFUL RECORDS AND A'LOAD'CARD ARE ALLOWED 8 66#B # BEFORE THE RQS 4 66S2 # 17 67?L Z201 BZE 6 Z200 [JUMP IF NULL RECORD 7 67R= Z202 SMO 6 9 68=W LDX 0 A1+2(3) 19 68QG TXU 0 ACES [JUMP IF NOT A LINE OF SPACES 8 69=6 BCS Z204 8 69PQ BCT 6 Z202 7 6=9B Z203 FREECORE 3 8 6=P2 BRN Z200 17 6?8L Z204 LDX 0 A1+2(3) [PROG CAN START WITH 14 6?N= TXU 0 PGLP(1) [ LO # 8 6#7W BCC Z206 14 6#MG TXU 0 PLOAD(1) [OR LOAD 8 6*76 BCC Z206 7 6*LQ SRL 0 6 14 6B6B TXU 0 PGPLS(1) [OR LO# 8 6BL2 BCC Z206 21 6C5L Z205 LDCT 0 #40 [DIFFERENT ERROR MESSAGES DEPENDING 21 6CK= ANDX 0 XLDEXA(2) [ON WHETHER LOADING FROM JOB SOURCE 14 6D4W BZE 0 RINFF [OR NOT 8 6DJG BRN XEL 20 6F46 Z206 BNZ 4 RINFF [ERROR IF LOAD CARD ALREADY MET 14 6FHQ LDN 4 1 [SET IT 8 6G3B BRN Z203 4 6GH2 # 14 6H2L # READ RQS & SUPP RQS FROM A MT FILE 4 6HG= # 4 6H_W XMT 19 6JFG LDCT 0 #20 [SET LOAD FROM MT FILE MARK 9 6J_6 ORS 0 XLDEXA(2) 8 6KDQ FTM XEOF 8 6KYB LDN 3 20 11 6LD2 MAGREAD XEOF,XTM,Z230,3 10 6LXL Z230 MHUNTW 3,FILE,FRRB 21 6MC= CALL 7 Z1100 [CHECK THAT IT'S A RQS & SETUP AOBRES 8 6MWW LDN 3 20 11 6NBG MAGREAD XEOF,XTM,Z231,3 10 6NW6 Z231 MHUNTW 3,FILE,FRRB 10 6P*Q NAME 3,FILE,FRB 21 6PTB CALL 7 Z1200 [IF IT IS A SUPP RQS COPY INTO AOBRES 8 6Q*2 BRN SETUP 8 6QSL BRN SETUP 4 6R#= # 4 6RRW # 21 6S?G # OBTAIN RQS & SUPP RQS FROM A RANDOM ACCESS FILE & SET UP AOBRES 4 6SR6 # 5 6T=Q XFOEDS 21 6TQB LDCT 0 #10 [SET LOAD FROM EDS(OR FDS) FILE MARK 9 6W=2 ORS 0 XLDEXA(2) 9 6WPL ACROSS LOADX,1 5 6X9= XENT5 13 6XNW # THE 1ST ORG BUCKET IS IN A FILE/FRB 16 6Y8G # IT HAS BEEN CHECKED FOR VALIDITY AS AN ORG BUCKET 19 6YN6 MHUNTW 3,FILE,FRB [FIND ORGANISATIONAL BUCKET 17 6_7Q LDX 5 A1(3) [AMT OF DATA IN BUCK 15 6_MB SBN 5 3 [ - RED TAPE 9 7272 LDX 0 A1+3(3) 10 72LL ANDX 0 XNB6T17(1) 9 736= TXU 0 XRQS(1) 21 73KW BCS XRS [ERROR IF FIRST RECORD IS NOT A RQS 7 745G BCHX 3 / 16 74K6 LDCH 6 A1+3(3) [LENGTH OF RQS 7 754Q LDX 0 6 8 75JB SBN 0 14 8 7642 BZE 0 Z252 7 76HL SBN 0 2 18 773= BNZ 0 XRSLENG [ERROR UNLESS 14 OR 16 4 77GW Z252 7 782G SBX 5 6 16 78G6 BNG 5 RINFF [BUCKET TOO SHORT 19 78_Q LDN 7 16 [REQUIRED LENGTH FOR AOBRES 8 79FB BZE 5 Z253 7 79_2 SMO 6 9 7=DL LDX 0 A1+3(3) 10 7=Y= ANDX 0 XNB6T17(1) 9 7?CW TXU 0 XSRQS(1) 15 7?XG BCS Z253 [NO SUPP RQS 7 7#C6 SMO 6 17 7#WQ LDCH 0 A1+3(3) [LENGTH OF SUPP RQS 7 7*BB SBN 0 8 18 7*W2 BNZ 0 XSRS [ERROR UNLESS 8 WRDS LONG 7 7B*L SBN 5 8 15 7BT= BNG 5 RINFF [BUCKET SHORT 19 7C#W ADN 7 8 [AOBRES TO INCLUDE SUPP R/S 4 7CSG Z253 17 7D#6 LDN 3 0(3) [X3 PTS TO FILE/FRB 9 7DRQ NAME 3,AOBRES 9 7F?B LDN 1 A1+3(3) 8 7FR2 LDN 2 A1(3) 7 7G=L SMO 6 7 7GQ= MOVE 1 0 8 7H9W LDN 0 16 7 7HPG SBX 0 7 8 7J96 BZE 0 Z256 16 7JNQ ADX 1 6 [MOVE IN SUPP RQS 8 7K8B ADN 2 16 7 7KN2 MOVE 1 8 10 7L7L Z256 ALTLEN 3,7,AOBRES 5 7LM= #SKIP G3 8 7M6W BRN SETUP 5 7MLG #SKIP G4 4 7N66 ( 8 7NKQ SBN 7 16 16 7P5B BZE 7 SETUP [NO SUPP R/S 9 7PK2 MHUNTW 3,AOBRES 9 7Q4L LDX 0 A1+20(3) 16 7QJ= BPZ 0 SETUP [JUMP IF NOT PP 8 7R3W LDCT 0 #600 9 7RHG ANDX 0 A1+2(3) 21 7S36 BNZ 0 XRLP [ERROR IF RETAIL LOAD PERIP BIT SET 8 7SGQ SMO FX2 20 7T2B LDX 0 AWORK2 [JUMP IF'PRIVATE' PARAM SPECIFIED 8 7TG2 BNG 0 SETUP 4 7T_L # 20 7WF= # IF THE PROG IS A PURE PROCEDURE THEN WE INSERT AN ENTRY ON THE 14 7WYW # SUD CHAIN TO SAY IT IS BEING LOADED 4 7XDG # 4 7XY6 # 13 7YCQ Z260 SETNCORE HRQS-A1+32,1,ADATA,ASUD 16 7YXB Z261 CALL 7 Z4200 [OBTAIN SUD NO. 21 7_C2 CALL 7 Z4100 [CHECK WHETHER NAME IS ON SUD CHAIN 17 7_WL BRN Z262 [JUMP IF NO SUD FOUND 7 82B= LDN 0 1 17 82TW ADS 0 HUSERS(3) [UPDATE USER COUNT 10 83*G MFREE ADATA,ASUD 9 83T6 LDX 5 HSUDNO(3) 9 84#Q LDX 0 HUSERS(3) 19 84SB BNG 0 Z263 [JUMP IF SUD NOT FULLY LOADED 15 85#2 CLOSE [CLOSE FILE 19 85RL BRN Z309 [JOIN SUBSEQUENT LOAD PATH 10 86?= Z262 MHUNTW 1,ADATA,ASUD 21 86QW BNG 5 SETUPF [IF NO SUD NO OBTAINED NORMAL LOAD 20 87=G LDN 3 HSUDNAME(1) [MOVE FILE NAME INTO SUD BLOCK 7 87Q6 MOVE 2 9 20 889Q SBN 2 FUSER1 [SET PURE PROCEDURE BIT IN FCB 20 88PB LDX 0 BIT10 [NOTE - WE DO NOT BOTHER TO CLEAR 21 8992 ORS 0 FCOMM(2) [ THIS BIT IF THE LOAD FAILS 17 89NL LDCT 0 #400 [MARK BEING LOADED 16 8=8= ADN 0 1 [USER COUNT = 1 17 8=MW STO 0 HUSERS(1) [MARK AS BEING LOADED 16 8?7G STO 5 HSUDNO(1) [INSERT SUD NO 20 8?M6 SMO FX2 [STORE VALUE OF SIZE PARAM IN SUD 9 8#6Q LDX 0 AWORK1 10 8#LB STO 0 HSEGTAB(1) 10 8*62 STOZ HODBITS(1) 21 8*KL CHAIN 1,BSUD+BPTR [PUT NEW SUD AT THE END OF THE CHAIN 4 8B5= Z263 8 8BJW LDN 0 #4000 19 8C4G ORS 0 XLDEXA(2) [SET INITIAL LOAD OF PP BIT 9 8CJ6 BRN SETUPA 4 8D3Q # 17 8DHB # ENTRY FOUND ON SUD CHAIN BEFORE OPENNING THE FILE 4 8F32 # 5 8FGL Z300A 7 8G2= LDN 0 1 18 8GFW ADS 0 HUSERS(3) [INCREASE &OUNT OF USERS 16 8G_G LDX 5 HSUDNO(3) [PICK UP SUD NO 4 8HF6 # 15 8HYQ # IF SUD IS ALREADY LOADED WE ATTACH TO IT 4 8JDB # 4 8JY2 Z309 10 8KCL SETNCORE 24,3,AOBRES 19 8KX= Z310 LDN 0 #2000 [SET SUBSEQ -OAD OF PP MARK 9 8LBW ORS 0 XLDEXA(2) 19 8LWG CALL 7 Z4400 [SET UP SCB & INSERT SUD NO. 14 8MB6 # WAIT FOR PURE PROCEDURE TO BE LOADED 4 8MTQ Z311 15 8N*B FSUD 3,5,(GEOERR) [RELOCATE SUD 9 8NT2 LDX 0 HUSERS(3) 16 8P#L BPZ 0 Z320 [J IF PP LOADED 18 8PS= LONGWAIT XBNA,HLOADPPWT [WAIT FOR IT TO BE LOADED 10 8Q?W MHUNTW 2,BSTB,BSCB 8 8QRG BRN Z311 9 8R?6 Z320 MHUNTW 1,AOBRES 19 8RQQ LDN 7 HRQS(3) [MOVE RQS & SUPP RQS INTO SUD 8 8S=B LDN 0 A1(1) 8 8SQ2 MOVE 7 24 8 8T9L ADN 7 24 18 8TP= LDN 0 HPERM(2) [MOVE PERM AREA INTO SUD 7 8W8W MOVE 7 8 9 8WNG BRN SETUPB 4 8X86 # 17 8XMQ # ENSURE THAT SCB IS SET UP BEFORE ENTERING LOADPROG 4 8Y7B # 5 8YM2 SETUPF 7 8_6L FREECORE 1 7 8_L= SETUP LDN 5 0 5 925W SETUPA 8 92KG CALL 7 Z4400 5 9356 SETUPB 4 93JQ ) 5 944B #SKIP G3 4 94J2 ( 5 953L SETUP 5 95H= SETUPA 4 962W ) 7 965F ...#SKI JWPHASE4 4 9684 ...( 8 96=M ... LDX 2 FX2 7 96?7 ...#UNS FREEBUFF 4 96?M ...( 12 96#7 ... FREEBUFF [ FREEBUFF CPAT 4 96#M ...) 12 96*= ... HLSINFORM XBNC,LOAD,JOBNO(2) 18 96B5 ... LDCT 0 4 [SET MARKER - LOAD EVENT 16 96BY ... ORS 0 XLDEXA(2) [REPORTED TO HLS 4 96CT ...) 11 96GG # CODE TO FREE FILE/ENT ETC 10 9726 ACROSS LOADPROG,1 4 97FQ # 21 97_B # THIS SUBR SEARCHES FOR A PARAM OTHER THAN THE FIRST WHICH STARTS 21 98F2 # WITH A SPECIFIED STRING.IF ONE IS FOUND IT EXITS+1 & OTHERWISE+0 4 98YL # 7 99D= Z1000 SBX 7 1 21 99XW LDN 0 1 [LOOK FOR FIRST OCCURRENCE OF STRING 17 9=CG Z1001 ADX 1 7 [ADDRESS OF STRING 9 9=X6 PARABEGX 0,0(1) 10 9?BQ MHUNT 3,CPB,CUNI 9 9?WB LDX 0 ANUM(3) 16 9#B2 BNG 0 Z1003 [J IF NO PARAM 20 9#TL LDX 0 JPARNUM(3) [IF PARAM FOUND IS NO.1 THEN LOOK 20 9**= BCT 0 Z1002 [FOR SECOND OCCURRENCE OF STRING 7 9*SW FREECORE 3 7 9B#G LDN 0 2 8 9BS6 BRN Z1001 9 9C?Q Z1002 LDX 0 ANUM(3) 21 9CRB BZE 0 Z1003 [J IF PARAM CONSISTS ONLY OF CHAR STR 7 9D?2 ADN 7 1 7 9DQL Z1003 ADX 7 1 7 9F== EXIT 7 3 4 9FPW # 19 9G9G # THIS SUBROUTINE RENAMES THE BLOCK HOLDING THE RQS AOBRES 19 9GP6 # & CONVERTS IT TO THE STANDARD LENGTH OF 16.IT ALSO CHECKS 13 9H8Q # TO SEE THAT THERE IS A VALID RQS 4 9HNB # 16 9J82 Z1100 SBX 7 1 [RELATIVISE LINK 14 9JML NAME 3,AOBRES [RENAME 18 9K7= ALTLEND 3,16,AOBRES [CONVERT TO STD LENGTH 9 9KLW MHUNTW 3,AOBRES 18 9L6G LDX 0 A1(3) [PICK UP SPECIFIER WORD 17 9LL6 ANDX 0 XNB6T17(1) [& CHECK IT IS R/S 9 9M5Q TXU 0 XRQS(1) 8 9MKB BCS XRS 20 9N52 BCHX 3 / [EXTRACT LENGTH & CHECK THAT IT 17 9NJL LDCH 0 A1(3) [IS EITHER 14 OR 16 8 9P4= LDN 3 0(3) 7 9PHW LDX 1 0 8 9Q3G SBN 1 14 8 9QH6 BZE 1 Z1104 7 9R2Q SBN 1 2 9 9RGB BNZ 1 XRSLENG 16 9S22 Z1104 LDN 1 A1(3) [CHECKSUM BLOCK 7 9SFL SMO 0 7 9S_= SUM 0 0 9 9TDW BNZ 0 XCHSUM 17 9TYG Z1106 LDX 1 FX1 [RESTORE X1 & LINK 19 9WD6 LDN 0 1 [COUNT OF BINARY BLOCKS READ 9 9WXQ ADS 0 YCOUNT(2) 7 9XCB ADX 7 1 7 9XX2 EXIT 7 0 4 9YBL # 20 9YW= # THIS SUBR CHECKS TO SEE WHETHER THE BLOCK CONTAINS A SUPP RQS 19 9_*W # IF SO IT CHECK SUMS THE BLOCK & INSERTS IT INTO THE AOBRES 4 9_TG # 19 =2*6 Z1200 LDX 0 A1(3) [CHECK WHETHER SPECIFIER WORD 17 =2SQ ANDX 0 XNB6T17(1) [INDICATES SUPP R/S 9 =3#B TXU 0 XSRQS(1) 15 =3S2 BCS Z1201 [JUMP IF NOT 7 =4?L BCHX 3 / 21 =4R= LDCH 0 A1(3) [EXTRACT LENGTH & CHECK THAT IT IS 8 8 =5=W LDN 3 0(3) 7 =5QG SBN 0 8 14 =6=6 BNZ 0 XSRS [ERROR 16 =6PQ LDN 1 A1(3) [CHECKSUM BLOCK 7 =79B SUM 0 8 9 =7P2 BNZ 0 XCHSUM 8 =88L SBX 7 FX1 9 =8N= MHUNTW 3,AOBRES 20 =97W ALTLEND 3,24,AOBRES [ALTER LENGTH OF AOBBRES TO 24 17 =9MG MHUNTW 2,FILE,FRB [AND MOVE SUPP R/S IN 9 ==76 MHUNTW 3,AOBRES 8 ==LQ LDN 0 A1(2) 9 =?6B LDN 1 A1+16(3) 7 =?L2 MOVE 0 8 7 =#5L FREECORE 2 7 =#K= LDN 0 1 19 =*4W ADS 0 YCOUNT(2) [COUNT OF BINARY BLOCKS READ 7 =*JG ADX 7 1 7 =B46 EXIT 7 1 7 =BHQ Z1201 EXIT 7 0 4 =C3B # 18 =CH2 # THIS SUBR READS THE NEXT RECORD FROM A SERIAL FILE. 19 =D2L # AN ERROR IS REPORTED IF THE END OF FILE IS ENCOUNTERED. 19 =DG= # IF THE RECORD CONTAINS A BINARY PROG BLOCK IT IS MOVED TO 19 =D_W # THE FRONT OF THE FRB & ANY SPACES LOST FROM THE END OF THE 14 =FFG # BLOCK ARE REPLACED & THE SUBR EXITS+1. 12 =F_6 # OTHERWISE THE ROUTINE EXITS+0. 4 =GDQ # 7 =GYB Z1300 SBX 7 1 15 =HD2 READ [READ RECORD 10 =HXL MHUNTW 3,FILE,FRB 21 =JC= # ADD TO COUNT BEFORE CHECKING END OF FILE SO WE WILL BACKSPACE AND COMM 13 =JWW # PROCESSOR CANT GET END OF FIOE GEOE-R 7 =KBG LDN 0 8 21 =KW6 ADS 0 YCOUNT(2) [NO.OF RECORDS READ FROM A SERIAL FIL 8 =L*Q LDX 6 A1(3) 15 =LTB BZE 6 XEOF [END OF FILE 7 =M*2 SBN 6 2 16 =MSL BZE 6 Z1306 [J IF NULL RECORD 9 =N#= LDCH 0 A1+2(3) 8 =NRW SBN 0 #73 8 =P?G BNZ 0 Z1306 16 =PR6 LDN 0 A1+2(3) [MOVE DOWN BLOCK 8 =Q=Q LDN 1 A1(3) 7 =QQB SMO 6 7 =R=2 MOVE 0 0 18 =RPL BCHX 3 / [EXTRACT LENGTH OF BLOCK 8 =S9= LDCH 0 A1(3) 8 =SNW LDN 3 0(3) 7 =T8G SBX 6 0 8 =TN6 BPZ 6 Z1304 21 =W7Q LDX 5 0 [ALTER LENGTH OF BLOCK - VERY RARE 10 =WMB ALTLEN 3,5,FILE,FRB 10 =X72 MHUNTW 3,FILE,FRB 16 =XLL ADX 3 5 [RESTORE SPACES 8 =Y6= LDX 0 ACES 7 =YKW Z1302 SMO 6 8 =_5G STO 0 A1(3) 7 =_K6 ADN 6 1 8 ?24Q BNG 6 Z1302 7 ?2JB SBX 3 5 8 ?342 Z1304 LDX 1 FX1 7 ?3HL ADX 7 1 7 ?43= EXIT 7 1 7 ?4GW Z1306 ADX 7 1 7 ?52G EXIT 7 0 5 ?5G6 #SKIP G4 4 ?5_Q ( 4 ?6FB # 19 ?6_2 # SEARCH THE SUD CHAIN FOR AN ENTRY WITH A SPECIFIED NAME 12 ?7DL # ON EXIT+0 X3 LOCATES THE SUD 4 ?7Y= # 20 ?8CW Z4100 TOPFCB 2 [ENTRY PT IF REQD NAME IS IN FCB 9 ?8XG ADN 2 FUSER1 21 ?9C6 Z4100A [ENTRY PT IF NAME IS LOCATED BY X2 8 ?9WQ LDN 3 BSUD 18 ?=BB Z4102 LDX 3 FPTR(3) [NEXT ENTRY IN SUD CHAIN 17 ?=W2 TXU 3 CXSU [J IF END OF CHAIN 8 ??*L BCC Z4104 20 ??T= LDX 0 3(2) [COMPARE FIRST WORD OF LOCAL NAME 10 ?##W TXU 0 HSUDNAME+3(3) 16 ?#SG BCS Z4102 [J IF NO MATCH 7 ?*#6 LDN 1 8 19 ?*RQ Z4103 SMO 1 [COMPARE WHOLE ABSOLUTE NAME 8 ?B?B LDX 0 0(2) 7 ?BR2 SMO 1 10 ?C=L TXU 0 HSUDNAME(3) 16 ?CQ= BCS Z4102 [J IF NO MATCH 7 ?D9W SBN 1 1 8 ?DPG BPZ 1 Z4103 18 ?F96 ADN 7 1 [IF MATCH FOUND EXIT +1 8 ?FNQ Z4104 LDX 1 FX1 17 ?G8B EXIT 7 0 [OTHERWISE EXIT +0 4 ?GN2 # 21 ?H7L # THIS SUBR OBTAINS A NO FOR A SHARED UNIT DESCRIPTION-IN X5 ON EXIT 21 ?HM= # SUD NOS ARE ALLOCATED CYCLICALLY IN THE RANGE 1-511 & WE ARRANGE 20 ?J6W # AS FAR AS POSSIBLE THAT THE MOST RECENTLY SET UP SUDS ARE AT 10 ?JLG # THE END OF THE CHAIN 17 ?K66 # CURRENTLY WE GEOERR IF THERE ARE NO FREE NUMBERS 4 ?KKQ # 7 ?L5B Z4200 LDN 5 1 17 ?LK2 LDX 3 BSUD+BPTR [J IF SUD CHAIN EMPTY 8 ?M4L TXU 3 CXSU 8 ?MJ= BCC Z4204 19 ?N3W LDX 5 HSUDNO(3) [NUMBER OF LAST SUD IN CHAIN 8 ?NHG LDN 1 BSUD 17 ?P36 Z4202 LDX 1 FPTR(1) [NEXT SUD IN CHAIN 8 ?PGQ TXU 1 CXSU 21 ?Q2B BCC Z4206 [ERROR IF WE HAVE BEEN RIGHT ROUND 7 ?QG2 Z4203 ADN 5 1 18 ?Q_L ANDN 5 #777 [STEP SUD NO CYCLICALLY 8 ?RF= BZE 5 Z4203 9 ?RYW TXU 5 HSUDNO(1) 17 ?SDG BCC Z4202 [J IF NO ALLOCATED 21 ?SY6 CHAIN FPTR(3),BPTR(1) [ADJUST SUD CHAIN SO FREE NO.IS LAST 13 ?TCQ Z4204 EXIT 7 0 [EXIT 10 ?TXB Z4206 GEOERR 0,SUDNOMAX 4 ?WC2 # 15 ?WWL # THIS SUBR SETS UP A SCB & INITIALISES IT 21 ?XB= # ON ENTRY X5 CONTAINS A SUD NO TO BE INSERTED IN THE BLOCK OR ZERO 16 ?XTW # INDICATING THAT THE SHORTER SCB CAN BE SET UP 14 ?Y*G # ON EXIT THE ADDR OF THE SCB IS IN X2 8 ?YT6 Z4400 SBX 7 FX1 9 ?_#Q LDN 6 HSUD-A1 15 ?_SB BZE 5 Z4402 [J IF NO SUD 7 #2#2 ADN 6 2 11 #2RL Z4402 SETUPCORE 6,2,BSTB,BSCB 8 #3?= BZE 5 Z4404 9 #3QW STO 5 HSUD(2) 9 #4=G STOZ HSUD+1(2) 8 #4Q6 Z4404 STOZ A1(2) 8 #59Q LDN 0 A1(2) 9 #5PB LDN 1 A1+1(2) 10 #692 MOVE 0 HPERM-A1-1 7 #6NL NGN 0 1 9 #78= STO 0 HPERM(2) 9 #7MW LDN 0 HPERM(2) 9 #87G ADN 1 HPERM-A1 7 #8M6 MOVE 0 7 8 #96Q LDX 1 FX1 7 #9LB ADX 7 1 7 #=62 EXIT 7 0 4 #=KL ) 4 #?5= # 10 #?JW # REPORT VARIOUS ERRORS 4 ##4G XEL 9 ##J6 LDX 0 YCOUNT(2) 7 #*3Q ANDN 0 3 17 #*HB BNZ 0 XNOENT [HAVE READ R/S 9 #B32 LDN 1 PARMIS 8 #BGL LDN 2 NAME 9 #C2= BRN RERROR1 5 #CFW XJSLO 9 #C_G LDN 1 PARMIS 8 #DF6 LDN 2 NAME 9 #DYQ BRN RERROR3A 4 #FDB XCE1 8 #FY2 LDN 1 NAPP 9 #GCL BRN RERROR3 17 #GX= SERR2 LDN 1 RICR [INVALID CORE PARM 9 #HBW BRN RERROR3 5 #HWG #SKIP G4 4 #JB6 ( 17 #JTQ XQUOTA [INVALID QUOTA PARAM 9 #K*B LDN 1 WQUOTA 9 #KT2 BRN RERROR3 19 #L#L XRLP LDN 1 WRLP [RETAIN LOAD PERIP SET FOR PP 9 #LS= BRN RERROR 4 #M?W ) 6 #MRG XFILETYPE 8 #N?6 LDN 1 PTYPE 9 #NQQ BRN RERROR 5 #P=B XWRBLK 8 #PQ2 LDN 1 WRBLK 9 #Q9L BRN RERROR 4 #QP= XEOF 9 #R8W LDX 0 YCOUNT(2) 7 #RNG ANDN 0 3 16 #S86 BZE 0 RINFF [NOT READ R/S 5 #SMQ XNOENT 8 #T7B LDN 1 NOENT 9 #TM2 BRN RERROR 4 #W6L XTM 5 #WL= XRSLENG 17 #X5W XSRS [INCORRECT SUPP RQS 5 #XKG RINFF 8 #Y56 LDN 1 RINF 9 #YJQ BRN RERROR 5 #_4B XCHSUM 9 #_J2 LDN 1 RJCHER 9 *23L BRN RERROR 4 *2H= XRS 8 *32W LDN 1 NORES 9 *3GG BRN RERROR 5 *426 NOERR 18 *4FQ LDN 5 0 [ERROR ALREADY REPORTED 7 *4_B LDN 6 0 9 *5F2 BRN RERROR3C 5 *5YL RERROR3A 8 *6D= SMO FX1 18 *6XW LDX 6 0(2) [ADDR OF SUBSID MESSAGE 9 *7CG BRN RERROR3B 16 *7X6 # RERROR3,RERROR3A - ERRORS BEFORE LOADFILE OPENED 5 *8BQ RERROR3 7 *8WB LDN 6 0 5 *9B2 RERROR3B 8 *9TL SMO FX1 8 *=*= LDX 5 0(1) 5 *=SW RERROR3C 18 *?#G LDN 7 1 [FILE NOT TO BE CLOSED 9 *?S6 BRN RERROR2 15 *#?Q # RERROR,RERROR1 - ERRORS AFTER LOADFILE OPENED 5 *#RB RERROR1 8 **?2 SMO FX1 8 **QL LDX 6 0(2) 9 *B== BRN RERROR1A 5 *BPW RERROR 21 *C9G LDN 6 0 [NO SUBSIDIARY PART OF ERROR MESSAGE 5 *CP6 RERROR1A 8 *D8Q SMO FX1 17 *DNB LDX 5 0(1) [ADDR OF MAIN MESSAGE 17 *F82 LDN 7 0 [FILE TO BE CLOSED 5 *FML RERROR2 8 *G7= LDX 2 FX2 21 *GLW LDX 0 YCOUNT(2) [LEAVE YCOUNT HOLDING NO OF RECORDS 7 *H6G SRL 0 3 9 *HL6 STO 0 YCOUNT(2) 21 *J5Q ORN 7 2 [NO ERRORS REQUIRE PROG TO BE DELETED 9 *JKB ACROSS LOADERR,1 4 *K52 # 14 *KJL # DEAL WITH BREAKIN AT VARIOUS STAGES 4 *L4= # 4 *LHW ...XBNA 21 *M3G ...XBN LDN 7 3 [INDICATE NO FILE OPEN & NO COREIMAGE 7 *MK* ...#SKI JWPHASE4 4 *MMJ ...( 8 *MPR ... BRN XBNB 19 *MS2 ...XBNC LDN 7 2 [FILE MAY BE OPEN,BUT NO PCA 4 *MW9 ...XBNB 4 *MYD ...) 18 *N2Q LDN 5 0 [NO SWAP SPACE OBTAINDE 8 *N5W ... LDX 2 FX2 20 *N92 ... LDX 0 YCOUNT(2) [SET YCOUNT = NO OF RECORDS READ 7 *N#6 ... SRL 0 3 9 *NC= ... STO 0 YCOUNT(2) 9 *NGB ACROSS LOADERR,3 10 *P22 MENDAREA 50,K99LDSTART 4 *PFL #END 8 ____ ...43625553000700000000