Overwrite the skeleton contents with the following code:
OPDEMO2: PROC(JCLPARM) OPTIONS(MAIN) REORDER;
DCL JCLPARM CHAR(20) VARYING;
/*-------------------------------------------------------------------*/
/* F I L E S */
/*-------------------------------------------------------------------*/
DCL SYSIN FILE RECORD INPUT ENVIRONMENT(FB RECSIZE(80));
DCL SYSUT1 FILE RECORD INPUT ENVIRONMENT(FB RECSIZE(80));
DCL SYSUT2 FILE RECORD OUTPUT ENVIRONMENT(FB RECSIZE(80));
DCL SYSPRINT FILE STREAM OUTPUT PRINT ENV (F RECSIZE (132));
/*-------------------------------------------------------------------*/
/* S T R U C T U R E S & A R R A Y S */
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/* E X T E R N A L E N T R I E S */
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/* O T H E R V A R I A B L E S */
/*-------------------------------------------------------------------*/
DCL ACCUMULATOR FIXED BIN(31) INIT(1);
DCL ASCII_ALPHABET char(38)
init('!ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ');
DCL chTemp char(1);
DCL EBCDIC_ALPHABET char(38) init
('5AC1C2C3C4C5C6C7C8C9D1D2D3D4D5D6D7D8D9E2E3E4E5E6E7E8E9'x ||
'F0F1F2F3F4F5F6F7F8F940'x);
DCL EOF_SYSIN CHAR(1) INIT('0');
DCL EOF_SYSUT1 CHAR(1) INIT('0');
DCL ITERATIONS FIXED BIN(31) INIT(0);
DCL JCLTRANS CHAR(20) VARYING;
DCL REC_BUFF char(80);
DCL REPLY_STR CHAR(120) varying;
DCL SYSIN_NUM_RECS PIC '9999';
DCL SYSPRINT_BUFF CHAR(132);
DCL VAR_NUMERIC PIC '9999';
/*-------------------------------------------------------------------*/
/* B U I L T I N F U N C T I O N S */
/*-------------------------------------------------------------------*/
DCL DELAY BUILTIN;
DCL PLIRETC BUILTIN;
DCL TRANSLATE BUILTIN;
/*-------------------------------------------------------------------*/
/* M O D U L E L O G I C */
/*-------------------------------------------------------------------*/
on error begin;
PUT SKIP LIST('On Error Triggered');
goto AFTERON;
end;
on conversion begin;
PUT SKIP LIST('On Conversion Triggered');
goto AFTERON;
end;
ON ENDFILE (SYSIN)
begin;
EOF_SYSIN = '1';
put skip list('SYSIN EOF Reached - Num Recs: ' ||
sysin_num_recs);
end;
ON ENDFILE (SYSUT1)
begin;
EOF_SYSUT1 = '1';
put skip list('SYSUT1 EOF Reached');
end;
SYSPRINT_BUFF = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || /* 26 */
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || /* 52 */
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || /* 78 */
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || /* 104 */
'ABCDEFGHIJKLMNOPQRSTUVWXYZ' || /* 130 */
'12';
open file(sysprint);
PUT SKIP LIST(SYSPRINT_BUFF);
put skip list('Length of JCLPARM: ' || length(jclparm));
PUT DATA(JCLPARM);
PUT SKIP;
if (JCLTRANS = 'DISPLAYREPLY') then
DISPLAY('STARTING OPDEMO.PLI') REPLY(reply_str);
else
do;
/* Read SYSIN to EOF */
sysin_num_recs = '0';
open input file(sysin);
do while(eof_sysin = '0');
read file(sysin) into (rec_buff);
if (eof_sysin = '0') then
sysin_num_recs = sysin_num_recs + 1;
end;
close file(sysin);
end;
/***********************************************************/
/* Open SYSUT1 and read until EOF translating records and */
/* Writing them to SYSUT2 */
/***********************************************************/
open file(sysut1) input;
open file(sysut2) output;
do while(eof_sysut1 = '0');
read file(sysut1) into(rec_buff);
if (eof_sysut1 = '0') then
do;
rec_buff = Translate(rec_buff, ascii_alphabet, ebcdic_alphabet);
write file(sysut2) from(rec_buff);
end;
end;
close file(sysut1);
close file(sysut2);
STARTIT:
PUT SKIP DATA(ACCUMULATOR);
ACCUMULATOR = ACCUMULATOR + 15;
PUT SKIP DATA(ACCUMULATOR);
PUT SKIP LIST('Triggering ON Unit');
VAR_NUMERIC = 'DAVE';
PUT SKIP DATA(VAR_NUMERIC);
AFTERON:
PUT SKIP LIST('SLEEPING for 3 Seconds');
Delay(3000); /* Sleep for 3 seconds */
Iterations = Iterations + 1;
/* Let's run for about 6 seconds */
If Iterations < 2 then
goto startit;
END;