LOADPROG865

(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

LOADPROG865.txt
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