|
{Program testeaza capabilitatea sistemului dvs de a trece automat "hopul de la miezul noptii"
anului 2000. Versiunea Turbo Pascal de mai jos a fost compilata cu Turbo Pascal 7.0 for DOS
si a fost testata pe o seama de sisteme, 386, 486 Intel si AMD, Pentium, Pentium II, (Celeron,
Klamath, Mendocino), K6, K6II. Pe unele sisteme (Pentium) programul da "Runtime error 200"
adica "division by zero". Problema este cunoscuta, apare si la alte programe (de exemplu fox 2.6
for windows, anumite versiuni) si se pare ca in acest caz este provocata de "incompatibilitatea"
procesorului (Celeron...) cu unit-ul CRT. In acest program instructiunile ce fac referire la
unit-ul crt au fost comentate. Incercati ambele variante: folosind si nefolosind unit-ul CRT.
Sper sa va fie util acest program! Scrieti-mi ce rezultate obtineti, precizand sistemul pe care
ati testat (procesor) si rezultatul obtinut pentru a putea pune si la dispozitia altora aceste
informatii.
max@mail.multinet.ro
MULT SUCCES!!!}
program dax;
uses Dos;
type TAn = array[1..4] of byte;
procedure BackupDate(var x, y:TAn);
var r: registers;
begin
r.ah := $04;
intr($1a, r);
x[1] := r.ch;
x[2] := r.cl;
x[3] := r.dh;
x[4] := r.dl;
r.ah := $02;
intr($1a, r);
y[1] := r.ch;
y[2] := r.cl;
y[3] := r.dh;
y[4] := r.dl;
end;
procedure RestoreDate(x, y:TAn);
var r: registers;
begin
r.ah := $05;
r.ch := x[1];
r.cl := x[2];
r.dh := x[3];
r.dl := x[4];
intr($1a, r);
r.ah := $03;
r.ch := y[1];
r.cl := y[2];
r.dh := y[3];
r.dl := y[4];
intr($1a, r);
end;
function GetAll: string;
var r: registers;
u, i: byte;
an: TAn;
x, y: string;
begin
x:='Anul ';
r.ah := $04;
intr($1a, r);
u := r.ch;
an[2] := (u and $0f);
an[1] := (u shr 4);
u := r.cl;
an[4] := (u and $0f);
an[3] := (u shr 4);
for i:=1 to 4 do
begin
str(an[i], y);
|