SUBROUTINE PCL5.PORTLAND.SUB(PORTLAND) * ETA/bsc - 05/08/96 - Laser printer orientation selection routine * * PORTLAND 0 Portrait * 1 Landscape * IF NOT(ASSIGNED(PORTLAND)) THEN PORTLAND=0 IF PORTLAND#"1" THEN PORTLAND=0 * STR=CHAR(27):"&l":PORTLAND:"O" PRINT STR: * RETURN * * End of source SUBROUTINE PCL5.TRAY.SUB(TRAY) * ETA/bsc - 05/08/96 - Laser printer orientation selection routine * * TRAY 3 Bottom tray (default - plain paper) * 2 Middle tray (checks, invoices) * 1 Fold-down hand-fed tray * IF NOT(ASSIGNED(TRAY)) THEN TRAY=2 IF NOT(NUM(TRAY)) THEN TRAY=2 IF TRAY=1 OR TRAY=3 ELSE TRAY=2 * BEGIN CASE CASE TRAY=2; TRAY=1 CASE TRAY=3; TRAY=5 CASE TRAY=1; TRAY=4 CASE 1; TRAY=1 END CASE * STR=CHAR(27):"&l":TRAY:"H" PRINT STR: * RETURN * * End of source SUBROUTINE PCL5.RESET.LASER.SUB * ETA/bsc - 05/09/96 - Reset printer to normal font on a 66-line page * * PRINT CHAR(27):"&l0O": * PRINT CHAR(27):"&l66P": * PRINT CHAR(27):"(8U": * PRINT CHAR(27):"(s0p16.67h8.5v0s0b0T": CALL PCL5.RPOS.SUB(0,0,W) PRINT W:CHAR(27):"E": * RETURN * * End of source SUBROUTINE PCL5.POS.SUB(COL,ROW) * ETA/bsc - 05/08/96 - Laser printer positioning routine * * COL Horizontal position in dots @ 300/inch * ROW Vertical position in dots @ 300/inch * IF NOT(ASSIGNED(COL)) THEN COL=0 IF NOT(ASSIGNED(ROW)) THEN ROW=0 * IF NOT(NUM(COL)) THEN COL=0 IF NOT(NUM(ROW)) THEN ROW=0 * * Position * PRINT CHAR(27):"*p":COL:"x":ROW:"Y": * RETURN * * End of source SUBROUTINE PCL5.LIN.SUB(COL,ROW,WIDE,HIGH) * ETA/bsc - 05/08/96 - Laser printer line print routine * * COL Horizontal position in dots @ 300/inch * ROW Vertical position in dots @ 300/inch * WIDE Horizontal length in dots @ 300/inch * HIGH Vertical length in dots @ 300/inch * IF NOT(ASSIGNED(COL)) THEN COL=0 IF NOT(ASSIGNED(ROW)) THEN ROW=0 IF NOT(ASSIGNED(WIDE)) THEN WIDE=0 IF NOT(ASSIGNED(HIGH)) THEN HIGH=0 * IF NOT(NUM(COL)) THEN COL=0 IF NOT(NUM(ROW)) THEN ROW=0 IF NOT(NUM(WIDE)) THEN WIDE=0 IF NOT(NUM(HIGH)) THEN HIGH=0 * * Position upper-lefthand corner * PRINT CHAR(27):"*p":COL:"x":ROW:"Y": * * Print .01" line * IF WIDE THEN PRINT CHAR(27):"*c":WIDE:"a3b0P": END ELSE PRINT CHAR(27):"*c3a":HIGH:"b0P": END * RETURN * * End of source SUBROUTINE PCL5.RPOS.SUB(COL,ROW,STR) * ETA/bsc - 09/11/96 - Create laser printer positioning string * * COL Horizontal position in dots @ 300/inch * ROW Vertical position in dots @ 300/inch * STR String containing printer positioning command string * IF NOT(ASSIGNED(COL)) THEN COL=0 IF NOT(ASSIGNED(ROW)) THEN ROW=0 * IF NOT(NUM(COL)) THEN COL=0 IF NOT(NUM(ROW)) THEN ROW=0 * * Position * STR=CHAR(27):"*p":COL:"x":ROW:"Y" * RETURN * * End of source SUBROUTINE PCL5.BOX.SUB(COL,ROW,WIDE,HIGH,TYPE) * ETA/bsc - 05/04/96 - Laser printer shaded box print routine * * COL Horizontal position in dots @ 300/inch * ROW Vertical position in dots @ 300/inch * WIDE Box width in dots @ 300/inch * HIGH Box height in dots @ 300/inch * TYPE 0=No shading * 1=Light shading * 2=Medium shading * 3=Heavier shading * IF NOT(ASSIGNED(COL)) THEN COL=0 IF NOT(ASSIGNED(ROW)) THEN ROW=0 IF NOT(ASSIGNED(WIDE)) THEN WIDE=300 IF NOT(ASSIGNED(HIGH)) THEN HIGH=75 IF NOT(ASSIGNED(TYPE)) THEN TYPE=0 * IF NOT(NUM(COL)) THEN COL=0 IF NOT(NUM(ROW)) THEN ROW=0 IF NOT(NUM(WIDE)) THEN WIDE=300 IF NOT(NUM(HIGH)) THEN HIGH=75 IF NOT(NUM(TYPE)) THEN TYPE=0 * BEGIN CASE CASE TYPE=1 SHADE=2 CASE TYPE=2 SHADE=7 CASE TYPE=3 SHADE=15 CASE 1 SHADE=0 END CASE * * Position upper-lefthand corner * PRINT CHAR(27):"*p":COL:"x":ROW:"Y": * * Print shaded portion * IF SHADE THEN PRINT CHAR(27):"*c":WIDE:"a":HIGH:"b":SHADE:"g2P": * * Print .01" border * PRINT CHAR(27):"*c3a":HIGH:"b0P": PRINT CHAR(27):"*c":WIDE:"a3b0P": PRINT CHAR(27):"*p":(COL+(WIDE-2)):"x":ROW:"Y": PRINT CHAR(27):"*c3a":HIGH:"b0P": PRINT CHAR(27):"*p":COL:"x":(ROW+(HIGH-2)):"Y": PRINT CHAR(27):"*c":WIDE:"a3b0P": * RETURN * * End of source SUBROUTINE PCL5.SET.LASER.14.SUB * ETA/bsc - 05/09/96 - Set printer to an 14-inch page * PRINT CHAR(27):"&l92P": * RETURN * * End of source SUBROUTINE PCL5.RPORTLAND.SUB(PORTLAND,STR) * ETA/bsc - 05/08/96 - Laser printer orientation selection routine * * PORTLAND 0 Portrait * 1 Landscape * STR Printable command string * IF NOT(ASSIGNED(PORTLAND)) THEN PORTLAND=0 IF PORTLAND#"1" THEN PORTLAND=0 * STR=CHAR(27):"&l":PORTLAND:"O" * RETURN * * End of source SUBROUTINE PCL5.FNT.SUB(FONTNO,SIZE,BOLDITAL) * ETA/bsc - 05/08/96 - Laser printer font selection routine * * SIZE Characters per inch (fixed pitch fonts) * Points (proportionally spaced fonts) * BOLDITAL B, BI, I or null turns on bold &/or italic * FONTNO 0 Line printer * 1 Arial * 2 Letter Gothic * 3 Helvetica Narrow * 4 Courier * 5 Times Roman * STR Printable command string * IF NOT(ASSIGNED(SIZE)) THEN SIZE=16.67 IF NOT(ASSIGNED(BOLDITAL)) THEN BOLDITAL=0 IF NOT(ASSIGNED(FONTNO)) THEN FONTNO=0 * IF NOT(NUM(SIZE)) THEN SIZE=16.67 IF SIZE<0 THEN SIZE=16.67 IF NOT(NUM(FONTNO)) THEN FONTNO=0 IF FONTNO<0 OR FONTNO>5 THEN FONTNO=0 * IF INDEX(BOLDITAL,"B",1) THEN BOLD=3 ELSE BOLD=0 IF INDEX(BOLDITAL,"I",1) THEN ITAL=1 ELSE ITAL=0 * * Select font * BEGIN CASE CASE FONTNO=1; * Arial STR="(s1p":SIZE:"v":ITAL:"s":BOLD:"b16602T" CASE FONTNO=2; * Letter Gothic STR="(s0p":SIZE:"h":ITAL:"s":BOLD:"b4102T" CASE FONTNO=3; * Helvetica Narrow STR="(s1p":SIZE:"v":ITAL:"s":BOLD:"b24580T" CASE FONTNO=4; * Courier STR="(s0p":SIZE:"h":ITAL:"s":BOLD:"b24579T" CASE FONTNO=5; * Times Roman STR="(s1p":SIZE:"v":ITAL:"s":BOLD:"b25093T" CASE 1 ; * Line printer STR="(s0p16.67h8.5v0s0b0T" END CASE STR=CHAR(27):"(8U":CHAR(27):STR PRINT STR: * RETURN * * End of source SUBROUTINE PCL5.RBOX.SUB(COL,ROW,WIDE,HIGH,TYPE,STR) * ETA/bsc - 09/11/96 - Create laser printer shaded box STR=STR:string * * COL Horizontal position in dots @ 300/inch * ROW Vertical position in dots @ 300/inch * WIDE Box width in dots @ 300/inch * HIGH Box height in dots @ 300/inch * TYPE 0=No shading * 1=Light shading * 2=Medium shading * 3=Heavier shading * STR Printable box-drawing printer command string * IF NOT(ASSIGNED(COL)) THEN COL=0 IF NOT(ASSIGNED(ROW)) THEN ROW=0 IF NOT(ASSIGNED(WIDE)) THEN WIDE=300 IF NOT(ASSIGNED(HIGH)) THEN HIGH=75 IF NOT(ASSIGNED(TYPE)) THEN TYPE=0 * IF NOT(NUM(COL)) THEN COL=0 IF NOT(NUM(ROW)) THEN ROW=0 IF NOT(NUM(WIDE)) THEN WIDE=300 IF NOT(NUM(HIGH)) THEN HIGH=75 IF NOT(NUM(TYPE)) THEN TYPE=0 * STR="" * BEGIN CASE CASE TYPE=1 SHADE=2 CASE TYPE=2 SHADE=7 CASE TYPE=3 SHADE=15 CASE 1 SHADE=0 END CASE * * Position upper-lefthand corner * STR=CHAR(27):"*p":COL:"x":ROW:"Y" * * Print shaded portion * IF SHADE THEN STR=STR:CHAR(27):"*c":WIDE:"a":HIGH:"b":SHADE:"g2P" * * Print .01" border * STR=STR:CHAR(27):"*c3a":HIGH:"b0P" STR=STR:CHAR(27):"*c":WIDE:"a3b0P" STR=STR:CHAR(27):"*p":(COL+(WIDE-2)):"x":ROW:"Y" STR=STR:CHAR(27):"*c3a":HIGH:"b0P" STR=STR:CHAR(27):"*p":COL:"x":(ROW+(HIGH-2)):"Y" STR=STR:CHAR(27):"*c":WIDE:"a3b0P" * RETURN * * End of source SUBROUTINE PCL5.FNT.SUB(FONTNO,SIZE,BOLDITAL,STR) * ETA/bsc - 05/08/96 - Laser printer font selection routine * * SIZE Characters per inch (fixed pitch fonts) * Points (proportionally spaced fonts) * BOLDITAL B, BI, I or null turns on bold &/or italic * FONTNO 0 Line printer * 1 Arial * 2 Letter Gothic * 3 Helvetica Narrow * 4 Courier * 5 Times Roman * STR Printable command string * IF NOT(ASSIGNED(SIZE)) THEN SIZE=16.67 IF NOT(ASSIGNED(BOLDITAL)) THEN BOLDITAL=0 IF NOT(ASSIGNED(FONTNO)) THEN FONTNO=0 * IF NOT(NUM(SIZE)) THEN SIZE=16.67 IF SIZE<0 THEN SIZE=16.67 IF NOT(NUM(FONTNO)) THEN FONTNO=0 IF FONTNO<0 OR FONTNO>5 THEN FONTNO=0 * IF INDEX(BOLDITAL,"B",1) THEN BOLD=3 ELSE BOLD=0 IF INDEX(BOLDITAL,"I",1) THEN ITAL=1 ELSE ITAL=0 * * Select font * BEGIN CASE CASE FONTNO=1; * Arial STR="(s1p":SIZE:"v":ITAL:"s":BOLD:"b16602T" CASE FONTNO=2; * Letter Gothic STR="(s0p":SIZE:"h":ITAL:"s":BOLD:"b4102T" CASE FONTNO=3; * Helvetica Narrow STR="(s1p":SIZE:"v":ITAL:"s":BOLD:"b24580T" CASE FONTNO=4; * Courier STR="(s0p":SIZE:"h":ITAL:"s":BOLD:"b24579T" CASE FONTNO=5; * Times Roman STR="(s1p":SIZE:"v":ITAL:"s":BOLD:"b25093T" CASE 1 ; * Line printer STR="(s0p16.67h8.5v0s0b0T" END CASE STR=CHAR(27):"(8U":CHAR(27):STR * RETURN * * End of source