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
* <CL8' '> FILETYPE 00028000
* <CL8' '> FILEMODE 00029000
* <CL8'PRINTER '> 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