diff -u -r src.orig/SConscript src/SConscript
--- src.orig/SConscript	2008-08-24 02:37:18.000000000 +0200
+++ src/SConscript	2009-03-06 21:45:04.000000000 +0100
@@ -248,6 +248,7 @@
                            proc_woodstock.c
                            proc_nut.c
                            coconut_lcd.c phineas.c helios.c helios_chargen.c
+                           voyager_lcd.c
                            mod1_file.c""")
 
 nonpareil_csim_srcs = Split ("""csim.c""")
@@ -402,6 +403,7 @@
                         debugger_gui.h debugger_cli.h
                         dis_woodstock.h dis_nut.h
                         display.h printer.h
+                        voyager_lcd.h
                         coconut_lcd.h helios.h phineas.h
                         csim.h about.h goose.h pixbuf_util.h sound.h
                         asm.h symtab.h
diff -u -r src.orig/proc_nut.c src/proc_nut.c
--- src.orig/proc_nut.c	2008-08-24 02:37:18.000000000 +0200
+++ src/proc_nut.c	2009-03-06 21:46:32.000000000 +0100
@@ -34,6 +34,7 @@
 #include "proc_int.h"
 #include "digit_ops.h"
 #include "coconut_lcd.h"
+#include "voyager_lcd.h"
 #include "proc_nut.h"
 #include "dis_nut.h"
 
@@ -1893,6 +1894,29 @@
       coconut_display_init (sim);
 
       break;
+
+    case PLATFORM_VOYAGER:
+      nut_new_ram (sim, 0x000, 8);
+      ram_size -= 8;
+
+      nut_new_ram (sim, 0x008, 3);  // I/O registers
+      nut_reg->ram_read_fn  [0x08] = nut_ram_read_zero;
+      nut_reg->ram_write_fn [0x08] = nut_ram_write_ignore;
+
+      if (ram_size > 40)
+	{
+	  nut_new_ram (sim, 0x010, 8);
+	  ram_size -= 8;
+
+	  nut_new_ram (sim, 0x018, 3);  // I/O registers
+	  nut_reg->ram_read_fn  [0x18] = nut_ram_read_zero;
+	  nut_reg->ram_write_fn [0x18] = nut_ram_write_ignore;
+	}
+
+      nut_new_ram (sim, 0x100 - ram_size, ram_size);
+
+      voyager_display_init (sim);
+      break;
     }
 
   chip_event (sim, event_reset, NULL, 0, NULL);
