VOGONS


First post, by videogamer555

User metadata
Rank Member
Rank
Member

It always returns the IDT, and there's no way of having it instead return the IVT. The IDT (interrupt descriptor table) is for 32-bit protected-mode software. Each entry is 6-bytes long, and has a 4-byte offset, in addition to the 2-byte selector.

The IVT (interrupt vector table) on the other hand is for 16-bit real and protected mode. Each entry is 4-bytes long, and has a 2-byte offset, in addition to the 2-byte segment.

I see no way to get the Debugger to return the IVT. This is important for my usage, as I'm trying to write an assembly language program that creates its own user-defined interrupts, and need to make sure that the interrupt vectors that I'm writing are actually going into the table where I want them to. I need a way in DOSBox Debugger to have it dump the IVT for me, so that I can make sure my program is behaving properly.

Reply 2 of 3, by BloodyCactus

User metadata
Rank Oldbie
Rank
Oldbie

use dos debug or turbo debugger ... setting a realmode ivt is super easy (either directly in memory or use dos int function call). trying to use dosbox debugger is like using a hammer to kill a fly.

--/\-[ Stu : Bloody Cactus :: [ https://bloodycactus.com :: http://kråketær.com ]-/\--

Reply 3 of 3, by videogamer555

User metadata
Rank Member
Rank
Member
Ringding wrote:

Can't you just dump the memory at the address that the idt points at?

That doesn't dump it in parsed form. I'd like a way to make a nice parsed dump of the IVT (I have no interest in the IDT, only the IVT, as I'm programming in real-mode here). I'd like to be able to dump the IVT and have it spit out a list like this in segment:offset format:
Interrupt 0 = wwww:wwww
Interrupt 1 = xxxx:xxxx
Interrupt 2 = yyyy:yyyy
Interrupt 3 = zzzz:zzzz
...