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);