An example CICS® assembler program and the
corresponding code after it is translated demonstrate the result of
translating an assembler program using the LEASM option. This translator
option generates code for a Language Environment-conforming assembler
MAIN program.
Figure 1 shows a simple CICS assembler language program. Figure 1. A simple CICS
assembler language program
*ASM XOPTS(LEASM)
DFHEISTG DSECT
OUTAREA DS CL200 DATA OUTPUT AREA
*
TESTLE DFHEIENT CODEREG=R3
MVC OUTAREA(40),MSG1
MVC OUTAREA(4),EIBTRMID
EXEC CICS SEND TEXT FROM(OUTAREA) LENGTH(43) FREEKB ERASE
EXEC CICS RECEIVE
MVC OUTAREA(13),MSG2
EXEC CICS SEND TEXT FROM(OUTAREA) LENGTH(13) FREEKB ERASE
EXEC CICS RETURN
*
MSG1 DC C'xxxx: ASM program invoked. ENTER TO END.'
MSG2 DC C'PROGRAM ENDED'
DFHREGS
CODEREG EQU R3
END
The code below shows the result after the program is translated and assembled:
1 *ASM XOPTS(LEASM)
2 DFHEIGBL ,,,LE INSERTED BY TRANSLATOR
3+*,&DFHEIDL SETB 0 1 MEANS EXEC DLI IN PROGRAM 01-DFHEI
4+*,&DFHEIDB SETB 0 1 MEANS BATCH PROGRAM 01-DFHEI
5+*,&DFHEIRS SETB 0 1 MEANS RSECT 01-DFHEI
6+*,&DFHEILE SETB 1 1 MEANS LE MAIN 01-DFHEI
000000 00000 002C8 7 DFHEISTG DSECT
8 DFHEISTG INSERTED BY TRANSLATOR
10+***********************************************************************
11+* EXEC INTERFACE DYNAMIC STORAGE *
12+***********************************************************************
000000 00000 002C8 13+DFHEISTG DSECT EXEC INTERFACE STORAGE @BBAC81A 01-DFHEI
R:D 00000 14+ USING *,DFHEIPLR ESTABLISH ADDRESSABILITY @BBAC81A 01-DFHEI
16+*
17+**********************************************************************
18+* D Y N A M I C S T O R A G E A R E A ( D S A ) *
19+**********************************************************************
20+*
000000 21+CEEDSA DS 0D Just keep the same label for formulae 02-CEEDS
22+*
000000 23+CEEDSAFLAGS DS XL2 DSA flags 02-CEEDS
01000 24+CEEDSALNGC EQU X'1000' C library DSA 02-CEEDS
00800 25+CEEDSALNGP EQU X'0800' PL/I library DSA 02-CEEDS
00008 26+CEEDSAEXIT EQU X'0008' An Exit DSA 02-CEEDS
000002 27+CEEDSAMEMD DS XL2 Member defined 02-CEEDS
000004 28+CEEDSABKC DS A Addr of DSA of caller 02-CEEDS
000008 29+CEEDSAFWC DS A Addr of DSA of last called rtn 02-CEEDS
00000C 30+CEEDSAR14 DS F Save area for register 14 02-CEEDS
000010 31+CEEDSAR15 DS F Save area for register 15 02-CEEDS
000014 32+CEEDSAR0 DS F Save area for register 0 02-CEEDS
000018 33+CEEDSAR1 DS F Save area for register 1 02-CEEDS
00001C 34+CEEDSAR2 DS F Save area for register 2 02-CEEDS
000020 35+CEEDSAR3 DS F Save area for register 3 02-CEEDS
000024 36+CEEDSAR4 DS F Save area for register 4 02-CEEDS
000028 37+CEEDSAR5 DS F Save area for register 5 02-CEEDS
00002C 38+CEEDSAR6 DS F Save area for register 6 02-CEEDS
000030 39+CEEDSAR7 DS F Save area for register 7 02-CEEDS
000034 40+CEEDSAR8 DS F Save area for register 8 02-CEEDS
000038 41+CEEDSAR9 DS F Save area for register 9 02-CEEDS
00003C 42+CEEDSAR10 DS F Save area for register 10 02-CEEDS
000040 43+CEEDSAR11 DS F Save area for register 11 02-CEEDS
000044 44+CEEDSAR12 DS F Save area for register 12 02-CEEDS
000048 45+CEEDSALWS DS A Addr of PL/I Language Working Space 02-CEEDS
00004C 46+CEEDSANAB DS A Addr of next available byte 02-CEEDS
000050 47+CEEDSAPNAB DS A Addr of end-of-prolog NAB 02-CEEDS
000054 48+ DS 4F 02-CEEDS
000064 49+CEEDSATRAN DS 0A HPL TxArea or 02-CEEDS
000064 50+CEEDSARENT DS A Program reentry address-IPAT 02-CEEDS
000068 51+CEEDSACILC DS A C to Fortran ILC save area 02-CEEDS
00006C 52+CEEDSAMODE DS A Return address of module that 02-CEEDS
53+* caused the last mode switch
000070 54+ DS 2F 02-CEEDS
000078 55+CEEDSARMR DS A Addr of language specific 02-CEEDS
56+* exception handler
57+*
00007C 58+ DS F Reserved 02-CEEDS
000080 59+CEEDSAAUTO DS 0D Automatic storage starts here 02-CEEDS
000080 60+CEEDSAEND DS 0D End of DSA 02-CEEDS
00080 61+CEEDSASZ EQU CEEDSAEND-CEEDSA Size of DSA 02-CEEDS
00000 62+CEEDSA_STDCEEDSA EQU X'0000' flag values of standard CEE DSA 02-CEEDS
63+*
64+*
65+*
000080 66+DFHEISA DS 18F SAVE AREA R14-R12 AT 12 OFF @BBAC81A 01-DFHEI
0000C8 67+DFHEILWS DS F RESERVED @BBAC81A 01-DFHEI
0000CC 68+DFHEINAB DS F RESERVED @BBAC81A 01-DFHEI
0000D0 69+DFHEIRS0 DS F RESERVED @BBAC81A 01-DFHEI
0000D4 70+DFHEIR13 DS F REGISTER 13 @BBAC81A 01-DFHEI
0000D8 71+DFHEIRS1 DS F RESERVED @BBAC81A 01-DFHEI
0000DC 72+DFHEIBP DS F EIB POINTER (NOT USED IF BATCH) 01-DFHEI
0000E0 73+DFHEICAP DS F COMMAREA POINTER (NOT USED IF BATCH) 01-DFHEI
0000E4 74+DFHEIV00 DS H HALFWORD TEMP USED BY DFHECALL 01-DFHEI
0000E6 75+DFHEIRS2 DS H RESERVED @BBAC81A 01-DFHEI
0000E8 76+DFHEIPL DS 13F PARAMETER LIST @05C 01-DFHEI
00011C 77+ DS 51F ALLOW 64 PARAMETERS FOR DLI @L2A 01-DFHEI
78+* AND IN XA2 ON, FOR EXEC CICS ALSO
0001E8 79+DFHEIRS3 DS F FULLWORD TEMP USED BY DFHECALL @06C 01-DFHEI
0001EC 80+DFHEIRS4 DS F RESERVED @L2A 01-DFHEI
0001F0 81+DFHEITP1 DS F TEMPORARY POINTER 1 @L2A 01-DFHEI
0001F4 82+DFHEITP2 DS F TEMPORARY POINTER 2 @L2A 01-DFHEI
0001F8 83+DFHEITP3 DS F TEMPORARY POINTER 3 @L2A 01-DFHEI
0001FC 84+DFHEITP4 DS F TEMPORARY POINTER 4 @L2A 01-DFHEI
85+***********************************************************************
86+* START DEFINITION OF USER DYNAMIC STORAGE *
87+***********************************************************************
000200 88+DFHEIUSR DS 0D ALIGN USER DYNAMIC STORAGE @BBAC81A 01-DFHEI
89+*
000200 90 OUTAREA DS CL200 DATA OUTPUT AREA
91 *
92 TESTLE DFHEIENT CODEREG=R3
0002C8 186+ DC 0SL2(((R3-12)/(R3-12))-1) X01-DFHEI
+ Assembly error if register 12 used for CODEREG @PBA
0002C8 187+ DC 0SL2(((R3-2)/(R3-2))-1) X01-DFHEI
+ Assembly error if register 2 used for CODEREG @PBA
188+***********************************************************************
189+* *
190+* CONTROL BLOCK NAME = DFHEIBLK *
191+* *
192+* NAME OF MATCHING PL/AS CONTROL BLOCK = None *
193+* *
194+* DESCRIPTIVE NAME = CICS TS EXEC Interface Block. *
195+* *
196+* *
197+* *
198+* Licensed Materials - Property of IBM *
199+* *
200+* "Restricted Materials of IBM" *
201+* *
202+* 5655-Y04 *
203+* *
204+* (C) Copyright IBM Corp. 1990, 1993" *
205+* *
206+* *
207+* *
208+* *
209+* STATUS = 7.3.0 *
210+* *
211+* FUNCTION = EXEC Interface Block. *
212+* *
213+* The exec interface block contains information on the *
214+* transaction identifier, the time and date, and the cursor *
215+* position on a display device. Some of the other fields are *
216+* set indicating the next action that a program should take *
217+* in certain circumstances. *
218+* DFHEIBLK also contains information that will be helpful *
219+* when a dump is being used to debug a program. *
220+* This control block is included automatically by an *
221+* application program using the command-level interface. *
222+* EISEIBA in the EIS addresses the EIB. *
223+* *
224+* *
225+* *
226+* NOTES : *
227+* DEPENDENCIES = S/370 *
228+* MODULE TYPE = Control block definition *
229+* PROCESSOR = Assembler *
230+* *
231+*-------------------------------------------------------------------- *
232+* *
233+* CHANGE ACTIVITY : *
234+* $SEG(DFHEIBLK),COMP(COMMAND),PROD(CICS TS ) : *
235+* *
236+* PN= REASON REL YYMMDD HDXXIII : REMARKS *
237+* $L1= 550 321 900515 HDFSPC : Add an EIB length equate *
238+* $D1= I05119 410 930226 HDDHDMA : Correct comments for date field *
239+* $P1= M60581 320 900116 HDAEGB : Change for PLXMAP to data areas *
240+* *
241+***********************************************************************
242+* EXEC INTERFACE BLOCK *
243+***********************************************************************
000000 00000 00055 244+DFHEIBLK DSECT EXEC INTERFACE BLOCK @BBAC81A 01-DFHEI
R:B 00000 245+ USING *,DFHEIBR @BBAC81A 01-DFHEI
000000 246+EIBTIME DS PL4 TIME IN 0HHMMSS FORMAT @BBAC81A 01-DFHEI
000004 247+EIBDATE DS PL4 DATE IN 0CYYDDD+ FORMAT, @D1C 01-DFHEI
248+* where C is the century @D1A
249+* indicator (0=1900, 1=2000), @D1A
250+* YY is the year, DDD is the @D1A
251+* day number and '+' is the @D1A
252+* sign byte (positive) @D1A
000008 253+EIBTRNID DS CL4 TRANSACTION IDENTIFIER @BBAC81A 01-DFHEI
00000C 254+EIBTASKN DS PL4 TASK NUMBER @BBAC81A 01-DFHEI
000010 255+EIBTRMID DS CL4 TERMINAL IDENTIFIER @BBAC81A 01-DFHEI
000014 256+EIBRSVD1 DS H RESERVED @BBAC81A 01-DFHEI
000016 257+EIBCPOSN DS H CURSOR POSITION @BBAC81A 01-DFHEI
000018 258+EIBCALEN DS H COMMAREA LENGTH @BBAC81A 01-DFHEI
00001A 259+EIBAID DS CL1 ATTENTION IDENTIFIER @BBAC81A 01-DFHEI
00001B 260+EIBFN DS CL2 FUNCTION CODE @BBAC81A 01-DFHEI
00001D 261+EIBRCODE DS CL6 RESPONSE CODE @BBAC81A 01-DFHEI
000023 262+EIBDS DS CL8 DATASET NAME @BBAC81A 01-DFHEI
00002B 263+EIBREQID DS CL8 REQUEST IDENTIFIER @BBAC81A 01-DFHEI
000033 264+EIBRSRCE DS CL8 RESOURCE NAME @BBDIA0U 01-DFHEI
00003B 265+EIBSYNC DS C X'FF' SYNCPOINT REQUESTED @BBDIA0U 01-DFHEI
00003C 266+EIBFREE DS C X'FF' FREE REQUESTED @BBDIA0U 01-DFHEI
00003D 267+EIBRECV DS C X'FF' RECEIVE REQUIRED @BBDIA0U 01-DFHEI
00003E 268+EIBSEND DS C RESERVED @BM13417 01-DFHEI
00003F 269+EIBATT DS C X'FF' ATTACH RECEIVED @BBDIA0U 01-DFHEI
000040 270+EIBEOC DS C X'FF' EOC RECEIVED @BBDIA0U 01-DFHEI
000041 271+EIBFMH DS C X'FF' FMHS RECEIVED @BBDIA0U 01-DFHEI
000042 272+EIBCOMPL DS C X'FF' DATA COMPLETE 01-DFHEI
000043 273+EIBSIG DS C X'FF' SIGNAL RECEIVED 01-DFHEI
000044 274+EIBCONF DS C X'FF' CONFIRM REQUESTED 01-DFHEI
000045 275+EIBERR DS C X'FF' ERROR RECEIVED 01-DFHEI
000046 276+EIBERRCD DS CL4 ERROR CODE RECEIVED 01-DFHEI
00004A 277+EIBSYNRB DS C X'FF' SYNC ROLLBACK REQ'D 01-DFHEI
00004B 278+EIBNODAT DS C X'FF' NO APPL DATA RECEIVED 01-DFHEI
00004C 279+EIBRESP DS F INTERNAL CONDITION NUMBER 01-DFHEI
000050 280+EIBRESP2 DS F MORE DETAILS ON SOME RESPONSES 01-DFHEI
000054 281+EIBRLDBK DS CL1 ROLLED BACK 01-DFHEI
282+*
00055 283+EIBLENG EQU *-EIBTIME Length of EIB @L1A 01-DFHEI
284+***********************************************************************
285+* END OF EXEC INTERFACE BLOCK *
286+***********************************************************************
0000B 287+DFHEIBR EQU 11 EIB REGISTER @BA02936 01-DFHEI
290+***********************************************************************
291+* PROLOG CODE FOR EXEC INTERFACE *
292+***********************************************************************
293+*&DFHEICS CEEENTRY PPA=DFHPPA,MAIN=YES,PLIST=OS,
294+* BASE=&CODEREG,
295+* AUTO=(DFHEIEND-DFHEISTG)
000000 00000 0020C 297+TESTLE CSECT , 02-CEEEN
298+TESTLE RMODE ANY @D2A 02-CEEEN
299+TESTLE AMODE ANY @D2A 02-CEEEN
300+ ENTRY TESTLE 02-CEEEN
301+ PUSH USING 02-CEEEN
302+ DROP , @02A 02-CEEEN
R:F 00000 303+ USING *,15 02-CEEEN
000000 47F0 F014 00014 304+ B CEEZ0009 02-CEEEN
000004 00C3C5C5 305+ DC X'00C3C5C5' @D3C 02-CEEEN
002C8 306+CEEY0009 EQU (((DFHEIEND-DFHEISTG)+7)/8)*8 X02-CEEEN
+ . Size of automatic storage. @P1A
000008 000002C8 307+ DC A(CEEY0009) . Size of automatic storage. @P1C 02-CEEEN
00000C 00000080 308+ DC A(DFHPPA-TESTLE) . Address of PPA for this program 02-CEEEN
000010 47F0 F001 00001 309+ B 1(,15) 02-CEEEN
00014 310+CEEZ0009 EQU * 02-CEEEN
000014 90EC D00C 0000C 311+ STM 14,12,CEEDSAR14-CEEDSA(13) 02-CEEEN
000018 5820 F050 00050 312+ L 2,CEEINPL0009 R2=addr(CEEINPL) 5@01D @01C 02-CEEEN
00001C 58F0 F054 00054 313+ L 15,CEEINT0009 R15=addr(CEEINT) @01C 02-CEEEN
314+ DROP 15 @01A 02-CEEEN
000020 05EF 315+ BALR 14,15 Call CEEINT to init LE 02-CEEEN
000022 1821 316+ LR 2,1 Save input R1 value temporarily 02-CEEEN
000024 58E0 C2F0 002F0 317+ L 14,752(,12) Get EDB address 02-CEEEN
000028 9680 E008 00008 318+ OI 8(14),X'80' Turn CEEEDBMAINI flag ON 02-CEEEN
00002C 5810 D04C 0004C 319+ L 1,CEEDSANAB-CEEDSA(,13) Get the current NAB 02-CEEEN
000030 A502 0000 320+ IILH 0,CEEY0009/65536 Load high half of AUTO size@P1A 02-CEEEN
000034 A503 02C8 321+ IILL 0,CEEY0009-(CEEY0009/65536*65536) and low @P1A 02-CEEEN
000038 1E01 322+ ALR 0,1 Compute new value. 02-CEEEN
00003A 5500 C00C 0000C 323+ CL 0,CEECAAEOS-CEECAA(,12) Compare with EOS. 02-CEEEN
00003E A7D4 000D 00058 324+ JNH CEEX0009 @P1C 02-CEEEN
000042 58F0 C2BC 002BC 325+ L 15,CEECAAGETS-CEECAA(,12) Get address overflow routine 02-CEEEN
000046 05EF 326+ BALR 14,15 Get another stack segment. 02-CEEEN
000048 181F 327+ LR 1,15 02-CEEEN
00004A A7F4 0007 00058 328+ J CEEX0009 Branch around statics @P1C 02-CEEEN
00004E 0000
000050 000000A8 329+CEEINPL0009 DC A(CEEINPL) @01A 02-CEEEN
000054 00000000 330+CEEINT0009 DC V(CEEINT) @01A 02-CEEEN
00058 331+CEEX0009 EQU * 02-CEEEN
000058 50D0 1004 00004 332+ ST 13,CEEDSABKC-CEEDSA(,1) Set back chain. 02-CEEEN
00005C 5000 104C 0004C 333+ ST 0,CEEDSANAB-CEEDSA(,1) Set new NAB value 02-CEEEN
000060 D701 1000 1000 00000 00000 334+ XC CEEDSAFLAGS-CEEDSA(,1),CEEDSAFLAGS-CEEDSA(1) . Clear 02-CEEEN
000066 5010 D008 00008 335+ ST 1,CEEDSAFWC-CEEDSA(,13) Set forward chain. 02-CEEEN
00006A 18D1 336+ LR 13,1 Set save area address 02-CEEEN
337+ POP USING Clear any temporary usings @P1M 02-CEEEN
R:D 00000 338+ USING CEEDSA,13 Addresability to SF V1R2M0 02-CEEEN
00006C D203 D048 C280 00048 00280 339+ MVC CEEDSALWS,CEECAALWS-CEECAA(12) Get LWS addr V1R2M0 02-CEEEN
000072 1812 340+ LR 1,2 Move input r1 value to PARMREG 02-CEEEN
000074 C030 FFFF FFC6 00000 341+ LARL R3,TESTLE Load EP into 1st base reg @P1C 02-CEEEN
R:3 00000 342+ USING TESTLE,R3 @P1M 02-CEEEN
00007A A7F4 003F 000F8 343+ J SKIPLE0005 Branch round LE definitions @PCC 01-DFHEI
345+*/******************************************************************/
346+*/* */
347+*/* Licensed Materials - Property of IBM */
348+*/* */
349+*/* 5650-ZOS 5688-198 */
350+*/* */
351+*/* Copyright IBM Corp. 1991, 2017 */
352+*/* */
353+*/* Status = HLE77B0 */
354+*/* */
355+*/******************************************************************/
356+*
357+**********************************************************************
358+* P R O G R A M P R O L O G A R E A 1 ( P P A 1) *
359+**********************************************************************
360+*
000080 361+PPA10010 DS 0F 02-CEEPP
000080 362+DFHPPA DS 0F 02-CEEPP
000080 20 363+ DC AL1(PPANL0010-*) Offset to the entry name length 02-CEEPP
000081 CE 364+ DC X'CE' LE/370 Indicator. 02-CEEPP
000082 A0 365+ DC B'10100000' . PPA flags 02-CEEPP
366+* @P4C
367+* Bit 0 0 = Internal Procedure
368+* 1 = External Procedure
369+* Bit 1 0 = Primary Entry Point
370+* 1 = Secondary Entry Point
371+* Bit 2 0 = Block doesn't have a DSA
372+* 1 = Block has a DSA
373+* Bit 3 0 = compiled object
374+* 1 = library object
375+* Bit 4 0 = sampling interrupts to library
376+* 1 = sampling interrupts to code
377+* Bit 5 0 = not an exit DSA
378+* 1 = Exit DSA
379+* Bit 6 0 = own exception model
380+* 1 = inherited (callers) exception model
381+* Bit 7 Reserved @P4C
000083 00 382+ DC X'00' Member flags 02-CEEPP
000084 000000D0 383+ DC A(PPA20010) Addr of Compile Unit Block (PPA2) @D4A 02-CEEPP
000088 00000000 384+ DC A(0) Blk Debug Info 02-CEEPP
00008C 00000000 385+ DC A(0) Data Descriptors for this entry point 02-CEEPP
000090 00000000 386+ DC A(0) GPR save bit mask X'10' @D2A 02-CEEPP
000094 00000000 387+ DC A(0) Member PPA1 word X'14' @D2A 02-CEEPP
000098 00000000 388+ DC A(0) Offset X'18' @D2A 02-CEEPP
389+* Language Environment flags (16bits) Offset X'1C' @D2A
00009C 00 390+ DC B'00000000' @D2A 02-CEEPP
391+* Bit 0-1 00 = Old code entry performs full save @D2A
392+* 01 = Old code performs partial save @D2A
393+* 10 = Old code performs partial save+R12 @D2A
394+* Bit 2 0 = Allow asynchronous exceptions @D2A
395+* 1 = Defer asynchronous exceptions @D2A
396+* Bit 3 0 = Word 0 of SA not initialized @D2A
397+* 1 = Word 0 of SA initialized @D2A
398+* Bit 4 0 = Code is nonexternal glue @D2A
399+* 1 = Code is external glue @D2A
400+* Bit 5 0 = Real return addr saved in SA at @D2A
401+* offset '0C'X @D2A
402+* 1 = Real return addr saved in linkage @D2A
403+* area @D2A
404+* Bit 6 0 = Storage argument area start @D2A
405+* indeterminate @D2A
406+* 1 = Storage argument area start valid @D2A
407+* Bit 7 0 = R12 must contain CAA address upon @D2A
408+* old code entry @D2A
409+* 1 = R12 not defined upon old code entry@D2A
00009D 00 410+ DC B'00000000' @P4C 02-CEEPP
411+* Bit 8 0 = Not vararg routine @D2A
412+* 1 = Vararg routine @D2A
413+* Bit 9 0 = Asynchronous interrupts unsupported@D2A
414+* 1 = Asynchronous interrupts supported @D2A
415+* Bit 10 0 = No module service level @D2A
416+* 1 = Module service level applied @D2A
417+* Bit 11-13 = Reserved @P4C
418+* Bit 14 0 = extended flag area not present @P4A
419+* 1 = extended flag area present @P4A
420+* Bit 15 = Reserved @P4A
00009E 0000 421+ DC AL2(0) Offset/2 to code desc list @P4A 02-CEEPP
0000A0 422+ DS 0H 02-CEEPP
0000A0 0006 423+PPANL0010 DC AL2(6) . Length of Entry Point Name 02-CEEPP
0000A2 E3C5E2E3D3C5 424+ DC CL6'TESTLE' . Entry Point Name 02-CEEPP
0000A8 425+CEEINPL DS 0D 02-CEEPP
0000A8 000000CC 426+ DC A(INPLEPA) . A of A(first entry point in CU) @D4C 02-CEEPP
0000AC 00000008 427+ DC A(CEEINPLSTST-CEEINPL) 02-CEEPP
0000B0 428+CEEINPLSTST DS 0F 02-CEEPP
0000B0 00 429+ DC X'00' Control Level @01A 02-CEEPP
0000B1 00 430+ DC X'00' ENCLAVE=NO @01A 02-CEEPP
0000B2 00 431+ DC X'00' @01A 02-CEEPP
0000B3 07 432+ DC X'07' Number of items. @01C 02-CEEPP
0000B4 000000CC 433+ DC A(INPLEPA) . A of A(first entry point in CU) @D4C 02-CEEPP
0000B8 00000000 434+ DC V(CEESTART) . A(Address of CEESTART) 02-CEEPP
0000BC 00000000 435+ DC V(CEEBETBL) 02-CEEPP
0000C0 0000000F 436+ DC A(15) . Memeber id 02-CEEPP
0000C4 00000000 437+ DC A(0) 02-CEEPP
0000C8 00070000 438+ DC XL4'00070000' . EXECOPS(ON), PLIST 02-CEEPP
0000CC 00000000 439+INPLEPA DC A(TESTLE) . A(first entry point in CU) @D4A 02-CEEPP
0000D0 440+ DS 0H 02-CEEPP
441+*
442+**********************************************************************
443+* P R O G R A M P R O L O G A R E A 2 ( P P A 2) *
444+**********************************************************************
445+*
446+ EXTRN CEESTART 02-CEEPP
0000D0 447+PPA20010 DS 0F 02-CEEPP
0000D0 0F 448+ DC AL1(15) Member ID 02-CEEPP
0000D1 00 449+ DC AL1(0) Sub ID 02-CEEPP
0000D2 00 450+ DC AL1(0) Member defined 02-CEEPP
0000D3 01 451+ DC AL1(1) Level of PPAx control blocks @D4C 02-CEEPP
0000D4 00000000 452+PPA2S0010 DC A(CEESTART) A(CEESTART for this load module) 02-CEEPP
0000D8 00000000 453+ DC A(0) A(Compile Debug Information (CDI) ) 02-CEEPP
0000DC 00000014 454+ DC A(CEETIMES-PPA20010) A(Offset to time stamp) 02-CEEPP
0000E0 00000000 455+PPA2M0010 DC A(TESTLE) . A(first entry point in comp. unit) 02-CEEPP
456+*
457+**********************************************************************
458+* T I M E S T A M P *
459+**********************************************************************
460+*
461+* Time Stamp
462+*,Time Stamp = 2020/02/19 14:08:00 02-CEEPP
463+*,Version 1 Release 1 Modification 0 02-CEEPP
0000E4 464+CEETIMES DS 0F 02-CEEPP
0000E4 F2F0F2F0 465+ DC CL4'2020' Year 02-CEEPP
0000E8 F0F2 466+ DC CL2'02' Month 02-CEEPP
0000EA F1F9 467+ DC CL2'19' Day 02-CEEPP
0000EC F1F4 468+ DC CL2'14' Hours 02-CEEPP
0000EE F0F8 469+ DC CL2'08' Minutes 02-CEEPP
0000F0 F0F0 470+ DC CL2'00' Seconds 02-CEEPP
0000F2 F140 471+ DC CL2'1' Version 02-CEEPP
0000F4 F140 472+ DC CL2'1' Release 02-CEEPP
0000F6 F040 473+ DC CL2'0' Modification 02-CEEPP
475+***********************************************************************
476+* C O M M O N A N C H O R A R E A ( C A A ) *
477+***********************************************************************
478+*
480+***********************************************************************
481+***********************************************************************
00004 482+LEPTRLEN EQU 4 03-CEEDN
483+*
000000 00000 00400 484+CEECAA DSECT , CAA mapping 02-CEECA
000000 485+CEECAAFLAG0 DS X CAA Flags 02-CEECA
00002 486+CEECAAXHDL EQU X'02' Bypass exception handling 02-CEECA
487+* EQU X'FD' Reserved
000001 488+ DS X Reserved 02-CEECA
00020 489+CEECAADBGINIT EQU X'20' Debugger is initialized 02-CEECA
000002 490+CEECAALANGP DS X PL/I compatibility flags 02-CEECA
00008 491+CEECAATHFN EQU X'08' If set, NO PL/I FINISH 02-CEECA
492+* on-unit active
493+* EQU X'F7' Reserved
000003 494+ DS XL5 Reserved 02-CEECA
000008 495+CEECAABOS DS A Start of current storage segment 02-CEECA
00000C 496+CEECAAEOS DS A End of current storage segment 02-CEECA
000010 497+ DS XL52 Reserved 02-CEECA
000044 498+CEECAATORC DS F Thread level return code 02-CEECA
000048 499+ DS XL44 Reserved @CM0419C 02-CEECA
000074 500+CEECAATOVF DS A Stack overflow routine @CM0419A 02-CEECA
000078 501+ DS XL168 Reserved @CM0419A 02-CEECA
000120 502+CEECAAATTN DS A Addr of LE/370 attention handler 02-CEECA
503+*
000124 504+ DS XL56 Reserved 02-CEECA
00015C 505+CEECAAHLLEXIT DS A Set by CEEBINT for user hook exit 02-CEECA
000160 506+ DS XL56 Reserved 02-CEECA
000198 507+CEECAAHOOK DS XL12 Code to pass control 02-CEECA
0001A4 508+CEECAADIMA DS A A(debugger entry) 02-CEECA
509+*
0001A8 510+CEECAAHOOKS DS 0CL68 Hook control words for debugger@G3C 02-CEECA
0001A8 511+CEECAAALLOC DS XL4 ALLOCATE descr. built 02-CEECA
00021F 567+CEECAASPCFLAG3 DS X 02-CEECA
000220 568+CEECAACIO DS A Address oc cio 02-CEECA
000224 569+CEECAAFDSETFD DS F Used by FD_* macros 02-CEECA
000228 570+CEECAAFCBMUTEXOK DS XL2 02-CEECA
00022A 571+ DS XL2 02-CEECA
00022C 572+CEECAATC16 DS F 02-CEECA
000230 573+CEECAATC17 DS F 02-CEECA
000234 574+CEECAAEDCOV DS A C/370 Open Libvec 02-CEECA
000238 575+CEECAACTOFSV DS F 02-CEECA
00023C 576+CEECAATRTSPACE DS A C/370 Open Libvec 02-CEECA
000240 577+ DS XL24 02-CEECA
000258 578+CEECAA_TCASRV DS 0CL36 TCA Service Rtn Vector 02-CEECA
000258 579+CEECAA_TCASRV_USERWORD DS A 02-CEECA
00025C 580+CEECAA_TCASRV_WORKAREA DS A 02-CEECA
000260 581+CEECAA_TCASRV_GETMAIN DS A 02-CEECA
000264 582+CEECAA_TCASRV_FREEMAIN DS A 02-CEECA
000268 583+CEECAA_TCASRV_LOAD DS A 02-CEECA
00026C 584+CEECAA_TCASRV_DELETE DS A 02-CEECA
000270 585+CEECAA_TCASRV_EXCEPTION DS A 02-CEECA
000274 586+CEECAA_TCASRV_ATTENTION DS A 02-CEECA
000278 587+CEECAA_TCASRV_MESSAGE DS A 02-CEECA
00027C 588+ DS XL4 Reserved 02-CEECA
000280 589+CEECAALWS DS A Addr of PL/I Language Working Space 02-CEECA
000284 590+CEECAASAVR DS A Register save @CM0419A 02-CEECA
000288 591+ DS XL36 Reserved @P6C 02-CEECA
592+*
0002AC 593+CEECAASYSTM DS X Underlying Operating System@MF0072A 02-CEECA
00000 594+CEECAASYUND EQU X'00' undefined @MF0072A 02-CEECA
00001 595+CEECAASYUNS EQU X'01' unsupported @MF0072A 02-CEECA
00002 596+CEECAASYVM EQU X'02' VM @MF0072A 02-CEECA
00003 597+CEECAASYMVS EQU X'03' MVS @MF0072A 02-CEECA
0002AD 598+CEECAAHRDWR DS X Underlying Hardware @MF0072A 02-CEECA
00000 599+CEECAAHWUND EQU X'00' undefined @MF0072A 02-CEECA
00001 600+CEECAAHWUNS EQU X'01' unsupported @MF0072A 02-CEECA
00002 601+CEECAAHW370 EQU X'02' System / 370 non-XA @MF0072A 02-CEECA
00003 602+CEECAAHWXA EQU X'03' System / 370 XA @MF0072A 02-CEECA
00004 603+CEECAAHWESA EQU X'04' System / 370 ESA @MF0072A 02-CEECA
0002AE 604+CEECAASBSYS DS X Underlying Subsystem @MF0072A 02-CEECA
00000 605+CEECAASSUND EQU X'00' undefined @MF0072A 02-CEECA
00001 606+CEECAASSUNS EQU X'01' unsupported @MF0072A 02-CEECA
00002 607+CEECAASSNON EQU X'02' no subsystem @MF0072A 02-CEECA
00003 608+CEECAASSTSO EQU X'03' TSO @MF0072A 02-CEECA
00005 609+CEECAASSCIC EQU X'05' CICS @MF0072A 02-CEECA
0002AF 610+CEECAAFLAG2 DS X @MF0072A 02-CEECA
00080 611+CEECAABIMODAL EQU X'80' Bimodal addressing @MF0072A 02-CEECA
00040 612+CEECAA_VECTOR EQU X'40' vector hardware available @MF0072A 02-CEECA
00020 613+CEECAATIP EQU X'20' Thread termination in progress 02-CEECA
00010 614+CEECAA_THREAD_INITIAL EQU X'10' if on, indicates this is the IPT 02-CEECA
00008 615+CEECAA_TRACE_ACTIVE EQU X'08' If on, library trace is active 02-CEECA
616+* (TRACE runtime option was set)
00004 617+CEECAA_ALTSTK_ACTIVE EQU X'04' If on, alt stack active @KCG0034 02-CEECA
00002 618+CEECAA_ENQ_WAIT_INTERRUPTABLE EQU X'02' PL/I doing Exclusive KN80230 02-CEECA
619+* file in Multitasking KN80230
00001 620+CEECAA_USRSTK_ACTIVE EQU X'01' If on, context switching user stack 02-CEECA
621+* is active PQ04250
622+*
0002B0 623+CEECAALEVEL DS X LE/370 level identifier 02-CEECA
0001C 624+CEL_LEVEL_IDENTIFIER EQU X'1C' @E8C 02-CEECA
0002B1 625+CEECAA_PM DS X PROGRAM MASK @NX0166C 02-CEECA
0002B2 626+CEECAA_INVAR DS XL2 At same offset in 31 & 64 mode @G3C 02-CEECA
0002B4 627+CEECAAGETLS DS A ADDR OF LE/370 LIBRARY STACK MGR 02-CEECA
0002B8 628+CEECAACELV DS A Addr of LE/370 LIBVEC 02-CEECA
0002BC 629+CEECAAGETS DS A Addr of LE/370 get stack stg rtn 02-CEECA
0002C0 630+CEECAALBOS DS A Start of library stack stg seg 02-CEECA
0002C4 631+CEECAALEOS DS A End of library stack stg seg 02-CEECA
0002C8 632+CEECAALNAB DS A Next available byte of lib stg 02-CEECA
0002CC 633+CEECAADMC DS A Addr of ESPIE Devil-May-Care rtn 02-CEECA
0002D0 634+CEECAAABCODE DS 0F Most recent ABEND completion CDE 02-CEECA
0002D0 635+CEECAACD DS XL4 Most recent CAASHAB abend code 02-CEECA
0002D4 636+CEECAARSNCODE DS 0F Most recent ABEDN reason Code 02-CEECA
0002D4 637+CEECAARS DS XL4 Most recent CAASHAB reason code 02-CEECA
0002D8 638+CEECAAERR DS A Addr of the current CIB 02-CEECA
0002DC 639+CEECAAGETSX DS A Addr of LE/370 stack stg extender 02-CEECA
0002E0 640+CEECAADDSA DS A Addr of the dummy DSA 02-CEECA
0002E4 641+CEECAASECTSIZ DS F Vector Section Size 02-CEECA
0002E8 642+CEECAAPARTSUM DS F Vector Partial Sum Number 02-CEECA
0002EC 643+CEECAASSEXPNT DS F Log of Vector Section Size 02-CEECA
0002F0 644+CEECAAEDB DS A address of the EDB 02-CEECA
0002F4 645+CEECAAPCB DS A address of the PCB 02-CEECA
646+* ---------------------------------------------------------------------
647+* - THE FOLLOWING TWO FIELDS ARE USED FOR VALIDATION OF THE CAA. -
648+* ---------------------------------------------------------------------
0002F8 649+CEECAAEYEPTR DS A addr of CAA eyecatcher 02-CEECA
0002FC 650+CEECAAPTR DS A addr of this CAA 02-CEECA
000300 651+CEECAAGETS1 DS A DSA alloc - R13 not DSA addr 02-CEECA
000304 652+CEECAASHAB DS A ABEND shunt routine address 02-CEECA
000308 653+CEECAAPRGCK DS A pgm interrupt code for CAADMC 02-CEECA
00030C 654+CEECAAFLAG1 DS X CAA Flag 1 02-CEECA
00080 655+CEECAASORT EQU B'10000000' Call to DFSORT is active 02-CEECA
00040 656+CEECAA_USE_OLD_STK EQU B'01000000' use old stack @P5A 02-CEECA
00020 657+CEECAA_CICS_EXT_REG EQU B'00100000' CICS extended regs active @DQA 02-CEECA
00010 658+CEECAASHAB_RECOVER_IN_ESTAE_MODE EQU B'00010000' @DYA 02-CEECA
659+* LE ESTAE should set up to @DYA
660+* retry at the CEECAASHAB @DYA
661+* address in the same mode and @DYA
662+* key as when the LE ESTAE was @DYA
663+* established. @DYA
00008 664+CEECAASHAB_IGNORED EQU B'00001000' @DYA 02-CEECA
665+* Set when CEECAASHAB ignored @DYA
00004 666+CEECAA_FETCH_RELES_IN_PROGRESS EQU B'00000100' @E1A 02-CEECA
00002 667+CEECAA_CICS_VR_SPT EQU B'00000010' CICS vector regs active @E9A 02-CEECA
00030D 668+CEECAASHAB_KEY DS X IPK result when abend shunt @DYA 02-CEECA
669+* routine is established @DYA
00030E 670+ DS CL2 reserved @DYC 02-CEECA
000310 671+CEECAAURC DS F Thread level return code. 02-CEECA
000314 672+CEECAARSRV1 DS 4A 02-CEECA
673+* ---------------------------------------------------------------------
674+* - THE FOLLOWING FIELD CONTAINS THE PRE-INIT COMPATABILITY -
675+* - CONTROL BLOCK ADDRESS. -
676+* ---------------------------------------------------------------------
000324 677+CEECAAPICICB DS A Addr of pre-init compatability cb 02-CEECA
000328 678+CEECAARSRV2 DS A 02-CEECA
679+* ---------------------------------------------------------------------
00032C 680+CEECAAGOSMR DS H Go Some More. used TRAV multiple 02-CEECA
00032E 681+ DS H skip. 02-CEECA
682+* ---------------------------------------------------------------------
000330 683+CEECAALEOV DS A Addr of LE/OpenMVS LIBVEC 02-CEECA
000334 684+CEECAA_SIGSCTR DS F SIGSAFE Counter @C54544 02-CEECA
685+*
000338 686+CEECAA_SIGSFLG DS XL4 SIGSAFE Flags @C54544 02-CEECA
687+*
688+* First byte @P4A
689+*
00080 690+CEECAA_SIGPUTBACK EQU X'80' Signal Putback 02-CEECA
00040 691+CEECAA_SA_RESTART EQU X'40' SA_Restart processing needed 02-CEECA
692+* EQU X'20' <unused>
00010 693+CEECAA_SIGSAFE EQU X'10' Indicates that synchronous 02-CEECA
694+* signals are safe to be delivered
695+* regardless of where the interrupt
696+* occurred
00008 697+CEECAA_CANCELSAFE EQU X'08' Indicates that synchronous @CM0565A 02-CEECA
698+* cancels are safe to be @CM0565A
699+* delivered regardless of @CM0565A
700+* where the interrupt @CM0565A
701+* occurred @CM0565A
00004 702+CEECAA_SIGRESYNCH EQU X'04' One or more synchronous signals 02-CEECA
703+* may have been recently put back
704+* last time a signal was resolicited
705+* when returning to non-XPLINK
706+* user code
00002 707+CEECAA_FRZ_UNSAFE EQU X'02' This thread is in an unsafe state 02-CEECA
708+* to be frozen (set by members)
00001 709+CEECAA_NOAPPREGS EQU X'01' User Application registers may 02-CEECA
710+* be saved in a nonstandard place
711+* @DFA
712+* Second byte @P4A
713+*
00080 714+CEECAA_EINTR_RSOL EQU X'80' Secondary signal resolicit 02-CEECA
715+* in progress after EINTR
716+* from inner function @P4A
00040 717+CEECAA_EINTR_PUTB EQU X'40' Secondary resolicited signal 02-CEECA
718+* has been put back @P4A
00020 719+CEECAA_EINTR_REST EQU X'20' User catcher returned after 02-CEECA
720+* catching secondary
721+* resolicited signal with
722+* SA_RESTART in effect @P4A
00010 723+CEECAA_EINTR_SIGG EQU X'10' "Stray" signal interrupted 02-CEECA
724+* CEEOSIGG while secondary
725+* signal resolicitation
726+* was in progress @P4A
727+* EQU X'08' Reserved @P4A
728+* EQU X'04' Reserved @P4A
729+* EQU X'02' Reserved @P4A
730+* EQU X'01' Reserved @P4A
731+*
732+* (16 unused bits) @P4C
733+*
00033C 734+CEECAATHDID DS CL8 Posix thread id 02-CEECA
000344 735+CEECAA_DCRENT DS A CRENT anchor for DCE 02-CEECA
000348 736+CEECAA_DANCHOR DS A DCE anchor per thread 02-CEECA
00034C 737+CEECAA_CTOC DS A TOC anchor for CRENT 02-CEECA
000350 738+CEECAARCB DS A A(RCB) 02-CEECA
000354 739+CEECAACICSRSN DS A CICS reason code from member 02-CEECA
740+* language
000358 741+CEECAAMEMBR DS A Addr of thread-level member list 02-CEECA
00035C 742+CEECAA_SIGNAL_STATUS DS A Signal stat for terminating thd 02-CEECA
000360 743+CEECAA_HCOM_REG7 DS 0A Saved Reg7 from HCOM 02-CEECA
000360 744+CEECAA_HCOM_REG14 DS A Saved Reg14 from HCOM @CH0092A 02-CEECA
000364 745+CEECAA_STACKFLOOR DS A Lowest usable addr in HP stack 02-CEECA
000368 746+CEECAAHPGETS DS A HP stack extension rtn 02-CEECA
00036C 747+CEECAAEDCHPXV DS A C/C++ XPLINK libvec 02-CEECA
000370 748+CEECAAFOR1 DS A Reserved for FORTRAN 02-CEECA
000374 749+CEECAAFOR2 DS A Reserved for FORTRAN 02-CEECA
000378 750+CEECAATHREADHEAPID DS A Thread heapid @NX0093A 02-CEECA
00037C 751+CEECAA_SYS_RTNCODE DS F Sys (kernel) return code @CM1752 02-CEECA
000380 752+CEECAA_SYS_RSNCODE DS F Sys (kernel) reason code @CM1752 02-CEECA
000384 753+CEECAAGETFN DS A Address of WSA swap routine 02-CEECA
000388 754+CEECAA_LER4 DS CL8 Reserved for expansion LE 1.4 02-CEECA
755+********************************************************************
756+* LE V1R5M0 EXTERNAL CONTROL BLOCK SECTION *
757+* - any external control block fields should be added *
758+* in this section. Extra reserved space was added *
759+* with the intention of at end of project the excess *
760+* reserved space will be removed and all external fields *
761+* will be shifted. *
762+********************************************************************
000390 763+CEECAASIGNGPTR DS A Pointer to 'signam' external 02-CEECA
764+* variable in a C application
000394 765+CEECAASIGNG DS F value of sign of lgamma() 02-CEECA
766+* -1 - negative sign
767+* 0 - zero
768+* +1 - positive sign
000398 769+CEECAA_FORDBG DS A Ptr to AFHDBHIM - @N80095A 02-CEECA
770+* FORTRAN hook interface @N80095A
00039C 771+CEECAAAB_STATUS DS X validity flags KN80120 02-CEECA
00080 772+CEECAAAB_GR0_VALID EQU X'80' CEECAAAB_GR0 is valid KN80120 02-CEECA
00040 773+CEECAAAB_ICD1_VALID EQU X'40' CEECAAAB_ICD1 is valid KN80120 02-CEECA
00020 774+CEECAAAB_ABCC_VALID EQU X'20' CEECAAAB_ABCC is valid KN80120 02-CEECA
00010 775+CEECAAAB_CRC_VALID EQU X'10' CEECAAAB_CRC is valid KN80120 02-CEECA
00008 776+CEECAAAB_GR15_VALID EQU X'08' CEECAAAB_GR15 is valid KN80120 02-CEECA
00039D 777+CEECAA_STACKDIRECTION DS X Stack Direction 02-CEECA
00000 778+CEECAASTACK_UP EQU X'00' Up 02-CEECA
00001 779+CEECAASTACK_DOWN EQU X'01' Down (XPLINK) 02-CEECA
00039E 780+ DS XL2 RESERVED KN80120 02-CEECA
0003A0 781+CEECAAAB_GR0 DS A Reg 0 KN80120 02-CEECA
0003A4 782+CEECAAAB_ICD1 DS A SDWAICD1 KN80120 02-CEECA
0003A8 783+CEECAAAB_ABCC DS A SDWAABCC KN80120 02-CEECA
0003AC 784+CEECAAAB_CRC DS A SDWACRC KN80120 02-CEECA
002D4 785+CEECAAAB_GR15 EQU CEECAARS reg 15 KN80120 02-CEECA
0003B0 786+CEECAAAGTS DS A C compiler stk inc KN00102 02-CEECA
0003B4 787+CEECAA_LER5N1 DS CL4 reserved for expansion KCG0088 02-CEECA
0003B8 788+CEECAAHERP DS A A(CEEHERP) KCG0061 02-CEECA
0003BC 789+CEECAAUSTKBOS DS A Start of user stack seg PQ04250 02-CEECA
0003C0 790+CEECAAUSTKEOS DS A End of user stack seg PQ04250 02-CEECA
0003C4 791+CEECAAUSERRTN@ DS A A(UserRtn) for pthread @01A 02-CEECA
0003C8 792+CEECAAUDHOOK DS XL8 hook swapping xplink @DBA 02-CEECA
793+* DS BL8 reserved @DBA
794+*CEECAAUDHOOKSW DS BL4 hook switch @DBA
795+* DS BL4 reserved @DBA
796+* DS XL6 reserved @DBA
0003D0 797+CEECAACEL_HPXV_B DS A Address of XPLink compat @DCC 02-CEECA
798+* vector for Base library @DCA
0003D4 799+CEECAACEL_HPXV_M DS A Address of XPLink compat @DCA 02-CEECA
800+* vector for Math library @DCA
0003D8 801+CEECAACEL_HPXV_L DS A Address of XPLink @DCC 02-CEECA
802+* compat vector for @DCA
803+* Locale library @DCA
0003DC 804+CEECAACEL_HPXV_O DS A Address of XPLink @DDA 02-CEECA
805+* compat vector for @DDA
806+* Open library @DDA
0003E0 807+CEECAACEL4VEC3 DS A Address of Vec3 LibVec @DHA 02-CEECA
0003E4 808+CEECAA_CEEDLLF DS A Addr of newest CEEDLLF. Not @P6M 02-CEECA
809+* same offset as in 64bit. @P6M
0003E8 810+CEECAA_SAVSTACK DS A Saved Stack pointer used for @DPA 02-CEECA
811+* OS_NOSTACK linkage @DPA
0003EC 812+ DS XL4 Reserved @DSC 02-CEECA
0003F0 813+CEECAA_USER_WORD DS F CAA user word @DVC 02-CEECA
0003F4 814+CEECAA_SAVSTACK_ASYNC DS A Zero or address of 4-byte field@DPA 02-CEECA
815+* where the stack pointer can be @DPA
816+* saved. When the stack pointer @DPA
817+* is saved here, asynchronous @DPA
818+* signals will be accepted. @DPA
0003F8 819+ DS A Reserved for COBOL @DZA 02-CEECA
0003FC 820+CEECAA_STACK_GUARD DS XL4 Stack Guard token @EAC 02-CEECA
00094 821+CEECELVGTUN EQU 148 Offset to Get user nab service. 02-CEECA
0000F8 00000 0020C 822+TESTLE CSECT Restore main CSECT @PAA 01-DFHEI
0000F8 823+SKIPLE0005 DS 0H @PAA 01-DFHEI
0000D 824+DFHEIPLR EQU 13 Working storage register @D3A 01-DFHEI
R:D 00000 825+ USING DFHEISTG,13 Addressability for working storage @D3A 01-DFHEI
0000F8 D207 D0DC 1000 000DC 00000 826+ MVC DFHEIBP(L'DFHEIBP+L'DFHEICAP),0(1) @D3AX01-DFHEI
+ COPY EIB AND CA PTRS @D3A
827+***********************************************************************
828+* ESTABLISH EIB ADDRESSIBILITY *
829+***********************************************************************
0000FE 58B0 D0DC 000DC 830+ L DFHEIBR,DFHEIBP @BBAC81A 01-DFHEI
R:B 00000 831+ USING DFHEIBLK,DFHEIBR @BBAC81A 01-DFHEI
832+***********************************************************************
833+* END OF PROLOG CODE FOR EXEC INTERFACE *
834+***********************************************************************