Programalama > PASCAL


Ort. 0
Puan ver:
{ 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;


Yorumlar                 Yorum Yaz
Bu hazır kod'a ilk yorumu siz yapın!
KATEGORİLER
ASP - 240
ASP.NET - 24
C# - 75
C++ - 174
CGI - 8
DELPHI - 247
FLASH - 49
HTML - 536
PASCAL - 246
PERL - 11
PHP - 160
WML - 9
XML - 2
Copyright © 2002 - 2017 Hazır Kod - Tüm Hakları Saklıdır.
Siteden yararlanırken gizlilik ilkelerini okumanızı tavsiye ederiz.
hazirkod.com bir İSObil projesidir.