DATA DIVISION.
WORKING-STORAGE SECTION.
01 RESP PIC 9(8) BINARY.
01 RESP2 PIC 9(8) BINARY.
01 TOKEN PIC X(8).
01 OUTLEN PIC S9(8) BINARY VALUE +80.
77 OUTPRT PIC X(80) VALUE
'SPOOLOPEN FUNCTIONING'.
01 PARMSPTR POINTER.
01 PARMS-AREA.
03 PARMSLEN PIC S9(8) BINARY VALUE 14.
03 PARMSINF PIC X(14) VALUE
'WRITER(MYPROG)'.
03 PARMADDR POINTER.
PROCEDURE DIVISION.
SET PARMSPTR TO ADDRESS OF PARMS-AREA
SET PARMADDR TO PARMSPTR
SET PARMSPTR TO ADDRESS OF PARMADDR
EXEC CICS SPOOLOPEN OUTPUT
NODE ('*')
USERID ('*')
RESP(RESP) RESP2(RESP2)
OUTDESCR(PARMSPTR)
TOKEN(TOKEN)
END-EXEC
EXEC CICS SPOOLWRITE
FROM(OUTPRT)
RESP(RESP) RESP2(RESP2)
FLENGTH(OUTLEN)
TOKEN(TOKEN)
END-EXEC
EXEC CICS SPOOLCLOSE
TOKEN(TOKEN)
RESP(RESP) RESP2(RESP2)
END-EXEC.
DCL
RESP FIXED BIN(31),
RESP2 FIXED BIN(31),
TOKEN CHAR(8),
OUTLEN FIXED BIN(31) INIT(80),
OUTPRT CHAR(80) INIT('SPOOLOPEN FUNCTIONING'),
PARMADDR POINTER,
PARMSPTR POINTER;
DCL
1 PARMS,
2 PARMSLEN FIXED BIN(31) INIT(14),
2 PARMSINF CHAR(14) INIT('WRITER(MYPROG)')
ALIGNED;
PARMADDR=ADDR(PARMS);
PARMSPTR=ADDR(PARMADDR);
EXEC CICS SPOOLOPEN OUTPUT NODE('*') USERID('*')
TOKEN(TOKEN) OUTDESCR(PARMSPTR) RESP(RESP)
RESP2(RESP2);
EXEC CICS SPOOLWRITE FROM(OUTPRT) FLENGTH(OUTLEN)
RESP(RESP) RESP2(RESP2) TOKEN(TOKEN);
EXEC CICS SPOOLCLOSE TOKEN(TOKEN) RESP(RESP)
RESP2(RESP2);
#define PARMS struct _parms
PARMS
{
int parms_length;
char parms_info[200];
PARMS * pArea;
};
PARMS ** parms_ptr;
PARMS parms_area;
char userid[8]= "*";
char node[8]= "*";
char token[8];
long rcode1, rcode2;
/* These lines will initialize the outdescr area and
set up the addressing */
parms_area.parms_info[0]= '\0';
parms_area.pArea = &parms_area;
parms_ptr = &parms_area.pArea;
/* And here is the command with ansi carriage controls
specified and no class*/
EXEC CICS SPOOLOPEN OUTPUT
NODE ( node )
USERID ( userid )
OUTDESCR ( parms_ptr )
TOKEN ( token )
ASA
RESP ( rcode1 )
RESP2 ( rcode2 );
OUTPRT DC CL80'SPOOLOPEN FUNCTIONING'
PARMSPTR EQU 6
RESP DC F'0'
RESP2 DC F'0'
TOKEN DS 2F
OUTPTR DC A(PARMSLEN)
PARMSLEN DC F'14'
PARMSINF DC C'WRITER(MYPROG)'
LA PARMSPTR,OUTPTR
EXEC CICS SPOOLOPEN OUTPUT OUTDESCR(PARMSPTR)
NODE('*') USERID('*') RESP(RESP)
RESP2(RESP2) TOKEN(TOKEN)
EXEC CICS SPOOLWRITE FROM(OUTPRT)
TOKEN(TOKEN) RESP(RESP) RESP2(RESP2)
EXEC CICS SPOOLCLOSE TOKEN(TOKEN) RESP(RESP)
RESP2(RESP2)
[[