A82: New 'shell' idea...


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

A82: New 'shell' idea...



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


Follow-Ups: