**** START OF SPECIFICATIONS ***************************************** 00010000 * * 00020000 *01* MODULE NAME = APSUX16X * 00030000 * * 00040000 * $MOD(APSUX16X) COMP(APS) PROD(PSF) : VERSION 3.3.0 * 00050000 * * 00060000 *01* DESCRIPTIVE NAME = Direct Printing Sample Exit * 00070000 * * 00080000 *01* STATUS = VERSION 3, RELEASE 3, 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 * $EV=LAPS0009,HPRF330,010530,BUQ4RLB: Version 3.3.0 @EVA* 01060000 ** END OF SPECIFICATIONS ********************************************* 01070000 APSUX16 START 0 01080000 TITLE 'DSECT - XTP' 01090000 APSGEXTP LIST=YES 01100000 TITLE 'DSECT - ECA' 01110000 APSUECA LIST=YES 01120000 TITLE 'DSECT - XP16' 01130000 APSUXP16 LIST=YES 01140000 TITLE 'APSUX16 -- DIRECT PRINT EXAMPLE' 01150000 APSUX16 CSECT , 01160000 APSUX16 AMODE 31 01170000 APSUX16 RMODE ANY 01180000 USING *,15 01190000 B START 01200000 DC AL1(16) LENGTH OF FOLLOWING FIELDS 01210000 DC CL7'APSUX16' NAME OF THIS ROUTINE 01220000 DC CL8'&SYSDATE' DATE OF THIS ASSEMBLY 01230000 DROP 15 01240000 ********************************************************************* 01250000 * PROLOG 01260000 ********************************************************************* 01270000 START DS 0H 01280000 STM 14,12,12(13) SAVE CALLERS REGISTERS 01290000 LR BASEREG,15 SWITCH BASE REGISTER 01300000 USING APSUX16,BASEREG 01310000 USING APSGEXTP,XTPPTR 01320000 USING APSUXP16,XTP16PTR 01330000 USING APSUECA,ECAPTR 01340000 L XTPPTR,0(,1) LOAD ADDRESS OF APSGEXTP 01350000 L XTP16PTR,XTPRECP LOAD ADDRESS OF XTP16 01360000 L ECAPTR,XTPECAP LOAD ADDRESS OF APSUECA 01370000 LR 2,13 LOAD ADDRESS OF CALLERS SAVE 01380000 LA 13,ECAUSAVE ADDRESS OF LOCAL SAVE AREA 01390000 ST 2,4(,13) SAVE CALLERS SAVE AREA ADDRESS 01400000 ST 13,8(,2) SAVE APSUX16 SAVE AREA ADDRESS 01410000 ********************************************************************* 01420000 * APSUX16 CODE 01430000 ********************************************************************* 01440000 * PUT CODE HERE 01450000 ********************************************************************* 01460000 * EPILOGUE 01470000 ********************************************************************* 01480000 SLR 15,15 PSF EXPECTS ZERO RETURN CODE 01490000 L 13,4(,13) RESTORE CALLERS SAVE AREA ADDR. 01500000 L 14,12(,13) RESTORE CALLERS RETURN ADDRESS 01510000 LM 0,12,20(13) RESTORE CALLERS REGISTERS 01520000 BR 14 RETURN TO CALLER 01530000 SPACE 2 01540000 XTPPTR EQU 3 POINTER TO APSGEXTP 01550000 XTP16PTR EQU 4 POINTER TO XTP16 01560000 ECAPTR EQU 5 POINTER TO APSUECA 01570000 BASEREG EQU 12 BASE REGISTER 01580000 SPACE 2 01590000 END APSUX16 01600000