What is placed after the length field when it's zero ?
A S0C4 trap ?  Or maybe some area which always is zero today ?
(Hope never dies... :) ) 

 

Regards, 
Thomas Berg 
__________________________________________ 
Thomas Berg   Specialist   IT-U   SWEDBANK 



 

> -----Ursprungligt meddelande-----
> Från: IBM Mainframe Discussion List 
> [mailto:ibm-m...@bama.ua.edu] För Vernooij, CP - SPLXM
> Skickat: den 29 oktober 2009 13:29
> Till: IBM-MAIN@bama.ua.edu
> Ämne: Re: A modest PARM proposal
> 
> No parm in JCL results in a parmfield with a lenghtfield of zeros.
> 
> L     R3,0(R1)            ADDRESS OF PARM. 
> LH    R2,0(R3)            LENGTH OF PARM.  
> LTR   R2,R2               LENGTH ZERO?     
> BZ    END                 ==> NO PARM.   
> 
> Kees.
> 
> "Thomas Berg" <thomas.b...@swedbank.se> wrote in message 
> news:<e46b4df55a5e8746855078ae31f1b180336f71d...@fspas01ev010.
> fspa.myntet.se>...
> > There is of course a problem if You have a program that:
> > 1. Expects parm from both the JCL PARM mechanism and from common 
> > standard linkage/calls,  and 2. Receives a parm with a length field 
> > value of exactly 100,  and 3. Can't determine if the parm 
> in reality 
> > is longer than that or not (that is: if coming from JCL).
> >  and
> > 4. The calling is not through JCL PARM,  and 5. The calling part is 
> > not aware of this new possible format.
> > 
> > The question is of course if this situation is a big problem in 
> > practice.  Someone with knowledge has to evaluate that.
> > 
> > 
> > BTW, when You omit the JCL PARM, what does the program receive ?
> > A length field with value zero only ?  What type of area is placed 
> > immediately after the length field in this case ?
> > 
> >  
> > 
> > Regards,
> > Thomas Berg
> > __________________________________________ 
> > Thomas Berg   Specialist   IT-U   SWEDBANK 
> > 
> >  
> > 
> >  
> > 
> > > -----Ursprungligt meddelande-----
> > > Från: IBM Mainframe Discussion List [mailto:ibm-m...@bama.ua.edu] 
> > > För Vernooij, CP - SPLXM
> > > Skickat: den 29 oktober 2009 11:52
> > > Till: IBM-MAIN@bama.ua.edu
> > > Ämne: Re: A modest PARM proposal
> > > 
> > > Don't think it is that simple. 
> > > I know how the parmfield works today.
> > > If I understand the proposed new parmfield correctly,
> > > > > > Today:    lengthfield + parm (max 100 bytes)
> > > > > > Tomorrow: lengthfield + parm (max 100 bytes) + 
> padding to 102
> > > the first 102 bytes will remain unchanged and additional 
> parms will 
> > > be appended to it. This means the first length field will 
> never be 
> > > more than 100.
> > > How can a program determine if the data in bytes 101 and 
> further are 
> > > part of the new parmlayout and contain the lengthfield of the 
> > > remainder of the parm OR it is data not related to the 
> parm. In the 
> > > last case, referencing data after byte 100 can even 
> result in an 0C4 
> > > abend.
> > > 
> > > Kees.
> > > 
> > > 
> > > "Graeme Gibson" <gra...@ase.com.au> wrote in message 
> > > news:<20091029111112.3a5761c...@mail.ase.com.au>...
> > > > >How can new programs determine if they received the new or the 
> > > > >old format, i.o.w. if they can/should process the data after
> > > byte 100 or
> > > not?
> > > > 
> > > > It's really quite simple Kees, the program should process
> > > exactly the
> > > > number of bytes that the 2-byte (halfword) length 
> prefix says is 
> > > > present, no more and no less.  This has been the case for >
> > > 40 years.
> > > > 
> > > > Running a program in batch that lets me dump storage:
> > > > 
> > > > //STEP1   EXEC PGM=DBUG,PARM='TP,L,HC,PA=(ABCDEFGH)'
> > > > 
> > > > here's what R1 -> at the time the program receives control:
> > > > 
> > > > L R1$ 128      /* list what R1 points at for 128 bytes
> > > > 00006FE0(+000) 80006FE6 00000015 E3D76BD3 6BC8C36B
> > > |::?W::::TP,L,HC,|
> > > > 00006FF0(+010) D7C17E4D C1C2C3C4 C5C6C7C8 5D000000
> > > |PA=(ABCDEFGH):::|
> > > > 00007000(+020) 00000000 00000000 00000000 00000000
> > > |::::::::::::::::|
> > > > 00007010(+030) 00000000 00000000 00000000 00000000
> > > |::::::::::::::::|
> > > > 
> > > > Breaking it up a bit to make it clearer:
> > > > 
> > > > 006FE0  80006FE6      /* the parmlist (with end-of-list 
> bit ON) ->
> > > > 006FE6  0015          /* the length prefix part of the parameter
> > > > 006FE8  E3D76BD3 6BC8C36B D7C17E4D C1C2C3C4 C5C6C7C8 
> 5D00   /* the 
> > > > string part in hex
> > > >          T P , L  , H C ,  P A = (  A B C D  E F G H  )     
> > >  /* ..and
> > > > in characters
> > > > 
> > > > Now, there's NO padding out of the string buffer to 100 
> characters 
> > > > with blanks.  So, what are those "broken" programs making
> > > of all those
> > > > x'00' bytes that follow the actual PARM= value?  Countless 
> > > > existing programs may well be moving an arbitrary 100 
> or 102 bytes
> > > of parameter
> > > > to their own buffer/work area, but it seems clear that 
> those same 
> > > > programs must be taking notice of the length prefix when it
> > > comes to
> > > > parsing the string.  Or perhaps they all regard an x'00'
> > > > as indicating end of PARM= string!  But then I'm not 
> aware of any 
> > > > commitment by IBM to ensure that the PARM= string is even
> > > filled out
> > > > with x'00' bytes.
> > > > 
> > > > So, assuming the CI/SWA/Initiator support for PARM= was 
> enhanced 
> > > > to allow PARM= strings up to 32767 (x'7fff') characters.
> > > Presumably the
> > > > Initiator would continue, as it does now, to place the
> > > PARM= parameter
> > > > in a storage area big enough to hold the maximum size 
> it can be, 
> > > > ie
> > > > 32767+2 bytes (instead of 102 bytes as at present).  
> Nothing would
> > > > change for those existing (strictly
> > > > "broken") programs that are copying an arbitrary 100 (or
> > > 20, or some
> > > > other number?) bytes of data into their own work areas.
> > > > 
> > > > Of course, if a person using that program changed the PARM=
> > > string to
> > > > be longer than 100 characters, then all bets are off.
> > > > 
> > > > The best outcome would be a message; like "I'm sorry 
> Dave, but I 
> > > > thought you knew that I can't handle a PARM string of more than 
> > > > 100 characters.  Report to the airlock immediately".
> > > > 
> > > > An abend would be ok too.
> > > > 
> > > > Just continuing to execute with possibly unknown results
> > > would be the
> > > > worst outcome.
> > > > 
> > > > I suspect that there are programs in existence which 
> cannot accept 
> > > > even 20 characters of PARM= data, because the programmer
> > > assumed there
> > > > would only be, say, an 8 digit date (yyyymmdd), or some
> > > other tiddly
> > > > bit of data in the PARM= field.
> > > > 
> > > > 
> > > > Ok, it's nearly Christmas / Hannuka / Pagan Pissup (ie. 
> > > drinking) time
> > > > again, so take care all.
> > > > Graeme.
> > > > 
> > > > 
> > > > At 02:47 AM 29/10/2009, you wrote:
> > > > >How can new programs determine if they received the new or the 
> > > > >old format, i.o.w. if they can/should process the data after
> > > byte 100 or
> > > not?
> > > > >
> > > > >Kees.
> > > > >
> > > > >
> > > > >"Thomas Berg" <thomas.b...@swedbank.se> wrote in message
> > > > > > Today:    lengthfield + parm (max 100 bytes)
> > > > > > Tomorrow: lengthfield + parm (max 100 bytes) + 
> padding to 102
> > > > > bytes + newlengthfield + newparm (max 4GiB ? :) )
> > > > > >
> > > > > > This of course has the limitation means that the receiving 
> > > > > > part
> > > > > has to add 102 to get the long parm.
> > > > > > But it will only affect new programs that need to 
> handle more
> > > > > that 100 bytes parms, I think ?
> > > > 
> > > > 
> > > 
> --------------------------------------------------------------------
> > > --
> > > > For IBM-MAIN subscribe / signoff / archive access
> > > instructions, send
> > > > email to lists...@bama.ua.edu with the message: GET 
> IBM-MAIN INFO 
> > > > Search the archives at http://bama.ua.edu/archives/ibm-main.html
> > > 
> ********************************************************************
> > > ** For information, services and offers, please visit our 
> web site:
> > > http://www.klm.com. This e-mail and any attachment may contain 
> > > confidential and privileged material intended for the addressee 
> > > only. If you are not the addressee, you are notified that 
> no part of 
> > > the e-mail or any attachment may be disclosed, copied or 
> > > distributed, and that any other action related to this e-mail or 
> > > attachment is strictly prohibited, and may be unlawful. 
> If you have 
> > > received this e-mail by error, please notify the sender 
> immediately 
> > > by return e-mail, and delete this message.
> > > 
> > > Koninklijke Luchtvaart Maatschappij NV (KLM), its subsidiaries 
> > > and/or its employees shall not be liable for the incorrect or 
> > > incomplete transmission of this e-mail or any attachments, nor 
> > > responsible for any delay in receipt.
> > > Koninklijke Luchtvaart Maatschappij N.V. (also known as KLM Royal 
> > > Dutch Airlines) is registered in Amstelveen, The 
> Netherlands, with 
> > > registered number 33014286
> > > 
> ********************************************************************
> > > **
> > > 
> > > 
> --------------------------------------------------------------------
> > > -- For IBM-MAIN subscribe / signoff / archive access 
> instructions, 
> > > send email to lists...@bama.ua.edu with the
> > > message: GET IBM-MAIN INFO Search the archives at 
> > > http://bama.ua.edu/archives/ibm-main.html
> > > 
> > 
> > 
> ----------------------------------------------------------------------
> > For IBM-MAIN subscribe / signoff / archive access 
> instructions, send 
> > email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO 
> > Search the archives at http://bama.ua.edu/archives/ibm-main.html
> **********************************************************************
> For information, services and offers, please visit our web site:
> http://www.klm.com. This e-mail and any attachment may 
> contain confidential and privileged material intended for the 
> addressee only. If you are not the addressee, you are 
> notified that no part of the e-mail or any attachment may be 
> disclosed, copied or distributed, and that any other action 
> related to this e-mail or attachment is strictly prohibited, 
> and may be unlawful. If you have received this e-mail by 
> error, please notify the sender immediately by return e-mail, 
> and delete this message. 
> 
> Koninklijke Luchtvaart Maatschappij NV (KLM), its 
> subsidiaries and/or its employees shall not be liable for the 
> incorrect or incomplete transmission of this e-mail or any 
> attachments, nor responsible for any delay in receipt.
> Koninklijke Luchtvaart Maatschappij N.V. (also known as KLM 
> Royal Dutch Airlines) is registered in Amstelveen, The 
> Netherlands, with registered number 33014286
> **********************************************************************
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access 
> instructions, send email to lists...@bama.ua.edu with the 
> message: GET IBM-MAIN INFO Search the archives at 
> http://bama.ua.edu/archives/ibm-main.html
> 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@bama.ua.edu with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to