[A83] Re: Running external ASM programs from within an ASM program...


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

[A83] Re: Running external ASM programs from within an ASM program...




> Van: Joe Pemberton <dArkSk8eR@buffbody.com>
> 
> >
> >I forgot to mention...
> >
> >If it's really important to do this, you can set up
> >the main program to be able to run specific external
> >subprograms the following way:
> >
> >The subprogram must be compiled with .org 0 at
> >the beginning, and you have to make a list of all
> >the absolute user RAM accesses in it (call [not
> >ROM calls, of course], jp, variables, SMC...).
> >Before calling the program the runner code first
> >adds the current address of the prog to these values,
> >and after returning it subtracts this address from
> >everywhere to restore the whole thing.
> >
> >I guess that should do.
> >
> >PG
> >
> seems like that'd be a lot of work when you could just write the routines
> from .org $9872 or .org $86ec and have 768 bytes of mem to run them
> from =)
> But if you were to install the routines in a stack somewhere or in some
> free mem somewhere, then you would need to fix all the absolute
> addresses.
> - - Joe

He just explained the way it works on (about) all the Ti85 shells and one
(older) Ti82 shell. But if you already know a fixed adress then you only
need to assemble the file with a correct originate, off coarse.

Do you say he should cut his program into (approx.) 768 bytes pieces? So he
could calculate where these currently are in memory (inside his program),
then copy one of them to some buffer and execute it from there, return, do
it over with the next part of the program, etc. ??? That would be pretty
bogus sizewaste.

'Even' using Venus would be better then. I guess that's the best thing to
do, strip off all the 'load' that you don't need from the Venus kernel, and
use that to start your program.

I could post some program (137+5+name bytes big) like that here, and a
'slightly' adapted version would work as ZASMLOAD replacement (bigger). But
I don't know if Tijl C. minds if I do (don't think he does, but...)

	Henk Poley <><