LOADMOD CSECT LOA00010 R0 EQU 0 LOA00020 R1 EQU 1 LOA00030 R2 EQU 2 LOA00040 R3 EQU 3 LOA00050 R4 EQU 4 LOA00060 R5 EQU 5 LOA00070 R6 EQU 6 LOA00080 R7 EQU 7 LOA00090 R8 EQU 8 DSIMVT BASE REGISTER LOA00100 R9 EQU 9 DSITVB BASE REGISTER LOA00110 R10 EQU 10 DSITIB BASE REGISTER LOA00120 R11 EQU 11 DSICWB BASE REGISTER LOA00130 R12 EQU 12 PROGRAM BASE REGISTER LOA00140 R13 EQU 13 SAVEAREA LOA00150 R14 EQU 14 LOA00160 R15 EQU 15 LOA00170 EJECT LOA00180 *********************************************************************** LOA00190 *********************************************************************** LOA00200 *** *** LOA00210 *** (C) Copyright IBM Corp. 1990 *** LOA00220 *** No Warranty expressed or implied. *** LOA00230 *** *** LOA00240 *** L O A D M O D *** LOA00250 *** *** LOA00260 *** *** LOA00270 *** Load the specified module into storage. *** LOA00280 *** *** LOA00290 *** Installation: *** LOA00300 *** *** LOA00310 *** 1) Assemble and linkedit code as reentrant *** LOA00320 *** *** LOA00330 *** AMODE=31, RMODE=ANY for MVS *** LOA00340 *** *** LOA00350 *** 2. Add CMDMDL statement to DSICMD *** LOA00360 *** *** LOA00370 *** LOADMOD CMDMDL MOD=LOADMOD *** LOA00380 *** *** LOA00390 *** Syntax: *** LOA00400 *** LOADMOD modulename *** LOA00410 *** *** LOA00420 *** Gary Forghetti *** LOA00430 *** IBM Corporation *** LOA00440 *** Network Mgmt Products Field Support *** LOA00450 *** Research Triangle Park, North Carolina *** LOA00460 *** *** LOA00470 *********************************************************************** LOA00480 *********************************************************************** LOA00490 EJECT LOA00500 PRINT OFF LOA00510 DSICBS DSICWB,DSIMVT,DSIPDB,DSISVL,DSISWB,DSITIB,DSITVB, XLOA00520 DSITID,DSIDSRB,DSIGFPL,DSIIFR,PRINT=NO LOA00530 PRINT ON LOA00540 USING *,R15 LOA00550 B MODENTRY LOA00560 DC C'LOADMOD &SYSDATE. AT &SYSTIME. ' LOA00570 DC C'COPYRIGHT IBM CORPORATION 1990, ' LOA00580 DC C'NO WARRANTY EXPRESSED OR IMPLIED. ' LOA00590 MODENTRY DS 0H LOA00600 GBLC &DSISYST DEFINE NAME OF OPERATING SYSTEM LOA00610 DSISYS DETERMINE NAME OF OPERATING SYS LOA00620 STM R14,R12,12(R13) SAVE REGISTERS LOA00630 LR R12,R15 SET BASE ADDRESS LOA00640 DROP R15 LOA00650 USING LOADMOD,R12 ESTABLISH PROGRAM BASE REGISTER LOA00660 LR R11,R1 GET CWB ADDR LOA00670 USING DSICWB,R11 ESTABLISH BASE FOR DSICWB LOA00680 LA R2,CWBSAVEA GET SAVEAREA ADDR LOA00690 ST R2,8(R13) STORE THIS SA IN CALLERS LOA00700 ST R13,4(R2) STORE CALLERS SA IN THIS SA LOA00710 LR R13,R2 R13 NOW HAS THIS SAVEAREA ADDR LOA00720 L R10,CWBTIB GET DSITIB ADDRESS LOA00730 USING DSITIB,R10 ESTABLISH BASE FOR DSITBI LOA00740 L R9,TIBTVB GET DSITVB ADDRESS LOA00750 USING DSITVB,R9 ESTABLISH BASE FOR DSITVB LOA00760 L R8,TVBMVT GET DSIMVT ADDRESS LOA00770 USING DSIMVT,R8 ESTABLISH BASE FOR DSIMVT LOA00780 EJECT LOA00790 XC CWBADATD,CWBADATD CLEAR WORKAREA LOA00800 DSIDATIM AREA=DATETIME,FORMAT=BINARY GET DATE AND TIME LOA00810 BAL R14,GETPARM PARSE AND SYNTAX CHECK PARMS LOA00820 OC RETCODE,RETCODE ANY ERRORS? LOA00830 BNZ RETURN YES, EXIT LOA00840 DSILOD EPLOC=MODNAME LOAD THE MODULE LOA00850 LTR R15,R15 OKAY? LOA00860 BNZ NOTLOADD NO, GO DISPLAY ERROR MESSAGE LOA00870 LA R1,L'MESSAGE1 GET LENGTH OF MESSAGE LOA00880 MVC MESSAGE(L'MESSAGE1),MESSAGE1 MOVE MESSAGE TO BUFFER LOA00890 MVC MESSAGE+15(8),MODNAME MOVE MODULE NAME TO MESSAGE LOA00900 BAL R14,BLDMSG GO BUILD AND DISPLAY THE MESSAGE LOA00910 B RETURN EXIT LOA00920 NOTLOADD EQU * LOA00930 LA R1,L'MESSAGE2 GET LENGTH OF MESSAGE LOA00940 MVC MESSAGE(L'MESSAGE2),MESSAGE2 MOVE MESSAGE TO BUFFER LOA00950 MVC MESSAGE+15(8),MODNAME MOVE MODULE NAME TO MESSAGE LOA00960 BAL R14,BLDMSG GO BUILD AND DISPLAY THE MESSAGE LOA00970 RETURN EQU * LOA00980 L R15,RETCODE GET ERROR CODE LOA00990 L R13,4(R13) RESTORE CALLERS SAVEAREA ADDRESS LOA01000 RETURN (14,12),RC=(15) RETURN LOA01010 EJECT LOA01020 GETPARM EQU * LOA01030 ST R14,RGETPARM SAVE RETURN ADDRESS LOA01040 L R4,CWBBUF GET COMMAND BUFFER ADDRESS LOA01050 USING DSIPDB,R3 R3 IS BASE FOR PDB LOA01060 L R3,CWBPDB GET PDB ADDRESS LOA01070 USING PDBENTRY,R2 R2 IS BASE FOR PDB ENTRY LOA01080 LA R2,PDBTABLE GET ADDRESS OF 1ST PDB ENTRY LOA01090 AH R4,PDBDISP GET ADDRESS OF 1ST PARM LOA01100 SR R5,R5 CLEAR LENGTH REGISTER LOA01110 IC R5,PDBLENG GET LENGTH OF 1ST PARM LOA01120 BCTR R5,0 MAKE LENGTH EXECUTEABLE FOR MOVE LOA01130 MVC CMDNAME,=CL8' ' CLEAR COMMAND NAME LOA01140 EX R5,MOVECMD MOVE THE COMMAND TO WORKAREA LOA01150 CLC PDBNOENT,=H'2' AT LEAST 2 ENTRIES? LOA01160 BL GETPARM1 NO, ERROR LOA01170 L R4,CWBBUF GET COMMAND BUFFER ADDRESS LOA01180 LA R0,PDBENTND-PDBENTRY GET LENGTH OF PDBENTRY LOA01190 AR R2,R0 POINT TO 2ND ENTRY LOA01200 SR R5,R5 CLEAR LENGTH REGISTER LOA01210 IC R5,PDBLENG GET LENGTH OF 2ND PARM LOA01220 AH R4,PDBDISP GET ADDRESS OF 2ND PARM LOA01230 LTR R5,R5 IS THERE A RECOGNIZABLE PARM LOA01240 BZ GETPARM1 NO, ERROR LOA01250 CH R5,=H'8' PARM GREATER THAN 8? LOA01260 BH GETPARM2 YES, ERROR LOA01270 MVC MODNAME,=CL8' ' CLEAR MODNAME LOA01280 BCTR R5,0 MAKE LENGTH EXECUTEABLE FOR MOVE LOA01290 EX R5,MOVEPARM MOVE THE PARM TO THE MODULE NAME LOA01300 B GETPARMX EXIT LOA01310 GETPARM1 EQU * LOA01320 BAL R14,DSI651I DISPLAY MESSAGE DSI651I LOA01330 B GETPARMX EXIT LOA01340 GETPARM2 EQU * LOA01350 MVI ERRORTXT,X'40' CLEAR ERROR TEXT FIELD LOA01360 MVC ERRORTXT+1(L'ERRORTXT-1),ERRORTXT LOA01370 CH R5,=AL2(ERRORTXL) MORE THAN SIZE OF ERRORTXT? LOA01380 BNH GETPARM3 NO, CONTINUE LOA01390 LA R5,L'ERRORTXT MAKE IT SIZE OF ERRORTXT LOA01400 GETPARM3 EQU * LOA01410 BCTR R5,0 MAKE LENGTH EXECUTEABLE LOA01420 EX R5,MOVETEXT GET TEXT IN ERROR LOA01430 BAL R14,DSI646I ISSUE MESSAGE DSI646I LOA01440 GETPARMX EQU * LOA01450 L R14,RGETPARM RESTORE RETURN ADDRESS LOA01460 BR R14 RETURN LOA01470 SPACE LOA01480 MOVECMD MVC CMDNAME(0),0(R4) GET COMMAND NAME LOA01490 MOVEPARM MVC MODNAME(0),0(R4) GET MODULE NAME LOA01500 MOVETEXT MVC ERRORTXT(0),0(R4) GET TEXT IN ERROR LOA01510 DROP R2,R3 LOA01520 EJECT LOA01530 CHEKDELM EQU * LOA01540 CLI 0(R2),X'40' IS BYTE A BLANK? LOA01550 BER R14 YES, EXIT WITH COND CODE LOA01560 CLI 0(R2),C',' IS BYTE A COMMA? LOA01570 BR R14 EXIT UNCONDITIONAL LOA01580 EJECT LOA01590 * LOA01600 * DSI646I KEYWORD '&1' IS INVALID LOA01610 * LOA01620 DSI646I EQU * LOA01630 ST R14,RMESSAGE SAVE RETURN ADDRESS LOA01640 SR R3,R3 CLEAR LENGTH REGISTER LOA01650 LA R2,ERRORTXT R2 HAS ADDRESS OF ERRORTXT LOA01660 LA R5,L'ERRORTXT GET SIZE OF ERRORTXT LOA01670 DSI646I1 EQU * LOA01680 BAL R14,CHEKDELM IS BYTE A DELIMITER? LOA01690 BE DSI646I2 YES, SEARCH IS DONE LOA01700 LA R3,1(R3) UPDATE LENGTH OF TEXT LOA01710 LA R2,1(R2) INCREMENT TO NEXT CHARACTER LOA01720 BCT R5,DSI646I1 CHECK ALL 15 BYTES LOA01730 DSI646I2 EQU * LOA01740 * LOA01750 USING BUFHDR,R2 R2 IS BASE FOR BUFHDR LOA01760 LA R2,MSGBUFF GET ADDRESS OF MESSAGE BUFFER LOA01770 XC MSGBUFF,MSGBUFF CLEAR MESSAGE BUFFER LOA01780 LA R1,BUFHDRND-BUFHDR GET OFFSET TO MESSAGE TEXT LOA01790 STH R1,HDRTDISP PUT OFFSET IN BUFHDR LOA01800 LA R1,L'MESSAGE(R1) GET LENGTH OF BUFFER LOA01810 STH R1,HDRBLENG STORE IN BUFFER LOA01820 DSIMBS SWB=CWBSWB,MID=646,BFR=(R2),MSGTBL=MVTMCC, *LOA01830 P1=(ERRORTXT,(R3)) LOA01840 MVI HDRMTYPE,HDRTYPEN INDICATE ITS A NETVIEW MESSAGE LOA01850 BAL R14,WRITMSG DISPLAY THE MESSAGE LOA01860 DROP R2 DROP R2 AS BASE REGISTER LOA01870 * LOA01880 MVC RETCODE,=F'8' SET RETURN CODE LOA01890 DSI646IX EQU * LOA01900 L R14,RMESSAGE RESTORE RETURN ADDRESS LOA01910 BR R14 RETURN LOA01920 MOVEERRT MVC 0(0,R14),0(R2) GET THE PARM FROM BUFFER LOA01930 EJECT LOA01940 * LOA01950 * DSI651I KEYWORD MISSING - ONE OF THE FOLLOWING REQUIRED: '&1' LOA01960 * LOA01970 DSI651I EQU * LOA01980 ST R14,RMESSAGE SAVE RETURN ADDRESS LOA01990 * LOA02000 USING BUFHDR,R2 R2 IS BASE FOR BUFHDR LOA02010 LA R2,MSGBUFF GET ADDRESS OF MESSAGE BUFFER LOA02020 XC MSGBUFF,MSGBUFF CLEAR MESSAGE BUFFER LOA02030 LA R1,BUFHDRND-BUFHDR GET OFFSET TO MESSAGE TEXT LOA02040 STH R1,HDRTDISP PUT OFFSET IN BUFHDR LOA02050 LA R1,L'MESSAGE(R1) GET LENGTH OF BUFFER LOA02060 STH R1,HDRBLENG STORE IN BUFFER LOA02070 DSIMBS SWB=CWBSWB,MID=651,BFR=(R2),MSGTBL=MVTMCC, *LOA02080 P1=(MODPARM,8) LOA02090 MVI HDRMTYPE,HDRTYPEN INDICATE ITS A NETVIEW MESSAGE LOA02100 BAL R14,WRITMSG DISPLAY THE MESSAGE LOA02110 DROP R2 DROP R2 AS BASE REGISTER LOA02120 * LOA02130 MVC RETCODE,=F'8' SET RETURN CODE LOA02140 DSI651IX EQU * LOA02150 L R14,RMESSAGE RESTORE RETURN ADDRESS LOA02160 BR R14 RETURN LOA02170 EJECT LOA02180 BLDMSG EQU * LOA02190 ST R14,RBLDMSG SAVE RETURN ADDRESS LOA02200 LA R2,MSGBUFF R2 HAS ADDRESS OF THE BUFFER LOA02210 USING BUFHDR,R2 R2 IS BASE FOR THE BUFFER LOA02220 STH R1,HDRMLENG STORE LENGTH IN BUFFER HEADER LOA02230 LA R1,HDRTEXT-BUFHDR GET OFFSET TO MESSAGE TEXT LOA02240 STH R1,HDRTDISP STORE IT IN BUFFER HEADER LOA02250 AH R1,HDRMLENG CALCULATE BUFFER LENGTH LOA02260 STH R1,HDRBLENG PUT LENGTH IN BUFFER LOA02270 MVC HDRTSTMP,TIME PUT TIME IN BUFFER LOA02280 MVC HDRDOMID,MVTCURAN INITIALIZE DOMAIN ID LOA02290 MVI HDRMTYPE,HDRTYPEU INDICATE IT'S A USER MESSAGE LOA02300 BAL R14,WRITMSG DISPLAY THE MESSAGE LOA02310 BLDMSGX EQU * LOA02320 L R14,RBLDMSG RESTORE RETURN ADDRESS LOA02330 BR R14 RETURN LOA02340 DROP R2 LOA02350 EJECT LOA02360 WRITMSG EQU * LOA02370 ST R14,RWRITMSG SAVE RETURN ADDRESS LOA02380 DSIPSS SWB=CWBSWB,BFR=(R2),TYPE=OUTPUT LOA02390 WRITMSGX EQU * LOA02400 L R14,RWRITMSG RESTORE RETURN ADDRESS LOA02410 BR R14 RETURN LOA02420 EJECT LOA02430 LTORG LOA02440 MODPARM DC CL8'MODNAME' LOA02450 MESSAGE1 DC C'USR100I MODULE XXXXXXXX HAS BEEN LOADED' LOA02460 MESSAGE2 DC C'USR101I MODULE XXXXXXXX NOT FOUND' LOA02470 EJECT LOA02480 DSICWB DSECT LOA02490 ORG CWBADATD LOA02500 DBLEWORD DS D DOUBLE WORD WORK AREA LOA02510 DATETIME DS 0D DATE/TIME STAMP LOA02520 DATE DS F DATE IN BINARY LOA02530 TIME DS F TIME IN BINARY LOA02540 RETCODE DS F RETURN CODE LOA02550 RGETPARM DS F BRANCH RETURN ADDRESS LOA02560 RMESSAGE DS F BRANCH RETURN ADDRESS LOA02570 RBLDMSG DS F BRANCH RETURN ADDRESS LOA02580 RWRITMSG DS F BRANCH RETURN ADDRESS LOA02590 CMDNAME DS CL8 COMMAND NAME LOA02600 MODNAME DS CL8 MODULE NAME LOA02610 TITLE DS X TYPE OF LINE DISPLAYED LOA02620 ERRORTXT DS XL10 LOA02630 ERRORTXL EQU *-ERRORTXT LOA02640 * LOA02650 DS 0F LOA02660 MSGBUFF DS 0XL(L'MESSAGE+(BUFHDRND-BUFHDR)) LOA02670 DS XL(BUFHDRND-BUFHDR) LOA02680 MESSAGE DS CL80 LOA02690 DS XL(256-(*-CWBADATD)) LOA02700 END LOADMOD LOA02710