On 06-Aug-2016 14:46 -0500, Michael Ryan wrote:
Support call placed Friday.
  Perhaps I was not sufficiently clear in alluding to the cause of the 
problem being a usage issue; i.e. the origin for the corruption to the 
data passed on the parameter, arose even before the command [under that 
/support/] is ever getting invoked.
[
http://archive.midrange.com/midrange-l/201608/msg00150.html]
  Quite likely the /identical effect/ would be achieved using the same 
failing CALL [seen in the above archived message], but having used the 
following alternative source to define the parameters and 
failing-request [OVPRTF instead of IFMASM command] for the program TEM028C:
    pgm parm( &p1 &p2 &p3 &p4 &p5 )
     dclprcopt  LOG(*YES)
     dcl &p1      *char   3
     dcl &p2      *char   7
     dcl &p3      *char  74
     dcl &p4      *char   1
     dcl &p5      *dec ( 15 5)
      ovrprtf *prtf tostmf(&p3)
      monmsg cpf0001 exec()
      dspjoblog
  Compare the [lack of any difference for the] data from the third 
argument of the CALL when used in the TOSTMF() parameter of the failing 
OVRPRTF request using the above CLP, to what presumably is the same 
argument used in the ASMFLE() parameter of the failing ISFMASM command 
request as seen in the above archived message [and included further 
below, for easier reference]; directly below, is the actual output seen 
from a test:
• CALL PGM(TEM028C) PARM('031' '0000462' '/sigpdf/0310000462.PDF' ' ' 0)
    2000 - OVRPRTF FILE(*PRTF) TOSTMF(
X'61A2898797848661F0F3F1F0F0F0F0F4F6F24BD7C4C640404040404040404040404040
404040404040404040404040404040404040404040404040404040404040400000000000
00000F')
• CALL PGM(TEM028C) PARM('031' '0000462' '/sigpdf/0310000462.PDF' ' ' 0)
[…]
    4825 - IFMASM ASMFLE((*IFS 
X'61A2898797848661F0F3F1F0F0F0F0F4F6F24BD7C4C640404040404040404040404040 
404040404040404040404040404040404040404040404040404040404040400000000000
00000F')) […]
  Because the third parameter is declared [in my alternate\contrived 
CLP example] as a 74-byte character, thus is "declared with a length 
greater than 32", the CALL needs to pass a string-literal "including 
every byte for the entire length of the as-declared *char data-type 
argument as PARM() in the called program"; e.g. again with the 
alternate\contrived CLP source, the following revised CALL coded in a 
CLP would succeed [irrespective the chosen, but consistent, alignment of 
the comment lines together with the lines betwixt; the coding ensures 
all 74 bytes, or several extra, are specified\included]:
     CALL PGM(TEM028C) PARM('031' '0000462' +
     /* ....+....1....+....2....+....3....+....4....+....5 */+
       '/sigpdf/0310000462.PDF                            -
                                ' +
     /* ....+....6....+....7.... */ +
      ' ' 0)
   Or if instead invoked from a command-line\command-entry, then 
perhaps the following [with comment included, as above, to assist 
formatting to ensure all bytes are provided]:
 ===> CALL PGM(TEM028C) PARM('031' '0000462'
/*....+....1....+....2....+....3....+....4....+....5....+....6....+....7....*/
 '/sigpdf/0310000462.PDF                                               
     '
 ' ' 0 )
As an Amazon Associate we earn from qualifying purchases.