private void button1_Click(object sender, EventArgs e) { byte[] array = new byte[128]; base.Update(); PICkitFunctions.RunScript(0, 1); if (PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].EERdPrepScript > 0) { if (PICkitFunctions.DevFile.Families[PICkitFunctions.GetActiveFamily()].EEMemHexBytes == 4) { PICkitFunctions.DownloadAddress3((int)(PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].EEAddr / 2u)); } else { PICkitFunctions.DownloadAddress3(0); } PICkitFunctions.RunScript(8, 1); } int eEMemBytesPerWord = (int)PICkitFunctions.DevFile.Families[PICkitFunctions.GetActiveFamily()].EEMemBytesPerWord; int num = 128 / ((int)PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].EERdLocations * eEMemBytesPerWord); int num2 = num * (int)PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].EERdLocations; int num3 = 0; do { PICkitFunctions.RunScriptUploadNoLen(9, num); Array.Copy(PICkitFunctions.Usb_read_array, 1L, array, 0L, 64L); PICkitFunctions.UploadDataNoLen(); Array.Copy(PICkitFunctions.Usb_read_array, 1L, array, 64L, 64L); int num4 = 0; for (int i = 0; i < num2; i++) { int num5 = 0; uint num6 = (uint)array[num4 + num5++]; if (num5 < eEMemBytesPerWord) { num6 |= (uint)((uint)array[num4 + num5++] << 8); } num4 += num5; if (PICkitFunctions.DevFile.Families[PICkitFunctions.GetActiveFamily()].ProgMemShift > 0) { //num6 = (num6 >> 1 & eEBlank); } PICkitFunctions.DeviceBuffers.EEPromMemory[num3++] = num6; if (num3 >= (int)PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].EEMem) { break; } } }while (num3 < (int)PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].EEMem); PICkitFunctions.RunScript(1, 1); foreach (var a in array) { this.textBox1.AppendText(a.ToString()); this.textBox1.AppendText(" "); } }
public void ReadTestMemory() { byte[] array = new byte[128]; PICkitFunctions.RunScript(0, 1); int bytesPerLocation = PICkitFunctions.DevFile.Families[PICkitFunctions.GetActiveFamily()].BytesPerLocation; int num = 128 / (PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].TestMemoryRdWords * bytesPerLocation); int num2 = num * PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].TestMemoryRdWords; int num3 = 0; prepTestMem(); do { PICkitFunctions.RunScriptUploadNoLen(27, num); Array.Copy(PICkitFunctions.Usb_read_array, 1L, array, 0L, 64L); PICkitFunctions.UploadDataNoLen(); Array.Copy(PICkitFunctions.Usb_read_array, 1L, array, 64L, 64L); int num4 = 0; for (int i = 0; i < num2; i++) { int num5 = 0; uint num6 = array[num4 + num5++]; if (num5 < bytesPerLocation) { num6 = (uint)((int)num6 | (array[num4 + num5++] << 8)); } if (num5 < bytesPerLocation) { num6 = (uint)((int)num6 | (array[num4 + num5++] << 16)); } if (num5 < bytesPerLocation) { num6 = (uint)((int)num6 | (array[num4 + num5++] << 24)); } num4 += num5; if (PICkitFunctions.DevFile.Families[PICkitFunctions.GetActiveFamily()].ProgMemShift > 0) { num6 = ((num6 >> 1) & PICkitFunctions.DevFile.Families[PICkitFunctions.GetActiveFamily()].BlankValue); } TestMemory[num3++] = num6; } }while (num3 < FormPICkit2.TestMemoryWords); PICkitFunctions.RunScript(1, 1); }
public static bool PE_Connect() { PICkitFunctions.RunScript(0, 1); if (PICkitFunctions.DevFile.PartsList[PICkitFunctions.ActivePart].ProgMemWrPrepScript != 0) { PICkitFunctions.DownloadAddress3(8389568); PICkitFunctions.RunScript(5, 1); } byte[] array = new byte[128]; PICkitFunctions.RunScriptUploadNoLen(3, 1); Array.Copy(PICkitFunctions.Usb_read_array, 1L, array, 0L, 64L); PICkitFunctions.UploadDataNoLen(); Array.Copy(PICkitFunctions.Usb_read_array, 1L, array, 64L, 64L); int num = array[72]; num |= array[73] << 8; if (num != 155) { PICkitFunctions.RunScript(1, 1); return(false); } num = array[75]; num |= array[76] << 8; if (num != 38) { PICkitFunctions.RunScript(1, 1); return(false); } PICkitFunctions.RunScript(1, 1); int i = 0; byte[] array2 = new byte[64]; array2[i++] = 166; array2[i++] = 0; array2[i++] = 250; array2[i++] = 247; array2[i++] = 249; array2[i++] = 245; array2[i++] = 243; array2[i++] = 0; array2[i++] = 232; array2[i++] = 20; array2[i++] = 246; array2[i++] = 251; array2[i++] = 231; array2[i++] = 23; array2[i++] = 250; array2[i++] = 247; array2[i++] = 231; array2[i++] = 47; array2[i++] = 242; array2[i++] = 178; array2[i++] = 242; array2[i++] = 194; array2[i++] = 242; array2[i++] = 18; array2[i++] = 242; array2[i++] = 10; array2[i++] = 246; array2[i++] = 251; array2[i++] = 232; array2[i++] = 6; array2[1] = (byte)(i - 2); for (; i < 64; i++) { array2[i] = 173; } PICkitFunctions.writeUSB(array2); i = 0; array2[i++] = 166; array2[i++] = 12; array2[i++] = 242; array2[i++] = 0; array2[i++] = 242; array2[i++] = 128; array2[i++] = 243; array2[i++] = 2; array2[i++] = 231; array2[i++] = 5; array2[i++] = 240; array2[i++] = 240; array2[i++] = 240; array2[i++] = 240; array2[i++] = 170; for (; i < 64; i++) { array2[i] = 173; } PICkitFunctions.writeUSB(array2); if (!PICkitFunctions.readUSB()) { PICkitFunctions.RunScript(1, 1); return(false); } if (PICkitFunctions.Usb_read_array[1] != 4) { PICkitFunctions.RunScript(1, 1); return(false); } if (PICkitFunctions.Usb_read_array[2] != 8 || PICkitFunctions.Usb_read_array[3] != 0 || PICkitFunctions.Usb_read_array[4] != 0 || PICkitFunctions.Usb_read_array[5] != 64) { PICkitFunctions.RunScript(1, 1); return(false); } i = 0; array2[i++] = 166; array2[i++] = 14; array2[i++] = 243; array2[i++] = 0; array2[i++] = 242; array2[i++] = 13; array2[i++] = 242; array2[i++] = 128; array2[i++] = 243; array2[i++] = 2; array2[i++] = 231; array2[i++] = 5; array2[i++] = 240; array2[i++] = 240; array2[i++] = 240; array2[i++] = 240; array2[i++] = 170; for (; i < 64; i++) { array2[i] = 173; } PICkitFunctions.writeUSB(array2); if (!PICkitFunctions.readUSB()) { PICkitFunctions.RunScript(1, 1); return(false); } if (PICkitFunctions.Usb_read_array[1] != 4) { PICkitFunctions.RunScript(1, 1); return(false); } if (PICkitFunctions.Usb_read_array[2] != 216 || BitReverseTable[PICkitFunctions.Usb_read_array[3]] != 38 || PICkitFunctions.Usb_read_array[4] != 0 || PICkitFunctions.Usb_read_array[5] != 64) { PICkitFunctions.RunScript(1, 1); return(false); } return(true); }
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); }