diff --git a/test/simulator/hei_sim_user_interface.cpp b/test/simulator/hei_sim_user_interface.cpp
new file mode 100644
index 0000000..c3baeb3
--- /dev/null
+++ b/test/simulator/hei_sim_user_interface.cpp
@@ -0,0 +1,59 @@
+#include <hei_user_interface.hpp>
+
+#include <hei_includes.hpp>
+
+namespace libhei
+{
+
+//------------------------------------------------------------------------------
+
+ReturnCode registerRead( void * i_chip, void * o_buffer, size_t & io_bufSize,
+                         uint64_t i_regType, uint64_t i_address )
+{
+    ReturnCode rc;
+
+    HEI_ASSERT( nullptr != i_chip );
+    HEI_ASSERT( nullptr != o_buffer );
+    HEI_ASSERT( 0 != io_bufSize );
+
+    switch ( i_regType )
+    {
+        default:
+            rc = RC_REG_ACCESS_FAILURE;
+            HEI_ERR( "registerRead(%p,%p,%lx,%lx,%lx)", i_chip, o_buffer,
+                     io_bufSize, i_regType, i_address );
+    }
+
+    return rc;
+}
+
+//------------------------------------------------------------------------------
+
+#ifndef __HEI_READ_ONLY
+
+ReturnCode registerWrite( void * i_chip, void * i_buffer, size_t & io_bufSize,
+                          uint64_t i_regType, uint64_t i_address )
+{
+    ReturnCode rc;
+
+    HEI_ASSERT( nullptr != i_chip );
+    HEI_ASSERT( nullptr != i_buffer );
+    HEI_ASSERT( 0 != io_bufSize );
+
+    switch ( i_regType )
+    {
+        default:
+            rc = RC_REG_ACCESS_FAILURE;
+            HEI_ERR( "registerWrite(%p,%p,%lx,%lx,%lx)", i_chip, i_buffer,
+                     io_bufSize, i_regType, i_address );
+    }
+
+    return rc;
+}
+
+#endif
+
+//------------------------------------------------------------------------------
+
+} // end namespace libhei
+
diff --git a/test/simulator/meson.build b/test/simulator/meson.build
index b53dce5..d65e286 100644
--- a/test/simulator/meson.build
+++ b/test/simulator/meson.build
@@ -1,5 +1,6 @@
 sim_sources = [
     'hei_sim_main.cpp',
+    'hei_sim_user_interface.cpp',
     '../../src/isolator/hei_isolator.cpp',
     '../../src/register/hei_hardware_register.cpp',
     '../../src/util/hei_bit_string.cpp',
