[fpc-pascal] DOS Timer Interrupt, serial Interrupt
Alexey Pavluchenko
pavluchenko at isp.kiev.ua
Wed Aug 9 18:36:05 CEST 2006
Hello Rainer,
Wednesday, August 09, 2006, 7:07:13 PM, you wrote:
RS> Hello Alexey,
RS> the program is changed now, but is has the same effect.
RS> May be it has to do with the special role of the timer interrupt.
There is nothing really special about it. Int 1Ch is not even a
hardware interrupt.
RS> Best regards
RS> Rainer
RS> program time;
RS> uses crt,dos,go32;
RS> var timervar:longint;
RS> procedure hardtime; interrupt;
RS> begin
RS> inc(timervar);
RS> end;
RS> var
RS> htimeivecbak : tseginfo; // old Interrupt Vector
RS> htimeivec : tseginfo; // new Interrupt Vector
RS> const int_vectime = $1c;
RS> procedure starttim;
RS> begin
RS> get_pm_interrupt(int_vectime,htimeivecbak);
RS> htimeivec.offset:=@hardtime;
RS> htimeivec.segment:=get_ds;
This one should be get_cs, not get_ds. The procedure code must be
executed from the code segment, not from the data segment. While
physically the segments do overlap, selector values and access rights
are different.
--
Best regards,
Alexey
More information about the fpc-pascal
mailing list