Post by andrea on Dec 7, 2010 16:37:48 GMT -5
Ok, I'll make it short...
I've done this "thingy" OS for my AtGames-Blaze-Gopher portable Genesis FireCore with SD card support.
Real Story: One day I've found myself tech-less...or more exactly phone-less. The battery was gone...so I was practically without a Notepad, a calculator, a painty-app, a game (well not exactly as you'll read later) and a music (more-or-less).
But wait...what's in my pocket: the Blaze-Gopher-FireCore etc...!!!
Ok...it was (and it is) full of games...but as a portable piece of tech...we don't have so useful software to mount on it.
The idea of creating a pseudo-OS for my portable Genesis started in that precisely moment.
Right the night before I downloaded the BasiEgaXorz...and dusting off my BASIC's skills I did a simple hello world...or something like that...
So I had the tool, the idea and the support...let's go!
...or let's "went"...
The GenOS rom attached to this post (complete with it's source) is a mere (and early) example of how far the BasiEgaXorz could bring the Genesis...and how far it should go.
Call it a "proof-of-concept" (giving that now every crappy software is called proof-of-concept )...but it should be the spark of a "REAL" OS for the Genesis.
I'm aware of the "memorize" limitation ...infact all we do in GenOS is lost as we reset the system...but I've thought it since the beginning as a OneTimePad: eg.
1. I've the urgent need of write something to report it immediately (or since the Gopher's battery last)
2. I've to calculate something (here we don't need long time memory)
3. I've to paint something to kill some time or to report a scratch (same case of point 1)
4. I want to kill some time with a "as-simple-as-addicting" game (in this case we're talking of an improved version of shnakeee -keep reading for further details)
5. I want to tune my guitar or just to make some 3-channels PSG noise
Other features may come...it's up to you!
Technically speaking, what we have in GenOS is a cursor managed interface with icon and interactive button areas.
All the instructions of how to manage the whole thing are embedded in the rom...just read before select!
The software counterpart has been yet hinted here and there in this post...but, for who was inattentive, here the complete list:
1.Calc
A simple calculator with no floating point support (for the moment)
2.Note
A pretty complete and fast notepad (456 chars limit...in future multi-page support will be granted )
3.Paint
Practically an adapted version of the example paint improved replacing the waitpadup with a sleep 10
4.Game
A more serious (and redistributable) version of Shnakeee (called simply Snake).
Some improvement added:
-the palette updating issue has been fixed (when we were back from a "game over" the palette was changed)
-more clear colors used
-funny face for the snake freezed status (not anymore blood)
-new fruit to eat (man...a snake that eat a banana?...replaced with a juicy apple)
-wrong fruit collision detection fixed (sometime it was very frustrating)
5.Music
Simple PSG 3-channel manipulation (with a useful "note-PSG value" table)
There are also some neat workaround to some common BEX's limits, for example the calculator has a workaround for the long number managing and displaying (look at the single value conversion for the val command). The division process also was a challenge...not mentioning the negative result solution (a popping minus sign not included with a BEX default result).
If you examine carefully the source you'll also notice that all applications (except paint) don't refresh the ram once they're closed. This is done to keep memorized their content (calc values and result, notepad text, snake highscore, music PSG Values).
That's all folks!
I've done this "thingy" OS for my AtGames-Blaze-Gopher portable Genesis FireCore with SD card support.
Real Story: One day I've found myself tech-less...or more exactly phone-less. The battery was gone...so I was practically without a Notepad, a calculator, a painty-app, a game (well not exactly as you'll read later) and a music (more-or-less).
But wait...what's in my pocket: the Blaze-Gopher-FireCore etc...!!!
Ok...it was (and it is) full of games...but as a portable piece of tech...we don't have so useful software to mount on it.
The idea of creating a pseudo-OS for my portable Genesis started in that precisely moment.
Right the night before I downloaded the BasiEgaXorz...and dusting off my BASIC's skills I did a simple hello world...or something like that...
So I had the tool, the idea and the support...let's go!
...or let's "went"...
The GenOS rom attached to this post (complete with it's source) is a mere (and early) example of how far the BasiEgaXorz could bring the Genesis...and how far it should go.
Call it a "proof-of-concept" (giving that now every crappy software is called proof-of-concept )...but it should be the spark of a "REAL" OS for the Genesis.
I'm aware of the "memorize" limitation ...infact all we do in GenOS is lost as we reset the system...but I've thought it since the beginning as a OneTimePad: eg.
1. I've the urgent need of write something to report it immediately (or since the Gopher's battery last)
2. I've to calculate something (here we don't need long time memory)
3. I've to paint something to kill some time or to report a scratch (same case of point 1)
4. I want to kill some time with a "as-simple-as-addicting" game (in this case we're talking of an improved version of shnakeee -keep reading for further details)
5. I want to tune my guitar or just to make some 3-channels PSG noise
Other features may come...it's up to you!
Technically speaking, what we have in GenOS is a cursor managed interface with icon and interactive button areas.
All the instructions of how to manage the whole thing are embedded in the rom...just read before select!
The software counterpart has been yet hinted here and there in this post...but, for who was inattentive, here the complete list:
1.Calc
A simple calculator with no floating point support (for the moment)
2.Note
A pretty complete and fast notepad (456 chars limit...in future multi-page support will be granted )
3.Paint
Practically an adapted version of the example paint improved replacing the waitpadup with a sleep 10
4.Game
A more serious (and redistributable) version of Shnakeee (called simply Snake).
Some improvement added:
-the palette updating issue has been fixed (when we were back from a "game over" the palette was changed)
-more clear colors used
-funny face for the snake freezed status (not anymore blood)
-new fruit to eat (man...a snake that eat a banana?...replaced with a juicy apple)
-wrong fruit collision detection fixed (sometime it was very frustrating)
5.Music
Simple PSG 3-channel manipulation (with a useful "note-PSG value" table)
There are also some neat workaround to some common BEX's limits, for example the calculator has a workaround for the long number managing and displaying (look at the single value conversion for the val command). The division process also was a challenge...not mentioning the negative result solution (a popping minus sign not included with a BEX default result).
If you examine carefully the source you'll also notice that all applications (except paint) don't refresh the ram once they're closed. This is done to keep memorized their content (calc values and result, notepad text, snake highscore, music PSG Values).
That's all folks!