{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: LOADPROG865)}}
====== LOADPROG865 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ADDRECS|ADDRECS]], [[george:macro:AWAITSS|AWAITSS]], [[george:macro:BOOKSS|BOOKSS]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CHAINACT|CHAINACT]], [[george:macro:CHANGEACT|CHANGEACT]], [[george:macro:CHANGEFILE|CHANGEFILE]], [[george:macro:CHECKB|CHECKB]], [[george:macro:CHEKPRIV|CHEKPRIV]], [[george:macro:CLOSE|CLOSE]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COOR1|COOR1]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:ENRINGD|ENRINGD]], [[george:macro:FCAPCA|FCAPCA]], [[george:macro:FINDCORE|FINDCORE]], [[george:macro:FJOCA|FJOCA]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FREEPTAB|FREEPTAB]], [[george:macro:FSUD|FSUD]], [[george:macro:GETACT|GETACT]], [[george:macro:GETCOREN|GETCOREN]], [[george:macro:GETPTAB|GETPTAB]], [[george:macro:HLSINFORM|HLSINFORM]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNT2OPT|HUNT2OPT]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFORM|INFORM]], [[george:macro:JENV|JENV]], [[george:macro:KICKASWINT|KICKASWINT]], [[george:macro:LOADNOW|LOADNOW]], [[george:macro:LOCK|LOCK]], [[george:macro:LOCKC|LOCKC]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:LONGWAIT|LONGWAIT]], [[george:macro:MACCS|MACCS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:NOCORJOB|NOCORJOB]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SPRIVJUMP|SPRIVJUMP]], [[george:macro:TESTBRKIN|TESTBRKIN]], [[george:macro:UNLOCK|UNLOCK]], [[george:macro:WHATBACK|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 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 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