public static bool DownloadPE() { PICkitFunctions.RunScript(0, 1); PICkitFunctions.ExecuteScript(PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].DebugWriteVectorScript); if (PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].ProgMemWrPrepScript != 0) { PICkitFunctions.DownloadAddress3(8388608); PICkitFunctions.RunScript(6, 1); } int num = 0; int num2 = 0; byte[] array = new byte[64]; for (int i = 0; i < 8; i++) { for (int j = 0; j < 4; j++) { num2 = 0; if (j == 0) { array[num2++] = 167; } array[num2++] = 168; array[num2++] = 48; for (int k = 0; k < 16; k++) { array[num2++] = (byte)(PIC24_PE_Code[num] & 0xFF); array[num2++] = (byte)((PIC24_PE_Code[num] >> 8) & 0xFF); array[num2++] = (byte)((PIC24_PE_Code[num] >> 16) & 0xFF); num++; } for (; num2 < 64; num2++) { array[num2] = 173; } PICkitFunctions.writeUSB(array); } num2 = 0; array[num2++] = 166; array[num2++] = 0; array[num2++] = 212; array[num2++] = 0; array[num2++] = 211; array[num2++] = 1; array[num2++] = 212; array[num2++] = 3; array[num2++] = 211; array[num2++] = 2; array[num2++] = 217; array[num2++] = 128; array[num2++] = 11; array[num2++] = 187; array[num2++] = 216; array[num2++] = 216; array[num2++] = 217; array[num2++] = 129; array[num2++] = 155; array[num2++] = 187; array[num2++] = 216; array[num2++] = 216; array[num2++] = 217; array[num2++] = 130; array[num2++] = 139; array[num2++] = 187; array[num2++] = 216; array[num2++] = 216; array[num2++] = 217; array[num2++] = 131; array[num2++] = 27; array[num2++] = 187; array[num2++] = 216; array[num2++] = 216; array[num2++] = 233; array[num2++] = 32; array[num2++] = 31; array[num2++] = 217; array[num2++] = 97; array[num2++] = 231; array[num2++] = 168; array[num2++] = 216; array[num2++] = 217; array[num2++] = 0; array[num2++] = 2; array[num2++] = 4; array[num2++] = 216; array[num2++] = 233; array[num2++] = 1; array[num2++] = 3; array[num2++] = 231; array[num2++] = 72; array[1] = (byte)(num2 - 2); for (; num2 < 64; num2++) { array[num2] = 173; } PICkitFunctions.writeUSB(array); } if (PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].ProgMemWrPrepScript != 0) { PICkitFunctions.DownloadAddress3(8388608); PICkitFunctions.RunScript(5, 1); } byte[] array2 = new byte[128]; num = 0; for (int l = 0; l < 16; l++) { PICkitFunctions.RunScriptUploadNoLen(3, 1); Array.Copy(PICkitFunctions.Usb_read_array, 1L, array2, 0L, 64L); PICkitFunctions.UploadDataNoLen(); Array.Copy(PICkitFunctions.Usb_read_array, 1L, array2, 64L, 64L); int num3 = 0; for (int m = 0; m < 32; m++) { uint num4 = array2[num3++]; num4 = (uint)((int)num4 | (array2[num3++] << 8)); num4 = (uint)((int)num4 | (array2[num3++] << 16)); if (num4 != PIC24_PE_Code[num++]) { PICkitFunctions.RunScript(1, 1); return(false); } } } PICkitFunctions.RunScript(1, 1); return(true); }