Додаток б
Uses Crt, Dos, Graph;
type
ab=array[0..MaxInt] of Byte;
var
D,R,E: Integer;
P: ^ab;
k,X,Y,B,H: Byte;
X0,Y0: Integer;
F: File;
S: String;
Reg: registers;
begin
D:=Detect;
InitGraph(D,R,'');
E:=GraphResult;
if E<>grOk then
begin
Writeln(GraphErrorMsg(E));
Halt
end;
case D of
CGA: H:= 8;
EGA: H:= 14;
VGA: H:= 16;
else
H:=9;
end;
GetMem(P,256*H);
Str(H,S);
S:='8x'+s+'.fnt';
Assign(F,S);
ReWrite(F,1);
X0:=0;
Y0:=20;
GotoXY(1,1);
for k:=0 to 255 do
begin
with Reg do
begin
ah:=$A;
al:=k;
bh:=0;
cx:=1;
Intr($10, Reg);
end;
for Y:=0 to H-1 do
begin
B:=0;
for X:=0 to 7 do
if GetPixel(X,Y)<>GetBkColor then
begin
B:= B or (128 shr X);
PutPixel(X, Y, GetBkColor);
PutPixel(X0+X, Y0+Y, White);
end;
P^[k*H+Y]:=B;
end;
inc(X0, 10);
if X0>GetMaxX then
begin
X0:=0;
inc(Y0, 20);
end;
end;
BlockWrite(F,P^,256*H);
Close(F);
CloseGraph
end
11Тільки дляEGA відеорежиму
1
1
1Починаючи з DOS версії 2.0, в репертуар DOS включені UNIX-подібні файлові функції. Ідея їх полягає в тому, що, коли ви відкриваєте файл, DOS повертає вам 16-бітове значення "номеру файлу" (handle). Після цього, коли ви читаєте, встановлюєте, чи пишете, закриваєте файл, ви посилаєтеся на нього через його номер.Одне з найбільших зручностей – те, що ви можете звертатися до деяких пристроїв так, начебто це дискові файли, через зарезервовані номери DOS:
Визначені номери DOS Handle. Найменування й опис
____________________________________________________________________
0 Стандартний пристрій введення (звичайно клавіатура)
1 Стандартний пристрій виводу (звичайно екран)
2 Стандартний пристрій помилок (завжди CON--екран. Для повідомлень)
3 Стандартний пристрій AUX (асинхронний адаптер; 1-й послідовний порт – COM1)
4 Стандартний принтер (1-й паралельний порт принтера – LPT1)