Re: A85: Features for a new shell


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

Re: A85: Features for a new shell




In a message dated 2/24/00 2:17:19 PM Mountain Standard Time, Farid76@aol.com 
writes:

>     I will try to add support for BASIC programs to my shell, but for 
Usgard 
>  and ZShell I think I'd rather not to do so. It will increase the size of 
the 
>  shell, and anyway, only programs written for the new shell can be run in 
>  multitasking mode. But the relocation will be the same as Usgard. 
Concerning 

Leaving out support for Usgard, in my opinion, is a big mistake.  Usgard is 
now the predominant shell on the TI-85; I'm fairly sure there are more Usgard 
programs than even ZShell programs (at least more *quality* Usgard programs). 
 If your shell lacks Usgard compatibility, I have a very hard time believing 
it's going to catch on at all...

I mean, look at Rigel.  Rigel's an excellent shell that, in my opinion, is 
superior to Usgard, yet never caught on cause Usgard came out first and Rigel 
didn't support Usgard.

>  libraries, I will first put a lot of functions in the shell itself to make 
>  programing easier. After that, maybe ...

But putting a lot of functions in the shell itself would make the shell 
bigger, wouldn't it?

>      I have some questions about the way the shell should handle 
multitasking.

I'm not even sure multitasking is a good idea for as simple a processor as a 
Z80.  Prosit, which is a *task-switcher*, is the closest thing to 
multitasking of any TI calculator, and it's for an M68K calc.  I think the 
memory on the 85 is simply just too tiny to multitask effectively, if at all.

Besides, what multitasking applications could actually be of use on the 85?

>  But first, a little description of the system...
>  
>  There will be 2 kinds of programs: real mode and protected mode. Programs 
> for 
>  the real mode will run like in other shells, and programs for protected 
mode 
> 
>  will run in multitasking mode. Obviously, there is restrictions to 
protected 
> 
>  mode:
>  
>      - Programs can't use areas of memory like GRAPH_MEM or TEXT_MEM, so 
the 
>  shell create a safe area and return a pointer for each program.
>  
>      - When the user switch between the different programs running, the 
>  program which is given focus must update the screen.
>  
>  I have imagined 2 solutions to this last problem. The first consists of 
>  saving the whole screen for each program (bad idea for a 28 Kb RAM), and 
the 
> 
>  second would be creating a function in each program to redraw the screen 
> when 
>  the OS call it.
>  
>  If you have a better solution or if you know other problems implied by 
>  multitasking, please report it. I'm waiting for your feedback...
>  
>  Farid Bouzaghti

I'm not even sure what you mean by "multitasking" anymore...  Do you plan on 
doing a Windows-style multitasking with windows, or what?  I'm not versed 
much at all with multitasking, but I'd think the "tasking" part would be 
controlled by an interrupt, which would control what particular program is 
running between interrupts...which means you'd literally have to save the 
state of the program so that you can restore the exact state when you switch 
back to the program.  This would have to include temporary memory, the video 
memory, all registers, flags, the stack, the SP, the PC, maybe even the 
ports, etc., etc., etc.  I'm not sure how you'd do multitasking any other 
way, but you have another idea in mind, I'd like to hear it...

JayEll