Выполнить тестирование НГМД методом записи / чтения со сравнением.
Программа:
program test;
uses dos;
var
r:registers;
data_rap:array[1..512] of byte;
temp:array[1..512] of byte;
data:array[1..512] of byte;
i,g,c,s,g_b,g_e,c_b,c_e, s_b, s_e, res, h,m,sec,mm,h1:word;
m1,sec1,mm1,ident:word;
V:longint;
BEGIN
for i:=1 to 512 do data_rap[i] := 0;
r.ah := 8;
r.dl := 0;
intr($13,r);
g:=r.dh+1;
c:=r.ch+1;
s:=r.cl;
V:=g*512;
V:=V*c;
V:=V*s;
Writeln('g = ',g,' c= ',c,' s = ',s,' V = ', V);
readln;
Writeln('Vvedite # nachalnoy golovki');
readln(g_b);
Writeln('Vvedite # konechnoy golovki');
readln(g_e);
Writeln('Vvedite # nachalnogo cilindra');
readln(c_b);
Writeln('Vvedite # konechnogo cilindra');
readln(c_e);
Writeln('Vvedite # nachalnogo sectora');
readln(s_b);
Writeln('Vvedite # konechnogo sectora');
readln(s_e);
for g:=g_b to g_e do begin
for c:=c_b to c_e do begin
for s:=s_b to s_e do begin
r.ah := 2;
r.al := 1;
r.cl := s;
r.ch := c;
r.dh := g;
r.es := Seg(temp);
r.bx := Ofs(temp);
intr($13,r);
r.ah := 3;
r.al := 1;
r.cl := s;
r.ch := c;
r.dh := g;
r.es := Seg(data_rap);
r.bx := Ofs(data_rap);
intr($13,r);
r.ah := 2;
r.al := 1;
r.cl := s;
r.ch := c;
r.dh := g;
r.es := Seg(data);
r.bx := Ofs(data);
intr($13,r);
ident:=0;
for i:=1 to 512 do if(data[i]<>0) then ident:=1;
if(ident = 0) then writeln('OK! ') else writeln('Error ');
r.ah := 3;
r.al := 1;
r.cl := s;
r.ch := c;
r.dh := g;
r.es := Seg(temp);
r.bx := Ofs(temp);
intr($13,r);
end;
end;
end;
writeln(' TEST! Finish!');
readln;
END.
Результат работы программы:
Программа протестировала НГМД методом записи / чтения со сравнением и получила положительные результаты, поэтому данная дискета рабочая, в данном диапазоне.