diff --git a/cores/archie/fpga/mist/archimedes_mist_top.v b/cores/archie/fpga/mist/archimedes_mist_top.v index e9e0e6e..806d505 100644 --- a/cores/archie/fpga/mist/archimedes_mist_top.v +++ b/cores/archie/fpga/mist/archimedes_mist_top.v @@ -97,6 +97,7 @@ wire [7:0] joyA; wire [7:0] joyB; wire [1:0] buttons; wire [1:0] switches; +wire scandoubler_disable; wire ypbpr; // the top file should generate the correct clocks for the machine @@ -147,8 +148,8 @@ assign VGA_R = ypbpr?Pr:osd_r_o; assign VGA_G = ypbpr? Y:osd_g_o; assign VGA_B = ypbpr?Pb:osd_b_o; wire CSync = ~(core_hs ^ core_vs); -assign VGA_HS = ypbpr ? CSync : core_hs; -assign VGA_VS = ypbpr? 1'b1 : core_vs; +assign VGA_HS = (scandoubler_disable | ypbpr) ? CSync : core_hs; +assign VGA_VS = (scandoubler_disable | ypbpr) ? 1'b1 : core_vs; // de-multiplex spi outputs from user_io and data_io assign SPI_DO = (CONF_DATA0==0)?user_io_sdo:(SPI_SS2==0)?data_io_sdo:1'bZ; @@ -162,12 +163,13 @@ user_io user_io( .SPI_MISO (user_io_sdo ), // tristate handling inside user_io .SPI_MOSI (SPI_DI ), - .SWITCHES (switches ), - .BUTTONS (buttons ), - .ypbpr (ypbpr ), + .SWITCHES (switches ), + .BUTTONS (buttons ), + .scandoubler_disable(scandoubler_disable), + .ypbpr (ypbpr ), - .JOY0 (joyA ), - .JOY1 (joyB ), + .JOY0 (joyA ), + .JOY1 (joyB ), .kbd_out_data ( kbd_out_data ), .kbd_out_strobe ( kbd_out_strobe ), diff --git a/cores/archie/fpga/mist/user_io.v b/cores/archie/fpga/mist/user_io.v index c6c8e21..9509701 100644 --- a/cores/archie/fpga/mist/user_io.v +++ b/cores/archie/fpga/mist/user_io.v @@ -31,6 +31,7 @@ module user_io ( output [7:0] JOY0, output [7:0] JOY1, + output scandoubler_disable, output ypbpr, input [7:0] kbd_out_data, @@ -60,7 +61,9 @@ assign JOY1 = joystick_1[7:0]; assign BUTTONS = but_sw[1:0]; assign SWITCHES = but_sw[3:2]; +assign scandoubler_disable = but_sw[4]; assign ypbpr = but_sw[5]; + // this variant of user_io is for the achie core (type == a6) only wire [7:0] core_type = 8'ha6; reg [7:0] spi_byte_out;