Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

SPOOL-Exit 095 (Ausgabe-Routine)

&pagelevel(4)&pagelevel

Dieser SPOOL-Exit ermöglicht es der Systembetreuung, eine Anwenderroutine zu erstellen, die bei jeder Ausgabeoperation des SPOOL aufgerufen wird. Nur bei der Fehlerbehandlung erfolgt kein Aufruf. Die Exit-Routine wird aufgerufen, nachdem ein Kanalprogramm erstellt wurde und bevor dieses zum Drucker gesendet wird. Die Exit-Routine kann für Zeilen- und Laserdrucker verwendet werden. Die APA-Drucker, RSO, Remote-Batch-Verarbeitung, Magnetbänder und Floppy Disk werden nicht unterstützt.

Für die Exit-Routine bestehen folgende Möglichkeiten:

  • das Kanalprogramm zu akzeptieren

  • das Kanalprogramm zu verändern

  • das Kanalprogramm zu unterdrücken.

Folgende Informationen werden an die Exit-Routine übergeben:
R1 = A (EX095-Parameterbereich)

Die Returncodes werden im Standardheader eingetragen:

 

dd

cc

bb

aa

Über die Ausführung von EX095 wird im Standardheader ein Returncode übergeben:

aa=Maincode1
bb=Maincode2
cc=Subcode1
dd=Subcode2

X'aa'

Erläuterung

00

Kanalprogramm ausgegeben

04

Kanalprogramm nicht ausgegeben

0C

Kanalprogramm nicht ausgeben und EOF

Hinweise

  • Die Exit-Routine hat Zugriff zu den SPOOL-eigenen Datenstrukturen. Diese Datenstrukturen sind versionsabhängig.

  • Wird das Kanalprogramm verändert oder nicht ausgegeben, erfolgt keine Berichtigung des SPOOL-Abrechnungssatzes.

  • Für die von der Exit-Routine übergebenen Daten wird keine „Code-Translation“ durchgeführt.

  • Wird das Kanalprogramm verändert, sind folgende Regeln zu beachten:

    • Das Kanalprogramm und der Datenpuffer dürfen nicht erweitert werden.

    • Werden die Daten, die von einem Kanalbefehl adressiert sind verkürzt, muss auch die Datenlängenangabe des Kanalbefehls korrigiert werden.

    • Wird das Kanalprogramm verkürzt, muss auch der „Kettenende-Indikator“ korrigiert werden.

    • Die Datenadresse kann verändert werden, muss aber immer im SPOOL-Ausgabebereich liegen.

  • Die Adresse „Beginn Ausgabebereich“ ist im ersten Kanalbefehl der Kette enthalten. Die Adresse „Ende Ausgabereich“ ergibt sich aus der Datenlänge plus Datenadresse des letzten Kanalbefehls.

DSECT

Eine DSECT/CSECT für den Parameterbereich kann mit dem Makro EX095 erzeugt werden, wobei „prefix“ max. 3 Zeichen lang sein darf.

         EX095 D
RECEXPL  DSECT ,                       I/O    EXIT ROUTINE P/L
* 
*   STANDARD HEADER RETURN INFORMATION
* 
SPOEXBEG DS    0H
         FHDR  MF=(C,SPO),EQUATES=NO
         DS    0A
SPOFHE   DS    0XL8            0   GENERAL PARAMETER AREA HEADER
*
SPOIFID  DS    0A              0   INTERFACE IDENTIFIER
SPOFCTU  DS    AL2             0   FUNCTION UNIT NUMBER
*                                  BIT 15    HEADER FLAG BIT,
*                                  MUST BE RESET UNTIL FURTHER NOTICE
*                                  BIT 14-12 UNUSED, MUST BE RESET
*                                  BIT 11-0  REAL FUNCTION UNIT NUMBER
SPOFCT   DS    AL1             2   FUNCTION NUMBER
SPOFCTV  DS    AL1             3   FUNCTION INTERFACE VERSION NUMBER
*
SPORET   DS    0A              4   GENERAL RETURN CODE
SPOSRET  DS    0AL2            4   SUB RETURN CODE
SPOSR2   DS    AL1             4   SUB RETURN CODE 2
SPOSR1   DS    AL1             5   SUB RETURN CODE 1
SPOMRET  DS    0AL2            6   MAIN RETURN CODE
SPOMR2   DS    AL1             6   MAIN RETURN CODE 2
SPOMR1   DS    AL1             7   MAIN RETURN CODE 1
SPOFHL   EQU   8               8   GENERAL OPERAND LIST HEADER LENGTH
*
*
*   EQUATES FOR EXIT RETURN INFORMATION IN &P.MR1 
* 
SPOEXIO  EQU   0                        SEND I/O REQUESTED
SPOEXNI  EQU   4                        DO NOT SEND I/O
SPOEXEO  EQU   12                       NO I/O DECLARE EOF
SPOPRTYP DC    AL1(0)                  PRINTER TYPE
SPOLINES EQU   32                      LINES PRINTER TYPE           751
SPOPAGES EQU   33                      PAGE PRINTER TYPE            751
SPOLOADL EQU   34                      LOADABLE LINE PRINTER TYPE   751
SPOINFOR DC    X'00'                   INFORMATION GIVEN TO EXIT 
SPONOSCB EQU   X'01'                   IND. SPOSCBAD NOT FILLED 
SPOUNUS  DC    XL2'00'                 ****   UNUSED   **** 
SPOCHADD DC    A(0)                    CCW'S CHAIN OR BUFFER ADDRESS
SPOSCBAD DC    A(0)                    ADDRESS OF SCB
SPODVTYP DS    AL1                     DEVICE TYPE 
SPOPRTMN DS    CL2                     PRINTER MNEMONIC 
         DS    CL20                    RESERVED FOR EXTENTION
SPOPLLEN EQU   *-SPOEXBEG              LENGTH OF THE PARAMETER LIST 


Das Feld SPOCHADD enthält die Adresse des Kanalprogramms. Das Format eines Kanalbefehls ist unabhängig von Kanal- und Maschinentyp.

op

fl

count

address

op = Operationscode
fl = Flagbyte
count = Datenlänge
address = virtuelle Datenadresse

Hinweise

  • Die Operationscodes des Kanalbefehls sind abhängig von Kanal- und Druckertyp und werden von SPOOL nach der Rückkehr aus der Exit-Routine nicht überprüft.

  • Das Feld SPONOSCB zeigt an, dass das Feld SPOSCBAD keine SCB-Adresse enthält und somit nicht verwendet werden kann. Das kommt vor, wenn der SPOOL Ein/Ausgabeoperationen durchführt, die keinem Job zugeordnet sind.

  • Das Feld SPODVTYP enthält den gleichen detaillierten Gerätetyp, der in der SPOOL-Parameterdatei benutzt wird. Für die Auflösung ist der Makro SPSDTYP zu verwenden.

  • Das Feld SPOPRTMN enthält die mnemotechnische Bezeichnung des Druckers.