diff --git a/SupportedDivecomputers.html b/SupportedDivecomputers.html
new file mode 100644
index 000000000..244826a04
--- /dev/null
+++ b/SupportedDivecomputers.html
@@ -0,0 +1,106 @@
+
- Aeris
+
+ - Atmos 2, A300 AI, Atmos AI, Atmos AI 2, Compumask, Elite, Elite T3, Elite T3, Epic, Epic, F10, Manta, XR-2
+
+
+ - Apeks
+
+
+ - Atomic Aquatics
+
+
+ - Cressi
+
+
+ - DiveRite
+
+
+ - Genesis
+
+ - React Pro, React Pro White
+
+
+ - Heinrichs Weikamp
+
+ - DR5, Frog, OSTC, OSTC 2N, OSTC 3, OSTC Mk2
+
+
+ - Hollis
+
+
+ - Mares
+
+ - Darwin, Darwin Air, Icon HD, Icon HD Net Ready, M1, M2, Matrix, Nemo, Nemo Air, Nemo Apneist, Nemo Excel, Nemo Steel, Nemo Titanium, Nemo Wide, Nemo Wide 2, Puck, Puck 2, Puck Air, Puck Pro
+
+
+ - Oceanic
+
+ - Atom 1.0, Atom 2.0, Atom 3.0, Atom 3.1, Datamask, Geo, Geo 2.0, OC1, OC1, OC1, OCi, OCS, Pro Plus 2, Pro Plus 2.1, Pro Plus 3, Veo 1.0, Veo 180, Veo 2.0, Veo 200, Veo 250, Veo 3.0, Versa Pro, VT 4.1, VT Pro, VT3, VT4
+
+
+ - Reefnet
+
+ - Sensus, Sensus Pro, Sensus Ultra
+
+
+ - Seemann
+
+
+ - Shearwater
+
+
+ - Sherwood
+
+ - Amphos, Insight, Insight 2, Wisdom, Wisdom 2, Wisdom 3
+
+
+ - Subgear
+
+
+ - Suunto
+
+ - Cobra, Cobra 2, Cobra 3, D3, D4, D4i, D6, D6i, D9, D9tx, DX, Eon, Gekko, HelO2, Mosquito, Solution, Solution Alpha, Solution Nitrox, Spyder, Stinger, Vyper, Vyper 2, Vyper Air, Vytec, Zoop
+
+
+ - Tusa
+
+ - Element II (IQ-750), Zen (IQ-900), Zen Air (IQ-950)
+
+
+ - Uemis
+
+
+ - Uwatec
+
+ - Aladin 2G, Aladin 2G, Aladin Air Twin, Aladin Air Z, Aladin Air Z Nitrox, Aladin Air Z O2, Aladin Prime, Aladin Pro, Aladin Pro Ultra, Aladin Sport Plus, Aladin Tec, Aladin Tec 2G, Galileo Luna, Galileo Sol, Galileo Terra, Galileo Trimix, Memomouse, Smart Com, Smart Pro, Smart Tec, Smart Z
+
+
+ - xDeep
+
+
+ - Zeagle
+
+
+
\ No newline at end of file
diff --git a/SupportedDivecomputers.txt b/SupportedDivecomputers.txt
new file mode 100644
index 000000000..46ce26055
--- /dev/null
+++ b/SupportedDivecomputers.txt
@@ -0,0 +1,21 @@
+Aeris: Atmos 2, A300 AI, Atmos AI, Atmos AI 2, Compumask, Elite, Elite T3, Elite T3, Epic, Epic, F10, Manta, XR-2
+Apeks: Quantum X
+Atomic Aquatics: Cobalt
+Cressi: Edy, Leonardo
+DiveRite: NiTek Trio
+Genesis: React Pro, React Pro White
+Heinrichs Weikamp: DR5, Frog, OSTC, OSTC 2N, OSTC 3, OSTC Mk2
+Hollis: DG03
+Mares: Darwin, Darwin Air, Icon HD, Icon HD Net Ready, M1, M2, Matrix, Nemo, Nemo Air, Nemo Apneist, Nemo Excel, Nemo Steel, Nemo Titanium, Nemo Wide, Nemo Wide 2, Puck, Puck 2, Puck Air, Puck Pro
+Oceanic: Atom 1.0, Atom 2.0, Atom 3.0, Atom 3.1, Datamask, Geo, Geo 2.0, OC1, OC1, OC1, OCi, OCS, Pro Plus 2, Pro Plus 2.1, Pro Plus 3, Veo 1.0, Veo 180, Veo 2.0, Veo 200, Veo 250, Veo 3.0, Versa Pro, VT 4.1, VT Pro, VT3, VT4
+Reefnet: Sensus, Sensus Pro, Sensus Ultra
+Seemann: XP5
+Shearwater: Petrel, Predator
+Sherwood: Amphos, Insight, Insight 2, Wisdom, Wisdom 2, Wisdom 3
+Subgear: XP Air, XP-10
+Suunto: Cobra, Cobra 2, Cobra 3, D3, D4, D4i, D6, D6i, D9, D9tx, DX, Eon, Gekko, HelO2, Mosquito, Solution, Solution Alpha, Solution Nitrox, Spyder, Stinger, Vyper, Vyper 2, Vyper Air, Vytec, Zoop
+Tusa: Element II (IQ-750), Zen (IQ-900), Zen Air (IQ-950)
+Uemis: Zürich
+Uwatec: Aladin 2G, Aladin 2G, Aladin Air Twin, Aladin Air Z, Aladin Air Z Nitrox, Aladin Air Z O2, Aladin Prime, Aladin Pro, Aladin Pro Ultra, Aladin Sport Plus, Aladin Tec, Aladin Tec 2G, Galileo Luna, Galileo Sol, Galileo Terra, Galileo Trimix, Memomouse, Smart Com, Smart Pro, Smart Tec, Smart Z
+xDeep: Black
+Zeagle: N2iTiON3
\ No newline at end of file
diff --git a/scripts/parse-descriptor.pl b/scripts/parse-descriptor.pl
new file mode 100644
index 000000000..604bfe568
--- /dev/null
+++ b/scripts/parse-descriptor.pl
@@ -0,0 +1,39 @@
+use Carp;
+
+#set command line arguments
+my ($infi, $outfi) = @ARGV;
+my ($type) = $outfi =~ /\.([^.]+)$/;
+
+open(my $fh, "<", $infi) || croak "can't open $infi: $!";
+open(STDOUT, ">", $outfi) || croak "can't open $outfi: $!";
+
+my $lastVend = "";
+while (<$fh>) {
+ my ($vend, $mod, $set) = split('\t', $_);
+ if ($type eq "html") {
+ if ($vend eq $lastVend) {
+ printf(", %s", $mod);
+ } else {
+ if ($lastVend eq "") {
+ printf("- %s\n\t
\n\t - %s", $vend, $mod);
+ } else {
+ printf("
\n\t
\n \n - %s\n\t
\n\t - %s", $vend, $mod);
+ }
+ }
+ } else {
+ if ($vend eq $lastVend) {
+ printf(", %s", $mod);
+ } else {
+ if ($lastVend eq "") {
+ printf("%s: %s", $vend, $mod);
+ } else {
+ printf("\n%s: %s", $vend, $mod);
+ }
+ }
+ }
+ $lastVend = $vend;
+}
+if ($type eq "html") {
+ print("
\n\t
\n \n