Re: A89: ASM exectution questions


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

Re: A89: ASM exectution questions





Well, actually I do have one more complex question:

Assume that I want to write an assembly program that could run without
Doors or PlusShell or some other shell.

I know of some things that I must overcome like:

1) I would have to take my assembler output and package it in a format
expected by the TI for an ASM program.  That is documented and I think
I can take care of that.

2) I would have to use the ROM jump tables with a ROM_CALL macro and the
table locations to access these ROM functions (the ones that are known).
This seems possible.

3) I guess I would need some sort of stub for relocation of variables,
etc.  Could this be self contained within the program or would it require
a shell?

Anything else I am missing?  I am trying to understand these problems from
an academic prospective.  I don't really have any real need to do this.

I have read nearly all the documentation that is available for programming
TI89/92 and the Fargo stuff but much of what I am looking for is not
documented.  I would appreciate anything you could provide in helping me
understand this problem (ASM programming).  I am a H/w designer not a S/W
designer, unfortunately.

Thanks

On Sun, 17 Jan 1999, Jimmy [iso-8859-1] Mårdell wrote:

> 
> At 08:20 1999-01-17 -0800, you wrote: 
> >TI89 Question:
> >
> >When one executes an assebmly program, is it copied from it's storage
> >location to an execution area (like in the TI86) or, is it just executed
> >where it is saved?
> 
> It's executed on the spot.
> 
> >When a program is compiled, the absolute locations of variables and/or
> >subroutines is not know. If using relative addressing, this is not a
> >problem but many instructions use absolute addresses. Those locations are
> >resolved during relocation.  
> >
> >Where is this done?  I think it is done with the kernel, if using Doors or
> >PlusShell, but if not using those, where or how is that accomplished?
> 
> Usually by the shell when executing the program (Fargo, DoorsOS)
> 
> >Others have said it is possible to write an assembly program that does not
> >require either Doors or PlusShell, but if not using them where or how are
> >these symbol locations resolved?
> 
> When compiling a PlusShell program, it adds a bit of prewritten code
> at the begging (called a "stub") which does the relocation. The code
> ain't big, less than 100 bytes I believe.
> 
> My guess is that since asm programs are supported on the 89, there
> is some builtin function for this in the ROM which does something
> similiar. It would be strange to support asm else...
> 
> //Jimmy Mårdell
> 
> E-mail: yarin@acc.umu.se
> Homepage: http://www.acc.umu.se/~yarin/
> 
> 
> 

----------------------------------------------------
Shoot-to-Win

Protect the 2nd Amendment
----------------------------------------------------



References: