         PROC                                                           LOC00010
LOCAL    NAME                                                           LOC00020
         GBL   &NT$BKSZ,&NT$DEV,&NT$NTRY,&NT$EOFA,&NT$FNCD              LOC00030
         GBL   &NT$TYPF,&NT$DEST,&NT$LFD,&NT$CTRL,&NT$VRBL              LOC00040
&NT$EOFA SET   'NT$EOF'                                                 LOC00050
&NT$NTRY SET   'NT$ENTRY'                                               LOC00060
         DO    (('&NT$CTRL'='YES')**('&NT$TYPF'='OUTPUT'))=0            LOC00070
         EJECT                                                          LOC00080
*        LOGICAL INPUT TASK                                             LOC00090
*                                                                       LOC00100
*              SUBROUTINE TO PROCESS ANY STANDARD INPUT FILE            LOC00110
*                                                                       LOC00120
*        INPUT                                                          LOC00130
*              CALLED BY ICIT THROUGH INITIALIZE DEVICE                 LOC00140
*              CALLED BY EOT BECAUSE OF OUTSTANDING INITIALIZE DEVICE   LOC00150
*                                                                       LOC00160
*        ROUTINES USED                                                  LOC00170
*                        ENQ   TO ALLOCATE EMPTY BUFFERS                LOC00180
*                        DEQ   TO MOVE TO IMAGE Q                       LOC00190
*                        EOT   TO SIGNIFY END OF FILE                   LOC00200
*                                                                       LOC00210
*                        UNIRECORD SAT FOR GET,OPEN,CLOSE               LOC00220
*                                                                       LOC00230
*                                                                       LOC00240
         SPACE 5                                                        LOC00250
         RGEQU                                                          LOC00260
         EXTRN NT$ENQ,NT$DEQ,NT$EOT,NT$POOL                             LOC00270
         EXTRN   NT$DVTAD                                               LOC00275
NT$ENTRY EQU   *                                                        LOC00280
         BALR  R12,0                                                    LOC00290
         USING *,R12                                                    LOC00300
         LA    R1,DEVICE                ADDRESS OF DTF                  LOC00310
*                                                                       LOC00315
         DO    '&NT$TYPF'='OUTPUT'=0
         L     R9,NT$ADMCT             DEVICE 15 INTERFACE TABLE ENTRY
         TM    31(R9),X'80'             TEST FOR SPOOLING IN SYSTEM
         BZ    NT$INIT3                 NO DO AS NORMAL
         LA    R4,NT$QUSVE              17 BYTE NAME SAVE AREA
         ST    R4,NT$DCA01+16           MOVE ADDRESS OF NAME
         SVC   93                       CALL TRANS TO RDFCB
         LTR   R0,R0                    NO ERROR CONTINUE
         BZ    NT$INIT3                 IF ERROR CALL EOF PROCESSING
         XR    R9,R9               CALCULATE DIT ENTRY ADDR
         IC    R9,NTQUEL
         SLL   R9,5
         L     R1,NT$ADDIT
         A     R9,0(R1)
         OI    30(R9),X'04'        SET FOR ABNORMAL EOF
         B     NT$EOF
         EXTRN NT$MCTDV
NT$ADMCT DC    A(NT$MCTDV)
NT$ADDIT DC    A(NT$DVTAD)
NT$INIT3 EQU   *
         ENDO
         OPEN  (1)                                                      LOC00320
NT$INIT1 EQU   *                        ALLOCATE AN EMPTY BUFFER        LOC00330
         DO    '&NT$TYPF'='OUTPUT'                                      LOC00340
         LA    R2,NT$QUE
         ENDO
         DO    '&NT$TYPF'='OUTPUT'=0
         LA    R2,NTQUEL
         ENDO
         ENQ   (2)                      ALLOCATE A BUFFER               LOC00350
NT$INIT2 EQU   *                                                        LOC00400
         DO    '&NT$TYPF'='OUTPUT'                                      LOC00410
         LR    R5,R0                    SAVE ADDRESS OF ?????           LOC00420
         ST    R5,NT$DCA01+16           STORE ADDRESS OF BUFFER         LOC00430
         MVI   NT$DCA01+16,X'01'        RESET THE FIRST BYTE            LOC00440
         LA    R1,DEVICE                ADDRESS OF DTF                  LOC00450
         LA    R0,NT$DCA01              DCA ADDRESS                     LOC00460
         PUT   (1),(0)                  PUNCH ONE CARD                  LOC00470
         WAITF (1)                      WAIT TILL COMPLETE              LOC00480
         LR    R0,R5                    NOW                             LOC00490
         POOL  (0)                         POOL BUFFER                  LOC00500
         B     NT$INIT1                       DO ANOTHER                LOC00510
         ENDO                                                           LOC00520
         DO    '&NT$TYPF'='OUTPUT'=0                                    LOC00530
         LA    R3,NT$DCA01              DCA ADDRESS                     LOC00540
         ST    R0,16(R3,0)         SAVE ADDRESS OF BUFFER               LOC00550
         LR    R5,R0                                                    LOC00560
         MVI   16(R3),X'01'        RESTORE FOR DTF                      LOC00570
         LA    R1,DEVICE                ADDRESS OF DTF                  LOC00580
         LA    R0,NT$DCA01              DCA ADDRESS                     LOC00590
         GET   (1),(0)             READ A RECORD                        LOC00600
         WAITF (1)              WAIT FOR I/O COMPLETE                   LOC00610
         LR    R0,R5               BUFFER ADDRESS                       LOC00620
         DEQ   (2),(0)                  NOW MOVE TO IMAGE QUEUE         LOC00630
         ENDO                                                           LOC00640
         B     NT$INIT1                 DO NEXT                         LOC00650
NT$EOF   EQU   *                        EOF ADDRESS IN DTF              LOC00660
         LA    R1,DEVICE                ADDRESS OF DTF                  LOC00670
         TM    1(2),X'20'          LOCAL INPUT DEV ?                    LOC00672
         BO    NT$EOF11            NO, YES-NT$EOF11                     LOC00674
         BRKPT (1)                 START SPOOLOUT                       LOC00675
         B     NT$EOF12
NT$EOF11 DS    0H
         LA    R3,NT$DCA01
         L     R4,16(R3,0)             CHECK FOR // FIN CARD
         CLC   0(6,R4),NT$FIN          WAS IT A FIN CARD??
         BNE   NT$EOF12                NO MUST BE ABNORMAL END
         LR    R0,R4                   NOW POOL BUFFER
         POOL  (0)
         B     NT$EOF12
NT$FIN   DC    C'// FIN'
NT$EOF12 EQU   *
         CLOSE (1)                      CLOSE FILE                      LOC00680
         EOT   (2)                      CALL FOR DETACH OR RE-ENTRY?    LOC00690
         EJECT                                                          LOC00700
NT$DCA01 DCA   BLKSIZE=&NT$BKSZ,EOFADDR=&NT$EOFA,IOAREA1=NT$OUTIO,     XLOC00740
               FILABL=STD
         ENDO                                                           LOC00780
         DO    (('&NT$CTRL'='YES')**('&NT$TYPF'='OUTPUT'))              LOC00790
         EJECT                                                          LOC00800
*              LOGICAL OUTPUT TASK                                      LOC00810
*               ATTACHED   FOR EACH STANDARD OUTPUT DEVICE              LOC00820
*        INPUT                                                          LOC00830
*               ENTERED AT INIT ADDRESS AND EOFADDR                     LOC00840
*        OUTPUT                                                         LOC00850
*               PRINTS OR PUNCHES                                       LOC00860
*                                                                       LOC00870
*                                                                       LOC00880
         SPACE 5                                                        LOC00890
         PRINT NOGEN                                                    LOC00895
         NT$EQU                                                         LOC00900
         PRINT GEN                                                      LOC00905
         EXTRN NT$ENQ,NT$DEQ,NT$EOT,NT$POOL                             LOC00910
NT$ENTRY EQU   *                                                        LOC00920
         BALR  R12,0                                                    LOC00930
         USING *,R12                                                    LOC00940
         LA    R1,DEVICE                ADDRESS OF DTF FOR THIS FILE    LOC00950
         OPEN  (1)                      OPEN DTF                        LOC00960
         MVI   NT$LPIC2,X'40'           SET FOR INITIAL AT 8            LOC00970
         MVI   NT$LPIO2,0               SET  FIRST PAGE LENGTH          LOC00980
NT$LOT41 EQU   *                        NOW CALL FOR A BUFFER (IMAGE)   LOC00990
         LA    R2,NT$QUE                ADDRESS OF QUEUE ENTRY          LOC01000
         USING NT$QUETB,R2                                              LOC01010
         ENQ   (2)                                                      LOC01020
         LR    R5,R0                    USE R5 FOR BUFFER ADDRESS       LOC01030
         BCTR  R5,0                                                     LOC01040
         TM    1(R5),NT$HMEPP           LINE SPACING ONLY IN HOME PAPER LOC01045
         BZ    NT$LOT43                 NOT HOME PAPER
         TM    NT$LPIC2,X'40'           IS CURRENT 8 L.P.I.             LOC01050
         BO    NT$LOT48                 YES  CHECK FOR THIS BEING 8 LPI LOC01060
         TM    1(R5),NT$LPI8            NO   IS THIS REC 6 L P I        LOC01070
         BZ    NT$LOT43                 YES  GO TO NEXT CHECK           LOC01080
         LA    R3,NT$256BT                                              LOC01085
         MVI   NT$LPIC2,C' '            SET FOR 8 LINES PER INCH        LOC01090
         MVI   18(R3),X'0'                                              LOC01095
NT$LO4ER EQU   *                        LPI  ERROR                      LOC01100
*        POST  THE LINES-PER-INCH CHANGE MESSAGE                        LOC01110
         MVC   NT$LOTNM+1(1),NT$DVCQ    MOVE DEVICE NUMBER TO SAVE AREA
         CLI   NT$LOTNM+1,X'09'         SEE IF DEVICE OVER 9
         BNH   NT$LOTN1
         AI    NT$LOTNM,-10             DIGITS
         OI    NT$LOTNM,X'01'           IF A OR HIGHER FORCE TO TWO
NT$LOTN1 EQU   *
         OI    NT$LOTNM+1,X'F0'         MOVE IN HEX VALUE
         OI    NT$LOTNM,X'F0'
         WTLD  NT$LOTST,24,NT$LOT61
NT$LOT61 EQU   *
         MVI   NT$256BT,X'FF'
         MVC   NT$256BT+1(7),NT$256BT
         LA    R0,NT$256BT
         LA    R1,28(R1,0)
         EMVFB (1),(0),NT$VFBER
NT$LOT43 EQU   *                        NOW CHECK FOR SPACING/HOME PAPR LOC01150
         XR    R3,R3                    COMPUTE SPACING VALUE           LOC01160
         NI    2(R5),X'3F'              CLEAR LEFT MOST TWO BITS        LOC01170
         IC    R3,1(R5)                 HOME PAPER/LPI BYTE PLUS SPACE  LOC01180
         SLL   R3,6                     SAVE LAST TWO BITS              LOC01190
         STC   R3,0(R5)                                                 LOC01200
         XC    2(1,R5),0(R5)            USE TO BUILD LAST TWO BITS      LOC01210
         LA    R6,2(R5,0)               ADDRESS TO BE USED FOR PUT      LOC01220
         ST    R6,NT$DCAO1+16           NOW MOVE TO DCA IO AREA         LOC01230
         MVI   NT$DCAO1+16,X'01'                                        LOC01240
*                 NOW CHECK FOR HOME PAPER                              LOC01250
         TM    1(R5),NT$HMEPP                                           LOC01260
         BO    NT$LOT44                 HOME PAPER SET NOW CHECK PGELG  LOC01270
         XR    R3,R3                                                    LOC01280
         IC    R3,2(R5)                 LOAD SPACING LENGTH             LOC01290
         LA    R4,3                     MAX SPACEING ONE PRINT          LOC01300
NT$LOT45 CR    R3,R4                    IS SPACING LESS THAN MAX        LOC01310
         BL    NT$LOT49                 NOW DO PRINTING                 LOC01320
         MVI   2(R5),X'53'              SPACE 3 LINES                   LOC01330
         LA    R1,DEVICE                ADDRESS OF DTF FOR THIS FILE    LOC01340
         LA    R0,NT$DCAO1              DCA ADDRESS                     LOC01350
         PUT   (1),(0)                                                  LOC01360
         WAITF (1)                                                      LOC01365
         SR    R3,R4                    DECREMENT SPACING BY 7          LOC01370
         B     NT$LOT45                                                 LOC01380
NT$LOT44 EQU   *                        THIS IS A HOME PAPER            LOC01390
         CLI   NT$LPIO2,0               WAS THIS FIRST PAGE             LOC01400
         BE    NT$LOT53                 YES  SET SWITCH                 LOC01410
         CLC   2(1,R5),NT$PGEL2         SAME AS LAST   PAGE LENGTH      LOC01420
         BE    NT$LOT50                 YES NOW SET UP FOR PRINTING     LOC01430
*                        POST NOT SAME SPACING                          LOC01440
NT$LOT53 MVI   NT$LPIO2,1               SET FOR CHECK OF PAGE LENGTHS   LOC01450
         MVC   NT$PGEL2(1),2(R5)                                        LOC01460
NT$LOT50 EQU   *                                                        LOC01470
         MVI   2(R5),X'17'              HOME PAPER                      LOC01480
         B     NT$LOT47                                                 LOC01490
NT$LOT49 EQU   *                                                        LOC01500
         LTR   R3,R3                    IS SPACING EQUAL TO ZERO        LOC01510
         BNZ   NT$LOT46                 NO                              LOC01520
         MVI   2(R5),X'00'              PRINT NO SPACE ** TEMP FOR UNI  LOC01530
         B     NT$LOT47                                                 LOC01540
NT$LOT46 EQU   *                                                        LOC01550
         STC   R3,2(R5,0)               STORE SPACE VALUE               LOC01560
         XI    2(R5),X'50'              DO SPACING FIRST                LOC01565
         LA    R1,DEVICE
         LA    R0,NT$DCA01
         PUT   (1),(0)
         WAITF  (1)
         XR    R3,R3                    SET SPACING TO 0
         B     NT$LOT49                 NOW GO DO JUST PRINT
NT$LOT47 EQU   *                                                        LOC01570
         LA    R1,DEVICE                ADDRESS OF DTF FOR THIS FILE    LOC01580
         LA    R0,NT$DCA01                                              LOC01590
         PUT   (1),(0)                                                  LOC01600
         WAITF (1)                                                      LOC01610
         LA    R0,1(R5,0)                                               LOC01620
         POOL  (0)                      NOW DEALLOCATE BUFFER           LOC01630
         B     NT$LOT41                                                 LOC01640
NT$EOF   EQU   *                        EOF FIND ADDRESS                LOC01650
         LA    R1,DEVICE                ADDRESS OF DTF FOR THIS FILE    LOC01660
         BRKPT (1)                 INIT SPOOLOUT FOR THIS FILE          LOC01665
         CLOSE  (1)                                                     LOC01670
         LA    R2,NT$QUE                ADDRESS OF QUEUE ENTRY          LOC01680
         EOT   (2)                                                      LOC01690
NT$LOT48 EQU   *                        CHECK FOR 8 L.P.I               LOC01700
         TM    1(R5),NT$LPI8                                            LOC01710
         BO    NT$LOT43                                                 LOC01720
*                                                                       LOC01725
         LA    R3,NT$256BT
         MVI   NT$LPIC2,0               SET FOR 6 LINES PER INCH        LOC01730
         MVI   18(R3),X'1'                                              LOC01735
         B     NT$LO4ER                                                 LOC01740
NT$LOTST DC    C'NTR DEV '              BEGINNING                       LOC01745
NT$LOTNM DC    C'  '                    DEVICE NUMBER
NT$LOTND DC    C' LPI NOT EQUAL'        END
NT$256BT DC    XL256'0'
NT$PGEL2 DC    X'0'                                                     LOC01750
NT$LPIO2 DC    X'0'                                                     LOC01760
NT$LPIC2 DC    X'0'                                                     LOC01770
NT$HMEPP EQU   X'20'                                                    LOC01775
NT$LPI8  EQU   X'40'
         DS    0H
NT$VFBER EQU   *                        ERROR IN VFB CHANGE
         WTLD  NT$LOTSS,19,NT$LOT43
         B     NT$LOT43
NT$LOTSS DC    C'ERROR IN VFB CHANGE'
         DS    0F
                                                                 EJECT  LOC01780
         LCL   &NT$BKS1                                                 LOC01781
&NT$BKS1 SET   &NT$BKSZ-1                                               LOC01782
NT$DCAO1 DCA   BLKSIZE=&NT$BKS1,CTLCHR=YES,IOAREA1=NT$OUTIO,           XLOC01820
               FILABL=STD                                               LOC01830
NT$DCA01 EQU   NT$DCAO1                                                 LOC01835
         ENDO                                                           LOC01860
NT$OUTIO EQU   0                                                        LOC01865
                                                               SPACE 3
&NT$LFD  SAT   PCA1=NT$DCA01,ERROR=NT$ERRCD
DEVICE   EQU   &NT$LFD
                                                               SPACE 3
         DO    '&NT$TYPF'='OUTPUT'
NT$QUE   SG$QUE
         ENDO
         DO    '&NT$TYPF'='OUTPUT'=0
NTQUEL   LOCQUE
NT$QUSVE DC    CL17' '
         ENDO
         END                                                            LOC01870
