Login [Register]
Don't have an account? Register now to chat, post, use our tools, and much more.


GlassOS - What is it?
An operating system for the ti84pse that was programmed in C

When will a usable release be done?
(near) Final package, SDK, OS, and PC software, will be ready soon.

Why even bother with this?
  • Programs are written in C
  • More available memory to use
  • Pre-made libraries ready to be used
  • A usable, yet basic system with expandability through programs
  • Programs can be installed as packages easily from PC software and rated/commented on
What sort of compatibility is there? What hardware does it run on?
This OS is not meant to provide compatibility with other OS's. It is a total replacement. It is able to run on the ti84+ and ti84+se. The OS can boot on the ti83+SE, but doesn't have any linking support right now and may not in the future.

How would I try this OS?
You are free to download an 8xu-only zip from http://sf.net/projects/glassos/files and run it in WabbitEmu. Those zips are outdated and the latest 8xu should be built from svn. I can also provide rom snapshots of my latest work from svn. Simply ask for the url and I will get it to you.

How can I get it on my own calculator?
Not complete! Firstly, the OS is only compatible with Linux-based computers.
You must build the OS from svn. Instructions are posted on the doxygen pages here.
TiLP must be installed as well to send the OS. The glassLink program is provided to communicate with the OS over USB.


How different is it from TIOS?
First off, try the 8xu's from sourceforge. If you cannot/don't want to, I can summarize the initial experience with a screenshot:

The OS is basic and allows the end user to choose what to have on their calculator. No math program is included with the OS, however one already exists. If different programs are made to do the same thing, you can choose which to use rather than having one tied to the OS.
You can see a list of development pictures from when it went public to now here: https://cloud.ahelper.me/pub/glassos/viewer.php. Don't mind the ugly page Smile
There is no on-calc programming language yet, this will happen in the future ***

How can I start developing? Do I need to know z80 assembly first?
You can start developing by using my documentation at https://cloud.ahelper.me/pub/glassos/man/. This has tutorials and API documentation and examples included. Knowledge of C is needed, but assembly knowledge is not. There is an SDK now available that contains the headers, crt0's, and sample code.
Programs can easily be made, such as:
Code:
#include <glassos.h>

void main()
{
  LCD_clear();
  puts("Hello World!");

  getc();
}

What happens to my data already on my calc?
Since GlassOS provides no compatibility, all data is erased from it. Be aware that the RAM is immediately clear when the OS loads! The flash must be reformatted before the OS can be used, however not done automatically. You must back up all data, including apps.

What if I don't want GlassOS on my calc anymore?
You are free to put another OS on it, but be aware that the RAM and ROM must be cleared. Dual booting is not being worked on.

The keys in this OS are messed up. How does anything work?
The setup program refers to this page: https://cloud.ahelper.me/pub/glassos/keymap.php For example, pressing 4 ▪▪ ALPHA ▪▪ 5 ▪▪ 2ND ▪▪ (-) will enter "4u!". Pressing 2 will type "Z" because the key modifiers lock once hit. Pressing them again unlocks them.
To close programs, the Quit button (MODE) is used. To background a task, press STAT. When in the Launcher, you can see running processes by pressing PRGM (or APPS, I forget and am too lazy to look)

I have a question/bug/request, where do I go?
You can of course ask questions here. However, http://sf.net/projects/glassos can be used for bugs (under tracker) and requests/questions (forum).

Where can I see programs/upload programs for GlassOS?
Packages for GlassOS can be installed from either package files (*.gp) or from a public repo (temporarily here). Now, remember that I cannot upload anything to that site as sf.net's terms don't let me do that. If anyone is willing to let me put up that site, please contact me Very Happy
Packages may be installed using the PC software (opens either packages or the web page). Packages can be uninstalled by using a program on-calc (not completed).

What major features are working?

  • Greyscale
  • USB stack and a few services, including file transfer (Thanks to the Linky source code Wink )
  • Tasking
  • (working, not finished) Package management
  • Other stuff I see as minor features...
Very impressive, keep up the good work! Thank you for sharing your project with us, and I hope you'll keep us updated. As I advise all new users, you should Introduce Yourself in the appropriate thread, especially for something this in-depth. What C compiler are you using, SDCC? Is your use of C why you rampage over all 8 RAM page? Wink I notice some similarities to the Doors CS GUI system, although that could easily be due to the commonalities between all GUI system; was DCS an inspiration at all?
Daaanngg, major thumbs up go to you. You mention that it "will have multitasking" does that mean it doesn't as of now? I remember hearing that the reason we program in ASM on the calculator is because the C compiler is very inefficient, did you find a way around that?
_player1537 wrote:
Daaanngg, major thumbs up go to you. You mention that it "will have multitasking" does that mean it doesn't as of now? I remember hearing that the reason we program in ASM on the calculator is because the C compiler is very inefficient, did you find a way around that?
It sounds like not, hence my question about the RAM pages. Smile Also, just to be clear (nothing personal, I pull this distinction on everyone who announces an OS project): How much of the stuff you mentioned is done, and how much of it is future/planned? Also, you tossed in that your USB stuff is somehow 89-related; did you port it to the TI-84+, or did I miss a detail?
I think he means that he took the 89 computer linker program and reused it for his OS. Perhaps making the computer think his calculator + OS are really a TI 89 so that it sends. But that's just a guess.

Edit: Did you test this on hardware yet? If not, I'd be cool with testing it for you.
Thanks,

First, yes, I use SDCC because the code it makes isn't too bad. Depends on how you use it.

Secondly, I don't use all 8 pages because SDCC is big. I just want to give programmers a freedom in terms of memory. SDCC manages memory in the stack nicely, again, when used right.

Thrid, Yeah, DCS was one of the inspirations, but I didn't look in depth at first. I think that Palm's GUI was the inspiration, but GUI's are commonly designed in concept.

And to note that I plan to go above what DCS offers, such as HTML viewers/editors, audio widgets, menus, 3D, etc.. The OS is still growing.
(The first full program for GlassOS was a health counter for card games, and is still part of the core code Smile )

I see more posts popping up, gotta roll
For what it's worth, Doors CS has all of those things specifically written for it, except for 3D, which has so far only been done in third-party programs not specifically designed for DCS, which of course nevertheless run well. Wink I don't mean that SDCC itself is big, I mean that the code it generates must necessarily be memory-greedy as per the call-stack model of argument passing, etc, assuming it follows that.
Ok, for the USB, I ported BrandonW's Linky as the USB controllers are the same. Little changes were needed (a few lines) to get it working nicey.

Secondly, the is RAM page 1 that is mapped to 0xC000 0xFFFF that allows for code execution. RAM 0 isn't used. RAM 2-8 are for individual programs, meaning that you can have 7 programs running.

I have code that allows to task switching, but I am still working on the code OS. I am still tossing around ideas, such as each program's stack is in it's own RAM pages (same with registers and global variables), and such.

Lastly, yes, the USB works. lsusb shows "Bus 001 Device 003: ID DEAD:BEEF" as the OS connects
I saw how variables are passed. It passes variables using registers when possible, else it uses the stack. Considering that the Os only uses 4 ROM pages and the USB is only 2.5K, it isn't that bad...
So to summarize, you have (1) booting, (2) GUI basics, and (3) USB and the interrupt down pat thus far? I'll have to have a long chat with you in this topic nailing down the details of your plans for your task-switching and scheduler, but that's probably a discussion for later in your development cycle.

Edit: A note on Cemetech forum etiquette: please try to edit your posts instead of double-posting within twelve to twenty-four hours of your previous post if it's the last in the thread, depending on the urgency of the information being posted.
How the heck do you pronounce this? GlassOS? or GlabOS. I can't tell if you picked the ▀ because it looked cool and wanted it treated like a "b", or because you actually knew what it was and wanted the double S.
AHelper wrote:
Gla▀OS (GlassOS) is a a replacement OS for the ti84pse...
Shush Troll. I was trying to make a point that the name is going to confuse a lot of people.
The '▀' in German is also 'ss'... I just found it appropriate to use it... Besides, the OS doesn't have a ▀ in the character map, so it can't even say its name right Razz All it prints out is a 404 error

<edit> This is the 404 error character... I was very bored typing 200 of these:

Code:

const BYTE CHAR_IDK[8] = {
0b10101010,
0b01001110,
0b10100010,
0b00000000,
0b10101110,
0b11101010,
0b00101110,
0b00000000
};
w00t, another OS. I have to start making my own too xD

Now seriously, this looks quite impressive: automatic GUI! C!
Out of all the OSs I have seen so far, I must say this looks the best. SirC better step up a bit Razz
allynfolksjr wrote:
How the heck do you pronounce this? GlassOS? or GlabOS. I can't tell if you picked the ▀ because it looked cool and wanted it treated like a "b", or because you actually knew what it was and wanted the double S.
Actually, I started reading it as GLaDoS, the evil AGI from Portal.
I finished adding support for data transfer over USB for GlassOS. I was able to use libusb1 on linux to send over "Hello World from libusb!" and display it on the calc. The only thing to do now is to make the usb hook become friends with the OS (allowing the hook to run in the background and to let it kill devices nicely). Now, on to the next: stabilizing the usb and finishing the file system.

(Getting close to a preview release on ticalc.org)
KermMartian wrote:
allynfolksjr wrote:
How the heck do you pronounce this? GlassOS? or GlabOS. I can't tell if you picked the ▀ because it looked cool and wanted it treated like a "b", or because you actually knew what it was and wanted the double S.
Actually, I started reading it as GLaDoS, the evil AGI from Portal.


I also assumed it was a pun on GLaDoS.
AHelper wrote:
I finished adding support for data transfer over USB for GlassOS. I was able to use libusb1 on linux to send over "Hello World from libusb!" and display it on the calc. The only thing to do now is to make the usb hook become friends with the OS (allowing the hook to run in the background and to let it kill devices nicely). Now, on to the next: stabilizing the usb and finishing the file system.

(Getting close to a preview release on ticalc.org)
Don't you want the capabilities to do things like boot and pass control to the user for arbitrary programs before releasing it? I feel like people are likely to get frustrated otherwise. Smile
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 28
» All times are GMT - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement