Author Topic: Casio Prizm documentation  (Read 235791 times)

0 Members and 3 Guests are viewing this topic.

Offline z80man

  • Casio Traitor
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Casio Prizm documentation
« Reply #255 on: January 20, 2011, 12:34:07 am »
I'm guessing that booting Wabbit from the Prizm is quite slow. I'm not sure if the Prizm has enough memory for this, but imagine coding a very simple PC OS and placing that on the Prizm and then set your computer to boot from the Prizm. That would be awesome.  ;D

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: Casio Prizm documentation
« Reply #256 on: January 20, 2011, 12:39:42 am »
Booting it seemed not too slow. It usually took between 2.5 and 3.5 seconds. It's sending it to the calc that took a long while. I sent a few other files too, for a total of 5 ish MB and it took a few minutes to transfer.

Offline z80man

  • Casio Traitor
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Casio Prizm documentation
« Reply #257 on: January 20, 2011, 12:42:46 am »
I'm hoping though that later versions include an SD card slot as that would be faster and have more memory.

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: Casio Prizm documentation
« Reply #258 on: January 20, 2011, 12:49:26 am »
Yeah that would be cool. However, didn't the 9860SD only come out in Australia? I remember one model came out there only and if I remember it was the SD one. But yeah it would be funny if people used stuff like Firefox Portable on that.

Offline critor

  • Editor
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2079
  • Rating: +439/-13
    • View Profile
    • TI-Planet
Re: Casio Prizm documentation
« Reply #259 on: January 20, 2011, 06:05:04 am »
Yeah that would be cool. However, didn't the 9860SD only come out in Australia? I remember one model came out there only and if I remember it was the SD one. But yeah it would be funny if people used stuff like Firefox Portable on that.

The fx-9860G AU which only came out in Australia has a fx-9860G hardware (no SD card) but an OS which only uses 800Kb of storage memory instead of 1.5Mb.

The fx-9860G AU+ is the same thing with a fx-9860Gii hardware (no SD card).
TI-Planet co-admin.

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: Casio Prizm documentation
« Reply #260 on: January 20, 2011, 12:18:37 pm »
Well, DJ kind of ninja'd my Wabbit discovery, which I also coincidentally made last night  :P

On the other hand, I cracked the .g3m program format as well, so I'll stick with that. It's a very simple format, with three sections of security bytes that were slightly annoying to figure out. Here are the rules governing each of the sections. Numbers of the form 0xNNh refer to addresses offset from the starting address of the file while $NN refers to hex numbers.

0x14h - 0x13h = $48
0x1C - 0x1Dh = $1D
0x14h - 0x1Dh = $C3
0x13h - 0x1Ch = $5E
0x0Eh + 0x48h = $72
$38 - 0x48h = 0x1Dh


0x48h = (Length of the rest of the data) - $3.
There are always 13 00 bytes following 0x48h.

Algorithm for computing the security sequences:

$38 - 0x48h -> 0x1Dh
$72 - 0x48h -> 0x0Eh
0x1Dh + $C3 -> 0x14h
0x14h - $48 -> 0x13h
0x13h - $5E -> 0x1Ch

0x00h through 0x0Dh:

AA AC BD AF 90 88 9A 8D 8A FF EF FF EF FF

0x0Fh through 0x12h:

FF FF FF

0x15h through 0x1Bh:

01 00 00 00 00 00 00

0x1Eh through 0x3Bh:

FF FE 50 52 4F 47 52 41 4D 00 00 00 00 00 00 00 00 00 00 00 00 01 73 79 73 74 65 6D 00 00

0x3Ch through 0x43h:

8 byte ASCII code for file name.

0x44h through 0x47h:

01 00 00 00

0x49h through 0x55h:

00 00 00 00 00 00 00 00 00 00 00 00 00

EDIT: I also wrote a program by hand to test it. Thus, I introduce the new Prizm programming language: Hex BASIC. All the complexity of Hex, all the power of BASIC  :P
« Last Edit: January 20, 2011, 01:16:36 pm by Qwerty.55 »
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline JosJuice

  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1344
  • Rating: +66/-14
    • View Profile
Re: Casio Prizm documentation
« Reply #261 on: January 20, 2011, 03:04:05 pm »
Great! Soon none of the file formats will be able to hide from us.

Actually, I don't fully understand what you just wrote... :P I guess it might take a little time for me. And as always, it would be good if this documentation is added to the wiki.

Offline z80man

  • Casio Traitor
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Casio Prizm documentation
« Reply #262 on: January 20, 2011, 04:47:49 pm »
Great, but doesn't the OS convert g3m to txt and txt to g3m for us.

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: Casio Prizm documentation
« Reply #263 on: January 20, 2011, 06:01:53 pm »
This is actually what I plan on using to get small physical dumps of the OS. We would have to create the files on-calc and knowing the file format is pretty important for that. Plus, it'd help if anyone ever decided to make something like Axe, where you have to read the files.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

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: Casio Prizm documentation
« Reply #264 on: January 21, 2011, 01:44:08 am »
Sorry for the double post, but I think this update is worthy enough:
executable assembly code can run without crashing! I modified the conversion app to accept some looping code and the calc finally doesn't crash. Everything appears to still be working, so my calc isn't bricked.
* Qwerty.55 is happy

I just have to figure out I/O now :P
* Qwerty.55 thanks Z80 for clarifying how to defeat the 32 bit checksum.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline JosJuice

  • LV10 31337 u53r (Next: 2000)
  • **********
  • Posts: 1344
  • Rating: +66/-14
    • View Profile
Re: Casio Prizm documentation
« Reply #265 on: January 21, 2011, 01:46:07 am »
executable assembly code can run without crashing! I modified the conversion app to accept some looping code and the calc finally doesn't crash. Everything appears to still be working, so my calc isn't bricked.
* Qwerty.55 is happy
:w00t:
* Qwerty.55 thanks Z80 for clarifying how to defeat the 32 bit checksum.
:w00t::w00t::w00t:

Maybe this checksum stuff should be added to the wiki? ;D (yeah, I know I always talk about the wiki)
« Last Edit: January 21, 2011, 01:46:20 am by JosJuice »

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: Casio Prizm documentation
« Reply #266 on: January 21, 2011, 01:53:39 am »
I'd add a lot of stuff to the wiki if I access to the Internet when I have free time (IE at home), but ironically it's my busy day schedule that prevents me from getting it installed...
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

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: Casio Prizm documentation
« Reply #267 on: January 21, 2011, 02:05:43 am »
Yeah that would be cool. However, didn't the 9860SD only come out in Australia? I remember one model came out there only and if I remember it was the SD one. But yeah it would be funny if people used stuff like Firefox Portable on that.

The fx-9860G AU which only came out in Australia has a fx-9860G hardware (no SD card) but an OS which only uses 800Kb of storage memory instead of 1.5Mb.

The fx-9860G AU+ is the same thing with a fx-9860Gii hardware (no SD card).
Oh I see. Wow, so they actually got fewer memory in Australia. X.x

Well, DJ kind of ninja'd my Wabbit discovery, which I also coincidentally made last night  :P

On the other hand, I cracked the .g3m program format as well, so I'll stick with that. It's a very simple format, with three sections of security bytes that were slightly annoying to figure out. Here are the rules governing each of the sections. Numbers of the form 0xNNh refer to addresses offset from the starting address of the file while $NN refers to hex numbers.

0x14h - 0x13h = $48
0x1C - 0x1Dh = $1D
0x14h - 0x1Dh = $C3
0x13h - 0x1Ch = $5E
0x0Eh + 0x48h = $72
$38 - 0x48h = 0x1Dh


0x48h = (Length of the rest of the data) - $3.
There are always 13 00 bytes following 0x48h.

Algorithm for computing the security sequences:

$38 - 0x48h -> 0x1Dh
$72 - 0x48h -> 0x0Eh
0x1Dh + $C3 -> 0x14h
0x14h - $48 -> 0x13h
0x13h - $5E -> 0x1Ch

0x00h through 0x0Dh:

AA AC BD AF 90 88 9A 8D 8A FF EF FF EF FF

0x0Fh through 0x12h:

FF FF FF

0x15h through 0x1Bh:

01 00 00 00 00 00 00

0x1Eh through 0x3Bh:

FF FE 50 52 4F 47 52 41 4D 00 00 00 00 00 00 00 00 00 00 00 00 01 73 79 73 74 65 6D 00 00

0x3Ch through 0x43h:

8 byte ASCII code for file name.

0x44h through 0x47h:

01 00 00 00

0x49h through 0x55h:

00 00 00 00 00 00 00 00 00 00 00 00 00

EDIT: I also wrote a program by hand to test it. Thus, I introduce the new Prizm programming language: Hex BASIC. All the complexity of Hex, all the power of BASIC  :P
Nice, glad to see more stuff being discovered or documented! I seriously hope about updates regarding being able to run  machine code, though, with some example programs, even if just small stuff like lines moving around the screen.

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: Casio Prizm documentation
« Reply #268 on: January 21, 2011, 03:25:53 am »
You'll have to wait for z80's work before anyone can write screen stuff. Speaking of Z80, I came upon some evidence that the OS naturally runs in 58 MHz mode. It's either that or the program crashed before writing to FRQCR or the OS switches to normal speed every time it exits the application, both of which I think are unlikely.

Yes, I was trying to overclock my Prizm :P
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline fxdev

  • LV4 Regular (Next: 200)
  • ****
  • Posts: 177
  • Rating: +34/-6
    • View Profile
Re: Casio Prizm documentation
« Reply #269 on: January 21, 2011, 07:45:19 am »
Quote
Oh I see. Wow, so they actually got fewer memory in Australia. X.x
This is only true for the fx-9860G AU - not the fx-9860G AU Plus.
However, by installing the fx-9860GII OS on the former you get 1.5m of flash, too! ;D