*TITLEUSLOAD -- ROUTINE TO LINK TO THE LOADER TO EXECUTE A PROGRAM 00000100 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** *A AUTHOR R. MCMILLAN 00000200 *A DESIGNER R. MCMILLAN 00000300 *A LANGUAGE IBM ASSEMBLER 00000400 *A WRITTEN 5-06-87 COPIED FROM CPLINK 00000500 * REVISED 06-30-87 REM. ADD INPUT PARAMATER FOR ENTRY PT. & OUTPUT 00000600 * AN ERROR CODE. 00000700 * REVISED 08-28-87 REM. ADD INPUT PARAMATER FOR DDNAME FOR LOAD 00000800 * MAP LISTING. 00000900 *A 00001000 *A 00001100 *A CALL USLOAD (SIZE, EXTEND, ENTRYP, MAPDDN, ERR) 00001200 *A 00001300 *A IN/OUT ARGUMENT TYPE DESCRIPTION 00001400 *A 00001500 *A IN SIZE C4 SIZE USED FOR THE LOADER. 00001600 *A IN EXTEND I4 EXTENDED ADDRESSING FLAG. 00001700 *A 0 - 24 BIT ADDRESSING 00001800 *A 1 - 31 BIT ADDRESSING 00001900 *A IN ENTRYP C8 CHARACTER NAME OF ENTRY POINT 00002000 *A IN MAPDDN C8 CHARACTER NAME OF DD STATEMENT FOR LOAD 00002100 *A MAP LISTING; LEFT JUSTIFIED AND SPACE 00002200 *A FILLED. 00002300 *A OUT ERR I4 THE RETURN CODE FROM THE LINK MACRO. 00002400 *A 0 = OK, NOT ZERO = ERROR. 00002500 *A 00002600 *A 00002700 *A THIS ROUTINE PERFORMS THE LINK TO THE LOADER TO EXECUTE THE SPARC 00002800 *A PREPARATION STEP. 00002900 *A 00003000 *A THE SIZE FOR THE LOADER MAY BE PASSED AS THE PARAMETER LIST. 00003100 *A IF THE SIZE SPECIFIED IS A BINARY 0, THE SIZE WILL DEFAULT TO 00003200 *A 1000000. THE SIZE IN THE PARAMETER LIST IS SPECIFIED IN K AND 00003300 *A CANNOT BE GREATER THAN FOUR CHARACTERS (9999), IE. LOADER SIZE OF 00003400 *A 9999000. 00003500 *A 00003600 *A ENTRYP DEFAULTS TO "CPPREP" IF IT IS BLANK. 00003700 *A 00003800 *A MAPDDN DEFAULTS TO "SYSPRINT" IF IT IS BLANK. 00003900 EJECT 00004000 * 00004100 * 00004200 * LOCAL OR INTERNAL VARIABLES AND CONSTANTS. 00004300 * 00004400 * DDNL = BEGINNING OF LOADER DDNAME LIST 00004500 * ENDLL1 = END OF LOADER PARAMETER LIST 00004600 * ENDLL2 = END OF LOADER DDNAME LIST 00004700 * LOADLST1 = LENGTH OF LOADER PARAMETER LIST I2 00004800 * LOADLST2 = LENGTH OF LOADER DDNAME LIST I2 00004900 * OPTL = BEGINNING OF LOADER PARAMETER LIST 00005000 * 00005100 * 00005200 * METHOD OF CALCULATION. 00005300 * 00005400 * THIS PROGRAM ALLOWS THE USE OF DATA DEFINITION NAMES OTHER THAN 00005500 * THE STANDARD FOR THE LOADER. 00005600 * 00005700 * 00005800 * 00005900 EJECT 00006000 USLOAD STDSAV 00006100 * 00006200 LM 2,6,0(1) GET ADDRESSES OF PARAMETERS 00006300 L 9,0(,2) CHECK FOR LOADER SIZE 00006400 LTR 9,9 00006500 BZ EXTEND NO PARAMETER LIST 00006600 MVC SIZE(4),0(2) 00006700 * 00006800 EXTEND MVC MODE+6(3),=C'24,' INITIALIZE FOR 24 BIT ADDRESSING 00006900 L 3,0(3) CHECK FOR 31 BIT ADDRESSING 00007000 LTR 3,3 00007100 BZ ENTRYP IF NO, GO ON 00007200 MVC MODE+6(3),=C'ANY' 00007300 * 00007400 ENTRYP MVC EP+3(8),=C'CPPREP,,' SET ENTRY POINT DEFAULT 00007500 CLI 0(4),C' ' CHECK FOR AN ENTRY POINT 00007600 BE LOAD 00007700 MVC EP+3(8),0(4) MOVE ENTRY POINT INTO PARM LIST 00007800 * REPLACE FOLLOWING BLANKS WITH "," 00007900 LA 9,7 00008000 LA 10,EP+10 00008100 CHK CLI 0(10),C' ' 00008200 BNE DDN 00008300 MVI 0(10),C',' 00008400 BCTR 10,0 MOVE TO NEXT CHARACTER 00008500 BCT 9,CHK 00008600 * 00008700 DDN MVC MAPDD,=C'SYSPRINT' SET MAP DDNAME DEFAULT 00008800 CLI 0(5),C' ' CHECK FOR A MAP DDNAME 00008900 BE LOAD 00009000 MVC MAPDD,0(5) MOVE ENTRY POINT INTO PARM LIST 00009100 * 00009200 * LOAD AND EXECUTE PROGRAM 00009300 * 00009400 LOAD LINK EP=IEWLDRGO,PARAM=(LOADLST1,LOADLST2),VL=1 00009500 * 00009600 * LOADED MODULE NOW EXECUTING 00009700 * 00009800 ST 15,0(6) STORE RETURN CODE 00009900 * 00010000 * EXECUTION FINISHED - CLEAN UP AND RETURN 00010100 * 00010200 STDRET 15 00010300 * 00010400 * PROGRAM CONSTANTS 00010500 * 00010600 * 00010700 * LOADER PARAMETER OPTION LIST 00010800 * 00010900 CNOP 2,4 00011000 LOADLST1 DC AL2(ENDLL1-OPTL) 00011100 OPTL DC C'MAP,RES,CALL,LET,PRINT,' 00011200 EP DC C'EP=CPPREP,,,' 00011300 MODE DC C'AMODE=24,,RMODE=24,SIZE=' EXT 00011400 SIZE DC C'1000000' EXT 00011500 ENDLL1 EQU * 00011600 * 00011700 * LOADER PARAMETER DDNAME LIST 00011800 * 00011900 CNOP 2,4 00012000 LOADLST2 DC AL2(ENDLL2-DDNL) 00012100 DDNL DC CL8'SYSLIN' SYSLIN 00012200 DC XL8'00' UNUSED 00012300 DC XL8'00' UNUSED 00012400 DC CL8'SYSLIB' SYSLIB 00012500 DC XL8'00' UNUSED 00012600 MAPDD DC CL8'SYSPRINT' SYSLOUT 00012700 ENDLL2 EQU * 00012800 * 00012900 * LITERAL POOL 00013000 * 00013100 LTORG 00013200 END 00013300