SoLDMG wrote:That's not actually possible on a calculator, no. I'm still going to look at the C compiler source code and see if I can contribute somehow though.
Well, in theory, it could work. But it's not something we're looking into for the time being.
Re: KnightOS - For Texas Instruments calculators
Posted: Sun Sep 21, 2014 5:32 pm
by SirCmpwn
I improved the "source code" menu on the website so it's easier to find out about all the sub-projects in the KnightOS world:
This is really cool. We used HP-38G calculators back in highschool and I loved programming on it (and it looked like I was actually doing work in my classes!) Unfortunately, I never got beyond HP BASIC into assembly.
What challenges have you encountered in KnightOS while working with such a limited system that most of us OSdevers don't encounter? Why the 32 process limit (do you used a fixed-size structure for storing processes?)
Re: KnightOS - For Texas Instruments calculators
Posted: Tue Sep 23, 2014 12:44 pm
by SirCmpwn
MessiahAndrw wrote:What challenges have you encountered in KnightOS while working with such a limited system that most of us OSdevers don't encounter? Why the 32 process limit (do you used a fixed-size structure for storing processes?)
Well, the process table is a fixed size for performance reasons. It's always located at 0x8000 and each entry is aligned, so it's faster to do a context switch (which really matters when you have a slower system). The real challenges that other osdevers might not have faced, though, are much different. One example is that KnightOS is written entirely in assembly - not because I prefer assembly, but because there are no C compilers for z80 that are good enough. Also, I'm directly interacting with the Flash chip rather than with some controller that makes it look like a block device, so I had to design my own filesystem considering that few filesystems are designed around the NAND Flash constraints. One thing that's easier, though, is that these calculators have a fixed hardware list and I don't have to worry so much about drivers and such.
Re: KnightOS - For Texas Instruments calculators
Posted: Sun Sep 28, 2014 7:07 pm
by SirCmpwn
Just finished the tool for bundling/extracting/examining KnightOS packages with the help of some other contributors:
Soon I'll be breaking the userspace up into several repositories and building it out of packages rather than putting the filesystem together manually.
Also! Work on packages.knightos.org has been started, and there will soon be an online package repository for KnightOS. In the foreseeable future, the KnightOS userspace repository will just be a list of packages and a makefile
Re: KnightOS - For Texas Instruments calculators
Posted: Wed Oct 08, 2014 10:55 pm
by SirCmpwn
KnightOS is now the first operating system with support for Phoenix on the TI-84+ CSE
Here to give another update. It's been a little while, so a lot of stuff has been done.
We're working on replacing our old home-grown z80 assembler with a new home-grown z80 assmebler. The old one is written in C# and the new one in C. The old one is extremely crufty and was always just "good enough", and the new one is a much more refined design. It includes seperate assembly/linking steps as well as ASxxxx compatability, which will allow us to use it to add support for userspace C programs via kcc, our fork of SDCC, a C compiler for z80.
More news: we finished our new SDK! I did a short video about it:
After completing the SDK, we split up all of our userspace programs into their own independent repositories (they had previously been under the same repo) that all have their own release cycles and can be developed independently of each other. The "official" userspace is now bootstrapped from PKO (packages.knightos.org) through the SDK (think pacstrap from Arch Linux).
Also, KnightOS is now suitable for educational use /s!
I also took some time to port Phoenix to the 84+ Color Silver Edition:
But wait, there's more! Since programming on KnightOS requires compiling and installing our entire toolchain, we'd like to reduce the cost of entry by compiling our toolchain with emscripten and running in a web browser. This is part of why we're writing a new assembler in C. We have started working on try.knightos.org, which is a rather lightweight "IDE" of sorts that runs the toolchain with JavaScript and can run your programs in an emulator right on the page. It's still very much a work-in-progress, but hopefully that'll make it a lot easier for people to get involved. I'm also hoping to eventually extend this to include interactive tutorials and such.
That's all for now, thanks for reading this long update!
Re: KnightOS - For Texas Instruments calculators
Posted: Fri Nov 21, 2014 4:46 pm
by SirCmpwn
This probably isn't big news to all you folks working on your operating systems in C, but we now have support for userspace programs written in C! Here's an example one:
#include <display.h>
/* Warning! C support in KnightOS is highly experimental. Your milage may vary. */
void main(void) {
SCREEN *screen;
get_lcd_lock();
screen = screen_allocate();
screen_clear(screen);
draw_string(screen, 0, 0, "Hello world!");
screen_draw(screen);
while (1);
}
KnightOS isn't POSIX, so porting things takes a lot more effort. C support required a huge amount of effort and we're all very proud of it
Work on the kernel and most userspace programs continues in assembly, and a few people have poked their heads in and volunteered to help us build our libc and work on porting things like Lua and pForth. It's an exciting time! Come join us if you want some good old embedded device fun.
Tested out the online compiler and emulator, and it works nice on both PC and mobile platforms. Also, the SDK and your build system looks very professional.
By the way, what language are you using to develop applications? It looks like assembly with the addition of function calls.
Re: KnightOS - For Texas Instruments calculators
Posted: Tue Dec 16, 2014 9:05 am
by SirCmpwn
Bender wrote:Tested out the online compiler and emulator, and it works nice on both PC and mobile platforms. Also, the SDK and your build system looks very professional.
By the way, what language are you using to develop applications? It looks like assembly with the addition of function calls.
Thanks for the kind words! We're using assembly with a lot of macros, not function calls.