Re: Convert Zoned to Packed
On Fri, 7 Jan 2022 15:29:55 -0500, Dave Clark wrote: >There is no VPKZ instruction in my manual. Something new? New on the z14, I believe. You can get the Principles of Operation that corresponds to the z15 at https://publibfp.dhe.ibm.com/epubs/pdf/a227832c.pdf And the reference summary at https://www.ibm.com/support/pages/system/files/2020-07/SA22-7871-10.pdf -- Tom Marchant
Re: Convert Zoned to Packed
On 2022-01-08 07:25, Steve Smith wrote: Well, I'm not familiar with the VPKZ, and if not available, or traditionally, you must code two PACKs for pieces of zoned fields longer than 16 bytes. If you use two PACK instructions, it helps to PACK the upper bytes first. Same applies conversely for UNPK, although ED can do it (and much more) in one pass. The maximum lengths for SS instructions with two lengths is 16. So, ITHM 16 zoned digits.
Re: Convert Zoned to Packed
Also remember that COBOL, like any compiled or interpreted language, can define fields and operations on those fields that require an assembler subroutine to implement. I also understand that more recent versions of the IBM z/OS COBOL compiler use decimal floating point to implement decimal arithmetic. I don't know about VSE. On 2022-01-07 2:48 p.m., Dave Clark wrote: "IBM Mainframe Assembler List" wrote on 01/07/2022 02:34:49 PM: If it is possible, how do you code in assembler to convert more than 16 digits of zoned data into a packed field? I'm presuming, of course, that a packed field can be longer than 8 bytes in assembler. VSE COBOL can handle 18 digits, correct? So, that would be a 10-byte packed field. But it seems the assembler PACK instruction can only handle up to 16 digits of zoned data. Am I missing something? Hmmm, I guess I found my answer -- at least partially. I happened to read about the next instruction in the manual just out of curiosity (yeah, I'm a nerd who likes to read technical manuals). So, apparently, I can pack up to 31 digits into a 16-byte packed field using the PKA instruction. However, it looks like I have to handle the sign separately. Sincerely, Dave Clark Gary Weinhold Senior Application Architect DATAKINETICS | Data Performance & Optimization Phone:+1.613.523.5500 x216 Email: weinh...@dkl.com Visit us online at www.DKL.com E-mail Notification: The information contained in this email and any attachments is confidential and may be subject to copyright or other intellectual property protection. If you are not the intended recipient, you are not authorized to use or disclose this information, and we request that you notify us by reply mail or telephone and delete the original message from your mail system.
Re: Convert Zoned to Packed
Ok but always worked fine in previous versions Obter o Outlook para Android<https://aka.ms/AAb9ysg> From: IBM Mainframe Assembler List on behalf of Seymour J Metz Sent: Friday, January 7, 2022 5:45:45 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Convert Zoned to Packed Sorry, senior moment. I keep forgetting that the encoding of the length in older nstruction is offset by one; maybe I've OD'd on CLCL and MVCL.] VKPZ is part of the vector-packed-decimal facility; it's in SA22-7832-12, and I don't recall when it was first available. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf of Dave Clark [dlcl...@winsupplyinc.com] Sent: Friday, January 7, 2022 3:29 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Convert Zoned to Packed "IBM Mainframe Assembler List" wrote on 01/07/2022 03:21:30 PM: > ITYM more than 15 digits. No, the manual specifically refers to "the 16-byte second-operand limit of PACK." Since there is no separate sign in this case, those 16 bytes are 16 digits with possible sign overpunch on the last digit. > The easiest way is with Vector Pack Zoned (VPKZ). There is no VPKZ instruction in my manual. Something new? Sincerely, Dave Clark -- Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Convert Zoned to Packed
Sorry, senior moment. I keep forgetting that the encoding of the length in older nstruction is offset by one; maybe I've OD'd on CLCL and MVCL.] VKPZ is part of the vector-packed-decimal facility; it's in SA22-7832-12, and I don't recall when it was first available. -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf of Dave Clark [dlcl...@winsupplyinc.com] Sent: Friday, January 7, 2022 3:29 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Re: Convert Zoned to Packed "IBM Mainframe Assembler List" wrote on 01/07/2022 03:21:30 PM: > ITYM more than 15 digits. No, the manual specifically refers to "the 16-byte second-operand limit of PACK." Since there is no separate sign in this case, those 16 bytes are 16 digits with possible sign overpunch on the last digit. > The easiest way is with Vector Pack Zoned (VPKZ). There is no VPKZ instruction in my manual. Something new? Sincerely, Dave Clark -- Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Convert Zoned to Packed
"IBM Mainframe Assembler List" wrote on 01/07/2022 03:21:30 PM: > ITYM more than 15 digits. No, the manual specifically refers to "the 16-byte second-operand limit of PACK." Since there is no separate sign in this case, those 16 bytes are 16 digits with possible sign overpunch on the last digit. > The easiest way is with Vector Pack Zoned (VPKZ). There is no VPKZ instruction in my manual. Something new? Sincerely, Dave Clark -- Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Convert Zoned to Packed
Well, I'm not familiar with the VPKZ, and if not available, or traditionally, you must code two PACKs for pieces of zoned fields longer than 16 bytes. Same applies conversely for UNPK, although ED can do it (and much more) in one pass. The maximum lengths for SS instructions with two lengths is 16. So, ITHM 16 zoned digits. sas On Fri, Jan 7, 2022 at 3:21 PM Seymour J Metz wrote: > ITYM more than 15 digits. The easiest way is with Vector Pack Zoned (VPKZ). > >
Re: Convert Zoned to Packed
ITYM more than 15 digits. The easiest way is with Vector Pack Zoned (VPKZ). -- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 From: IBM Mainframe Assembler List [ASSEMBLER-LIST@LISTSERV.UGA.EDU] on behalf of Dave Clark [dlcl...@winsupplyinc.com] Sent: Friday, January 7, 2022 2:34 PM To: ASSEMBLER-LIST@LISTSERV.UGA.EDU Subject: Convert Zoned to Packed If it is possible, how do you code in assembler to convert more than 16 digits of zoned data into a packed field? I'm presuming, of course, that a packed field can be longer than 8 bytes in assembler. VSE COBOL can handle 18 digits, correct? So, that would be a 10-byte packed field. But it seems the assembler PACK instruction can only handle up to 16 digits of zoned data. Am I missing something? Sincerely, Dave Clark -- int.ext: 91078 direct: (937) 531-6378 home: (937) 751-3300 Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *
Re: Convert Zoned to Packed
"IBM Mainframe Assembler List" wrote on 01/07/2022 02:34:49 PM: > If it is possible, how do you code in assembler to convert more > than 16 digits of zoned data into a packed field? I'm presuming, of > course, that a packed field can be longer than 8 bytes in assembler. VSE > COBOL can handle 18 digits, correct? So, that would be a 10-byte packed > field. But it seems the assembler PACK instruction can only handle up to > 16 digits of zoned data. Am I missing something? Hmmm, I guess I found my answer -- at least partially. I happened to read about the next instruction in the manual just out of curiosity (yeah, I'm a nerd who likes to read technical manuals). So, apparently, I can pack up to 31 digits into a 16-byte packed field using the PKA instruction. However, it looks like I have to handle the sign separately. Sincerely, Dave Clark -- Winsupply Group Services 3110 Kettering Boulevard Dayton, Ohio 45439 USA (937) 294-5331 * This email message and any attachments is for use only by the named addressee(s) and may contain confidential, privileged and/or proprietary information. If you have received this message in error, please immediately notify the sender and delete and destroy the message and all copies. All unauthorized direct or indirect use or disclosure of this message is strictly prohibited. No right to confidentiality or privilege is waived or lost by any error in transmission. *