CGA: H := 8;
EGA: H := 14;
VGA: H := 16;
else
H := 8;
end;
fРезервируем нужную динамическую память и открываем файл с именем "BxH.fnt", где H - высота шрифта} GetMem(P,256*H) ;
Str(H,S);
s := '8x4-s+' .fnt';
Assign(F,S) ;
Rewrite(F,1) ;
{Определяем начальные координаты для эхо-повтора} ХО := 0;
YO := 20;
{Направляем текстовый вывод в верхний левый угол} GotoXY(l,l) ;
{Основной цикл создания побитовых образов символов} for k := 0 to 255 do begin
{Выводим очередной символ средствами прерывания $10, функция $А (вывод символа без атрибутов)} with Reg do begin
ah := $A;
al := k;
bh := 0;
ex : = 1 ;
Intr($lO,Reg) end;
{Сканируем созданное изображение слева-направо-сверху-вниз} for Y :» 0 to H-1 do begin
В := 0; {Начальное значение очередного байта} for Х := 0 to 7 do if GetPixel(X,Y)<>GetBkColor then begin
{Формируем байт шрифта} В := В or (128 shr X) ;
{Гасим символ в левом верхнем углу экрана} PutPixel(X,Y,GetBkColor) ;
{И повторяем его ниже} PutPixel(XO+X,YO+Y,White) end;
P'"[k*H+Y] := В {Запоминаем байт} end;
(Сдвигаем место эхо-повтора символов}