PRINT GEN TITLE 'ALC$STCK - STCK/STCKE UTILITIES' * REGISTER USAGE * R2 = ADDR OF TOD FORMAT IN * R3 = ADDR OF TOD DISPLAY FORMAT OUT * R12 = BASE REGISTER 1 R0 EQU 0 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 R00 EQU 0 R01 EQU 1 R02 EQU 2 R03 EQU 3 R04 EQU 4 R05 EQU 5 R06 EQU 6 R07 EQU 7 R08 EQU 8 R09 EQU 9 EJECT ALC$STCK CSECT AMODE 31 RMODE ANY USING *,R12 R1=BASE REGISTERS STM R14,R12,12(R13) SAVE REGISTERS LR R12,R15 ADDRESSIBILITY LR R1,R13 SAVE SAVE AREA POINTER LA R13,SAVEAREA POINT TO MY SAVEAREA ST R13,8(0,R1) SET FORW CHAIN IN CALLERS SAREA ST R1,4(0,R13) SET BACK CHAIN IN MY SAVEAREA L R1,24(0,R1) REACQUIRE R1 AS IT CAME HERE L R2,0(R1) POINT TO PARMS USING STCKPARM,R2 B START DS 0F DC C'*' PGMID DC CL8'ALC$STCK ' DC C'*' COMPDATE DC CL8'&SYSDATE' COMPTIME DC CL8'&SYSTIME' SAVEAREA DC 18F'0' START EQU * CLI STCKFUNC,C'G' GET A TIMESTAMP? BNE CNVTIME NO---CONTINUE STCKE STCKIN B $GOBACK GOBACK TO MOMMA CNVTIME EQU * CLI STCKFUNC,C'C' CONVERT NORMAL TIMESTAMP BNE CNVTIME1 NO---CONTINUE STCKCONV STCKVAL=STCKIN, + CONVVAL=STCKOUT, + TIMETYPE=DEC, + DATETYPE=YYYYMMDD B $GOBACK GOBACK TO MOMMA CNVTIME1 EQU * CONVERT EXTENDED TIMESTAMP STCKCONV STCKEVAL=STCKIN, + CONVVAL=STCKOUT, + TIMETYPE=DEC, + DATETYPE=YYYYMMDD $GOBACK EQU * L R13,4(0,R13) POINT BACK TO CALLERS SAVEAREA LM R14,R12,12(R13) RESTORE REGISTERS BR R14 GOBACK TO MOMMA LTORG EJECT DS 0D DSECT STCKPARM DS 0CL33 STCKFUNC DS CL1 STCKIN DS CL16 STCKOUT DS CL16 EJECT END