Creating the Ultimate GUI
|
Posted on 8 September 1998
The following text was written by Philip
Gossling: Here are some ideas I thought up over the past year that I would
love to see in future GUI shells for the TI-86. Your eyes will also be entertained by the
cool screen shots I've included! :-) I actually tried making a GUI with the ideas below, but
I wasn't as good at ASM then, so I quit the project, and now I'm too busy! So I'm throwing
out my ideas to anyone who will take the bait :-) 1.
PRACTICAL USER INPUT. A shell on a calc should be built with a calculator
keypad in mind, not a mouse. My shell would use no mouse pointer. F1 would always be the
Start menu. F2-F5 would be the categories of programs, with F2 being the Desktop (the
first screen you see when starting the program), and then Games, Math and Utilities. The
arrow keys move a highlighting bar that highlights the programs, and 2nd runs the selected
program. Key input in the shell should be simple and fast, with nothing that wouldn't
really be feasible for a calculator. 2.
ICONS. Lets face it, icons are cool. So far these have only been experimented
with in Aurora, which was too slow and impractical. Icons however can still work on a
calculator. If I remember right, Aurora used 8x8 sprites placed above the program name.
This wasn't very smart. This layout just doesn't work on the 86 screen very well. However,
If you make the icons 7x7 sprites and place them to the immediate left of the program name,
you can fit lots of prgm names on one screen. You could also have the screen scroll down to
fit more programs. The shell should also have a built in icon editor that would attach
the icons to a program, so icon files wouldn't clutter the RAM. Icons should be able to be
attached and detached from files. If a program has no icon with it, the shell should
provide it with a temporary built in icon according to the file type. The shell should
also have a small icon library so users can choose from pre-maid icons that they can assign
to variables. Users could also add their own designs to the library. Now wouldn't that be
awesome :-) | 3. START BAR. Notice the
Windows-like Start Bar at the bottom of the screen in the shell screenshots. You'll notice
it displays different info in each screen shot. This is an interesting concept I came up
with. The bar could be personalized to have quick jumps to categories using the F2-F5 keys,
show a clock, the Free RAM, the date (if a clock was made), and more, maybe even a special
welcome message. If you want to do some quick calculations and stay in the shell, then
press F1(Start) and select the Calculate icon to do some math, and the start bar will
remain on the bottom of the screen, allowing you to stay in the shell and run progs
quickly. The math you could do would be limited though. If Windows add-on programs were
created for the shell, they could leave the start bar on the screen and just display the
program output above the bar. 4. TIME CLOCK. I think this is possible
to do, though I don't know exactly how it would keep accurate time when running an assembly
program. If it was done, you could display the date, have calendars, and have schedule
programs, etc. Maybe even a calculator-based student planner. You could also change APD
settings or see how long a program would take to run....(just some ideas). | 5. EXPLORER. A Windows explorer
for a calculator? I though this shell was supposed to be practical! An explorer would be a
great addition to the future GUI shells. My concept (see screenshot) is called RAM
Explorer. It allows you to view, delete, and get info on EVERY TI variable in the RAM (not
just programs). By clicking on the RAM icon, you can see all the variables, displayed on
the right, and info about the RAM (mem free, etc.). You can move these files into folders
that you create to organize them. How will folders work? Easy! My concept of a folder is
simply a TI string variable with a header that lets the shell know its a folder. Then after
the header, the string contains the names of all the files in the folder. The shell then
searches for these files and displays them! The RAM Explorer can be personalized to show TI
variable's built in icons (see icon screenshots) or variable type (as shown in screenshot
above) or variable size, or both. You can also use the STO-> key to move variables or
folders to other folders or the category folders like the Desktop. Explorer would also have
a built in linking program so you could receive stuff or send whole folders' contents to
other calcs. Also, when receiving a huge program with tons of sub-programs and variables
(like many TI-BASIC games), the Explorer will automatically create a folder (if you want)
that contains all the variables downloaded. Then if you hate the program and want to erase
it, you just delete the folder. No more will you have to search through 98k for all the
variables the program used to be sure its all out of the ram! Talk about useful! Talk about
cool! | 6. STRING VIEWER AND EDITOR. (This is
what the Notepad program is for) The GUI should have the ability to view strings in a
window in menu-text and provide the ability to edit the string or create a new string with
menu-text. There would also be formatting characters like the new-line character. With
icons added to the strings you could personalize them, like make help files, etc.
7. EMULATION. The GUI has to have emulation for the TI-82, TI-83 and TI-85.
This is the standard was set by ASE and Rascall, and should definitely be included in all
future shells. The shell should assign icons to emulated programs. 8.
COMPRESSION. The ability to compress and uncompress strings and programs.
9. WINDOWS PROGRAMS. The Ability to create programs that will run as if
they were integrated into the interface. They will run in windows, and the start bar will
remain on the screen. This is simple to do, but the program's output must be above the
start bar and the program must have input routines to activate the start bar. You could
also give programmers the addresses in the GUI of the time and where other useful info is
stored. 10. COMPONENTS. If you want WindowsCE without the Explorer,
or without the text editor, or you just want emulation and a desktop, then just erase or add
the components you want. The GUI should NEVER have the Explorers and Icon Editors and so on
built in. The shell should search for these programs on startup and if they are not there,
then the program will still run fine, you just wont have those abilities. This will allow
users to customize the size of their shell to fit their needs. Wouldn't all this
stuff in one GUI be huge? Anyone who is knowledgeable in ASM would see that all these
things can be accomplished in probably under 10k. And remember about components.
That's All for now. If I come up with anything else I'll update this article. Please post
questions, comments, and ideas for what you would like to see in future GUI shells. Also,
If anyone wants to create a shell like this (maybe create a programming group) then let me
know. I am a good artist and graphic designer who is also knowledgeable in Assembly. I just
don't have time with college and a full time job to create a shell like this myself. I
will help with art and ideas if you need them.
|
|
Reply to this item
|
Re: Article: "Creating the Ultimate GUI"
|
Big1
|
A good GUI would be a great thing. Most of the ideas thus far have been good. Many people are complaining because it's like windows. Why? The Win95 interface is fine. It is very productive and easy to use(although missing many features). The problem with windows is its to bloated. MS puts so much crap in there it takes a PII400 to run it!! Im a software tech at P&W so I know allot about Win95/NT. I could list 100million problems w/it if I wanted to. But of them maybe ten would be interface related. If this GUI ever comes out(which im doubting) it will really show MS. All the features and ease of use of windows in 10K! and on a machine that probably costs 10 bucks to make. BTW, TI really should make a better machine for us. The next consolz are going to use 300Mhz MIPS+DSP processors w/32 megs ram for $200-300. Imagine this: 66mhz MIPS processor, 66mhz DSP(digital signal proccesor, see below), 1 meg of DRAM(can anyone say 10 cents), and some kind of larger permant memory(not mechanical, maybe PCMCIA type thing). All this going through a moderate quality gray scale or color LCD. It can be done for<$200.
DSP->A procesor that alters incoming data(digital signal), used in heavily math oriented functions(matrix operations for 3d effects in PSX2). A programable DSP could be used for anything! 2D\3D games, trig functions, graphs, modem emulators.
With a machine like that we could do anything. Just don't let the GUI get bloated.
|
Reply to this comment
|
7 April 1999, 23:12 GMT
|
|
Power
|
Tony Federer
(Web Page)
|
Here's my ideas
BATTERY LIFE
Any shell worth its code should be able to detect how much battery life is left. I'm not sure how to do this, but with a lot of intuition, it should be possible
Once that is known, it could be made to automatically increase contrast with battery drainage.
SYSTEM TRAY
A small system tray would also be useful. A battery icon could be shaded to show battery life left and a link icon could show when the link cable is attached.
|
Reply to this comment
|
2 June 1999, 18:21 GMT
|
|
Windows CE-85
|
Jason
(Web Page)
|
I did a lot of research into a shell similar to the one you mention in this article. I had sketches, flowcharts, psudeocode, the whole nine yards. Before I got a chance to seriously start work on it, I moved out, started working full time and went back to college. Life's wierd like that. I would still be willing to help produce the shell with a team of at least three people. 2-co programmers, 1-graphics designer, and 1-debugger. I agree completely on the component idea (we programmers call that modular programming.) I think the more modular the shell is, the better off it will be. A simple Add/Remove section would be used to install and remove modules. Now we can have sound, screen savers, link programs or whatever (no matter how pointless) in our shell because we want to. The one other thing that is a necessity is relocation. This has been a big issue in the shell programming community for a long time. In order to have modular components, they must be able to exist anywhere in memory and the shell must be able to locate new modules when they are added. I am not a seasoned TI-ASM programmer. I have written a few programs, but nothing like this. In all honesty, I will need some help in writing the boot code for the OS and creating a compiler for the new functions, but if someone is willing to help me, I will give it a serious effort. If this shell is completed, it will be the last ENTIRE shell we need to write for the TI-85 for a long time because any new features can be added as components. Anyone that wants to help me (especially programmers) please e-mail me at:
noblej@yahoo.com
Thank you for you time.
|
Reply to this comment
|
16 June 1999, 07:36 GMT
|
|
So, let''s create it!
|
Webman_3041
|
Creating the "ultimate GUI" sounds like a cool idea, but not one that one person could take on alone. What do you say that a bunch of us get together and work on it, kinda like what was done with Linux. Who knows, maybe we could even get into doing peripherals..pens, clocks, etc... If anyone's interested, E-Mail me, and we'll try to get a team together. We'll definitely need at least a couple good ASM programmers, some graphics designers... maybe eventually hardware people.... Anyway, e-mail me if interested.
|
Reply to this comment
|
11 July 1999, 07:01 GMT
|
|
Re: Creating the Ultimate GUI
|
Dustin Sneath
(Web Page)
|
I have an idea! Lets start this thing! Everyone could do something. I can write BASIC, so thats a start. Everyone else can do ASM and we'll be on our way. Also, Consider looking at the 'USB Peripherals' article. If this OS/Shell ever made it to the TI-84, it would be important that you include support for such things.
|
Reply to this comment
|
18 December 2005, 01:57 GMT
|
|
Re: Article: "Creating the Ultimate GUI"
|
Eric Tollefson
|
I own an 83 and I'v written a TI-BASIC GUI for it that I call Windows 83. It's still in a fairly early stage and I haven't uploaded or distributed it, but I'm using how it works as an example of how I think a GUI would be better implemented. It doesn't bother with using a start menu or a menu bar or any of that, but instead just shows a screen full of icons, like the desktop of Windows 95/98 does with My Computer, the Recycling Bin and so on. One of the icons goes to the options menu to set things like passwords and pointer options, another goes to a screen that works almost exactly like the normal homescreen, except you don't have access to some of the menus, but allows almost all math operations you would need to be accomplished, and a third exits the program. All the other icons represent programs that you can run. The icons are each a 7x7 square that is designed by the user in a setup program (a process I'm soon going to improve upon), and then stored as a group in a pic file. Even though I will still probably add some features to it, it is still a fairly small program, about 2300 bytes, quite practical even for an 83. It also features a password protection option (can be turned off) that, although it uses only 8 keypresses and a fairly simple math sequence to store the password, is still pretty unbreakable without access to either the program itself (obviously, that will break almost any password) or NSA-like equpiment. Anyone who uses that on a calculator needs to find a better hobby, if you ask me. In any case, I've probably digressed a little, but my point is that I think we've got to differentiate between a "practical" GUI and one that's "cool." A lot of the feaures he is talking about are pretty "cool," but how many of them are worth wading through to just use your calculator, even though you'll only use them infrequently? I think that the idea GUI would allow easy, quick, and efficient access to all the programs on your calculator, and not have too many unneccessary bells and whistles that just get in the way for their "cool" value. My favorite example of this is the Explorer. TI programmed the standard interface for a reason. Why should we take up RAM just to duplicate it and make it look pretty? That's my two cents on GUI design.
Eric Tollefson
|
Reply to this comment
|
7 August 1999, 06:32 GMT
|
|
|
|
|
Re: Re: Article: "Creating the Ultimate GUI"
|
Timendus
(Web Page)
|
I'm sorry, but I disagree with you.
1st: The idea of this system is that you can delete all this "unneccessary bells and whistles with a high 'cool' value" if you want to (but I would absolutely keep them!).
2nd: I am 200% sure it is possible to create a cool, good looking AND practical GUI. In fact, it is my opinion that a good design in most cases makes a program more easy to use. Emphasis on GOOD design, but I must say these screenshots look good.
On the article: I LIKE IT! Three remarks:
-PLEASE make a version for Ti-83,
-It would be my advice to make icons 8*8 pixels, for compatibility's sake (with Aurora, Ti-Explorer for Ti-83, and so on),
-I fear that it is quite easy to entirely screw up the directory system, but I don't see a better way.
Okay, that's all. Lots of luck to anyone who tries to make this!
|
Reply to this comment
|
17 April 2002, 16:21 GMT
|
|
Re: Article: "Creating the Ultimate GUI"
|
Bean
|
Beautiful idea - it really is, I really don't have much to say about it.
Oh, except that 10k is a lot on a calculator - even the 96k user memory TI-86...
But then again, if you could control what components you wanted that wouldn't really be a problem.
Very nice, now someone has to make it. I know I'd download it.
|
Reply to this comment
|
9 September 1998, 01:53 GMT
|
|
Re: Article: "Creating the Ultimate GUI"
|
Dan E
(Web Page)
|
Heh, now I never quite understood what the point of a gui is if you're going to use the arrow keys anyways. Why not just have a plain shell with say a some extra features. Making a shell overly graphical makes it big and hard to use. Most of the ideas themselves are pretty good (especially the bit about uesrs being able to choose what parts of the shell they want), but having icons just cause they're pretty is kinda silly. In any case, just my thoughts,
-Dan
|
Reply to this comment
|
9 September 1998, 02:00 GMT
|
|
1 2 3 4 5 6 7
You can change the number of comments per page in Account Preferences.
|