mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-20 23:53:49 +02:00
33 lines
911 B
ObjectPascal
33 lines
911 B
ObjectPascal
{ example for :
|
|
realintr()
|
|
flags constants
|
|
trealregs record
|
|
}
|
|
{ This example demonstrates the use of the flag constants in conjunction with
|
|
an interrupt call
|
|
|
|
In detail it checks if APM (advanced power management) is available.
|
|
|
|
Int 15h 5300h - APM specification : Installation check
|
|
Input : AX = 5300h
|
|
BX = device id of system BIOS (= 0000h)
|
|
Return : Carry clear if successful
|
|
AH = major version (BCD)
|
|
AL = minor version (BCD)
|
|
}
|
|
|
|
uses go32;
|
|
|
|
var r : trealregs;
|
|
|
|
begin
|
|
{ set register values and issue real mode interrupt call }
|
|
r.ax := $5300;
|
|
r.bx := 0;
|
|
realintr($15, r);
|
|
{ check if carry clear and write a suited message }
|
|
if ((r.flags and carryflag)=0) then begin
|
|
Writeln('APM v', (r.ah and $f), '.', (r.al shr 4), (r.al and $f), ' detected');
|
|
end else
|
|
Writeln('APM not present');
|
|
end. |