Keep in mind that if you do VDEFINE(s), you MUST do VDELETE(s) for the same variables, before you FREEMAIN (e.g.) and/or exit. Otherwise, enjoy tracking down mysterious S0C4s, etc. ISPF will think that the storage is still allocated to the function pool variable(s) and may read from or write to it/them.
To clarify what was already said, you don't need VDEFINE if your assembler program is not interacting with the data. For example, if you are displaying a panel that, implicitly or explicitly, does all needed VGETs, VPUTs and operations for some variables, no VDEFINEs are needed for those variables. If you are only inspecting or setting a particular variable once, VCOPY or VREPLACE will do just as well, without the need for VDELETE. Less clear cut is when a program is invoked by SELECT. It would seems that all function pool variables are deleted, along with their reference addresses, lengths, etc. I'm not sure; YMMV. That said, unless you are writing a program product (and maybe even then), you are better off using ISPEXEC from assembler. It is easier to write and maintain, and also offers variable substitution: CALL ISPEXEC,(BUFLEN25,BUFFER25),VL ... Buffer25 dc c'display panel(abc&xyz)' Buflen25 dc a(l'Buffer) In fact, this could all be nicely packaged into an assembler MACRO. Compiled REXX, CLIST (see note), and the Pipes/ISPF stages will give you better performance than interpreted REXX, without the productivity downsides of assembler. (AFAIK, ISPF has it's own internal copy of the CLIST interpreter that loads and/or runs faster than the usual CLIST interpreter; call a CLIST only via SELECT.) ISPF dialogs with only ISPLINK require lots of extra coding, more detailed knowledge of the business requirements, perfect comments for future victims, and full understanding of dialog services. Finally, the TSO variable lookup routine IKJCV441 can only get or set once variable at a time. With TBxxx services this is a burden; a requirement to address this was never approved. I hope this helps. On Thu, 2 Aug 2018, 1:04 pm Seymour J Metz, <[email protected]> wrote: > When last I had access to ISPF I used them heavily. Not as good as a > full-fledged syntax directed editor, but still very helpful. > > > -- > Shmuel (Seymour J.) Metz > http://mason.gmu.edu/~smetz3 > > ________________________________________ > From: IBM Mainframe Discussion List <[email protected]> on behalf > of Edward Finnell <[email protected]> > Sent: Wednesday, August 1, 2018 4:38 PM > To: [email protected] > Subject: Re: Need help with ISPF Dialogue Manager and VGET > > Anybody use MODEL commands for anything anymore? > > > In a message dated 8/1/2018 1:55:00 PM Central Standard Time, > [email protected] writes: > > > o make it easy check out > > http://secure-web.cisco.com/1aCvaZTPAJO1cr0bBILltD9dwI1WmoCvWWhozu3I5u48ZM15ylQIGanv_Trrk6O5VuRGJJswyxcYz9vRomNgklq_m_j0s771svDk7WUeYqwl1uuj1d3L0IpAP99Mwac4LtJjboIVoqgiN2VoxeeOXVWrkNSAJ8j_heA3jX0DN-HWTAl4EZoG079JyQfdUKxE89gRHnPAOZE4GK-dkswWoeIfb2zLBHL_rgCSTYNMsaiXrYtx1b0DsQl9-oQG5qM4JDe1lTPm3VIpwY9E3n-gzDQ2BhMnoQHrZcbLoraJl3fMpTz1UdkrD4eX0UU75u403yRandjrU5Bvb-MH0MgDt8Gg3UhqUI2OG7XVjTxlsZZxZLk7h6MgGbUS0MsShNul6/http%3A%2F%2Fwww.cbttape.org > and FILE 803 - it is a collection of ISPF macros that I ran across in the > last millennium that make it very easy to code ISPF dialogs in assembler. > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
