MDP TITLE 'DMSMDP (CMS) VM/370 - RELEASE 6' 00001000 SPACE 2 00002000 *. 00003000 * 00004000 * 00005000 * MODULE NAME - 00006000 * 00007000 * DMSMDP 00008000 * 00009000 * FUNCTION - 00010000 * 00011000 * TO TYPE ON THE TERMINAL THE LOAD MAP ASSOCIATED WITH 00012000 * THE SPECIFIED FILE 00013000 * 00014000 * ATTRIBUTES - 00015000 * 00016000 * DISK-RESIDENT, TRANSIENT; CALLED VIA SVC 00017000 * NOTE: MODMAP MUST BE GENMOD'D WITH THE SYSTEM OPTION 00017100 * 00018000 * ENTRY POINTS - 00019000 * 00020000 * DMSMDP 00021000 * 00022000 * ENTRY CONDITIONS - 00023000 * 00024000 * GPR1 - A(PLIST) 00025000 * PLIST - CL8'MODMAP ' 00026000 * CL8' ' FILENAME 00027000 * FILETYPE 00028000 * FILEMODE 00029000 * OUTPUT DEVICE 00030000 * 'TERMINAL' (DEFAULT) 00031000 * XL8'FF....FF' FENCE 00032000 * 00033000 * EXIT CONDITIONS - 00034000 * 00035000 * NORMAL - 00036000 * GPR15 = 0 : MODMAP AVAILABLE 00037000 * 00038000 * ERROR - 00039000 * GPR15 = XX: XX=ERROR CODE 00040000 * 00041000 * ERROR CODES- 00042000 * | 24 NO FILENAME SPECIFIED 00043000 * 24 INVALID PARAMETER 00044000 * | 28 FILE NOT FOUND 00045000 * | 40 NO LOAD MAP AVAILABLE 00046000 * 00047000 * CALLS TO OTHER ROUTINES - 00048000 * 00049000 * DMSCWR - WRITE TO TERMINAL 00050000 * DMSMOD - LOADMOD REQUESTED MODULE 00051000 * DMSSTTE - VERIFY EXISTENCE OF SPECIFIED MODULE 00052000 * DMSERR - TO ISSUE ERROR MESSAGES 00053000 * 00054000 * EXTERNAL REFERENCES - 00055000 * 00056000 * NUCON - CMS NUCLEUS CONSTANTS TABLE 00057000 * 00058000 * TABLES | WORKAREAS - 00059000 * 00060000 * NONE 00061000 * 00062000 * REGISTER USAGE - 00063000 * 00064000 * GPR1 - A(PLIST) FOR SVC CALLS 00065000 * GPR12 - MODULE ADDRESSIBILITY 00066000 * GPR14 - RETURN 00067000 * GPR15 - ERROR CODE RETURN 00068000 * 00069000 * OPERATION - 00070000 * 00071000 * CALL DMSSTTE TO CHECK FOR THE SPECIFIED MODULE 00072000 * IF FOUND AND THE MODULE HAS A MAP CALL DMSMOD 00073000 * TO BRING THE MODULE AND ITS MAP INTO CORE. 00074000 * CONVERT THE LOADER TABLE ENTRY ADDRESSESS TO 00075000 * EBCDIC AND TYPE NAME AND ADDRESS TO TERMINAL 00076000 * FOR ALL ENTRIES. RETURN ON R14. 00077000 *. 00078000 EJECT 00079000 DMSMDP START 00080000 USING DMSMDP,12 00081000 USING NUCON,R0 @V305066 00081100 LR 12,15 00082000 LA 15,2 00083000 ST R14,SAVE14 SAVE R14 FOR LATER @V305066 00083100 CLI 8(1),X'FF' 00084000 BE ERR001E NO FILE NAME SPECIFIED 00085000 CLI 16(R1),X'FF' END OF PARAMETERS 00086000 BNE ERR070E NO, ERROR 00087000 MVC FILNAM(8),8(1) 00088000 OI MODFLGS,MDPCALL @VA07083 00088500 LA 1,LDLST 00099000 SVC 202 00100000 DC AL4(RET) 00101000 USING NUCON,R0 00102000 L 3,ALDRTBLS 00103000 LR 5,3 00104000 LH 4,TBENT 00105000 MH R4,=H'20' SIZE OF LOADER TABLE 00108000 SR 3,4 00109000 LA 4,20 SIZE OF LDR TBL ENTRIES 00110000 SR 5,4 00111000 LOOP MVC BUF(8),0(3) 00112000 MVC TEMP,13(R3) MOVE ENY ADDRESS OR PR DISP TO A TEMP *00113000 TO AVOID PROG CHECK AT END OF CORE 00114000 UNPK HEXBUF(7),TEMP(4) UNPACK 00115000 TR HEXBUF(6),TRTBL TRANSLATE TO EBCDIC 00116000 LA 1,PLIST 00117000 SVC 202 00118000 BXLE 3,4,LOOP 00119000 RET L R14,SAVE14 RESTORE R14 @V305066 00120000 NI MODFLGS,255-MDPCALL @VA07083 00120050 BR R14 RETURN @V305066 00120100 SPACE 3 00121000 ERR001E DMSERR TEXT='NO FILENAME SPECIFIED',LET=E,NUM=1 00122000 LA R15,24 ERROR CODE 00123000 B RET RETURN @V305066 00124000 ERR070E LA R2,16(0,R1) POINT TO EXTRA PARM 00135000 DMSERR TEXT='INVALID PARAMETER ''........''',NUM=70, X00136000 LET=E,SUB=(CHAR8A,(R2)) 00137000 LA R15,24 00138000 B RET RETURN @V305066 00139000 * 00140000 PLIST DS 0D 00141000 DC CL8'TYPLIN' 00142000 DC AL1(1) 00143000 DC AL3(BUF) 00144000 DC C'B' 00145000 DC AL3(L'BUF) 00146000 * 00147000 LDLST DC CL8'LOADMOD' 00148000 FILNAM DS CL8 00149000 DC 4X'FF' (NECESSARY FENCE) JS 00150000 * 00158000 TEMP DS CL3 TEMPORARY AREA FOR UNPACK 00159000 BUF DC C'XXXXXXXX LLLLLL' 00160000 ORG *-6 00161000 HEXBUF DS XL6 00162000 ORG 00163000 DS X SLOP BYTE USED WHEN UNPACKING 00164000 * 00165000 SAVE14 DS F SAVE FOR R14 @V305066 00165100 LTORG 00166000 TRTBL EQU *-C'0' ANSLATE TABLE TO CONVERT TO EBCDIC 00167000 DC C'0123456789ABCDEF' 00168000 * 00169000 EJECT 00170000 NUCON 00171000 EJECT 00172000 FSTB 00173000 REGEQU 00174000 END 00175000