Unit 'go32' Package
[Overview][Constants][Types][Procedures and functions][Variables][Index] [#rtl]

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.

Documentation generated on: Oct 27 2024