**** START OF SPECIFICATIONS ***************************************** 00010000 * * 00020000 *01* MODULE NAME = APSUX16X * 00030000 * * 00040000 * $MOD(APSUX16X) COMP(APS) PROD(PSF) : VERSION 3.2.0 * 00050000 * * 00060000 *01* DESCRIPTIVE NAME = Direct Printing Sample Exit * 00070000 * * 00080000 *01* STATUS = VERSION 3, RELEASE 2, LEVEL 0 * 00090000 * * 00100000 * 01* FUNCTION = * 00110000 ** Define an exit which is given control in the Direct * 00120000 ** Printing mode: * 00130000 * * 00140000 ** o at data set begin * 00150000 * * 00160000 ** o before FSA generated messages (APSxxxI or APSxxxA) * 00170000 * * 00180000 ** o at data set end * 00190000 * 02* OPERATION = * 00200000 ** o Obtain addressability to the exit16 input infor- * 00210000 ** mation. * 00220000 * * 00230000 ** o Return to the caller. * 00240000 * * 00250000 **01* NOTES = * 00260000 * 02* DEPENDENCIES = * 00270000 ** 1. R13 points to a register save area. * 00280000 * 02* RESTRICTIONS = * 00290000 ** PSF action messages (APSXXXA) will be sent * 00300000 ** to the operator console regardless of the * 00310000 ** action code set by the exit. * 00320000 * * 00330000 ** This exit is ONLY called in the Direct Printing * 00340000 ** (non-JES) mode. * 00350000 * 02* REGISTER CONVENTIONS = * 00360000 ** R15 = Entry point address * 00370000 ** R14 = Return address * 00380000 ** R13 = Save area address * 00390000 ** R4-R11 = See assembler equates below * 00400000 *02* PATCH LABEL = @PSPACE * 00410000 * * 00420000 *01* MODULE TYPE = ASSEMBLER * 00430000 *02* PROCESSOR = ASSEMBLER * 00440000 *02* ATTRIBUTES = * 00450000 * REENTRANT * 00460000 * AMODE(31) * 00470000 * RMODE(ANY) * 00480000 * * 00490000 *01* ENTRY POINT = * 00500000 * * 00510000 * APSUX16 - Direct Printing Installation Exit * 00520000 * * 00530000 * 02* LINKAGE = * 00540000 * CALL APSUX16(APSGEXTP) * 00550000 * R15 = Entry point address * 00560000 * R13 = Save area address * 00570000 * R1 = Address of a 4 byte field which contians * 00580000 * the address of APSGEXTP * 00590000 * * 00600000 * 01* INPUT = * 00610000 ** XTPRECP ---> APSUXP16 * 00620000 ** XTPECAP ---> APSUECA * 00630000 ** ECAUSAVE - Exit save area * 00640000 ** XTP16ETY - Call Type (BDS,MSG,EDS) * 00650000 ** XTP16DEV - Device address of printer * 00660000 ** XTP16DCB - Address of Data Control Block (DCB) * 00670000 ** XTP16MSG - Message identifier * 00680000 ** XTP16ACT - Message Action * 00690000 * * 00700000 * 01* OUTPUT = * 00710000 ** XTP16ACT - Message action (on MSG call only) * 00720000 ** XTP16MRK - Mark form indication (on BDS call only) * 00730000 * * 00740000 * 01* EXIT NORMAL = * 00750000 * Return to caller, register 15 set to zero * 00760000 * * 00770000 * 01* EXIT ERROR = * 00780000 * None, PSF expects register 15 to be zero * 00790000 *02* RETURN CODES = NONE * 00800000 * * 00810000 *02* REASON CODES = NONE * 00820000 * * 00830000 *02* ABEND REASON CODES = NONE * 00840000 * * 00850000 *01* EXTERNAL REFERENCES = * 00860000 *02* ROUTINES = NONE * 00870000 * * 00880000 *02* DATA AREAS = * 00890000 * * 00900000 * APSGEXTP - Installation Exit Parameter Area * 00910000 * APSUECA - Exits Communication Area * 00920000 * APSUXP16 - Installation Exit 16 Parameter Area * 00930000 * * 00940000 *02* INCLUDES = NONE * 00950000 * * 00960000 *01* MACROS = NONE * 00970000 * * 00980000 *01* MESSAGES = NONE * 00990000 * * 01000000 * 01* CHANGE ACTIVITY = * 01010000 * * 01020000 * $00=LAPS0005,HPRF102, 121089, B53KEMC: INITIAL VERSION @00A* 01030000 * $DU=LAPS0007,HPRF310,980604,BDKURLB: Version 3.1.0 @DUA* 01040000 * $DX=LAPS0008,HPRF320,991117,BUQ4RLB: Version 3.2.0 @DXA* 01050000 ** END OF SPECIFICATIONS ********************************************* 01060000 APSUX16 START 0 01070000 TITLE 'DSECT - XTP' 01080000 APSGEXTP LIST=YES 01090000 TITLE 'DSECT - ECA' 01100000 APSUECA LIST=YES 01110000 TITLE 'DSECT - XP16' 01120000 APSUXP16 LIST=YES 01130000 TITLE 'APSUX16 -- DIRECT PRINT EXAMPLE' 01140000 APSUX16 CSECT , 01150000 APSUX16 AMODE 31 01160000 APSUX16 RMODE ANY 01170000 USING *,15 01180000 B START 01190000 DC AL1(16) LENGTH OF FOLLOWING FIELDS 01200000 DC CL7'APSUX16' NAME OF THIS ROUTINE 01210000 DC CL8'&SYSDATE' DATE OF THIS ASSEMBLY 01220000 DROP 15 01230000 ********************************************************************* 01240000 * PROLOG 01250000 ********************************************************************* 01260000 START DS 0H 01270000 STM 14,12,12(13) SAVE CALLERS REGISTERS 01280000 LR BASEREG,15 SWITCH BASE REGISTER 01290000 USING APSUX16,BASEREG 01300000 USING APSGEXTP,XTPPTR 01310000 USING APSUXP16,XTP16PTR 01320000 USING APSUECA,ECAPTR 01330000 L XTPPTR,0(,1) LOAD ADDRESS OF APSGEXTP 01340000 L XTP16PTR,XTPRECP LOAD ADDRESS OF XTP16 01350000 L ECAPTR,XTPECAP LOAD ADDRESS OF APSUECA 01360000 LR 2,13 LOAD ADDRESS OF CALLERS SAVE 01370000 LA 13,ECAUSAVE ADDRESS OF LOCAL SAVE AREA 01380000 ST 2,4(,13) SAVE CALLERS SAVE AREA ADDRESS 01390000 ST 13,8(,2) SAVE APSUX16 SAVE AREA ADDRESS 01400000 ********************************************************************* 01410000 * APSUX16 CODE 01420000 ********************************************************************* 01430000 * PUT CODE HERE 01440000 ********************************************************************* 01450000 * EPILOGUE 01460000 ********************************************************************* 01470000 SLR 15,15 PSF EXPECTS ZERO RETURN CODE 01480000 L 13,4(,13) RESTORE CALLERS SAVE AREA ADDR. 01490000 L 14,12(,13) RESTORE CALLERS RETURN ADDRESS 01500000 LM 0,12,20(13) RESTORE CALLERS REGISTERS 01510000 BR 14 RETURN TO CALLER 01520000 SPACE 2 01530000 XTPPTR EQU 3 POINTER TO APSGEXTP 01540000 XTP16PTR EQU 4 POINTER TO XTP16 01550000 ECAPTR EQU 5 POINTER TO APSUECA 01560000 BASEREG EQU 12 BASE REGISTER 01570000 SPACE 2 01580000 END APSUX16 01590000