Author Topic: SirCmpwn third-party OS project: KnightOS  (Read 20796 times)

0 Members and 1 Guest are viewing this topic.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
SirCmpwn third-party OS project: KnightOS
« on: May 27, 2010, 12:24:22 am »
I am posting this since our dear friend can't post on the forums ATM.

Ok so some people might have heard the name KnightOS before on IRC and on forums and been wondering what was that project by our dear friend. Well, to your great surprise, KnightOS is not just another shell with "OS" stuck in the name (like MirageOS), it's really an entire TI-83 Plus and 84 Plus third-party Operating System project in the work. I guess with the key factoring, some people were eventually going to take on OS projects. BrandonW is working on OS2 and patches for the TI-OS (to fix some bugs). our dear friend is working on his own OS project too: KnightOS.

Currently, he doesn't have a lot done, but here are his plans in summary: a simple calculator OS with multitasking properties, a bit like computer operating systems, but for a calc of course. Each applications will have its own thread, allowing them to continue running in the background when you run another. When an app will be doing nothing, it will take no processor time when the focus is on another app. It will just take processor time if the other app is actually doing something. Example, if you compile an ASM program using Mosaic on-calc ASM compiler while playing a small game, you may experience slow downs on the game until the app is done compiling, but it will still run. There will be limitations, of course, so you won't be able to run two grayscale raycasters at once :P, but yeah basically the OS will support some form of multi tasking. In the future it will most likely be possible to port ASM games to the new OS.

Also the OS will not contain bloatware or stuff like math functions. It will all be add-ons or external apps the user will install only if he needs them. Due to the smaller OS size this will leave more archive memory for the user. Programs/apps will be ran from archive.

I guess now I know why he needed a routine to unlock flash :P (I told him to be very careful, tho)

So yeah, for now he hasn't done too much but here is a screenshot showing the small stuff included so far and a ROM image that you can try under WabbitEmu.

Press ON to startup and follow instructions on screen. When the calc is turned OFF, hold down PRGM while turning it back ON and see what happens (shown in the screenshot). Then try with STATS and R instead of PRGM.
« Last Edit: May 27, 2010, 12:25:02 am by DJ Omnimaga »

Offline bwang

  • LV7 Elite (Next: 700)
  • *******
  • Posts: 634
  • Rating: +30/-11
    • View Profile
Re: our dear friend third-party OS project: KnightOS
« Reply #1 on: May 27, 2010, 12:49:14 am »
Shiny!
Its nice to see more OSes for the 8x series.

Offline Juju

  • Incredibly sexy mare
  • Coder Of Tomorrow
  • LV13 Extreme Addict (Next: 9001)
  • *************
  • Posts: 5730
  • Rating: +500/-19
  • Weird programmer
    • View Profile
    • juju2143's shed
Re: our dear friend third-party OS project: KnightOS
« Reply #2 on: May 27, 2010, 01:03:17 am »
Cool, it's nice to see some form of multi-tasking on TI devices, and also to see someone who is exploiting that calculator to the maximum, like these 70s-80s computers.

Remember the day the walrus started to fly...

I finally cleared my sig after 4 years you're happy now?
THEGAME
This signature is ridiculously large you've been warned.

The cute mare that used to be in my avatar is Yuki Kagayaki, you can follow her on Facebook and Tumblr.

Offline meishe91

  • Super Ninja
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2946
  • Rating: +115/-11
    • View Profile
    • DeviantArt
Re: our dear friend third-party OS project: KnightOS
« Reply #3 on: May 27, 2010, 01:10:58 am »
That's really cool. Tell He-Who-Shall-Not-Be-Named good luck with this :)

Side Question: Is there any news on He-Who-Shall-Not-Be-Named's other projects?
Spoiler For Spoiler:



For the 51st time, that is not my card! (Magic Joke)

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: our dear friend third-party OS project: KnightOS
« Reply #4 on: May 27, 2010, 01:32:30 am »
Not sure really, I think right now he's focusing on this and Mosaic.

Also BrandonW found some issue about the ROM, I'll point them out via e-mail to the author. However here are the IRC logs:

Quote
[01:08:42] <+BrandonW> I disassembled that ROM he posted, I don't see how it's booting without any boot page.
[01:08:53] <+BrandonW> I guess he's using an emulator that starts at 0000h.
[01:09:07] <+BrandonW> There are some strange things going on in it.
[01:10:18] * +TD-Linux ([email protected]) Quit (Ping timeout: 310 seconds)
[01:10:22] <+BrandonW> Actually my disassembler's just having a tought time with a couple of instructions.
[01:10:38] <+BrandonW> Looks like out (c),a and in a,(c)
[01:11:11] <+SpyBot45> New post by meishe91 in our dear friend third-party... http://ourl.ca/5934/91778
[01:11:33] * TD-Linux ([email protected]) has joined #omnimaga
[01:13:04] <@DJ_Omni> ok
[01:13:15] <@DJ_Omni> if there are any problems you may want to point him out
[01:13:16] <+BrandonW> Did he also have something to do with LinTIx?
[01:13:24] <@DJ_Omni> cuz idk much about that stuff
[01:13:30] <@DJ_Omni> idk
[01:14:23] <@DJ_Omni> all I know is that it appeared to work fine under WabbitEmu
[01:16:08] <+BrandonW> Actually, it just hit me...
[01:16:18] <@DJ_Omni> also what is LinTIx?
[01:16:33] <+BrandonW> Wabbitemu will start executing on the boot page, but because he's got that filled with either 0xFF or 0x00, it'll overflow to 0x0000 and start executing.
[01:16:39] <+BrandonW> I wonder if he realizes that.
[01:16:46] <@DJ_Omni> ok
[01:16:47] <+BrandonW> Either that or it'll jump to 0x0038.
[01:16:49] <@DJ_Omni> not sure x.x
[01:17:06] <+BrandonW> LinTIx is apparently a third-party OS project on SourceForge for the 83+ series.
[01:18:23] <@DJ_Omni> aaah
[01:18:26] <@DJ_Omni> never heard of it

Offline Galandros

  • LV9 Veteran (Next: 1337)
  • *********
  • Posts: 1140
  • Rating: +42/-10
    • View Profile
Re: our dear friend third-party OS project: KnightOS
« Reply #5 on: May 27, 2010, 07:14:56 am »
Ben Ryves done a curious experiment of multitasking using the custom interrupt.

But a operating system is a new level, I like the concept. Good to luck for doing it. An OS is a big project.
Hobbing in calculator projects.

Offline ztrumpet

  • The Rarely Active One
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5712
  • Rating: +364/-4
  • If you see this, send me a PM. Just for fun.
    • View Profile
Re: our dear friend third-party OS project: KnightOS
« Reply #6 on: May 27, 2010, 07:50:41 am »
This is pretty cool!  Good luck with it, our dear (and awesome) friend. :D
I hope you finish this.  Huge is an understatement. ;D

Offline calcdude84se

  • Needs Motivation
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2272
  • Rating: +78/-13
  • Wondering where their free time went...
    • View Profile
Re: our dear friend third-party OS project: KnightOS
« Reply #7 on: May 27, 2010, 07:57:45 am »
That makes three people I know who are heading OS projects (our dear friend, me, and brandonw). I, however, promised myself I wouldn't mention mine anywhere except in my sig until I got at least a demo. (Right now I'm still planning features. I'll create a topic eventually.)
Good like to our dear friend!
"People think computers will keep them from making mistakes. They're wrong. With computers you make mistakes faster."
-Adam Osborne
Spoiler For "PartesOS links":
I'll put it online when it does something.

SirCmpwn

  • Guest
Re: our dear friend third-party OS project: KnightOS
« Reply #8 on: May 27, 2010, 09:49:23 am »
Hello,
Thanks to geekboy, I can access the forums.  Thank you, geekboy.
Also, I would like to point a few things out.
The problem with the rom is the boot page.  There actually isn't one.  It just skips and hops its way over to page 00 for now, which is pretty stupid, but whatever.
Also, if you guys want a chance to play around with a multithreaded OS, there already is one.  It is semi-done, and I've played around with it.  It's called BAOS, and you can get it here: http://www.ticalc.org/archives/files/fileinfo/398/39863.html.

Developers should know that KnightOS will require coders to use location-independent code.  This means that using call, jp, and occasionally ld will not work.  However, I have included macros kcall, kjp, and kld for the programmers use, which will run slower the at first, but will run just as fast as the application's life progresses.

Calc84, nice to hear!  I look forward to seeing more about it.

Does anyone know how to set up the system interrupt?  I tried, but it didn't work too well, and looking through the source code from OS2 didn't help too much.

I tried KnightOS on hardware the other day, and it worked fine, with the exception of a buggy keyboard driver (O_o).

Progress on my other projects is just chuggin along.  I made a hex editor with Axe that I'm slowly working on, and I'm working on a floating point math library for Axe off and on.  Mosaic is going good, the assembler is fast.  The GUI is still non-functional, with a couple exceptions.

Offline ztrumpet

  • The Rarely Active One
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 5712
  • Rating: +364/-4
  • If you see this, send me a PM. Just for fun.
    • View Profile
Re: our dear friend third-party OS project: KnightOS
« Reply #9 on: May 27, 2010, 10:24:54 am »
I'm glad this progressing well, and it sounds like your other projects are too.  Keep it up, and good luck irl! ;D

SirCmpwn

  • Guest
Re: our dear friend third-party OS project: KnightOS
« Reply #10 on: May 27, 2010, 10:26:44 am »
Thanks!
Btw, for anyone who saw me on IRC last knight suddenly disappearing, its cause I installed updates to my Ubuntu flash drive and it went into kernel panic upon booting, so I apologizing for saying "brb" and lying about it :P.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: our dear friend third-party OS project: KnightOS
« Reply #11 on: May 27, 2010, 02:15:24 pm »
Ouch that sucks. I kinda feared this happened or that you got told to get off the computer x.x

I hope you don't lose anything or damage the comp, tho x.x

SirCmpwn

  • Guest
Re: our dear friend third-party OS project: KnightOS
« Reply #12 on: May 27, 2010, 04:09:49 pm »
Naw, its all good.  I'm getting the drive fixed again.

Offline calcdude84se

  • Needs Motivation
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2272
  • Rating: +78/-13
  • Wondering where their free time went...
    • View Profile
Re: our dear friend third-party OS project: KnightOS
« Reply #13 on: May 27, 2010, 05:56:49 pm »
... stuff ...

Developers should know that KnightOS will require coders to use location-independent code.  This means that using call, jp, and occasionally ld will not work.  However, I have included macros kcall, kjp, and kld for the programmers use, which will run slower the at first, but will run just as fast as the application's life progresses.

Calc84, nice to hear!  I look forward to seeing more about it.

Does anyone know how to set up the system interrupt?  I tried, but it didn't work too well, and looking through the source code from OS2 didn't help too much.

... more stuff ...

Hmm... how does the position-independent code regain normal speed? I'm thinking SMC as the answer there. Would this mean programs must be copied into RAM before they are run? (You never specified one way or the other)

Thanks. :)

By the system interrupt, I'm assuming you mean the default one.
you'll first want to disable interrupts with di, then change to the shadow registers with exx and ex af,af'. Then, I'll assume you want to see what device triggered the interrupt. Reading from port 04h will accomplish this. Then you'll want to reset the corresponding bit by writing to port 03h so that when you re-enable interrupts the interrupt won't be triggered again. At this point, you can then do whatever you need to. (Run the task switcher, deal with devices, etc.) Because $0056 and a few bytes after that must contain certain data, you'll want to jump elsewhere to run your code (probably after the ex af,af')
Documentation on ports 03h and 04h is available at WikiTI. The ports index is located at http://wikiti.brandonw.net/index.php?title=Category:83Plus:Ports:By_Address
Hope this helps!
"People think computers will keep them from making mistakes. They're wrong. With computers you make mistakes faster."
-Adam Osborne
Spoiler For "PartesOS links":
I'll put it online when it does something.

Offline DJ Omnimaga

  • Clacualters are teh gr33t
  • CoT Emeritus
  • LV15 Omnimagician (Next: --)
  • *
  • Posts: 55943
  • Rating: +3154/-232
  • CodeWalrus founder & retired Omnimaga founder
    • View Profile
    • Dream of Omnimaga Music
Re: our dear friend third-party OS project: KnightOS
« Reply #14 on: May 27, 2010, 11:45:23 pm »
I think this OS will work a bit similary to the TI-Nspire OS. Stuff will be archived and copied to RAM when needed. However, unlike the Nspire, KnightOS itself won't be copied in RAM when you turn the calc ON. Just stuff you want to run would be.