Question Chaining TSRs ?

Ralston18

Titan
Moderator
From the Wiki link [my underline]:

"The typical method of using an interrupt vector involves reading its present value (the address), storing it within the memory space of the TSR, and replacing it with an address in its own code. The stored address is called from the TSR, in effect forming a singly linked list of interrupt handlers, also called interrupt service routines, or ISRs. This procedure of installing ISRs is called chaining or hooking an interrupt or an interrupt vector."
 
  • Like
Reactions: shaharhada

shaharhada

Reputable
Jul 27, 2020
304
6
4,685
From the Wiki link [my underline]:

"The typical method of using an interrupt vector involves reading its present value (the address), storing it within the memory space of the TSR, and replacing it with an address in its own code. The stored address is called from the TSR, in effect forming a singly linked list of interrupt handlers, also called interrupt service routines, or ISRs. This procedure of installing ISRs is called chaining or hooking an interrupt or an interrupt vector."
"The typical method of using an interrupt vector involves reading its present value (the address), storing it within the memory space of the TSR, and replacing it with an address in its own code. The stored address is called from the TSR, in effect forming a singly linked list of interrupt handlers, also called interrupt service routines, or ISRs. This procedure of installing ISRs is called chaining or hooking an interrupt or an interrupt vector."
What the meaning of the addresses in this context?
What the meaning of the bold sentence that I marked?
 

Ralston18

Titan
Moderator
"meaning of addresses": the memory addresses.

"reading its present value": looking at the contents/what is stored there in any given memory address.

FYI - based on my understanding of your questions:

https://www.w3schools.com/c/c_memory_address.php#:~:text=The memory address is the,stored in this memory address.

https://courses.cs.washington.edu/courses/cse390b/22sp/readings/r6_Storing Data Using Memory.html


= = = =

That said, I am going to make a suggestion that will prove helpful to you and to those who respond to your questions.

Helping to address and answer questions is the basic purpose of this Forum.

However, I recommend that, in addition to your question, that you also provide what you believe to be the answer and include some source or reference for what you believe to be the answer.

For the most part, four things will happen:

1) You are likely to find or otherwise work out the answer(s)on your own. Definitely an advantage with respect to developing more IT skills.

2) Also likely that you will save time by finding answers (or potential answers) on your own. No reliance on others being available to respond much less delays due to time zones, internet communication problems, etc..

3) Presenting your own answers and supporting those answers to others is another important skill to develop.

4) And if there is some problem regarding your answer (and that does not always mean that the answer is wrong) then the Forum can help clarify the answer and perhaps even the original question itself.

When you ask a question simply state what you think or believe is is the answer. And, if necessary, why you think that is the answer.
 

shaharhada

Reputable
Jul 27, 2020
304
6
4,685
"meaning of addresses": the memory addresses.

"reading its present value": looking at the contents/what is stored there in any given memory address.

FYI - based on my understanding of your questions:

https://www.w3schools.com/c/c_memory_address.php#:~:text=The memory address is the,stored in this memory address.

https://courses.cs.washington.edu/courses/cse390b/22sp/readings/r6_Storing Data Using Memory.html


= = = =

That said, I am going to make a suggestion that will prove helpful to you and to those who respond to your questions.

Helping to address and answer questions is the basic purpose of this Forum.

However, I recommend that, in addition to your question, that you also provide what you believe to be the answer and include some source or reference for what you believe to be the answer.

For the most part, four things will happen:

1) You are likely to find or otherwise work out the answer(s)on your own. Definitely an advantage with respect to developing more IT skills.

2) Also likely that you will save time by finding answers (or potential answers) on your own. No reliance on others being available to respond much less delays due to time zones, internet communication problems, etc..

3) Presenting your own answers and supporting those answers to others is another important skill to develop.

4) And if there is some problem regarding your answer (and that does not always mean that the answer is wrong) then the Forum can help clarify the answer and perhaps even the original question itself.

When you ask a question simply state what you think or believe is is the answer. And, if necessary, why you think that is the answer.
I can say what I am think.
I think there is table of addresses that say how to play a hardware. Say, in Address 1000H there is routine that say the instructions of hardware that the keyboard use. So, I can replace it in my own code, and that what is TSR.
In the value they write about hardware vector (???) that I can change the computer operating system to decide to do something else with my TSR.
O.K. That what I think. What you say about it? Is it correct?
 

Ralston18

Titan
Moderator
Yes:

Code/instructions are stored in memory. Hopefully in a continuous (contiguous) address by address manner. However, if that is not possible then there will be some code in that last memory address that directs to some other memory address where the next instruction(s) begin.

You can view memory and memory contents using a number of different tools and apps; debuggers.

So if you know or can discover the memory address range for some TSR program (keyboard driver for example) then with the applicable rights and tools you can indeed go into individual memory addresses to edit/change the contents.

However, you must know precisely what to change, what to change it to, and where to change it.

Any errors will result in error messages or just crash the program.
 
  • Like
Reactions: shaharhada