diff --git a/InfoIcDump/Form1.Designer.cs b/InfoIcDump/Form1.Designer.cs index 744e0aa..40a7748 100644 --- a/InfoIcDump/Form1.Designer.cs +++ b/InfoIcDump/Form1.Designer.cs @@ -59,6 +59,8 @@ namespace InfoIcDump this.label_devs = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.button2 = new System.Windows.Forms.Button(); + this.checkBox5 = new System.Windows.Forms.CheckBox(); + this.checkBox6 = new System.Windows.Forms.CheckBox(); ((System.ComponentModel.ISupportInitialize)(this.LogoImage)).BeginInit(); this.GroupBox1.SuspendLayout(); this.SuspendLayout(); @@ -359,11 +361,39 @@ namespace InfoIcDump this.button2.UseVisualStyleBackColor = true; this.button2.Click += new System.EventHandler(this.button2_Click); // + // checkBox5 + // + this.checkBox5.AutoSize = true; + this.checkBox5.Checked = true; + this.checkBox5.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox5.Font = new System.Drawing.Font("Arial", 9.75F); + this.checkBox5.Location = new System.Drawing.Point(587, 395); + this.checkBox5.Name = "checkBox5"; + this.checkBox5.Size = new System.Drawing.Size(170, 20); + this.checkBox5.TabIndex = 18; + this.checkBox5.Text = "Remove duplicates(slow)"; + this.checkBox5.UseVisualStyleBackColor = true; + // + // checkBox6 + // + this.checkBox6.AutoSize = true; + this.checkBox6.Checked = true; + this.checkBox6.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBox6.Font = new System.Drawing.Font("Arial", 9.75F); + this.checkBox6.Location = new System.Drawing.Point(774, 395); + this.checkBox6.Name = "checkBox6"; + this.checkBox6.Size = new System.Drawing.Size(98, 20); + this.checkBox6.TabIndex = 19; + this.checkBox6.Text = "Sort by type"; + this.checkBox6.UseVisualStyleBackColor = true; + // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(977, 430); + this.Controls.Add(this.checkBox6); + this.Controls.Add(this.checkBox5); this.Controls.Add(this.button2); this.Controls.Add(this.label6); this.Controls.Add(this.label_devs); @@ -421,5 +451,7 @@ namespace InfoIcDump private Label label_devs; private Label label6; private Button button2; + private CheckBox checkBox5; + private CheckBox checkBox6; } } diff --git a/InfoIcDump/Form1.cs b/InfoIcDump/Form1.cs index bc8bb6b..c9ff0d0 100644 --- a/InfoIcDump/Form1.cs +++ b/InfoIcDump/Form1.cs @@ -10,6 +10,7 @@ using System.Runtime.InteropServices; using System.IO; using System.Xml.Serialization; using System.Xml; +using System.Diagnostics; namespace InfoIcDump @@ -118,8 +119,26 @@ namespace InfoIcDump public string opts7; [XmlAttribute("package_details")] public string package_details; + [XmlAttribute("fuses")] + public string fuses; } + public struct MICROCHIP_CSV + { + public uint DeviceID; + public uint DeviceIDMask; + public string fuses; + }; + + public struct ATMEL_CSV + { + public uint DeviceID; + public string fuses; + }; + + SortedDictionary microchip_csv_list = new SortedDictionary(); + SortedDictionary atmel_csv_list = new SortedDictionary(); + //constructor public Form1() { @@ -128,10 +147,53 @@ namespace InfoIcDump { if (MessageBox.Show(this, "InfoIc.dll was not found!\n Do you want to load it from other place?", "Load error", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == System.Windows.Forms.DialogResult.Yes) - load_infoic(); + load_infoic(); } InitializeComponent(); + try + { + using (StreamReader stream_reader = new StreamReader("microchip.csv")) + { + string line; + MICROCHIP_CSV csv = new MICROCHIP_CSV(); + while ((line = stream_reader.ReadLine()) != null) + { + csv.DeviceID = UInt32.Parse(line.Split(';')[1]); + csv.DeviceIDMask = UInt32.Parse(line.Split(';')[2]); + csv.fuses = line.Split(';')[3]; + microchip_csv_list.Add(line.Split(';')[0], csv); + } + } + + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + Button1.Enabled = false; + } + + + try + { + using (StreamReader stream_reader = new StreamReader("atmel.csv")) + { + string line; + ATMEL_CSV csv = new ATMEL_CSV(); + while ((line = stream_reader.ReadLine()) != null) + { + csv.DeviceID = UInt32.Parse(line.Split(';')[1]); + csv.fuses = line.Split(';')[2]; + atmel_csv_list.Add(line.Split(';')[0], csv); + } + } + + } + catch (Exception ex) + { + MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + Button1.Enabled = false; + } populate_mfc_list(); } @@ -146,11 +208,11 @@ namespace InfoIcDump if (dlg.ShowDialog() == DialogResult.OK) { //Workaround to unload the infoic.dll - while(FreeLibrary(GetModuleHandle("InfoIc.dll"))); - FreeLibrary(GetModuleHandle("InfoIc.dll")); + while (FreeLibrary(GetModuleHandle("InfoIc.dll"))) ; + FreeLibrary(GetModuleHandle("InfoIc.dll")); //Load the new library - IntPtr Hmodule = LoadLibrary(dlg.FileName); + IntPtr Hmodule = LoadLibrary(dlg.FileName); if (Hmodule == IntPtr.Zero) MessageBox.Show(this, "Error loading the " + dlg.FileName, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); @@ -192,14 +254,14 @@ namespace InfoIcDump uint[] tag1 = (uint[])MfcList.Tag; uint[] tag2 = (uint[])DeviceList.Tag; GetIcStru(tag1[MfcList.SelectedIndex], tag2[DeviceList.SelectedIndex], ref device); - txt_info.Text = get_ic_string_ini(tag1[MfcList.SelectedIndex], tag2[DeviceList.SelectedIndex], ref device).ToString(); + txt_info.Text = get_ic_string_ini(device).ToString(); label_devs.Text = "Devices:" + DeviceList.Items.Count.ToString(); } //export type selection was changed private void checkBox_CheckedChanged(object sender, EventArgs e) { - Button1.Enabled = (checkBox1.Checked || checkBox2.Checked || checkBox3.Checked || checkBox4.Checked); + Button1.Enabled = ((checkBox1.Checked || checkBox2.Checked || checkBox3.Checked || checkBox4.Checked) && Button1.Enabled); } @@ -258,7 +320,7 @@ namespace InfoIcDump { foreach (Control control in this.Controls) { - control.Enabled = false; + control.Enabled = false; } } } @@ -267,7 +329,7 @@ namespace InfoIcDump /*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*/ uint change_endianess(uint value, uint size) { - if (value == 0 || size == 0) return 0;// This is a database bug. Size is zero and id garabge bytes + if (value == 0 || size == 0) return 0;// This is a database bug. Size is zero and id garbage bytes return (uint)((((int)value & 0xff) << 24) + (((uint)value & 0xff00) << 8) + (((uint)value & 0xff0000) >> 8) + @@ -275,12 +337,20 @@ namespace InfoIcDump >> (int)(8 * (4 - size)); } + private string get_fuse_name(string name) + { + string key = name.Split('@')[0]; + key = key.Split('(')[0]; + if (microchip_csv_list.ContainsKey(key)) + return microchip_csv_list[key].fuses; + if (atmel_csv_list.ContainsKey(key)) + return atmel_csv_list[key].fuses; + return "NULL"; + } //Get device info in ini format - private string get_ic_string_ini(uint manufacturer, uint device_index, ref DevStruct devstruct) + private string get_ic_string_ini(DevStruct devstruct) { - GetIcStru(manufacturer, device_index, ref devstruct); - //Change endianess for the chip_id devstruct.chip_id = change_endianess(devstruct.chip_id, devstruct.chip_id_size); return string.Format( @"[{0}] @@ -291,7 +361,7 @@ write_buffer_size = 0x{4:x2} code_memory_size = 0x{5:x2} data_memory_size = 0x{6:x2} data_memory2_size = 0x{7:x2} -chip_id = 0x{8:x2} +chip_id = 0x{8:x4} chip_id_size = 0x{9:x2} opts1 = 0x{10:x2} opts2 = 0x{11:x2} @@ -300,19 +370,19 @@ opts4 = 0x{13:x2} opts5 = 0x{14:x2} opts6 = 0x{15:x2} opts7 = 0x{16:x2} -package_details = 0x{17:x2}", +package_details = 0x{17:x8} +fuses = {18}", devstruct.name.Trim(), devstruct.protocol, devstruct.type, devstruct.read_buffer_size, devstruct.write_buffer_size, devstruct.code_memory_size, devstruct.data_memory_size, devstruct.data_memory2_size, devstruct.chip_id, devstruct.chip_id_size, devstruct.opts1, devstruct.opts2, devstruct.opts3, devstruct.opts4, devstruct.opts5, - devstruct.opts6, devstruct.opts7, devstruct.package_details); + devstruct.opts6, devstruct.opts7, devstruct.package_details, get_fuse_name(devstruct.name.Trim())); } //Get device info in c header format - private string get_ic_string_c(uint manufacturer, uint device_index, ref DevStruct devstruct) + private string get_ic_string_c(DevStruct devstruct) { - GetIcStru(manufacturer, device_index, ref devstruct); devstruct.chip_id = change_endianess(devstruct.chip_id, devstruct.chip_id_size); return string.Format( @"{{ @@ -324,7 +394,7 @@ package_details = 0x{17:x2}", .code_memory_size = 0x{5:x2}, .data_memory_size = 0x{6:x2}, .data_memory2_size = 0x{7:x2}, - .chip_id = 0x{8:x2}, + .chip_id = 0x{8:x4}, .chip_id_size = 0x{9:x2}, .opts1 = 0x{10:x2}, .opts2 = 0x{11:x2}, @@ -333,32 +403,32 @@ package_details = 0x{17:x2}", .opts5 = 0x{14:x2}, .opts6 = 0x{15:x2}, .opts7 = 0x{16:x2}, - .package_details = 0x{17:x2} + .package_details = 0x{17:x8} + .fuses = {18} }},", devstruct.name.Trim(), devstruct.protocol, devstruct.type, devstruct.read_buffer_size, devstruct.write_buffer_size, devstruct.code_memory_size, devstruct.data_memory_size, devstruct.data_memory2_size, devstruct.chip_id, devstruct.chip_id_size, devstruct.opts1, devstruct.opts2, devstruct.opts3, devstruct.opts4, devstruct.opts5, - devstruct.opts6, devstruct.opts7, devstruct.package_details); + devstruct.opts6, devstruct.opts7, devstruct.package_details,get_fuse_name(devstruct.name.Trim())); } //Get device info in xml format - private device get_ic_xml(uint manufacturer, uint device_index, ref DevStruct devstruct) + private device get_ic_xml(DevStruct devstruct) { + devstruct.chip_id = change_endianess(devstruct.chip_id, devstruct.chip_id_size); device xml_chip = new device(); - GetIcStru(manufacturer, device_index, ref devstruct); xml_chip.icname = devstruct.name.Trim(); xml_chip.protocol = "0x" + devstruct.protocol.ToString("x2"); xml_chip.type = "0x" + devstruct.type.ToString("x2"); - xml_chip.type = "0x" + devstruct.type.ToString("x2"); xml_chip.read_buffer_size = "0x" + devstruct.read_buffer_size.ToString("x2"); xml_chip.write_buffer_size = "0x" + devstruct.write_buffer_size.ToString("x2"); xml_chip.code_memory_size = "0x" + devstruct.code_memory_size.ToString("x2"); xml_chip.data_memory_size = "0x" + devstruct.data_memory_size.ToString("x2"); xml_chip.data_memory2_size = "0x" + devstruct.data_memory2_size.ToString("x2"); - xml_chip.chip_id = "0x" + devstruct.chip_id.ToString("x2"); + xml_chip.chip_id = "0x" + devstruct.chip_id.ToString("x4"); xml_chip.chip_id_size = "0x" + devstruct.chip_id_size.ToString("x2"); xml_chip.opts1 = "0x" + devstruct.opts1.ToString("x2"); xml_chip.opts2 = "0x" + devstruct.opts2.ToString("x2"); @@ -367,11 +437,46 @@ package_details = 0x{17:x2}", xml_chip.opts5 = "0x" + devstruct.opts5.ToString("x2"); xml_chip.opts6 = "0x" + devstruct.opts6.ToString("x2"); xml_chip.opts7 = "0x" + devstruct.opts7.ToString("x2"); - xml_chip.package_details = "0x" + devstruct.package_details.ToString("x2"); + xml_chip.package_details = "0x" + devstruct.package_details.ToString("x8"); + xml_chip.fuses = get_fuse_name(devstruct.name.Trim()); return xml_chip; } + bool compare_devices(DevStruct device1, DevStruct device2) + { + return (string.Compare(device1.name.Split('@')[0], device2.name.Split('@')[0], true) == 0) && + (device1.protocol == device2.protocol) && + (device1.type == device2.type) && + (device1.read_buffer_size == device2.read_buffer_size) && + (device1.write_buffer_size == device2.write_buffer_size) && + (device1.code_memory_size == device2.code_memory_size) && + (device1.data_memory_size == device2.data_memory_size) && + (device1.data_memory2_size == device2.data_memory2_size) && + (device1.chip_id == device2.chip_id) && + (device1.chip_id_size == device2.chip_id_size) && + (device1.opts1 == device2.opts1) && + (device1.opts2 == device2.opts2) && + (device1.opts3 == device2.opts3) && + (device1.opts4 == device2.opts4) && + (device1.opts5 == device2.opts5) && + (device1.opts6 == device2.opts6) && + (device1.opts7 == device2.opts7); + } + bool is_duplicate(List devices_list, DevStruct device) + { + foreach (DevStruct d in devices_list) + { + if (compare_devices(d, device) && + (((device.package_details & 0X80000000) != 0) && + ((device.package_details & 0X7FFFFFFF) == (d.package_details & 0X7FFFFFFF))) || + (compare_devices(d, device) && + ((device.package_details & 0X00FFFF00) == (d.package_details & 0X00FFFF00))) + ) + return true; + } + return false; + } //Perform the infoic.dll dump @@ -380,13 +485,14 @@ package_details = 0x{17:x2}", uint[] manufacturers = new uint[4096]; uint[] devices = new uint[4096]; DevStruct devstruct = new DevStruct(); + List devices_list = new List(); + List duplicates = new List(); List device_list_xml = new List(); List device_list_ini = new List(); List device_list_c = new List(); SortedDictionary total = new SortedDictionary(); progressBar.Maximum = (int)GetIcMFC("", manufacturers, 0); - uint total_count = 0; //Iterate over the entire manufacturers for (uint i = 0; i < GetIcMFC("", manufacturers, 0); i++) @@ -394,31 +500,102 @@ package_details = 0x{17:x2}", //Iterate over the entire devices in the curent manufacturer for (uint k = 0; k < GetIcList("", devices, manufacturers[i], 0); k++) { - //Log the device - if (total.ContainsKey(devstruct.protocol)) - total[devstruct.protocol] += devstruct.name + Environment.NewLine; - else - total.Add(devstruct.protocol, devstruct.name); + //Get the device struct + GetIcStru(manufacturers[i], devices[k], ref devstruct); - //Get the element in ini format - if (checkBox2.Checked) - device_list_ini.Add(get_ic_string_ini(manufacturers[i], devices[k], ref devstruct) + Environment.NewLine); + //Remove spaces + devstruct.name = devstruct.name.Replace(" ", ""); - //Get the element in C header format - if (checkBox1.Checked) - device_list_c.Add(get_ic_string_c(manufacturers[i], devices[k], ref devstruct)); - - //Get the element in xml format - if (checkBox3.Checked) + //If not duplicate process the chip + if (checkBox5.Checked == false || !is_duplicate(devices_list, devstruct)) { - device_list_xml.Add(get_ic_xml(manufacturers[i], devices[k], ref devstruct)); + //Log the device + if (total.ContainsKey(devstruct.protocol)) + total[devstruct.protocol] += devstruct.name + Environment.NewLine; + else + total.Add(devstruct.protocol, devstruct.name + Environment.NewLine); + + if (checkBox5.Checked == true) + { + //Rename specific adapter to generic + switch (devstruct.package_details & 0xFF) + { + case 1: + case 2: + case 6: + devstruct.name = devstruct.name.Split('@')[0] + "@TSOP"; + break; + } + } + + devices_list.Add(devstruct); } - total_count++; + else + duplicates.Add(devstruct.name); } progressBar.Value += 1; Application.DoEvents(); } progressBar.Value = progressBar.Maximum; + + List tmp_list = new List(); + + foreach (DevStruct d in devices_list) + { + devstruct = d; + //Patch Microchip and Atmel controllers + if (devstruct.category == 2) + { + string key = devstruct.name.Split('@')[0]; + key = key.Split('(')[0]; + if (microchip_csv_list.ContainsKey(key)) + { + devstruct.chip_id = microchip_csv_list[key].DeviceID; + devstruct.opts3 = microchip_csv_list[key].DeviceIDMask; + } + else if (atmel_csv_list.ContainsKey(key)) + { + devstruct.chip_id = atmel_csv_list[key].DeviceID; + } + } + tmp_list.Add(devstruct); + } + devices_list = tmp_list; + tmp_list = new List(); + + + + //Sort the list by category + if (checkBox6.Checked == true) + { + for (uint i = 1; i < 6; i++) + { + foreach (DevStruct d in devices_list) + { + if (d.category == i) + tmp_list.Add(d); + } + } + devices_list = tmp_list; + } + + //Convert + for (int i = 0; i < devices_list.Count; i++) + { + //Get the element in ini format + if (checkBox2.Checked) + device_list_ini.Add(get_ic_string_ini(devices_list[i]) + Environment.NewLine); + + //Get the element in C header format + if (checkBox1.Checked) + device_list_c.Add(get_ic_string_c(devices_list[i])); + + //Get the element in xml format + if (checkBox3.Checked) + { + device_list_xml.Add(get_ic_xml(devices_list[i])); + } + } try { //Write the devices.h file @@ -464,10 +641,18 @@ package_details = 0x{17:x2}", stream_writer.WriteLine("Protocol:0x" + key.Key.ToString("X2") + Environment.NewLine + key.Value); } stream_writer.Write(Environment.NewLine + - total_count.ToString() + " devices in " + + devices_list.Count.ToString() + " devices in " + total.Count.ToString() + " protocols."); } + + using (StreamWriter stream_writer = new StreamWriter("duplicates.txt")) + { + foreach (string d in duplicates) + { + stream_writer.WriteLine(d); + } + } } } catch (Exception ex) diff --git a/InfoIcDump/binary/InfoIcDump.exe b/InfoIcDump/binary/InfoIcDump.exe index 41ce8fd..8c68c6d 100644 Binary files a/InfoIcDump/binary/InfoIcDump.exe and b/InfoIcDump/binary/InfoIcDump.exe differ diff --git a/InfoIcDump/binary/atmel.csv b/InfoIcDump/binary/atmel.csv new file mode 100644 index 0000000..65d77cd --- /dev/null +++ b/InfoIcDump/binary/atmel.csv @@ -0,0 +1,130 @@ +AT89C1051;7697;atmel_lock +AT89C1051U;7698;atmel_lock +AT89C2051;7713;atmel_lock +AT89C2051x2;7714;atmel_lock +AT89C4051;7745;atmel_lock +AT89C51;1987071;atmel_lock +AT89C51RC;1986823;atmel_lock +AT89C52;1987327;atmel_lock +AT89C55;1988095;atmel_lock +AT89C55WD;1987846;atmel_lock +AT89LS51;1986822;atmel_lock +AT89LS52;1987078;atmel_lock +AT89LS53;7779;atmel_lock +AT89LS8252;7810;avr_fuses +AT89LS8253;7811;avr_fuses +AT89LV51;1991167;atmel_lock +AT89LV52;1991423;atmel_lock +AT89LV55;1992191;atmel_lock +AT89S51;1986822;atmel_lock +AT89S52;1987078;atmel_lock +AT89S53;7763;atmel_lock +AT89S8252;7794;avr_fuses +AT89S8253;7795;avr_fuses +AT90S1200;2002945;avr_fuses +AT90S2313;2003201;avr_fuses +AT90S2333;2003205;avr_fuses +AT90S4414;2003457;avr_fuses +AT90S4433;2003459;avr_fuses +AT90S4434;2004226;avr_fuses +AT90S8515;2003713;avr_fuses +AT90S8535;2003715;avr_fuses +AT90SLS2313;2003201;avr_fuses +AT90SLS2333;2003205;avr_fuses +AT90SLS4414;2003457;avr_fuses +AT90SLS4433;2003459;avr_fuses +AT90SLS4434;2004226;avr_fuses +AT90SLS8515;2003713;avr_fuses +AT90SLS8535;2003715;avr_fuses +ATMEGA128@TQFP64;2004738;avr3_fuses +ATMEGA1284;2004742;avr3_fuses +ATMEGA1284P;2004741;avr3_fuses +ATMEGA128A@TQFP64;2004738;avr3_fuses +ATMEGA128L@TQFP64;2004738;avr3_fuses +ATMEGA16;2003971;avr2_fuses +ATMEGA162;2003972;avr3_fuses +ATMEGA162V;2003972;avr3_fuses +ATMEGA164A;2003983;avr3_fuses +ATMEGA164PA;2003978;avr3_fuses +ATMEGA165A@TQFP64;2003975;avr3_fuses +ATMEGA165P@TQFP64;2003973;avr3_fuses +ATMEGA165PA@TQFP64;2003975;avr3_fuses +ATMEGA165PV@TQFP64;2003973;avr3_fuses +ATMEGA168;2003974;avr3_fuses +ATMEGA168A;2003974;avr3_fuses +ATMEGA168PA;2003979;avr3_fuses +ATMEGA168V;2003974;avr3_fuses +ATMEGA169A@TQFP64;2003973;avr3_fuses +ATMEGA169P@TQFP64;2003973;avr3_fuses +ATMEGA169PA@TQFP64;2003973;avr3_fuses +ATMEGA169PV@TQFP64;2003973;avr3_fuses +ATMEGA16A;2003971;avr2_fuses +ATMEGA16L;2003971;avr2_fuses +ATMEGA32;2004226;avr2_fuses +ATMEGA324A;2004245;avr3_fuses +ATMEGA324PA;2004241;avr3_fuses +ATMEGA325A@TQFP64;2004237;avr3_fuses +ATMEGA325PA@TQFP64;2004237;avr3_fuses +ATMEGA328;2004244;avr3_fuses +ATMEGA328P;2004239;avr3_fuses +ATMEGA329A@TQFP64;2004235;avr3_fuses +ATMEGA329PA@TQFP64;2004235;avr3_fuses +ATMEGA32A;2004226;avr2_fuses +ATMEGA32L;2004226;avr2_fuses +ATMEGA48;2003461;avr3_fuses +ATMEGA48A;2003461;avr3_fuses +ATMEGA48PA;2003466;avr3_fuses +ATMEGA48V;2003461;avr3_fuses +ATMEGA64@TQFP64;2004482;avr3_fuses +ATMEGA644A;2004489;avr3_fuses +ATMEGA644PA;2004490;avr3_fuses +ATMEGA645A@TQFP64;2004493;avr3_fuses +ATMEGA645P@TQFP64;2004493;avr3_fuses +ATMEGA649A@TQFP64;2004491;avr3_fuses +ATMEGA649P@TQFP64;2004491;avr3_fuses +ATMEGA64A@TQFP64;2004482;avr3_fuses +ATMEGA64L@TQFP64;2004482;avr3_fuses +ATMEGA8;2003719;avr2_fuses +ATMEGA8515;2003718;avr2_fuses +ATMEGA8515L;2003718;avr2_fuses +ATMEGA8535;2003720;avr2_fuses +ATMEGA8535L;2003720;avr2_fuses +ATMEGA88;2003722;avr3_fuses +ATMEGA88A;2003722;avr3_fuses +ATMEGA88PA;2003727;avr3_fuses +ATMEGA88V;2003722;avr3_fuses +ATMEGA8A;2003719;avr2_fuses +ATMEGA8L;2003719;avr2_fuses +ATTINY11;2002948;avr_fuses +ATTINY11L;2002948;avr_fuses +ATTINY12;2002949;avr_fuses +ATTINY12L;2002949;avr_fuses +ATTINY12V;2002949;avr_fuses +ATTINY13;2002951;avr2_fuses +ATTINY13A;2002951;avr2_fuses +ATTINY13V;2002951;avr2_fuses +ATTINY15;2002950;avr_fuses +ATTINY15L;2002950;avr_fuses +ATTINY2313;2003210;avr3_fuses +ATTINY2313A;2003210;avr3_fuses +ATTINY2313V;2003210;avr3_fuses +ATTINY24;2003211;avr3_fuses +ATTINY24A;2003211;avr3_fuses +ATTINY24V;2003211;avr3_fuses +ATTINY25;2003208;avr3_fuses +ATTINY25V;2003208;avr3_fuses +ATTINY26;2003209;avr2_fuses +ATTINY26L;2003209;avr2_fuses +ATTINY28L;2003207;avr_fuses +ATTINY28V;2003207;avr_fuses +ATTINY4313;2003469;avr3_fuses +ATTINY44;2003463;avr3_fuses +ATTINY44A;2003463;avr3_fuses +ATTINY44V;2003463;avr3_fuses +ATTINY45;2003462;avr3_fuses +ATTINY45V;2003462;avr3_fuses +ATTINY84;2003724;avr3_fuses +ATTINY84A;2003724;avr3_fuses +ATTINY84V;2003724;avr3_fuses +ATTINY85;2003723;avr3_fuses +ATTINY85V;2003723;avr3_fuses diff --git a/InfoIcDump/binary/microchip.csv b/InfoIcDump/binary/microchip.csv new file mode 100644 index 0000000..3b5a540 --- /dev/null +++ b/InfoIcDump/binary/microchip.csv @@ -0,0 +1,475 @@ +PIC10F200;0;0;pic_fuses +PIC10F202;0;0;pic_fuses +PIC10F204;0;0;pic_fuses +PIC10F206;0;0;pic_fuses +PIC10F220;0;0;pic_fuses +PIC10F222;0;0;pic_fuses +PIC12C508;0;0;pic_fuses +PIC12C508A;0;0;pic_fuses +PIC12C509;0;0;pic_fuses +PIC12C509A;0;0;pic_fuses +PIC12C671;0;0;pic_fuses +PIC12C672;0;0;pic_fuses +PIC12CE518;0;0;pic_fuses +PIC12CE519;0;0;pic_fuses +PIC12CE673;0;0;pic_fuses +PIC12CE674;0;0;pic_fuses +PIC12F508;0;0;pic_fuses +PIC12F509;0;0;pic_fuses +PIC12F510;0;0;pic_fuses +PIC12F519;0;0;pic_fuses +PIC12F609;8768;5;pic_fuses +PIC12F615;8576;5;pic_fuses +PIC12F629;3968;5;pic_fuses +PIC12F635;4000;5;pic_fuses +PIC12F675;4032;5;pic_fuses +PIC12F683;1120;5;pic_fuses +PIC12HV609;8832;5;pic_fuses +PIC12HV615;8608;5;pic_fuses +PIC12LC508;0;0;pic_fuses +PIC12LC508A;0;0;pic_fuses +PIC12LC509;0;0;pic_fuses +PIC12LC509A;0;0;pic_fuses +PIC12LC671;0;0;pic_fuses +PIC12LC672;0;0;pic_fuses +PIC12LCE518;0;0;pic_fuses +PIC12LCE519;0;0;pic_fuses +PIC12LF508;0;0;pic_fuses +PIC12LF509;0;0;pic_fuses +PIC12LF519;0;0;pic_fuses +PIC16C505;0;0;pic_fuses +PIC16C54;0;0;pic_fuses +PIC16C54A;0;0;pic_fuses +PIC16C54B;0;0;pic_fuses +PIC16C54C;0;0;pic_fuses +PIC16C55;0;0;pic_fuses +PIC16C554;0;0;pic_fuses +PIC16C558;0;0;pic_fuses +PIC16C55A;0;0;pic_fuses +PIC16C56;0;0;pic_fuses +PIC16C56A;0;0;pic_fuses +PIC16C57;0;0;pic_fuses +PIC16C57C;0;0;pic_fuses +PIC16C58A;0;0;pic_fuses +PIC16C58B;0;0;pic_fuses +PIC16C61;0;0;pic_fuses +PIC16C62;0;0;pic_fuses +PIC16C620;0;0;pic_fuses +PIC16C620A;0;0;pic_fuses +PIC16C621;0;0;pic_fuses +PIC16C621A;0;0;pic_fuses +PIC16C622;0;0;pic_fuses +PIC16C622A;0;0;pic_fuses +PIC16C62A;0;0;pic_fuses +PIC16C62B;0;0;pic_fuses +PIC16C63;0;0;pic_fuses +PIC16C63A;0;0;pic_fuses +PIC16C64;0;0;pic_fuses +PIC16C64A;0;0;pic_fuses +PIC16C65;0;0;pic_fuses +PIC16C65A;0;0;pic_fuses +PIC16C65B;0;0;pic_fuses +PIC16C66;0;0;pic_fuses +PIC16C67;0;0;pic_fuses +PIC16C71;0;0;pic_fuses +PIC16C710;0;0;pic_fuses +PIC16C711;0;0;pic_fuses +PIC16C712;0;0;pic_fuses +PIC16C716;0;0;pic_fuses +PIC16C717;0;0;pic_fuses +PIC16C72;0;0;pic_fuses +PIC16C72A;0;0;pic_fuses +PIC16C73;0;0;pic_fuses +PIC16C73A;0;0;pic_fuses +PIC16C73B;0;0;pic_fuses +PIC16C74;0;0;pic_fuses +PIC16C745;2912;5;pic_fuses +PIC16C74A;0;0;pic_fuses +PIC16C74B;0;0;pic_fuses +PIC16C76;0;0;pic_fuses +PIC16C765;0;0;pic_fuses +PIC16C77;0;0;pic_fuses +PIC16C770;0;0;pic_fuses +PIC16C771;0;0;pic_fuses +PIC16C773;0;0;pic_fuses +PIC16C774;0;0;pic_fuses +PIC16C781;0;0;pic_fuses +PIC16C782;0;0;pic_fuses +PIC16CE623;0;0;pic_fuses +PIC16CE624;0;0;pic_fuses +PIC16CE625;0;0;pic_fuses +PIC16CR54A;0;0;pic_fuses +PIC16CR54B;0;0;pic_fuses +PIC16CR54C;0;0;pic_fuses +PIC16CR56A;0;0;pic_fuses +PIC16CR57B;0;0;pic_fuses +PIC16CR57C;0;0;pic_fuses +PIC16CR58A;0;0;pic_fuses +PIC16CR58B;0;0;pic_fuses +PIC16F505;0;0;pic_fuses +PIC16F506;0;0;pic_fuses +PIC16F526;0;0;pic_fuses +PIC16F54;0;0;pic_fuses +PIC16F57;0;0;pic_fuses +PIC16F59;0;0;pic_fuses +PIC16F610;8800;5;pic_fuses +PIC16F616;4672;5;pic_fuses +PIC16F627A;4160;5;pic_fuses +PIC16F628A;4192;5;pic_fuses +PIC16F630;4288;5;pic_fuses +PIC16F631;5152;5;pic_fuses +PIC16F636;4256;5;pic_fuses +PIC16F639;4256;5;pic_fuses +PIC16F648A;4352;5;pic_fuses +PIC16F676;4320;5;pic_fuses +PIC16F677;5184;5;pic_fuses +PIC16F684;4224;5;pic_fuses +PIC16F685;1184;5;pic_fuses +PIC16F687;4896;5;pic_fuses +PIC16F688;4480;5;pic_fuses +PIC16F689;4928;5;pic_fuses +PIC16F690;5120;5;pic_fuses +PIC16F716;4416;5;pic_fuses +PIC16F72;160;5;pic_fuses +PIC16F722;6272;5;pic2_fuses +PIC16F722A;6944;5;pic2_fuses +PIC16F723;6240;5;pic2_fuses +PIC16F723A;6912;5;pic2_fuses +PIC16F724;6208;5;pic2_fuses +PIC16F726;6176;5;pic2_fuses +PIC16F727;6144;5;pic2_fuses +PIC16F73;1536;5;pic_fuses +PIC16F737;2976;5;pic2_fuses +PIC16F74;1568;5;pic_fuses +PIC16F747;3040;5;pic2_fuses +PIC16F76;1600;5;pic_fuses +PIC16F767;3744;5;pic2_fuses +PIC16F77;1632;5;pic_fuses +PIC16F777;3552;5;pic2_fuses +PIC16F785;4608;5;pic2_fuses +PIC16F818;1216;5;pic_fuses +PIC16F819;1248;5;pic_fuses +PIC16F83;0;0;pic_fuses +PIC16F84;0;0;pic_fuses +PIC16F84A;1376;5;pic_fuses +PIC16F87;1824;5;pic2_fuses +PIC16F870;3328;5;pic_fuses +PIC16F871;3360;5;pic_fuses +PIC16F872;2272;5;pic_fuses +PIC16F873;2400;5;pic_fuses +PIC16F873A;3648;5;pic_fuses +PIC16F874;2336;5;pic_fuses +PIC16F874A;3680;5;pic_fuses +PIC16F876;2528;5;pic_fuses +PIC16F876A;3584;5;pic_fuses +PIC16F877;2464;5;pic_fuses +PIC16F877A;3616;5;pic_fuses +PIC16F88;1888;5;pic2_fuses +PIC16F882;8192;5;pic2_fuses +PIC16F883;8224;5;pic2_fuses +PIC16F884;8256;5;pic2_fuses +PIC16F886;8288;5;pic2_fuses +PIC16F887;8320;5;pic2_fuses +PIC16F913;5088;5;pic_fuses +PIC16F914;5056;5;pic_fuses +PIC16F916;5024;5;pic_fuses +PIC16F917;4992;5;pic_fuses +PIC16F946;5216;5;pic_fuses +PIC16HV610;8864;5;pic_fuses +PIC16HV616;4704;5;pic_fuses +PIC16HV785;4640;5;pic_fuses +PIC16LC505;0;0;pic_fuses +PIC16LC54;0;0;pic_fuses +PIC16LC54A;0;0;pic_fuses +PIC16LC54C;0;0;pic_fuses +PIC16LC55;0;0;pic_fuses +PIC16LC554;0;0;pic_fuses +PIC16LC558;0;0;pic_fuses +PIC16LC56A;0;0;pic_fuses +PIC16LC58A;0;0;pic_fuses +PIC16LC58B;0;0;pic_fuses +PIC16LC620;0;0;pic_fuses +PIC16LC620A;0;0;pic_fuses +PIC16LC621A;0;0;pic_fuses +PIC16LC622;0;0;pic_fuses +PIC16LC622A;0;0;pic_fuses +PIC16LC62A;0;0;pic_fuses +PIC16LC62B;0;0;pic_fuses +PIC16LC63;0;0;pic_fuses +PIC16LC63A;0;0;pic_fuses +PIC16LC64A;0;0;pic_fuses +PIC16LC65A;0;0;pic_fuses +PIC16LC65B;0;0;pic_fuses +PIC16LC66;0;0;pic_fuses +PIC16LC67;0;0;pic_fuses +PIC16LC71;0;0;pic_fuses +PIC16LC710;0;0;pic_fuses +PIC16LC711;0;0;pic_fuses +PIC16LC712;0;0;pic_fuses +PIC16LC716;0;0;pic_fuses +PIC16LC717;0;0;pic_fuses +PIC16LC72;0;0;pic_fuses +PIC16LC72A;0;0;pic_fuses +PIC16LC73A;0;0;pic_fuses +PIC16LC73B;0;0;pic_fuses +PIC16LC74;0;0;pic_fuses +PIC16LC74A;0;0;pic_fuses +PIC16LC74B;0;0;pic_fuses +PIC16LC76;0;0;pic_fuses +PIC16LC77;0;0;pic_fuses +PIC16LC773;0;0;pic_fuses +PIC16LC774;0;0;pic_fuses +PIC16LC781;0;0;pic_fuses +PIC16LC782;0;0;pic_fuses +PIC16LCE623;0;0;pic_fuses +PIC16LF505;0;0;pic_fuses +PIC16LF506;0;0;pic_fuses +PIC16LF526;0;0;pic_fuses +PIC16LF54;0;0;pic_fuses +PIC16LF57;0;0;pic_fuses +PIC16LF59;0;0;pic_fuses +PIC16LF627A;4160;5;pic_fuses +PIC16LF628A;4192;5;pic_fuses +PIC16LF631;5152;5;pic_fuses +PIC16LF639;4256;5;pic_fuses +PIC16LF648A;4352;5;pic_fuses +PIC16LF677;5184;5;pic_fuses +PIC16LF685;1184;5;pic_fuses +PIC16LF687;4896;5;pic_fuses +PIC16LF689;4928;5;pic_fuses +PIC16LF690;5120;5;pic_fuses +PIC16LF722;6528;5;pic2_fuses +PIC16LF722A;7008;5;pic2_fuses +PIC16LF723;6496;5;pic2_fuses +PIC16LF723A;6976;5;pic2_fuses +PIC16LF724;6464;5;pic2_fuses +PIC16LF726;6432;5;pic2_fuses +PIC16LF727;6400;5;pic2_fuses +PIC16LF73;1536;5;pic_fuses +PIC16LF737;2976;5;pic2_fuses +PIC16LF74;1568;5;pic_fuses +PIC16LF747;3040;5;pic2_fuses +PIC16LF76;1600;5;pic_fuses +PIC16LF767;3744;5;pic2_fuses +PIC16LF77;1632;5;pic_fuses +PIC16LF777;3552;5;pic2_fuses +PIC16LF818;1216;5;pic_fuses +PIC16LF819;1248;5;pic_fuses +PIC16LF83;0;0;pic_fuses +PIC16LF84;0;0;pic_fuses +PIC16LF84A;1376;5;pic_fuses +PIC16LF87;1824;5;pic_fuses +PIC16LF870;3328;5;pic_fuses +PIC16LF871;3360;5;pic_fuses +PIC16LF872;2272;5;pic_fuses +PIC16LF873;2400;5;pic_fuses +PIC16LF873A;3648;5;pic_fuses +PIC16LF874;2336;5;pic_fuses +PIC16LF874A;3680;5;pic_fuses +PIC16LF876;2528;5;pic_fuses +PIC16LF876A;3584;5;pic_fuses +PIC16LF877;2464;5;pic_fuses +PIC16LF877A;3616;5;pic_fuses +PIC16LF88;1888;5;pic2_fuses +PIC16LF913;5088;5;pic_fuses +PIC16LF914;5056;5;pic_fuses +PIC16LF916;5024;5;pic_fuses +PIC16LF917;4992;5;pic_fuses +PIC16LF946;5216;5;pic_fuses +PIC18F2221;8544;4;pic3_fuses +PIC18F2321;8480;4;pic3_fuses +PIC18F2410;4448;4;pic3_fuses +PIC18F242;1152;4;pic3_fuses +PIC18F2420;4416;4;pic3_fuses +PIC18F2423;4432;4;pic3_fuses +PIC18F2450;9248;4;pic3_fuses +PIC18F2455;4704;4;pic3_fuses +PIC18F2458;10848;4;pic3_fuses +PIC18F248;2048;4;pic3_fuses +PIC18F2480;6880;4;pic3_fuses +PIC18F24J10;7424;4;pic4_fuses +PIC18F24J11;19840;4;pic4_fuses +PIC18F24J50;19456;4;pic4_fuses +PIC18F2510;4384;4;pic3_fuses +PIC18F2515;3296;4;pic3_fuses +PIC18F252;1024;4;pic3_fuses +PIC18F2520;4352;4;pic3_fuses +PIC18F2523;4368;4;pic3_fuses +PIC18F2525;3264;4;pic3_fuses +PIC18F2550;4672;4;pic3_fuses +PIC18F2553;10816;4;pic3_fuses +PIC18F258;2112;4;pic3_fuses +PIC18F2580;6848;4;pic3_fuses +PIC18F2585;3808;4;pic3_fuses +PIC18F25J10;7168;4;pic4_fuses +PIC18F25J11;19872;4;pic4_fuses +PIC18F25J50;19488;4;pic4_fuses +PIC18F2610;3232;4;pic3_fuses +PIC18F2620;3200;4;pic3_fuses +PIC18F2680;3776;4;pic3_fuses +PIC18F2682;9984;4;pic3_fuses +PIC18F2685;10016;4;pic3_fuses +PIC18F26J11;19904;4;pic4_fuses +PIC18F26J50;19520;4;pic4_fuses +PIC18F4221;8512;4;pic3_fuses +PIC18F4321;8448;4;pic3_fuses +PIC18F4410;4320;4;pic3_fuses +PIC18F442;1184;4;pic3_fuses +PIC18F4420;4288;4;pic3_fuses +PIC18F4423;4304;4;pic3_fuses +PIC18F4450;9216;4;pic3_fuses +PIC18F4455;4640;4;pic3_fuses +PIC18F4458;10784;4;pic3_fuses +PIC18F448;2080;4;pic3_fuses +PIC18F4480;6816;4;pic3_fuses +PIC18F44J10;7456;4;pic4_fuses +PIC18F44J11;19936;4;pic4_fuses +PIC18F44J50;19552;4;pic4_fuses +PIC18F4510;4256;4;pic3_fuses +PIC18F4515;3168;4;pic3_fuses +PIC18F452;1056;4;pic3_fuses +PIC18F4520;4224;4;pic3_fuses +PIC18F4523;4240;4;pic3_fuses +PIC18F4525;3136;4;pic3_fuses +PIC18F4550;4608;4;pic3_fuses +PIC18F4553;10752;4;pic3_fuses +PIC18F458;2144;4;pic3_fuses +PIC18F4580;6784;4;pic3_fuses +PIC18F4585;3744;4;pic3_fuses +PIC18F45J10;7200;4;pic4_fuses +PIC18F45J11;19968;4;pic4_fuses +PIC18F45J50;19584;4;pic4_fuses +PIC18F4610;3104;4;pic3_fuses +PIC18F4620;3072;4;pic3_fuses +PIC18F4680;3712;4;pic3_fuses +PIC18F4682;10048;4;pic3_fuses +PIC18F4685;10080;4;pic3_fuses +PIC18F46J11;20000;4;pic4_fuses +PIC18F46J50;19616;4;pic4_fuses +PIC18F63J11;14592;4;pic4_fuses +PIC18F63J90;14336;4;pic4_fuses +PIC18F64J11;14624;4;pic4_fuses +PIC18F64J90;14368;4;pic4_fuses +PIC18F65J10;5408;4;pic4_fuses +PIC18F65J11;14688;4;pic4_fuses +PIC18F65J15;5440;4;pic4_fuses +PIC18F65J50;16640;4;pic4_fuses +PIC18F65J90;14432;4;pic4_fuses +PIC18F66J10;5472;4;pic4_fuses +PIC18F66J11;17472;4;pic4_fuses +PIC18F66J15;5504;4;pic4_fuses +PIC18F66J16;17504;4;pic4_fuses +PIC18F66J50;16704;4;pic4_fuses +PIC18F66J55;16736;4;pic4_fuses +PIC18F66J90;20480;4;pic4_fuses +PIC18F66J93;20544;4;pic4_fuses +PIC18F67J10;5536;4;pic4_fuses +PIC18F67J11;17536;4;pic4_fuses +PIC18F67J50;16768;4;pic4_fuses +PIC18F67J90;20512;4;pic4_fuses +PIC18F67J93;20576;4;pic4_fuses +PIC18F83J11;14720;4;pic4_fuses +PIC18F83J90;14464;4;pic4_fuses +PIC18F84J11;14752;4;pic4_fuses +PIC18F84J90;14496;4;pic4_fuses +PIC18F85J10;5600;4;pic4_fuses +PIC18F85J11;14816;4;pic4_fuses +PIC18F85J15;5888;4;pic4_fuses +PIC18F85J50;16800;4;pic4_fuses +PIC18F85J90;14560;4;pic4_fuses +PIC18F86J10;5920;4;pic4_fuses +PIC18F86J11;17632;4;pic4_fuses +PIC18F86J15;5952;4;pic4_fuses +PIC18F86J16;17664;4;pic4_fuses +PIC18F86J50;16864;4;pic4_fuses +PIC18F86J55;16896;4;pic4_fuses +PIC18F86J90;20608;4;pic4_fuses +PIC18F86J93;20672;4;pic4_fuses +PIC18F87J10;5984;4;pic4_fuses +PIC18F87J11;17696;4;pic4_fuses +PIC18F87J50;16928;4;pic4_fuses +PIC18F87J90;20640;4;pic4_fuses +PIC18F87J93;20704;4;pic4_fuses +PIC18LF2221;8544;4;pic3_fuses +PIC18LF2321;8480;4;pic3_fuses +PIC18LF2410;4448;4;pic3_fuses +PIC18LF242;1152;4;pic3_fuses +PIC18LF2420;4416;4;pic3_fuses +PIC18LF2423;4432;4;pic3_fuses +PIC18LF2450;9248;4;pic3_fuses +PIC18LF2455;4704;4;pic3_fuses +PIC18LF2458;10848;4;pic3_fuses +PIC18LF248;2048;4;pic3_fuses +PIC18LF2480;6880;4;pic3_fuses +PIC18LF24J10;7488;4;pic4_fuses +PIC18LF24J11;20032;4;pic4_fuses +PIC18LF24J50;19648;4;pic4_fuses +PIC18LF2510;4384;4;pic3_fuses +PIC18LF2515;3296;4;pic3_fuses +PIC18LF252;1024;4;pic3_fuses +PIC18LF2520;4352;4;pic3_fuses +PIC18LF2523;4368;4;pic3_fuses +PIC18LF2525;3264;4;pic3_fuses +PIC18LF2550;4672;4;pic3_fuses +PIC18LF2553;10816;4;pic3_fuses +PIC18LF258;2112;4;pic3_fuses +PIC18LF2580;6848;4;pic3_fuses +PIC18LF2585;3808;4;pic3_fuses +PIC18LF25J10;7232;4;pic4_fuses +PIC18LF25J11;20064;4;pic4_fuses +PIC18LF25J50;19680;4;pic4_fuses +PIC18LF2610;3232;4;pic3_fuses +PIC18LF2620;3200;4;pic3_fuses +PIC18LF2680;3776;4;pic3_fuses +PIC18LF2682;9984;4;pic3_fuses +PIC18LF2685;10016;4;pic3_fuses +PIC18LF26J11;20096;4;pic4_fuses +PIC18LF26J50;19712;4;pic4_fuses +PIC18LF4221;8512;4;pic3_fuses +PIC18LF4321;8448;4;pic3_fuses +PIC18LF4410;4320;4;pic3_fuses +PIC18LF442;1184;4;pic3_fuses +PIC18LF4420;4288;4;pic3_fuses +PIC18LF4423;4304;4;pic3_fuses +PIC18LF4450;9216;4;pic3_fuses +PIC18LF4455;4640;4;pic3_fuses +PIC18LF4458;10784;4;pic3_fuses +PIC18LF448;2080;4;pic3_fuses +PIC18LF4480;6816;4;pic3_fuses +PIC18LF44J10;7520;4;pic4_fuses +PIC18LF44J11;20128;4;pic4_fuses +PIC18LF44J50;19744;4;pic4_fuses +PIC18LF4510;4256;4;pic3_fuses +PIC18LF4515;3168;4;pic3_fuses +PIC18LF452;1056;4;pic3_fuses +PIC18LF4520;4224;4;pic3_fuses +PIC18LF4523;4240;4;pic3_fuses +PIC18LF4525;3136;4;pic3_fuses +PIC18LF4550;4608;4;pic3_fuses +PIC18LF4553;10752;4;pic3_fuses +PIC18LF458;2144;4;pic3_fuses +PIC18LF4580;6784;4;pic3_fuses +PIC18LF4585;3744;4;pic3_fuses +PIC18LF45J10;7264;4;pic4_fuses +PIC18LF45J11;20160;4;pic4_fuses +PIC18LF45J50;19776;4;pic4_fuses +PIC18LF4610;3104;4;pic3_fuses +PIC18LF4620;3072;4;pic3_fuses +PIC18LF4680;3712;4;pic3_fuses +PIC18LF4682;10048;4;pic3_fuses +PIC18LF4685;10080;4;pic3_fuses +PIC18LF46J11;20192;4;pic4_fuses +PIC18LF46J50;19808;4;pic4_fuses +PIC18LF63J11;14592;4;pic4_fuses +PIC18LF63J90;14336;4;pic4_fuses +PIC18LF64J11;14624;4;pic4_fuses +PIC18LF64J90;14368;4;pic4_fuses +PIC18LF65J11;14688;4;pic4_fuses +PIC18LF65J90;14432;4;pic4_fuses +PIC18LF66J10;5472;4;pic4_fuses +PIC18LF83J11;14720;4;pic4_fuses +PIC18LF83J90;14464;4;pic4_fuses +PIC18LF84J11;14752;4;pic4_fuses +PIC18LF84J90;14496;4;pic4_fuses +PIC18LF85J11;14816;4;pic4_fuses +PIC18LF85J90;14560;4;pic4_fuses