The date on the COBOL program is 2005.

Sent from Proton Mail mobile

-------- Original Message --------
On May 5, 2023, 7:06 PM, Farley, Peter wrote:

> Took me a while to find it, but I *think* this is my re-implementation for 
> TIOT access in Rexx when SWA=ABOVE (I know I copied this technique from 
> another author whose name I did not save, so my apologies to that author - if 
> you are still reading this list, please take credit where it is due). Notes 
> about errors or omissions in the below logic are welcomed. The date on the 
> source member where I found these routines was 2006, so things may be 
> different now. I haven't had a need to use this code since 2006, and I can't 
> test it again right at this moment. If I can find any round tuits I can try 
> to convert the logic to valid Enterprise COBOL and test it. If someone else 
> has the time now, please be my guest and let us know your results. Peter 
> --------------------------- alldsn: procedure parse upper arg ddname nextdsn 
> = getdsn(ddname) dsnlist = '' do xi = 1 by 1 while nextdsn /= (ddname 'NOT 
> FOUND') dsnlist = dsnlist nextdsn nextdsn = getdsn(ddname'+'xi) end if xi = 1 
> then , dsnlist = nextdsn return dsnlist getdsn: procedure parse upper arg 
> ddname parse var ddname ddname '+' concat if concat = '' then concat = 0 
> tcb_address = storage(21C,4) tiot_address = 
> storage(d2x(c2d(tcb_address)+12),4) dd_address = d2x(c2d(tiot_address)+28) 
> dd_length = storage(d2x(c2d(tiot_address)+24),1) tiot_address = 
> d2x(c2d(tiot_address)+24) jfcb_address = storage(d2x(x2d(tiot_address)+12),3) 
> do while dd_length /= '00'x if storage(dd_address,8) = ddname then leave 
> tiot_address = d2x(x2d(tiot_address)+c2d(dd_length)) dd_length = 
> storage(tiot_address,1) dd_address = d2x(x2d(tiot_address)+4) jfcb_address = 
> storage(d2x(x2d(tiot_address)+12),3) end if dd_length = '00'x then return 
> ddname 'NOT FOUND' do concat tiot_address = 
> d2x(x2d(tiot_address)+c2d(dd_length)) dd_length = storage(tiot_address,1) 
> dd_address = d2x(x2d(tiot_address)+4) jfcb_address = 
> storage(d2x(x2d(tiot_address)+12),3) if dd_length = '00'x then return ddname 
> 'NOT FOUND' if storage(dd_address,8) /== ' ' then , return ddname 'NOT FOUND' 
> end return strip(storage(d2x(c2d(jfcb_address)+16),44),'T') 
> ------------------------- -----Original Message----- From: IBM Mainframe 
> Discussion List  On Behalf Of Farley, Peter Sent: Friday, May 5, 2023 5:58 PM 
> To: IBM-MAIN@LISTSERV.UA.EDU Subject: Re: COBOL to dynamic DD name EXTERNAL 
> EMAIL That logic is fine for SWA below the line, but I don't think many shops 
> still run that way, at least not the larger ones. ISTR there was at one time 
> a published Rexx implementation of the SWA-above logic, but I can't put my 
> finger on it just yet. That logic (if found) should be transferable to 
> Enterprise COBOL. Peter -----Original Message----- From: IBM Mainframe 
> Discussion List  On Behalf Of rpinion865 Sent: Friday, May 5, 2023 2:00 PM 
> To: IBM-MAIN@LISTSERV.UA.EDU Subject: COBOL to dynamic DD name I don't know 
> if this program is of any use to the original poster. But, I came across the 
> source this afternoon. It would seem if you can read the JFCB, maybe you 
> could update it? IDENTIFICATION DIVISION. PROGRAM-ID. COBJFCB. INSTALLATION. 
> AUTHOR. KEVIN. DATE-WRITTEN. 11/07/2005. ENVIRONMENT DIVISION. INPUT-OUTPUT 
> SECTION. DATA DIVISION. FILE SECTION. WORKING-STORAGE SECTION. 01 
> TCB-ADDRESS-POINTER. 05 TCB-ADDR-POINTER USAGE IS POINTER. 01 TIOT-SEG-POINT. 
> 05 TIOT-SEG-POINTER USAGE IS POINTER. 05 TIOT-SEG-PNT REDEFINES 
> TIOT-SEG-POINTER PIC S9(9) COMP. 01 JFCB-POINT. 05 JFCB-POINTER USAGE IS 
> POINTER. 05 JFCB-POINT-RED REDEFINES JFCB-POINTER. 10 FILLER PIC X. 10 
> JFCB-LOW-3 PIC X(3). LINKAGE SECTION. 01 DDNAME-DSN-ARRAY. 05 DDNAME-DSN 
> OCCURS 100 TIMES INDEXED BY NDX1. 10 DDA-DDNAME PIC X(8). 10 DDA-DSN PIC 
> X(44). 01 TCB-POINTER USAGE IS POINTER. 01 TCB. 05 FILLER PIC X(12). 05 
> TIOT-POINTER USAGE IS POINTER. 01 TIOT-START PIC X(24). 01 TIOT-SEG. 05 
> TIO-LEN PIC X. 05 FILLER PIC X(3). 05 DD-NAME PIC X(8). 05 JFCB-ADDR PIC 
> X(3). 01 JFCB. 05 FILLER PIC X(16). 05 DS-NAME PIC X(44). PROCEDURE DIVISION 
> USING DDNAME-DSN-ARRAY. MOVE LOW-VALUES TO JFCB-POINT. MOVE X'0000021C' TO 
> TCB-ADDRESS-POINTER. SET ADDRESS OF TCB-POINTER TO TCB-ADDR-POINTER. SET 
> ADDRESS OF TCB TO TCB-POINTER. SET ADDRESS OF TIOT-START TO TIOT-POINTER. SET 
> TIOT-SEG-POINTER TO TIOT-POINTER. ADD 24 TO TIOT-SEG-PNT. SET ADDRESS OF 
> TIOT-SEG TO TIOT-SEG-POINTER. SET NDX1 TO 1. PERFORM UNTIL TIO-LEN = 
> LOW-VALUES OR NDX1 > 100 MOVE DD-NAME TO DDA-DDNAME(NDX1) MOVE JFCB-ADDR TO 
> JFCB-LOW-3 SET ADDRESS OF JFCB TO JFCB-POINTER MOVE DS-NAME TO DDA-DSN(NDX1) 
> DISPLAY DDA-DDNAME(NDX1) DDA-DSN(NDX1) ADD 20 TO TIOT-SEG-PNT SET ADDRESS OF 
> TIOT-SEG TO TIOT-SEG-POINTER SET NDX1 UP BY 1 END-PERFORM. GOBACK. -- This 
> message and any attachments are intended only for the use of the addressee 
> and may contain information that is privileged and confidential. If the 
> reader of the message is not the intended recipient or an authorized 
> representative of the intended recipient, you are hereby notified that any 
> dissemination of this communication is strictly prohibited. If you have 
> received this communication in error, please notify us immediately by e-mail 
> and delete the message and any attachments from your system. 
> ---------------------------------------------------------------------- For 
> IBM-MAIN subscribe / signoff / archive access instructions, send email to 
> lists...@listserv.ua.edu with the message: INFO IBM-MAIN This message and any 
> attachments are intended only for the use of the addressee and may contain 
> information that is privileged and confidential. If the reader of the message 
> is not the intended recipient or an authorized representative of the intended 
> recipient, you are hereby notified that any dissemination of this 
> communication is strictly prohibited. If you have received this communication 
> in error, please notify us immediately by e-mail and delete the message and 
> any attachments from your system. 
> ---------------------------------------------------------------------- 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

Reply via email to