diff --git a/hash/psion2.xml b/hash/psion2.xml
index 894caa4907a..edefefed217 100644
--- a/hash/psion2.xml
+++ b/hash/psion2.xml
@@ -2,7 +2,10 @@
+
Thesaurus and Spelling Checker
198?
Psion
@@ -545,14 +912,26 @@ Undumped datapack:
-
- Top Finance 2.1f
+
+ Top Finance v2.1
1988
Aware
-
+
-
+
+
+
+
+
+
+ Top Finance v2.2
+ 1988
+ Aware
+
+
+
+
@@ -585,7 +964,7 @@ Undumped datapack:
Travel Pack v2.0
198?
Organised Solutions Ltd, Psion
-
+
@@ -600,7 +979,7 @@ Undumped datapack:
-
+
@@ -680,6 +1059,19 @@ Undumped datapack:
+
+
+ Digitron SF12 v2.7
+ 198?
+ Silvertree Eng., Digitron Inst.
+
+
+
+
+
+
+
+
FlashPak Driver v1.9
@@ -693,6 +1085,32 @@ Undumped datapack:
+
+
+ GEAC Program Pack
+ 198?
+ Psion
+
+
+
+
+
+
+
+
+
+
+ Paralink 2.2 French
+ 198?
+ Widget Software, Silvertree Eng.
+
+
+
+
+
+
+
+
KDG Mobrey MSP100 v1.0
@@ -762,6 +1180,45 @@ Undumped datapack:
+
+
+ Sony Dealer Commander v2.2
+ 198?
+ Sony
+
+
+
+
+
+
+
+
+
+
+ Dynapoll Attend
+ 198?
+ Dynasys Technologies Inc.
+
+
+
+
+
+
+
+
+
+
+ T.R.E.P v1.6
+ 198?
+ APT Projects Ltd.
+
+
+
+
+
+
+
+
@@ -789,6 +1246,17 @@ Undumped datapack:
+
+ Comms Link 2.2
+ 198?
+ Psion
+
+
+
+
+
+
+
Comms Link 2.4
198?
@@ -811,17 +1279,6 @@ Undumped datapack:
-
- Comms Link 3.0
- 198?
- Psion
-
-
-
-
-
-
-
Comms Link 4.0
1987
@@ -855,11 +1312,23 @@ Undumped datapack:
+
+
+ Comms Modem v3.0
+ 198?
+ Extech
+
+
+
+
+
+
+
Extech Comms Printer II 4.3
198?
- Psion
+ Extech
@@ -867,14 +1336,62 @@ Undumped datapack:
-
+
Dynapen 4.4
198?
- Psion
+ Dynasys Technologies Inc.
-
+
+
+
+
+
+
+
+ Dynapen v4.3
+ 198?
+ Dynasys Technologies Inc.
+
+
+
+
+
+
+
+
+
+ Dynasys Relay-Comm v4.2
+ 198?
+ Dynasys Technologies Inc.
+
+
+
+
+
+
+
+
+
+
+ Dynasys Barcomm 2 v4.2
+ 198?
+ Dynasys Technologies Inc.
+
+
+
+
+
+
+
+
+ Dyna/Poll 485 station v1.0
+ 198?
+ Dynasys Technologies Inc.
+
+
+
diff --git a/src/mame/drivers/psion.cpp b/src/mame/drivers/psion.cpp
index a0a7362e6e5..e877ae3d52e 100644
--- a/src/mame/drivers/psion.cpp
+++ b/src/mame/drivers/psion.cpp
@@ -703,6 +703,8 @@ ROM_START( psionla )
ROMX_LOAD( "36-la.rom", 0x8000, 0x8000, CRC(7442c7f6) SHA1(94f15bd06bd750be70fa4a4ab588237c5a703f65), ROM_BIOS(3))
ROM_SYSTEM_BIOS(3, "v30", "LA v3.0")
ROMX_LOAD( "30-lahp.rom", 0x8000, 0x8000, CRC(50192528) SHA1(c556d53f70bf5ecae756b2ebfc6d954912316bbe), ROM_BIOS(4))
+ ROM_SYSTEM_BIOS(4, "v36f", "LA v3.6 French")
+ ROMX_LOAD( "36-laf.rom", 0x8000, 0x8000, CRC(036ef00e) SHA1(98f303273e570e94a1e25a58cf1ffcec0db32165), ROM_BIOS(5))
ROM_END
ROM_START( psionp200 )
@@ -743,6 +745,8 @@ ROM_START( psionlz64 )
ROMX_LOAD( "46a-lz64.rom", 0x8000, 0x10000, CRC(9b0d5a7a) SHA1(f1cdd6ef43cd65ef18e148deca0500f0c1ad2f80), ROM_BIOS(4))
ROM_SYSTEM_BIOS(4, "v46b", "LZ64 v4.6b")
ROMX_LOAD( "46b-lz64.rom", 0x8000, 0x10000, CRC(8d1101e2) SHA1(eddd0c3a2881667a1485b0d66f82f8c7792995c2), ROM_BIOS(5))
+ ROM_SYSTEM_BIOS(5, "v45", "LZ64 v4.5")
+ ROMX_LOAD( "45-lz64.rom", 0x8000, 0x10000, CRC(4fbd5d88) SHA1(43f97549d2060840aa6313d526000530f384a08f), ROM_BIOS(6))
ROM_REGION( 0x1000, "hd44780", 0 )
ROM_LOAD( "psion_lz_charset.bin", 0x0000, 0x1000, BAD_DUMP CRC(44bff6f6) SHA1(aef544548b783d608a7d55456f6c46f421a11ed7))
@@ -767,6 +771,8 @@ ROM_START( psionlz )
ROMX_LOAD( "44-lz.rom", 0x8000, 0x10000, CRC(4a0a990b) SHA1(dde0ba69a4a7f02b610ad6bd69a8b8552b060223), ROM_BIOS(3))
ROM_SYSTEM_BIOS(3, "v45", "LZ v4.5")
ROMX_LOAD( "45-lz.rom", 0x8000, 0x10000, CRC(f95d8f39) SHA1(cb64152c2418bf730c89999d1b13c1d1ada1f082), ROM_BIOS(4))
+ ROM_SYSTEM_BIOS(4, "v45s", "LZ v4.5S")
+ ROMX_LOAD( "45-lzs.rom", 0x8000, 0x10000, CRC(2d082d7f) SHA1(fcd00864a0cc617e61997240945ea70a8e9fa211), ROM_BIOS(5))
ROM_REGION( 0x1000, "hd44780", 0 )
ROM_LOAD( "psion_lz_charset.bin", 0x0000, 0x1000, BAD_DUMP CRC(44bff6f6) SHA1(aef544548b783d608a7d55456f6c46f421a11ed7))
diff --git a/src/mame/machine/psion_pack.cpp b/src/mame/machine/psion_pack.cpp
index 98f26eb5673..d5ca2da2324 100644
--- a/src/mame/machine/psion_pack.cpp
+++ b/src/mame/machine/psion_pack.cpp
@@ -164,7 +164,7 @@ void datapack_device::update()
else if (!(m_control & DP_LINE_OUTPUT_ENABLE) && (m_control & DP_LINE_RESET))
{
// read datapack ID
- if (m_id & DP_ID_EPROM)
+ if ((m_id & DP_ID_EPROM) || software_entry() != NULL)
m_data = m_id;
else
m_data = 0x01; // for identify RAM pack