The reassuring thing about that hex dump is the version number is the same,
:1000000031281B00FF3FFF3F8C008C0E030E8D003C
That is the same as d'27' and it comes straight after a goto instruction.
There seems to be very little EEPROM though.
Mike.
Edit, missed the picture of the EEPROM dump.
I've just done a compare of the Hex file from Jaison and the Hex from the software we have been working with - they are two completely different animals.
Just adding 1 instruction would change a lot of the hex. As you say, pictures would be useful. Just finding where b2 & b5 go could be useful. Where did the source come from originally?
But not the whole file, there's only 5-6 lines that are the same, everything else is different.
The file we have been working with is as supplied by Jaison in the beginning and I have checked this against the file provided by QST (it's the same) and also I was able to track down the authors original website that again had the identical source file.
In the process, I also compared the hex file from the authors website and that produced by compiling Jaisons source file and they are identical.
In every schematic I have - the one from QST I posted and the REV A,D & E manuals I have here, they all go to the same place - RB2 to the ISD chip PLAYL line and RB5 to the ISD chips address select lines A6 & A4.
Where in the code did you see them go offf somewhere else? PORTB equates are set at near the top of the file and correspond (by labels) to above.
Dears good morning, the board is homemade, the call sign and access password changes were made, it works with an ISD1820 adapted for voice, nothing more than that in the 16F84A. For tests with the new codes that friends are helping me, I leave the ISD1820 off the board to avoid interfering with the operation of the set.
Can you help me to understand CBlock??? I though it was common block... I have used global variables before, similar to the code.... Why will c_copy and w_copy need to be separate... I normally program in C but in asm I hardly ever use cblock.. So I need to know.
Think of cblock as org for SFRs. It's an instruction to tell the assembler I want my variables to go at this address next.
So cblock 0x20 will put variables starting at 0x20. Of course, 0x20 isn't common (not repeated in all banks) SFRs but 0x70 is. s_copy and w_copy are where the ISR saves STATUS and W so when the ISR happens you don't know what bank it's in so they need to be in the common area. An interesting thing with cblock is you can reserve different size of variables.
I.E.
Code:
cblock 0x20
byte ;single byte
word:2 ;16 bit variable
long:4 ;32 bit variable
endc
HTH
Mike.
Edit, the variables can have any name, I just used byte, word, long as examples.
Dears good morning, I was researching yesterday trying to improve my understanding of programming and I found this page, in sheets 4 and 5 it talks about changes for PIC migration, but I didn't understand for sure if the changes are in the asm or hex file.
Dears good morning, I was researching yesterday trying to improve my understanding of programming and I found this page, in sheets 4 and 5 it talks about changes for PIC migration, but I didn't understand for sure if the changes are in the asm or hex file.
In the ASM, which when compiled will produce a different HEX file - it's not 'impossible' to alter a HEX file directly, but it's VASTLY more difficult than doing it to the ASM. If all you've got is a HEX file, it's much easier to disassemble that and create an ASM file, rather than trying to do it directly.