Sorry my response was wrong there as I was assuming you were stating the VPW checksum at the end (Which you see when logging data).
Would have to check against something like pcmhammer to verify.
But I know on the canbus based ecus, is structured like:
ID, 0x80, memory offset, databytes.
So for example on an engine computer:
0x7E0, (length bytes), 0x36, 0x80, 08,00,30,00, 11,22,33,44,55,66,77,88,99,AA,BB,CC
Where:
7E0 = ID
0x36 = upload command
0x80 = execute this after upload
0x08003000 = memory offset
0x112233445566778899AABBCC = data uploaded to memory offset location.
Its been a while since looking at the P series ECUs, but I assume it setup in a similar manner for them.
I do recall that the 0x36 stuff on P series ECUs required a 2byte checksum at the end.