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