{$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.





