10 ' FACELIFT: Selects typeface for Epson RX, FX or MX (w/ Graftrax+) printers 20 ' Caution: Will not work with older MX's that require ASCII NULL for "0" 30 ' Type SPACEBAR to reset any selections already made 40 ' Type M or m to exit to BASIC 50 ' This program will NOT prevent irrational or meaningless choices, such as 60 ' trying to set proportional mode on an Epson RX-80 printer. 65 ' See REM at line 655 if you wish to include Proportional 70 ' Contributor is not responsible for the odd coding style herein. Note that 80 ' FaceLift was originally Protected, no doubt to prevent people from looking 90 ' at an example of amateurish BASIC. Who cares? The program works. 100 PRINT CHR$(26) 110 PRINT TAB(10)STRING$(60,46) 120 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 130 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 140 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 150 PRINT TAB(10)CHR$(58)TAB(35)"FACELIFT (tm)"TAB(69)CHR$(58) 160 PRINT TAB(10)CHR$(58)TAB(35)STRING$(8,61)TAB(69)CHR$(58) 170 PRINT TAB(10)CHR$(58)TAB(35)TAB(69)CHR$(58) 180 PRINT TAB(10)CHR$(58)TAB(23)"for the EPSON MX, RX & FX PRINTERS"TAB(69)CHR$(58) 190 PRINT TAB(10)CHR$(58)TAB(24)TAB(69)CHR$(58) 200 PRINT TAB(10)CHR$(58)TAB(31)"CP/M VERSION 3.01"TAB(69)CHR$(58) 210 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 220 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 230 PRINT TAB(10)CHR$(58)TAB(30)"Turn Your Printer ON"TAB(69)CHR$(58) 240 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 250 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 260 PRINT TAB(10)CHR$(58)TAB(21)STRING$(38,46)TAB(69)CHR$(58) 270 PRINT TAB(10)CHR$(58)TAB(21)CHR$(58)TAB(58)CHR$(58)TAB(69)CHR$(58) 280 PRINT TAB(10)CHR$(58)STRING$(10,46)CHR$(58)" FOR TYPEFACE MENU -- PRESS ANY KEY "CHR$(58)STRING$(10,46)CHR$(58) 290 PRINT TAB(21)CHR$(58)STRING$(36,46)CHR$(58) 300 PRINT 310 GOSUB 890 320 IF X$<>"" THEN GOTO 350 330 PRINT CHR$(7);:PRINT CHR$(26):END 340 LPRINT CHR$(7);:PRINT CHR$(26):SYSTEM 350 PRINT CHR$(26) 360 X$="" 370 GOSUB 800 380 PRINT CHR$(26):Y$=Y$+CHR$(60)+X$+CHR$(62) 390 PRINT CHR$(26):PRINT TAB(10)STRING$(60,46) 400 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 410 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 420 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 430 PRINT TAB(10)CHR$(58)TAB(35)"TYPEFACES"TAB(69)CHR$(58) 440 PRINT TAB(10)CHR$(58)TAB(35)STRING$(9,61)TAB(69)CHR$(58) 450 PRINT 460 PRINT TAB(7) "TO CHOOSE A TYPEFACE, PRESS LETTER OR COMBINATION OF LETTERS BELOW" 470 PRINT 480 PRINT TAB(10)CHR$(58)TAB(20)"<B>abyface"TAB(49)"<U>nderline"TAB(69)CHR$(58) 490 PRINT TAB(10)CHR$(58)TAB(20)"<C>ondensed"TAB(49)"<D>oublestrike"TAB(69)CHR$(58) 500 PRINT TAB(10)CHR$(58)TAB(20)"<E>lite"TAB(49)"<H>eavy"TAB(69)CHR$(58) 510 PRINT TAB(10)CHR$(58)TAB(20)"<T>rimline"TAB(49)"<I>talics"TAB(69)CHR$(58) 520 PRINT TAB(10)CHR$(58)TAB(20)"<W>ide"TAB(49)"<P>roportional"TAB(69)CHR$(58) 530 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 540 PRINT TAB(10)CHR$(58)TAB(23)"TO CHANGE SELECTION - HIT SPACEBAR"TAB(69)CHR$(58) 550 PRINT TAB(10)CHR$(58)TAB(69)CHR$(58) 560 PRINT TAB(10)CHR$(58)TAB(18)"PRINTER COMMANDS: ";Y$;TAB(69)CHR$(58) 570 PRINT TAB(10)CHR$(58)TAB(17)STRING$(46,46)TAB(69)CHR$(58) 580 PRINT TAB(10)CHR$(58)STRING$(6,46)CHR$(58)" To SET PRINTER & EXIT FACELIFT, HIT RETURN "TAB(62)CHR$(58)STRING$(6,46)TAB(69)CHR$(58) 590 PRINT TAB(17)CHR$(58)STRING$(44,46)TAB(62)CHR$(58):GOSUB 890 600 ' Now set printer as indicated 610 ' Two bizarre lines that attempted to trap everything NOT a valid command 620 ' deleted in favor of much simpler INSTR construction. Might have been 630 ' some kind of "hacker trap" coding; line buffer overflow was possible if 640 ' the file converted to ,A type and then loaded. Wizards, who needs 'em?! 650 Q$ = "BbCcEeTtWwUuDdHhIi Mm" + CHR$(13) 655 REM Q$ = Q$ + "Pp" '<-- Remove the REM if including Proportional 660 IF INSTR(Q$,X$) = 0 THEN PRINT CHR$(7): GOTO 390 670 IF X$="B" OR X$="b" THEN LPRINT CHR$(27);"A";CHR$(6);CHR$(27);"S";CHR$(1)CHR$(15); 680 IF X$="C" OR X$="c" THEN LPRINT CHR$(15); 690 IF X$="E" OR X$="e" THEN LPRINT CHR$(27);"M"; 700 IF X$="T" OR X$="t" THEN LPRINT CHR$(27);"S0"; 710 IF X$="W" OR X$="w" THEN LPRINT CHR$(27);"W1"; 720 IF X$="U" OR X$="u" THEN LPRINT CHR$(27);"-1"; 730 IF X$="D" OR X$="d" THEN LPRINT CHR$(27);"G"; 740 IF X$="H" OR X$="h" THEN LPRINT CHR$(27);"E"; 750 IF X$="I" OR X$="i" THEN LPRINT CHR$(27);"4"; 760 IF X$="P" OR X$="p" THEN LPRINT CHR$(27);"p1"; 770 IF X$=CHR$(32) THEN GOSUB 850 780 IF X$="M" OR X$="m" THEN GOTO 330; 790 IF X$=CHR$(13) THEN GOTO 340:ELSE GOTO 380; 800 PRINT CHR$(26):PRINT:PRINT:PRINT:PRINT:X$="CLEAR" 810 PRINT 820 PRINT 830 PRINT 840 PRINT TAB(18)"Please make sure your PRINTER is ON and READY" 850 LPRINT CHR$(27)"@";CHR$(7); 860 X$="CLEAR" 870 Y$="" 880 RETURN 890 X$=INKEY$:IF X$="" THEN GOTO 890 900 RETURN DY" 850 LPRINT CHR$(27)"@";CHR$(7); 860 X$="CLEAR" 870 Y$=""