{ Bu program INT 1C'yi int1c adlı procedure yönlendirir.
Fakat bu eski adresteki procedürün çalışmamasına sebep olur.
oint1c'ye yedeklediğimiz adresi assembler'in "CALL" fonksiyonu ile
kendi interrupt işimiz bittikten sonra çağırızki buda onun sonun yaratmasını engeller. Örneğin INT 21 MS-DOS için gerekli fonksiyonları içerir. Fakat siz onu kendi interrupt'tunuz ile değiştiriseniz o fonksiyonlar çalıştırılmayacaktır. Çünkü INT 21'in adresi bizim prosedürümüze yönlendirilmiştir. Orjinaline değil. "CALL" özelliği bu konuda bize yardımcı olmaktadır. }
program intcall;
uses Crt,Dos;
var oint1c:pointer;
procedure int1c; interrupt;
var ox,oy:byte;
begin
ox := wherex;
oy := whereY;
gotoxy(1,1);
Write('MSA - Test for INT 1C');
gotoxy(ox,oy);
asm
CALL oint1c;
end;
end;
begin
ClrScr;
GetIntVector($1C,oint1c);
SetIntVector($1C,Addr(int1c)); { addr '@' olabilir... }
repeat
until keypressed;
SetIntVector($1C,oint1c);
end;