Author Topic: Casio Prizm documentation  (Read 217388 times)

0 Members and 3 Guests are viewing this topic.

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Casio Prizm documentation
« Reply #135 on: December 30, 2010, 08:03:06 pm »
Now correct me if i'm wrong but if we swap two bytes, the checksum should be the same and the program should run right?  However it would fail if one of the bytes was the checksum right?  Maybe this could be used to find out where the checksum is if we don't know it already?
Yes if we swap two bytes programs still run. Also at address 0x0020 there is a checksum of the program, but it excludes a few bytes which I have not found yet. There is also a checksum of just the first 32 bytes of the header, but i hav not found that either. So far though most of the header is cracked. Currently I'm writing documentation file for the entire app header which is $7000 bytes long. If we're lucky we could get a test NOP app running before the year ends.
That's awesome, really. I wish I had a prizm, because I would write the program to test the checksum for you, and have it automatically try and resent it. It shouldn't be too hard.

I'm eager to try and break the usb protocol. If anyone wants to give me a data logging for usb, and the file that they sent/received, I would be very happy, and would try and analyze it. (Simple USB Logger file is a free logger, or of you can log the bytes to a text file, that would be fine, too.)
Doesn't the Prizm just pretend to be a mass storage device?
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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 #136 on: December 30, 2010, 08:27:51 pm »
Well, it's so good at pretending that it will even give up its internal data like a USB device  ;D
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Casio Prizm documentation
« Reply #137 on: December 30, 2010, 08:29:02 pm »
Well, it's so good at pretending that it will even give up its internal data like a USB device  ;D
Sauce?
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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 #138 on: December 30, 2010, 08:35:40 pm »
 Sauce? ???
« Last Edit: December 30, 2010, 08:35:53 pm by Qwerty.55 »
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline calc84maniac

  • eZ80 Guru
  • Coder Of Tomorrow
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2912
  • Rating: +471/-17
    • View Profile
    • TI-Boy CE
Re: Casio Prizm documentation
« Reply #139 on: December 30, 2010, 08:37:28 pm »
Sauce? ???
Meaning, source. Where did you get that info? (I assume you meant accessing data in the Prizm that's not in the normal filesystem)
"Most people ask, 'What does a thing do?' Hackers ask, 'What can I make it do?'" - Pablos Holman

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 #140 on: December 30, 2010, 08:39:26 pm »
Oh, I figured out how to read the internal binaries of USB devices with certain software and FinaleTI used it to get a memory dump off of the Prizm.
« Last Edit: December 30, 2010, 08:39:57 pm by Qwerty.55 »
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline jnesselr

  • King Graphmastur
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2270
  • Rating: +81/-20
  • TAO == epic
    • View Profile
Re: Casio Prizm documentation
« Reply #141 on: December 30, 2010, 09:43:57 pm »
Oh, then can you check if it's got any other configurations? or anything? A full readout of the descriptors and such. If it's only the mass storage class, and nothing else, then that's fine.

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 #142 on: December 30, 2010, 10:31:03 pm »
Would you like the file? It's some 80 MB of hex codes  :P
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline jnesselr

  • King Graphmastur
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2270
  • Rating: +81/-20
  • TAO == epic
    • View Profile
Re: Casio Prizm documentation
« Reply #143 on: December 30, 2010, 10:43:39 pm »
I already have the disassembly, think.  I don't understand it all that much.  I was given a .7z and it gave me an .rtf file. It's got hex on the left and a bunch of characters on the right.

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 #144 on: December 30, 2010, 10:47:09 pm »
Those characters are the ASCII characters represented by the hex. For example, if the byte was 0x41h, then you would see A. If it was 0x42h, then you would see B and so on. The hex characters are just the memory addresses represented by the first character on each line. The offset at the top describes how much you should add to the those base hex numbers to get the memory location of the character in that column.
« Last Edit: December 30, 2010, 10:48:40 pm by Qwerty.55 »
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline jnesselr

  • King Graphmastur
  • LV11 Super Veteran (Next: 3000)
  • ***********
  • Posts: 2270
  • Rating: +81/-20
  • TAO == epic
    • View Profile
Re: Casio Prizm documentation
« Reply #145 on: December 30, 2010, 11:04:38 pm »
so wait, getting this is normal? Okay, I'm writing a converter for that later. ;-)
Code: [Select]
Offset(h)
00000000  ë<.MSDOS5.0.....
00000010  ...v€ø..........
00000020  ....€.)....NO NA
00000030  ME    FAT16   ..
00000040  ................
00000050  ................

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 #146 on: December 30, 2010, 11:06:27 pm »
Yep. That's exactly what you should be seeing. Once you erase the address markers and run it through hex editor, you can see the internal hex. It also allows you to disassemble the memory.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline z80man

  • Casio Traitor
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Casio Prizm documentation
« Reply #147 on: December 31, 2010, 12:03:18 am »
Oh, I figured out how to read the internal binaries of USB devices with certain software and FinaleTI used it to get a memory dump off of the Prizm.
What certain software is this for I've been dying to get a memory dump off my Prizm

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 #148 on: December 31, 2010, 12:04:46 am »
HxD

The only problem is that you have to somehow remove the addresses. A disk copier would probably work better, but I can't recommend any.
∂²Ψ    -(2m(V(x)-E)Ψ
---  = -------------
∂x²        ℏ²Ψ

Offline z80man

  • Casio Traitor
  • LV8 Addict (Next: 1000)
  • ********
  • Posts: 977
  • Rating: +85/-3
    • View Profile
Re: Casio Prizm documentation
« Reply #149 on: December 31, 2010, 12:10:52 am »
Oh I've been using Hxd. I just forget opening up a disk was a feature I could use.
btw there are only 4 more bytes left in the 28,672 app header that I still need to solve. Latest find is what bytes are not counted in the checksum. First off is the 32 bit checksum at 20h and the other is a copy of that checksum at the very end of the code.
« Last Edit: December 31, 2010, 01:20:17 am 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)