* MEMSET6 - MVCL MEMSET6 CSECT , * ASSUMES R13=A(SAVEAREA), R14=A(RETURN), R15=A(MEMSET), R1=A(PARAMS) * PARAMS: S=A(AREA TO SET), C=INT WITH C IN LOW BYTE, N=INT COUNT USING *,15 USE R15 AS BASE REG STM 2,5,12(13) SAVE REGS WE USE LM 2,4,0(1) LOAD PARAMS S, C, N LA 2,0(,2) CLEAR HIGH-ORDER BITS OF ADDRESS LTR 2,2 VALID MEMORY ADDRESS > 0? BNP ALLDONE NO, JUST EXIT LTR 4,4 VALID LENGTH > 0? BNP ALLDONE NO, JUST EXIT C 4,MAXLEN VALID LENGTH <= MAXLEN? BH ALLDONE NO, JUST EXIT SLL 3,24 SHIFT FILL BYTE TO HOB OF R3 + 0 LENGTH LR 5,4 MOVE DEST LENGTH INTO R5 LR 4,2 COPY ADDRESS TO R4 MVCL 4,2 MOVE C TO S FOR LENGTH N ALLDONE DS 0H RETURN TO CALLER LM 2,5,12(13) RESTORE REGS WE USED L 15,0(,1) RETURN ORIGINAL S BR 14 GO BACK TO CALLER CNOP 0,4 ALIGN ON FULLWORD BOUNDARY MAXLEN DC X'00FFFFFF' MAX LENGTH THAT CAN BE MOVED END MEMSET6 ALL DONE