home *** CD-ROM | disk | FTP | other *** search
/ Intermedia 1998 January / inter1_98.iso / www / rozi / INIPRN.PAS < prev    next >
Pascal/Delphi Source File  |  1997-12-15  |  3KB  |  109 lines

  1. Program IniPRN;
  2. {----------------------------------------------}
  3. { Program ustalania parametrow druku drukarki  }
  4. {----------------------------------------------}
  5.  
  6.  
  7. Uses Crt, Dos, Printer;
  8.  
  9.  
  10. Var St    : String[6]; { Atrybut drukarki                 }
  11.     Ch    : Integer;   { Typ druku                        }
  12.     StIni : String[8]; { Lancuch inicjalizujacy           }
  13.     Rejestry: Registers;{ Rejestry mikroprocesora         }
  14.     I     : Integer;   { Indeks petli                     }
  15.     C     : String[1]; { Znak do wyslania                 }
  16.     Blad  : Boolean;   { Wskaznik bledu drukarki          }
  17.  
  18.  
  19. Procedure Wybor;
  20. {------------------------}
  21. { Wybor parametrow druku }
  22. {------------------------}
  23.  
  24. begin
  25.   Repeat
  26.     ClrScr;
  27.     Writeln('Inicjalizacja drukarki :');
  28.     Writeln('-----------------------');
  29.     Writeln;
  30.     Writeln(' 1) Mini');
  31.     Writeln(' 2) Proporcjonalny');
  32.     Writeln(' 3) Skondensowany');
  33.     Writeln(' 4) Standard NLQ');
  34.     Writeln(' 5) Proporcjonalny NLQ');
  35.     Writeln(' 6) Podwojne uderzenie');
  36.     Writeln(' 7) Kursywa');
  37.     Writeln(' 8) Wytluszczenie');
  38.     Writeln(' 9) Podkreslenie');
  39.     Writeln('10) Podwojnej szerokosci');
  40.     Writeln;
  41.     Write('Wybierz : ');
  42.     Readln(Ch);
  43.   until Ch in [1..10];
  44. end;
  45.  
  46.  
  47.  
  48. Procedure Wyslanie;
  49. {-------------------------------------------------}
  50. { Wyslanie ustalonych parametrow do drukarki      }
  51. {-------------------------------------------------}
  52.  
  53. begin
  54.   Case Ch of
  55.     1 : St:=Chr(27)+'M';                             { Mini               }
  56.     2 : St:=Chr(27)+'p'+Chr(1);                      { Proporcjonalny     }
  57.     3 : St:=Chr(15);                                 { Skondensowany      }
  58.     4 : St:=Chr(27)+'x'+Chr(1);                      { Standard NLQ       }
  59.     5 : St:=Chr(27)+'x'+Chr(1)+Chr(27)+'p'+Chr(1);   { Proporcjonalny NLQ }
  60.     6 : St:=Chr(27)+'G';                             { Podwojne uderzenie }
  61.     7 : St:=Chr(27)+'4';                             { Kursywa            }
  62.     8 : St:=Chr(27)+'E';                             { Wytluszczenie      }
  63.     9 : St:=Chr(27)+'-'+Chr(1);                      { Podkreslenie       }
  64.    10 : St:=Chr(27)+'W'+Chr(1);                      { Podwojona szerokosc}
  65.   end;
  66.  
  67.   StIni:=Concat(Chr(27),'@',St); { Lancuch inicjalizujacy }
  68.  
  69.   { Test stanu drukarki }
  70.   With Rejestry do
  71.   begin
  72.     AH:=$02;   { Funkcja  2 : Test stanu drukarki }
  73.     DX:=$00;   { LPT0 }
  74.     Intr($17,Rejestry);
  75.     If AH <> 144 then Blad:=True    { Drukarka niegotowa }
  76.                       else Blad:=False;  { Drukarka gotowa }
  77.   end;
  78.  
  79.   { Wyslanie lancucha inicjujacego }
  80.   Writeln;
  81.   If Not Blad then
  82.   begin
  83.     I:=0;
  84.     Repeat
  85.       Inc(I);
  86.       With Rejestry do
  87.       begin
  88.         AH:=$00;             { Funkcja  0 : Wyslanie znaku }
  89.         C:=Copy(StIni,I,1);
  90.         AL:=Ord(C[1]);       { Znak do wyslania }
  91.         DX:=$00;             { LPT0 }
  92.         Intr($17,Rejestry);
  93.       end;
  94.     until (I=Length(StIni));
  95.     Writeln('Drukarka zainicjalizowana');
  96.   end
  97.   else Write('Drukarka nie jest aktywna.');
  98. end;
  99.  
  100.  
  101.                      {==================}
  102.                      { PROGRAM GLOWNY   }
  103.                      {==================}
  104.  
  105.  
  106. begin
  107.   Wybor;      { Wybor parametrow druku         }
  108.   Wyslanie;   { Wyslanie parametrow do drukarki}
  109. end.