Did anyone work on CPCS and every number was packed unsigned to save space
---------------------------------------------------------------------------- ---- This electronic mail (including any attachments) may contain information that is privileged, confidential, and/or otherwise protected from disclosure to anyone other than its intended recipient(s). Any dissemination or use of this electronic email or its contents (including any attachments) by persons other than the intended recipient(s) is strictly prohibited. If you have received this message in error, please notify us immediately by reply email so that we may correct our internal records. Please then delete the original message (including any attachments) in its entirety. Thank you -----Original Message----- From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Paul Feller Sent: Monday, April 28, 2025 11:51 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Packed decimal sign nibbles Interesting... I was always under the impression that anything other than x'0C', x'0D', and x'0F' was to be treated as invalid. That is basically how I learned it in the mid 1970s when I took programming classes in college. Never having really looked that deeply in the Principles of Operation (SA22-7832-13) manual I see chapter 8 (Decimal Instructions) goes for 13 pages. Paul -----Original Message----- From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of Schmitt, Michael Sent: Monday, April 28, 2025 11:33 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Packed decimal sign nibbles Same here: F A C E are positive, B & D are negative. The machine doesn't have an "unsigned" packed sign nybble. It is either positive or negative. So "F" is positive as a sign nybble, or it is the "zone" in other positions in a zoned decimal number. "F" is unsigned, however, in IBM Enterprise COBOL for z/OS: when you compile with NUMPROC(PFD) it is *very* strict: there are only three valid signs: C: positive D: negative F: unsigned If all your code has preferred signs then it can generate more efficient code, by using CLC and MVC for example instead of packed decimal instructions. -----Original Message----- From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of Phil Smith III Sent: Monday, April 28, 2025 11:26 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Packed decimal sign nibbles Ok, well, in 1975 I was still in high school and playing games on VM over dialup, didn't start my mainframe career until 1980. But the question stands: what's with these "unpreferred" values? Why would they even exist/be valid? -----Original Message----- From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of Lennie Bradshaw Sent: Monday, April 28, 2025 12:21 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: Packed decimal sign nibbles That's exactly as I was taught in about 1975. Lennie -----Original Message----- From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of Phil Smith III Sent: 28 April 2025 17:17 To: IBM-MAIN@LISTSERV.UA.EDU Subject: Packed decimal sign nibbles A friend asked me about packed decimal sign nibbles, specifically x'0F'. I said "Unsigned" was what I'd always been told. He said he was finding varied answers, and then pointed me at SA22-7832-03 (PofOp, but an old version from 2004) where, on page 8-2 (PDF page 1150) is the following table. It displays correctly in monospace font, so hopefully you can read it: Recognized As Code (Binary) Digit Sign -------- ------- ------- 0000 0 Invalid 0001 1 Invalid 0010 2 Invalid 0011 3 Invalid 0100 4 Invalid 0101 5 Invalid 0110 6 Invalid 0111 7 Invalid 1000 8 Invalid 1001 9 Invalid 1010 Invalid Plus 1011 Invalid Minus 1100 Invalid Plus (preferred) 1101 Invalid Minus (preferred) 1110 Invalid Plus 1111 Invalid Plus (zone) X'0A'? X'0B'?? X'0E'??? I'd only ever heard of x'0C', x'0D', and sometimes x'0F'. Is it just me? I certainly don't claim to be Mr. Packed Decimal, but I have encountered it off and on over the last 45 years, so I was very surprised. I do see the discussion of "zones" in that section of the book, but that doesn't clarify for me because zones have always been a mystery to me--never needed to grok them. And it still doesn't explain the other values. ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN