uses graph;
const
yGak=0;
xGak=0;

names:array[0..3,0..9]of string=(
('1','2','3','4','5','6','7','8','9','0'),
('q','w','e','r','t','y','u','i','o','p'),
('a','s','d','f','g','h','j','k','l','ent'),
('cs','z','x','c','v','b','n','m','ss','sp'));
type t_screen=array[0..$F9FF]of byte;
var f_out,f_in:file;
img:array[1..965]of byte;
RealScreen:t_screen absolute $A000:$0000;
_i,_j:integer;
{$F+}function SVGA:integer;begin;SVGA:=0;end;{$F-}
procedure readImg(_name:string);
begin
assign(f_in,_name);
{$I-}
reset(f_in,1);
{$I+}
if ioresult=0 then
 begin
blockread(f_in,img,965);
close(f_in);
 end;
end;

begin
_i:=InstallUserDriver('svga256',@SVGA);
_i:=0;
initgraph(_i,_i,'');

assign(f_out,'help.dat');
rewrite(f_out,1);
for _j:=0 to 3 do
for _i:=0 to 9 do
 begin
 readImg('_'+names[_j,_i]+'.256');
 putimage(xGak+32*_i,yGak+32*_j,img,0);
 end;

blockwrite(f_out,RealScreen,320*200);
close(f_out);
readln;
end.