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


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

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



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


Follow-Ups: