dadisigursveinn / 400plus

Automatically exported from code.google.com/p/400plus
0 stars 0 forks source link

Implement opendir(), readdir() and closedir() #274

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
I'm making a file explorer for 400plus, and I wonder if someone could simply 
implement these 3 functions into 400plus.

Original issue reported on code.google.com by tiboun...@gmail.com on 12 Aug 2012 at 4:49

GoogleCodeExporter commented 9 years ago
I do not think "simply" is the right word here ;-)

Camera can browse the images in the card, even if they are in different 
folders; so probably those functions are already implemented. I guess finding 
those functions in the firmware will be easier than implementing them from 
scratch.

Original comment by eduardo....@gmail.com on 12 Aug 2012 at 5:14

GoogleCodeExporter commented 9 years ago
implementing the routines is not the right path to take...
as Edu said, these routines are already implement (in VxWorks), just waiting to 
be found (if not already).

funclist.S:DEF(opendir, 0xFFB51644)

as it seems the first one is already found, it just needs some more reverse 
engineering work to find the others ...

i may work on this in the next few days (if i get some time)

Original comment by fired...@gmail.com on 12 Aug 2012 at 11:07

GoogleCodeExporter commented 9 years ago
What about DEF(FC_OpenDir, 0xFFAAC470) and DEF(FC_CloseDir, 0xFFAAC470) ?

Thank you two for your replies :)

Original comment by tiboun...@gmail.com on 12 Aug 2012 at 11:25

GoogleCodeExporter commented 9 years ago
Yes, they should be usable too... but they will have a slightly different 
parameters I guess...

Original comment by fired...@gmail.com on 13 Aug 2012 at 7:09

GoogleCodeExporter commented 9 years ago
Does anyone knows what kind of informations FC_GetDirObject (0xFFAAC888) 
returns ?

Original comment by tiboun...@gmail.com on 13 Aug 2012 at 12:44

GoogleCodeExporter commented 9 years ago
I'm not sure, you should follow the other FC_* routines and guess what is 
returned...
This routines are from Canon's API... FC_ = File Catalog (=Cache?)
(http://magiclantern.wikia.com/wiki/ASM_Dictionary)

perhaps this is the opendir() returned object, but canon overlay the object for 
their api.

Original comment by fired...@gmail.com on 13 Aug 2012 at 1:39

GoogleCodeExporter commented 9 years ago
I think I'm going to emulate a 400D CPU in Qemu (the ARM CPU of the 400D is 
supported in Qemu), to catch some syscalls. Any ideas on how to get a ROM dump 
from the 400D ?

Original comment by tiboun...@gmail.com on 13 Aug 2012 at 5:04

GoogleCodeExporter commented 9 years ago
This is not going to work, you will need to emulate all the peripheral and all 
the DSPs of the ARM Processor before you are able to start it in emulation, 
this means a 100% knowledge in the hardware (atleast the canon's proprietary 
processor based on ARM core)... if we had that knowledge, the things would be 
different now ;)

I have a ROM and RAM dumps prepared for IDA, if you can work with IDA contact 
me in private and I may be able to help. (firedust@gm....com) you can find me 
on Google Talk (Jabber) too...

Original comment by fired...@gmail.com on 13 Aug 2012 at 6:57

GoogleCodeExporter commented 9 years ago
im not sure if these are correct, just saw them in my .map file. not checked in 
ida though.

   0000:00341618       readdir
   0000:00341644       opendir
   0000:0028ECA8       FIO_CreateDirectory
   0000:0028ECB4       FIO_RemoveDirectory
   0000:002B2D80       FIO_CreateDirectory_
   0000:002B2EA8       FIO_RemoveDirectory__
   0000:003214C4       _opendir_ok
   0000:00341618       readdir
   0000:00341644       opendir

Original comment by fired...@gmail.com on 7 Feb 2013 at 4:22