[comp.os.msdos.programmer] How to read Int 0?

cs106132@umbc5.umbc.edu (cs106132) (02/20/91)

   Hi,
I am trying to read the interrupt vector table using direct memory access
using code that looks like this:

     unsigned int far  *ptr;
     unsigned int seg, off;

     ptr = MK_FP (0, 0);
     disable ();
     off = *ptr;
     seg = *(ptr+1);     
     enable ();

Now this routine works for all the interrupts except for Int 0, the divide
overflow interrupt.  I am aware of the swapped byte order, getvect ()...
Does anyone see anything wrong with the code above?  BTW, I am using
Turbo C 2.0 under DOS 3.3 on an Everex 386SX.

Regards,
Tark

darcy@druid.uucp (D'Arcy J.M. Cain) (02/23/91)

In article <5074@umbc3.UMBC.EDU> cs106132@umbc5.umbc.edu (cs106132) writes:
>I am trying to read the interrupt vector table using direct memory access
>using code that looks like this:
  [ code deleted ]

You're using the wrong function.  Check out getvect() and setvect() in
Turbo.  You should always code at the highest level that gets the job
done.

-- 
D'Arcy J.M. Cain (darcy@druid)     |
D'Arcy Cain Consulting             |   There's no government
West Hill, Ontario, Canada         |   like no government!
+1 416 281 6094                    |