<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: cobol truncate in Operating System - OpenVMS</title>
    <link>https://community.hpe.com/t5/operating-system-openvms/cobol-truncate/m-p/6105077#M37207</link>
    <description>&lt;P&gt;'just do it'... it works but it looks bad when using Cobol itself to display.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Officially you should use BINARY-SHORT or PIC 9(4) &amp;nbsp;USAGE&amp;nbsp;&lt;SPAN&gt;COMP-5&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;according to IBM....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A target="_blank" href="http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=%2Fcom.ibm.aix.cbl.doc%2Fcpari09.htm"&gt;http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=%2Fcom.ibm.aix.cbl.doc%2Fcpari09.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Native binary (COMP-5) items&lt;/P&gt;&lt;P&gt;Data items that you declare as&amp;nbsp;USAGE COMP-5&amp;nbsp;are represented in storage as binary data. However, unlike&amp;nbsp;USAGE COMP&amp;nbsp;items, they can contain values of magnitude up to the capacity of the native binary representation (2, 4, or 8 bytes) rather than being limited to the value implied by the number of&amp;nbsp;9s in the&amp;nbsp;PICTURE&amp;nbsp;clause&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But VMS COB REF:&lt;/P&gt;&lt;P&gt;"&amp;nbsp;&lt;SPAN&gt;BINARY is a synonym for COMPUTATIONAL and COMP.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;On Alpha and I64 systems, except for restrictions on the PICTURE&lt;BR /&gt;clause, COMPUTATIONAL-5 and COMPUTATIONAL-X are synonyms for&lt;BR /&gt;COMPUTATIONAL and COMP."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BINARY-ALTERNATIVE...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Syntax Rule (Format 1)&lt;BR /&gt;6. The PICTURE clause is required for every elementary item except an item&lt;BR /&gt;specified by the USAGE IS BINARY-CHAR, BINARY-SHORT,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But in practice it is not supported&amp;nbsp;&lt;/P&gt;&lt;P&gt;(&amp;nbsp;HP COBOL V2.9-1453 on OpenVMS IA64 V8.3-1H1 )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;01 a_word USAGE IS BINARY-SHORT.
.....................^
%COBOL-F-SYN4, Invalid USAGE clause
at line number 8 in file SYS$SYSDEVICE:[HEIN]TMP.COB;11
01 a_word USAGE IS BINARY-SHORT.
...^
%COBOL-E-PICREQ, PICTURE clause required - PIC X or PIC 9 assumed, depending on usage&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is how you can 'just do it', as per DEBUGGER output...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;$ run tmp
DBG&amp;gt; go
 comp_5=2767 a_comp=2767 a_hack=2767
DBG&amp;gt; ex/word comp_5, a_comp, a_hack
MY_MAIN_PROGRAM\MY_MAIN_PROGRAM\COMP-5: +32767
MY_MAIN_PROGRAM\MY_MAIN_PROGRAM\A-COMP: +32767
A-HACK of MY_MAIN_PROGRAM\MY_MAIN_PROGRAM\ :    +32767

$ type tmp.cob
IDENTIFICATION DIVISION.
PROGRAM-ID. my-main-program.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 comp_5   PIC 9(4) USAGE COMP-5.
01 a_comp   PIC 9(4) USAGE COMP.
* 01 a_word   USAGE IS BINARY-SHORT.
01 a_long   PIC 9(9) USAGE COMP.
01 REDEFINES a_long.
  03 a_hack PIC 9(4).

PROCEDURE DIVISION.
MY_MAIN SECTION.
MAIN.
    MOVE 32767 TO comp_5.
    MOVE 32767 TO a_comp.
*    MOVE 32767 TO a_word.
    MOVE 32767 TO a_long.
    DISPLAY " comp_5=", comp_5 WITH CONVERSION,
            " a_comp=", a_comp WITH CONVERSION,
*            " a_word=", a_comp WITH CONVERSION,
            " a_hack=", a_comp WITH CONVERSION.
    STOP RUN.

&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;Enjoy,&lt;/P&gt;&lt;P&gt;Hein.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 18 Jun 2013 13:43:57 GMT</pubDate>
    <dc:creator>Hein van den Heuvel</dc:creator>
    <dc:date>2013-06-18T13:43:57Z</dc:date>
    <item>
      <title>cobol truncate</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/cobol-truncate/m-p/6104957#M37206</link>
      <description>&lt;P&gt;Hi &amp;nbsp;all: ¿ how to move maximum possible value to a binary field ??? for example : move 32767 to ws-var ( where ws-var pic 9(04) comp.)&lt;/P&gt;&lt;P&gt;Thanks a lot.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jun 2013 12:26:54 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/cobol-truncate/m-p/6104957#M37206</guid>
      <dc:creator>cachaza</dc:creator>
      <dc:date>2013-06-18T12:26:54Z</dc:date>
    </item>
    <item>
      <title>Re: cobol truncate</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/cobol-truncate/m-p/6105077#M37207</link>
      <description>&lt;P&gt;'just do it'... it works but it looks bad when using Cobol itself to display.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Officially you should use BINARY-SHORT or PIC 9(4) &amp;nbsp;USAGE&amp;nbsp;&lt;SPAN&gt;COMP-5&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;according to IBM....&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;A target="_blank" href="http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=%2Fcom.ibm.aix.cbl.doc%2Fcpari09.htm"&gt;http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=%2Fcom.ibm.aix.cbl.doc%2Fcpari09.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Native binary (COMP-5) items&lt;/P&gt;&lt;P&gt;Data items that you declare as&amp;nbsp;USAGE COMP-5&amp;nbsp;are represented in storage as binary data. However, unlike&amp;nbsp;USAGE COMP&amp;nbsp;items, they can contain values of magnitude up to the capacity of the native binary representation (2, 4, or 8 bytes) rather than being limited to the value implied by the number of&amp;nbsp;9s in the&amp;nbsp;PICTURE&amp;nbsp;clause&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But VMS COB REF:&lt;/P&gt;&lt;P&gt;"&amp;nbsp;&lt;SPAN&gt;BINARY is a synonym for COMPUTATIONAL and COMP.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;On Alpha and I64 systems, except for restrictions on the PICTURE&lt;BR /&gt;clause, COMPUTATIONAL-5 and COMPUTATIONAL-X are synonyms for&lt;BR /&gt;COMPUTATIONAL and COMP."&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BINARY-ALTERNATIVE...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Syntax Rule (Format 1)&lt;BR /&gt;6. The PICTURE clause is required for every elementary item except an item&lt;BR /&gt;specified by the USAGE IS BINARY-CHAR, BINARY-SHORT,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But in practice it is not supported&amp;nbsp;&lt;/P&gt;&lt;P&gt;(&amp;nbsp;HP COBOL V2.9-1453 on OpenVMS IA64 V8.3-1H1 )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;01 a_word USAGE IS BINARY-SHORT.
.....................^
%COBOL-F-SYN4, Invalid USAGE clause
at line number 8 in file SYS$SYSDEVICE:[HEIN]TMP.COB;11
01 a_word USAGE IS BINARY-SHORT.
...^
%COBOL-E-PICREQ, PICTURE clause required - PIC X or PIC 9 assumed, depending on usage&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is how you can 'just do it', as per DEBUGGER output...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;$ run tmp
DBG&amp;gt; go
 comp_5=2767 a_comp=2767 a_hack=2767
DBG&amp;gt; ex/word comp_5, a_comp, a_hack
MY_MAIN_PROGRAM\MY_MAIN_PROGRAM\COMP-5: +32767
MY_MAIN_PROGRAM\MY_MAIN_PROGRAM\A-COMP: +32767
A-HACK of MY_MAIN_PROGRAM\MY_MAIN_PROGRAM\ :    +32767

$ type tmp.cob
IDENTIFICATION DIVISION.
PROGRAM-ID. my-main-program.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 comp_5   PIC 9(4) USAGE COMP-5.
01 a_comp   PIC 9(4) USAGE COMP.
* 01 a_word   USAGE IS BINARY-SHORT.
01 a_long   PIC 9(9) USAGE COMP.
01 REDEFINES a_long.
  03 a_hack PIC 9(4).

PROCEDURE DIVISION.
MY_MAIN SECTION.
MAIN.
    MOVE 32767 TO comp_5.
    MOVE 32767 TO a_comp.
*    MOVE 32767 TO a_word.
    MOVE 32767 TO a_long.
    DISPLAY " comp_5=", comp_5 WITH CONVERSION,
            " a_comp=", a_comp WITH CONVERSION,
*            " a_word=", a_comp WITH CONVERSION,
            " a_hack=", a_comp WITH CONVERSION.
    STOP RUN.

&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;Enjoy,&lt;/P&gt;&lt;P&gt;Hein.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jun 2013 13:43:57 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/cobol-truncate/m-p/6105077#M37207</guid>
      <dc:creator>Hein van den Heuvel</dc:creator>
      <dc:date>2013-06-18T13:43:57Z</dc:date>
    </item>
    <item>
      <title>Re: cobol truncate</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/cobol-truncate/m-p/6106439#M37208</link>
      <description>&lt;P&gt;Thank you very very much !!!!&lt;/P&gt;</description>
      <pubDate>Wed, 19 Jun 2013 13:45:30 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/cobol-truncate/m-p/6106439#M37208</guid>
      <dc:creator>cachaza</dc:creator>
      <dc:date>2013-06-19T13:45:30Z</dc:date>
    </item>
    <item>
      <title>Re: cobol truncate</title>
      <link>https://community.hpe.com/t5/operating-system-openvms/cobol-truncate/m-p/6134217#M37209</link>
      <description>&lt;P&gt;Unless it's VAX in which case unsigned integers are not supported&lt;/P&gt;</description>
      <pubDate>Sun, 14 Jul 2013 01:28:18 GMT</pubDate>
      <guid>https://community.hpe.com/t5/operating-system-openvms/cobol-truncate/m-p/6134217#M37209</guid>
      <dc:creator>Richard J Maher</dc:creator>
      <dc:date>2013-07-14T01:28:18Z</dc:date>
    </item>
  </channel>
</rss>

