Author Topic: Walnut Shell  (Read 13603 times)

0 Members and 1 Guest are viewing this topic.

Offline z80man

  • Casio Traitor
  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Walnut Shell
« on: July 03, 2011, 02:32:53 pm »
Walnut Shell
For the Casio Prizm
Introducing the start of the Walnut shell for the Casio Prizm, fx-cg10/20. Walnut is primarily a shell designed to run executable programs written in assembly, C, C++, and any other compatible compiled language. The goal is to make life easier for both the developer and the user.

For the developer:
No longer will you have to deal with the complicated g3a app format which not only limits your application's run time but also imposes heavy security and an over sized header. Instead you now have the gxp format which is far more flexible and smaller. The layout of the header is based off the packet design by Qwerty.55 which allows for changes to be easily made in the future along with allowing the developer to include only what is relevant to their program. The gxp format includes many optional fields that affect the way the program is ran such as physical/virtual execution and flash/ram execution. You can even set the program's origin and the designated cpu, memory, and peripheral clock before running too. With Walnut being heavily based off of popular computer OS's such as Windows, Linux, and Macintosh, commands in the shell are based off a terminal/command line. This terminal is normally invisible for the users sake but allows for many options on data being passed to a program. To allow the efficient development of programs a Walnut SDK is currently being built. It will be paired with the gcc compiler/assembler and will include a program to convert binary files to the gxp format. Later on this will become a gui based program that will easily manage everything from compilation to distribution. To make programs more efficient Walnut will heavily manage the virtual memory for the program. What this will mean is that because of the virtual layout, programs' executable data will lie on a continuous space while the data has its own space which will make the operand and instruction cache faster. Lastly Walnut provides a large number of built in routines that will cover everything from flash to usb and from sound to data compression. There is even a simple syntax for including and calling external libraries which will have the extension of gll.

For the user:
Although Walnut is primarily designed for running programs it also excels at opening many files too. An example is that whenever a picture file is selected, it is automatically sent to the default picture viewer/editor. Or by right clicking you will get a list of programs registered to open that file. If you're used to any major computer platform you will already know how to navigate Walnut and will find that many operations are the same. Selecting files and folders can be done from a simplistic terminal or from a customizable gui. Loading new programs couldn't be easier due to Casio's built in FAT and usb support. Walnut makes use of the FAT format allowing programs and files to be easily stored in folders. Because the Prizm is a calculator and is limited on memory, compression is very important. Over time Walnut will support a variety of mainstream compression techniques to allow the user to keep all their favorite programs at once. Lastly Walnut will help manage organization by storing the proper files in their proper folders. An example would be that a new bmp image would be automatically sent to the pictures folder.
« Last Edit: July 03, 2011, 02:33:28 pm by z80man »

List of stuff I need to do before September:
1. Finish the Emulator of the Casio Prizm (in active development)
2. Finish the the SH3 asm IDE/assembler/linker program (in active development)
3. Create a partial Java virtual machine  for the Prizm (not started)
4. Create Axe for the Prizm with an Axe legacy mode (in planning phase)
5. Develop a large set of C and asm libraries for the Prizm (some progress)
6. Create an emulator of the 83+ for the Prizm (not started)
7. Create a well polished game that showcases the ability of the Casio Prizm (not started)

Offline shmibs

  • しらす丼
  • Administrator
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2132
  • Rating: +281/-3
  • try to be ok, ok?
    • View Profile
    • shmibbles.me
Re: Walnut Shell
« Reply #1 on: July 03, 2011, 02:37:38 pm »
=DDD
so in what state of completion is this at the moment?

Offline z80man

  • Casio Traitor
  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Walnut Shell
« Reply #2 on: July 03, 2011, 02:44:12 pm »
Currently I'm working on the file/folder management and the gui. I hope to have a demo of Walnut loading and running a test program soon.

List of stuff I need to do before September:
1. Finish the Emulator of the Casio Prizm (in active development)
2. Finish the the SH3 asm IDE/assembler/linker program (in active development)
3. Create a partial Java virtual machine  for the Prizm (not started)
4. Create Axe for the Prizm with an Axe legacy mode (in planning phase)
5. Develop a large set of C and asm libraries for the Prizm (some progress)
6. Create an emulator of the 83+ for the Prizm (not started)
7. Create a well polished game that showcases the ability of the Casio Prizm (not started)

Ashbad

  • Guest
Re: Walnut Shell
« Reply #3 on: July 03, 2011, 02:44:25 pm »
This is awesome!  :D  this will make C coder a lot more fun for me, and probably a lot easier as well.  What type of routines does it include at the moment?

Offline z80man

  • Casio Traitor
  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Walnut Shell
« Reply #4 on: July 03, 2011, 02:46:33 pm »
This is awesome!  :D  this will make C coder a lot more fun for me, and probably a lot easier as well.  What type of routines does it include at the moment?
Right now most of the routines are for drawing stuff such as sprites, lines, circles. I will be focusing more on the libraries once I get the execution part perfect.

List of stuff I need to do before September:
1. Finish the Emulator of the Casio Prizm (in active development)
2. Finish the the SH3 asm IDE/assembler/linker program (in active development)
3. Create a partial Java virtual machine  for the Prizm (not started)
4. Create Axe for the Prizm with an Axe legacy mode (in planning phase)
5. Develop a large set of C and asm libraries for the Prizm (some progress)
6. Create an emulator of the 83+ for the Prizm (not started)
7. Create a well polished game that showcases the ability of the Casio Prizm (not started)

Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: Walnut Shell
« Reply #5 on: July 03, 2011, 03:06:41 pm »
Nice to see this progressing. :)
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline calcdude84se

  • Needs Motivation
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2272
  • Rating: +78/-13
  • Wondering where their free time went...
    • View Profile
Re: Walnut Shell
« Reply #6 on: July 08, 2011, 05:08:11 pm »
5-day bump. (And my first time seeing the topic.)
Sounds great. Not having to make an application every time seems like it'll be incredibly useful.
I don't have a PRIZM myself, but good luck! Others will surely find this most useful. :)
"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 TIfanx1999

  • ಠ_ಠ ( ͡° ͜ʖ ͡°)
  • CoT Emeritus
  • LV13 Extreme Addict (Next: 9001)
  • *
  • Posts: 6173
  • Rating: +191/-9
    • View Profile
Re: Walnut Shell
« Reply #7 on: July 09, 2011, 08:18:19 am »
Sounds awesome, can't wait to see more! =)

Offline Hot_Dog

  • CoT Emeritus
  • LV12 Extreme Poster (Next: 5000)
  • *
  • Posts: 3006
  • Rating: +445/-10
    • View Profile
Re: Walnut Shell
« Reply #8 on: August 04, 2011, 02:57:10 pm »
This is going to be awesome, z80man!  Thanks for putting this together!

Offline z80man

  • Casio Traitor
  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Walnut Shell
« Reply #9 on: August 21, 2011, 04:40:37 am »
---See Poll Above---
--Expires On The 1st of September--

When working on the location where ram would be located it came upon me that there is the possibility that virtual memory could be used instead of physical memory which apps currently use. When apps are developed both options will be available but one will need to be the default choice. Advantages of using virtual memory is that the physical location can be changed in runtime so old apps will be more compatible with newer shells. It is also worth noting that there is no speed difference between either mode. Hard coded applications though may prefer to use physical memory for ram as functions can be copied there in order to have direct access to the hardware. But in these cases it may be easier for the developer to select that option when building

List of stuff I need to do before September:
1. Finish the Emulator of the Casio Prizm (in active development)
2. Finish the the SH3 asm IDE/assembler/linker program (in active development)
3. Create a partial Java virtual machine  for the Prizm (not started)
4. Create Axe for the Prizm with an Axe legacy mode (in planning phase)
5. Develop a large set of C and asm libraries for the Prizm (some progress)
6. Create an emulator of the 83+ for the Prizm (not started)
7. Create a well polished game that showcases the ability of the Casio Prizm (not started)

Offline z80man

  • Casio Traitor
  • Project Author
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Walnut Shell
« Reply #10 on: August 31, 2011, 02:09:28 am »
Now that this poll is just about expired it appears that ram data will be by default in virtual memory. This will hopefully allow in far future versions of Walnut for specially made programs to take advantage of multitasking capabilities. Simple programs that could benefit from multitasking that I've thought of are text editors, debuggers, command prompt, calculators, sprite editors, screen recorders, and most notably quadratic solvers :P

List of stuff I need to do before September:
1. Finish the Emulator of the Casio Prizm (in active development)
2. Finish the the SH3 asm IDE/assembler/linker program (in active development)
3. Create a partial Java virtual machine  for the Prizm (not started)
4. Create Axe for the Prizm with an Axe legacy mode (in planning phase)
5. Develop a large set of C and asm libraries for the Prizm (some progress)
6. Create an emulator of the 83+ for the Prizm (not started)
7. Create a well polished game that showcases the ability of the Casio Prizm (not started)

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: Walnut Shell
« Reply #11 on: August 31, 2011, 03:15:13 pm »
This shell will definitively be a must. I'M glad you started making one z80man :)

Offline AngelFish

  • Is this my custom title?
  • Administrator
  • LV12 Extreme Poster (Next: 5000)
  • ************
  • Posts: 3242
  • Rating: +270/-27
  • I'm a Fishbot
    • View Profile
Re: Walnut Shell
« Reply #12 on: August 31, 2011, 03:43:40 pm »
As much as I prefer physical memory, most programmers will be using C, which is much better adapted to virtual memory than physical memory.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ