<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://learn.cemetech.net/index.php?action=history&amp;feed=atom&amp;title=TI-BASIC%3AKeyhooks_In_Assembly</id>
	<title>TI-BASIC:Keyhooks In Assembly - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://learn.cemetech.net/index.php?action=history&amp;feed=atom&amp;title=TI-BASIC%3AKeyhooks_In_Assembly"/>
	<link rel="alternate" type="text/html" href="http://learn.cemetech.net/index.php?title=TI-BASIC:Keyhooks_In_Assembly&amp;action=history"/>
	<updated>2026-06-10T12:22:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>http://learn.cemetech.net/index.php?title=TI-BASIC:Keyhooks_In_Assembly&amp;diff=827&amp;oldid=prev</id>
		<title>Maintenance script: Initial automated import</title>
		<link rel="alternate" type="text/html" href="http://learn.cemetech.net/index.php?title=TI-BASIC:Keyhooks_In_Assembly&amp;diff=827&amp;oldid=prev"/>
		<updated>2016-02-24T18:20:37Z</updated>

		<summary type="html">&lt;p&gt;Initial automated import&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Keyhooks in Assembly =&lt;br /&gt;
&lt;br /&gt;
First of all its important to know that Texas Instruments does not support keyhooks, secondly notice that this is an advanced topic you can of course read this but in order to let it proof usefull to you it is best if you understand Assembly quite well or at least are knowledgable with its terms.&lt;br /&gt;
with that said, let&amp;#039;s dive into it!&lt;br /&gt;
every piece of keyhooking code begins with this&lt;br /&gt;
&lt;br /&gt;
 add a, e             ;This byte is not being run but it ensures that the pointer is valid in order to prevent&lt;br /&gt;
                      ;it from randomly executing some code.&lt;br /&gt;
&lt;br /&gt;
Hooks are controlled by flags, those flags are located in IY+33 and in IY+36, both of them have a RAM area consisting of four bytes. Each of those RAM areas contains the &amp;quot;little endian&amp;quot; (procces the low bits first and then the high bits) pointer to the hook, than a page number and last but not least a byte that can be used as safe RAM for that hook.&lt;br /&gt;
An example of a hook is the GetKeyHook, this hook is enabled using&lt;br /&gt;
&lt;br /&gt;
 b_call $4F7B&lt;br /&gt;
&lt;br /&gt;
and disabled using&lt;br /&gt;
&lt;br /&gt;
 b_call $4F7E&lt;br /&gt;
&lt;br /&gt;
more information on Keyhooks can be found [*http://www.detachedsolutions.com/forum/index.php?t=msg&amp;amp;th=1319 here][[Category:TI-BASIC]]&lt;br /&gt;
[[Category:TIBD]]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>