LoginLogin

ZOS

Root / Submissions / [.]

MariominerCreated:
Download:R25VX3CJ
Version:1.1Size:

Say 'hello' to ZOS!

Are you tired of finding Mock OS's that are really just multitools? Do you want an OS that utilizes state-of-the-art programming to run multiple programs smoothly? Do you want an OS that YOU could possibly write code for - (comparatively) easily? Well than ZOS is for you! It comes from my best PTC project that never really lived up to it's potential because of the technological limitations, most of which are no more! ZOS can compile simple BASIC programs and confine them to a window, using a system that allows the OS to be the priority, but can still run programs as fast as is allowed! One of the limitations I stated in the forum post - that all programs were limited to 60 fps max speed - is no longer a problem, thanks to some new code! Though you may not be in to mock OS's, ZOS shows what is possible, and is pretty fun to play around with. Though it does have a couple of glitches...

Instructions:

Most instructions can be seen by loading the MANUAL into a program slot and reading it. To change a screensaver, just delete GRP:SSAVER and then copy your Screensaver into the file with the name GRP:SSAVER.

Notes:

I was kind of lazy and then rushed it, so if there are more bugs please tell me. Version 1.1 was just a bug fix that should fix the most experienced bug. It's also the only one that I've been able to replicate. Hopefully this helps for those who haven't been able to use ZOS for a while KNOWN BUGS: 1. When closing a window, it closes the first one opened, though erases the one that you closed 2. It may randomly start playing music, but for what reason I have no clue 3. If you bring a window too high on the screen, it will be pushed into the top, and this will be copied down when you move it back

This is very neat!

Warning: I just was told that this does not run too smoothly on the o3DS. I think it still runs, but I have not an o3DS to confirm any of this. But hey, this is now reason enough to buy a n3DS, right? Haha

Another bug btw, after you make an account and you start it up again, it gives off a syntax error when trying to boot ZOS

Replying to:answer
Another bug btw, after you make an account and you start it up again, it gives off a syntax error when trying to boot ZOS
Oh, I think I may know the cause of this. If you go into the USERS file and delete the last line, it should work. This is a temporary solution, and hopefully will be fixed soon. If this doesn't work, then I have no idea what's happening, and will try to find out. Thanks for the report though :)

Every time you log in or make an account it gives you a illegal funtion call in 0:163

Dat cursor bro :O

Replying to:answer
Dat cursor bro :O
I took way longer on perfecting the cursor than I should have lol. I used multiple different examples, examined them, and created the perfect result. What you see, sir, is PERFECTION >:-D (lol)

How exactly did you implement multitasking?

Replying to:answer
Dat cursor bro :O
I meant teh art, c'est magnifique

Replying to:MasterR3C0RD
How exactly did you implement multitasking?
Here's how it works, this is the main reason I made the entire thing: So first, it starts out with 2 programs, lets say that both of them are
WHILE TRUE
GPSET RND(400),RND(240),RGB(25,50,0)
WEND
Then it breaks the programs into multiple different labels
@CODE_1
'MARKER
RETURN
@CODE_2
GPSET RND(400),RND(240),RGB(25,50,0)
RETURN
@CODE_3
GO_L 1 'This command makes the reader go back to @CODE_1
RETURN
This is then saved as a file. When the reader then goes to run the programs, it checks if it is loaded by checking if it's labels exist. If not, it loads the program into the slot (by putting it's text into the file so it doesn't have to load it again). Then it will run the code in however many labels is denoted by the ARAM array. This will look something like:
FOR I=0 TO WINDOWS-1
FOR J=0 TO ARAM[I]-1
INC WINDOWC[I] 'FINDS NEXT LABEL
GOSUB "1:@"+WINDOWCN$[I]+"_CODE_"+STR$(WINDOWC[I])
NEXT
NEXT
So it uses WINDOWCN$ (the name of the code label) and WINDOWC (the array telling the OS what label to run in the program) to find the label to run for each program currently being run. Did I explain it well, or do you have questions still?

Replying to:answer
Dat cursor bro :O
I was talking about the art too. It's UTTER PERFECTION (as both the controls and the art are now PERFECTION) lol

Replying to:MasterR3C0RD
How exactly did you implement multitasking?
What would happen if a program used PRINT? Wouldn't it glitch outside the window? EDIT: Wouldn't it be the same situation for your other example too?

Replying to:MasterR3C0RD
How exactly did you implement multitasking?
My compiler that splits it into separate labels is more complex than what I showed. What happens is that it sees GPSET and turns it into DRAW_WINDOW, a different command that uses the data available for the window to draw only in that window in the proportions of that window. However, PRINT does not currently work, but GPUTCHR does (though you need to use every argument or it won't go too well). It does this for multiple drawing commands.

You need to connect the previous frame's touch x and touch y to the current touch x and touch y with gline. (in zsketch)

"ZOS" is the program I want to run, right? Also how in the world do I log in?

Replying to:CodeTrooper
"ZOS" is the program I want to run, right? Also how in the world do I log in?
There are some instructions in the manual, but I'll explain more. Due to some reports on bugs when making new profiles, just use mine (Username: Zee Password: ZOS). If you want to make a new one and potentially break the whole system (I haven't personally ran into these problems, but they still probably exist), you click the +, enter your username and password, then click the right-sided plus.

Replying to:CodeTrooper
"ZOS" is the program I want to run, right? Also how in the world do I log in?
Oh, ok. Sorry, I did not see there was a manual.

Hey, I use a New Nintendo 3DS. The system doesn't really work and it crashes often. Mostly when loading programs. This program is very buggy. Any help?

Really cool! I have a suggestion: In Zsketch, use GLINE instead of GPSET(or whatever you are doing to get little dots). So your code would look something like this:
WHILE TRUE
 CLS
 OLDX=X
 OLDY=Y
 GLINE OLDX,OLDY,X,Y
 VSYNC 1
WEND

Replying to:Guzzler
Really cool! I have a suggestion: In Zsketch, use GLINE instead of GPSET(or whatever you are doing to get little dots). So your code would look something like this:
WHILE TRUE
 CLS
 OLDX=X
 OLDY=Y
 GLINE OLDX,OLDY,X,Y
 VSYNC 1
WEND
Don't forget about extra code to not connect everything