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