LOADERR70

(George Source)

Macros used: ADDRECS, BACKSPACE, BSOFF, CHANGEACT, CHANGEFILE, CHERRMESS, CLEAR, CLOSE, COMBRKIN, DOWN, ENDCOM, ERRORX, FINDACTNO, FJOCA, FON, FPCACA, FREEALL, FREECORE, FREESS, FSUD, HLSINFORM, HUNT2, HUNT2J, HUNT2OPT, ILLEGAL, LINKSET, LOCK, MARK, MENDAREA, MFREE, OFF, PAIR, PERMITBRK, PMT, SEG, SEGENTRY, SETBIT, SETUPCORE, T, TBS, TRACE, UNLOCK, UNSETBIT, UP, UPPLUS

LOADERR70.txt
22FL ...      SEG      LOADERR,70,RUTH PORTER   
22^=          SEGENTRY K1LOADERR,XENT1  
23DW          SEGENTRY K2LOADERR,XENT2  
23YG          SEGENTRY K3LOADERR,XENT3  
24D6    #DEF  T=1                          [INCLUDE TRACING 
24XQ    #DEF  XLDEX=EXTPS+3 
25CB    #DEF  XLDEXA=EXTPS+4
25X2    #DEF  YCOUNT=EXTPS  
26BL    #   
26W=    MASK1          #00060000           [LOADNOW,LOADNOWX BITS   
27*W    PTR   PAIR     TROBJ,1  
27TG    PCR   PAIR     CROBJ,1  
28*6    PMT   PAIR     MTOBJ,1  
28SQ    # LABELS OF ERROR MESSAGES  
29#B    MPROG          +EMPROG  
29S2    XENT2   
2=?L          LDN   7  0                    [LOAD FILE OPEN 
2=R=          LDN   6  0                   [NO SUPPLEMENTARY MESSAGE
2?=W    XENT1   
2?QG    #SKI  T 
2#=6    (   
2#PQ          TRACE    6,SUPPMESS   
2*9B          TRACE    7,SP MARK
2*P2    )   
2B8L         LDCT   0  #200 
2BN=          ANDX  0  XLDEXA(2)
2C7W          BNZ   0  RCONT               [CONT EXTRACODE  
2CMG    # B22 OF X7 SET MEANS CORE IMAGE NOT TO BE DELETED -
2D76    # NOT SET UP OR ERROR IN RESUME 
2DLQ    # ONLY USED IN CASES OF DOUBT   
2F6B          LDN   0  2
2FL2          ANDX  0  7
2G5L          BNZ   0  NOCI 
2GK=          LDN   0  #1000               [CORE IMAGE CONTEXT  
2H4W          ANDX  0  CONTEXT(2)   
2HJG          BZE   0  NOCI 
2J46    #SKIP G4
2JHQ    (   
2K3B          FPCACA   3,2                 [CLEAR ANY LOCKDOWN COUNTS LEFT SET  
2KH2          CLEAR    3,0,,3,2 
2L2L          CALL  4  Z4302               [DEAL WITH SUD MARKED BEING LOADED   
2LG=          BRN      £
2L^W    )   
2MFG          DOWN     PROSTART,16  
2M^6    NOCI
2NDQ    #SKIP G4
2NYB    (   
2PD2    #   
2PXL    #     IF THERE IS NO CORE IMAGE WE MAY STILL HAVE TO FREE   
2QC=    #     SWAPPING SPACE OR REDUCE USER COUNTS  
2QWW    #   
2RBG          CALL  4  Z4300
2RW6          BRN      (GEOERR)            [ERROR IF REPLACEMENTS NON ZERO  
2S*Q          BNG   3  NSWAPSP             [NO SCB  
2STB          LDX   4  AMAXSIZE(3)         [AMOUNT OF SWAPPING SPACE BOOKED 
2T*2          ANDX  4  BSP16               [FOR PROG
2TSL          FREECORE 3                   [FREE SCB
2W#=          BZE   4  NSWAPSP  
2WRW          FREESS   4
2X?G    NSWAPSP 
2XR6    #   
2Y=Q    )   
2YQB    # X7 B23 = 1  -  FILE NOT OPENED XET
2^=2    # FOR EMBEDDED LOAD IT IMPLIES TH_AT THE 1ST CARD HAS NOT BEEN READ AND 
2^PL    # NOT BACKSPACE. THEREFORE B23 IS TESTED BEFORE EMBEEDDED LOAD  
329=          ANDN  7  1
32NW          BNZ   7  NSAV                [LOAD FILE NOT OPEN  
338G          LDCT  0  #40  
33N6          ANDX  0  XLDEXA(2)
347Q          BNZ   0  SAVEF               [EMBEDDED LOAD   
34MB    #SKIP G4
3572    (   
35LL          LDN   0  #2000               [IF SUBSEQ LOAD OF PURE PROCEDURE
366=          ANDX  0  XLDEXA(2)           [THERE IS NO FILE TO CLOSE   
36KW          BNZ   0  NSAV 
375G    )   
37K6          CLOSE                        [LOAD FILE   
384Q    NSAV
38JB    #SKIP G4
3942          CHERRMESS 
39HL          BZE   5  NDCOM               [ERROR ALREADY REPORTED  
3=3=          BNZ   6  TWOERRS             [SUPP. MESSAGE AS WELL   
3=GW          ERRORX   5                   [OUTPUT ERROR MESSAGE
3?2G          BRN      NDCOM
3?G6    TWOERRS 
3?^Q          ERRORX   5,6                 [OUTPUT ERROR MESSAGE
3#FB    NDCOM   
3#H5 ...      LDCT  0  4
3#JS ...      ANDX  0  XLDEXA(2)
3#LH ...      BZE   0  NDCOM2   
3#N= ...      HLSINFORM    NDCOM1,NOTLOAD,JOBNO(2)  
3#P^ ...      BRN      NDCOM2   
3#RN ...NDCOM1  
3#TC ...      BRN      (GEOERR) 
3#X6 ...NDCOM2  
3#^2          LDX   0  MASK1(1) 
3*DL          ANDX  0  XLDEXA(2)
3*Y=          BNZ   0  UP2LOERR            [JUMP IF LOADNOW(X) MACRO
3BCW          ENDCOM
3BXG    UP2LOERR
3CC6          ANDX  0  BIT9 
3CWQ          BZE   0  NOCUNI              [JUMP IF NO CPB/CUNI WITH FILE   
3DBB                                       [NAME WHICH MUST BE ERASED   
3DW2          MFREE    CPB,CUNI            [FREE CPB,CUNI   
3F*L    NOCUNI  
3FT=          UPPLUS   1                   [UP TO ERROR LABEL   
3G#W    SAVEF   
3GSG          LDX   4  YCOUNT(2)
3H#6          SBN   4  1
3HRQ          BNG   4  NSTART              [ERROR WHILE READING COMMAND 
3J?B          ADDRECS  3,4  
3JR2          BACKSPACE 
3K=L    NSTART  
3KQ=          BNZ   6  NSAV                    [SUBSID MESS ALREADYSET UP   
3L9W          LDX   6  MPROG(1)             [EMBEDDEDPROGRAM SUB/MESSAGE
3LPG          BRN      NSAV 
3M96    RCONT   
3MNQ    # MAKE PROG DORMANT HERE WHEN ILLEGAL ALLOWED FROM PCA  
3N8B          LDXC  0  XLDEXA(2)
3NN2          BCS      NDILL               [ONLINE CONT 
3P7L          FINDACTNO 3,XLDEX(2)         [FIND OLPA   
3PM=          LOCK     3                   [OLPA
3Q6W          CHANGEFILE 3                 [MOVE FILE TO OLPA   
3QLG          UNLOCK   3
3R66    #     PICK UP PERIPHERAL TYPE FROM OLPA 
3RKQ          LDX   4  FTYPNO(3)
3S5B          SRL   4  15   
3SK2          BNZ   4  NTR                 [NOT TR  
3T4L          ADN   1  PTR  
3TJ=          BRN      ZLINK
3W3W    NTR 
3WHG          SBN   4  3
3X36          BNZ   4  NCR                 [NOT CR  
3XGQ          ADN   1  PCR  
3Y2B          BRN      ZLINK
3YG2    NCR 
3Y^L          ADN   1  PMT                 [MUST BE MT  
3^F=    ZLINK   
3^YW          LINKSET  3,0(1)   
42DG    NDILL   
42Y6    # BRK/IN HAS BEEN INHIBITED FOR CONT
43CQ          PERMITBRK 
43XB          FPCACA   2,FX2
44C2          CHANGEACT 2                  [TO PCA  
44WL          ILLEGAL  CONT 
45B=    #   
45TW    #     ENTRY POINT TO TIDY UP & REPORT BREAKIN   
46*G    #   
46BG ...XENT3   
46CG ...[   
46DG ...[       THIS IS A CORRECTION FOR B 1774 (RA10)  AND CONCERNS
46FG ...[         BREAK-IN DURING LOAD OF A PURE-PROCEDURE. 
46GG ...[       IT  IS REQUIRED FOR LOADERR TO TIDY UP SO THAT IF WE
46HG ...[        CONTINUE(CU) OUR PP LOAD LOAD DOESNOT GO WRONG 
46JG ...[       DONE    12.FEB.75          :CENT
46KG ...[   
46LG ...#SKI   G4   
46LP ...(   
46LY ...[   
46M7 ...[    CURES B2208 - IE  NO FPCACA IF NO PCA !
46MB ...[        :CENT       11TH  MARCH  75
46MK ...[   
46MS ...      LDN   0  2
46N3 ...      ANDX  0  7                   [LDSTART SETS B22 OF X7 IF NO PCA
46N= ...      BNZ   0  NPCA 
46NG ...      FPCACA   3,2                 [FIND  PCA   
46PG ...      LDN   5  AWORK1(2)
46QG ...      LDN   6  AWORK1(3)
46RG ...      MOVE  5  4                    [AWORK WDS FROM CPA TO PCA  
46SG ...      LDN   5  YCOUNT(2)
46TG ...      LDN   6  ACOMMUNE1(3) 
46WG ...      MOVE  5  5                   [NOW THE WDS USED BY LOAD IN CPA 
46XG ...[                                         BACK TO ACOMMUNE WDS IN PCA   
46YG ...[   
46^G ...[    NOW WE MUST CLEAR THE LOAD OR LOADNOW MARKERS ( BIT 9 OR 10)   
472G ...[      WHICH WAS HELD IN XLDEXA IN CPA NOW AN ACCOMMUNE? IN PCA 
473G ...[   
474G ...      LDX   0  BIT9 
475G ...      ORX   0  BIT10
476G ...      ORS   0  ACOMMUNE1 + XLDEXA - YCOUNT(3)   
4777 ...      ERS   0  ACOMMUNE1 + XLDEXA - YCOUNT(3)   
477S ...NPCA
478G ...[   
479G ...[        END  OF  CORRECTION
47=G ...[   
47?G ...)   
47#Q          LDN   6  0
47SB          LDX   0  BIT9 
48#2          ANDX  0  XLDEXA(2)
48RL          BNZ   0  XMACRO              [JUMP IF LOADNOW MACRO   
49?=          LDN   0  2                   [AS IN OTHER ENTRY PTS B22 OF X7 
49QW          ANDX  0  7                   [MEANS THERE IS NO CORE IMAGE
4==G          BNZ   0  NOCIB
4=Q6          LDN   0  #1000
4?9Q          ANDX  0  CONTEXT(2)          [J UNLESS'CORE IMAGE'CON 
4?PB          BZE   0  NOCIB
4#92    #SKIP G4
4#NL    (   
4*8=          FPCACA   3,2  
4*MW          CLEAR    3,0,,3,2 
4B7G          CALL  4  Z4302               [DEAL WITH SUD MARKED BEING LOADED   
4BM6          BRN      £
4C6Q    )   
4CLB          DOWN     PROSTART,16  
4D62    NOCIB   
4DKL    #SKIP G4
4F5=    (   
4FJW    #   
4G4G    #     IF THERE IS NO CORE IMAGE WE MAY STILL HAVE TO FREE SWAPPING  
4GJ6    #     SPACE OR REDUCE USER COUNTS   
4H3Q    #   
4HHB          CALL  4  Z4300
4J32          BRN      (GEOERR) 
4JGL          BNG   3  NSWAPSP1            [J IF NO SCB 
4K2=          LDX   4  AMAXSIZE(3)         [SWAPPING SPACE BOOKED FOR PROG  
4KFW          ANDX  4  BSP16
4K^G          FREECORE 3                   [FREE SCB
4LF6          BZE   4  NSWAPSP1 
4LYQ          FREESS   4                   [FREE SWAP SPACE 
4MDB    NSWAPSP1
4MY2    )   
4NCL    #   
4NX=    #     B23 OF X7 INDICATES THAT THERE IS NO FILE OPEN
4PBW    #     IF SET IN THE CASE OF EMBEDDED LOAD INDICATES NO BACKSPACING TO DO
4PWG    #   
4QB6          ANDN  7  1
4QTQ          BNZ   7  NCLOSE   
4R*B          LDCT  0  #40                 [IF EMBEDDED LOAD J TO DO BACKSPACING
4RT2          ANDX  0  XLDEXA(2)
4S#L          BNZ   0  NBKSP
4SS=    #SKIP G4
4T?W    (   
4TRG          LDN   0  #2000               [J IF SUBSEQ LOAD OF PP-NO FILE OPEN 
4W?6          ANDX  0  XLDEXA(2)
4WQQ          BNZ   0  NCLOSE   
4X=B    )   
4XQ2          CLOSE                        [CLOSE FILE  
4Y9L    NCLOSE  
4YP=    TESTUP  
4YQ^ ...      LDCT  0  4
4YSN ...      ANDX  0  XLDEXA(2)
4YWC ...      BZE   0  TESTUP2             [LOAD EVENT NOT REPORTED TO HLS  
4YY6 ...      HLSINFORM    TESTUP1,NOTLOAD,JOBNO(2) 
4Y^T ...      BRN      TESTUP2  
4^3J ...TESTUP1 
4^5? ...      BRN      (GEOERR) 
4^72 ...TESTUP2 
4^8W          LDX   0  MASK1(1) 
4^NG          ANDX  0  XLDEXA(2)
5286          BNZ   0  UP2LOBRKIN          [JUMP IF LOADNOW(X) MACRO
52MQ          COMBRKIN  
537B    UP2LOBRKIN  
53M2          UP                           [UP TO BREAK-IN LABEL
546L    XMACRO  
54L=    #SKIP G3
555W    (   
55KG          FPCACA   3,2  
5656          HUNT2J   3,BSTB,BSCB,,XNOSS  [JUMP IF NO SWAP SPACE   
56JQ          LDX   4  BSHEET(3)           [TOTAL NO OF SHEETS FOR PROGRAM  
574B          ADN   4  2                   [ALLOWANCE FOR THE HEADER
57J2          SETUPCORE 4,3,FILE,FRB       [SET UP THE BACKING STORE LIST BLOCK 
583L          FPCACA   2
58H=          HUNT2    2,BSTB,BSCB  
592W          STO   2  1                   [PRESERVE SCB POINTER
59GG          STO   4  A1(3)               [INSERT THE LENGTH OF THE LIST   
5=26          LDX   4  AOBJLF(2)
5=FQ          STO   4  A1+1(3)             [STORE LFN IN BS LIST BLOCK  
5=^B          LDX   5  BSHEET(2)           [NO OF SHEETS
5?F2    STOW  LDX   4  AOBJST(2)           [THE FIRST O/P BLOCK ENTRY   
5?YL          STO   4  A1+2(3)             [INSERT ENTRY IN LIST
5#D=          ADN   2  1                   [STEP X2 TO NEXT O/P BS HOME 
5#XW          ADN   3  1                   [STEP X3-POINTER TO NEXT FREE WORD   
5*CG          BCT   5  STOW                [ARE ALL THE O/P BS HOMES INSERTED?  
5*X6          FREECORE 1                   [RELEASE SCB 
5BBQ          FREEALL   
5BWB    )   
5CB2    #SKIP G4
5CTL    (   
5D*=          FPCACA   3,2  
5DSW          HUNT2    1,BSTB,BSCB,3
5F#G          LDX   0  ALOGLEN(1)   
5FS6          SBN   0  HSUD-A1  
5G?Q          LDXC  7  AMAXSIZE(1)         [SIZE OF PROGRAM 
5GRB          STOZ     AMAXSIZE(1)  
5H?2          BZE   7  XNOSS               [JUMP IF NO SWAP SPACE BOOKED
5HQL          BZE   0  NOSUD               [JUMP IF NOT ATTACHED TO A SUD   
5J==          LDX   3  HSUD(1)  
5JPW          BZE   3  NOSUD
5K9G          LDX   0  HSUD+1(1)
5KP6          ANDN  0  #7777               [NO OF SHARED PAGES  
5L8Q          SBX   7  0
5LNB          STOZ     HSUD+1(1)
5M82          FSUD     2,3,(GEOERR) 
5MML          UNSETBIT 1,HUSERS(2)         [CLEAR BIT SAYING SWAP SPACE GOT 
5N7=          FON      HLOADPPWT           [LET SOMEONE ELSE LOAD IT.   
5NLW    NOSUD   
5P6G          FREESS   7                   [FREE SWAP SPACE 
5PL6    )   
5Q5Q    XNOSS   
5QKB          FJOCA    3,2  
5R52          TBS      5,JMISC(3),0 
5RJL          BZE   0  NOPCACA             [JUMP IF PCACA BIT UNSET 
5S4=          ERS   0  JMISC(3)            [CLEAR PCACA BIT 
5SHW    NOPCACA 
5T3G          SETBIT   14,JMISC(3)         [SET LOAD MARKER 
5TH6          BRN      UP2LOBRKIN   
5W2Q    #   
5WGB    NBKSP LDX   4  YCOUNT(2)           [BACKSPACE BY NO OF RECORDS READ 
5X22          BZE   4  NCLOSE   
5XFL    NBK   BACKSPACE 
5X^=          BCT   4  NBK  
5YDW          BRN      NCLOSE   
5YYG    #SKIP G4
5^D6    (   
5^XQ    #     THIS SUBR EXAMINES THE SCB & REDUCES THE USER COUNT ASSOC WITH
62CB    #     A SUD WITH NO REPLACEMENTS RECORDED - PROGDEL DOES NOT CATER FOR  
62X2    #     THIS.IT ALSO RETURNS THE ADDRESS OF THE SCB   
63BL    #   
63W=    Z4300 LDX   3  FX2  
64*W          BRN      Z4302
64TG    Z4301 FPCACA   3,FX2
65*6    Z4302 HUNT2OPT 3,BSTB,BSCB         [LOCATE SCB  
65SQ          BNG   3  Z4306               [J TO EXIT IF NONE   
66#B          LDX   0  ALOGLEN(3)   
66S2          SBN   0  HSUD-A1             [J IF PROG NOT ATTACHED TO SUD   
67?L          BZE   0  Z4306
67R=          LDX   0  HSUD(3)  
68=W          BZE   0  Z4306
68QG          LDX   2  HSUD+1(3)           [J IF REPLACEMENTS TO SUD-THIS   
69=6          BNZ   2  Z4330               [IMPLIES SUD MARKED AS LOADED
69PQ          STOZ     HSUD(3)             [SO THAT PROSTART WILL NOT SEE SUD   
6=9B          FSUD     2,0,(GEOERR) 
6=P2          LDX   0  HUSERS(2)           [REDUCE NO OF USERS OF SUD BY 1  
6?8L          SBN   0  1
6?N=          STO   0  HUSERS(2)
6#7W          BPZ   0  Z4320               [J IF SUD LOADED 
6#MG          ANDX  0  BITS22LS 
6*76          BNZ   0  Z4310               [J IF OTHER'USERS'   
6*LQ          FREECORE 2                   [FREE SUD
6B6B    Z4306 LDX   1  FX1  
6BL2          LDX   2  FX2  
6C5L          EXIT  4  1
6CK=    Z4310 LDN   0  #4000
6D4W          SMO      FX2  
6DJG          ANDX  0  XLDEXA   
6F46          BZE   0  Z4306               [J UNLESS INITIAL LOAD OF PP 
6FHQ          FON      HLOADPPWT           [WAKE UP ANY ONE WAITING FOR IT  
6G3B          BRN      Z4306               [EXIT
6GH2    Z4320 BNZ   0  Z4306               [EXIT IF USER COUNT NON ZERO 
6H2L          BSOFF    G4SUDBIT,Z4306            [JMP IF THERE ARE SUDS TO DELET
6HG=          OFF      G4SUDBIT                  [INDICATE THAT THERE IS A SUD T
6H^W          FON      HSWAPSPWT           [WAKE UP THOSE WAITING FOR SWAP SPACE
6JFG          FON      #105                [OR FOR OBJ PROG CORE
6J^6          BRN      Z4306
6KDQ    Z4330 SBN   4  1                   [EXIT + 0 IF THERE ARE REPLACEMENTS  
6KYB          BRN      Z4306               [TO SUD  
6LD2    )   
6LXL          MENDAREA 30,K99LOADERR
6MC=    #END
^^^^ ...47264644000900000000