 TITLE   'OUTPUT MESSAGE WRITER  IEHDPRNT'                              00900016
         COPY  LCGASMSW                                                 00950021
IEHDPRNT CSECT                                                          01800016
*                                                                       01800403
*C 72000,684000                                                @ZA01240 01800803
*A 63500-64000                                                 @ZA01240 01801203
*                                                                       01801603
*A 423500-425000,706500             @SA69598=@YA06118=@XA06603=@ZA01240 01802002
************************************************************            01804002
*                                                                  0811 01806017
*1417684000                                                        0811 01812017
*                                                                  1352 01814018
*3476684000                                                        1352 01816018
*                                                                     * 01820016
*684000                                                            6057 01830019
*3462684000                                                      M0028  01832020
*3462                                                            A32533 01835020
*3462684000                                                      M0025  01840020
*STATUS CHANGE LEVEL 005                                                01845020
*                                                                     * 01860016
*FUNCTION/OPERATION- THIS ROUTINE HANDLES ALL OUTPUT TO THE SYSOUT    * 01880016
*   DATA SET FOR THE IEHDASDR SYSTEM UTILITY PROGRAM. INITIAL ENTRY   * 01900016
*   TO THIS ROUTINE RESULTS IN THE HEADER INFORMATION BEING FORMATED  * 01920016
*   (PROGRAM TITLE, DATE, AND PAGE NUMBER) AND WRITTEN OUT USING THE  * 01940016
*   QSAM PUT MACRO, MOVE MODE. THE MESSAGE BUFFER (IN IEHDWORK        * 01960016
*   DSECT) IS THEN BLANKED OUT AND CONTROL RETURNED TO THE MONITOR.   * 01980016
*   SUBSEQUENT ENTRIES WILL WRITE OUT THE CONTENTS OF THIS BUFFER     * 02000016
*   (CONTROL CARDS,MESSAGES, ETC.), DECREMENT THE LINE COUNT,         * 02020016
*   BLANK THE OUTPUT BUFFER, AND RETURN TO THE CALLER.                * 02040016
*                                                                     * 02060016
*ENTRY POINTS- THE ONLY ENTRY POINT IS -IEHDPRNT-.                    * 02080016
*                                                                     * 02100016
*INPUT- A POINTER TO THE WORK AREA IN REGISTER 12.                    * 02120016
*                                                                     * 02140016
*EXITS-NORMAL- CONTROL IS RETURNED TO THE CALLING ROUTINE BY A        * 02160016
*   BRANCH ON REGISTER 14. NO RETURN CODE IS PASSED.                  * 02180016
*                                                                     * 02200016
*EXITS-ERROR- NONE.                                                   * 02220016
*                                                                     * 02240016
*EXTERNAL ROUTINES- INITIAL ENTRY TO THIS ROUTINE AND FOR EACH        * 02260016
*   NEW PAGE OF OUTPUT, THE ROUTINE WILL CALL -IEHDDATE- TO PROCESS   * 02280016
*   MONTH/DAY/YEAR FOR THE HEADING.                                   * 02300016
*                                                                     * 02320016
*TABLES/WORK AREAS- UPON ENTRY, REGISTER 12 WILL POINT TO THE WORK    * 02340016
*   AREA, DESCRIBED BY THE DSECT -IEHDWORK-.                          * 02360016
*                                                                     * 02380016
*ATTRIBUTES- SERIALLY REUSABLE, RELOCATABLE.                          * 02400016
*                                                                     * 02420016
*NOTE- THE VERSION LEVEL OF THE IEHDASDR SYSTEM UTILITY PROGRAM IS    * 02440016
*   CONTAINED IN THE HEADER INFORMATION LABELED 'TOPLINE'. THIS       * 02460016
*   VERSION LEVEL SHOULD BE UPDATED WHEN INCREMENTAL IMPROVEMENTS     * 02480016
*   AND/OR RELEASE LEVELS CHANGE.                                     * 02500016
*                                                                     * 02520016
         EJECT                                                          02540016
         SAVE  (14,12),T,*             SAVE THE REGISTERS.              02800016
         USING IEHDPRNT,REG11          SET UP ADDRESSIBILITY.           03800016
         USING WORK,12                                                  05400016
         LR    REG11,REG15             LOAD BASE REGISTER.              06300016
         B     APARNO                  BRANCH AROUND APARNO    @ZA01240 06350003
         DC    C'IEHDPRNT OZ01240'     LAST FIX THIS MOD       @ZA01240 06400003
APARNO   LA    REG1,PRNTSAVE           ADDRESS NEW SAVE AREA.  @ZA01240 07200003
         ST    REG1,8(REG13)           SAVE ADDRESS OF NEW AREA IN OLD. 08100016
         ST    REG13,4(REG1)           SAVE ADDRESS OF OLD AREA IN NEW. 09000016
         LR    REG13,REG1              SAVE AREA ADDRESS.               09300016
         MVC   MSGNO(2),MESS+K4        SAVE MSG NUMBER.          A32533 09400020
         LA    REG3,MSGWTR             ADDRESS OF MESSAGE BUFFER.       09600016
         SPACE 1                                                        09900016
         TM    MSGSW1,X'FF'            IS THIS THE INITIAL ENTRY.       10800016
         BC    8,FRSTNTRY              YES-GO PRINT HEADER AND PAGE NO. 11700016
         BAL   REG9,PRINT              NO--GO PRINT A LINE.             12600016
         SPACE 1                                                        13500016
RETURN   L     REG13,PRNTSAVE+4        RESET REGISTER 13.               14400016
         RETURN (14,12),T              RESTORE REGS AND RETURN.         15300016
         SPACE 1                                                        16200016
PRINT    L     REG4,PRINT1             DCB ADDRESS.                     18200016
         PUT   (REG4),(REG3)           WRITE OUT THE MESSAGE.           20700016
         MVI   MSGWTR,X'40'            SET FOR SINGLE SPACE.            20900016
         MVI   MESS,BLANK              BLANK FIRST BYTE.                21100016
         MVC   MESS+1(119),MESS        CLEAR REMAINDER OF BUFFER.       21300016
         LH    REG7,LINECNT1           PICK UP THE NUMBER OF LINES.     21600016
         BCT   REG7,NOTHDR             REDUCE BY ONE/BRANCH NOT ZERO.   22500016
         CLC   MSGNO(2),LASTMSG        LAST LINE OF FUNCTION.    A32533 22800020
         BE    K0(0,REG9)              YES-RETURN TO CALLER.     A32533 23100020
         MVC   LINECNT1(2),LINECNT     RESET THE LINE COUNT.            23400016
         BAL   REG8,HEADER1            BRANCH TO PRINT HEADER.          24300016
         BR    REG9                    RETURN.                          25200016
         SPACE 1                                                        26100016
NOTHDR   STH   REG7,LINECNT1           SAVE THE NEW LINE COUNT.         27000016
         BR    REG9                    RETURN.                          28800016
         SPACE 2                                                        29700016
HEADER   MVI   MESS,BLANK              BLANK FIRST BYTE.                30600016
         MVC   MESS+1(119),MESS        CLEAR REMAINDER OF BUFFER.       31500016
HEADER1  MVC   NOTHER+10(4),PAGE       MOVE IN PAGE.                    32400016
         LH    REG6,PAGENO             PICK UP THE PAGE NUMBER.         33300016
         CVD   REG6,DOUBLE             CONVERT TO DECIMAL.              34200016
         UNPK  NUMB(3),DOUBLE+6(2)     CONVERT TO GRAPHIC AND MOVE.     35100016
         OI    NUMB+2,X'F0'            RESET ZONE.                      36000016
         LA    REG6,LAST1-TOPLINE-1    LENGTH OF HEADER MINUS ONE.      36900016
         L     REG7,HEAD               ADDRESS OF HEADER.               37800016
         EX    REG6,MOVER              MOVE IN THE HEADER.              38700016
         LA    REG1,MESS+5             TARGET ADDRESS FOR DATE.         39000016
         CALL  IEHDDATE                                                 39300016
         MVI   CC,X'F1'                CONTROL CHARACTER.               39600016
         L     REG4,PRINT1             DCB ADDRESS.                     40600016
         PUT   (REG4),(REG3)           WRITE OUT THE HEADER.            42300016
         LH    REG7,LINECNT1           PICK UP NUMBER OF LINES @ZA01240 42350002
         LH    REG5,THREE              LOAD 3 TO REG5          @ZA01240 42400002
         SR    REG7,REG5               SUBTRAKT 3 FROM LINECNT @ZA01240 42450002
         STH   REG7,LINECNT1           SAVE NEW LINECNT        @ZA01240 42500002
         MVI   MESS,BLANK              BLANK FIRST BYTE.                42600016
         MVC   MESS+1(119),MESS        CLEAR REMAINDER OF BUFFER.       42900016
         MVI   MSGWTR,X'60'            TRIPLE SPACE BEFORE PRINT.       43200016
         LH    REG6,PAGENO             PICK UP THE PAGE NUMBER.         47700016
         LA    REG6,1(REG6)            ADD ONE TO PAGE NUMBER.          48600016
         STH   REG6,PAGENO             SAVE THE NEW PAGE NUMBER.        49500016
         BR    REG8                    RETURN.                          50400016
         SPACE 1                                                        51300016
FRSTNTRY BAL   REG8,HEADER             GO WRITE OUT THE HEADER.         52300016
         MVI   MSGSW1,X'FF'            INDICATE FIRST ENTRY.            54900016
         B     RETURN                  TAKE NORMAL EXIT.                55800016
         SPACE 1                                                        58500016
DOUBLE   DC    1D'0'                   WORK AREA FOR CONVERT.           62100016
PRNTSAVE DS    18F                     SAVE AREA FOR CALLED ROUTINES.   63000016
HEAD     DC    A(TOPLINE)              ADDRESS OF HEADER                63900016
MOVER    MVC   MESS+35(1),0(REG7)      EXECUTED TO MOVE IN HEADER.      64800016
PAGE     DC    CL4'PAGE'               'PAGE' HEADING.                  65700016
TOPLINE  DC    CL29'SYSTEM SUPPORT UTILITIES --- '                      67500016
         DC    CL17'IEHDASDR   MVS-3.0'                        @ZA01240 68400003
LAST1    DS    0C                      END OF HEADER.                   69300016
BLANK    EQU   C' '                    BLANK CHARACTER.                 70200016
M39      EQU   39                      LAST MSG PRINTED.         A32533 70300020
K4       EQU   4                       DISPLACEMENT CONSTANT     A32533 70400020
K0       EQU   0                       DISPLACEMENT CONSTANT     A32533 70500020
MSGNO    DS    1H                      MESSAGE NUMBER AREA       A32533 70600020
THREE    DC    H'3'                    NO OF LINES/HEADER      @ZA01240 70650002
LASTMSG  DC    CL2'39'                 LAST MESSAGE PRINTED      A32533 70700020
*   THE FOLLOWING ARE REGISTER ASSIGNMENTS.                             71100016
REG0     EQU   0                                                        72000016
REG1     EQU   1                                                        72900016
REG2     EQU   2                                                        73800016
REG3     EQU   3                                                        74700016
REG4     EQU   4                                                        75600016
REG5     EQU   5                                                        76500016
REG6     EQU   6                                                        77400016
REG7     EQU   7                                                        78300016
REG8     EQU   8                                                        79200016
REG9     EQU   9                                                        80100016
REG10    EQU   10                                                       81000016
REG11    EQU   11                                                       81900016
REG12    EQU   12                                                       82800016
REG13    EQU   13                                                       83700016
REG14    EQU   14                                                       84600016
REG15    EQU   15                                                       85500016
         SPACE 1                                                        86400016
         IEHDWORK                                                       91400016
         END                                                            98100016
