10 DEFFNS="ProgPrt":REM By C.J.Richardson For 8-Bit Software. 20 MODE128 30 PRINT"Program an Epson Stylus 400. ENTER 2 DIGIT CODE FOR PRINTER CODE." 40 PRINT'" 01. Initialise Printer. 29. Condensed." 50 PRINT" 02. Unidirectional on. 30. Cancel Condensed." 60 PRINT" 03. Unidirectional off. 31. Double Width." 70 PRINT" 04. 1/8 Linespace. 32. Cancel Double Width." 80 PRINT" 05. 1/6 Linespace. 33. Double Height." 90 PRINT" 06. n/180 Linespace. 34. Cancel Double Height." 100 PRINT" 07. n/360 Linespace. 35. Double Strike." 110 PRINT" 08. Pagelength by lines. 36. Cancel Double Strike." 120 PRINT" 09. Pagelength by inches. 37. Superscript." 130 PRINT" 10. Left Margin. 38. Subscript." 140 PRINT" 11. Right Margin. 39. Cancel Super/Sub Script." 150 PRINT" 12. Roman. 40. Underline Fancy." 160 PRINT" 13. Sans Serif. 41. Underline On." 170 PRINT" 14. Courier. 42. Underline Off." 180 PRINT" 15. Prestige. 43. Normal Character." 190 PRINT" 16. Roman T. 44. Outline." 200 PRINT" 17. Sans Serif H. 45. Shadow." 210 PRINT" 18. Font by pitch+point. 46. Outline With Shadow." 220 PRINT" 19. 10 cpi. 47. Proportional on." 230 PRINT" 20. 12 cpi. 48. Proportional off." 240 PRINT" 21. 15 cpi. 49. " 250 PRINT" 22. Inter Character Space. 50. " 260 PRINT" 23. Draft. 51. " 270 PRINT" 24. LQ. 52. Test Print. (This is a test)." 280 PRINT" 25. Italic. 53. Input Text. Finish With ZZZ." 290 PRINT" 26. Italic off." 300 PRINT" 27. Bold." 310 PRINT" 28. Cancel Bold." 320 REPEAT 330 *FX21 340 PRINTTAB(0,30); 350 A$="" 360 A$=GET$ 370 PRINTA$; 380 A$=A$+GET$ 390 PRINTRIGHT$(A$,1) 400 B%=VAL A$ 410 IF B%>0 IF B%<29 PRINTTAB(0,B%+1)">" 420 IF B%>28 IF B%<54 IF B%<>52 IF B%<>53 PRINTTAB(34,B%-27)">" 430 IF B%=1:VDU2,1,27,1,64,3:RUN 440 IF B%=2:VDU2,1,27,1,85,1,1,3:VDU31,0,4,32 450 IF B%=3:VDU2,1,27,1,85,1,0,3:VDU31,0,3,32 460 IF B%=4:VDU2,1,27,1,48,3:VDU31,0,6,32,10,8,32,10,8,32 470 IF B%=5:VDU2,1,27,1,50,3:VDU31,0,5,32,10,10,8,32,10,8,32 480 IF B%=6:PROCget("180th linespace "):VDU2,1,27,1,51,1,A%,3:VDU31,0,5,32,10,8,32,10,10,8,32:PRINTTAB(24,7);STR$A%;" "; 490 IF B%=7:PROCget("360th linespace "):VDU2,1,27,1,43,1,A%,3:VDU31,0,5,32,10,8,32,10,8,32:PRINTTAB(24,8);STR$A%;" "; 500 IF B%=8:PROCget("Number of Lines "):VDU2,1,27,1,67,1,A%,3:PRINTTAB(27,9);STR$A%;" "; 510 IF B%=9:PROCget("Inches "):VDU2,1,27,1,67,1,0,1,A%,3:PRINTTAB(27,10);STR$A%;" "; 520 IF B%=10:PROCget("Margin "):VDU2,1,27,1,108,1,A%,3:PRINTTAB(25,11);STR$A%;" "; 530 IF B%=11:PROCget("Margin "):VDU2,1,27,1,81,1,A%,3:PRINTTAB(25,12);STR$A%;" "; 540 IF B%=12:VDU2,1,27,1,107,1,0,3:VDU31,0,14,32,10,8,32,10,8,32,10,8,32,10,8,32 550 IF B%=13:VDU2,1,27,1,107,1,1,3:VDU31,0,13,32,10,10,8,32,10,8,32,10,8,32,10,8,32 560 IF B%=14:VDU2,1,27,1,107,1,2,3:VDU31,0,13,32,10,8,32,10,10,8,32,10,8,32,10,8,32 570 IF B%=15:VDU2,1,27,1,107,1,3,3:VDU31,0,13,32,10,8,32,10,8,32,10,10,8,32,10,8,32 580 IF B%=16:VDU2,1,27,1,107,1,10,3:VDU31,0,13,32,10,8,32,10,8,32,10,8,32,10,10,8,32 590 IF B%=17:VDU2,1,27,1,107,1,11,3:VDU31,0,13,32,10,8,32,10,8,32,10,8,32,10,8,32 600 IF B%=18:PROCget("Pitch 0 1 18 21 24 30 36 42 48 60 OR 64 "):C%=A% 610 IF B%=18:PROCget("Point 0 16 21 24 28 32 36 40 44 48 52 56 60 OR 64 "):D%=A% 620 IF B%=18:VDU2,1,27,1,88,1,C%,1,D%,1,0,1,27,1,51,1,D%*1.5,3:PRINTTAB(26,19);STR$C%;" ";STR$D%;" ";TAB(24,7);STR$(D%*1.5);" ";:VDU31,0,20,32,10,8,32,10,8,32,10,8,32 630 IF B%=19:VDU2,1,27,1,80,3:VDU31,0,19,32,10,10,8,32,10,8,32,10,8,32 640 IF B%=20:VDU2,1,27,1,77,3:VDU31,0,19,32,10,8,32,10,10,8,32,10,8,32 650 IF B%=21:VDU2,1,27,1,103,3:VDU31,0,19,32,10,8,32,10,8,32,10,10,8,32 660 IF B%=22:PROCget("Number of units 1/120-Draft 1/180-LQ"):VDU2,1,27,1,32,1,A%,3:PRINTTAB(28,23);STR$A%;" "; 670 IF B%=23:VDU2,1,27,1,120,1,0,3:VDU31,0,25,32 680 IF B%=24:VDU2,1,27,1,120,1,1,3:VDU31,0,24,32 690 IF B%=25:VDU2,1,27,1,52,3:VDU31,0,27,32 700 IF B%=26:VDU2,1,27,1,53,3:VDU31,0,26,32 710 IF B%=27:VDU2,1,27,1,69,3:VDU31,0,29,32 720 IF B%=28:VDU2,1,27,1,70,3:VDU31,0,28,32 730 IF B%=29:VDU2,1,15,3:VDU31,34,3,32 740 IF B%=30:VDU2,1,18,3:VDU31,34,2,32 750 IF B%=31:VDU2,1,27,1,87,1,1,3:VDU31,34,5,32 760 IF B%=32:VDU2,1,27,1,87,1,0,3:VDU31,34,4,32 770 IF B%=33:VDU2,1,27,1,119,1,1,3:VDU31,34,7,32 780 IF B%=34:VDU2,1,27,1,119,1,0,3:VDU31,34,6,32 790 IF B%=35:VDU2,1,27,1,71,3:VDU31,34,9,32 800 IF B%=36:VDU2,1,27,1,72,3:VDU31,34,8,32 810 IF B%=37:VDU2,1,27,1,83,1,0,3:VDU31,34,11,32,10,8,32 820 IF B%=38:VDU2,1,27,1,83,1,1,3:VDU31,34,10,32,10,10,8,32 830 IF B%=39:VDU2,1,27,1,84,3:VDU31,34,10,32,10,8,32 840 IF B%=40:PROCget("1 Under 2 Through 3 Over "):D%=A% 850 IF B%=40:PROCget("0-Cancel 1-Sing Cont 2-Doub Cont 5-Sing Broken 6-Doub Broken "):E%=A% 860 IF B%=40:VDU2,1,27,1,40,1,45,1,3,1,0,1,1,1,D%,1,E%,3:PRINTTAB(60,13);STR$D%;" ";STR$E%;" "; 870 IF B%=41:VDU2,1,27,1,45,1,1,3:VDU31,34,15,32 880 IF B%=42:VDU2,1,27,1,45,1,0,3:VDU31,34,14,32 890 IF B%=43:VDU2,1,27,1,113,1,0,3:VDU31,34,17,32,10,8,32,10,8,32 900 IF B%=44:VDU2,1,27,1,113,1,1,3:VDU31,34,16,32,10,10,8,32,10,8,32 910 IF B%=45:VDU2,1,27,1,113,1,2,3:VDU31,34,16,32,10,8,32,10,10,8,32 920 IF B%=46:VDU2,1,27,1,113,1,3,3:VDU31,34,16,32,10,8,32,10,8,32 930 IF B%=47:VDU2,1,27,1,112,1,1,3:VDU31,34,21,32 940 IF B%=48:VDU2,1,27,1,112,1,0,3:VDU31,34,20,32 950 IF B%=52:VDU2:PRINTTAB(0,30);"This is a test printout.":VDU3 960 IF B%=53:PROCtext 970 PRINTTAB(0,30);SPC75;TAB(0,30); 980 UNTILFALSE 990 END 1000 DEFPROCget(B$) 1010 PRINTTAB(0,30);SPC(79);TAB(0,30);B$; 1020 INPUTA% 1030 ENDPROC 1040 DEFPROCtext 1050 REPEAT 1060 PRINTTAB(0,30);SPC79;TAB(0,30); 1070 INPUT B$ 1080 IF B$<>"ZZZ" FORL%=1TOLENB$:VDU2,1,ASC(MID$(B$,L%,1)),3:NEXT:VDU2,1,13,3 1090 UNTILB$="ZZZ" 1100 PRINTTAB(0,30);"ZZZ"; 1110 ENDPROC