Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Chris Miller on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

How to Get the Interrupt's Original Handler?

Status
Not open for further replies.

qingjin

Programmer
Oct 22, 2003
11
CN
In my last thread(see thread272-688411), I put the question why the BIOS' s segment is not F000.In oleksii's answer,interrupt vector has been redirected after bootup (by System?). Where was this redirected?(For example,int 13h) Can the chunk of the codes which is redirected take the place of the original handler in function?
Some software redirect the interrupt vector, I want to resume the original handler.Which address should I put in the IDT,the one system redirected or the one of the BIOS?And how can I get it(It's important to me)?

I'm a newcomer of tek-tips.I don't know which I should do when I want to continue a topic, reply in the same thread or put a new thread. Please tell me.
 
qingjin,

If your question is still related to the original thread and the problem hasn't solve yet from the answer, you can just continue on that thread. But if the problem is solved and you have another question (even if it is related), you can start a new thread.

Regarding to your question, I think oleksii already answered that. If it is not F000, then it almost certainly has been redirected by one (or more) program.

But usually this program (that redirected the real interrupt vector) put the original INT into variable and normally it always jump/call that variable. Now if you trace from that address, eventually you will reach the original handler. So it is like a chain.

Hope that helps a little

-- AirCon --
 
Qingjin,

Since you said a newcomer, I also want to say this. Don't left a thread hanging. At least give a reply to the person who answer. You can give a star if the answer helps you solved the problem. also it will be noticed by others that the thread has a solution to the problem.

But you don't have to give a star if you don't want to, something like "Thanks" or even if it doesn't solve your problem you can reply with: "Thanks, but it doesn't work"

It is more than enough to give the person (who answered) a notes that you already read that answer, so he doesn't feel left alone :)

Regards

-- AirCon --
 
Thanks a lot for leading me to be a veteran. But it seems
you misunderstand my question.
My question is:
1.Is IDT redirected after bootup by system? Where is it redirected?
2.Can the chunk of the codes(assume it is the system 's code) which is redirected take the place of the original handler(the BIOS's) in function?
3.Some software redirect the interrupt vector, I want to resume the original handler,so I want to get its original address.Your methord is valid, but I want to make a program. How can I get it directly?

I think out some methords as following:
1.Some system fuction can tell me.
2.If the BIOS's beginning code is aptotic, I can search the key code in the segment for the address.


 
Hi Qingjin,

Yes, I guess I misundertood your point. I thought you just want to get it manually.

If you want to make a program, I'm afraid I can't help. Cause I never write DOS assembly anymore (many years ago). But as far as I can remember, there is a valid technique how it is be done. I hope someone (or perhaps oleksii ?? :) ) can help you.

Another suggestion from me, search on Ralf Brown's homepage or get his book about PC interrupt. You'll find a LOT information about what you need (I think)

Here is the link:

Regards

-- AirCon --
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top