Thanks all for the replies.
As I mentioned in the update, I found and ordered a plain '877. I got it in and was able to burn a copy of the hex into it and it ran in the controller that originally had an '877. The one that ran a 16c74 still has issues (significant "smoke" leakage), so I can't tell if the upgrade to the '877 will work, but for now, the crisis is over, at least until I can't get obsolete parts anymore.
A deeper question still looms. Is it possible to disassemble when you only have hex to start with? I am treading on a slippery slope here, as I realize the implications of being able to do that. Sorry, and I understand if no one chooses to dig into this.
The changes to the code that you guys mentioned are the reasonable way to do that if you first have the code to reassemble. Obviously, a HEX file is a complete picture of the program, minus the chosen substitute names for
variables and the like, but is there a legitimate way to reverse the process so that you could get into it and make the changes that you suggest? MPASM will only seem to work if you have the original. Probably for obvious reasons.
I'm imagining that mapping out the register hex addresses would give you a place to start. You might be able to see what the original op-codes were, at least in the beginning and add your patch code, but it looks like it would get pretty murky pretty fast without a systematic approach.
Like I said, this dragon has been slain, but I'm sure it has some relatives that will show up again. I'm not trying to steal someone's work, just trying to reasonably repair a multi-thousand dollar controller.
BTW, I was quite excited to see that one of our sweet little PICs was the core of such an expensive device.
Bo
Bookmarks