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