(George Source)
Macros used: ACROSS, ADDRECS, AWAITSS, BOOKSS, BXGE, BXL, CHAIN, CHAINACT, CHANGEACT, CHANGEFILE, CHECKB, CHEKPRIV, CLOSE, COMBRKIN, COOR1, ENDCOM, ENRINGD, FCAPCA, FINDCORE, FJOCA, FPCACA, FREECORE, FREEPTAB, FSUD, GETACT, GETCOREN, GETPTAB, HLSINFORM, HUNT2, HUNT2OPT, HUNTW, INFORM, JENV, KICKASWINT, LOADNOW, LOCK, LOCKC, LONGSTOP, LONGWAIT, MACCS, MENDAREA, MFREEW, MHUNT, MHUNTW, MONOUT, NAME, NOCORJOB, OUTNUM, SEG, SEGENTRY, SETUPCORE, SPRIVJUMP, TESTBRKIN, UNLOCK, WHATBACK
22FL ... SEG LOADPROG,850,OWEN N JOHN (:CENT) 22^= # 23DW # 23YG SEGENTRY K1LOADPROG,XENT1 24D6 SEGENTRY K30LOADPROG,XENT30 24XQ SEGENTRY K31LOADPROG,XENT31 25CB # 25X2 # RESERVES BACKING STORE HOMES FOR THE PROGRAM AND SETS UP THE PCA CHAIN 26BL # THE JOB BLOCK IS THEN EXTENDED AND UPDATED TO INFORM THE PROCESS CONTR 26W= # THAT THE JOB IS WAITING IN PCACA FOR THE PROGRAM TO BE SWAPPED IN.A MA 27*W # PREVIOUSLY SET IN THE SCB INFORMS THE SWAP SEGMENT,WHEN IT IS ENTERED, 27TG # THAT RETURN MUST BE MADE TO THE PROCESS CONTROLLER AFTER OBTAINING COR 28*6 # FOR THE PROGRAM.THE PROCESS CONTROLLER RETURNS CONTROL TO THIS SEGMENT 28SQ # WITH THE REQUIRED CORE BLOCK FOR THE PROGRAM SET UP IN THE PCA CHAIN. 29#B # IN THE CASE OF AN OFFLINE EDS LOAD,THE READING OF THE FIRST RECORD IS 29S2 # PERFORMED BY THE SEGMENT LOADX. 2=?L # 2=R= # 2?=W # WORKING SPACE 2?QG # 2#=6 # YCOUNT B0-20 COUNT OF RECORDS READ - SERIAL FILE ONLY 2#PQ # B21-3 COUNT OF BLOCKS OF BINARY PROG READ & DEALT 2*9B # WITH ONLY VALUES 0,1,2 POSSIBLE 2*P2 # 2B8L # XLDEXA B0-8 FLAGS ALREADY USED 2BN= # 2C7W # B9 LOADNOW MACRO 2CMG # B10 LOADNOWX MACRO 2D76 # B11 GPL MARKER 2DLQ # B12 INITIAL LOAD OF A PURE PROCEDURE 2F6B # B13 SUBSEQUENT LOAD OF A PURE PROCEDURE 2FL2 # B14 1ST BUCKET IN DIRECTORY FRAGMENT 2G5L # B15 SUPPLEMENTARY RQS FOUND 2GK= # B16 RQS FOUND 2H4W # B17 TYPE 0 RECORD SWITCH 2HJG # B18 OVERLAY DIRECTORY MARKER 2J46 # B19 PERMANENT UNIT FOUND IN DIRECTORY 2JHQ # B21 RESUME 2K3B # B22 LOADENTER 2KH2 # B23 LOAD 2L2L # 2LG= #DEF YCOUNT=EXTPS 2L^W #DEF XLDEX=EXTPS+3 2MFG #DEF XLDEXA=EXTPS+4 2M^6 # 2NDQ SIXTY +60 [FOR PRIORITY LOOP 2NYB MASK1 #01000003 [MASK TO ERS INTO JMISC TO CHANGE 2PD2 [FROM SWAPPED OUT,DORMANT TO PCACA, 2PXL [SWAPPED OUT,LOAD,SUSPENDED 2QC= MASK2 #11001 [SWAPPED OUT,DORMANT,LOAD MARKER 2QWW MASK3 #04000000 [EMBEDDED 2RBG MASK4 #00010006 [LOADENTER,RESUME,GPL BITS 2RW6 X128 +128 2S*Q XNBIT1 #57777777 2STB XNB5O14 #76776777 2T*2 PRIVB 8HTRUSTED 2TSL XB2T17 #17777700 [MASK FOR SHIFTED CORE REQ WORD 2W#= # NAMES OF COMMAND ERROR REPORTS 2WRW RBIGPR +JBIGPR 2X?G RICR +ICR 2XR6 RGPLERR +GPLERR 2Y=Q #SKIP G4 2YQB WERRESS +GWERRES 2^=2 #SKIP G3 2^PL WSPARSE +JSPARSEM 329= # AT THIS POINT WE HAVE THE PROGS RQS &(PROVIDED IT FOLLOWED 32NW # IMMEDIATELY AFTER THE RQS) A SUPP RQS IN AN AOBRES BLOCK 338G # NOTE THAT SUPP RQS ARE ALLOWED AT OTHER POINTS BUT WILL THEN 33N6 # HAVE NO EFFECT ON THE INITIAL QUOTA 347Q # THIS SECTION ANALYSES THE INFORMATION & USES IT TO CREATE A 34MB # SUITABLE CORE IMAGE. 3572 # 35LL # 366= # 36KW XENT1 375G MHUNTW 3,AOBRES 37K6 LDXC 0 A1+2(3) 384Q BCC ZNOGPL [JUMP IF NOT GPL 38JB LDX 0 XLDEXA(2) 3942 ANDN 0 #6 39HL BNZ 0 SERR3 [GPL ONLY ALLOWED IN LOAD COMMAND 3=3= LDX 0 BIT11 3=GW ORS 0 XLDEXA(2) [SET GPL MARKER 3?2G ZNOGPL 3?G6 # DETERMINE SIZE OF PROGRAM 3?^Q LDX 7 AWORK1(2) 3#FB LDX 0 A1+3(3) [EXTRACT SIZE WORD FROM RQS 3#^2 SRC 0 9 3*DL #SKIP G3 3*Y= BNG 0 XSPARSE 3BCW BNZ 7 Z401 [JUMP IF CORE PARAM SPEC. 3BXG LDX 7 0 3CC6 ANDX 7 XB2T17(1) 3CWQ Z401 3DBB #SKIP G4 3DW2 ( 3F*L BZE 7 SERR1 [ERROR IF SIZE=0 3FT= ADN 7 1023 [ROUND UP TO 1K 3G#W ORN 7 1023 3GSG ERN 7 1023 3H#6 STO 7 AWORK1(2) 3HRQ ANDX 0 GSIGN 3J?B ORS 0 AWORK1(2) 3JR2 ) 3K=L #SKIP G3 3KQ= ( 3L24 ... JENV Z401A,CMESTAR 3L9W ADN 7 63 [ROUND UP TO 64 3LPG ORN 7 63 3M96 ERN 7 63 3M?* ... BRN Z401B 3M*J ...Z401A 3MCR ... ADN 7 255 3MG2 ... ORN 7 255 3MJ9 ... ERN 7 255 3MLD ...Z401B 3MNQ STO 7 AWORK1(2) 3N8B BZE 7 SERR1 [ERROR IF SIZE=0 3NN2 LDX 0 A1+8(3) [IF MEMBER 2 OR 3 EXIST ENSURE 3P7L ORX 0 A1+11(3) [THAT SIZE EXCEEDS 128 3PM= BZE 0 Z402 3Q6W TXL 7 X128(1) 3QLG BCS SERR1 3R66 ) 3RKQ Z402 3S5B FJOCA 1,2 3SK2 SPRIVJUMP JSSTART,1,SYS [JUMP IF SYSTEM STARTED 3T4L LDX 6 JSIZE(1) [PICK UP MAXSIZE FROM JOB BLK 3TJ= ... BXL 6 7,SERR [ERROR IF MAXSIZE<PROGSIZE 3W3W ... LDX 6 AOBJCORES [COREDEFAULT 3WHG ... BXGE 6 7,SYS [IF COREDEFAULT>=PROGSIZE OK 3X36 ... LDX 6 7 [OTHERWISE ASK HLS IF WE CAN HAVE 3XGQ ... ADN 6 1023 [THIS CORE SIZE.SET X6=PROGSIZE 3Y2B ... SRL 6 10 [IN KWORDS(ROUNDING UP) 3YG2 ... HLSINFORM XBN,MAXSIZE,JOBNO(2),6,,,SYS [J TO LABEL SYS IF ALLOWED 3Y^L ... BRN SERR [REQUEST REFUSED 3^YW SYS 42DG # 42Y6 # DETERMINE PROGRAMS QUOTA 43CQ # 43XB #SKIP G4 44C2 ( 44WL LDXC 0 AWORK2(2) [EXTRACT VALUE OF QUOTA PARAM 45B= BNZ 0 Z412 [JUMP IF QUOTA PARAM SPECIFIED 45TW LDX 0 ALOGLEN(3) 46*G SBN 0 16 46T6 BZE 0 Z411 [JUMP IF NO SUPP RQS 47#Q LDX 0 A1+21(3) [EXTRACT QUOTA SIZE FROM SUPP RQS 47SB LDX 6 0 48#2 ANDX 6 GSIGN [FIX QUOTA BIT 48RL ANDN 0 #7777 49?= SLL 0 10 49QW BNZ 0 Z412A [J IF QUOTA SPECIFIED 4==G Z411 SRL 7 10 [CALC QUOTA FROM CORE SIZE 4=Q6 LDX 0 7 4?9Q SBN 7 5 [IF SIZE LESS THAN OR EQUAL TO 4K 4?PB BNG 7 Z412 [TAKE QUOTA=SIZE,OTHERWISE 4#92 SRA 7 1 [QUOTA=4K+1/2(SIZE-4K) UP TO 16K 4#NL ADN 7 4 4*8= LDN 0 16 4*MW TXL 0 7 4B7G BCS Z412 4BM6 LDX 0 7 4C6Q Z412 LDN 6 0 4CLB SLL 0 10 4CX? ...Z412A LDX 7 JQUOTA(1) [MAX QUOTA IN JOBBLOCK 4D88 ... BNZ 7 QUOTASPEC [J IF SET 4DF5 ... LDX 7 AMAXQUOTA [ELSE USE AMAXQUOTA (IP) 4DQ2 ...QUOTASPEC 4F2X ... BXL 0 7,Z413 [J IF REQUESTED QUOTA<MAX ALLOWED 4F?S ... LDX 0 7 [ELSE USE MAXIMUM 4FJW Z413 SRL 0 10 4G4G ORX 0 6 4GJ6 STO 0 AWORK2(2) [STORE QUOTA READY FOR AQUOTA 4H3Q ) 4HHB # 4J32 # 4JGL #SKI G3 4K2= ( 4KFW GETACT APET,,1 [SET UP PCA 4K^G LDX 3 BPTR(2) [FIND THE APET 4LF6 STO 7 ALIMIT(3) 4LYQ LDX 5 JOBNO(2) 4MDB STO 5 JOBNO(3) 4MY2 LDX 5 3 [REMEMBER APET ADDRESS 4NCL LDX 2 3 4NX= FJOCA 3,FX2 4PBW ENRINGD JOBRING(2),AJBRING(3) 4PWG MHUNTW 3,AOBRES [FIND REQUEST SLIP 4QB6 CHAINACT 3 4QTQ LDX 2 5 [X2=PCA ADDRESS 4R*B ) 4RT2 # 4S#L # IN GEORGE 4 THE SCB NO LONGER CONTAINS THE BACKING HOMES 4SS= # OF A PROG.IT IS USED TO HOLD INFO ABOUT THE SIZE & QUOTA OF 4T?W # THE PROG.THERE IS ALSO AN AREA GIVING THE PERM ASSOC WITH 4TRG # EACH SEG & AN ENTRY FOR EACH SUD THE PROG IS ATTATCHED TO. 4W?6 # 4WQQ #SKI G4 4X=B ( 4XQ2 # 4Y9L # 4YP= Z420 LDN 4 #6000 4^8W ANDX 4 XLDEXA(2) 4^NG SRC 4 11 5286 LDX 7 AWORK2(2) [PICK UP SIZE OF QUOTA 52MQ LDCT 0 #200 [SWAP IN FOR LOAD INDICATOR 537B BZE 4 Z425A [J IF NOT PP 53M2 LDCT 0 #100 [PURE PAGES INDICATOR 546L BNG 4 Z425A [J IF SUBSEQ LOAD 54L= LDCT 0 #300 555W Z425A 55KG ORX 7 0 5656 MHUNTW 3,BSTB,BSCB 56JQ Z425B STO 7 AQUOTA(3) 574B GETACT APET,,1 [SET UP PCA 57J2 LDX 3 BPTR(2) 583L LOCK 3 58H= # I AM NOT SURE THAT THE APET SHOULD BE LOCKED HERE - JSR 592W LDX 5 AWORK1(2) 59GG BPZ 5 SEN2B 5=26 LDCT 5 #200 [IF SPARSE ADDRESSING RANGE = 4M 5=FQ SEN2B 5=^B STO 5 ALIMIT(3) [SET ADDRESSING RANGE IN PCH 5?F2 LDX 6 JOBNO(2) 5?YL STO 6 JOBNO(3) 5#D= FJOCA 2 5#XW ENRINGD JOBRING(3),AJBRING(2) 5*CG LDX 5 3 [PRESERVE ADDR OF PCA 5*X6 BNG 4 Z426 [J IF SUBSEQ LOAD OF PURE PROCEDURE 5BBQ LDN 6 16 [SET UP 16 WORD SEG 5BWB LDCT 7 #200 5CB2 GETPTAB 6,PDESC,1 5CTL LDX 2 ACOMMUNE1(2) 5D*= ORX 2 7 5DSW STO 2 ASEGTAB(3) [ADDR OF SEG TAB 5F#G ADN 7 3 5FS6 STO 7 0(2) 5G?Q STO 7 1(2) 5GRB LDN 3 2(2) 5H?2 SMO 6 5HQL MOVE 2 -2 5J== Z426 5JPW MHUNTW 3,ASCBT 5K9G CHAINACT 3 5KP6 MHUNTW 3,AOBRES 5L8Q CHAINACT 3 5LNB LDX 2 5 5M82 ) 5MML LDCT 5 256 5N7= STO 5 ASTOP(2) [SET STOP WORD 5NLW #SKIP G4 5P6G ( 5PL6 LDCT 0 #400 5Q5Q STO 0 CHAINADD+K67(2) [FAST PAGE REQUEST WORD 5QKB ) 5R52 STOZ ASU1(2) [SET SUSPENSION WORD FOR MEMBER 0 5RJL LDN 4 K61 5S4= LDX 5 A1+8(3) [MEMBER 3 5SHW LDX 6 A1+11(3) [MEMBER 2 5T3G LDX 7 A1+9(3) [MEMBER 1 5TH6 LDN 1 3 5W2Q REN1 LDX 7 4(1) [GET MEMBER WORD 5WGB LDCT 0 #200 [B2 STATE SL 5X22 BNZ 7 REN2 [JUMP IF MEMBER EXISTS 5XFL ADX 0 GSIGN [SET SIGN BIT AS WELL 5X^= REN2 SMO 4 5YDW STO 0 ASU1(2) [SET SUSPENSION WORDS FOR 5YYG ADN 4 K61 [OTHER MEMBERS 5^D6 BCT 1 REN1 5^XQ LDX 1 2 [PICK UP PCA PTR 62CB LDN 6 3 62X2 SET 63BL DCH 6 ARM4(1) [SET UP MEMBER NO IN CHAR 0 63W= SBN 1 K61 64*W BCT 6 SET 64TG LDXC 0 CPEXECINFO+1 [JUMP IF EXTENDED FLOATING POINT 65*6 BCC ZNOFLOW [NOT AVAILABLE 65SQ ... LDCT 0 #600 66#B ORS 0 ALMT(2) [INHIBIT OWN MONITORING 66S2 ZNOFLOW 67?L LDCT 4 #170 [GET TRUSTED STATUS 67R= ANDX 4 A1+2(3) 67X7 ...#UNS IMR 6834 ...#SKI 686^ ...( 68=W LDN 1 3 [COUNT FOR PRIORITY INSERT 68QG PRIOR LDCH 0 A1+7(3) [TAKE THE MOST SIG. CHAR. OF PRIORITY 69=6 SMO FX1 69PQ TXL 0 SIXTY [WORD. IS THE PRIORITY LESS THAN 60? 6=9B BCS PRINS [IF SO - INSERT IT 6=P2 LDN 0 59 [OTHERWISE - SET PRIORITY TO 59 6?8L PRINS DCH 0 APR1(2) [INSERT THE PRIORITY 6?N= BCHX 2 £ [X2 - POINTS TO THE NEXT CHARACTER 6#7W BZE 1 PROUT [HAVE WE INSERTED THE PRIORITY OF M3? 6#MG ADN 3 2 [X3= ADDRESS OF AOBRES (+2) OR (+4) 6*76 BCT 1 PRIOR [DECREMANT COUNT. BACK FOR MEMBERS 6*LQ SBN 3 5 [1 AND 2 - X3= AOBRES ADDRESS (+5) 6B6B BRN PRIOR [NOW INSERT PRIORITY OF MEMBER 3 6BL2 PROUT 6BTS ...) 6C5L GETCOREN 13,1,1 [GET AND 6CK= FINDCORE 3 [NAME 6D4W NAME 3,APERI,APERIRES [PERI RES BLK 6DJG NGS 3 A1(3) [SET FIRST ENTRY NEGATIVE 6F46 CHAINACT 3 6FHQ BZE 4 PROT 6G3B CHEKPRIV 0,PRIVB,PROT 6GH2 FPCACA 2 6H2L STO 4 ATRUST(2) 6HG= PROT 6H^W FJOCA 3,FX2 6J2J ...#UNS IMR 6J3= ...( 6J3Y ...[ INITIALISE MILL PRIORITY AND MILL RATING 6J4L ... LDN 7 4 [4 MEMBERS 6J5# ... LDN 4 30 [INITIAL MILL RATING 6J62 ... FPCACA 2,FX2 6J6N ... ORX 2 GSIGN [CHAR 2 6J7B ...NMEMB 6J84 ... STOZ ATU1(2) [-VE INDICATES NO TIME USED 6J8Q ... [MUST BE -1 TO GO +VE ASAP 6J9D ... STO 4 AMR1(2) 6J=6 ... LDCH 5 AMILLP(3) [LOAD MILL PRI.FOR MEMBER 6J=S ... BNZ 5 NMILLP [IF ZERO,IT IMPLIES DEFAULT 6J?G ... LDN 5 30 [ OF 30 TO BE USED 6J#8 ...NMILLP 6J#W ... DCH 5 AMR1(2) 6J*J ... BCHX 3 £ 6JB= ... ADN 2 1 6JBY ... BCT 7 NMEMB [NEXT MEMBER 6JCL ... SBN 3 1 [X3 -> JOB BLOCK 6JD# ...) 6JFG NOCORJOB 3 6J^6 LDX 7 APROCTIME 6KDQ STO 7 JCTLR(3) [SET TIME LAST RUN=NOW 6KYB NGN 0 1 6LD2 STO 0 JCFWT(3) 6LXL FPCACA 1,2 6MC= #SKI G4 6MWW ( 6N=^ ... HUNT2 2,BSTB,BSCB,1 6NM4 ...[ 6P37 ...[ THE FOLLOWING CORRECTS B3104 - NO 'EXEC OF PROG MAY BE 6PC= ...[ DELAYED ETC' BECAUSE IT WAS UNDER G3 SKIPS (POST VOPA BUG) 6PR* ...[ DONE 27TH JUNE 75 :CENT 6Q7D ...[ 6QHN ...[ 6QQB ...[ THIS IS A CORRECTION OF MARK 6 CODE FOR MARK 8 6Q^4 ...[ BUG 1375 (G 5560) 6R7Q ...[ DONE 14.NOV.74 :CENT 6RBD ...[ 6RK6 ... LDX 0 AQUOTIME 6RRW STO 0 HRTIMES(3) [SET TIME TO QUOTA REVIEW-IN MILSECS 6RW5 ...[ 6RY# ... LDX 0 AQUOTA(2) 6S2H ... SLL 0 10 [CONVERT SIZE TO WORDS 6S4Q ... LDX 2 FX2 6S6^ ... STO 0 JCSIZE(3) [STORE SIZE IN JOBBLOCK 6S98 ...[ 6S?G ) 6SR6 #SKI G3 6T=Q ( 6TQB LDX 0 ALIMIT(1) 6W4R ... STO 0 JCSIZE(3) [CORE SIZE TO JOB BLOCK 6WC8 ...) 6WPL NGNC 7 1 6X9= TXL 0 COBJQUOTA 6XNW BCS ZNOTBIG [JUMP UNLESS PROGRAM>QUOTA 6Y8G MONOUT BIGPROG 6YN6 FJOCA 3,2 6^7Q ZNOTBIG 7272 LDX 7 JCPI(3) [SET CPI UNLESS ALREADY SET 72LL LDN 0 1 736= BNZ 7 RSET 73KW STO 0 JCPI(3) 745G RSET ADS 0 ACTPROGS [COUNT OF PROGRAMS 74K6 LDN 7 #1400 [SET CORE IMAGE CONTEXT 754Q ERS 7 CONTEXT(2) 75JB LDX 1 FX1 7642 ORX 6 MASK2(1) [SWAPPED OUT,DORMANT,LOAD MARKER 76HL ORS 6 JMISC(3) 773= LDX 0 MASK4(1) 77GW ANDX 0 XLDEXA(2) 782G BNZ 0 RUNPROGRAM [JUMP IF PROGRAM TO BE RUN 78G6 LDX 0 MASK3(1) 78^Q ANDX 0 XLDEXA(2) 79FB BNZ 0 ZAPLOAD [JUMP IF LOAD TO BE COMPLETED 79^2 # NOW CHANGE FILE TO THE PCA AND MOVE IN MARKERS 7=DL # ALSO MOVE ACROSS ADATA/AWKSB AND FIRST CPB/CUNI 7=Y= # WHICH CONTAINS FILE NAME 7?CW # NOW MOVE FILE TO PCA 7?XG FPCACA 3,2 7#C6 #SKIP G4 7#WQ ( 7*BB LDN 0 #2000 7*W2 ANDX 0 XLDEXA(2) 7B*L BZE 0 NOTSUBSQ [JUMP IF NOT SUBSQ LOAD 7BT= MHUNT 1,CPB,CUNI 7C#W CHAIN 1,3 [CHAIN CPB/CUNI AFTER PCA 7CSG BRN ZMARKERS 7D#6 NOTSUBSQ 7DRQ ) 7F?B CALL 7 ZMOVEFILE2 [MOVE FILE FROM CPA TO PCA 7FR2 CALL 7 ZBLOCKS [MOVE LOADING BLOCKS 7G=L ZMARKERS 7GQ= LDN 5 YCOUNT(2) 7H9W LDN 6 ACOMMUNE1(3) 7HPG MOVE 5 5 [STORE LOAD MARKERS IN PCA 7J96 LDN 5 AWORK1(2) 7JNQ LDN 6 AWORK1(3) 7K8B MOVE 5 4 [MOVE MARKERS TO PCA 7KN2 CALL 4 ZCLEAR 7L7L ENDCOM 7LM= # PROGRAM IS TO BE RUN SO GO ACROSS TO PROSTART 7M6W RUNPROGRAM 7MLG ACROSS PROSTART,1 7N66 # COMPLETE LOAD 7NKQ ZAPLOAD 7P5B LOADNOW XBN,NDCOM,1 7PK2 NDCOM ENDCOM 7Q4L XBN 7QJ= COMBRKIN 7R3W # 7RHG # 7S36 # 7SGQ # 7T2B # ENTRY POINT FOR LOADNOWX MACRO 7TG2 XENT31 7T^L LDX 0 BIT10 7WF= ORS 0 XLDEXA(2) [SET LOADNOWX MACRO 7WYW FPCACA 3,2 [LOCATE PCA 7XDG BRN START 7XY6 # ENTRY POINT FOR LOADNOW MACRO 7YCQ XENT30 7YXB FPCACA 3,2 [LOCATE PCA 7^C2 LDN 5 AWORK1(3) 7^WL LDN 6 AWORK1(2) 82B= MOVE 5 4 [RESTORE AWORK WORDS 82TW LDN 5 ACOMMUNE1(3) 83*G LDN 6 YCOUNT(2) 83T6 MOVE 5 5 [RESTORE LOAD MARKERS 84#Q LDX 0 BIT9 84SB ORS 0 XLDEXA(2) [SET LOADNOW MACRO MARKER 85#2 START 85RL #SKIP G4 86?= ( 86QW # NOW RESERVE SWAPPING SPACE FOR PROGRAM 87=G ZY420 LDN 4 #6000 87Q6 ANDX 4 XLDEXA(2) 889Q SRC 4 11 88PB ZY421 LDXC 7 AWORK1(2) 8992 SRL 7 10 89NL FPCACA 3,2 8=8= HUNT2OPT 3,BSTB,BSCB [LOCATE SCB 8=MW BZE 4 ZY422 [JUMP IF NOT PP 8?7G LDX 0 HSUD(3) [LOCATE SUD 8?M6 FSUD 1,0,(GEOERR) 8#6Q BPZ 4 ZY421A [JUMP UNLESS SUBSEQUENT LOAD OF P 8#LB LDX 0 HSIZE(1) [SET NO. OF ACCESSED PAGES IN 8*62 DSA 0 AASIZE(3) [PURE PROCEDURE IN AASIZE 8*KL SRL 0 12 8B5= ADS 0 AASIZE(3) 8BJW TXL 7 AASIZE(3) [ERROR IF SIZE LESS THAN NO. OF 8C4G BCS XSIZE [PAGES IN PP 8CJ6 LDX 0 HSIZE(1) 8D3Q ANDN 0 #7777 [ONLY BOOK PAGES FOR 8DHB SBX 7 0 [UNSHARED PAGES 8F32 BRN ZY422 [JUMP TO BOOK SWAP SPACE 8FGL ZY421A 8G2= LDXC 0 HUSERS(1) 8GFW BCC ZY423 [JUMP IF ALREADY LOADED,AND CHANGE 8G^G [TO A SUBSEQUENT LOAD 8HF6 LDX 0 HUSERS(1) 8HYQ SLL 0 1 8JDB BPZ 0 ZY422 [JUMP IF SWAP SPACE NOT OBTAINED 8JY2 # SWAP SPACE HAS BEEN OBTAINED,I.E. PROGRAM IS BEING LOADED 8KCL LONGWAIT XBN2,HLOADPPWT [WAIT FOR PP TO BE LOADED 8KX= BRN ZY421 8LBW # WE MUST CHANGE FROM AN INITIAL LOAD TO A SUBSEQUENT LOAD,AND FREE 8LWG # THE SEGMENT TABLE THAT WE SET UP 8MB6 ZY423 8MTQ FPCACA 1,2 8N*B LDX 6 ASEGTAB(1) 8NT2 STO 2 3 8P#L CHANGEACT 1 [CHANGE TO PCA 8Q?W MHUNTW 1,BSTB,BSCB 8R?6 LDCT 0 #200 8RQQ ERS 0 AQUOTA(1) [DON'T CONFUSE SWAPIN 8RXY ... LDX 0 XLDEXA(3) [FOR IMMEDIATE LOAD FILE 8S56 ... ANDX 0 BIT9 [STILL ATTACHED TO CPA 8S=# ... BZE 0 ZY423A 8SCG ... CALL 7 ZMOVEFILE1 [DELAYED LOAYD - MOVE FILE BACK TO CP 8SJN ... MFREEW ADATA,AWKSB [FREE LOADING BLOCKS 8SQ2 MFREEW FILE,ENT 8S^S ...ZY423A 8T9L CHANGEACT 3 [CHANGE BACK TO CPA 8T?T ... LDX 0 XLDEXA(3) 8TB4 ... ANDX 0 BIT9 8TD? ... BNZ 0 ZY423B 8TGG ... MFREEW ADATA,AWKSB [IMMEDIATE LOAD - FREE LOADING BLOCKS 8TJP ... MFREEW FILE,ENT [ATTACHED TO CPA 8TLY ...ZY423B 8TP= CLOSE [CLOSE LOADING FILE 8TR# ... FREEPTAB 6 [FREE SEGMENT TABLE 8TTB ...[ 8TXD ...[ THE FOLLOWING LINE WAS INSERTED DUE TO RA9 8T^G ...[ CAUSED BY NOT ZEROING ASEGTAB==SO IF BREAKIN OCCURED 8W3J ...[ SOME FUNNY RESULTS OCCURED 8W5L ...[ IN THIS CASE ANOTHER PROGRAM TOOK THE SPACE 8W7N ...[ CAUSED BY FRREPTAB AS ITS OWN SEG TABLE,THE 8W9Q ...[ ORIGINAL LOAD WAS QUIT SO PROGDEL 8W?S ...[ USED ASEGTAB AND ERASED THE OTHER PROGARAM !!!! 8W*W ...[ DONE 16.JAN.75 :CENT 8WCY ...[ 8WG2 ... FPCACA 3,2 8WJ4 ... STOZ ASEGTAB(3) 8WL6 ...[ 8WNG LDN 0 #6000 8X86 ERS 0 XLDEXA(2) [CHANGE TO SUBSEQUENT LOAD 8XMQ BRN ZY420 8Y7B ZY422A 8YM2 AWAITSS XBN2 [WAIT FOR SWAP SPACE 8^6L BRN ZY421 8^L= ZY422 925W BOOKSS 7,ZY422A 92KG FPCACA 3,2 [REFIND PTRS AS BOOKSS CAN 9356 HUNT2 3,BSTB,BSCB [COORDIANATE 93JQ BZE 4 ZY422B 944B LDX 0 HSUD(3) 94J2 FSUD 1,0,(GEOERR) 953L BNG 4 ZY422B 95H= LDCT 0 #200 [INDICATE THAT SWAPPING SPACE 962W ORS 0 HUSERS(1) [OBTAINED 96GG ZY422B 9726 LDX 5 AWORK1(2) 97FQ BPZ 5 ZY425 [JUMP UNLESS PROGRAM IS SPARSE 97^B ORX 7 GSIGN [SET SPARSE BIT 98F2 ZY425 98YL STO 7 AMAXSIZE(3) [STORE SIZE OF PROGRAM 99D= ) 99XW #SKIP G3 9=CG ( 9=X6 # IN GEORGE 3 WE OBTAIN ENOUGH SHEETS OF BACKING STORE TO 9?BQ # HOLD THE PROGRAM AND STORE THEM IN THE SCB 9?WB FJOCA 3,2 9#B2 LDX 5 JCSIZE(3) 9#TL STO 5 AWORK1(2) 9**= ADX 5 ASHEETSIZE 9*SW SBN 5 1 9B#G DVS 4 ASHEETSIZE 9BS6 LDX 6 5 [NO OF BLOCKS 9C?Q SENBS 9CRB WHATBACK 0,5,NSHEETS,SWAP 9D?2 ADN 5 AOBJST-A1 9DQL SETUPCORE 5,3,BSTB,BSCB [SET UP SCB 9F== MHUNTW 2,BSTB,FULLB [FIND WHATBACK BLOCK 9FPW LDN 0 AOBJST(3) 9G9G LDN 7 A1+2(2) [COPY O/P 9GP6 SMO 6 [BLOCK NOS INTO 9H8Q MOVE 7 0 [SCB 9HNB STOZ AQMODE(3) 9J82 STOZ ASHEET(3) [FRIG FOR 9JML STO 6 BSHEET(3) [NO OF SHEETS FOR PROG 9K7= SMO FX2 9KLW LDX 5 AWORK1 9L6G STO 5 ACORSZ(3) 9LL6 STO 5 BCORSZ(3) 9M5Q LDX 7 5 [PRESERVE CORE SIZE 9MKB DVS 4 ASHEETSIZE 9N52 BNZ 4 SEN3 9NJL LDX 4 ASHEETSIZE 9P4= SEN3 9PHW STO 4 AWRDNUM(3) [NO OF WORDS IN LAST SHEET 9Q3G STO 4 BWRDNUM(3) 9QH6 STOZ ASTIME(3) 9R2Q STOZ ATOTIME(3) 9RGB LDX 6 A1+1(2) 9S22 STO 6 AOBJLF(3) [LOGICAL FILE NUMBER 9SFL FREECORE 2 9S^= FPCACA 3,2 9TDW MHUNTW 2,BSTB,BSCB 9TYG CHAIN 2,3 [CHAIN SCB AFTER PCA 9WD6 ) 9WXQ # START OF SETTING UP JOB FOR SELECTION BY LLS 9XCB #SKI G4 9XX2 ( 9YBL LDN 0 #2000 9YW= ANDX 0 XLDEXA(2) 9^*W BZE 0 Z429 [JUMP UNLESS SUBSEQUENT LOAD OF PP 9^TG ACROSS LOADPP,2 [GO TO ATTATCH TO PURE PROCEDURE =2*6 Z429 =2SQ ) =3#B # THE'PCACA'DONE BY LOAD CAN BE BROKEN IN ON-UNLIKE THE STANDARD =3S2 # PCACA IT IS NECESSARY HOWEVER TO TEST FOR BREAKIN BEFORE ENTERING =4?L # THE PCACA TO AVOID THE JOB GETTING STUCK IN THE PCACA =4R= TESTBRKIN XBN3 [J IF BREAK IN =5=W FJOCA 3,2 =5QG LDX 6 MASK1(1) =6=6 ERS 6 JMISC(3) [SWAPPED OUT,PCACA,LOAD,SUSPENDED =6PQ # WE MUST NOT COORDINATE BTWEEN SETTING BOTTOM PART OF JMISC NON-ZERO =79B # AND COORDINATING TO GET CORE =7F8 ... KICKASWINT =7P2 COOR1 =88L FJOCA 3,2 =8N= LDN 0 #1000 =97W ANDX 0 JMISC(3) =9MG BZE 0 XBN3 [JUMP IF LOAD ABANDONED ==76 ERS 0 JMISC(3) [CLEAR LOAD BIT ==LQ #SKIP G4 =?6B ( =?L2 # LOCK PAGE 0 =#5L FPCACA 3,2 =#K= LDN 6 0 =*4W CHECKB 6,,(GEOERR),3,W,YCOOR,,3 =*JG YCOOR STOZ HLOCK1(3) =B46 LDX 0 HLOCK1+2(3) =BHQ STO 0 ADATUM(3) [SET DATUM =C3B ) =CH2 # RESET SWAP INDICATOR TO ITS PROPER VALUE =D2L #SKIP G3 =DG= ( =D^W FPCACA 3,2 =FFG HUNT2 3,BSTB,BSCB =F^6 LDX 0 BSHEET(3) =GDQ STO 0 ASHEET(3) =GYB # ZEROISE CORE FOR OBJECT PROGRAM USING EVEN TO EVENMOVE =HD2 HUNT2 3,AOBJPROG,0 =HF8 ...#UNS CA1D =HGB ...( =HHJ ... ADX 3 CA1D =HJQ ... STOZ 0(3) =HKY ... STOZ 1(3) =HM6 ... LDN 6 0(3) =HN# ... LDN 7 2(3) =HPG ... SBX 3 CA1D =HQN ...) =HRW ...#UNS CA1D =HT4 ...#SKI =HW= ...( =HXL STOZ A1D(3) =JC= STOZ A1D+1(3) =JWW LDN 6 A1D(3) =KBG LDN 7 A1D+2(3) =KL# ...) =KW6 LDX 5 AWORK1(2) [CORE SIZE =L*Q SBNC 5 514 =LTB BCS ODDSODS [COR < 513 =M*2 NEXTMOVE =MSL MOVE 6 0 [STOZ 512 WDS =N#= ADN 7 512 =NRW SBNC 5 512 =P?G BCC NEXTMOVE =PR6 ODDSODS =Q=Q SMO 5 =QQB MOVE 6 0 =R=2 ) =RPL #SKIP G4 =S9= ( =SNW LDN 4 #4000 =T8G ANDX 4 XLDEXA(2) =TN6 BNZ 4 RENTA [JUMP IF PP BEING LOADED =W7Q ) =WMB FPCACA 1,2 =X72 MACCS ,1,4 [ADDRESS OF ACC 0 IN X4 =XLL HUNTW 1,APED,ADELETE [LOOK FOR DELETE BLOCK FROM =Y6= BNG 1 RENTA [PREVIOUS PROGRAM =YKW LDN 3 APEDACC(1) =^5G MOVE 3 8 [MOVE IN ACCS IF PRESENT =^K6 FREECORE 1 ?24Q RENTA ?2JB LDX 0 XLDEXA(2) ?342 ANDX 0 BIT9 ?3HL BZE 0 ZNOTLOADNOW [JUMP IF NOT LOADNOW MACRO ?43= FPCACA 1,2 ?4GW STO 2 3 ?52G CHANGEACT 1 ?5G6 CALL 7 ZMOVEFILE1 [MOVE FILE FROM PCA TO CPA ?5^Q CALL 7 ZBLOCKS [MOVE LOADING BLOCKS ?6FB CHANGEACT 3 ?6^2 ZNOTLOADNOW ?7DL NGN 7 8 ?7Y= ANDX 7 YCOUNT(2) [NO.OF BLOCKS READ FROM SERIAL FILE ?8CW ERS 7 YCOUNT(2) [YCOUNT HOLDS COUNT OF BINARY BLOCKS ?8XG LDCT 0 #10 ?9C6 ANDX 0 XLDEXA(2) ?9WQ BNZ 0 QED ?=BB LDCT 0 #60 ?=W2 ANDX 0 XLDEXA(2) ??*L BZE 0 Z451 [JUMP UNLESS MT OR EMBEDDED LOAD ??T= SLL 0 3 ?##W BPZ 0 Z452 ?#SG SRL 7 3 ?*#6 SBX 7 YCOUNT(2) [COM PROC COUNT OF RECORDS READ ?*RQ ADDRECS 3,7 ?B?B Z451 ACROSS LOAD,1 ?BR2 Z452 LDX 0 YCOUNT(2) [IN MT CASE IF NO SUPP RQS HAS ?C=L BCT 0 Z451 [BEEN READ WE MAKE A SPECIAL ENTRY ?CQ= LDN 0 2 [TO LOAD ?D9W STO 0 YCOUNT(2) ?DPG ACROSS LOAD,2 ?F96 QED ACROSS LOADX,2 [TO LOAX IF EDS ?FNQ #SKI G3 ?G8B ( ?GN2 NSHEETS ?H7L # NOT ENOUGH SH:EETS. OUTPUT MESS AND GO WAITING ?HM= OUTNUM JOBNO(2),7,1 ?J6W INFORM 1,JBACK,1 ?JLG LONGSTOP XBN2 ?K66 BRN SENBS [TRY AGAIN ?KKQ ) ?L5B # ?LK2 # THIS SUBROUTINE MOVES THE TOP FILE OPEN TO ACTIVITY IN FX2 ?M4L # TO BECOME THE TOP FILE OPEN TO THE ACTIVITY IN X3 ?MJ= ZMOVEFILE1 ?N3W SBX 7 FX1 ?NHG LOCKC 3,ZCPA ?P36 CALL 1 ZCPA ?PGQ STO 2 3 [RELOCATE CPA ?Q2B BRN ZMOVE ?QG2 ZMOVEFILE2 ?Q^L SBX 7 FX1 ?RF= LOCKC 3,ZPCA ?RYW CALL 1 ZPCA ?SDG STO 2 3 [RELOCATE PCA ?SY6 ZMOVE ?TCQ CHANGEFILE 3 ?TXB UNLOCK 3 ?WC2 ADX 7 FX1 ?WWL EXIT 7 0 ?XB= # ?XTW # ?Y*G # THIS SUBROUTINE MOVES VARIOUS BLOCKS FROM THE ?YT6 # CURRENT ACTIVITY TO THAT IN X3 ?^#Q # ?^SB ZBLOCKS #2#2 HUNTW 2,ADATA,AWKSB #2RL BNG 2 NOWORK [JUMP IF NO WORK BLOCK #3?= CHAIN 2,3 #3QW NOWORK #4=G MHUNT 2,CPB,CUNI [BLOCK HOLDING FILE NAME #4Q6 CHAIN 2,3 #59Q HUNTW 2,FILE,FRB #5PB BNG 2 NOFRB [JUMP IF NO FILE/FRB #692 CHAIN 2,3 #6NL NOFRB #78= MHUNTW 2,FILE,ENT #7MW CHAIN 2,3 #87G EXIT 7 0 #8M6 # THIS SUBROUTINE LOCATES THE PCA FROM CPA #96Q ZPCA #9LB FPCACA 2,FX2 #=62 EXIT 1 0 #=KL # THIS SUBROUTINE LOCATES THE CPA FROM PCA #?5= ZCPA #?JW FCAPCA 2,FX2 ##4G EXIT 1 0 ##J6 # #*3Q # #*HB # #B32 # THIS SUBROUTINE CLEARS THE EXTPS WORDS FOR GETWORD #BGL ZCLEAR #C2= LDN 1 EXTPS(2) #CFW LDN 2 1(1) #C^G STOZ 0(1) #DF6 MOVE 1 4 #DYQ EXIT 4 0 #FDB # #FY2 # #GCL # #GX= # REPORT VARIOUS ERRORS #HBW #SKIP G3 #HWG ( #JB6 XSPARSE [SPARSE PROG #JTQ LDN 1 WSPARSE #K*B BRN RERROR #KT2 ) #L#L SERR #LS= LDN 1 RBIGPR #M?W BRN RERROR #MRG #SKIP G4 #N?6 ( #NFB ...XSIZE FPCACA 3,2 #NML ... HUNT2 3,CPB,CUNI #NTW ... CHAIN 3,2 [RECHAIN CPB-CUNI AFTER CPA #P46 ... LDN 1 WERRESS [SIZE OF PP EXCEEDS SPEC SIZE OF PROG #P=B BRN RERROR #PQ2 ) #Q9L SERR1 #QP= LDN 1 RICR #R8W BRN RERROR #RNG SERR3 #S86 LDN 1 RGPLERR #SMQ RERROR #T7B LDN 6 0 [NO SUBSIDIARY PART OF ERROR MESSAGE #TM2 SMO FX1 #W6L LDX 5 0(1) [ADDR OF MAIN MESSAGE #WL= LDX 2 FX2 #X5W RERROR1A #XKG #SKIP G4 #Y56 ( #YJQ LDN 7 1 [NO FILE TO CLOSE #^4B LDN 0 #2000 #^J2 ANDX 0 XLDEXA(2) *23L BNZ 0 RERROR2 *2H= ) *32W LDN 7 0 [FILE TO BE CLOSED *3GG RERROR2 *426 LDX 0 YCOUNT(2) [LEAVE YCOUNT HOLDING NO OF RECORDS *4FQ SRL 0 3 *4^B STO 0 YCOUNT(2) *5F2 ACROSS LOADERR,1 *5YL # *6D= # DEAL WITH BREAKIN AT VARIOUS STAGES *6XW # *7CG XBN3 *7X6 NGNC 5 1 *8BQ XBN2 *8WB LDN 5 0 [X5=0 IF SWAP SPACE NOT OBTAINED *9B2 LDN 7 0 *9TL LDX 2 FX2 [SET YCOUNT TO HOLD NO.OF RECORDSREAD *=*= LDX 0 YCOUNT(2) *=SW SRL 0 3 *?#G STO 0 YCOUNT(2) *?S6 ACROSS LOADERR,3 *#?Q MENDAREA 50,K99LOADPROG *#RB #END ^^^^ ...04716522000400000000