Re: A82: New 'shell' idea...


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

Re: A82: New 'shell' idea...



I have actually thought of this some time ago, and i was planning to
include this feature ina new version of Ash. However the way you are
suggesting seems a bit too complicated. I am pretty sure that the system
part of the ram holds a pointer to the currect executed program, so using
this the implemantation would be a lot easier. Instead of storing the
normal value in the matrix, you would store a different value, which
pointed to a speciel function in the shell. This function would just call
the current executed basic program. The real question is wether people
would like this feature, it would take up some space, but not that much.

Dines

_______________________________________

Dines Justesen
Email: dines@post1.com or
       c958362@student.dtu.dk
WWW  : http://www.gbar.dtu.dk/~c958362/
_______________________________________

On Tue, 12 Aug 1997 ADAMMAN106@aol.com wrote:

> In a message dated 97-08-12 02:58:49 EDT, you write:
> 
> << I plan to try and implement this myself, but if anybody has anything to 
>  offer or can see any basic flaws in my logic, please tell me.  
>  Alright...  Now shells are pretty neat things and all, but I have some 
>  gripes with them.  Firstly, TI-BASIC programs can't call assembly 
>  language programs using any conventional method with the existing 
>  shells.  Secondly, it is annoying when someone picks up your calc, runs 
>  an assembly language program without running the shell first and says 
>  either (a) "Oi!  This program, TURBO, doesn't do anything!" which is 
>  usually the case with Ash programs, or worse (b) says "Oi!  I ran that 
>  program TUNNEL and your calculator locked up!" (OShell-82).  So my idea 
>  is to have a shell which makes the difference between running Assembly 
>  and conventional TI-BASIC programs invisible to the user.  How I would 
>  work this is... The shell exists at 0x8D24, like normal.  When an 
>  assembly language program is run, it contains the code...
>  
>  12345678 -> L1(1,2)
>  L1(1,1) -> L2(1,1)
>  Disp "PRESS A KEY..."
>  Output(1,1,"")
>  Stop
>  Assembly code goes here blah blah blah looks like garbage blah blah.
>  
>  What happens in the first line is the program stores some kind of unique 
>  ID number into matrix 6 at 1, 2.  This number would probably be based on 
>  the first four letters of the program's name or something like that.  
>  Then matrix 6 at 1, 1 is stored in matrix 7 at 1, 1 which is how Ash 
>  normally invokes itself (OShell too, barring minor differences).  Now 
>  when the shell runs, it searches the VAT for the program using the 
>  program ID in L1(1,1).  It then loads the program's address, adds 100 
>  bytes or so (however much it is until the start of the assembly code, it 
>  would be a constant) and starts the program running.  The only 
>  forseeable problem would be the ever so slightly inflated size of each 
>  program , but the shell could be a bit smaller.  What do you all think?
>  
>  Cheers,
>  Dominic Cooney, coonsta@hotmail.com.
>  
>  ______________________________________________________
>  Get Your Private, Free Email at http://www.hotmail.com
>   >>
> ok, there is a problem, that the 'ID number' you speak of is vital to the
> starting of the shell.  you cant just have any number there.  It has to be a
> number that will be stored as a certain address (ie E17 = whatever addr the
> Shell code is at)
> what you could do is use another variable...
> 
> ~Adamman
> 


References: