home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Intermedia 1998 January
/
inter1_98.iso
/
www
/
rozi
/
INIPRN.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1997-12-15
|
3KB
|
109 lines
Program IniPRN;
{----------------------------------------------}
{ Program ustalania parametrow druku drukarki }
{----------------------------------------------}
Uses Crt, Dos, Printer;
Var St : String[6]; { Atrybut drukarki }
Ch : Integer; { Typ druku }
StIni : String[8]; { Lancuch inicjalizujacy }
Rejestry: Registers;{ Rejestry mikroprocesora }
I : Integer; { Indeks petli }
C : String[1]; { Znak do wyslania }
Blad : Boolean; { Wskaznik bledu drukarki }
Procedure Wybor;
{------------------------}
{ Wybor parametrow druku }
{------------------------}
begin
Repeat
ClrScr;
Writeln('Inicjalizacja drukarki :');
Writeln('-----------------------');
Writeln;
Writeln(' 1) Mini');
Writeln(' 2) Proporcjonalny');
Writeln(' 3) Skondensowany');
Writeln(' 4) Standard NLQ');
Writeln(' 5) Proporcjonalny NLQ');
Writeln(' 6) Podwojne uderzenie');
Writeln(' 7) Kursywa');
Writeln(' 8) Wytluszczenie');
Writeln(' 9) Podkreslenie');
Writeln('10) Podwojnej szerokosci');
Writeln;
Write('Wybierz : ');
Readln(Ch);
until Ch in [1..10];
end;
Procedure Wyslanie;
{-------------------------------------------------}
{ Wyslanie ustalonych parametrow do drukarki }
{-------------------------------------------------}
begin
Case Ch of
1 : St:=Chr(27)+'M'; { Mini }
2 : St:=Chr(27)+'p'+Chr(1); { Proporcjonalny }
3 : St:=Chr(15); { Skondensowany }
4 : St:=Chr(27)+'x'+Chr(1); { Standard NLQ }
5 : St:=Chr(27)+'x'+Chr(1)+Chr(27)+'p'+Chr(1); { Proporcjonalny NLQ }
6 : St:=Chr(27)+'G'; { Podwojne uderzenie }
7 : St:=Chr(27)+'4'; { Kursywa }
8 : St:=Chr(27)+'E'; { Wytluszczenie }
9 : St:=Chr(27)+'-'+Chr(1); { Podkreslenie }
10 : St:=Chr(27)+'W'+Chr(1); { Podwojona szerokosc}
end;
StIni:=Concat(Chr(27),'@',St); { Lancuch inicjalizujacy }
{ Test stanu drukarki }
With Rejestry do
begin
AH:=$02; { Funkcja 2 : Test stanu drukarki }
DX:=$00; { LPT0 }
Intr($17,Rejestry);
If AH <> 144 then Blad:=True { Drukarka niegotowa }
else Blad:=False; { Drukarka gotowa }
end;
{ Wyslanie lancucha inicjujacego }
Writeln;
If Not Blad then
begin
I:=0;
Repeat
Inc(I);
With Rejestry do
begin
AH:=$00; { Funkcja 0 : Wyslanie znaku }
C:=Copy(StIni,I,1);
AL:=Ord(C[1]); { Znak do wyslania }
DX:=$00; { LPT0 }
Intr($17,Rejestry);
end;
until (I=Length(StIni));
Writeln('Drukarka zainicjalizowana');
end
else Write('Drukarka nie jest aktywna.');
end;
{==================}
{ PROGRAM GLOWNY }
{==================}
begin
Wybor; { Wybor parametrow druku }
Wyslanie; { Wyslanie parametrow do drukarki}
end.