LH will give incorrect results for values greater than 32768.  It should be
LLH.

Robert Ngan
CSC Financial Services Group

IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU> wrote on
2015/10/26 10:30:36:

> From: "Hamilton, Kevin" <k-hamil...@ti.com>
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Date: 2015/10/26 10:32
> Subject: Re: Displaying port nr in decimal
> Sent by: IBM Mainframe Assembler List <ASSEMBLER-LIST@LISTSERV.UGA.EDU>
>
> I could be talking nonsense here, but in my code, if I'm limited for
> output space, I specify a length for both UNPK operands and let the
> insignificant bytes get truncated, because the information is
> processed from right to left in an UNPK. This coming from a systems
> programmer point of view, not a developer. I'm sure someone can
> point out several edge cases where this may be bad practice... example:
>
>    LH    R1,APQHP_ANCHR          PROCESS ANCHOR (PHDAM)
>    CVD   R1,UNPK_TMP             CONVERT FROM BINARY TO DECIMAL
>    UNPK  OUTANCH(3),UNPK_TMP(8)  UNPACK TO PRINTABLE
>    OI    OUTANCH+2,X'F0'         FIX SIGN ON LAST BYTE
>
>
>  Kevin Hamilton
>  Mainframe Systems Programmer
>
> -----Original Message-----
> From: IBM Mainframe Assembler List
[mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU
> ] On Behalf Of Jose Flores
> Sent: 2015-10-26 Monday 09:56
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Re: Displaying port nr in decimal
>
> Oops! Correction:
> The UNPK instruction ...
>
>           UNPK  OUTTRP,DWORD+5(3)
>
> -----Original Message-----
> From: IBM Mainframe Assembler List
[mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU
> ] On Behalf Of Jose Flores
> Sent: Monday, October 26, 2015 10:51 AM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Re: Displaying port nr in decimal
>
> As previously suggested, I think the following code will do it in a
> simpler way:
>
>           SLR   R11,R11
>           ICM   R11,B'0011',SMF118TRP
>           CVD   R11,DWORD
>           UNPK  OUTTRP,DWORD+5
>           OI    OUTTRP+4,X'F0'
>           .
> DWORD     DS    D
> OUTTRP    DS    CL5
>
> Jose Flores
> Sr. Mainframe Developer
> GT Software Inc.
>
> -----Original Message-----
> From: IBM Mainframe Assembler List
[mailto:ASSEMBLER-LIST@LISTSERV.UGA.EDU
> ] On Behalf Of Alan Atkinson
> Sent: Monday, October 26, 2015 10:19 AM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Re: Displaying port nr in decimal
>
> Can't you just cvd, oi the last byte with x'0f' and unpack(5).
> Or are you looking for something more sophisticated where you trim
> leading zeros and left align?
>
>
> ________________________________________
> From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU]
> on behalf of Elardus Engelbrecht [elardus.engelbre...@sita.co.za]
> Sent: Monday, October 26, 2015 10:14 AM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Displaying port nr in decimal
>
> To all,
>
> My oh my, I can't believe my Assembler skills are that rusty!
>
> But here is the challenge. With this snippet, I could show the
> Remote Port from SMF record type 118 in decimal.
>
> I'm feeling my code, while working as designed, is not that optimal,
> especially usage of R11, Double Word and too long edit field.
>
>          SLR   R11,R11                  CLEAR
>          MVC   DWORD,R11                CLEAR DWORD
>          MVC   DWORD+2(2),SMF118TRP    .MOVE PORT
>          L     R11,DWORD               .
>          CVD   R11,DWORD               .CONVERT TO DECIMAL
>          MVC   EDWORK2,EDMASK2
>          ED    EDWORK2,DWORD+2
>          MVC   OUTTRP,EDWORK2          .MOVE REMOTE PORT
> *
> DWORD    DS    D
> EDWORK2  DC    XL12'00'
> EDMASK2  DC    XL12'202020202020202020202020'
> *
> OUTTRP   DS    XL12                   .REMOTE PORT NUMBER
> *
> SMF118TRP DS   XL2                    .REMOTE PORT NUMBER
>
> This is the display I got, but as you can see, I'm wasting bytes in
> the output. I want to trim the output from 12 bytes to 5 columns
> (max port nr is 65535).
>
> REMOTE PORT
> DCDDEC4DDDE
> 95463507693
> ------------
>        1218
> 2222222FFFF2
> 000000012180
>
> Is there a more elegant way to do above? (z/OS v1.13 and v2.1)
>
> Perhaps with CVD and UNPK and OI instructions?
>
> Please and many thanks on advance.
>
> Groete / Greetings
> Elardus Engelbrecht

Reply via email to