It was my understanding after a lot of digging that I couldn’t call 64 bit C from assembler because the 64 bit LE assembler prologue macro CELQPRLG doesn’t support main like CEEENTRY and there for the LE environment isn’t established I just thought that CELQPIPI would do that for assembler but am having a hard time getting that working with a 64 bit LE assembler Thanks
On Oct 29, 2019, at 11:26 AM, scott Ford <idfli...@gmail.com > wrote: > > Joe, > > I havent dont 64bit C ..but I would be surprised the guys here on the > listserv havent . > I understand 64bit in theory but working as a ISV my mgmt is stuck in the > Cobol back woods. > > Scott > >> On Tue, Oct 29, 2019 at 9:42 AM Joseph Reichman <reichman...@gmail.com> >> wrote: >> >> I am trying to call a AMODE 64 bit C DLL (exported function) from >> assembler and because CELQPRLG (LE 64 bit prologue) doesn't support main >> like CEEENTRY (MAIN=YES) Cannt seem do it I thought the INIT_MAIN function >> for CELQPIPI would do the trick for me >> >> Thanks >> >> >> >> -----Original Message----- >> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf >> Of scott Ford >> Sent: Tuesday, October 29, 2019 9:35 AM >> To: IBM-MAIN@LISTSERV.UA.EDU >> Subject: Re: Return code X'20' 32 from CELQPIPI INIT_MAIN >> >> Joe: >> >> What are you trying to accomplish exactly so we can better assist you ? >> Scott >> >> On Tue, Oct 29, 2019 at 8:52 AM Joseph Reichman <reichman...@gmail.com> >> wrote: >> >>> I guess I could do a series of calls to the exports things is they all >>> share a global area >>> >>> Thanks >>> >>> >>> On Oct 29, 2019, at 8:47 AM, David Crayford <dcrayf...@gmail.com> wrote: >>>> >>>> Why do you need a DLL? Can you just use PIPI to call a static program? >>>> >>>>> On 2019-10-29 8:15 PM, Joseph Reichman wrote: >>>>> This is add_entry I was using INIT_SUB, INIT_MAIN regardless that’s >>>>> a >>> good idea to try to use add_entry >>>>> After init_sub/MAIN >>>>> This is the program I trying to initiate as in Assembler LE 64 bit >>> prolog CELQPRLG does not have a main and I cannot call a 64 C DLL I >>> was thinking CELQPIPI would resolve these issues >>>>> >>>>> Thanks >>>>> TEST64A CELQPRLG FETCHABLE=RENT,PSECT=MYPSECT,ENTNAME=TEST64A >>>>> YREGS >>>>> * LOAD EP=CEETEST >>>>> * LR R15,R0 >>>>> * BASR R14,R15 >>>>> CELQCALL opendata,(SYSADATA),WORKREG=10 >>>>> XR R15,R15 >>>>> CELQEPLG >>>>> SYSADATA DC CL8'SYSADATA' >>>>> * CEEPDDA opendata,SCOPE=IMPORT >>>>> PARM1 DC A(COMMANDS) >>>>> PARM2 DC A(FEEDBACK) >>>>> DS 0H >>>>> DC H'9' >>>>> COMMANDS DC C'AT ENTRY ' >>>>> FEEDBACK DS CL12 >>>>> CEEDSA SECTYPE=XPLINK PING OF THE DYNAMIC SAVE AREA >>>>> CEECAA MAPPING OF THE COMMON ANCHOR AREA >>>>> *LLPPA CEEPPA >>>>> WORKAREA DSECT >>>>> DS 0D >>>>> WORKSIZE EQU *-WORKAREA >>>>> * CEEEDB MAPPING OF THE ENCLAVE DATA BLOCK >>>>> END >>> >>>>> >>>>> >>>>> >>>>> -----Original Message----- >>>>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On >>> Behalf Of Joe Monk >>>>> Sent: Tuesday, October 29, 2019 3:34 AM >>>>> To: IBM-MAIN@LISTSERV.UA.EDU >>>>> Subject: Re: Return code X'20' 32 from CELQPIPI INIT_MAIN >>>>> >>>>> So .... according to: >>>>> >>>>> "20 The routine_name contains only blanks and the routine_entry was >>> zero. >>>>> The PreInit table was not updated." >>>>> >>>>> >>> https://www.ibm.com/support/knowledgecenter/SSLTBW_2.1.0/com.ibm.zos.v >>> 2r1.ceeam00/ceeam141.htm >>>>> >>>>> Joe >>>>> >>>>> On Mon, Oct 28, 2019 at 8:55 PM Joseph Reichman >>>>> <reichman...@gmail.com> >>>>> wrote: >>>>> >>>>>> The listing has the SYSSTATE set AMODE 64 The LISTPSW indicates >>>>>> botH the EA and BA BITS of the PSW as one indicating AMODE 64 at >>>>>> location F8 right before the call CELQPIPI >>>>>> >>>>>> >>>>>> CEEWQPIP: LOADing CELQPIPI >>>>>> CEEWQPIP: Doing CELQPIPI INIT_MAIN IKJ57024I AT +F6 TEST istpsw >>>>>> IKJ57652I PSW LOCATED AT 8BA068 >>>>>> XRXXXTIE KEY XMWP AS CC PROGMASK EA BA INSTR ADDR >>>>>> 00000111 8 1101 00 00 0000 1 1 >> 1F7010F6 >>>>>> >>>>>> TEST >>>>>> t +f8 >>>>>> TEST >>>>>> o >>>>>> CEEWQLOD: Called to LOAD "TEST64A " >>>>>> IKJ57024I AT +F8 >>>>>> TEST >>>>>> >>>>>> The program is AMODE 64 >>>>>> >>>>>> ________ TEST64A 00000D30 0001D6 00 >>> 64 >>>>>> ANY >>>>>> >>>>>> This is a listing of the table >>>>>> +CEEXPTBL DC CL8'CELQPTBL' Eyecatcher >>>>>> + DC A(CELQPIT0058) Number of e >>>>>> + DC F'16' Entry size >>>>>> + DC F'100' Version >>>>>> ice routines >>>>>> >>>>>> Source Statement HLASM R6 >>>>>> + DC AL1(0) >>>>>> + DC 3X'00' >>>>>> CELQPITY TEST64A,0 ically load CE >>>>>> + DC CL8'TEST64A' Name, set t >>>>>> + DC AD(0) Load dblwd >>>>>> CELQPITS , End of CELQPIP >>>>>> +CELQPIT0058 EQU 1 Number of e >>>>>> * >>>>>> Here is the listing of TEST64A >>>>>> >>>>>> TEST64A CELQPRLG FETCHABLE=RENT,PSECT=MYPSECT,ENTNAME=TEST64A >>>>>> YREGS >>>>>> * LOAD EP=CEETEST >>>>>> * LR R15,R0 >>>>>> * BASR R14,R15 >>>>>> CELQCALL opendata,(SYSADATA),WORKREG=10 >>>>>> XR R15,R15 >>>>>> CELQEPLG >>>>>> SYSADATA DC CL8'SYSADATA' >>>>>> * CEEPDDA opendata,SCOPE=IMPORT >>>>>> PARM1 DC A(COMMANDS) >>>>>> PARM2 DC A(FEEDBACK) >>>>>> >>>>>> Here is the link >>>>>> For TEST64A >>>>>> >>>>>> //***************************************************************** >>>>>> //* LINK EDIT THE PROGRAM * >>>>>> //**************************************************************** >>>>>> * >>>>>> //STEP0200 EXEC PGM=IEWL,COND=(0,LT,STEP0100), >>>>>> // PARM='AMODE(64),LIST,MAP,XREF,CASE=MIXED,DYNAM=DLL' >>>>>> //SYSPRINT DD SYSOUT=* >>>>>> //SYSDEFSD DD SYSOUT=* >>>>>> //OBJ DD DSN=&&HEXOBJ,DISP=(OLD,PASS) >>>>>> //SYSLIB DD DISP=SHR,DSN=IBMUSER.DBGR.DLLLIB >>>>>> // DD DISP=SHR,DSN=CEE.SCEEBND2 >>>>>> // DD DISP=SHR,DSN=CEE.SCEELKED >>>>>> //SYSLMOD DD DISP=SHR,DSN=IBMUSER.DBGR.DLLLIB >>>>>> //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(3,2)),DSN=&SYSUT1 >>>>>> //SYSPRINT DD SYSOUT=*,DCB=(RECFM=FB,BLKSIZE=3509) >>>>>> //SYSLIN DD * >>>>>> IMPORT CODE64,'SYSADATA','opendata' >>>>>> INCLUDE OBJ(TEST64A) >>>>>> ENTRY TEST64A >>>>>> NAME TEST64A(R) >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> 84 * >>>>>> 85 >>>>>> >> ********************************************************************** >>>>>> 86 * >>>>>> 00000000 00000000 000007B0 87 CEEWQPIP CSECT , >>>>>> 88 CEEWQPIP AMODE >> 64 >>>>>> 89 CEEWQPIP RMODE >> 31 >>>>>> 90 SYSSTATE >>>>>> AMODE64=YES >>>>>> 91+* THE VALUE >> OF >>>>>> SYSSTATE IS NOW SET TO ASCENV=P AMODE64=YES ARCHLX01-SYSSTATE >>>>>> + VL=2 >>>>>> OSREL=00000000 >>>>>> 00000000 010E 92 SAM64 , >>>>>> 93 * >>>>>> 94 * >>>>>> 95 * Standard >>> 64-bit >>>>>> entry linkage >>>>>> 96 * >>>>>> ----------------------------- >>>>>> 97 * >>>>>> 00000002 EBEC D008 0024 00000008 98 STMG >>>>>> R14,R12,SAVF4SAG64RS14-SAVF4SA(R13) Save caller regs >>>>>> 00000008 0DB0 99 BASR >>> R11,0 >>>>>> Set up basereg >>>>>> R:B 0000000A 100 USING >>> *,R11 >>>>>> Addressabliity >>>>>> 101 GETMAIN >>>>>> RU,LV=DSA_L Obtain DSA >>>>>> 0000000A 103+ DS 0H >>>>>> @P5C 01-GETMAIN >>>>>> 0000000A 104+IHB0002C DS 0H >>>>>> 01-GETMAIN >>>>>> 0000000A 5800 B36E 00000378 105+ L >>>>>> 0,=A(DSA_L) LOAD LENGTH 01-GETMAIN >>>>>> 0000000E 58F0 B372 0000037C 106+ L >>>>>> 15,=AL1(B'00000000',(0),(0),B'00000010') X01-GETMAIN >>>>>> + >>>>>> LOAD GETMAIN PARMS >>>>>> 00000012 1B11 107+ SR 1,1 >>>>>> ZERO RESERVED REG 1 01-GETMAIN >>>>>> 00000014 0A78 108+ SVC 120 >>>>>> ISSUE GETMAIN SVC 01-GETMAIN >>>>>> 00000016 E3D0 1080 0024 00000080 109 STG >>>>>> R13,SAVF4SAPREV-SAVF4SA(,R1) Set backchain >>>>>> i0000001C E310 D088 0024 00000088 110 STG >>>>>> R1,SAVF4SANEXT-SAVF4SA(,R13) Set fwd chain >>>>>> Sample AMODE64 PreInit DRIVER with service routines >>>>>> Page 5 >>>>>> Active Usings: CEEWQPIP+X'A',R11 >>>>>> Loc Object Code Addr1 Addr2 Stmt Source Statement >>>>>> HLASM R6.0 2019/10/28 20.02 >>>>>> 00000022 D203 D004 B376 00000004 00000380 111 MVC >>>>>> SAVF4SAID-SAVF4SA(R4,R13),=A(SAVF4SAID_VALUE) "F4SA" >>>>>> 00000028 B904 00D1 112 LGR >>>>>> R13,R1 Set up DSAreg >>>>>> R:D 00000000 113 USING >>>>>> DSA,R13 Addressability >>>>>> 114 * >>>>>> 115 * >>>>>> 116 * Issue LOAD >>> for >>>>>> CELQPIPI (will ABEND if LOAD fails) >>>>>> 117 * >>>>>> ----------------------- >>>>>> 118 * >>>>>> 119 WTO >>>>>> 'CEEWQPIP: LOADing CELQPIPI',ROUTCDE=11 >>>>>> 0000002C 121+ CNOP 0,4 >>>>>> 01-WTO >>>>>> 0000002C A715 0013 00000052 122+ BRAS >>>>>> 1,IHB0004A BRANCH AROUND MESSAGE @LCC 01-WTO >>>>>> 00000030 001E 123+ DC >>> AL2(30) >>>>>> TEXT LENGTH @YA17152 01-WTO >>>>>> 00000032 8000 124+ DC >>>>>> B'1000000000000000' MCSFLAGS 01-WTO >>>>>> 00000034 C3C5C5E6D8D7C9D7 125+ DC >>>>>> C'CEEWQPIP: LOADing CELQPIPI' X01-WTO >>>>>> 0000003C 7A40D3D6C1C48995 + >>>>>> MESSAGE TEXT @L6C >>>>>> 0000004E 0000 126+ DC >>>>>> B'0000000000000000' DESCRIPTOR CODES 01-WTO >>>>>> 00000050 0020 127+ DC >>>>>> B'0000000000100000' ROUTING CODES 01-WTO >>>>>> 00000052 128+IHB0004A DS 0H >>>>>> 01-WTO >>>>>> 00000052 0A23 129+ SVC 35 >>>>>> ISSUE SVC 35 @L6A 01-WTO >>>>>> 130 * >>>>>> 131 LOAD >>>>>> EP=CELQPIPI LOAD LE main module >>>>>> 00000054 133+ CNOP 0,4 >>>>>> @L2P 01-LOAD >>>>>> 00000054 A7F5 0006 00000060 134+ BRAS >>>>>> 15,LOAD2_0006 BRANCH AROUND CONSTANT(S) 01-LOAD >>>>>> 00000058 135+LD2_0006 DS 0H >>>>>> 01-LOAD >>>>>> 00000058 C3C5D3D8D7C9D7C9 136+LE2_0006 DC >>>>>> CL8'CELQPIPI' ENTRY POINT NAME 01-LOAD >>>>>> 00000060 137+LOAD2_0006 DS 0H >>>>>> 01-LOAD >>>>>> 00000060 4100 F000 00000000 138+ LA >>>>>> 0,LE2_0006-LD2_0006(,15) ADDR OF PARAMETER 01-LOAD >>>>>> 00000064 1B11 139+ SR 1,1 >>>>>> SHOW NO DCB PRESENT 01-LOAD >>>>>> 00000066 0A08 140+ SVC 8 >>>>>> 01-LOAD >>>>>> 00000068 E300 B366 0080 00000370 141 NG >>>>>> R0,=X'00000000FFFFFFFE' Clear low (AMODE64) bit >>>>>> 0000006E E300 D090 0024 00000090 142 STG >>>>>> R0,CELQPIPI_EP Save CELQPIPI E.P. Address >>>>>> 143 * >>>>>> 144 * >>>>>> 145 * Set up >>> Service >>>>>> Routine Vector and parm >>>>>> 146 * >>>>>> -------------------------------------- >>>>>> 147 * >>>>>> 00000074 D24F D0E0 B696 000000E0 000006A0 148 MVC >>>>>> SV_DYNAMIC,SV_STATIC Copy over into DSA >>>>>> 0000007A 41F0 D1E8 000001E8 149 LA >>>>>> R15,USER_AREA Point to 1000-byte user area >>>>>> 0000007E E3F0 D0E8 0024 000000E8 150 STG >>>>>> R15,SV_UWORD SV user word -> user area >>>>>> 00000084 41F0 D0E0 000000E0 151 LA >>>>>> R15,SV_DYNAMIC Address of modifiable SV >>>>>> 00000088 E3F0 D0A0 0024 000000A0 152 STG >>>>>> R15,SERVICE_RTNS Save as parm for INIT_MAIN >>>>>> 153 * >>>>>> 154 * >>>>>> 155 * Do >> CELQPIPI >>>>>> INIT_MAIN >>>>>> 156 * >>>>>> --------------------- >>>>>> 157 * >>>>>> 158 WTO >>>>>> 'CEEWQPIP: Doing CELQPIPI INIT_MAIN',ROUTCDE=11 >>>>>> 0000008E 0700 160+ CNOP 0,4 >>>>>> 01-WTO >>>>>> 00000090 A715 0017 000000BE 161+ BRAS >>>>>> 1,IHB0008A BRANCH AROUND MESSAGE @LCC 01-WTO >>>>>> 00000094 0026 162+ DC >>> AL2(38) >>>>>> TEXT LENGTH @YA17152 01-WTO >>>>>> 00000096 8000 163+ DC >>>>>> B'1000000000000000' MCSFLAGS 01-WTO >>>>>> 00000098 C3C5C5E6D8D7C9D7 164+ DC >>>>>> C'CEEWQPIP: Doing CELQPIPI INIT_MAIN' X01-WTO >>>>>> 000000A0 7A40C49689958740 + >>>>>> MESSAGE TEXT @L6C >>>>>> 000000BA 0000 165+ DC >>>>>> B'0000000000000000' DESCRIPTOR CODES 01-WTO >>>>>> i000000BC 0020 166+ DC >>>>>> B'0000000000100000' ROUTING CODES 01-WTO >>>>>> Sample AMODE64 PreInit DRIVER with service routines >>>>>> Page 6 >>>>>> Active Usings: CEEWQPIP+X'A',R11 DSA,R13 >>>>>> Loc Object Code Addr1 Addr2 Stmt Source Statement >>>>>> HLASM R6.0 2019/10/28 20.02 >>>>>> 000000BE 167+IHB0008A DS 0H >>>>>> 01-WTO >>>>>> 000000BE 0A23 168+ SVC 35 >>>>>> ISSUE SVC 35 @L6A 01-WTO >>>>>> 169 * >>>>>> 000000C0 B982 0000 170 XGR >> R0,R0 >>>>>> 000000C4 E3F0 D090 0004 00000090 171 LG >>>>>> R15,CELQPIPI_EP Address of CELQPIPI E.P. >>>>>> 172 * >>>>>> 174 CALL >> (15), >>>>>> X >>>>>> >>>>>> (INIT_MAIN, CELQPIPI INIT_MAIN request X >>>>>> >>>>>> CEEXPTBL_ADDR, Address of CELQPIPI table X >>>>>> >>>>>> SERVICE_RTNS, Address of service rtn vector X >>>>>> >>> TOKEN), >>>>>> Token from INIT_MAIN X >>>>>> >>>>>> MF=(E,CALL_PL) >>>>>> 000000CA 176+ DS 0H >>>>>> 01-CALL >>>>>> 000000CA 4110 D138 00000138 181+ LA >>>>>> 1,CALL_PL LOAD PARAMETER REG 1 03-IHBINNRR >>>>>> 000000CE 4100 B386 00000390 182+ LA >>>>>> 0,INIT_MAIN PICKUP PARAMETER 02-IHBOPLTX >>>>>> 000000D2 E300 1000 0024 00000000 183+ STG >>> 0,0(0,1) >>>>>> STORE INTO PARAM. LIST 02-IHBOPLTX >>>>>> 000000D8 4100 B57E 00000588 184+ LA >>>>>> 0,CEEXPTBL_ADDR PICKUP PARAMETER 02-IHBOPLTX >>>>>> 000000DC E300 1008 0024 00000008 185+ STG >>> 0,8(0,1) >>>>>> STORE INTO PARAM. LIST 02-IHBOPLTX >>>>>> 000000E2 4100 D0A0 000000A0 186+ LA >>>>>> 0,SERVICE_RTNS PICKUP PARAMETER 02-IHBOPLTX >>>>>> 000000E6 E300 1010 0024 00000010 187+ STG >>>>>> 0,16(0,1) STORE INTO PARAM. LIST 02-IHBOPLTX >>>>>> 000000EC 4100 D098 00000098 188+ LA >>> 0,TOKEN >>>>>> PICKUP PARAMETER 02-IHBOPLTX >>>>>> 000000F0 E300 1018 0024 00000018 189+ STG >>>>>> 0,24(0,1) STORE INTO PARAM. LIST 02-IHBOPLTX >>>>>> 000000F6 05EF 190+ BALR >> 14,15 >>>>>> BRANCH TO ENTRY POINT 01-CALL >>>>>> 191 * >>>>>> 192 * >>>>>> 193 * Check >>> results >>>>>> of INIT_MAIN >>>>>> 194 * >>>>>> 000000F8 B902 002F 195 LTGR >>>>>> >>>>>> -----Original Message----- >>>>>> From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On >>>>>> Behalf Of Jon Perryman >>>>>> Sent: Monday, October 28, 2019 8:38 PM >>>>>> To: IBM-MAIN@LISTSERV.UA.EDU >>>>>> Subject: Re: Return code X'20' 32 from CELQPIPI INIT_MAIN >>>>>> >>>>>> The CALL macro supports 32 and 64 bit parm addresses. I believe >>>>>> it defaults to 32 bit and the SYSSTATE macro is used to change it. >>>>>> Does CELQPITY require 64 bit parm list? If so, make sure you have >>>>>> SYSSTATE prior to the call. Also make sure SYSSTATE is before the >> CALL MF=L. >>>>>> >>>>>> I've never used TEST so I'm not familiar with the specifics. Your >>>>>> listing below seems to show it running the program with AMODE=31 >>>>>> and the L commands only display fullwords. Did you switch to >>>>>> AMODE64 >>> before calling CELQPITY? >>>>>> >>>>>> >>>>>> Jon. >>>>>> >>>>>> On Monday, October 28, 2019, 05:08:58 PM PDT, Joseph Reichman >>>>>> < reichman...@gmail.com <mailto:reichman...@gmail.com> > wrote: >>>>>> >>>>>> Just tried it with the service_rtns parm exactly as it was in the >>>>>> sample with the exception That the CELQPITY points to my 64 bit >>>>>> assembler program TEST64A program and do X'20' DECIMAL 32 >>>>>> >>>>>> CALL (15), >>>>>> X >>>>>> (INIT_MAIN, CELQPIPI INIT_MAIN request X >>>>>> CEEXPTBL_ADDR, Address of CELQPIPI table X >>>>>> SERVICE_RTNS, Address of service rtn vector >> X >>>>>> TOKEN), Token from INIT_MAIN >>>>>> X >>>>>> MF=(E,CALL_PL) >>>>>> >>>>>> I traced the CEEWQLOAD it loaded TEST64A which had bit 63 as a one >>>>>> After the load >>>>>> >>>>>> IKJ57382I ENTRY POINT AT 1F790140 AMODE=31 TEST L +F6 >>>>>> +F6 05EFB902 TEST AT +F6 TEST AT +F8 TEST GO >>>>>> CEEWQPIP: LOADing CELQPIPI >>>>>> CEEWQPIP: Doing CELQPIPI INIT_MAIN IKJ57024I AT +F6 TEST GO >>>>>> CEEWQLOD: Called to LOAD "TEST64A " IKJ57024I AT +F8 TEST L 15R >>>>>> 15R >>>>>> 00000020 >>>>>> >>>>>> ------------------------------------------------------------------ >>>>>> ---- For IBM-MAIN subscribe / signoff / archive access >>>>>> instructions, send email to lists...@listserv.ua.edu >>>>>> <mailto: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 >>>>> >>>>> ------------------------------------------------------------------- >>>>> --- 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 >>> >> >> >> -- >> >> >> >> *IDMWORKS * >> >> Scott Ford >> >> z/OS Dev. >> >> >> >> >> “By elevating a friend or Collegue you elevate yourself, by demeaning a >> friend or collegue you demean yourself” >> >> >> >> www.idmworks.com >> >> scott.f...@idmworks.com >> >> Blog: www.idmworks.com/blog >> >> >> >> >> >> *The information contained in this email message and any attachment may be >> privileged, confidential, proprietary or otherwise protected from >> disclosure. If the reader of this message is not the intended recipient, >> you are hereby notified that any dissemination, distribution, copying or >> use of this message and any attachment is strictly prohibited. If you have >> received this message in error, please notify us immediately by replying to >> the message and permanently delete it from your computer and destroy any >> printout thereof.* >> >> ---------------------------------------------------------------------- >> 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 >> > > > -- > > > > *IDMWORKS * > > Scott Ford > > z/OS Dev. > > > > > “By elevating a friend or Collegue you elevate yourself, by demeaning a > friend or collegue you demean yourself” > > > > www.idmworks.com > > scott.f...@idmworks.com > > Blog: www.idmworks.com/blog > > > > > > *The information contained in this email message and any attachment may be > privileged, confidential, proprietary or otherwise protected from > disclosure. If the reader of this message is not the intended recipient, > you are hereby notified that any dissemination, distribution, copying or > use of this message and any attachment is strictly prohibited. If you have > received this message in error, please notify us immediately by replying to > the message and permanently delete it from your computer and destroy any > printout thereof.* > > ---------------------------------------------------------------------- > 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