Well, in theory, it could work. But it's not something we're looking into for the time being.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.
KnightOS - For Texas Instruments calculators
Re: KnightOS - For Texas Instruments calculators
Re: KnightOS - For Texas Instruments calculators
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/
http://www.knightos.org/
- AndrewAPrice
- Member
- Posts: 2299
- Joined: Mon Jun 05, 2006 11:00 pm
- Location: USA (and Australia)
Re: KnightOS - For Texas Instruments calculators
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?)
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.
Re: KnightOS - For Texas Instruments calculators
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.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?)
Re: KnightOS - For Texas Instruments calculators
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
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
Re: KnightOS - For Texas Instruments calculators
KnightOS is now the first operating system with support for Phoenix on the TI-84+ CSE
Re: KnightOS - For Texas Instruments calculators
Online package repository: https://packages.knightos.org/
Re: KnightOS - For Texas Instruments calculators
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:
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:
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!
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
Also, KnightOS is now suitable for educational use /s!
I also took some time to port Phoenix to the 84+ Color Silver Edition:
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!
Re: KnightOS - For Texas Instruments calculators
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:
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.
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);
}
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.
Re: KnightOS - For Texas Instruments calculators
Redesigned website, looks prettier now: http://www.knightos.org/
- AndrewAPrice
- Member
- Posts: 2299
- Joined: Mon Jun 05, 2006 11:00 pm
- Location: USA (and Australia)
Re: KnightOS - For Texas Instruments calculators
You have a really nice design.SirCmpwn wrote:Redesigned website, looks prettier now: http://www.knightos.org/
My OS is Perception.
- Bender
- Member
- Posts: 449
- Joined: Wed Aug 21, 2013 3:53 am
- Libera.chat IRC: bender|
- Location: Asia, Singapore
Re: KnightOS - For Texas Instruments calculators
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.
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)
(R3X Runtime VM)(CHIP8 Interpreter OS)
Re: KnightOS - For Texas Instruments calculators
Thanks for the kind words! We're using assembly with a lot of macros, not function calls.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.