47 lines
1.3 KiB
Plaintext
47 lines
1.3 KiB
Plaintext
|
{* WARNING WARNING WARNING WARNING WARNING WARNING WARNING
|
|||
|
In order to use the Intr procedure in Turbo Pascal you
|
|||
|
must be familiar with interrupts and have access to a
|
|||
|
technical reference manual.
|
|||
|
|
|||
|
The following program uses the Intr function in Turbo to
|
|||
|
get the time. Registers have to be set correctly according
|
|||
|
to the DOS technical reference manual before the function
|
|||
|
is called.
|
|||
|
|
|||
|
The program simply returns the time in a string at the top
|
|||
|
of the screen.*}
|
|||
|
|
|||
|
program TimeInterrupt;
|
|||
|
type
|
|||
|
TimeString = string[8];
|
|||
|
|
|||
|
function time: TimeString;
|
|||
|
type
|
|||
|
regpack = record
|
|||
|
ax,bx,cx,dx,bp,di,si,ds,es,flags: integer;
|
|||
|
end;
|
|||
|
|
|||
|
var
|
|||
|
recpack: regpack; {assign record}
|
|||
|
ah,al,ch,cl,dh: byte;
|
|||
|
hour,min,sec: string[2];
|
|||
|
|
|||
|
begin
|
|||
|
ah := $2c; {initialize correct registers}
|
|||
|
with recpack do
|
|||
|
begin
|
|||
|
ax := ah shl 8 + al;
|
|||
|
end;
|
|||
|
intr($21,recpack); {call interrupt}
|
|||
|
with recpack do
|
|||
|
begin
|
|||
|
str(cx shr 8,hour); {convert to string}
|
|||
|
str(cx mod 256,min); { " }
|
|||
|
str(dx shr 8,sec); { " }
|
|||
|
end;
|
|||
|
time := hour+':'+min+':'+sec;
|
|||
|
end;
|
|||
|
|
|||
|
begin
|
|||
|
writeln(time);
|
|||
|
end.
|