What's this patching of that gizmo worth to you? If you know nothing about 8051 it may be a long and difficult task. Disassembling the code will give you a listing of tens of pages where only the instructions are readable, at least for someone who knows 8051. Labels and variables are just hollow numbers, and of course it's not commented either. If the source was C instead of assembler it may even look more abstract.
The datasheet is not a great help re the programming. It mentions ISP (In System Programming) and IAP (In Application Programming), but the ISP procedure seems to include setting SFRs, so it looks like that's actually IAP as well.
ISP means that you have outside access to a microcontroller which is mounted on your product's PCB, to program it. Everything is controlled through external pins.
IAP also means programming the microcontroller inside your product, but here the microcontroller has to execute a software procedure to talk to the external programming equipment and program the Flash.
So the controller seems to need programming code to reprogram the device. It will probably use the UART for this, but the programming facility has to be programmed in the device in the first place, and most low-cost commercial devices are not made to be reprogrammed.
The datasheet doesn't say anything about programming the device on a programmer, but since it's 8051 compatible the programming may be compatible with that as well, and any legacy universal programmer may be able to program it.
You'll have to carefully remove it from the PCB, so that you can resolder it later.
Pault's AVR alternative may be a good idea. I've never used them to replace 8051's, so check the datasheet carefully, pin for pin. Pault mentions the ATMega162, and it seems the ATMega8515 is also 8051 pin-compatible. Note, however, that neither datasheets mentions anything about this.
The pinout of the iPod 30-pin connector is the starting point from which you might be able to find the audio pins on the car side.
(Originally from here. You can also run a google search iPod 30 pin connector pinout.)
Best Answer
It's pretty typical in microcontrollers today that each pin has more than one function it can be configured to implement. I'm not familiar with Microchip's scheme, but they'll have designed it so that the chip has some basic functionality coming out of reset -- then it's your job to write the software so that a given pin does what you want it to.
There's two directions you can go. You can use the manufacturer's tools, or you can closely study the datasheet, figure out how the chip works, and configure the thing yourself in software.
Most manufacturers also have wizards built into their tool chains that let folks who don't want, or can't, wrap their heads around doing the work in bare metal make the chip work. Usually these wizards don't work as well as they should, and don't play well with a mix of "wizard-generated" and "programmer generated" content, so I tend to not use them.
I usually take the opposite tack*, and closely study the datasheet. I can't speak for Microchip, but there's always some combination (sometimes large) of registers and/or register bits that can be configured to get a pin to function in a specific way. Some manufacturers are very good about thoroughly documenting this sort of functionality (i.e., ST), and some (i.e., Atmel) are horrible. I can't speak to Microchip's documentation, unfortunately.
* but I started in the 1980's, when a microcontroller with a couple of dual-purpose pins was really fancy, so I got ushered into this whole scheme gently, over a long period of time.