Re: A86: HI.


[Prev][Next][Index][Thread]

Re: A86: HI.




hmm... Does the calc destroy _asapvar after the program finishes?  If it
does, this could be used to detect whether a program is executing or
not, which has been a problem for one of my programs.  Yes?

ComAsYuAre@aol.com wrote:
> 
> _asapvar is the name of the asm program being executed (in op format).  This
> can be useful for writeback, and also to force the calc to recopy the program
> since it doesn't bother recopying if you execute the same prog from asm(
> twice in a row. You can force a recopy like this:
> 
>  xor a
>  ld (_asapvar+1),a      ;length of name=0
> 
> However, I wouldn't recommend using the above code and later in the program
> referring to _asapvar in the writeback routine :P
> 
> In a message dated 12/11/99 12:14:07 PM Eastern Standard Time,
> croop@oregontrail.net writes:
> 
> > What is _asapvar?
> >
> >  ComAsYuAre@aol.com wrote:
> >  >
> >  >     ld hl,_asapvar          ;hl->name of program
> >  >     rst 20h             ;copy to OP1
> >  >     rst 10h             ;_findsym
> >  >     xor a
> >  >     ld hl,data_start-_asm_exec_ram+4        ;offset
> >  >     add hl,de               ;hl=pointer to data in original prog
> >  >     adc a,b             ;in case we overlapped pages
> >  >     call _SET_ABS_DEST_ADDR
> >  >     xor a                   ;no absolute addressing now
> >  >     ld hl,data_start            ;get data from here
> >  >     call _SET_ABS_SRC_ADDR
> >  >     ld hl,data_end-data_start   ;number of bytes to save
> >  >     call _SET_MM_NUM_BYTES
> >  >     jp _MM_LDIR         ;copy data and return
> >  >
> 
> ----
> Jonah Cohen
> <ComAsYuAre@aol.com>
> http://linux.hypnotic.org/~jonah/


References: