Reviving the Vera project!
Posted: Wed 12 Sep, 2007 8:37 pm
Dear friends, community members and other nerds,
Summary: I need some experienced people from the scene to help me work on an alternative OS for the calc in C. If you're in any way interested, please read on and drop me a line at mail@timendus.com
Edit: Could someone link the UTI forums to this topic please? Vera originated there, but I can't seem to remember my password on their forum...
I'm somewhat seriously considering reviving the Vera project as a personal toy, because I'll be working on an adaptation of the Linux kernel in a somewhat professional capacity in the coming several months, and writing my own lightweight kernel could be a nice alternative to working the monolithic giant with millions of LOC that is the Linux kernel. Also, it could be a nice experiment in setting up an open source project.
For those of you who don't know what the Vera project is (or better put - was): Vera is the name of an attempt at an open source community effort for writing an alternative operating system for Ti-83+ and family calculators. Unfortunately, the project attracted many very interested, but very inexperienced enthousiasts who basically just wanted to bring TI Basic 2.0 to life. Also, people started talking about all kinds of things like "plugins", "extensions", "programs", "files" et cetera without actually defining what these things meant. It lacked any kind of leadership to stear away from these problems and focus on what needed to be done, because nobody could really afford to put any time in it.
What's going to be different this time?
- It'll be my project; anyone can submit code, changes, bugfixes, patches and the likes, but I'll decide what gets in and what doesn't (although I'll probably appoint one or two others to help me make such decisions, and I'll probably welcome any attempt at writing code with great relief and joy )
- The required entry skill level should be slightly lower, because I'll be aiming primarily at an easy to use development environment before I move on to the actual OS, I'll try to keep the code clearly structured and commented, and most of the OS should be written in C (what'ya saying? C? Yup, more about that later)
- No open forum, not even forum-based releases untill there's actually something working to release, no wiki, no publicity, big words and getting people's hopes up, but just a mailinglist and probably a CVS or FTP server. Anyone can apply to get on the mailinglist, but it'll require some useful skill known to the rest of the mailinglist (which currently means: me) to get accepted (knowledge of hardware internals, experienced ASM programmers, good C programmers, people with experience on the Linux kernel, people with good ideas, et cetera. In other words: knowing Basic isn't going to be enough)
What gives me the right to claim control over this project?
Nothing does. But it's been abandoned for months, even the website and wiki are dead nowadays. And I came up with the name
What's been done yet?
Hardly anything I've split the original source made by Jim e (or to be more precise: my adaptation with "console" of it) into a few different files and directories, only to conclude that I didn't want it that way and that I wanted to do this in C. I've written a makefile to compile the source using Brass and run it using PTI through my PTI frontend, and did the same with a batch file named "make" for Windows users (though that remains untested). I've started a readme on how to compile and run the thing. I've searched for, and found, a C compiler that compiles and optimizes for Zilog z80 processors and read up on how to write libraries for it (to control the LCD, the keyboard, et cetera; this is going to be a significant part of writing the OS). In other words: I'm trying to set up a good programming environment. No real work on the OS has been done yet, though I've got a few ideas forming in my head.
What goals do you have in mind for Vera?
At kernel level:
- To provide a robust platform that's fun to play with for developers and a good learning experience for everyone involved
- Investigating the possible use of C in z80 calc programming
- Support multitasking (I know it can be done, so who knows, with the right tools )
At application level:
- Provide the possibility to do some calculations with it, since it's still a calculator
- "Compatibility" with Ti-OS in the sense that it should be able to communicate with normal calcs through the link port and transfer files
- Provide a platform on which programming language other than Basic could be developed (on-board C compiler, interpreters, ...?) which brings us back to the first item in this list
So, if you're interested in keeping informed about this project, if you support the cause, if you're interested in learning about (and helping to develop) programming for the calc in C or in a fun little open source experiment, drop me a line at mail@timendus.com with your TI scene nickname and your reasons for wanting to join in (if any ). Contributing code or active participation in discussions is certainly not necessary; I also need testers with know-how, more eyes for spotting bugs and just occasionally the experience of the community, really. And I will not have all that much time to spend on this project either
Oh, a final word on programming in C for the calculator. I know a lot of people are against this bacause it produces bloated code, I know a lot of people have wanted to do it but failed to find a proper compiler. I think I have found a good compiler and a good reason to do it. An OS is just too big a project to work on with only an assembler, assembly is just too chaotic to write an OS in as it misses any form of abstraction, template programming, doesn't have the least bit of memory management, et cetera...
And I think that the main reason why people think compiling C to assembler produces bloated code is that it tends to include it's own libraries with displaying routines and whatnot, where you'd normally rely on the Ti-OS routines. But in this case, we will not be able to rely on the OS, as we'll be building the OS, and write those routines ourselves. So there'll be plenty of work for the true assembler freak; we'll need to use a lot of inline assembler code to get our calcs to communicate with the LCD, the keypad, the interrupts, the link port...
Summary: I need some experienced people from the scene to help me work on an alternative OS for the calc in C. If you're in any way interested, please read on and drop me a line at mail@timendus.com
Edit: Could someone link the UTI forums to this topic please? Vera originated there, but I can't seem to remember my password on their forum...
I'm somewhat seriously considering reviving the Vera project as a personal toy, because I'll be working on an adaptation of the Linux kernel in a somewhat professional capacity in the coming several months, and writing my own lightweight kernel could be a nice alternative to working the monolithic giant with millions of LOC that is the Linux kernel. Also, it could be a nice experiment in setting up an open source project.
For those of you who don't know what the Vera project is (or better put - was): Vera is the name of an attempt at an open source community effort for writing an alternative operating system for Ti-83+ and family calculators. Unfortunately, the project attracted many very interested, but very inexperienced enthousiasts who basically just wanted to bring TI Basic 2.0 to life. Also, people started talking about all kinds of things like "plugins", "extensions", "programs", "files" et cetera without actually defining what these things meant. It lacked any kind of leadership to stear away from these problems and focus on what needed to be done, because nobody could really afford to put any time in it.
What's going to be different this time?
- It'll be my project; anyone can submit code, changes, bugfixes, patches and the likes, but I'll decide what gets in and what doesn't (although I'll probably appoint one or two others to help me make such decisions, and I'll probably welcome any attempt at writing code with great relief and joy )
- The required entry skill level should be slightly lower, because I'll be aiming primarily at an easy to use development environment before I move on to the actual OS, I'll try to keep the code clearly structured and commented, and most of the OS should be written in C (what'ya saying? C? Yup, more about that later)
- No open forum, not even forum-based releases untill there's actually something working to release, no wiki, no publicity, big words and getting people's hopes up, but just a mailinglist and probably a CVS or FTP server. Anyone can apply to get on the mailinglist, but it'll require some useful skill known to the rest of the mailinglist (which currently means: me) to get accepted (knowledge of hardware internals, experienced ASM programmers, good C programmers, people with experience on the Linux kernel, people with good ideas, et cetera. In other words: knowing Basic isn't going to be enough)
What gives me the right to claim control over this project?
Nothing does. But it's been abandoned for months, even the website and wiki are dead nowadays. And I came up with the name
What's been done yet?
Hardly anything I've split the original source made by Jim e (or to be more precise: my adaptation with "console" of it) into a few different files and directories, only to conclude that I didn't want it that way and that I wanted to do this in C. I've written a makefile to compile the source using Brass and run it using PTI through my PTI frontend, and did the same with a batch file named "make" for Windows users (though that remains untested). I've started a readme on how to compile and run the thing. I've searched for, and found, a C compiler that compiles and optimizes for Zilog z80 processors and read up on how to write libraries for it (to control the LCD, the keyboard, et cetera; this is going to be a significant part of writing the OS). In other words: I'm trying to set up a good programming environment. No real work on the OS has been done yet, though I've got a few ideas forming in my head.
What goals do you have in mind for Vera?
At kernel level:
- To provide a robust platform that's fun to play with for developers and a good learning experience for everyone involved
- Investigating the possible use of C in z80 calc programming
- Support multitasking (I know it can be done, so who knows, with the right tools )
At application level:
- Provide the possibility to do some calculations with it, since it's still a calculator
- "Compatibility" with Ti-OS in the sense that it should be able to communicate with normal calcs through the link port and transfer files
- Provide a platform on which programming language other than Basic could be developed (on-board C compiler, interpreters, ...?) which brings us back to the first item in this list
So, if you're interested in keeping informed about this project, if you support the cause, if you're interested in learning about (and helping to develop) programming for the calc in C or in a fun little open source experiment, drop me a line at mail@timendus.com with your TI scene nickname and your reasons for wanting to join in (if any ). Contributing code or active participation in discussions is certainly not necessary; I also need testers with know-how, more eyes for spotting bugs and just occasionally the experience of the community, really. And I will not have all that much time to spend on this project either
Oh, a final word on programming in C for the calculator. I know a lot of people are against this bacause it produces bloated code, I know a lot of people have wanted to do it but failed to find a proper compiler. I think I have found a good compiler and a good reason to do it. An OS is just too big a project to work on with only an assembler, assembly is just too chaotic to write an OS in as it misses any form of abstraction, template programming, doesn't have the least bit of memory management, et cetera...
And I think that the main reason why people think compiling C to assembler produces bloated code is that it tends to include it's own libraries with displaying routines and whatnot, where you'd normally rely on the Ti-OS routines. But in this case, we will not be able to rely on the OS, as we'll be building the OS, and write those routines ourselves. So there'll be plenty of work for the true assembler freak; we'll need to use a lot of inline assembler code to get our calcs to communicate with the LCD, the keypad, the interrupts, the link port...