KnightOS - For Texas Instruments calculators

This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post by SirCmpwn »

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.
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post 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:

http://www.knightos.org/
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: KnightOS - For Texas Instruments calculators

Post by AndrewAPrice »

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?)
My OS is Perception.
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post 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.
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post by SirCmpwn »

Just finished the tool for bundling/extracting/examining KnightOS packages with the help of some other contributors:

https://github.com/KnightOS/kpack

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 :D
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post by SirCmpwn »

KnightOS is now the first operating system with support for Phoenix on the TI-84+ CSE :)

Image
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post by SirCmpwn »

Online package repository: https://packages.knightos.org/
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post by SirCmpwn »

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:



You can try it yourself like this, if you wish:

Code: Select all

curl -s http://www.knightos.org/install-sdk | bash
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!

Image

I also took some time to port Phoenix to the 84+ Color Silver Edition:

Image

AND KnightOS was featured (along with several other operating systems!) on GitHub: Open Source Operating Systems.

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!
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post 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:

Code: Select all

#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.
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post by SirCmpwn »

Redesigned website, looks prettier now: http://www.knightos.org/
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: KnightOS - For Texas Instruments calculators

Post by AndrewAPrice »

SirCmpwn wrote:Redesigned website, looks prettier now: http://www.knightos.org/
You have a really nice design.
My OS is Perception.
User avatar
Bender
Member
Member
Posts: 449
Joined: Wed Aug 21, 2013 3:53 am
Libera.chat IRC: bender|
Location: Asia, Singapore

Re: KnightOS - For Texas Instruments calculators

Post by Bender »

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.
"In a time of universal deceit - telling the truth is a revolutionary act." -- George Orwell
(R3X Runtime VM)(CHIP8 Interpreter OS)
SirCmpwn
Member
Member
Posts: 34
Joined: Thu Mar 06, 2014 4:57 pm

Re: KnightOS - For Texas Instruments calculators

Post 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.
Post Reply