diff --git a/parameter.asm b/parameter.asm new file mode 100644 index 0000000..ce17d10 --- /dev/null +++ b/parameter.asm @@ -0,0 +1,67 @@ +//HERC01A JOB (BAL), +// 'PARAMETER CALLING ', +// CLASS=A, +// MSGCLASS=X, +// TIME=1440, +// MSGLEVEL=(1,1) +//ASMCLG EXEC ASMFCG,PARM.ASM=(OBJ,NODECK),MAC1='SYS2.MACLIB', +// REGION.GO=428K,PARM.GO='/12345' +//ASM.SYSLIB DD +// DD DISP=SHR,DSN=SYS1.MACLIB +//ASM.SYSIN DD * + PRINT NOGEN +RDPARM CSECT + STM R14,R12,12(R13) SAVE CALLERS REGISTERS + BALR R12,0 COPY BASE REG + USING *,R12 TELL ASSEMBLER BASE REG + ST R13,SAVEAREA+4 SAVE CALLER SAP + LA R13,SAVEAREA POINT TO ORU SAVE AREA +* + L R2,0(,R1) GET PARAM FIELD ADDR + LH R3,0(,R2) GET LENGTH OF PARM FIELD + LA 2,2(,R2) ADDRS OF FIRST BYTE OF FIELD +* +* PRINT ON CONSOLE LEGNTH OF PARAMETER FIELD + CVD R3,NUMDEC FROM BINARY TO DECIMAL + UNPK UNDEC,NUMDEC+1 MAKE HUMAN READABLE + MVC WTOC+20(2),UNDEC COPY WORKLOAD INTO NEXT INST +WTOC WTO 'PARM LENGTH ' +* + LR R6,R3 COPY INTO R6 + LTR R3,R3 WAS A PARAM SPECIFIED + BZ NOPARM +* SO WE DO HAVE A PARAM + LA R4,WTOL+15 ADDR OF WTO WITH PARMS + MVC 0(R6,R4),0(R2) COPY WORKLOAD INTO NEXT INST +WTOL WTO 'PARMS: ' + B CLOSE +NOPARM DS 0H + WTO 'NO PARAMETERS GIVEN BY CALLER' +CLOSE L R13,SAVEAREA+4 RELOAD CALLERS SA + LM R14,R12,12(R13) CALLERS REGS + SR R15,R15 RESET TO RC TO ZERO + BR R14 RETURN TO MAMA +* + LTORG +SAVEAREA DS 18F +NUMDEC DS D +UNDEC DS PL4 +* EQUATES +R1 EQU 1 +R2 EQU 2 +R3 EQU 3 +R4 EQU 4 +R5 EQU 5 +R6 EQU 6 +R7 EQU 7 +R8 EQU 8 +R9 EQU 9 +R10 EQU 10 +R11 EQU 11 +R12 EQU 12 +R13 EQU 13 +R14 EQU 14 +R15 EQU 15 + END +/* +//