Firmware modification for MIDI Controller

Discussion in 'Embedded Systems and Microcontrollers' started by C0ma, Nov 12, 2009.

  1. C0ma

    Thread Starter New Member

    Nov 12, 2009
    2
    0
    Hi,

    SHORT STORY =
    LONG STORY = SHORT STORY +
    Thank you in advance.
    Really sorry if I wrote this much and missed any important information, please do ask!
     
  2. Papabravo

    Expert

    Feb 24, 2006
    10,180
    1,800
    Do you have any understanding of how the data in EPROM is put together and used? Is the operating code for some microprocessor which you have not yet revealed.

    I'm gonna go out on a limb and say you have no chance whatsoever without some further clues as to what we are dealing with.

    My educated guess is that it is an 8 bit big endian processor based on what looks like a 3 byte jump instruction to location 0x0040 at location 0x0000.

    The instruction is "0x02 0x00 0x40"
     
    Last edited: Nov 12, 2009
  3. GetDeviceInfo

    Senior Member

    Jun 7, 2009
    1,571
    230
    it will depend on if your code runs as an app within some operating system, or you do the whole shebang. If you can extra some identifiers from the rom, you may find that a reduced operating system is available from a commercial supplier.
     
  4. Papabravo

    Expert

    Feb 24, 2006
    10,180
    1,800
    Unfortuneately there is no ASCII text within the binary file that I dumped from the website mentioned by the OP. I think we are outta luck on identifiers. So what processor has 0x02 as a JUMP opcode?

    Answer: It is an 8051, and the opcode is an LJMP
    So it would take me a while but to disassemble 16K of 8051 code and give you the source, but it could be done. Oh---you want comments, I guess those would be extra dinero.

    Once the firmware is cracked, I could probably make a schematic as well.

    The presence of an OS in 16K of 8051 code is most unlikely.
     
    Last edited: Nov 12, 2009
  5. C0ma

    Thread Starter New Member

    Nov 12, 2009
    2
    0
    Ok, the microcontroller is a Philips P80C32SBAA
    http://octopart.com/info/Philips/P80C32SBAA

    I have basic understanding of programming and compiling code to a PIC. I'm currently building a Midibox (http://midibox.org/) and there's some compiling /uploading involved. So I understand and use the (mere) basic principles.

    Papabravo, English is not my native language, so I can't quite understand what you mean with that part where you can say you can disassemble it, then take it back, then mention money. I suspect there was a little irony there but couldn't get it. I'm sorry. Can you rephrase?

    I opened the pedalboard when I got home and saw it's more complex than I thought. I could get the name of the microcontroller and might take a few pictures if that would be useful.

    Thanks for your time reading this.
     
  6. Papabravo

    Expert

    Feb 24, 2006
    10,180
    1,800
    The Philips part number is just a ROMLESS version of the plain vanila 8051; a part with which I've developed an intimate familiarity over the last 30 years since it first came out.

    The process of converting assembly language source code into instuctions that may be put into an EPROM chip is called "assembling". The inverse process of taking a sting of hexadecimal numbers and recreating the assembly language source code is called disassembly. It is an arduous, difficult, and time consuming process. I have done it several times for my own purposes. It is not something I would do for free. Automated tools can help in some cases, but get confused when instructions and constant data are mixed together. It is also necessary to understand the program in order to give meaningful names to functions, routines and data items. Adding useful comments to the source code is also not something an automated software tool can do. It is equal parts art and skill. Once the source code is created it will be possible to create a schematic and you will have everything you need to improve the design and implement the features that you want.

    I assume that if you really want to do this, your willingness to pay someone to help you would be a measure of that willingness. If you have no willingness to pay someone to help you then I'm afraid it is unlikely that the project will move forward at any appreciable rate.
     
    Last edited: Nov 13, 2009
Loading...