{$U+} PROGRAM Setprint; {STEUERZEICHEN F. Epson-komp. und Riteman F+ } TYPE line = STRING[80]; buchstaben = SET OF char; VAR i : integer; key : boolean; select : char; area : buchstaben; (*PROGRAM FRAME; {S. 132} {ehemals BOX}*) PROCEDURE DrawBox ( X1,Y1,X2,Y2 : Integer ); VAR I:integer; BEGIN gotoxy(x1,y1); write(chr(150)); FOR i:=x1+1 TO x2-1 DO write(chr(154)); write(chr(156)); gotoxy(x1,y1+1); FOR i:=y1+1 TO y2-1 DO BEGIN gotoxy(x1,i); write(chr(149)); gotoxy(x2,i); write(chr(149)); END; gotoxy(x1,y2); write(chr(147)); FOR i:=x1+1 TO x2-1 DO write(chr(154)); write(chr(153)); END; PROCEDURE menue; BEGIN gotoxy(10,2); write('MENUE ZUR EINSTELLUNG VON EPSON-KOMP. DRUCKERN'); gotoxy(10,3); write('=============================================='); gotoxy(8,4); write('A -- Doppelter Zeilenvorschub B -- Normaler Zeilenvorschub'); gotoxy(8,5); write('C -- ASCII-Zeichensatz D -- Deutscher Zeichensatz'); gotoxy(8,6); write('E -- Fettdruck ein F -- Fettdruck aus '); gotoxy(8,7); write('G -- Doppeldruck ein H -- Doppeldruck aus '); gotoxy(8,8); write('I -- Italic (Kursiv) ein J -- Italic aus'); gotoxy(8,9); write('K -- Komprimierter Druck ein L -- Komprimierter Druck aus'); gotoxy(8,10); write('M -- Breitschrift ein N -- Breitschrift aus'); gotoxy(8,11); write('O -- Elite Schriftart P -- Pica (Normal) -Schrift'); gotoxy(8,12); write('Q -- Proportionalschrift ein R -- Drucker Reset ausfuehren'); gotoxy(8,13); write('S -- Schoenschrift ein (NLQ) T -- Schoenschrift aus '); gotoxy(8,14); write('U -- Unterstreichen ein/aus V -- Hochstellen/ Tiefstellen aus'); gotoxy(8,15); write('W -- Hochstellen ein Y -- Tiefstellen ein'); gotoxy(8,16); write('X -- Programmende Z -- Menue Voreinstellungen'); gotoxy(4,18); write('Bitte auswaehlen! ') END; PROCEDURE msg(text:line); BEGIN gotoxy(8,20); FOR i:=1 TO 6 DO write(' '); gotoxy(8,20); write(text); gotoxy(23,18) END; PROCEDURE submenue; BEGIN clrscr; BEGIN drawbox(10,3,70,17); END; gotoxy(12,5); WRITE(' MENUE ZUM ABRUF VON DRUCKER-VOREINSTELLUNGEN'); gotoxy(12,6); WRITE(' ============================================'); gotoxy(12,8); write(' P -- Etikettendruck mit ^P und Dir oder XD.COM'); gotoxy(12,10); write(' O -- NLQ und doppelter Zeilenvorschub f. Formulare'); gotoxy(12,12); write(' X -- Verlassen --'); gotoxy(15,15); write(' Bitte auswaehlen ! '); area:=['O','P','X']; REPEAT REPEAT read(kbd,select); UNTIL upcase(select) IN area; gotoxy(37,15); write(upcase(select)); CASE upcase(select) OF 'X': BEGIN msg('Verlassen ... '); clrscr; HALT END; 'O': BEGIN write(LST,chr(27)+'A'+chr(24)+chr(27)+chr(120)+chr(1)+CHR(27)+'R'+chr(2)); msg('Doppelter Zeilenabstand /NLQ/ Deut. Zei. eingestellt'); END; 'P': BEGIN write (LST,chr(27)+chr(64)+chr(27)+chr(65)+chr(5)+chr(27)+chr(83)+chr(1)); write(LST,chr(27)+chr(15)+' '+chr(0)); msg('Printercodes fuer XD.COM eingestellt '); END; END;(*case*) UNTIL not true; END;(*procedure*) {***************** HAUPTPROGRAMM ***********************************} BEGIN area:= ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']; clrscr; BEGIN drawbox(1,1,80,23); END; menue; REPEAT REPEAT read(kbd,select); UNTIL UpCase(select) IN area; write (UpCase(select)); CASE UpCase(select) OF 'X': BEGIN msg('EXIT '); write(#12); EXIT END; 'A': BEGIN write(LST,chr(27)+'A'+chr(24)); msg('Doppelter Zeilenvorschub eingestellt'); END; 'B': BEGIN write(LST,chr(27)+chr(50)); msg('Normaler Zeilenvorschub eingestellt'); END; 'C': BEGIN write(LST,chr(27)+'R'+chr(0)); msg('ASCII-Zeichensatz eingestellt '); END; 'D': BEGIN write(LST,chr(27)+'R'+chr(2)); msg('Deutscher Zeichensatz eingestellt '); END; 'E': BEGIN write(LST,chr(27)+chr(69)); msg('Fettdruck eingestellt '); END; 'F': BEGIN write(LST,chr(27)+chr(70)); msg('Fettdruck aus'); END; 'G': BEGIN write(LST,chr(27)+chr(71)); msg('Doppeldruck eingestellt'); END; 'H': BEGIN write(LST,chr(27)+chr(72)); msg('Doppeldruck aus'); END; 'I': BEGIN write(LST,chr(27)+chr(52)); msg('Italic ein'); END; 'J': BEGIN write(LST,chr(27)+chr(53)); msg('Italic aus'); END; 'K': BEGIN write(LST,chr(15)); msg('Komprimierter Druck eingestellt'); END; 'L': BEGIN write(LST,chr(18)); msg('Komprimierter Druck aus'); END; 'M': BEGIN write(LST,chr(27)+'W'+chr(1)); msg('Breitdruck eingestellt'); END; 'N': BEGIN write(LST,chr(27)+'W'+chr(0)); msg('Verstaerkter Druck (emphasized) eingestellt'); END; 'O': BEGIN write(LST,chr(27)+chr(77)); msg('ELITE Schriftart eingestellt'); END; 'P': BEGIN write(LST,chr(27)+chr(80)); msg('PICA Schriftart (normal) eingestellt'); END; 'Q': BEGIN write(LST,chr(27)+chr(112)+chr(1)); msg('Proportionalschrift ein'); END; 'R': BEGIN write(LST,chr(27)+'@'); msg('Drucker Reset durchgefuehrt !!!'); END; 'S': BEGIN write(LST,chr(27)+chr(120)+chr(1)); msg('Schoenschrift (NLQ) eingestellt'); END; 'T': BEGIN write(LST,chr(27)+chr(120)+chr(0)); msg('Schoenschrift aus '); END; 'U': BEGIN write(LST,chr(27)+chr(45)); msg('Unterstreichen ein- / ausgeschaltet '); END; 'V': BEGIN write(LST,chr(27)+chr(84)); msg('Hoch-/ Tiefstellen aufgehoben'); END; 'W': BEGIN write(LST,chr(27)+'S'+chr(0)); msg('Hochgestellte Zeichen eingestellt '); END; 'Y': BEGIN write(LST,chr(27)+'S'+chr(1)); msg('Tiefgestellte Zeichen eingestellt '); END; 'Z': BEGIN submenue; END; END; UNTIL NOT TRUE; END.