realintr¶
Simulate interrupt.
Declaration¶
Source position: go32.pp line 107
function realintr(intnr: Word; var regs: trealregs) : Boolean;
Description¶
Simulates an interrupt in real mode.
Parameters:
- intnr
- interrupt number to issue in real mode.
- regs
- registers data structure.
Return values: The supplied registers data structure contains the values that were returned by the real mode interrupt. True if successful, False if not.
Remark:
The function transfers control to the address specified by the real mode interrupt vector of intnr. The real mode handler must return by executing an IRET.
Errors¶
Check the int31error variable.
Example¶
{ 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.