I find REXX extremely useful on PCs, but TSO/E REXX is a backwater compared to ooRexx, and I would be tempted to use Java or Python for complicated TSO scripts. But on z/Linux ooRexx with BSF4REXX is a viable option.
-- Shmuel (Seymour J.) Metz http://mason.gmu.edu/~smetz3 עַם יִשְׂרָאֵל חַי ________________________________________ From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of David Crayford <dcrayf...@gmail.com> Sent: Thursday, November 16, 2023 4:02 PM To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: External Functions in C on z/OS I choose a language on capabilities rather than personal preference. I’ve been accused on this forum by my ex-colleague and pal Wayne Bickerdyke of having a pathological dislike of REXX. That’s not true, but I do find it less useful than other languages. Python has a useful library called ctypes which includes classes for mapping data structures with Python classes. We use BigEndianStructure for mapping control blocks https://docs.python.org/3/library/ctypes.html#ctypes.BigEndianStructure. It would be cool if the tooling that we worked on with Peter Relson to create C header files could be reused to generate Python mappings. With the recent zIIP offloading Python is strategic. > On 17 Nov 2023, at 12:38 am, Charles Mills <charl...@mcn.org> wrote: > > Different strokes for different folks. > > 1. I was not aware of that pointer. This is the classic documentation > problem. The answer is right there in the manual, clear as day -- provided > you know where to look. A lot of these answers are easy to find, assuming you > already know the answer. > > 2. My code is running a complex Rexx environment that frankly I do not fully > understand. (I didn't write it and it isn't "mine.") I wanted to be sure I > had THE right environment block, not SOME environment block. An > 11-instruction assembler module seemed like a great solution. I still believe > that it was. > > Charles > > On Thu, 16 Nov 2023 11:31:20 +0800, David Crayford <dcrayf...@gmail.com> > wrote: > >> There's a TSO/E vector table that has the address of the REXX routines. >> >> // get the address of the TSO/e vector table >> CVT * cvt = *(( CVT ** ) CVTPTR); >> TSVT * tsvt = cvt->cvttvt; > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN