*TITLEPTBYTE -- PUT A BYTE 00010000 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** *A AUTHOR H. LAVALLET 00020000 *A DESIGNER H. LAVALLET 00030000 *A LANGUAGE ASSEMBLER 00040000 *A SYSTEM S/370 00040100 *A WRITTEN 08-13-81 00050000 * REVISED MM/DD/YY 00060000 *A 00070000 *A 00080000 *A CALL PTBYTE (IBYTE, IBUF, IBX) 00090000 *A 00090100 *A IN/OUT ARGUMENT TYPE DESCRIPTION 00090200 *A 00090300 *A IN IBYTE I4 INTEGER HALFWORD CONTAINING BYTE TO BE 00100000 *A STORED. 00110000 *A OUT IBUF INT BUFFER INTO WHICH BYTE WILL BE STORED 00120000 *A IN IBX I4 INPUT BYTE INDEX WHICH POINTS TO THE 00130000 *A DESIRED BYTE POSITION IN IBUF. 1 IS 00140000 *A THE FIRST BYTE IN IBUF. 00150000 *A 00160000 *A 00170000 *A THIS ROUTINE PUTS A BYTE FOUND IN THE LOW ORDER 8 BITS OF AN 00180000 *A INTEGER HALFWORD INTO ANY SELECTED POSITION OF AN OUTPUT BUFFER. 00190000 *A 00200000 *A NOTE: ROUTINE IS DESIGNED TO PUT FROM A HALFWORD ONLY.... 00210000 * 00220000 * 00230000 PTBYTE CSECT 00240000 * 00250000 R1 EQU 1 00260000 R2 EQU 2 00270000 R3 EQU 3 00280000 R4 EQU 4 00290000 R10 EQU 10 00300000 R12 EQU 12 00310000 R13 EQU 13 00320000 R14 EQU 14 00330000 R15 EQU 15 00340000 * 00350000 BASE EQU R10 00360000 * 00370000 STM R14,R12,12(R13) 00380000 BALR BASE,0 00390000 USING *,BASE 00400000 * 00410000 L R2,0(R1) GET ADDRESS OF IBYTE 00420000 LA R2,3(R2) 00430000 * 00440000 L R3,8(R1) GET INDEX INTO IBUF 00450000 L R3,0(R3) 00460000 LA R4,1 00470000 SR R3,R4 DETERMINE ADDRESS OF WHERE TO 00480000 A R3,4(R1) PUT BYTE 00490000 * 00500000 MVC 0(1,R3),0(R2) NOW MOVE SELECTED BYTE 00510000 * 00520000 LM R2,R12,28(R13) 00530000 BR R14 00540000 LTORG 00550000 END 00560000