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: