Thank you AussieSusan! Let me give you a 2 part response:
1.
I looked at both documents you referenced, I don't see a difference in them, I am relatively new to the Microchip world and I am finding the support resources available to be a little bizarre to say the least. I'll keep my rants and puzzlings to a minimum here though as it's becoming obvious to me that I am not the first to be puzzled by the way they do things. I did, however go to the website for the product:
http://www.microchip.com/design-centers/16-bit/products/pic24f and from that site I don't even see the datasheet for the PIC24F let alone the programming reference - though there are a number of documents there that make me think I'm in the right place to find the correct documents. I had been there before and found the product page to be pretty useless, but since you suggested that that the 'device web page' would have the correct documents, I was then able to look around and it turns out if I go to Design Support -> Documentation, I was able to dig in and find the DS-39919C document that you linked to. Thanks for giving me the direction to keep looking. honestly don't know how I came across the programming reference that I did get ahold of, it was likely the result of a google search... Good to know that I shouldn't trust what I see unless I can find it linked from the Design Support pages. Thank you!
2.
I am a Production Engineer (new to this company) that has been tasked with automating the installation of firmware on devices at production time. The developers of the software believe they have had an issue with a corrupt file in the past - so their current process is to open MPLAB8, import the HEX file and verify that the checksum noted in the menu bar matches the checksum that is recorded from when they made their original build (they append that to the filename) then they use the tools in MPLAB8 to program their device.
I will be automating the PK3CMD.EXE to program and verify the PIC24, but everyone would feel more comfortable if I could give them confirmation that the checksum of the file matches what MPLAB8 shows before I attempt to program the device. PK3CMD.EXE doesn't have an option to calculate this checksum like MPLAB8 does, though it does have the option to verify the programmed file - I have manually corrupted a line in a HEX file and verified that the Intel HEX checksum is incorrect for the corrupted line and have confirmed that the PK3CMD.EXE will still program that file without any warning or indication that the file is corrupt.
I recognize that the checksum that MPLAB8 calculates is only for the program memory and configuration registers - not everything in the HEX file, such as EEPROM data. I'd prefer to create a more thorough CRC such as MD5 and compare that each time I read the HEX file before it gets programmed but they would really like to see the Checksum match MPLAB8 - and I honestly thought this would be fairly trivial so I went with it as a first pass to give a comfort level. It's turning out to be a challenge to see if I can figure out what is going on and now I really want to do it for sake of learning what is going on.
I will say that when I open up MPLAB8 and select the PIC24FC32KA302 the tool bar then shows 0x8158 as the checksum before I import a hex file - which matches what DS-39919C shows for an erased checksum value (see attachment). I'd at least like to know how they're calculating that...
Any insight that anyone might have would be tremendously helpful. Thank you again, I am learning a lot about the PIC24 in this process .
Matthew