ZOS SB version
Root / Talk About Programs / [.]
MariominerCreated:
If any of you remember me joining the PTC wiki near it's death, you may remember that I planned to release a project called ZOS - another Mock OS. Mock OSes tend to not be very useful, but even back then ZOS was pretty advanced for an OS. I never did release it, but don't worry; you didn't miss out on much.
However, the recent influx of more Mock OSes has prompted me to prove that they don't all have to suck by recreating ZOS but from a better foundation. See, the old ZOS ran code that was just code; it was a multi-tool, not an operating system. It also didn't use sprites, it used text. Even though I was able to make wonderful build-in apps, it was still just a multi-tool.
If you've seen on Miiverse, I've made significant progress. To start, I made a login screen pretty similar to the original ZOS, and made a desktop using graphics. I decided then to make everything sprite based, and used sprite icons for desktop images. The sprites prompted actions upon clicking that was completely separate from the sprite's image, unlike in the original. I made everything while using GCLS as little as possible. When the time came to make the built-in apps, I made windows. I didn't make subroutines creating windows that were just visually windows, but rather created many arrays (to act as data structures) that stored the data of a window. Then I used a tactic of running another program that I discovered after testing multi-slot capabilities. I made a file explorer, and surprisingly it worked. It actually ran other programs, not just subroutines created by me.
It's pretty close to being done, however there are still some things to be done. First, I have to make it so that it can GCOPY windows to other locations so that apps can't decide where they (and only they) can move. Then, I have to make the "Zerminal" (pardon the random Z names, but it's similar to what Apple does with the "I" everything), though that shouldn't be too hard for what I plan to do with the terminal. I also need to make it possible to run the program compiler (from BASIC -> ZBASIC, just changing some graphic things and separating code into runnable segments) from within the program. If you'd like to recommend some ideas, I'd gladly accept them. Also be aware that ZOS will not run every program. Here's some examples of programs that cannot (or shouldn't) be run yet:
- Programs containing hefty loops
- Programs with indentation (it's a really bad compiler)
- Programs using sprites (it would be removed almost instantly)
- Programs that are hefty enough on their own
- Programs using WAIT or Vsync, though if it's just a WAIT or VSYNC 1 then it can be removed as ZOS already regulates programs to a max of 60 FPS
- Programs using GOSUB and/or GOTO
Yes, don't worry, it's EXTREMELY close to being finished. Sorry for the laziness lol.