Re: LZ-Adv: ZShell for TI-82 -- Ideas..
[Prev][Next][Index][Thread]
>>>Now, how does this work? At $818d in TI-85 RAM is a pointer to the
>>>routine that will hande a keyboard press. The key is to change this
>>>address to point at some location where you can put your own asm-code.
>>>I achieved this by, in a backup file, changing the VAT-pointer for a
>>>real variable to point at this $818d. After transferring the backup to
>>>the calc, I can store whatever I want (almost) to this location. In
>>>this case I store E145 to the real variable. E145 equals
>>>0091FC00000000000000 which means that $818d will contain a pointer to
>>>9100. At 9100 it is simple to put a fixed variable containing the
>>>asm-code. (I just extended the ZShell string, Quick&Dirty! ) In my
>>>backup file
>>>the code at 9100 first restores $818d and then the following words
>>>(which are also destroyed by storing the real (the values of these
>>>words appear not to be critical)). Then I jump to ZShell.
>>
>> Okay... but how do you keep from rnning ZShell every time a key is
>> pressed?
>
>The first thing that the code at $9100 does is to restore $818d back
>to its normal value. This makes the calculator function normally after
>you've pressed a key once after the E145->A.
So... what you're saying is, put the proper value location of the key
routine in A, and when you press a key, it'll jump there. When you store
$e145 to A, that'll make it jump to location $9100 the next time you hit
a key, which restores $181d to the correct value, and then calls ZShell?
Am I understanding this correctly?
If so, when you accidentally type E146->A, won't the calc lock up?
Sorry for all the questions, but there's no other way to learn :-)
Jason "Thursday" Wenger
jwenger@juno.com
Illegitimi no carborundum
References: