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: