Проблема с модулем Graph.tpu - Pascal
Формулировка задачи:
У меня такая проблема, когда я запускаю компиляцию программы предназначенной для просмотра графических PCX файлов выдает ERROR 15 FILE NOT FOUND (GRAPH.TPU). Посмотрите пожалуйста текст программы и скажите что нужно испарвить чтоб оно его видело.
Unit Show_Pcx;
interface
uses Dos,Graph,Init_Var,SetPCX;
Const
len_buf=2000;
var
graphdriver;
graphmode: integer;
buf : array[1..len_buf] of byte; { ЎгдҐа ¤«п Є*авЁ*ЄЁ }
i,n,p : integer;
delta_x,delta_y,m : integer;
buf_addr : pointer; { *¤аҐб ЎгдҐа* }
type
palette_pcx = record
_red :byte;
_green:byte;
_blue :byte;
end;
type
pcx_beg = record
maker : byte; { ¬*аЄҐа 10 }
version : byte; { ўҐабЁп 5 }
code : byte; { Є®¤ 1 }
bpp : byte; { Є®«ЁзҐбвў® Ў*©в ў ЇЁЄбҐ«Ґ ( 1 - EGA, 2 - color Cga ) }
x1,y1 : integer; { Ја**Ёжл }
x2,y2 : integer; { Є*авЁ*ЄЁ }
hres : integer; { Ја**Ёжл }
vres : integer; { нЄа*** }
triplet : array[1..16] of palette_pcx; { Ї*«Ёва* }
vmode : byte; { ўЁ¤Ґ® ०Ё¬ 0 }
nplanes : byte; { Є®«ЁзҐбвў® Ї«**®ў ( 4 - EGA, 1 - CGA ) }
bpl : integer; { Є®«ЁзҐбвў® Ў*©в®ў ў бва®ЄҐ }
unused : array[1..80] of byte; { *ҐЁбЇ®«м§гҐ¬*п з*бвм }
end;
var pcxhdr : pcx_beg;
Procedure Trick_EGA;
{ Ћб®ЎҐ*®бвЁ *¤*ЇвҐа* EGA }
Procedure ShowPcx(Name_Picture:string; x,y:integer; page:word; var error:Integer);
{ Џ®Є*§*вм Є*авЁ*Єг ў д®а¬*⥠PC PAINT BRUSH }
Procedure AsmPcx(buf_addr:pointer; pcx:integer;
kol_string:integer; b_str:integer;
len_buf:integer; fil:integer;
m:integer; n:integer; page:integer);
{ ‚бЇ®¬®Ј*⥫м**п ў*Ґи*пп Їа®Ја*¬¬* ** *бᥬЎ«ҐаҐ ¤«п ўлў®¤* Є*авЁ*ЄЁ }
implementation
Procedure AsmPcx(buf_addr:pointer; pcx:integer;
kol_string:integer; b_str:integer;
len_buf:integer; fil:integer;
m:integer; n:integer; page:integer); external;
{$L scrpcxaf.obj}
Procedure Trick_EGA;
{ Їа®жҐ¤га* *Ґ®Ўе®¤Ё¬*п ¤«п а*Ў®вл зҐаҐ§ Ї®авл EGA }
{ Ё**зҐ а*Ў®в* Ё¤Ґв *ҐўҐа*® }
var Pix:word;
BEGIN
Pix:=GetPixel(0,0); { Їа®бв® з¬в*Ґ¬ Ё ўлў®¤Ё¬ ў в® }
PutPixel(0,0,Pix); { ¦Ґ ¬Ґбв® в®зЄг ** нЄа**Ґ }
END;
Procedure ShowPcx(Name_Picture:string; x,y:integer; page:word; var error:integer);
{ Name_Picture - Ё¬п д*©«* ᮤҐа¦*饣® Є*авЁ*Єг ў бв**¤*а⥠PCX }
{ x - Є®®а¤Ё**в* Ї® x ¤«п ўлў®¤* ** нЄа** ( Єа*в*® 8 !!! ) }
{ y - Є®®а¤Ё**в* Ї® y ¤«п ўлў®¤* ** нЄа** }
{ page - *®¬Ґа бва**Ёжл }
{ error - Є®¤ ®иЁЎЄЁ }
{ 0 - *®а¬*«м*®Ґ §*ўҐаиҐ*ЁҐ }
{ 1 - д*©« *Ґ **©¤Ґ* }
{ 2 - ®иЁЎЄ* ЇаЁ звҐ*ЁЁ ¤***ле }
{ 3 - ўл室 §* Ја**Ёжл нЄа*** }
var
regs:registers;
handle:integer;
BEGIN
name_picture:=name_picture+#0;
if ( x and 7 ) <> 0 then halt;
with regs do
begin
al:=$0;
ds:=seg(name_picture);
dx:=ofs(name_picture[1]);
ah:=$3d;
Intr($21,regs);
handle:=ax;
end;
if ( handle <= 4 ) then
begin
error:=1; { д*©« *Ґ **©¤Ґ* }
exit;
end;
with regs do
begin
ah:=$3f;
bx:=handle;
ds:=seg(pcxhdr);
dx:=ofs(pcxhdr);
cx:=$80;
Intr($21,regs);
error:=ax;
end;
if (error <= 0 ) then
begin
error:=2; { ®иЁЎЄ* ЇаЁ звҐ*ЁЁ ¤***ле }
exit;
end;
with regs do
begin
ah:=$3f;
bx:=handle;
ds:=seg(buf);
dx:=ofs(buf);
cx:=len_buf;
Intr($21,regs);
error:=ax;
end;
if (error <= 0 ) then
begin
error:=2; { ®иЁЎЄ* ЇаЁ звҐ*ЁЁ ¤***ле }
exit;
end;
delta_x:=pcxhdr.x2-pcxhdr.x1+1;
delta_y:=pcxhdr.y2-pcxhdr.y1;
if ( (x+delta_x) > 640 ) or ( (y+delta_y) > 349 )
then
begin
error:=3; { ўл室 §* Ја**Ёжл нЄа*** }
exit;
end;
n:=delta_x shr 3;
if ( delta_x and 7 ) <> 0 then
begin
m:=$ff shl (8-(delta_x and 7));
n:=n+1;
end
else m:=$ff;
if ( n<>pcxhdr.bpl) then
begin
pcxhdr.bpl:=pcxhdr.bpl-1;
n:=1;
end
else n:=0;
buf_addr:=addr(buf[1]);
AsmPcx(buf_addr,pcxhdr.bpl,pcxhdr.y2-pcxhdr.y1+1,y*80+(x shr 3),
len_buf,handle,m,n,page);
regs.ah:=$3e;
regs.bx:=handle;
intr($21,regs);
error:=0;
Trick_EGA;
END;
END.Решение задачи: «Проблема с модулем Graph.tpu»
textual
Листинг программы
grOk = 0;{Нет ошибок}
Объяснение кода листинга программы
{Переменные и их значения} grOk := 0;