LPT 
          IDENT  LPT,FET,LPT
          ABS 
          ENTRY  LPT
          ENTRY  RFL= 
*COMMENT  LPT - LINE PRINTER TEST.
          SYSCOM B1          DEFINE (B1) = 1
          TITLE  LPT - LINE PRINTER TEST. 
  
 OBUFL    EQU    2001B
          ORG    103B 
 FET      BSS    0
 O        BSS    0
 OUTPUT   FILEC  OBUF,OBUFL 
  
 T1       CON    0           TEMPORARY STORAGE
 TS       CON    0           TEST SECTION INDEX 
 LPT      TITLE  MAIN PROGRAM.
  
  
 LPT      SB1    1
          REWIND O,R
          BX6    X6-X6       PRESET COLON FOR 64 CHARACTER SET
          SA1    CSMR        CHECK SYSTEM CHARACTER SET MODE
          MI     X1,LPT0     IF 64 CHARACTER SET
          SX6    63B
 LPT0     SA6    GCSB        SET COLON FOR 63 CHARACTER SET SYSTEM
  
 LPT1     SA1    TS 
          SA2    LPTA+X1
          SX6    X1+B1
          SA6    A1 
          ZR     X2,LPT2
          SB2    X2 
          JP     B2 
 LPT2     WRITER O,R
          ENDRUN
  
 LPTA     BSS    0
          CON    CBS
          CON    INT
          CON    SPC
          CON    SCP
          CON    OEC
          CON    MRP
          CON    VAR
          CON    MEM
          CON    0
 CBS      SPACE  4
**        CBS - CHECK BUSY STATUS.
  
  
 CBS      SX0    50 
 CBS1     WRITEC O,(=C* CHECKING BUSY STATUS*)
          SX0    X0-1 
          NZ     X0,CBS1
          WRITEC O,(=C*2 *) 
          EQ     LPT1 
 INT      SPACE  4
**        INT - CHECK INTERRUPTS. 
  
  
 INT      SX0    50 
 INT1     WRITEC O,(=C* CHECKING READY NOT BUSY INTERRUPT*) 
          SX0    X0-1 
          NZ     X0,INT1
          WRITEC O,(=C*1CHECKED TOP END OF OPERATION INTERRUPT*)
          WRITEC O,(=C*2CHECKED LAST LINE OF FORM END OF OPERATION INTER
,RUPT*) 
          SX0    50 
 INT2     WRITEC O,(=C* CHECKING END OF OPERATION INTERRUPT*) 
          SX0    X0-1 
          NZ     X0,INT2
          WRITEC O,(=C*2 *) 
          EQ     LPT1 
 FMC      SPACE  4
**        FMC - FORMAT CHANNELS.
  
  
 MEM      SPACE  4
**        MEM - MEMORY TEST.
  
  
 MEM      SX2    =C*MEMORY TEST*
          RJ     STL
          SX0    136
          SA5    MEMA 
 MEM1     BX1    X5 
          RJ     GDL
          WRITEW O,BUF,14 
          LX5    6
          SX0    X0-1 
          NZ     X0,MEM1
          EQ     LPT1 
  
 MEMA     DATA   2A0
 MRP      SPACE  4
**        MRP - MAXIMUM RATE PRINTOUT.
  
  
 MRP      SX2    =C*MAX RATE PRINTOUT*
          RJ     STL
          SX0    50 
          SA5    MRPA 
 MRP1     BX1    X5 
          RJ     GDL
          WRITEW O,BUF,14 
          SX0    X0-1 
          ZR     X0,LPT1
          SA5    A5+B1
          NZ     X5,MRP1
          SA5    MRPA 
          EQ     MRP1 
  
 MRPA     BSS    0
          DATA   10H0000000000
          DATA   10H,,,,,,,,,,
          DATA   10HOOOOOOOOOO
          DATA   10H4444444444
          DATA   10H@@@@@@@@@@
          DATA   10HSSSSSSSSSS
          DATA   10H8888888888
          DATA   65656565656565656565B
          DATA   10HWWWWWWWWWW
          DATA   10HCCCCCCCCCC
          DATA   10H^^^^^^^^^^
          DATA   10H..........
          DATA   10HGGGGGGGGGG
          DATA   10H<<<<<<<<<<
          DATA   10H((((((((((
          DATA   10HKKKKKKKKKK
          DATA   0
 OEC      SPACE  4
**        OEC - ODD/EVEN COLUMNS. 
  
  
 OEC      SX6    B0 
          SA6    OECA 
 OEC1     SA1    OECA 
          SA5    OECB+X1
          SX6    X1+B1
          SA6    A1 
          ZR     X5,LPT1
          SX2    =C*ODD COLUMNS*
          RJ     STL
          SX0    50 
          SA0    B1 
 OEC2     BX1    X5          LIST DATA LINE 
          RJ     GDL
          WRITEW O,BUF,14 
          SX0    X0-1 
          NZ     X0,OEC2
          SB2    A0 
          LX5    -6 
          ZR     B2,OEC1
          SA0    A0-B1
          SX0    50 
          SX2    =C*EVEN COLUMNS* 
          RJ     STL
          EQ     OEC2 
  
 OECA     CON    0
  
 OECB     BSS    0
          DATA   10H - - - - -
          DATA   10H 0 0 0 0 0
          DATA   10H M M M M M
          CON    0
 SCP      SPACE  4
**        SCP - SHIFTING CHARACTER PATTERN. 
  
  
 SCP      SX2    =C*INT. BCD CONVERTED* 
          RJ     STL
          SX0    100
          SA0    B0 
 SCP1     SB2    A0 
          MX3    6*6
          SB3    14 
          SA0    A0+B1
          SB4    A0-100B
          NG     B4,SCP2
          SA0    B0 
 SCP2     RJ     GCS
          WRITEW O,BUF,14 
          SX0    X0-1 
          NZ     X0,SCP1
          SX2    =C*NEGATE BCD CONVERSION*
          RJ     STL
          SX0    50 
          SA0    101B 
 SCP3     SA0    A0-B1
          MX3    6*6
          SB3    14 
          SB2    A0 
          RJ     GCS
          WRITEW O,BUF,14 
          SX0    X0-1 
          NZ     X0,SCP3
          EQ     LPT1 
 SPC      SPACE  4
**        SPC - SPACE CHECK.
  
  
 SPC      SX0    25 
 SPC1     WRITEC O,(=C* SINGLE SPACE*)
          SX0    X0-1 
          NZ     X0,SPC1
          WRITEC O,(=C*2LAST LINE OF FORM*) 
          WRITEC O,(=C* TOP OF FORM*) 
          SX0    24 
          WRITEC O,(=C* DOUBLE SPACE*)
 SPC2     WRITEC O,(=C*0DOUBLE SPACE*)
          SX0    X0-1 
          NZ     X0,SPC2
          WRITEC O,(=C*2LAST LINE OF FORM*) 
          EQ     LPT1 
 VAR      SPACE  4
**        VAR - VARIABLE BUFFER.
  
  
 VAR      WRITEC O,(=C*Q *) 
          SX6    B0 
          SA6    VARA 
          SX2    =C*VARIABLE BUFFER*
          RJ     STL
          SX0    136/2
          MX5    12 
          SA0    B1 
 VAR1     SA4    VARA 
          SB3    A0 
          BX3    X5 
          SB2    X4 
          RJ     GCS
          MX6    0
          SA6    A6+B1
          ZR     X4,VAR2
          WRITEC O,VARB 
 VAR2     WRITEC O,BUF
          SX0    X0-1 
          ZR     X0,VAR3
          BX1    X5 
          AX5    12 
          NZ     X1,VAR1
          MX5    12 
          SA0    A0+B1
          EQ     VAR1 
 VAR3     SA1    VARA 
          NZ     X1,LPT1
          MOVE   14,BUF,VARB
          SX6    8
          SA6    VARA 
          SX0    136/2
          MX5    12 
          SA0    B1 
          EQ     VAR1 
  
 VARA     CON    0
 VARB     BSS    14 
 GCS      TITLE  SUBROUTINES. 
**        GCS - GENERATE CHARACTER SEQUENCE.
*         ENTRY  (B2) = STARTING CHARACTER NUMBER.
*                (X3) = FINAL WORD MASK.
*                (B3) = WORD COUNT. 
  
  
 GCS      PS                 ENTRY/EXIT 
          SA1    GCSA-1+B2
          SB2    B0 
          BX6    X6-X6
          MX2    1
          SX1    1R 
 GCS1     LX6    6
          BX6    X6+X1
          SA1    A1+B1
          LX2    6
          PL     X1,GCS2
          SA1    GCSA 
 GCS2     PL     X2,GCS1
          SA6    BUF+B2 
          SB2    B2+B1
          BX6    X6-X6
          NE     B2,B3,GCS1 
          SA1    A6 
          BX6    X3*X1
          SA6    A6 
          EQ     GCS
  
 GCSA     BSS    0
          CON    1R1
          CON    1R2
          CON    1R3
          CON    1R4
          CON    1R5
          CON    1R6
          CON    1R7
          CON    1R8
          CON    1R9
          CON    1RA
          CON    1RB
          CON    1RC
          CON    1RD
          CON    1RE
          CON    1RF
          CON    1RG
          CON    1RH
          CON    1RI
          CON    1RJ
          CON    1RK
          CON    1RL
          CON    1RM
          CON    1RN
          CON    1RO
          CON    1RP
          CON    1RQ
          CON    1RR
          CON    1RS
          CON    1RT
          CON    1RU
          CON    1RV
          CON    1RW
          CON    1RX
          CON    1RY
          CON    1RZ
          CON    1R.
          CON    1R-
          CON    1R+
          CON    1R=
          CON    1R(
          CON    1R)
          CON    1R/
          CON    1R*
          CON    1R,
          CON    64B
          CON    1R$
 GCSB     CON    00          COLON
          CON    1R@
          CON    1R 
          CON    1R[
          CON    1R]
          CON    65B
          CON    1R#
          CON    1R&
          CON    1R!
          CON    1R^
          CON    1R'
          CON    1R?
          CON    1R>
          CON    1R<
          CON    1R\
          CON    1R;
          CON    1R 
          CON    1R0
  
          CON    -1 
 GDL      SPACE  4
**        GDL - GENERATE DATA LINE. 
*         ENTRY  (X1) = DATA WORD.
*         USES   X - 2, 6.
*                B - 2, 3.
*                A - 6. 
  
  
 GDL      PS                 ENTRY/EXIT 
          MX2    -54
          SB2    B1 
          SB3    13 
          SX3    1R          SET BLANK IN COLUMN 1
          BX2    -X2*X1 
          LX3    -6 
          BX6    X3+X2
          BX2    X2-X2
          SA6    BUF
 GDL2     BX6    -X2*X1 
          SA6    BUF+B2 
          SB2    B2+B1
          NE     B2,B3,GDL2 
          MX2    6*6
          BX6    X2*X1
          SA6    A6+B1
          EQ     GDL
 STL      SPACE  4
**        STL - SET TITLE LINE. 
*         ENTRY  (X2) = TITLE.
*         EXIT   NONE.
*         CALLS  GDL. 
  
  
 STL      PS                 ENTRY/EXIT 
          MOVE   3,X2,STLB
          WRITEC O,STLA 
          WRITEC O,(=C*  *) 
          SA1    =10H 
          BX6    X1          FILL BUFFER WITH BLANKS
          SB6    B1 
          SB7    14 
          SA6    BUF
 STL1     SX1    B6 
          RJ     CDD
          BX6    X4          CONVERTED LEFT JUSTIFIED NUMBER
          SA6    BUF+B6 
          SB6    B6+B1
          NE     B6,B7,STL1 
          MX1    36          INSURE END-OF-LINE 
          BX6    X6*X1
          SA6    A6 
          WRITEW O,BUF,B7 
          SA1    =10H0123456789 
          RJ     GDL
          WRITEW O,BUF,14 
          WRITEC O,(=C*  *) 
          WRITEC O,(=C*  *) 
          EQ     STL
  
 STLA     BSS    0
          DATA   1H1
          DUP    5,1
          DATA   1H 
 STLB     BSSZ   4
          SPACE  4
**        COMMON DECKS. 
  
  
*CALL     COMCCDD 
*CALL     COMCCIO 
*CALL     COMCMVE 
*CALL     COMCSYS 
*CALL     COMCWTC 
*CALL     COMCWTW 
 BUFFERS  SPACE  4
**        BUFFERS.
  
  
          USE    // 
          SEG 
 BUFFERS  BSS    0
  
 BUF      BSS    15D         SCRATCH BUFFER 
  
 OBUF     BSS    OBUFL
  
 RFL=     BSS    0           SET FIELD LENGTH 
          SPACE  4
          END 
