summaryrefslogtreecommitdiffstats
path: root/src/devices/mem24
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/mem24')
-rw-r--r--src/devices/mem24/Makefile.am3
-rw-r--r--src/devices/mem24/base/Makefile.am6
-rw-r--r--src/devices/mem24/base/base.pro6
-rw-r--r--src/devices/mem24/base/mem24.cpp22
-rw-r--r--src/devices/mem24/base/mem24.h47
-rw-r--r--src/devices/mem24/gui/Makefile.am7
-rw-r--r--src/devices/mem24/gui/mem24_group_ui.cpp16
-rw-r--r--src/devices/mem24/gui/mem24_group_ui.h28
-rw-r--r--src/devices/mem24/gui/mem24_hex_view.cpp38
-rw-r--r--src/devices/mem24/gui/mem24_hex_view.h33
-rw-r--r--src/devices/mem24/gui/mem24_memory_editor.cpp80
-rw-r--r--src/devices/mem24/gui/mem24_memory_editor.h77
-rw-r--r--src/devices/mem24/mem24.pro2
-rw-r--r--src/devices/mem24/mem24/Makefile.am6
-rw-r--r--src/devices/mem24/mem24/mem24.pro6
-rw-r--r--src/devices/mem24/mem24/mem24_group.cpp43
-rw-r--r--src/devices/mem24/mem24/mem24_group.h39
-rw-r--r--src/devices/mem24/mem24/mem24_memory.cpp92
-rw-r--r--src/devices/mem24/mem24/mem24_memory.h45
-rw-r--r--src/devices/mem24/prog/Makefile.am5
-rw-r--r--src/devices/mem24/prog/mem24_prog.cpp88
-rw-r--r--src/devices/mem24/prog/mem24_prog.h63
-rw-r--r--src/devices/mem24/prog/prog.pro6
-rw-r--r--src/devices/mem24/xml/Makefile.am12
-rw-r--r--src/devices/mem24/xml/mem24_xml_to_data.cpp60
-rw-r--r--src/devices/mem24/xml/xml.pro13
-rw-r--r--src/devices/mem24/xml_data/24AA00.xml41
-rw-r--r--src/devices/mem24/xml_data/24AA01.xml41
-rw-r--r--src/devices/mem24/xml_data/24AA014.xml33
-rw-r--r--src/devices/mem24/xml_data/24AA02.xml41
-rw-r--r--src/devices/mem24/xml_data/24AA024.xml33
-rw-r--r--src/devices/mem24/xml_data/24AA025.xml33
-rw-r--r--src/devices/mem24/xml_data/24AA04.xml41
-rw-r--r--src/devices/mem24/xml_data/24AA08.xml41
-rw-r--r--src/devices/mem24/xml_data/24AA1025.xml33
-rw-r--r--src/devices/mem24/xml_data/24AA128.xml44
-rw-r--r--src/devices/mem24/xml_data/24AA16.xml41
-rw-r--r--src/devices/mem24/xml_data/24AA164.xml33
-rw-r--r--src/devices/mem24/xml_data/24AA256.xml44
-rw-r--r--src/devices/mem24/xml_data/24AA32A.xml33
-rw-r--r--src/devices/mem24/xml_data/24AA512.xml50
-rw-r--r--src/devices/mem24/xml_data/24AA515.xml33
-rw-r--r--src/devices/mem24/xml_data/24AA64.xml33
-rw-r--r--src/devices/mem24/xml_data/24AA65.xml33
-rw-r--r--src/devices/mem24/xml_data/24C00.xml43
-rw-r--r--src/devices/mem24/xml_data/24C01C.xml35
-rw-r--r--src/devices/mem24/xml_data/24C02C.xml35
-rw-r--r--src/devices/mem24/xml_data/24C65.xml32
-rw-r--r--src/devices/mem24/xml_data/24FC1025.xml32
-rw-r--r--src/devices/mem24/xml_data/24FC128.xml44
-rw-r--r--src/devices/mem24/xml_data/24FC256.xml44
-rw-r--r--src/devices/mem24/xml_data/24FC512.xml49
-rw-r--r--src/devices/mem24/xml_data/24FC515.xml32
-rw-r--r--src/devices/mem24/xml_data/24LC00.xml41
-rw-r--r--src/devices/mem24/xml_data/24LC014.xml32
-rw-r--r--src/devices/mem24/xml_data/24LC01B.xml40
-rw-r--r--src/devices/mem24/xml_data/24LC024.xml32
-rw-r--r--src/devices/mem24/xml_data/24LC025.xml32
-rw-r--r--src/devices/mem24/xml_data/24LC02B.xml40
-rw-r--r--src/devices/mem24/xml_data/24LC04B.xml40
-rw-r--r--src/devices/mem24/xml_data/24LC08B.xml40
-rw-r--r--src/devices/mem24/xml_data/24LC1025.xml32
-rw-r--r--src/devices/mem24/xml_data/24LC128.xml43
-rw-r--r--src/devices/mem24/xml_data/24LC16B.xml40
-rw-r--r--src/devices/mem24/xml_data/24LC21A.xml33
-rw-r--r--src/devices/mem24/xml_data/24LC22A.xml33
-rw-r--r--src/devices/mem24/xml_data/24LC256.xml43
-rw-r--r--src/devices/mem24/xml_data/24LC32A.xml32
-rw-r--r--src/devices/mem24/xml_data/24LC512.xml49
-rw-r--r--src/devices/mem24/xml_data/24LC515.xml32
-rw-r--r--src/devices/mem24/xml_data/24LC64.xml32
-rw-r--r--src/devices/mem24/xml_data/24LC65.xml33
-rw-r--r--src/devices/mem24/xml_data/24LCS21A.xml33
-rw-r--r--src/devices/mem24/xml_data/Makefile.am12
-rw-r--r--src/devices/mem24/xml_data/deps.mak6
-rw-r--r--src/devices/mem24/xml_data/xml_data.pro5
76 files changed, 2625 insertions, 0 deletions
diff --git a/src/devices/mem24/Makefile.am b/src/devices/mem24/Makefile.am
new file mode 100644
index 0000000..7c80d86
--- /dev/null
+++ b/src/devices/mem24/Makefile.am
@@ -0,0 +1,3 @@
+INCLUDES = -I$(top_srcdir)/src $(all_includes)
+METASOURCES = AUTO
+SUBDIRS = base xml xml_data mem24 prog gui
diff --git a/src/devices/mem24/base/Makefile.am b/src/devices/mem24/base/Makefile.am
new file mode 100644
index 0000000..336afca
--- /dev/null
+++ b/src/devices/mem24/base/Makefile.am
@@ -0,0 +1,6 @@
+INCLUDES = -I$(top_srcdir)/src $(all_includes)
+METASOURCES = AUTO
+
+noinst_LTLIBRARIES = libmem24base.la
+libmem24base_la_LDFLAGS = $(all_libraries)
+libmem24base_la_SOURCES = mem24.cpp
diff --git a/src/devices/mem24/base/base.pro b/src/devices/mem24/base/base.pro
new file mode 100644
index 0000000..a42b768
--- /dev/null
+++ b/src/devices/mem24/base/base.pro
@@ -0,0 +1,6 @@
+STOPDIR = ../../../..
+include($${STOPDIR}/lib.pro)
+
+TARGET = mem24base
+HEADERS += mem24.h
+SOURCES += mem24.cpp
diff --git a/src/devices/mem24/base/mem24.cpp b/src/devices/mem24/base/mem24.cpp
new file mode 100644
index 0000000..03bffe3
--- /dev/null
+++ b/src/devices/mem24/base/mem24.cpp
@@ -0,0 +1,22 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#include "mem24.h"
+
+QDataStream &Mem24::operator <<(QDataStream &s, const Data &data)
+{
+ s << static_cast<const Device::Data &>(data);
+ s << data._nbBytes << data._nbBlocks << data._nbBytesPage;
+ return s;
+}
+QDataStream &Mem24::operator >>(QDataStream &s, Data &data)
+{
+ s >> static_cast<Device::Data &>(data);
+ s >> data._nbBytes >> data._nbBlocks >> data._nbBytesPage;
+ return s;
+}
diff --git a/src/devices/mem24/base/mem24.h b/src/devices/mem24/base/mem24.h
new file mode 100644
index 0000000..d66ff47
--- /dev/null
+++ b/src/devices/mem24/base/mem24.h
@@ -0,0 +1,47 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#ifndef MEM24_H
+#define MEM24_H
+
+#include "common/common/misc.h"
+#include "devices/base/generic_device.h"
+
+namespace Mem24
+{
+class XmlToData;
+class Group;
+
+//-----------------------------------------------------------------------------
+class Data : public Device::Data
+{
+public:
+ Data() : Device::Data(0) {}
+ virtual QString listViewGroup() const { return i18n("24 EEPROM"); }
+ uint nbBytes() const { return _nbBytes; }
+ virtual bool matchId(BitValue, Device::IdData &) const { return false; }
+ virtual uint nbBitsAddress() const { return nbBits(_nbBytes-1); }
+ virtual bool canWriteCalibration() const { return false; }
+ uint nbBlocks() const { return _nbBlocks; }
+ uint nbBytesPage() const { return _nbBytesPage; }
+
+private:
+ uint _nbBytes, _nbBlocks, _nbBytesPage;
+
+ friend class XmlToData;
+ friend class Group;
+ friend QDataStream &operator <<(QDataStream &s, const Data &data);
+ friend QDataStream &operator >>(QDataStream &s, Data &data);
+};
+
+QDataStream &operator <<(QDataStream &s, const Data &data);
+QDataStream &operator >>(QDataStream &s, Data &data);
+
+} // namespace
+
+#endif
diff --git a/src/devices/mem24/gui/Makefile.am b/src/devices/mem24/gui/Makefile.am
new file mode 100644
index 0000000..6838d57
--- /dev/null
+++ b/src/devices/mem24/gui/Makefile.am
@@ -0,0 +1,7 @@
+INCLUDES = -I$(top_srcdir)/src $(all_includes)
+METASOURCES = AUTO
+
+noinst_LTLIBRARIES = libmem24ui.la
+libmem24ui_la_SOURCES = mem24_hex_view.cpp mem24_memory_editor.cpp \
+ mem24_group_ui.cpp
+libmem24ui_la_LDFLAGS = $(all_libraries)
diff --git a/src/devices/mem24/gui/mem24_group_ui.cpp b/src/devices/mem24/gui/mem24_group_ui.cpp
new file mode 100644
index 0000000..751e5a7
--- /dev/null
+++ b/src/devices/mem24/gui/mem24_group_ui.cpp
@@ -0,0 +1,16 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#include "mem24_group_ui.h"
+
+#include "mem24_hex_view.h"
+
+Device::HexView *Mem24::GroupUI::createHexView(const HexEditor &editor, QWidget *parent) const
+{
+ return new HexView(editor, parent);
+}
diff --git a/src/devices/mem24/gui/mem24_group_ui.h b/src/devices/mem24/gui/mem24_group_ui.h
new file mode 100644
index 0000000..37766b5
--- /dev/null
+++ b/src/devices/mem24/gui/mem24_group_ui.h
@@ -0,0 +1,28 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#ifndef MEM24_GROUP_UI_H
+#define MEM24_GROUP_UI_H
+
+#include "devices/gui/device_group_ui.h"
+
+namespace Mem24
+{
+class GroupUI : public Device::GroupUI
+{
+public:
+ virtual Device::HexView *createHexView(const HexEditor &editor, QWidget *parent) const;
+ virtual Register::View *createRegisterView(QWidget *) const { return 0; }
+ virtual Device::MemoryEditor *createConfigEditor(Device::Memory &, QWidget *) const { return 0; }
+ virtual void fillWatchListContainer(ListContainer *, QValueVector<Register::TypeData> &) const {}
+ virtual Register::ListViewItem *createWatchItem(const Register::TypeData &, KListViewItem *) const { return 0; }
+};
+
+} // namespace
+
+#endif
diff --git a/src/devices/mem24/gui/mem24_hex_view.cpp b/src/devices/mem24/gui/mem24_hex_view.cpp
new file mode 100644
index 0000000..0ada8d0
--- /dev/null
+++ b/src/devices/mem24/gui/mem24_hex_view.cpp
@@ -0,0 +1,38 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#include "mem24_hex_view.h"
+
+#include <qlayout.h>
+#include <qlabel.h>
+#include <klocale.h>
+
+#include "mem24_memory_editor.h"
+
+Mem24::HexView::HexView(const HexEditor &editor, QWidget *parent)
+ : Device::HexView(editor, parent, "mem24_hex_view")
+{}
+
+void Mem24::HexView::display()
+{
+ Memory *pmemory = static_cast<Memory *>(_memory);
+ MemoryTypeEditor *e = new MemoryTypeEditor(this, *pmemory, this);
+ e->init(true);
+ e->show();
+ _top->addWidget(e);
+ addEditor(e);
+}
+
+BitValue Mem24::HexView::checksum() const
+{
+ if ( _memory==0 ) return 0x0000;
+ BitValue cs = 0x0000;
+ for (uint i=0; i<static_cast<const Data &>(_memory->device()).nbBytes(); i++)
+ cs += static_cast<const Memory *>(_memory)->byte(i);
+ return cs.maskWith(0xFFFF);
+}
diff --git a/src/devices/mem24/gui/mem24_hex_view.h b/src/devices/mem24/gui/mem24_hex_view.h
new file mode 100644
index 0000000..378a25e
--- /dev/null
+++ b/src/devices/mem24/gui/mem24_hex_view.h
@@ -0,0 +1,33 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#ifndef MEM24_HEX_VIEW_H
+#define MEM24_HEX_VIEW_H
+
+class QVBoxLayout;
+
+#include "devices/gui/hex_view.h"
+
+namespace Mem24
+{
+
+class HexView : public Device::HexView
+{
+Q_OBJECT
+public:
+ HexView(const HexEditor &editor, QWidget *parent);
+ virtual uint nbChecksumChars() const { return 4; }
+ virtual BitValue checksum() const;
+
+private:
+ virtual void display();
+};
+
+} // namespace
+
+#endif
diff --git a/src/devices/mem24/gui/mem24_memory_editor.cpp b/src/devices/mem24/gui/mem24_memory_editor.cpp
new file mode 100644
index 0000000..61f98fe
--- /dev/null
+++ b/src/devices/mem24/gui/mem24_memory_editor.cpp
@@ -0,0 +1,80 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#include "mem24_memory_editor.h"
+
+#include <qlayout.h>
+#include <klocale.h>
+#include <kpushbutton.h>
+
+#include "common/gui/misc_gui.h"
+#include "mem24_hex_view.h"
+#include "progs/base/generic_prog.h"
+#include "libgui/main_global.h"
+#include "devices/base/device_group.h"
+
+//-----------------------------------------------------------------------------
+Mem24::MemoryRangeEditor::MemoryRangeEditor(Memory &memory, QWidget *parent)
+ : Device::MemoryRangeEditor(memory, 16, 16, 0, -1, parent, "mem24_memory_range_editor"),
+ MemoryCaster(memory)
+{}
+
+Device::HexWordEditor *Mem24::MemoryRangeEditor::createHexWordEditor(QWidget *parent)
+{
+ return new HexWordEditor(memory(), parent);
+}
+
+//-----------------------------------------------------------------------------
+Mem24::MemoryTypeEditor::MemoryTypeEditor(const HexView *hexview, Memory &memory, QWidget *parent)
+ : Device::MemoryTypeEditor(hexview, memory, parent, "mem24_memory_type_editor"),
+ MemoryCaster(memory)
+{}
+
+void Mem24::MemoryTypeEditor::init(bool first)
+{
+ Device::MemoryTypeEditor::init(first);
+ _title->setText(i18n("EEPROM Memory"));
+ MemoryRangeEditor *mre = new MemoryRangeEditor(memory(), this);
+ mre->init();
+ addEditor(mre);
+ _top->addWidget(mre);
+}
+
+bool Mem24::MemoryTypeEditor::internalDoAction(Device::Action action)
+{
+ switch (action) {
+ case Device::Clear:
+ case Device::ChecksumCheck:
+ memory().clear(); return true;
+ case Device::Zero: memory().fill(0); return true;
+ case Device::Reload:
+ Q_ASSERT(originalMemory());
+ memory().copyFrom(*originalMemory()); return true;
+ case Device::Program:
+ Main::programmer()->program(memory(), Device::MemoryRange());
+ return false;
+ case Device::Verify:
+ Main::programmer()->verify(memory(), Device::MemoryRange());
+ return false;
+ case Device::Read: {
+ Memory mem(device());
+ if ( !Main::programmer()->read(mem, Device::MemoryRange()) ) return false;
+ memory().copyFrom(mem);
+ return true;
+ }
+ case Device::Erase:
+ Main::programmer()->erase(Device::MemoryRange());
+ return false;
+ case Device::BlankCheck:
+ Main::programmer()->blankCheck(Device::MemoryRange());
+ return false;
+ case Device::Nb_Actions: break;
+ }
+ Q_ASSERT(false);
+ return false;
+}
diff --git a/src/devices/mem24/gui/mem24_memory_editor.h b/src/devices/mem24/gui/mem24_memory_editor.h
new file mode 100644
index 0000000..eb99e97
--- /dev/null
+++ b/src/devices/mem24/gui/mem24_memory_editor.h
@@ -0,0 +1,77 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#ifndef MEM24_MEMORY_EDITOR_H
+#define MEM24_MEMORY_EDITOR_H
+
+#include "devices/gui/memory_editor.h"
+#include "devices/gui/hex_word_editor.h"
+#include "devices/mem24/mem24/mem24_memory.h"
+
+namespace Mem24
+{
+class HexView;
+
+//-----------------------------------------------------------------------------
+class MemoryCaster
+{
+public:
+ MemoryCaster(Memory &memory) : _memory(memory) {}
+ const Data &device() const { return static_cast<const Data &>(_memory.device()); }
+ const Memory &memory() const { return static_cast<Memory &>(_memory); }
+ Memory &memory() { return static_cast<Memory &>(_memory); }
+
+private:
+ Memory &_memory;
+};
+
+//-----------------------------------------------------------------------------
+class HexWordEditor : public Device::HexWordEditor, public MemoryCaster
+{
+Q_OBJECT
+public:
+ HexWordEditor(Memory &memory, QWidget *parent)
+ : Device::HexWordEditor(memory, 2, parent), MemoryCaster(memory) {}
+
+private:
+ virtual BitValue mask() const { return 0xFF; }
+ virtual BitValue normalizeWord(BitValue value) const { return value; }
+ virtual BitValue word() const { return memory().byte(_offset); }
+ virtual void setWord(BitValue value) { memory().setByte(_offset, value); }
+};
+
+//-----------------------------------------------------------------------------
+class MemoryRangeEditor : public Device::MemoryRangeEditor, public MemoryCaster
+{
+Q_OBJECT
+public:
+ MemoryRangeEditor(Memory &memory, QWidget *parent);
+
+private:
+ virtual uint nbWords() const { return device().nbBytes(); }
+ virtual uint addressIncrement() const { return 1; }
+ virtual Address startAddress() const { return 0x0; }
+ virtual Device::HexWordEditor *createHexWordEditor(QWidget *parent);
+ virtual bool isRangeReadOnly() const { return false; }
+};
+
+//-----------------------------------------------------------------------------
+class MemoryTypeEditor : public Device::MemoryTypeEditor, public MemoryCaster
+{
+Q_OBJECT
+public:
+ MemoryTypeEditor(const HexView *hexview, Memory &memory, QWidget *parent);
+ virtual void init(bool first);
+
+private:
+ virtual bool internalDoAction(Device::Action action);
+};
+
+} // namespace
+
+#endif
diff --git a/src/devices/mem24/mem24.pro b/src/devices/mem24/mem24.pro
new file mode 100644
index 0000000..0602143
--- /dev/null
+++ b/src/devices/mem24/mem24.pro
@@ -0,0 +1,2 @@
+TEMPLATE = subdirs
+SUBDIRS = base xml mem24 xml_data prog
diff --git a/src/devices/mem24/mem24/Makefile.am b/src/devices/mem24/mem24/Makefile.am
new file mode 100644
index 0000000..3c7e9a8
--- /dev/null
+++ b/src/devices/mem24/mem24/Makefile.am
@@ -0,0 +1,6 @@
+INCLUDES = -I$(top_srcdir)/src $(all_includes)
+METASOURCES = AUTO
+
+noinst_LTLIBRARIES = libmem24.la
+libmem24_la_LDFLAGS = $(all_libraries)
+libmem24_la_SOURCES = mem24_memory.cpp mem24_group.cpp
diff --git a/src/devices/mem24/mem24/mem24.pro b/src/devices/mem24/mem24/mem24.pro
new file mode 100644
index 0000000..4bdbea4
--- /dev/null
+++ b/src/devices/mem24/mem24/mem24.pro
@@ -0,0 +1,6 @@
+STOPDIR = ../../../..
+include($${STOPDIR}/lib.pro)
+
+TARGET = mem24
+HEADERS += mem24_memory.h mem24_group.h
+SOURCES += mem24_memory.cpp mem24_group.cpp
diff --git a/src/devices/mem24/mem24/mem24_group.cpp b/src/devices/mem24/mem24/mem24_group.cpp
new file mode 100644
index 0000000..53cad5b
--- /dev/null
+++ b/src/devices/mem24/mem24/mem24_group.cpp
@@ -0,0 +1,43 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#include "mem24_group.h"
+
+#include "mem24_memory.h"
+
+Device::Memory *Mem24::Group::createMemory(const Device::Data &data) const
+{
+ return new Memory(static_cast<const Mem24::Data &>(data));
+}
+
+QString Mem24::Group::informationHtml(const Device::Data &data) const
+{
+ const Mem24::Data &mdata = static_cast<const Mem24::Data &>(data);
+ QString tmp = i18n("%1 bytes").arg(formatNumber(mdata.nbBytes()));
+ return htmlTableRow(i18n("Memory Size"), tmp);
+}
+
+#if !defined(NO_KDE)
+QPixmap Mem24::Group::memoryGraph(const Device::Data &data) const
+{
+ const Mem24::Data &mdata = static_cast<const Mem24::Data &>(data);
+ uint offset = 0x0;
+ QValueList<Device::MemoryGraphData> ranges;
+ for (uint i=0; i<mdata.nbBlocks(); i++) {
+ Device::MemoryGraphData data;
+ data.startAddress = offset;
+ offset += mdata.nbBytes() / mdata.nbBlocks();
+ data.endAddress = offset - 1;
+ data.start = toHexLabel(data.startAddress, mdata.nbCharsAddress());
+ data.end = toHexLabel(data.endAddress, mdata.nbCharsAddress());
+ data.label = i18n("Block #%1").arg(i+1);
+ ranges.append(data);
+ }
+ return Device::memoryGraph(ranges);
+}
+#endif
diff --git a/src/devices/mem24/mem24/mem24_group.h b/src/devices/mem24/mem24/mem24_group.h
new file mode 100644
index 0000000..46a1234
--- /dev/null
+++ b/src/devices/mem24/mem24/mem24_group.h
@@ -0,0 +1,39 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#ifndef MEM24_GROUP_H
+#define MEM24_GROUP_H
+
+#include "common/global/global.h"
+#include "devices/base/device_group.h"
+#include "devices/mem24/base/mem24.h"
+
+namespace Mem24
+{
+extern const uint DATA_SIZE;
+extern const char *DATA_STREAM;
+
+class Group : public Device::Group<Data>
+{
+public:
+ virtual QString name() const { return "mem24"; }
+ virtual QString label() const { return i18n("Serial Memory 24"); }
+ virtual Device::Memory *createMemory(const Device::Data &data) const;
+ virtual QString informationHtml(const Device::Data &data) const;
+#if !defined(NO_KDE)
+ virtual QPixmap memoryGraph(const Device::Data &data) const;
+#endif
+
+private:
+ virtual uint dataSize() const { return DATA_SIZE; }
+ virtual const char *dataStream() const { return DATA_STREAM; }
+};
+
+} // namespace
+
+#endif
diff --git a/src/devices/mem24/mem24/mem24_memory.cpp b/src/devices/mem24/mem24/mem24_memory.cpp
new file mode 100644
index 0000000..a4296ea
--- /dev/null
+++ b/src/devices/mem24/mem24/mem24_memory.cpp
@@ -0,0 +1,92 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#include "mem24_memory.h"
+
+#include <qfile.h>
+
+#include "common/global/global.h"
+#include "common/common/misc.h"
+
+Mem24::Memory::Memory(const Data &data)
+ : Device::Memory(data)
+{
+ fill(BitValue());
+}
+
+void Mem24::Memory::fill(BitValue value)
+{
+ _data = Device::Array(device().nbBytes());
+ for (uint i=0; i<_data.count(); i++) _data[i] = value;
+}
+
+void Mem24::Memory::copyFrom(const Device::Memory &memory)
+{
+ Q_ASSERT( device().name()==memory.device().name() );
+ _data = static_cast<const Memory &>(memory)._data;
+}
+
+Device::Array Mem24::Memory::arrayForWriting() const
+{
+ Device::Array data(_data.count());
+ for (uint i=0; i<data.count(); i++) data[i] = _data[i].maskWith(0xFF);
+ return data;
+}
+
+BitValue Mem24::Memory::byte(uint offset) const
+{
+ Q_ASSERT( _data.size()>offset );
+ return _data[offset];
+}
+
+void Mem24::Memory::setByte(uint offset, BitValue value)
+{
+ Q_ASSERT( _data.size()>offset );
+ Q_ASSERT( value<=0xFF );
+ _data[offset] = value;
+}
+
+BitValue Mem24::Memory::checksum() const
+{
+ BitValue cs = 0x0000;
+ for (uint i=0; i<_data.count(); i++) cs += _data[i];
+ return cs.maskWith(0xFFFF);
+}
+
+//-----------------------------------------------------------------------------
+void Mem24::Memory::savePartial(QTextStream &stream, HexBuffer::Format format) const
+{
+ HexBuffer hb = toHexBuffer();
+ hb.savePartial(stream, format);
+}
+
+//-----------------------------------------------------------------------------
+HexBuffer Mem24::Memory::toHexBuffer() const
+{
+ HexBuffer hb;
+ for (uint k=0; k<device().nbBytes(); k++) hb.insert(k, _data[k]);
+ return hb;
+}
+
+void Mem24::Memory::fromHexBuffer(const HexBuffer &hb, WarningTypes &result,
+ QStringList &warnings, QMap<uint, bool> &inRange)
+{
+ BitValue mask = 0xFF;
+ for (uint k=0; k<device().nbBytes(); k++) {
+ _data[k] = hb[k];
+ if ( _data[k].isInitialized() ) {
+ inRange[k] = true;
+ if ( !(result & ValueTooLarge) && !_data[k].isInside(mask) ) {
+ result |= ValueTooLarge;
+ warnings += i18n("At least one word (at offset %1) is larger (%2) than the corresponding mask (%3).")
+ .arg(toHexLabel(k, 8)).arg(toHexLabel(_data[k], 8)).arg(toHexLabel(mask, 8));
+ }
+ _data[k] = _data[k].maskWith(mask);
+ }
+ }
+}
diff --git a/src/devices/mem24/mem24/mem24_memory.h b/src/devices/mem24/mem24/mem24_memory.h
new file mode 100644
index 0000000..fbd6c64
--- /dev/null
+++ b/src/devices/mem24/mem24/mem24_memory.h
@@ -0,0 +1,45 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#ifndef MEM24_MEMORY_H
+#define MEM24_MEMORY_H
+
+#include "common/global/global.h"
+#include "devices/base/generic_memory.h"
+#include "devices/base/hex_buffer.h"
+#include "devices/mem24/base/mem24.h"
+
+namespace Mem24
+{
+
+class Memory : public Device::Memory
+{
+public:
+ Memory(const Data &data);
+ const Data &device() const { return static_cast<const Data &>(_device); }
+ virtual void fill(BitValue value);
+ virtual void checksumCheckFill() { clear(); }
+ Device::Array arrayForWriting() const;
+ BitValue byte(uint offset) const;
+ void setByte(uint offset, BitValue value);
+ virtual BitValue checksum() const;
+
+ virtual HexBuffer toHexBuffer() const;
+ virtual void copyFrom(const Device::Memory &memory);
+
+private:
+ Device::Array _data;
+
+ virtual void savePartial(QTextStream &stream, HexBuffer::Format format) const;
+ virtual void fromHexBuffer(const HexBuffer &hb, WarningTypes &warningTypes,
+ QStringList &warnings, QMap<uint, bool> &inRange);
+};
+
+} // namespace
+
+#endif
diff --git a/src/devices/mem24/prog/Makefile.am b/src/devices/mem24/prog/Makefile.am
new file mode 100644
index 0000000..1c1a55e
--- /dev/null
+++ b/src/devices/mem24/prog/Makefile.am
@@ -0,0 +1,5 @@
+INCLUDES = -I$(top_srcdir)/src $(all_includes)
+METASOURCES = AUTO
+
+noinst_LTLIBRARIES = libmem24prog.la
+libmem24prog_la_SOURCES = mem24_prog.cpp
diff --git a/src/devices/mem24/prog/mem24_prog.cpp b/src/devices/mem24/prog/mem24_prog.cpp
new file mode 100644
index 0000000..4c4b201
--- /dev/null
+++ b/src/devices/mem24/prog/mem24_prog.cpp
@@ -0,0 +1,88 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#include "mem24_prog.h"
+
+#include "common/global/global.h"
+#include "devices/list/device_list.h"
+#include "progs/base/prog_config.h"
+
+//-----------------------------------------------------------------------------
+bool Programmer::Mem24DeviceSpecific::read(Device::Array &data, const VerifyData *vdata)
+{
+ setPowerOn();
+ doRead(data, vdata);
+ setPowerOff();
+ return !hasError();
+}
+
+bool Programmer::Mem24DeviceSpecific::write(const Device::Array &data)
+{
+ setPowerOn();
+ doWrite(data);
+ setPowerOff();
+ return !hasError();
+}
+
+bool Programmer::Mem24DeviceSpecific::verifyByte(uint index, BitValue d, const VerifyData &vdata)
+{
+ BitValue v = static_cast<const Mem24::Memory &>(vdata.memory).byte(index);
+ v = v.maskWith(0xFF);
+ d = d.maskWith(0xFF);
+ if ( v==d ) return true;
+ Address address = index;
+ if ( vdata.actions & BlankCheckVerify )
+ log(Log::LineType::Error, i18n("Device memory is not blank (at address %1: reading %2 and expecting %3).")
+ .arg(toHexLabel(address, device().nbCharsAddress())).arg(toHexLabel(d, 2)).arg(toHexLabel(v, 2)));
+ else log(Log::LineType::Error, i18n("Device memory doesn't match hex file (at address %1: reading %2 and expecting %3).")
+ .arg(toHexLabel(address, device().nbCharsAddress())).arg(toHexLabel(d, 2)).arg(toHexLabel(v, 2)));
+ return false;
+}
+
+//----------------------------------------------------------------------------
+uint Programmer::Mem24Base::nbSteps(Task task, const Device::MemoryRange *) const
+{
+ uint nb = device()->nbBytes();
+ if ( task==Task::Write && readConfigEntry(Config::VerifyAfterProgram).toBool() ) nb += device()->nbBytes();
+ return nb;
+}
+
+bool Programmer::Mem24Base::internalErase(const Device::MemoryRange &)
+{
+ initProgramming();
+ Mem24::Memory memory(*device());
+ return specific()->write(memory.arrayForWriting());
+}
+
+bool Programmer::Mem24Base::internalRead(Device::Memory *memory, const Device::MemoryRange &, const VerifyData *vdata)
+{
+ initProgramming();
+ Device::Array data;
+ if ( !specific()->read(data, vdata) ) return false;
+ if (memory) for (uint i=0; i<data.count(); i++) static_cast<Mem24::Memory *>(memory)->setByte(i, data[i]);
+ return true;
+}
+
+bool Programmer::Mem24Base::internalProgram(const Device::Memory &memory, const Device::MemoryRange &)
+{
+ initProgramming();
+ const Mem24::Memory &pmemory = static_cast<const Mem24::Memory &>(memory);
+ const Device::Array &data = pmemory.arrayForWriting();
+ if ( !specific()->write(data) ) return false;
+ if ( !readConfigEntry(Config::VerifyAfterProgram).toBool() ) return true;
+ VerifyActions actions = IgnoreProtectedVerify;
+ if ( readConfigEntry(Config::OnlyVerifyProgrammed).toBool() ) actions |= OnlyProgrammedVerify;
+ VerifyData vdata(actions, pmemory);
+ Device::Array adata;
+ return specific()->read(adata, &vdata);
+}
+
+bool Programmer::Mem24Base::verifyDeviceId()
+{
+ return specific()->verifyPresence();
+}
diff --git a/src/devices/mem24/prog/mem24_prog.h b/src/devices/mem24/prog/mem24_prog.h
new file mode 100644
index 0000000..86948c2
--- /dev/null
+++ b/src/devices/mem24/prog/mem24_prog.h
@@ -0,0 +1,63 @@
+/***************************************************************************
+ * Copyright (C) 2006 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#ifndef MEM24_PROG_H
+#define MEM24_PROG_H
+
+#include "progs/base/generic_prog.h"
+#include "devices/mem24/mem24/mem24_memory.h"
+
+namespace Programmer
+{
+//-----------------------------------------------------------------------------
+class Mem24DeviceSpecific : public DeviceSpecific
+{
+public:
+ Mem24DeviceSpecific(::Programmer::Base &base) : DeviceSpecific(base) {}
+ const Mem24::Data &device() const { return static_cast<const Mem24::Data &>(*_base.device()); }
+ bool read(Device::Array &data, const VerifyData *vdata);
+ bool write(const Device::Array &data);
+ bool verifyByte(uint index, BitValue d, const VerifyData &vdata);
+ virtual bool verifyPresence() = 0;
+
+protected:
+ virtual bool doRead(Device::Array &data, const VerifyData *vdata) = 0;
+ virtual bool doWrite(const Device::Array &data) = 0;
+};
+
+//-----------------------------------------------------------------------------
+class Mem24Hardware : public Hardware
+{
+public:
+ Mem24Hardware(::Programmer::Base &base, Port::Base *port, const QString &name) : Hardware(base, port, name) {}
+ const Mem24::Data &device() const { return static_cast<const Mem24::Data &>(*_base.device()); }
+};
+
+//-----------------------------------------------------------------------------
+class Mem24Base : public Base
+{
+public:
+ Mem24Base(const Group &group, const Mem24::Data *data, const char *name) : Base(group, data, name) {}
+ const Mem24::Data *device() const { return static_cast<const Mem24::Data *>(_device); }
+
+protected:
+ Mem24DeviceSpecific *specific() const { return static_cast<Mem24DeviceSpecific *>(_specific); }
+ virtual bool verifyDeviceId();
+ virtual uint nbSteps(Task task, const Device::MemoryRange *range) const;
+ virtual bool initProgramming() { return true; }
+ virtual bool checkErase() { return true; }
+ virtual bool internalErase(const Device::MemoryRange &range);
+ virtual bool checkRead() { return true; }
+ virtual bool internalRead(Device::Memory *memory, const Device::MemoryRange &range, const VerifyData *vdata);
+ virtual bool checkProgram(const Device::Memory &) { return true; }
+ virtual bool internalProgram(const Device::Memory &memory, const Device::MemoryRange &range);
+};
+
+} // namespace
+
+#endif
diff --git a/src/devices/mem24/prog/prog.pro b/src/devices/mem24/prog/prog.pro
new file mode 100644
index 0000000..2acd347
--- /dev/null
+++ b/src/devices/mem24/prog/prog.pro
@@ -0,0 +1,6 @@
+STOPDIR = ../../../..
+include($${STOPDIR}/lib.pro)
+
+TARGET = mem24prog
+HEADERS += mem24_prog.h
+SOURCES += mem24_prog.cpp
diff --git a/src/devices/mem24/xml/Makefile.am b/src/devices/mem24/xml/Makefile.am
new file mode 100644
index 0000000..88a4305
--- /dev/null
+++ b/src/devices/mem24/xml/Makefile.am
@@ -0,0 +1,12 @@
+INCLUDES = -I$(top_srcdir)/src $(all_includes)
+METASOURCES = AUTO
+
+noinst_PROGRAMS = mem24_xml_to_data
+
+mem24_xml_to_data_SOURCES = mem24_xml_to_data.cpp
+mem24_xml_to_data_DEPENDENCIES = $(top_builddir)/src/devices/mem24/base/libmem24base.la \
+ $(top_builddir)/src/xml_to_data/libxmltodata.la $(top_builddir)/src/devices/base/libdevicebase.la \
+ $(top_builddir)/src/common/common/libcommon.la
+mem24_xml_to_data_LDADD = $(top_builddir)/src/devices/mem24/base/libmem24base.la \
+ $(top_builddir)/src/xml_to_data/libxmltodata.la $(top_builddir)/src/devices/base/libdevicebase.la \
+ $(top_builddir)/src/common/common/libcommon.la $(LIB_KDECORE)
diff --git a/src/devices/mem24/xml/mem24_xml_to_data.cpp b/src/devices/mem24/xml/mem24_xml_to_data.cpp
new file mode 100644
index 0000000..734ebca
--- /dev/null
+++ b/src/devices/mem24/xml/mem24_xml_to_data.cpp
@@ -0,0 +1,60 @@
+/***************************************************************************
+ * Copyright (C) 2006-2007 Nicolas Hadacek <hadacek@kde.org> *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+#include <qfile.h>
+#include <qtextstream.h>
+
+#include "xml_to_data/device_xml_to_data.h"
+#include "common/common/misc.h"
+#include "devices/mem24/base/mem24.h"
+
+namespace Mem24
+{
+
+class XmlToData : public Device::XmlToData<Data>
+{
+private:
+ virtual uint nbOutputFiles(uint) const { return 1; }
+ virtual bool isIncluded(uint, uint) const { return true; }
+ virtual QString namespaceName() const { return "Mem24"; }
+
+virtual void processDevice(QDomElement device)
+{
+ Device::XmlToDataBase::processDevice(device);
+
+ QDomElement e = findUniqueElement(device, "memory", "name", QString::null);
+ bool ok;
+ data()->_nbBytes = fromHexLabel(e.attribute("size"), &ok);
+ if ( !ok ) qFatal("Missing or invalid size");
+ data()->_nbBlocks = e.attribute("nb_blocks").toUInt(&ok);
+ if ( !ok || data()->_nbBlocks==0 ) qFatal("Missing, zero, or invalid nb_blocks");
+ if ( (data()->_nbBytes % data()->_nbBlocks)!=0 ) qFatal("nb_blocks should divide size");
+ if ( data()->_nbBlocks>8 ) qFatal("nb_blocks is too large (>8)");
+ data()->_nbBytesPage = e.attribute("page_size").toUInt(&ok);
+ if ( !ok || data()->_nbBytesPage==0 ) qFatal("Missing, zero, or invalid page_size");
+ if ( ((data()->_nbBytes/data()->_nbBlocks) % data()->_nbBytesPage)!=0 ) qFatal("page_size should divide size/nb_blocks");
+ QStringList names;
+ names.append(QString::null);
+ checkTagNames(device, "memory", names);
+}
+
+virtual void checkPins(const QMap<QString, uint> &pinLabels) const
+{
+ if ( !pinLabels.contains("VCC") ) qFatal("No VDD pin specified");
+ if ( !pinLabels.contains("VSS") ) qFatal("No VSS pin specified");
+ QMap<QString, uint>::const_iterator it;
+ for (it=pinLabels.begin(); it!=pinLabels.end(); ++it)
+ if ( it.data()!=1 ) qFatal(QString("Duplicated pin %1").arg(it.key()));
+}
+
+}; // class
+
+} // namespace
+
+//-----------------------------------------------------------------------------
+XML_MAIN(Mem24::XmlToData)
diff --git a/src/devices/mem24/xml/xml.pro b/src/devices/mem24/xml/xml.pro
new file mode 100644
index 0000000..9730b29
--- /dev/null
+++ b/src/devices/mem24/xml/xml.pro
@@ -0,0 +1,13 @@
+STOPDIR = ../../../..
+include($${STOPDIR}/app.pro)
+
+TARGET = mem24_xml_to_data
+SOURCES += mem24_xml_to_data.cpp
+LIBS += ../../../devices/mem24/base/libmem24base.a ../../../xml_to_data/libxmltodata.a \
+ ../../../devices/base/libdevicebase.a ../../../common/global/libglobal.a \
+ ../../../common/nokde/libnokde.a ../../../common/common/libcommon.a
+
+unix:QMAKE_POST_LINK = cd ../xml_data && ../xml/mem24_xml_to_data
+unix:QMAKE_CLEAN += ../xml_data/mem24_data.cpp
+win32:QMAKE_POST_LINK = cd ..\xml_data && ..\xml\mem24_xml_to_data.exe
+win32:QMAKE_CLEAN += ..\xml_data\mem24_data.cpp
diff --git a/src/devices/mem24/xml_data/24AA00.xml b/src/devices/mem24/xml_data/24AA00.xml
new file mode 100644
index 0000000..6b9e114
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA00.xml
@@ -0,0 +1,41 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA00" document="010770" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x10" nb_blocks="1" page_size="1" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="N/C" />
+ <pin index="5" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA01.xml b/src/devices/mem24/xml_data/24AA01.xml
new file mode 100644
index 0000000..f3aa59d
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA01.xml
@@ -0,0 +1,41 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA01" document="010771" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x80" nb_blocks="1" page_size="8" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA014.xml b/src/devices/mem24/xml_data/24AA014.xml
new file mode 100644
index 0000000..91b93ca
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA014.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA014" document="010772" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x80" nb_blocks="1" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA02.xml b/src/devices/mem24/xml_data/24AA02.xml
new file mode 100644
index 0000000..a4c3174
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA02.xml
@@ -0,0 +1,41 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA02" document="010774" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x100" nb_blocks="1" page_size="8" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA024.xml b/src/devices/mem24/xml_data/24AA024.xml
new file mode 100644
index 0000000..7d2bfe5
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA024.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA024" document="010775" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x100" nb_blocks="1" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA025.xml b/src/devices/mem24/xml_data/24AA025.xml
new file mode 100644
index 0000000..174c163
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA025.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA025" document="020310" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x100" nb_blocks="1" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA04.xml b/src/devices/mem24/xml_data/24AA04.xml
new file mode 100644
index 0000000..18ca2ac
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA04.xml
@@ -0,0 +1,41 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA04" document="010777" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x200" nb_blocks="2" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA08.xml b/src/devices/mem24/xml_data/24AA08.xml
new file mode 100644
index 0000000..84852f2
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA08.xml
@@ -0,0 +1,41 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA08" document="010779" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x400" nb_blocks="4" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA1025.xml b/src/devices/mem24/xml_data/24AA1025.xml
new file mode 100644
index 0000000..54940f3
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA1025.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA1025" document="024638" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x20000" nb_blocks="2" page_size="128" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA128.xml b/src/devices/mem24/xml_data/24AA128.xml
new file mode 100644
index 0000000..bf113e8
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA128.xml
@@ -0,0 +1,44 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA128" document="010781" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x4000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="msop" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA16.xml b/src/devices/mem24/xml_data/24AA16.xml
new file mode 100644
index 0000000..fb471b5
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA16.xml
@@ -0,0 +1,41 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA16" document="010783" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x800" nb_blocks="8" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA164.xml b/src/devices/mem24/xml_data/24AA164.xml
new file mode 100644
index 0000000..76ac031
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA164.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA164" document="010349" status="EOL" alternatives="24AA16" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="commercial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="6" />
+ <frequency start="0.1" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x800" nb_blocks="8" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA256.xml b/src/devices/mem24/xml_data/24AA256.xml
new file mode 100644
index 0000000..899389d
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA256.xml
@@ -0,0 +1,44 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA256" document="010785" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x8000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="msop" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA32A.xml b/src/devices/mem24/xml_data/24AA32A.xml
new file mode 100644
index 0000000..bc8d0f4
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA32A.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA32A" document="010787" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x1000" nb_blocks="1" page_size="32" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA512.xml b/src/devices/mem24/xml_data/24AA512.xml
new file mode 100644
index 0000000..baa575e
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA512.xml
@@ -0,0 +1,50 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA512" document="010789" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x10000" nb_blocks="1" page_size="128" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="tssop" nb_pins="14" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="N/C" />
+ <pin index="5" name="N/C" />
+ <pin index="6" name="A2" />
+ <pin index="7" name="VSS" />
+ <pin index="8" name="SDA" />
+ <pin index="9" name="SCL" />
+ <pin index="10" name="N/C" />
+ <pin index="11" name="N/C" />
+ <pin index="12" name="N/C" />
+ <pin index="13" name="WP" />
+ <pin index="14" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA515.xml b/src/devices/mem24/xml_data/24AA515.xml
new file mode 100644
index 0000000..b80a53a
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA515.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA515" document="010791" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x10000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA64.xml b/src/devices/mem24/xml_data/24AA64.xml
new file mode 100644
index 0000000..0d52b6b
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA64.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA64" document="010793" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x2000" nb_blocks="1" page_size="32" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24AA65.xml b/src/devices/mem24/xml_data/24AA65.xml
new file mode 100644
index 0000000..b35b50b
--- /dev/null
+++ b/src/devices/mem24/xml_data/24AA65.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24AA65" document="010795" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="commercial" >
+ <frequency start="0" end="0.1" vdd_min="1.8" vdd_max="6" />
+ <frequency start="0.1" end="0.4" vdd_min="4.5" vdd_max="6" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x2000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24C00.xml b/src/devices/mem24/xml_data/24C00.xml
new file mode 100644
index 0000000..13bc0f7
--- /dev/null
+++ b/src/devices/mem24/xml_data/24C00.xml
@@ -0,0 +1,43 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24C00" document="010796" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.1" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x10" nb_blocks="1" page_size="1" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="N/C" />
+ <pin index="5" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24C01C.xml b/src/devices/mem24/xml_data/24C01C.xml
new file mode 100644
index 0000000..3526522
--- /dev/null
+++ b/src/devices/mem24/xml_data/24C01C.xml
@@ -0,0 +1,35 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24C01C" document="010797" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.1" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x80" nb_blocks="1" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="TEST" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24C02C.xml b/src/devices/mem24/xml_data/24C02C.xml
new file mode 100644
index 0000000..f4ce091
--- /dev/null
+++ b/src/devices/mem24/xml_data/24C02C.xml
@@ -0,0 +1,35 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24C02C" document="010798" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.1" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x100" nb_blocks="1" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24C65.xml b/src/devices/mem24/xml_data/24C65.xml
new file mode 100644
index 0000000..6f9be98
--- /dev/null
+++ b/src/devices/mem24/xml_data/24C65.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24C65" document="010799" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="4.5" vdd_max="6" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x2000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24FC1025.xml b/src/devices/mem24/xml_data/24FC1025.xml
new file mode 100644
index 0000000..c783952
--- /dev/null
+++ b/src/devices/mem24/xml_data/24FC1025.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24FC1025" document="024639" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="1" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x20000" nb_blocks="2" page_size="128" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24FC128.xml b/src/devices/mem24/xml_data/24FC128.xml
new file mode 100644
index 0000000..88b0c8e
--- /dev/null
+++ b/src/devices/mem24/xml_data/24FC128.xml
@@ -0,0 +1,44 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24FC128" document="010800" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.4" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.4" end="1" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x4000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="msop" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24FC256.xml b/src/devices/mem24/xml_data/24FC256.xml
new file mode 100644
index 0000000..08595ed
--- /dev/null
+++ b/src/devices/mem24/xml_data/24FC256.xml
@@ -0,0 +1,44 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24FC256" document="010801" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.4" vdd_min="1.8" vdd_max="5.5" />
+ <frequency start="0.4" end="1" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x8000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="msop" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24FC512.xml b/src/devices/mem24/xml_data/24FC512.xml
new file mode 100644
index 0000000..0811a8d
--- /dev/null
+++ b/src/devices/mem24/xml_data/24FC512.xml
@@ -0,0 +1,49 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24FC512" document="010802" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="1" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x10000" nb_blocks="1" page_size="128" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="tssop" nb_pins="14" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="N/C" />
+ <pin index="5" name="N/C" />
+ <pin index="6" name="A2" />
+ <pin index="7" name="VSS" />
+ <pin index="8" name="SDA" />
+ <pin index="9" name="SCL" />
+ <pin index="10" name="N/C" />
+ <pin index="11" name="N/C" />
+ <pin index="12" name="N/C" />
+ <pin index="13" name="WP" />
+ <pin index="14" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24FC515.xml b/src/devices/mem24/xml_data/24FC515.xml
new file mode 100644
index 0000000..9469c8c
--- /dev/null
+++ b/src/devices/mem24/xml_data/24FC515.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24FC515" document="010803" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="1" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x10000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC00.xml b/src/devices/mem24/xml_data/24LC00.xml
new file mode 100644
index 0000000..b6b588e
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC00.xml
@@ -0,0 +1,41 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC00" document="010804" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="2.5" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x10" nb_blocks="1" page_size="1" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="N/C" />
+ <pin index="5" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC014.xml b/src/devices/mem24/xml_data/24LC014.xml
new file mode 100644
index 0000000..f3dd3e7
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC014.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC014" document="010805" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x80" nb_blocks="1" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC01B.xml b/src/devices/mem24/xml_data/24LC01B.xml
new file mode 100644
index 0000000..f96bc6d
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC01B.xml
@@ -0,0 +1,40 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC01B" document="010806" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x80" nb_blocks="1" page_size="8" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC024.xml b/src/devices/mem24/xml_data/24LC024.xml
new file mode 100644
index 0000000..7fa84bf
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC024.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC024" document="010808" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x100" nb_blocks="1" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC025.xml b/src/devices/mem24/xml_data/24LC025.xml
new file mode 100644
index 0000000..8f5df38
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC025.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC025" document="010809" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x100" nb_blocks="1" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC02B.xml b/src/devices/mem24/xml_data/24LC02B.xml
new file mode 100644
index 0000000..3e34cde
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC02B.xml
@@ -0,0 +1,40 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC02B" document="010810" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x100" nb_blocks="1" page_size="8" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC04B.xml b/src/devices/mem24/xml_data/24LC04B.xml
new file mode 100644
index 0000000..0f83be9
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC04B.xml
@@ -0,0 +1,40 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC04B" document="010812" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x200" nb_blocks="2" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC08B.xml b/src/devices/mem24/xml_data/24LC08B.xml
new file mode 100644
index 0000000..a617e0c
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC08B.xml
@@ -0,0 +1,40 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC08B" document="010814" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x400" nb_blocks="4" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC1025.xml b/src/devices/mem24/xml_data/24LC1025.xml
new file mode 100644
index 0000000..79ba144
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC1025.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC1025" document="024636" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x20000" nb_blocks="2" page_size="128" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC128.xml b/src/devices/mem24/xml_data/24LC128.xml
new file mode 100644
index 0000000..b850eac
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC128.xml
@@ -0,0 +1,43 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC128" document="010817" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x4000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="msop" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC16B.xml b/src/devices/mem24/xml_data/24LC16B.xml
new file mode 100644
index 0000000..f07bd5e
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC16B.xml
@@ -0,0 +1,40 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC16B" document="010819" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x800" nb_blocks="8" page_size="16" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="sot23" nb_pins="5" >
+ <pin index="1" name="SCL" />
+ <pin index="2" name="VSS" />
+ <pin index="3" name="SDA" />
+ <pin index="4" name="VCC" />
+ <pin index="5" name="WP" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC21A.xml b/src/devices/mem24/xml_data/24LC21A.xml
new file mode 100644
index 0000000..010b3a2
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC21A.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC21A" document="010821" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="2.5" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x80" nb_blocks="1" page_size="8" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="VCLK" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC22A.xml b/src/devices/mem24/xml_data/24LC22A.xml
new file mode 100644
index 0000000..237b47e
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC22A.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC22A" document="010822" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="2.5" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x100" nb_blocks="1" page_size="8" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="VCLK" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC256.xml b/src/devices/mem24/xml_data/24LC256.xml
new file mode 100644
index 0000000..5a49ee9
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC256.xml
@@ -0,0 +1,43 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC256" document="010823" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x8000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="msop" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC32A.xml b/src/devices/mem24/xml_data/24LC32A.xml
new file mode 100644
index 0000000..abd17f2
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC32A.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC32A" document="010825" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x1000" nb_blocks="1" page_size="32" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC512.xml b/src/devices/mem24/xml_data/24LC512.xml
new file mode 100644
index 0000000..f643c99
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC512.xml
@@ -0,0 +1,49 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC512" document="010828" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x10000" nb_blocks="1" page_size="128" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+ <package types="tssop" nb_pins="14" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="N/C" />
+ <pin index="4" name="N/C" />
+ <pin index="5" name="N/C" />
+ <pin index="6" name="A2" />
+ <pin index="7" name="VSS" />
+ <pin index="8" name="SDA" />
+ <pin index="9" name="SCL" />
+ <pin index="10" name="N/C" />
+ <pin index="11" name="N/C" />
+ <pin index="12" name="N/C" />
+ <pin index="13" name="WP" />
+ <pin index="14" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC515.xml b/src/devices/mem24/xml_data/24LC515.xml
new file mode 100644
index 0000000..55482b3
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC515.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC515" document="010830" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x10000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC64.xml b/src/devices/mem24/xml_data/24LC64.xml
new file mode 100644
index 0000000..d35cf1a
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC64.xml
@@ -0,0 +1,32 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC64" document="010831" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="extended" >
+ <frequency start="0" end="0.4" vdd_min="2.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x2000" nb_blocks="1" page_size="32" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic tssop msop dfns" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="WP" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LC65.xml b/src/devices/mem24/xml_data/24LC65.xml
new file mode 100644
index 0000000..3fb3fbb
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LC65.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LC65" document="010833" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="2.5" vdd_max="6" />
+ <frequency start="0.1" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x2000" nb_blocks="1" page_size="64" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="A0" />
+ <pin index="2" name="A1" />
+ <pin index="3" name="A2" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="N/C" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/24LCS21A.xml b/src/devices/mem24/xml_data/24LCS21A.xml
new file mode 100644
index 0000000..0cb4846
--- /dev/null
+++ b/src/devices/mem24/xml_data/24LCS21A.xml
@@ -0,0 +1,33 @@
+<!DOCTYPE piklab_device>
+<!--************************************************************************-->
+<!--* Copyright (C) 2005-2007 Nicolas Hadacek <hadacek@kde.org> *-->
+<!--* *-->
+<!--* This program is free software; you can redistribute it and/or modify *-->
+<!--* it under the terms of the GNU General Public License as published by *-->
+<!--* the Free Software Foundation; either version 2 of the License, or *-->
+<!--* (at your option) any later version. *-->
+<!--************************************************************************-->
+<device name="24LCS21A" document="010834" status="IP" memory_technology="FLASH" >
+
+<!--* Operating characteristics ********************************************-->
+ <frequency_range name="industrial" >
+ <frequency start="0" end="0.1" vdd_min="2.5" vdd_max="5.5" />
+ <frequency start="0.1" end="0.4" vdd_min="4.5" vdd_max="5.5" />
+ </frequency_range>
+
+<!--* Memory ***************************************************************-->
+ <memory size="0x80" nb_blocks="1" page_size="8" />
+
+<!--* Packages *************************************************************-->
+ <package types="pdip soic" nb_pins="8" >
+ <pin index="1" name="N/C" />
+ <pin index="2" name="N/C" />
+ <pin index="3" name="WP" />
+ <pin index="4" name="VSS" />
+ <pin index="5" name="SDA" />
+ <pin index="6" name="SCL" />
+ <pin index="7" name="VCLK" />
+ <pin index="8" name="VCC" />
+ </package>
+
+</device>
diff --git a/src/devices/mem24/xml_data/Makefile.am b/src/devices/mem24/xml_data/Makefile.am
new file mode 100644
index 0000000..42cacaa
--- /dev/null
+++ b/src/devices/mem24/xml_data/Makefile.am
@@ -0,0 +1,12 @@
+INCLUDES = -I$(top_srcdir)/src $(all_includes)
+METASOURCES = AUTO
+
+noinst_LTLIBRARIES = libmem24xml.la
+libmem24xml_la_LDFLAGS = $(all_libraries)
+libmem24xml_la_SOURCES = mem24_data.cpp
+libmem24xml_la_DEPENDENCIES = mem24_data.cpp
+
+include deps.mak
+mem24_data.cpp: ../xml/mem24_xml_to_data $(noinst_DATA)
+ ../xml/mem24_xml_to_data
+CLEANFILES = mem24_data.cpp
diff --git a/src/devices/mem24/xml_data/deps.mak b/src/devices/mem24/xml_data/deps.mak
new file mode 100644
index 0000000..5c1f243
--- /dev/null
+++ b/src/devices/mem24/xml_data/deps.mak
@@ -0,0 +1,6 @@
+noinst_DATA = \
+ 24AA00.xml 24AA01.xml 24AA014.xml 24AA02.xml 24AA024.xml 24AA025.xml 24AA04.xml 24AA08.xml 24AA1025.xml 24AA128.xml\
+ 24AA16.xml 24AA164.xml 24AA256.xml 24AA32A.xml 24AA512.xml 24AA515.xml 24AA64.xml 24AA65.xml 24C00.xml 24C01C.xml\
+ 24C02C.xml 24C65.xml 24FC1025.xml 24FC128.xml 24FC256.xml 24FC512.xml 24FC515.xml 24LC00.xml 24LC014.xml 24LC01B.xml\
+ 24LC024.xml 24LC025.xml 24LC02B.xml 24LC04B.xml 24LC08B.xml 24LC1025.xml 24LC128.xml 24LC16B.xml 24LC21A.xml 24LC22A.xml\
+ 24LC256.xml 24LC32A.xml 24LC512.xml 24LC515.xml 24LC64.xml 24LC65.xml 24LCS21A.xml
diff --git a/src/devices/mem24/xml_data/xml_data.pro b/src/devices/mem24/xml_data/xml_data.pro
new file mode 100644
index 0000000..4842ae2
--- /dev/null
+++ b/src/devices/mem24/xml_data/xml_data.pro
@@ -0,0 +1,5 @@
+STOPDIR = ../../../..
+include($${STOPDIR}/lib.pro)
+
+TARGET = mem24xml
+SOURCES += mem24_data.cpp