× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.




Hello,

The problem is that the 3rd parm to cvthc() needs to be passed by VALUE.
CL programs can't pass a parameter by value in V5R2 (However, they can in V5R3.)

PGM
   Dcl &OutHexChar *CHAR 20
   Dcl &InChar *CHAR 10 '1234567890'
   Dcl &LenC *CHAR 4
   Dcl &Len *DEC (10 0) 20
   chgvar (%BIN(&LENC)) &Len
   callPRC ('cvthc') Parm(&OutHexChar &InChar &LenC)
   dmpclpgm
ENDPGM

In this example, you're passing the address of &LenC to the cvthc routine. The cvthc routine isn't expecting an address, it's expecting a value, so you have problems.

The possible solutions are to upgrade to V5R3, or to use a different language that DOES support passing parms by value (I could tell you how to do this in C or RPG, and I expect that it's also possible in COBOL)

In V5R3 ILE CL, it would look like this:

PGM

    Dcl &OutHexChar *CHAR 20
    Dcl &InChar     *CHAR 10 '1234567890'
    Dcl &LenC       *CHAR 4
    Dcl &Len        *DEC (10 0) 20

    ChgVar (%bin(&LenC)) value(&Len)
    callPRC ('cvthc') Parm(&OutHexChar &InChar (&LenC *BYVAL))
    dmpclpgm

ENDPGM

When I run this, I get the following:

  Variable               Type        Length         Value

*...+....1....+....2....+
  &INCHAR                  *CHAR           10       '1234567890'
  &LEN                     *DEC          10 0        20
  &LENC                    *CHAR            4       '    '
  &OUTHEXCHAR              *CHAR           20       'F1F2F3F4F5F6F7F8F9F0'

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.