TITLE 'APSUX15 - INSTALLATION EXIT MVS DOWNLOAD PRINT PARM' 00010000 **** START OF SPECIFICATIONS ***************************************** 00020000 * * 00030000 *01* MODULE NAME = APSUX15X * 00040000 * * 00050000 * $MOD(APSUX15 ) COMP(APS) PROD(PSF) : VERSION 3.2.2 * 00060000 * * 00070000 *01* DESCRIPTIVE NAME = Sample Download for OS/390 Print Paramter * 00080000 * Exit * 00090000 * * 00100000 *01* STATUS = VERSION 3, RELEASE 2, LEVEL 2 * 00110000 * * 00120000 *01* FUNCTION = Returns a print parameter keyword and value for * 00130000 * Download for OS/390 to transmit to its server on AIX * 00140000 * * 00150000 * * 00160000 *02* OPERATION = The following items are done by this sample exit: * 00170000 * 1. Pick up printer device name and output group name * 00180000 * from IAZJSPA * 00190000 * 2. Formulate a string: * 00200000 * devname=device_name,outgrp_name=outgrp_name * 00210000 * 3. Pass the string to Download for OS/390 * 00220000 * NOTE: In this exit program there is no need to remove leading * 00230000 * or trailing blanks/X'00' in device_name or outgrp_name * 00240000 * fields. Download for OS/390 removes them in the string * 00250000 * before transmitting the string to AIX. If you want * 00260000 * blanks/X'00' included in the string, replace them with * 00270000 * X'1C' in this program. * 00280000 * The maximum length of the string is the size of ECA work * 00290000 * area buffer (ECAWKBUF) up to 30K bytes. The default * 00300000 * length for the ECA work area buffer is 1599 bytes. * 00310000 * * 00320000 *01* NOTES = * 00330000 *02* DEPENDENCIES = NONE * 00340000 *02* RESTRICTIONS = NONE * 00350000 *02* REGISTER-CONVENTIONS = R15 = Entry address, reset on return * 00360000 * R13 = Save area address * 00370000 * R12 = Base register * 00380000 * R4-R11 = See assembler equates below * 00390000 *02* PATCH LABEL = PSPACE * 00400000 * * 00410000 *01* MODULE TYPE = PROCEDURE * 00420000 *02* PROCESSOR = ASSEMBLER * 00430000 *02* ATTRIBUTES = REENTRANT * 00440000 * AMODE 31 * 00450000 * RMODE ANY * 00460000 * * 00470000 *01* ENTRY POINT = APSUX15 * 00480000 *02* LINKAGE = STANDARD CALL * 00490000 * R1 = ADDRESS OF A 4 BYTE FIELD WHICH * 00500000 * CONTAINS THE ADDRESS OF APSGEXTP * 00510000 * * 00520000 *01* INPUT = * 00530000 * APSGEXTP - PSF Installation Exit Parameter Area * 00540000 * APSUECA - PSF Exit Communications Area * 00550000 * IAZJSPA - JOB Separator Page Area * 00560000 * * 00570000 *01* OUTPUT = * 00580000 * EBCDIC TEXT STRING * 00590000 * * 00600000 *01* EXIT NORMAL = RETURN TO CALLER * 00610000 * * 00620000 *01* EXIT ERROR = NONE * 00630000 * * 00640000 *01* EXTERNAL REFERENCES = * 00650000 *02* ROUTINES = * 00660000 * NONE * 00670000 * * 00680000 *02* DATA AREAS = * 00690000 * APSGEXTP - PSF Installation Exit Parameter Area * 00700000 * APSUECA - PSF Exit Communications Area * 00710000 * IAZJSPA - JES Separator Page Area * 00720000 * * 00730000 *02* INCLUDES = NONE * 00740000 * * 00750000 *01* MACROS = NONE * 00760000 * * 00770000 *01* MESSAGES = NONE * 00780000 * * 00790000 * 01* CHANGE ACTIVITY = * 00800000 * $00=OW17525,HAF1220,100695,JCRAWC: MVS DOWNLOAD PRINT PARM EXIT * 00810000 * $DU=LAPS0007,HPRF310,980604,BDKURLB: Version 3.1.0 @DUA* 00820000 * $DX=LAPS0008,HPRF320,991117,BUQ4RLB: Version 3.2.0 @DXA* 00830000 * * 00840000 **** END OF SPECIFICATIONS ******************************************* 00850000 * 00860000 APSUX15 START 0 00870000 TITLE 'DSECT - XTP' 00880000 APSGEXTP LIST=YES 00890000 TITLE 'DSECT - ECA' 00900000 APSUECA LIST=YES 00910000 TITLE 'DSECT - JSPA' 00920000 IAZJSPA LIST=YES 00930000 TITLE 'APSUX15 - INSTALLATION EXIT MVS DOWNLOAD PRINT PARM' 00940000 APSUX15 CSECT , 00950000 APSUX15 AMODE 31 00960000 APSUX15 RMODE ANY 00970000 USING *,@15 00980000 B PROLOG 00990000 DC AL1(16) 01000000 DC CL8'APSUX15' 01010000 DC CL8'&SYSDATE' 01020000 DROP @15 01030000 * 01040000 ********************************************************************** 01050000 * PROLOG 01060000 ********************************************************************** 01070000 * 01080000 PROLOG DS 0H 01090000 STM @14,@12,12(@13) SAVE CALLERS REGISTERS 01100000 LR @12,@15 R12 IS BASE REG 01110000 USING APSUX15,@12 BASE APSUX15 ON R12 01120000 USING APSGEXTP,XTPPTR BASE APSGEXTP ON XTPPTR 01130000 USING APSUECA,ECAPTR BASE APSUECA ON ECAPTR 01140000 USING IAZJSPA,JSPAPTR BASE IAZJSPA ON JSPAPTR 01150000 L XTPPTR,0(,@01) LOAD ADDRESS OF APSGEXTP 01160000 L ECAPTR,XTPECAP LOAD ADDRESS OF APSUECA 01170000 LA ECAWKPTR,ECAWKBUF LOAD ADDR OF ECA WORK AREA 01180000 USING BUFWRK,ECAWKPTR BASE WORK AREA ON ECA WORK 01190000 * AREA POINTER 01200000 LR @02,@13 LOAD ADDRESS OF CALLER SAVE 01210000 * AREA 01220000 LA @13,ECAUSAVE R13 POINTS TO APSUX15 01230000 * SAVE AREA 01240000 ST @02,4(,@13) SAVE CALLERS SAVE AREA ADDR 01250000 * 01260000 SLR RTNCODE,RTNCODE RESET RETURN CODE 01270000 L JSPAPTR,XTPJSPAP LOAD ADDRESS OF IAZJSPA 01280000 * 01290000 ********************************************************************** 01300000 * EXIT CODE 01310000 ********************************************************************** 01320000 * 01330000 SLR STRLEN,STRLEN SET STRING LENGTH TO ZERO 01340000 ST ECAWKPTR,ECARECAD STORE STRING ADDR 01350000 * 01360000 CLC JSPADEVN(8),BLANKS IF DEVICE NAME NOT BLANKS 01370000 BE NODEVNAM 01380000 * 01390000 MVC WRKAREA(8),DEVNAME PICK UP 'devname=' 01400000 LA ECAWKPTR,8(ECAWKPTR) ADVANCE WRKAREA PTR 01410000 LA STRLEN,8(STRLEN) INCREMENT STRING LENGTH 01420000 * 01430000 MVC WRKAREA(8),JSPADEVN PICK UP DEVICE NAME 01440000 LA ECAWKPTR,8(ECAWKPTR) ADVANCE WRKAREA PTR 01450000 LA STRLEN,8(STRLEN) INCREMENT STRING LENGTH 01460000 * 01470000 NODEVNAM CLC JSPJGRPN(8),BLANKS IF OUTGRP NAME NOT BLANK 01480000 BE NOOUTGRP 01490000 * 01500000 MVC WRKAREA(1),COMMA PICK UP COMMA 01510000 LA ECAWKPTR,1(ECAWKPTR) ADVANCE WRKAREA PTR 01520000 LA STRLEN,1(STRLEN) INCREMENT STRING LENGTH 01530000 * 01540000 * NOTE: IF DEVICE NAME IS 01550000 * BLANK, THE EXIT WILL RETURN 01560000 * A STRING WITH A LEADING 01570000 * COMMA: 01580000 * ,outgrp_name=nn 01590000 * DOWNLOAD FOR OS/390 WILL 01600000 * NOT PREFIX AN ADDITIONAL 01610000 * COMMA FOR THE STRING AS 01620000 * THE SEPARATOR FROM THE 01630000 * PREVIOUS PARM. 01640000 * 01650000 MVC WRKAREA(12),OUTGRPNM PICK UP "outgrp_name=" 01660000 LA ECAWKPTR,12(ECAWKPTR) ADVANCE WORKAREA POINTER 01670000 LA STRLEN,12(STRLEN) INCREMENT STRING LENGTH 01680000 * 01690000 MVC WRKAREA(8),JSPJGRPN PICK UP OUTGRP NAME 01700000 LA ECAWKPTR,8(ECAWKPTR) ADVANCE WORKAREA POINTER 01710000 LA STRLEN,8(STRLEN) INCREMENT STRING LENGTH 01720000 * 01730000 NOOUTGRP DS 0H 01740000 ST STRLEN,ECARECLN STORE STRING LENGTH 01750000 * 01760000 * 01770000 ********************************************************************** 01780000 * EPILOGUE 01790000 ********************************************************************** 01800000 * 01810000 SLR RTNCODE,RTNCODE RESET RETURN CODE 01820000 L @13,4(,@13) RESTORE CALLERS SAVE AREA 01830000 * ADDRESS 01840000 L @14,12(,@13) RESTORE CALLERS RETURN 01850000 * ADDRESS 01860000 LM @00,@12,20(@13) RESTORE CALLERS REGISTERS 01870000 BR @14 RETURN TO CALLER 01880000 DS 0H 01890000 EJECT 01900000 * 01910000 PSIZE EQU ((*-APSUX15+99)/100)*5 PATCH AREA SIZE 01920000 DC C'PATCH AREA - APSUX15 &SYSDATE' 01930000 PSPACE DC 25S(*) PATCH AREA 01940000 ORG PSPACE 01950000 DC ((PSIZE+1)/2)S(*) 01960000 ORG , 01970000 * 01980000 ********************************************************************** 01990000 * MISC CONSTANTS 02000000 ********************************************************************** 02010000 * 02020000 DEVNAME DC CL8'devname=' 02030000 OUTGRPNM DC CL12'outgrp_name=' 02040000 COMMA DC CL1',' 02050000 BLANKS DC CL8' ' 02060000 * 02070000 ********************************************************************** 02080000 * EQUATES FOR REGISTERS 0-15 02090000 ********************************************************************** 02100000 * 02110000 @00 EQU 00 02120000 @01 EQU 01 02130000 @02 EQU 02 02140000 @03 EQU 03 02150000 @04 EQU 04 02160000 @05 EQU 05 02170000 @06 EQU 06 02180000 @07 EQU 07 02190000 @08 EQU 08 02200000 @09 EQU 09 02210000 @10 EQU 10 02220000 @11 EQU 11 02230000 @12 EQU 12 02240000 @13 EQU 13 02250000 @14 EQU 14 02260000 @15 EQU 15 02270000 * 02280000 ********************************************************************** 02290000 * POINTER REGISTERS AND ROUTINES 02300000 ********************************************************************** 02310000 * 02320000 WRKPTR EQU @02 WORK AREA POINTER 02330000 STRLEN EQU @05 STRING LENGTH 02340000 ECAPTR EQU @06 APSUECA POINTER 02350000 XTPPTR EQU @08 APSGEXTP POINTER 02360000 ECAWKPTR EQU @09 ECA WORK BUFFER POINTER 02370000 JSPAPTR EQU @11 JSPA POINTER 02380000 RTNCODE EQU @15 RETURN CODE 02390000 * 02400000 ********************************************************************** 02410000 * APSUECA WORK BUFFER 02420000 ********************************************************************** 02430000 * 02440000 BUFWRK DSECT 02450000 WRKAREA DS CL256 02460000 * 02470000 END APSUX15 02480000