home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / library / dos / tp_util / epson.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-03-18  |  9.3 KB  |  365 lines

  1.  
  2. PROGRAM EPSON;
  3. { EPSON- DRUCKER- EINSTELLUNG }
  4.  
  5. USES  CRT,PRINTER;
  6.  
  7. CONST ON = TRUE;
  8.       OFF = FALSE;
  9.  
  10. VAR   I,J,K             : INTEGER;
  11.       WERT              : INTEGER;
  12.       CH                : CHAR;
  13.       S                 : STRING[80];
  14.  
  15.  
  16. PROCEDURE ROMAN;
  17. BEGIN
  18.   WRITE(LST,^[,'x',^A);       { NLQ EIN }
  19.   WRITE(LST,^[,'k',^@);       { NLQ SCHRIFTART ROMAN }
  20. END;
  21.  
  22.  
  23. PROCEDURE SANS_SERIF;
  24. BEGIN
  25.   WRITE(LST,^[,'x',^A);       { NLQ EIN }
  26.   WRITE(LST,^[,'k',^A);       { NLQ SCHRIFTART SANS SERIF }
  27. END;
  28.  
  29.  
  30. PROCEDURE DRAFT;
  31. BEGIN
  32.   WRITE(LST,^[,'x',^@);       { NLQ AUS = DRAFT }
  33. END;
  34.  
  35.  
  36. PROCEDURE PROPORTIONAL(ONOFF:BOOLEAN);
  37. BEGIN
  38.   IF ONOFF THEN WRITE(LST,^[,'p',^A)  { PROPORTIONAL EIN }
  39.            ELSE WRITE(LST,^[,'p',^@); { PROPORTIONAL AUS }
  40. END;
  41.  
  42.  
  43. PROCEDURE DOPPELHOCH(ONOFF:BOOLEAN);
  44. BEGIN
  45.   IF ONOFF THEN WRITE(LST,^[,'w',^A)  { DOPPELT HOCH EIN }
  46.            ELSE WRITE(LST,^[,'w',^@); { DOPPELT HOCH AUS }
  47. END;
  48.  
  49.  
  50. PROCEDURE SUPERSCRIPT(ONOFF:BOOLEAN);
  51. BEGIN
  52.   IF ONOFF THEN WRITE(LST,^[,'S',^@)  { SUPERSCRIPT }
  53.            ELSE WRITE(LST,^[,'T');    { SUPER / SUBSCRIPT AUS }
  54. {  WRITE(LST,^[,'S',^A);       { SUBSCRIPT }
  55. END;
  56.  
  57.  
  58. PROCEDURE FETT(ONOFF:BOOLEAN);
  59. BEGIN
  60.   IF ONOFF THEN WRITE(LST,^[,'E')     { FETTDRUCK EIN }
  61.            ELSE WRITE(LST,^[,'F');    { FETTDRUCK AUS }
  62. END;
  63.  
  64.  
  65. PROCEDURE BOLD(ONOFF:BOOLEAN);
  66. BEGIN
  67.   IF ONOFF THEN WRITE(LST,^[,'G')     { DOPPELDRUCK EIN }
  68.            ELSE WRITE(LST,^[,'H');    { DOPPELDRUCK AUS }
  69. END;
  70.  
  71.  
  72. PROCEDURE UNDERLINE(ONOFF:BOOLEAN);
  73. BEGIN
  74.   IF ONOFF THEN WRITE(LST,^[,'-',^A)  { UNDERLINE EIN }
  75.            ELSE WRITE(LST,^[,'-',^@); { UNDERLINE AUS }
  76. END;
  77.  
  78.  
  79. PROCEDURE KURSIV(ONOFF:BOOLEAN);
  80. BEGIN
  81.   IF ONOFF THEN WRITE(LST,^[,'4')     { KURSIV EIN }
  82.            ELSE WRITE(LST,^[,'5');    { KURSIV AUS }
  83. END;
  84.  
  85.  
  86. PROCEDURE SETCPI(BREITE:INTEGER);
  87. BEGIN;
  88.   WRITE(LST,CHR($12));        { CONDENSED AUS }
  89.   WRITE(LST,^[,'W',^@);       { BREITDRUCK AUS }
  90.  
  91.   CASE BREITE OF
  92.      5 : BEGIN
  93.            WRITE(LST,^[,'P');          { PICA  10 CPI }
  94.            WRITE(LST,^[,'W',^A);       { BREITDRUCK EIN }
  95.          END;
  96.      6 : BEGIN
  97.            WRITE(LST,^[,'M');          { ELITE 12 CPI }
  98.            WRITE(LST,^[,'W',^A);       { BREITDRUCK EIN }
  99.          END;
  100.      7 : BEGIN
  101.            WRITE(LST,^[,'g');          { MICRO 15 CPI }
  102.            WRITE(LST,^[,'W',^A);       { BREITDRUCK EIN }
  103.          END;
  104.     10 : BEGIN
  105.            WRITE(LST,^[,'P');          { PICA  10 CPI }
  106.          END;
  107.     12 : BEGIN
  108.            WRITE(LST,^[,'M');          { ELITE 12 CPI }
  109.          END;
  110.     15 : BEGIN
  111.            WRITE(LST,^[,'g');          { MICRO 15 CPI }
  112.          END;
  113.     17 : BEGIN
  114.            WRITE(LST,^[,'P');          { PICA  10 CPI }
  115.            WRITE(LST,CHR($0F));        { CONDENSED EIN }
  116.          END;
  117.     20 : BEGIN
  118.            WRITE(LST,^[,'M');          { ELITE 12 CPI }
  119.            WRITE(LST,CHR($0F));        { CONDENSED EIN }
  120.          END;
  121.   END; { CASE }
  122. END;
  123.  
  124.  
  125. PROCEDURE SETSKIP(ABSTAND:INTEGER);
  126. BEGIN
  127.   CASE ABSTAND OF
  128.     1..10 : WRITE(LST,^[,'N',CHR(ABSTAND));
  129.   ELSE WRITE(LST,^[,'O'); { KEIN SKIP }
  130.   END; { CASE }
  131. END;
  132.  
  133.  
  134. PROCEDURE SETLPI(ABSTAND:INTEGER);
  135. BEGIN
  136.   CASE ABSTAND OF
  137.     3 : WRITE(LST,^[,'A',CHR(20));
  138.     4 : WRITE(LST,^[,'A',CHR(15));
  139.     6 : WRITE(LST,^[,'2');
  140.     8 : WRITE(LST,^[,'0');
  141.    12 : WRITE(LST,^[,'A',CHR(5));
  142.   END; { CASE }
  143. END;
  144.  
  145.  
  146. PROCEDURE SETFORM(LAENGE:INTEGER);
  147. BEGIN
  148.   CASE LAENGE OF
  149.         0 : WRITE(LST,^['C',^A);
  150.     1..22 : WRITE(LST,^[,'C',^@,CHR(LAENGE));
  151.   END;
  152. END;
  153.  
  154.  
  155. PROCEDURE GRAFSATZ(ONOFF:BOOLEAN);
  156. BEGIN
  157.   IF ONOFF THEN WRITE(LST,^[,'t',^A)  { GRAFIK ZEICHENSATZ EIN }
  158.            ELSE WRITE(LST,^[,'t',^@); { GRAFIK ZEICHENSATZ AUS }
  159. END;
  160.  
  161.  
  162. FUNCTION GETNUM:INTEGER;
  163. VAR   I  : INTEGER;
  164. BEGIN
  165.   I := 0;
  166.   WHILE (LENGTH(S)>0) AND (S[1] IN ['0'..'9']) DO BEGIN
  167.     I := 10 * I + ORD(S[1]) - $30;
  168.     DELETE(S,1,1);
  169.   END;
  170.   GETNUM := I;
  171. END;
  172.  
  173.  
  174. PROCEDURE HILFE;
  175. BEGIN
  176.   WRITELN('Programmaufruf : EPSON Parameter');
  177.   WRITELN;
  178.   WRITELN('1. Parameter- Zeichen "+" = KEINE Default- Wert- Einstellung');
  179.   WRITELN;
  180.   WRITELN('Schriftarten : Dn  = Draft          mit n CPI Breite');
  181.   WRITELN('               Rn  = NLQ Roman      mit n CPI Breite');
  182.   WRITELN('               Sn  = NLQ Sans Serif mit n CPI Breite');
  183.   WRITELN('               PR  = proportional Roman normal');
  184.   WRITELN('               PRS = proportional Roman schmal');
  185.   WRITELN('               PRB = proportional Roman breit');
  186.   WRITELN('               PS  = proportional Sans Serif normal');
  187.   WRITELN('               PSS = proportional Sans Serif schmal');
  188.   WRITELN('               PSB = proportional Sans Serif breit');
  189.   WRITELN('fuer Breite sind folgende Werte zulässig :');
  190.   WRITELN('  5,6,7,10,12,15,17,20     Default ist 10 Zeichen pro Zoll');
  191.   WRITELN('7 = 7,5 Zeichen pro Zoll');
  192.   WRITELN('bei 7 und 15 wird die Schrift mit halber Hoehe gedruckt');
  193.   WRITELN;
  194.  
  195.   WRITE('Taste drücken ');
  196.   CH := READKEY; IF CH = ^@ THEN CH := READKEY;
  197.   WRITE(CHR(13));
  198.  
  199.   WRITELN('  Doppelte Schrifthöhe : H  (hoch)');
  200.   WRITELN('     Halbe Schrifthöhe : K  (klein)');
  201.   WRITELN('             Fettdruck : F  (fett)');
  202.   WRITELN('        Doppelanschlag : B  (bold)');
  203.   WRITELN('                Kursiv : I  (italic)');
  204.   WRITELN('         Unterstrichen : U');
  205.   WRITELN('Grafik Zeichensatz ein : G');
  206.   WRITELN;
  207.   WRITELN('Zeilenabstand : Zn');
  208.   WRITELN('   zulässige Werte : 3,4,6,8,12      Default = 6');
  209.   WRITELN;
  210.   WRITELN('Skip over Perforation : Yn');
  211.   WRITELN('   zulässige Werte : 1..10 (Zeilen)  Default = 0');
  212.   WRITELN;
  213.   WRITELN('Formularlänge : Ln');
  214.   WRITELN('   Die Länge wird in Zoll ganzzahlig angegeben,  Default = 12');
  215.  
  216. END;
  217.  
  218.  
  219. PROCEDURE MENUE;
  220. BEGIN
  221.   WRITELN('ES IST NOCH KEIN MENUE INSTALLIERT');
  222.   WRITELN;
  223.   HILFE;
  224. {
  225.             5 CPI  6 CPI 7.5 CPI 10 CPI 12 CPI 15 CPI 17 CPI 20 CPI
  226.      DRAFT
  227.      ROMAN
  228. SANS SERIF
  229.  
  230. PROPORTIONAL BREIT NORMAL SCHMAL
  231.  
  232.  
  233.  DOPPELT HOCH
  234.   SUPERSCRIPT
  235.          FETT
  236.       DOPPELT
  237.        KURSIV
  238. UNTERSTRICHEN
  239.  
  240. ----------------
  241. }
  242. END;
  243.  
  244.  
  245.  
  246. BEGIN { MAIN }
  247.   CLRSCR;
  248.   IF PARAMCOUNT = 0 THEN MENUE
  249.   ELSE BEGIN
  250.  
  251.     S := PARAMSTR(1);
  252.     IF S[1] <> '+' THEN BEGIN
  253.       ROMAN;
  254.       PROPORTIONAL(OFF);
  255.       DOPPELHOCH(OFF);
  256.       SUPERSCRIPT(OFF);
  257.       FETT(OFF);
  258.       BOLD(OFF);
  259.       UNDERLINE(OFF);
  260.       KURSIV(OFF);
  261.       SETCPI(10);
  262.       SETSKIP(0);
  263.       SETLPI(6);
  264.       SETFORM(12);
  265.       GRAFSATZ(OFF);
  266.     END;
  267.  
  268.     FOR I := 1 TO PARAMCOUNT DO BEGIN
  269.       S := PARAMSTR(I);
  270.       FOR J := 1 TO LENGTH(S) DO S[I] := UPCASE(S[I]);
  271.       WHILE LENGTH(S) > 0 DO BEGIN
  272.         CASE S[1] OF
  273.           'D' : BEGIN
  274.                   DRAFT;
  275.                   DELETE(S,1,1);
  276.                   SETCPI(GETNUM);
  277.                 END;
  278.           'G' : BEGIN
  279.                   GRAFSATZ(ON);
  280.                   DELETE(S,1,1);
  281.                 END;
  282.           'R' : BEGIN
  283.                   ROMAN;
  284.                   DELETE(S,1,1);
  285.                   SETCPI(GETNUM);
  286.                 END;
  287.           'S' : BEGIN
  288.                   SANS_SERIF;
  289.                   DELETE(S,1,1);
  290.                   SETCPI(GETNUM);
  291.                 END;
  292.           'P' : BEGIN
  293.                   PROPORTIONAL(ON);
  294.                   DELETE(S,1,1);
  295.                   IF LENGTH(S) > 0 THEN BEGIN
  296.                     CASE S[1] OF
  297.                      'R' : BEGIN
  298.                              ROMAN;
  299.                              DELETE(S,1,1);
  300.                            END;
  301.                      'S' : BEGIN
  302.                              SANS_SERIF;
  303.                              DELETE(S,1,1);
  304.                            END;
  305.                     END; { CASE }
  306.                     IF LENGTH(S) > 0 THEN BEGIN
  307.                       CASE S[1] OF
  308.                        'B' : BEGIN
  309.                                WRITE(LST,^[,'W',^A); { BREITDRUCK EIN }
  310.                                DELETE(S,1,1);
  311.                              END;
  312.                        'S' : BEGIN
  313.                                WRITE(LST,CHR($0F)); { CONDENSED EIN }
  314.                                DELETE(S,1,1);
  315.                              END;
  316.                       END; { CASE }
  317.                     END;
  318.                   END;
  319.                 END;
  320.           'H' : BEGIN
  321.                   DOPPELHOCH(ON);
  322.                   DELETE(S,1,1);
  323.                 END;
  324.           'K' : BEGIN
  325.                   SUPERSCRIPT(ON);
  326.                   DELETE(S,1,1);
  327.                 END;
  328.           'F' : BEGIN
  329.                   FETT(ON);
  330.                   DELETE(S,1,1);
  331.                 END;
  332.           'B' : BEGIN
  333.                   BOLD(ON);
  334.                   DELETE(S,1,1);
  335.                 END;
  336.           'I' : BEGIN
  337.                   KURSIV(ON);
  338.                   DELETE(S,1,1);
  339.                 END;
  340.           'U' : BEGIN
  341.                   UNDERLINE(ON);
  342.                   DELETE(S,1,1);
  343.                 END;
  344.           'Y' : BEGIN
  345.                   DELETE(S,1,1);
  346.                   SETSKIP(GETNUM);
  347.                 END;
  348.           'Z' : BEGIN
  349.                   DELETE(S,1,1);
  350.                   SETLPI(GETNUM);
  351.                 END;
  352.           'L' : BEGIN
  353.                   DELETE(S,1,1);
  354.                   SETFORM(GETNUM);
  355.                 END;
  356.         ELSE DELETE(S,1,1);
  357.         END; { CASE }
  358.       END; { WHILE }
  359.     END;
  360.   END;
  361.  
  362.  
  363. END.
  364.  
  365.