I have made my guesses for the format of the .cinit data below: two byte count - number of initialized data blocks > 7 0006 3401 RETLW 0x1 <= .cinit address. > 8 0007 3400 RETLW 0 two bytes - starting address of data in program memory > 9 0008 340E RETLW 0xe <= address of TEST1_i > 10 0009 3400 RETLW 0 two byte address of initialized data area (for some reason it was placed in bank 2, see the map file) > 11 000A 3420 RETLW 0x20 > 12 000B 3401 RETLW 0x1 two byte data count > 13 000C 3403 RETLW 0x3 > 14 000D 3400 RETLW 0 If there were more blocks to be initialized then there would be additional groups of 6 bytes here containing starting address in program memory, starting address in data memory and length of each additional block. the actual data > 15 000E 3411 RETLW 0x11 <= values from the source code ! > 16 000F 3422 RETLW 0x22 <= values from the source code ! > 17 0010 3433 RETLW 0x33 <= values from the source code ! Bob Ammerman RAm Systems _______________________________________________ http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist