mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-18 02:39:29 +02:00
43 lines
765 B
ObjectPascal
43 lines
765 B
ObjectPascal
uses
|
|
crt,
|
|
go32;
|
|
|
|
const
|
|
int1c = $1c;
|
|
|
|
var
|
|
oldint1c : tseginfo;
|
|
newint1c : tseginfo;
|
|
|
|
int1c_counter : Longint;
|
|
|
|
int1c_ds : Word; external name '___v2prt0_ds_alias';
|
|
|
|
procedure int1c_handler; assembler;
|
|
asm
|
|
cli
|
|
pushw %ds
|
|
pushw %ax
|
|
movw %cs:int1c_ds, %ax
|
|
movw %ax, %ds
|
|
incl int1c_counter
|
|
popw %ax
|
|
popw %ds
|
|
sti
|
|
iret
|
|
end;
|
|
|
|
var i : Longint;
|
|
|
|
begin
|
|
newint1c.offset := @int1c_handler;
|
|
newint1c.segment := get_cs;
|
|
get_pm_interrupt(int1c, oldint1c);
|
|
Writeln('-- Press any key to exit --');
|
|
set_pm_interrupt(int1c, newint1c);
|
|
while (not keypressed) do begin
|
|
gotoxy(1, wherey);
|
|
write('Number of interrupts occured : ', int1c_counter);
|
|
end;
|
|
set_pm_interrupt(int1c, oldint1c);
|
|
end. |