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: