Omnimaga

Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: Eeems on June 21, 2011, 05:12:46 pm

Title: Rogue OS
Post by: Eeems on June 21, 2011, 05:12:46 pm
If any of you are wondering what my recent tweets have been about, or what I'm blabbering on about in IRC then let me enlighten you :)

I have recently been working on a OS inspired by KOS. Rogue has been in the works for a long time but has never really gotten off the ground until recently. RogueOS was originally going to be based on the Knight Kernel, but since I am unable to work with the Knight Kernel due to re-writes, I'm opting for just basing it off of a basic version of the Knight Kernel and working from there.
After making that decision I sat down and wrote out what my goals for Rogue were and here is a somewhat edited version of that original list.
Features
Multitasking
App Style Programs
Animated Switching
System Pane
3 Dedicated screen buffers
Filesytem
Power Menu

Completed Milestones

So right now, I have a working, but limited OS :D

Oh and before I forget, I am working on this project with a mix of wine, mono, spasm, wabbitemu, wxwabbitemu, make, gedit and os2tools. Right now the building process is aimed for linux, but I could add in support for windows later, when I get around to making an svn for you guys to grab from :)

(http://dl.dropbox.com/u/763272/Screenshot-Wabbitemu-2.gif)
Booting Rogue OS's debug build. Using boot.exe and welcome.exe to display the two last messages with multitasking

( BTW: I'm writing my last Diploma exam tomorrow, so I'm not really active until after it, but I thought I should just post this now for the hype :P )
Title: Re: Rogue OS
Post by: Munchor on June 21, 2011, 05:15:53 pm
This looks promising Eeems, as most OSs, but it seems you've started making some stuff :) I just don't get the exes, what are they, calculator files?

Good luck with this :)
Title: Re: Rogue OS
Post by: AngelFish on June 21, 2011, 05:24:38 pm
Wait, "welcome.exe?"

Are you seriously parsing .exe files? O.O
Title: Re: Rogue OS
Post by: Deep Toaster on June 21, 2011, 05:32:02 pm
Not .app? D: J/k looks awesome! I really like those keypad tricks like holding ON. Any idea when we can have a demo? :D
Title: Re: Rogue OS
Post by: Eeems on June 21, 2011, 05:59:00 pm
This looks promising Eeems, as most OSs, but it seems you've started making some stuff :) I just don't get the exes, what are they, calculator files?
Thanks :)
Exe's are executable files. My file system isn't limited like TIOS the data can have any format/name it wants.
Wait, "welcome.exe?"

Are you seriously parsing .exe files? O.O
.exe is just an extension placeholder for now, I might change it to something else, I might not.
Not .app? D: J/k looks awesome! I really like those keypad tricks like holding ON. Any idea when we can have a demo? :D
lol :P
Yeah, I'm excited about them too, I have no idea when I will be at that state, but I'll try to get an svn set up as soon as possible so you guys can grab the most recent source whenever you want and make your own personal demos :P
Title: Re: Rogue OS
Post by: Deep Toaster on June 21, 2011, 06:10:28 pm
Here's a suggestion: When the user holds down the ON button for, say, three seconds, the calculator either turns off immediately after quitting all programs (since RAM clears don't even matter at all), or goes into a "teacher mode" that looks like the TI-OS homescreen.
Title: Re: Rogue OS
Post by: Eeems on June 21, 2011, 06:20:23 pm
Here's a suggestion: When the user holds down the ON button for, say, three seconds, the calculator either turns off immediately after quitting all programs (since RAM clears don't even matter at all), or goes into a "teacher mode" that looks like the TI-OS homescreen.
Umm, I'm not going to do that. I prefer letting people hold on to keep the overlay on as long as possible.
I'm also not going to support all the math functions by default so I'm not going to have a teacher mode. Someone could make a Teacher Mode addition to it if they want and they could add in a patch for the three second thing as well, but I'm going to let people hold the on button as long as they want. Especially since apps that disable multitasking or turn off the system pane need a way for the user to get out of them/ view the pane. Holding on will display the overlay as well as force show the system pane.

Anyways, here is the svn for you guys, feel free to load trunk/build/Rogue.rom into an emulator to see it in action. I would recommend against loading it onto your calc for the time being with the 8xu since it is really useless. If you want to help me work on it feel free to let me know and I can set up a branch for you :)
http://code.google.com/p/rogueos/
Title: Re: Rogue OS
Post by: Michael_Lee on June 21, 2011, 08:06:09 pm
Wait, "welcome.exe?"

Are you seriously parsing .exe files? O.O
.exe is just an extension placeholder for now, I might change it to something else, I might not.

I vote that they don't end in .exe -- it reduces confusion.


What happens if an app is already in grayscale and you bring up the overlay?  It could potentially look ugly if the app uses grayscale in an unusual way.
Title: Re: Rogue OS
Post by: Eeems on June 21, 2011, 08:12:17 pm
Wait, "welcome.exe?"

Are you seriously parsing .exe files? O.O
.exe is just an extension placeholder for now, I might change it to something else, I might not.

I vote that they don't end in .exe -- it reduces confusion.


What happens if an app is already in grayscale and you bring up the overlay?  It could potentially look ugly if the app uses grayscale in an unusual way.
The greyscale rendering will be disabled, and it become monochrome for the length of time the overlay is open since I don't want the headache of somehow rendering both my overlay and it's greyscale at once, it's just going to use the screen buffer ( 0 ) for it.
Title: Re: Rogue OS
Post by: Broseph Radson on June 22, 2011, 12:00:35 am
Looks pretty cool. I always get excited about this kind of thing. :w00t:
Title: Re: Rogue OS
Post by: Eeems on June 25, 2011, 02:54:50 am
Looks pretty cool. I always get excited about this kind of thing. :w00t:
Thanks :) Me too :P
So I've been trying to work on the file system to get better support for Directories atm, and it's kind of coming along :/
Title: Re: Rogue OS
Post by: Juju on June 25, 2011, 03:08:48 am
Sounds awesome :D
Title: Re: Rogue OS
Post by: TIfanx1999 on June 25, 2011, 09:50:45 am
Hey, nice to see you post about this. I'm looking forward to seeing this develop. =)
Title: Re: Rogue OS
Post by: Ashbad on June 25, 2011, 10:37:21 am
I'd like to put up a request for 5 Graph buffers -- two main, two for copying to the main ones for quick static rendering, and an extra one :)
Title: Re: Rogue OS
Post by: matthias1992 on June 25, 2011, 10:49:25 am
Ok this might just be me but I just rabbed the .rom file from the provided link and dragged 'n dropped it unto wabbitemu. It then says boot succesfull but if I press any key the screen goes blank. I suppose this is not what should be happening? 3 dedicated buffers made my day though :) lol
Title: Re: Rogue OS
Post by: shmibs on June 25, 2011, 11:53:10 am
/\i think that is what's supposed to happen, actually, as he doesn't have much else fully implemented yet./\

good luck on the file system, eeems!
Title: Re: Rogue OS
Post by: Eeems on June 26, 2011, 05:35:21 pm
Ok this might just be me but I just rabbed the .rom file from the provided link and dragged 'n dropped it unto wabbitemu. It then says boot succesfull but if I press any key the screen goes blank. I suppose this is not what should be happening? 3 dedicated buffers made my day though :) lol
yes, that is all it is suppose to do right now, it's running boot/boot.bin which loads boot/boot.txt and displays it on the screen then waits for a keypress then shuts down.
I'd like to put up a request for 5 Graph buffers -- two main, two for copying to the main ones for quick static rendering, and an extra one :)
that is a lot of extra space. If a program wants extra graph buffers they can allocate the space themselves.
Hey, nice to see you post about this. I'm looking forward to seeing this develop. =)
Thanks :)
good luck on the file system, eeems!
I have already been able to implement multilevel directory support! :D

EDIT: I started adding sound support, but it is still extremely unstable so it's turned off by default in src/inc/Options.inc
Title: Re: Rogue OS
Post by: Eeems on June 28, 2011, 04:01:24 pm
So I'm almost done getting my filesystem patcher working ( it takes an existing folder structure, compiles all the * . * .asm files into * . * ( so boot.bin.asm into boot.bin ) and then creates all the necessary files from that for the FAT as well as a file that includes all the correct files. ). I'm still having issues with putting the right info on the FAT, but it's almost done! This will make it really easy for me to mess around with what is on the FAT. To patch the folder structure ( currently src/filesystem/ ) into the normal build just run make filesystem. Or to test it make filesystem debug.
Sound is still not working correctly though.
Title: Re: Rogue OS
Post by: Eeems on June 30, 2011, 10:39:53 pm
I have finally gotten my filesystem patcher to work completely! It's not quite as good as defining your own filesystem ( an extra 0A00h is added at the end ) but it works!
If you get the most recent svn revision ( remember this only builds on linux until someone converts the makefile and my MakeFS script. ) the folder structure that it builds in is this:

/                  ; root directory
   boot/            ; where all the bootup files are stored
      boot.bin      ; binary to run on bootup
      boot.txt      ; welcome message to display at bootup
   etc/               ; All the settings will be stored here
      hostname.txt   ; Hostname of the system ("Rogue"). It's a placeholder for now.

src/filesystem/boot/boot.bin.asm is the file that is compiled into boot/boot.bin so feel free to play around with that if anybody wants to mess around.
A normal make all looks like this:
Spoiler For Spoiler:
eeems@Chloe ~/workspace/rogueos $ make all
Creating Include File
   Boot
   Sleep
   DispHexA
   Shift
   Newline
   DrawString
   MeasureString
   PutChar
   LCDRight
   LCDLeft
   LCDUp
   LCDDown
   ClearBuffer
   PutSpriteXOR
   PutSpriteOR
   LCDDelay
   LCDReady
   RequestLock
   GetKey
   FlushKeys
   WaitKey
   LoadReturnText
   FreeMem
   AllocateMem
   LoadExecutableToRAM
   LoadFileToRAM
   ExecFile
   NewThread
   KernelPanic
Compiling filesystem
   boot/
      boot.bin.asm
      -> Compiling boot.bin.asm
          Pass one...
          Pass two...
          Program Start: 0
          Size:
          Program End: 36
          Done
      <- Done Compiling boot.bin.asm
      boot.txt
   etc/
      hostname.txt
Compiling pages
     Pass one...
     Pass two...
     Compiling Page00
     Free Space: 13328 bytes
     Compiling Page 01
     Start of FAT: 16384
        Entry root/: 16386
           Entry boot/: 16396
              Entry boot.bin.asm: 16406
              Entry boot.txt: 16423
           Entry etc/: 16440
              Entry hostname.txt: 16449
     End of FAT 16470
     boot.bin.asm Start 16471 Length
     boot.txt Start 16509 Length
     hostname.txt Start 16549 Length
     Free Space: 16210 bytes
     Done
Creating 8xu
    Building OS data...
    Hashing OS data...
    Key file 0A.key specified, reading contents...
    Building 8XU...
    Writing validation data...
    Done.
Creating Rom
    Knight Kernel HexToRom Tool
Finished
Title: Re: Rogue OS
Post by: jnesselr on July 02, 2011, 04:31:42 pm
you're computer's name is "chloe"? lol

Glad to see it builds well with the filesystem.
Title: Re: Rogue OS
Post by: Eeems on July 02, 2011, 06:26:07 pm
you're computer's name is "chloe"? lol

Glad to see it builds well with the filesystem.
Yep :P
I'm currently trying to solve an issue with a hardware bug that I had thought I had fixed, but it's not longer working. The filesystem is working great though :D
Title: Re: Rogue OS
Post by: Eeems on July 03, 2011, 04:02:47 am
Alright since my last post was yesterday :P
I worked my way around the hardware bug thanks to Runer112  :)

And here is the overlay ( Without the system tray, I'm working on adding that ). Thanks again to Runer112 ( and to ZippyDee ) for helping me get my sprite routines working.

EDIT: sorry eeems, i accidentally hit modify and had to restore the post by going back and copy/pasting. i'm using a proxy, though, so i didn't have the link to the gif you used and had to save/upload it D=
Title: Re: Rogue OS
Post by: shmibs on July 03, 2011, 05:18:57 am
what exactly was the hardware bug? i saw a lot of you talking with runer, but i never got exactly what the issue was.
Title: Re: Rogue OS
Post by: Runer112 on July 03, 2011, 10:19:10 am
Some of Eeems' routines require that interrupts be off. So he has to back up the on/off status of the interrupts before he can disable them and run his routine, and then he has to re-enable them at the end if they were on. The ld a,i instruction is the primary way to do this, as it affects flags by setting the p/v flag if they are on and resetting it if they are not on. However, due to a hardware bug, if an interrupt activates right as this instruction is reached, the flags will reflect interrupts being off. So unless you do some more robust testing than just relying on the flag output of ld a,i, your interrupts will be mysteriously disabled on rare occasions.
Title: Re: Rogue OS
Post by: shmibs on July 03, 2011, 12:39:24 pm
ah, ok thanks.
do you think there's any way this could have been what was causing the garbled text issue, eeems? it certainly seemed liked an interrupt issue. i can't svn checkout the new code to test, though, because my father has blocked google.code again.
Title: Re: Rogue OS
Post by: jnesselr on July 03, 2011, 12:52:23 pm
ah, ok thanks.
do you think there's any way this could have been what was causing the garbled text issue, eeems? it certainly seemed liked an interrupt issue. i can't svn checkout the new code to test, though, because my father has blocked google.code again.
why did he block it?
Title: Re: Rogue OS
Post by: SirCmpwn on July 03, 2011, 02:03:57 pm
Looks pretty cool!
Title: Re: Rogue OS
Post by: Eeems on July 03, 2011, 03:05:08 pm
ah, ok thanks.
do you think there's any way this could have been what was causing the garbled text issue, eeems? it certainly seemed liked an interrupt issue. i can't svn checkout the new code to test, though, because my father has blocked google.code again.
This is really strange, I'm not getting it and I've been testing a *ton* ( as to be expected )
Hmm, use withg.us.to to check it out and then download it from there :)
Looks pretty cool!
Thanks! Hopefully we can get together and talk about cross-compatibility with KOS sometime soon?
Title: Re: Rogue OS
Post by: Eeems on July 06, 2011, 05:06:41 pm
Ok, so I've stabilized my code a ton. It's ~95% more stable now.
(http://dl.dropbox.com/u/763272/Rogue/Screenshot1.gif)
( sorry about how slow that screenshot is, keypresses in wine wabbit suck )
Title: Re: Rogue OS
Post by: jnesselr on July 06, 2011, 05:09:03 pm
It's not that slow, or at least I don't think it is.
Title: Re: Rogue OS
Post by: DJ Omnimaga on July 06, 2011, 05:11:44 pm
I see the word FInished in the screenshot O.O
Title: Re: Rogue OS
Post by: BrownyTCat on July 06, 2011, 07:17:24 pm
I see the word FInished in the screenshot O.O
I think that's for the execution of something. The OS can't be near finished. ...Can it?
Title: Re: Rogue OS
Post by: Eeems on July 06, 2011, 08:30:03 pm
It's not that slow, or at least I don't think it is.
It's going way slower then it should be :P I'll do a screen capture of it to show you later ( using wxwabbit )
Title: Re: Rogue OS
Post by: Eeems on July 07, 2011, 07:30:45 pm
Hey, lookie here!
(http://dl.dropbox.com/u/763272/Rogue/Screenshot-Wabbitemu-0.png)
Any guesses ;P
Title: Re: Rogue OS
Post by: ralphdspam on July 07, 2011, 07:42:36 pm
Sounds like a nice, friendly OS to program for.  :)
Will it support dual booting with the TI-OS?
Title: Re: Rogue OS
Post by: Eeems on July 07, 2011, 07:45:10 pm
Sounds like a nice, friendly OS to program for.  :)
Will it support dual booting with the TI-OS?
No ( and you aren't the first to ask this ). Due to how different they are it will be impossible to dual boot the two OS's on the same calc. Plus there would be hardly any space to do so with.
Title: Re: Rogue OS
Post by: ralphdspam on July 07, 2011, 08:06:11 pm
Oh, :\

Would it be possible for someone to make a program to support TI bcalls?
Title: Re: Rogue OS
Post by: Eeems on July 07, 2011, 08:07:18 pm
Oh, :\

Would it be possible for someone to make a program to support TI bcalls?
There is the possibility of a compatibility layer, but I haven't looked too into it.
Title: Re: Rogue OS
Post by: ralphdspam on July 07, 2011, 08:26:06 pm
Oh, :\

Would it be possible for someone to make a program to support TI bcalls?
There is the possibility of a compatibility layer, but I haven't looked too into it.
Well, either way, it sounds like it will become a great OS.  :)
Title: Re: Rogue OS
Post by: Munchor on July 08, 2011, 05:16:49 am
Hey, lookie here!
(http://dl.dropbox.com/u/763272/Rogue/Screenshot-Wabbitemu-0.png)
Any guesses ;P

May I know how you start the ROM in wxwabbit? I sent it to wxwabbitemu, but can't start it (I'll fix this bug on wxwabbitemu today or tomorrow, from now on ROMs will load automatically like in Windows Wabbitemu). How did you start it?
Title: Re: Rogue OS
Post by: Eeems on July 08, 2011, 03:35:25 pm
I just opened the rom in wabbit and it works.
What exactly are you getting that is an issue?
( Also I'm using revision 74 of wxwabbitemu to load this )
To anybody on windows using wabbitemu, Rogue will not boot on any version past 1.5.6.20 due to the fact that wabbit now requires you to have a boot page and I have been relying on the bootfree page included with wabbit. I will eventually maybe work on a fix for that, but until then, use wxwabbitemu or an older version of wabbitemu and it will work.

EDIT: I've been working on the panel a bit still, but mainly I've been trying to track down some annoying random bugs in my code.
(http://dl.dropbox.com/u/763272/Rogue/Screenshot-Wabbitemu.png)
( Oh btw, why it's now at 90% is probably because I added a 10 byte text buffer for some text routines so there is a tiny bit less space there. Also my free space routine doesn't round up, it rounds down so it is probably actually just under 99% free. )

I see the word FInished in the screenshot O.O
It just means that the system start up is finished :P