Re: A86: _ALT_ON_EXEC
[Prev][Next][Index][Thread]
Re: A86: _ALT_ON_EXEC
>
>In a message dated 11/6/98 9:29:57 AM Eastern Standard Time,
>croop@oregontrail.net writes:
>
>> Ok... I need to know several things:
>>
>> 1. _alt_on_exec is the user 'on' routine that executes each time the
>> calc is turned on, right?
>
>yes. if bit 3,(iy+$23) is set and the checksum matches, it will be called
>every time the calc turns on
>
>>
>> How do I use it? Just like the user int routine? I need to know:
>>
>> Where is it? How long is it? Does it require a flag to be set/reset?
>> Does it use a checkskum system like the user interrupt uses?
>
>_alt_on_chksum equ $d48f
>_alt_on_exec equ $d490
>
>set 3,(iy+$23) ;enable
>res 3,(iy+$23) ;disable
>
>the checksum is the sum of the 1st, 40th, 80th, 120th, 160th, and 200th
byte.
>it is the byte right before _alt_on_exec
>
>>
>> 2. Is there any danger in running an assembly program right off of its
>> original copy in storage mem? I mean without transferring it to
>> _asm_exec_ram, or using _exec_assembly, but just calling the program in
>> storage. Can you do that?
>
>you could except all addresses would be wrong. the ".org _asm_exec_ram"
means
>that all addresses are calculated with $d748 as an offset. if you run it
from
>its original position (which would be hard to do anyway), then it would
most
>likely crash the first time it encountered a call or jp. there's no
advantage
>to doing it anyway.
You can't run either basic or asm programs from any of the user routines
unless you set a certain flag ... this might be it but I'm not sure: set
6,(iy+26)
>
>>
>> 3. Also, I can use _textShadow as scratch space, right? What flag do I
>> set/reset to keep this space from being written to by the calc while I
>> am using it? And, this area will only contain printable ascii codes,
>> right? I need to make sure that there is nothing that can already be in
>> _textShadow by chance that matches a value my program is going to place
>> there and look for.
>
>res 1,(iy+$0d)
>you must load data into it first before there will be anything usable
there.
>also, you can't use _clrScrn if you're using the _textShadow (use _clrLCD
>instead). otherwise, there shouldn't be any other data that gets stored
there
>except what you put there.
You can use _clrScrn to initially clear the _textShadow and not have to
worry about interferance with what you put there.
Follow-Ups: