TITLE 'INTERNAL MACROS' MACRO DOCPGM LCLC &LABEL .********************************************************************** .**** ***** .**** THIS MACRO DOCUMENTS THE CSECT. ***** .**** ***** .**** CSECT NAME ***** .**** ASSEMBLER NAME AND VERSION ***** .**** TIME AND DATE ***** .**** OPERATING SYSTEM LEVEL ***** .**** ***** .********************************************************************** &SKIPIT SETC '$$$$'.'&SYSNDX' USING &SYSECT,R15 TEMPORARY BASE REGISTER B &SKIPIT GO AROUND EYE CATCHER DC C'&SYSSTYP &SYSECT WAS ' DC C'ASSEMBLED BY &SYSASM VERSION &SYSVER. ' DC C'AT &SYSTIME ON &SYSDATC. ' DC C'UNDER &SYSTEM_ID' LOADPT DC A(IDNTSYSR) SAVEX DS 18F &SKIPIT DS 0H MEND IDNTSYSR TITLE 'PROGRAM ENTRY STUFF' IDNTSYSR CSECT IDNTSYSR RMODE 24 (ANY,24) IDNTSYSR AMODE 24 (ANY,24,31) YREGS SPLEVEL SET DOCPGM BAKR R14,0 SAVE REGS ON LINKAGE STACK LR R5,R1 SAVE ADDRESS OF PASSED PARM L R12,LOADPT LOAD BASE REGISTER DROP R15 DROP TEMPORARY BASE REGISTER USING IDNTSYSR,R12 TELL ASSEMBLER ABOUT BASE REGISTER LA R13,SAVEX POINT R13 TO SAVE AREA MVC 4(4,R13),=C'F1SA' SET ACRONYM IN SAVE AREA TITLE 'PROCESS PASSED PARM - SYSRES LEVEL CODE' L R5,0(,R5) POINT TO PARM LIST LH R4,0(,R5) R4 HAS PARM LENGTH LA R5,2(,R5) POINT TO PARM CH R4,=H'4' LENGTH BETTER BE 4 BE PARMOK YES. PROCESS PARM LA R15,8 SET RETURN CODE PR , RETURN TO CALLER PARMOK EQU * MVN CARD3+35(1),0(R5) MOVE FIRST NIBBLE TO FIELD MVN CARD3+37(1),1(R5) MOVE SECOND NIBBLE TO FIELD MVN CARD3+39(1),2(R5) MOVE THIRD NIBBLE TO FIELD MVN CARD3+41(1),3(R5) MOVE FOURTH NIBBLE TO FIELD TITLE 'CREATE AMASPZAP CARD WITH CURRENT DATE' STCK SYSTEMCLOCK SAVE THE SYSTEM CLOCK IN STORAGE STCKCONV STCKVAL=SYSTEMCLOCK,CONVVAL=CONVERTEDVALUE, X TIMETYPE=DEC,DATETYPE=YYYYMMDD SR R5,R5 SET R5 TO ZERO * MVN CARD3+13(1),DATE MOVE RIGHT NIBBLE INTO DATE FIELD IC R5,DATE GET FIRST BYTE INTO REGISTER SRL R5,4 MOVE LEFT NIBBLE INTO RIGHT NIBBLE STC R5,DATE MOVE IT BACK INTO STORAGE MVN CARD3+11(1),DATE MOVE LEFT NIBBLE INTO DATE FIELD * MVN CARD3+17(1),DATE+1 MOVE RIGHT NIBBLE INTO DATE FIELD IC R5,DATE+1 GET FIRST BYTE INTO REGISTER SRL R5,4 MOVE LEFT NIBBLE INTO RIGHT NIBBLE STC R5,DATE+1 MOVE IT BACK INTO STORAGE MVN CARD3+15(1),DATE+1 MOVE LEFT NIBBLE INTO DATE FIELD * MVN CARD3+23(1),DATE+2 MOVE RIGHT NIBBLE INTO DATE FIELD IC R5,DATE+2 GET FIRST BYTE INTO REGISTER SRL R5,4 MOVE LEFT NIBBLE INTO RIGHT NIBBLE STC R5,DATE+2 MOVE IT BACK INTO STORAGE MVN CARD3+21(1),DATE+2 MOVE LEFT NIBBLE INTO DATE FIELD * MVN CARD3+29(1),DATE+3 MOVE RIGHT NIBBLE INTO DATE FIELD IC R5,DATE+3 GET FIRST BYTE INTO REGISTER SRL R5,4 MOVE LEFT NIBBLE INTO RIGHT NIBBLE STC R5,DATE+3 MOVE IT BACK INTO STORAGE MVN CARD3+27(1),DATE+3 MOVE LEFT NIBBLE INTO DATE FIELD TITLE 'CREATE AMASPZAP SYSIN FILE' OPEN (SYSIN,OUTPUT) OPEN FILE PUT SYSIN,NAMECARD WRITE NAME CSECT CARD PUT SYSIN,CARD1 WRITE IDRDATA CARD PUT SYSIN,CARD2 WRITE VERIFY CARD PUT SYSIN,CARD3 WRITE REPLACE CARD CLOSE (SYSIN) CLOSE FILE TITLE 'LINK TO AMASPZAP AND EXIT PROGRAM' LINK EP=AMASPZAP,PARAM=(OPLIST),VL=1 SR R15,R15 SET RETURN CODE PR , RETURN TO CALLER TITLE 'LITERALS AND CONSTANTS' SYSTEMCLOCK DS D CONVERTEDVALUE DS 4F ORG CONVERTEDVALUE TOD1 DS F PACKED TIME FIELD 1 TOD2 DS F PACKED TIME FIELD 2 DATE DS F PACKED DATE DS F NOT USED ORG , CAN'T HURT OPLIST DC H'0' NO PARMLIST FOR SUPERZAP NAMECARD DC CL80' NAME IEANUC01 IEAVCVT' CARD1 DC CL80' IDRDATA BUILDRES' CARD2 DC CL80' VER 0028 40404040404040404040404040404040' CARD3 DC CL80' REP 0028 F0F0F0F061F0F061F0F060D3F0F0F0F0' * Y Y Y Y / M M / D D - L X X X X SYSIN DCB DDNAME=SYSIN,MACRF=PM,LRECL=80,RECFM=FB,DSORG=PS END IDNTSYSR