From f9271f3bba52baf3a832590a7f99c60c79ba83c8 Mon Sep 17 00:00:00 2001 From: Philip Smart Date: Sat, 14 Nov 2020 23:35:54 +0000 Subject: [PATCH] Updates to video logic --- FPGA/SW700/VideoController700.vhd | 477 +++++++++++------- FPGA/SW700/VideoController700_Toplevel.vhd | 32 +- FPGA/SW700/build/VideoController700.qsf | 57 +-- .../build/VideoController700_constraints.sdc | 13 +- FPGA/SW700/build/Video_Clock.vhd | 24 +- FPGA/SW700/build/Video_Clock_II.vhd | 20 +- .../build/output_files/VideoController700.jic | Bin 2097376 -> 2097376 bytes software/MZF/sharpmz-test.MZF | Bin 4953 -> 4953 bytes software/asm/include/CPM_Definitions.asm | 1 + software/asm/include/TZFS_Definitions.asm | 1 + software/asm/sharpmz-test.asm | 21 +- software/asm/tzfs.asm | 4 + software/asm/tzfs_bank2.asm | 26 +- software/roms/tzfs.rom | Bin 18432 -> 18432 bytes 14 files changed, 407 insertions(+), 269 deletions(-) diff --git a/FPGA/SW700/VideoController700.vhd b/FPGA/SW700/VideoController700.vhd index 7ac9e24..a0f6dc0 100644 --- a/FPGA/SW700/VideoController700.vhd +++ b/FPGA/SW700/VideoController700.vhd @@ -70,11 +70,13 @@ entity VideoController is -- Primary and video clocks. SYS_CLK : in std_logic; -- 50MHz main FPGA clock. IF_CLK : in std_logic; -- 16MHz CPLD interface clock. - VIDCLK_8MHZ : in std_logic; -- 8MHz base clock for video timing and gate clocking. - VIDCLK_16MHZ : in std_logic; -- 16MHz base clock for video timing and gate clocking. - VIDCLK_65MHZ : in std_logic; -- 65MHz base clock for video timing and gate clocking. - VIDCLK_25_175MHZ : in std_logic; -- 25.175MHz base clock for video timing and gate clocking. - VIDCLK_40MHZ : in std_logic; -- 40MHz base clock for video timing and gate clocking. + VIDCLK_8MHZ : in std_logic; -- 2x 8MHz base clock for video timing and gate clocking. + VIDCLK_16MHZ : in std_logic; -- 2x 16MHz base clock for video timing and gate clocking. + VIDCLK_65MHZ : in std_logic; -- 2x 65MHz base clock for video timing and gate clocking. + VIDCLK_25_175MHZ : in std_logic; -- 2x 25.175MHz base clock for video timing and gate clocking. + VIDCLK_40MHZ : in std_logic; -- 2x 40MHz base clock for video timing and gate clocking. + VIDCLK_8_86719MHZ : in std_logic; -- 2x original MZ700 video clock. + VIDCLK_17_7344MHZ : in std_logic; -- 2x original MZ700 colour modulator clock. -- V[name] = Voltage translated signals which mirror the mainboard signals but at a lower voltage. -- Address Bus @@ -136,22 +138,24 @@ architecture rtl of VideoController is -- H_DSP_START, H_DSP_END, H_DSP_WND_START, H_DSP_WND_END, V_DSP_START, V_DSP_END, V_DSP_WND_START, V_DSP_WND_END, H_LINE_END, V_LINE_END, MAX_COLUMNS, H_SYNC_START, H_SYNC_END, V_SYNC_START, V_SYNC_END, H_POLARITY, V_POLARITY, H_PX, V_PX ( 0, 320, 0, 320, 0, 200, 0, 200, 511, 259, 40, 320 + 43, 320 + 43 + 45, 200 + 19, 200 + 19 + 4, 0, 0, 0, 0), -- 0 MZ80K/C/1200/A machines have a monochrome 60Hz display with scan of 512 x 260 for a 320x200 viewable area. ( 0, 640, 0, 640, 0, 200, 0, 200, 1023, 259, 80, 640 + 106, 640 + 106 + 90, 200 + 19, 200 + 19 + 4, 0, 0, 0, 0), -- 1 MZ80K/C/1200/A machines with an adapted monochrome 60Hz display with scan of 1024 x 260 for a 640x200 viewable area. - ( 0, 320, 0, 320, 0, 200, 0, 200, 511, 259, 40, 320 + 43, 320 + 43 + 45, 200 + 19, 200 + 19 + 4, 0, 0, 0, 0), -- 2 MZ80K/C/1200/A machines with MZ700 style colour @ 60Hz display with scan of 512 x 260 for a 320x200 viewable area. - ( 0, 640, 0, 640, 0, 200, 0, 200, 1023, 259, 80, 640 + 106, 640 + 106 + 90, 200 + 19, 200 + 19 + 4, 0, 0, 0, 0), -- 3 MZ80K/C/1200/A machines with MZ700 style colour @ 60Hz display with scan of 1024 x 260 for a 640x200 viewable area. + --( 0, 320, 0, 320, 0, 200, 0, 200, 567, 311, 40, 320 + 80, 320 + 80 + 40, 200 + 50, 200 + 50 + 3, 0, 0, 0, 0), -- 2 MZ80K/C/1200/A machines with MZ700 style colour @ 50Hz display with scan of 568 x 312 for a 320x200 viewable area. + --( 0, 640, 0, 640, 0, 200, 0, 200, 1135, 311, 80, 640 + 160, 640 + 160 + 80, 200 + 50, 200 + 50 + 3, 0, 0, 0, 0), -- 3 MZ80K/C/1200/A machines with MZ700 style colour @ 50Hz display with scan of 1136 x 312 for a 640x200 viewable area. + ( 0, 320, 0, 320, 0, 200, 0, 200, 567, 259, 40, 320 + 80, 320 + 80 + 40, 200 + 19, 200 + 19 + 4, 0, 0, 0, 0), -- 2 MZ80K/C/1200/A machines with MZ700 style colour @ 60Hz display with scan of 512 x 260 for a 320x200 viewable area. + ( 0, 640, 0, 640, 0, 200, 0, 200, 1135, 259, 80, 640 + 160, 640 + 160 + 80, 200 + 19, 200 + 19 + 4, 0, 0, 0, 0), -- 3 MZ80K/C/1200/A machines with MZ700 style colour @ 60Hz display with scan of 1024 x 260 for a 640x200 viewable area. - ( 0, 640, 0, 640, 0, 480, 0, 400, 799, 524, 40, 640 + 16, 640 + 16 + 96, 480 + 10, 480 + 10 + 2, 0, 0, 1, 1), -- 4 Mode 0 upscaled as 640x480 @ 60Hz timings for 40Char mode monochrome. - ( 0, 640, 0, 640, 0, 480, 0, 400, 799, 524, 80, 640 + 16, 640 + 16 + 96, 480 + 10, 480 + 10 + 2, 0, 0, 0, 1), -- 5 Mode 1 upscaled as 640x480 @ 60Hz timings for 80Char mode monochrome. - ( 0, 640, 0, 640, 0, 480, 0, 400, 799, 524, 40, 640 + 16, 640 + 16 + 96, 480 + 10, 480 + 10 + 2, 0, 0, 1, 1), -- 6 Mode 2 upscaled as 640x480 @ 60Hz timings for 40Char mode colour. - ( 0, 640, 0, 640, 0, 480, 0, 400, 799, 524, 80, 640 + 16, 640 + 16 + 96, 480 + 10, 480 + 10 + 2, 0, 0, 0, 1), -- 7 Mode 3 upscaled as 640x480 @ 60Hz timings for 80Char mode colour. + ( 0, 640, 0, 640, 0, 480, 48, 448, 799, 524, 40, 640 + 16, 640 + 16 + 96, 480 + 8, 480 + 8 + 2, 0, 0, 1, 1), -- 4 Mode 0 upscaled as 640x480 @ 60Hz timings for 40Char mode monochrome. + ( 0, 640, 0, 640, 0, 480, 48, 448, 799, 524, 80, 640 + 16, 640 + 16 + 96, 480 + 8, 480 + 8 + 2, 0, 0, 0, 1), -- 5 Mode 1 upscaled as 640x480 @ 60Hz timings for 80Char mode monochrome. + ( 0, 640, 0, 640, 0, 480, 48, 448, 799, 524, 40, 640 + 16, 640 + 16 + 96, 480 + 8, 480 + 8 + 2, 0, 0, 1, 1), -- 6 Mode 2 upscaled as 640x480 @ 60Hz timings for 40Char mode colour. + ( 0, 640, 0, 640, 0, 480, 48, 448, 799, 524, 80, 640 + 16, 640 + 16 + 96, 480 + 8, 480 + 8 + 2, 0, 0, 0, 1), -- 7 Mode 3 upscaled as 640x480 @ 60Hz timings for 80Char mode colour. - ( 0, 1024, 0, 960, 0, 768, 0, 600, 1343, 805, 40, 1024 + 24, 1024 + 24 + 136, 768 + 3, 768 + 3 + 6, 0, 0, 2, 2), -- 8 Mode 0 upscaled as 1024x768 @ 60Hz timings for 40Char mode monochrome. + ( 0, 1024, 32, 992, 0, 768, 80, 680, 1343, 805, 40, 1024 + 24, 1024 + 24 + 136, 768 + 3, 768 + 3 + 6, 0, 0, 2, 2), -- 8 Mode 0 upscaled as 1024x768 @ 60Hz timings for 40Char mode monochrome. ( 0, 1024, 0, 640, 0, 768, 0, 600, 1343, 805, 80, 1024 + 24, 1024 + 24 + 136, 768 + 3, 768 + 3 + 6, 0, 0, 0, 2), -- 9 Mode 1 upscaled as 1024x768 @ 60Hz timings for 80Char mode monochrome. - ( 0, 1024, 0, 960, 0, 768, 0, 600, 1343, 805, 40, 1024 + 24, 1024 + 24 + 136, 768 + 3, 768 + 3 + 6, 0, 0, 2, 2), -- 10 Mode 2 upscaled as 1024x768 @ 60Hz timings for 40Char mode colour. + ( 0, 1024, 32, 992, 0, 768, 80, 680, 1343, 805, 40, 1024 + 24, 1024 + 24 + 136, 768 + 3, 768 + 3 + 6, 0, 0, 2, 2), -- 10 Mode 2 upscaled as 1024x768 @ 60Hz timings for 40Char mode colour. ( 0, 1024, 0, 640, 0, 768, 0, 600, 1343, 805, 80, 1024 + 24, 1024 + 24 + 136, 768 + 3, 768 + 3 + 6, 0, 0, 0, 2), -- 11 Mode 3 upscaled as 1024x768 @ 60Hz timings for 80Char mode colour. - ( 0, 800, 0, 640, 0, 600, 0, 600, 1055, 627, 40, 800 + 40, 800 + 40 + 128, 600 + 1, 600 + 1 + 4, 1, 1, 1, 2), -- 12 Mode 0 upscaled as 800x600 @ 60Hz timings for 40Char mode monochrome. + ( 0, 800, 80, 720, 0, 600, 0, 600, 1055, 627, 40, 800 + 40, 800 + 40 + 128, 600 + 1, 600 + 1 + 4, 1, 1, 1, 2), -- 12 Mode 0 upscaled as 800x600 @ 60Hz timings for 40Char mode monochrome. ( 0, 800, 0, 640, 0, 600, 0, 600, 1055, 627, 80, 800 + 40, 800 + 40 + 128, 600 + 1, 600 + 1 + 4, 1, 1, 0, 2), -- 13 Mode 1 upscaled as 800x600 @ 60Hz timings for 80Char mode monochrome. - ( 0, 800, 0, 640, 0, 600, 0, 600, 1055, 627, 40, 800 + 40, 800 + 40 + 128, 600 + 1, 600 + 1 + 4, 1, 1, 1, 2), -- 14 Mode 2 upscaled as 800x600 @ 60Hz timings for 40Char mode colour. + ( 0, 800, 80, 720, 0, 600, 0, 600, 1055, 627, 40, 800 + 40, 800 + 40 + 128, 600 + 1, 600 + 1 + 4, 1, 1, 1, 2), -- 14 Mode 2 upscaled as 800x600 @ 60Hz timings for 40Char mode colour. ( 0, 800, 0, 640, 0, 600, 0, 600, 1055, 627, 80, 800 + 40, 800 + 40 + 128, 600 + 1, 600 + 1 + 4, 1, 1, 0, 2) -- 15 Mode 3 upscaled as 800x600 @ 60Hz timings for 80Char mode colour. ); @@ -178,8 +182,18 @@ architecture rtl of VideoController is -- -- Registers -- - signal VIDEOMODE : integer range 0 to 20; - signal VIDEOMODE_RESET_TIMER : unsigned(15 downto 0); -- Video mode changed timer, when not 0 the mode is being changed. + signal VIDEOMODE : integer range 0 to 20; -- Active video mode, used to index the VIDEOLUT array to select required parameters. + signal VIDEOMODE_NEXT : integer range 0 to 20; -- Next video mode set when video mode is being changed. + signal VIDEOMODE_SWITCH : std_logic; -- Video mode change detected, waiting for current display to complete before change. + signal VIDEOMODE_RESET_TIMER : unsigned(7 downto 0); -- Video mode changed timer, when not 0 the mode is being changed. + signal VIDCLK_8MHZ_Q : std_logic; -- D-Type flip flop Q output used to enable a clock, active state is '0'. + signal VIDCLK_16MHZ_Q : std_logic; + signal VIDCLK_8_86719MHZ_Q : std_logic; + signal VIDCLK_17_7344MHZ_Q : std_logic; + signal VIDCLK_25_175MHZ_Q : std_logic; + signal VIDCLK_40MHZ_Q : std_logic; + signal VIDCLK_65MHZ_Q : std_logic; + signal VIDCLK_DIV : std_logic; -- Video clock divisor, video clock runs at 2x frequency of display. signal MAX_COLUMN : unsigned(7 downto 0); signal FB_ADDR : std_logic_vector(13 downto 0); -- Frame buffer actual address signal OFFSET_ADDR : std_logic_vector(7 downto 0); -- Display Offset - for MZ1200/80A machines with 2K VRAM @@ -293,6 +307,7 @@ architecture rtl of VideoController is signal GRAM_PAGE_ENABLE : std_logic; -- Graphics mode page enable. signal VIDEO_MODE_REG : std_logic_vector(7 downto 0); -- Programmable mode register to control video mode. signal PAGE_MODE_REG : std_logic_vector(7 downto 0); -- Current value of the Page register. + signal BORDER_REG : std_logic_vector(7 downto 0); -- VGA Border attribute register to apply to the VGA unused border area. signal PALETTE_REG : std_logic_vector(7 downto 0); -- Palette register to apply mapping to the digital RGB output. signal GPU_PARAMS : std_logic_vector(127 downto 0); -- GPU parameter register. signal GPU_COMMAND : std_logic_vector(7 downto 0); -- GPU command register. @@ -303,6 +318,7 @@ architecture rtl of VideoController is signal CS_SCROLLn : std_logic; -- Chip Select to perform a hardware scroll. signal CS_GRAM_OPTn : std_logic; -- Chip Select to write the graphics options for MZ80B/MZ2000. signal CS_CPLD_CFGn : std_logic; -- Chip Select to write to the CPLD configuration register at 0x6E. + signal CS_FB_BORDERn : std_logic; -- Chip Select for setting the VGA border attributes. signal CS_FB_PALETTEn : std_logic; -- Chip Select for setting the active pallette. signal CS_FB_PARAMSn : std_logic; -- Chip Select for storing GPU parameters in a FILO stack. signal CS_FB_GPUn : std_logic; -- Chip Select for GPU command register. @@ -440,7 +456,7 @@ begin ) PORT MAP ( -- Port A used for CPU access. - clock_a => not SYS_CLK, + clock_a => VID_CLK, clocken_a => '1', address_a => PALETTE_PARAM_SEL, data_a => VDATA(4 downto 0), @@ -448,7 +464,7 @@ begin q_a => PALETTE_DO_R, -- Port B used for Palette output map. - clock_b => SYS_CLK, + clock_b => VID_CLK, clocken_b => '1', address_b => PALETTE_REG & SR_R_DATA(7), data_b => (others => '0'), @@ -466,7 +482,7 @@ begin ) PORT MAP ( -- Port A used for CPU access. - clock_a => not SYS_CLK, + clock_a => VID_CLK, clocken_a => '1', address_a => PALETTE_PARAM_SEL, data_a => VDATA(4 downto 0), @@ -474,7 +490,7 @@ begin q_a => PALETTE_DO_G, -- Port B used for Palette output map. - clock_b => SYS_CLK, + clock_b => VID_CLK, clocken_b => '1', address_b => PALETTE_REG & SR_G_DATA(7), data_b => (others => '0'), @@ -492,7 +508,7 @@ begin ) PORT MAP ( -- Port A used for CPU access. - clock_a => not SYS_CLK, + clock_a => VID_CLK, clocken_a => '1', address_a => PALETTE_PARAM_SEL, data_a => VDATA(4 downto 0), @@ -500,7 +516,7 @@ begin q_a => PALETTE_DO_B, -- Port B used for Palette output map. - clock_b => SYS_CLK, + clock_b => VID_CLK, clocken_b => '1', address_b => PALETTE_REG & SR_B_DATA(7), data_b => (others => '0'), @@ -531,7 +547,7 @@ begin q_a => VRAM_DO, -- Port B used for VRAM -> DISPLAY BUFFER transfer (SOURCE). - clock_b => SYS_CLK, + clock_b => VID_CLK, clocken_b => '1', address_b => XFER_VRAM_ADDR, data_b => (others => '0'), @@ -553,7 +569,7 @@ begin ) PORT MAP ( -- Port A used for CPU access. - clock_a => not SYS_CLK, + clock_a => SYS_CLK, clocken_a => '1', address_a => GRAM_ADDR(13 downto 0), data_a => GRAM_DI_R, @@ -561,7 +577,7 @@ begin q_a => GRAM_DO_GI, -- Port B used for VRAM -> Frame Buffer transfer (DESTINATION) for Red. - clock_b => SYS_CLK, + clock_b => VID_CLK, clocken_b => '1', address_b => XFER_SRC_ADDR(13 downto 0), -- FB Destination address is used as GRAM is on a 1:1 mapping with FB. data_b => XFER_MAPPED_DATA(7 downto 0), @@ -583,7 +599,7 @@ begin ) PORT MAP ( -- Port A used for CPU access. - clock_a => not SYS_CLK, + clock_a => SYS_CLK, clocken_a => '1', address_a => GRAM_ADDR(13 downto 0), data_a => GRAM_DI_B, @@ -591,7 +607,7 @@ begin q_a => GRAM_DO_GII, -- Port B used for VRAM -> Frame Buffer transfer (DESTINATION) for Green. - clock_b => SYS_CLK, + clock_b => VID_CLK, clocken_b => '1', address_b => XFER_SRC_ADDR(13 downto 0), -- FB Destination address is used as GRAM is on a 1:1 mapping with FB. data_b => XFER_MAPPED_DATA(15 downto 8), @@ -614,7 +630,7 @@ begin ) PORT MAP ( -- Port A used for CPU access. - clock_a => not SYS_CLK, + clock_a => SYS_CLK, clocken_a => '1', address_a => GRAM_ADDR(13 downto 0), data_a => GRAM_DI_G, @@ -622,7 +638,7 @@ begin q_a => GRAM_DO_GIII, -- Port B used for VRAM -> Frame Buffer transfer (DESTINATION) for Blue and for GRAM I+II -> Frame buffer (DESTINATION). - clock_b => SYS_CLK, + clock_b => VID_CLK, clocken_b => '1', address_b => XFER_SRC_ADDR(13 downto 0), -- FB Destination address is used as GRAM is on a 1:1 mapping with FB. data_b => XFER_MAPPED_DATA(23 downto 16), @@ -669,25 +685,118 @@ begin width_b => 8 ) PORT MAP ( - clock_a => SYS_CLK, + clock_a => VID_CLK, clocken_a => '1', address_a => CG_ADDR(11 downto 0), data_a => CGRAM_DI, wren_a => CGRAM_WREN, q_a => CGRAM_DO, - clock_b => SYS_CLK, + clock_b => VID_CLK, clocken_b => '0', address_b => (others => '0'), data_b => (others => '0'), wren_b => '0', q_b => open ); + + -- D type Flip Flops used for the Video frequency switching circuit. The changeover of frequencies occurs on the high level to prevent glitches and lockups. + FFCLK1: process( VIDCLK_8MHZ, VRESETn ) begin + if VRESETn = '0' then + VIDCLK_8MHZ_Q <= '0'; + + -- If the system clock goes active high, process the inputs and set the D-type output. + elsif( rising_edge(VIDCLK_8MHZ) ) then + if (VIDEOMODE = 0 and (VIDCLK_8_86719MHZ_Q = '1' and VIDCLK_16MHZ_Q = '1' and VIDCLK_17_7344MHZ_Q = '1' and VIDCLK_25_175MHZ_Q = '1' and VIDCLK_40MHZ_Q = '1' and VIDCLK_65MHZ_Q = '1')) then + VIDCLK_8MHZ_Q <= '0'; + else + VIDCLK_8MHZ_Q <= '1'; + end if; + end if; + end process; + FFCLK2: process( VIDCLK_8_86719MHZ, VRESETn ) begin + if VRESETn = '0' then + VIDCLK_8_86719MHZ_Q <= '1'; + + -- If the control clock goes active high, process the inputs and set the D-type output. + elsif( rising_edge(VIDCLK_8_86719MHZ) ) then + if (VIDEOMODE = 2 and VIDCLK_8MHZ_Q = '1' and VIDCLK_16MHZ_Q = '1' and (VIDCLK_17_7344MHZ_Q = '1' and VIDCLK_25_175MHZ_Q = '1' and VIDCLK_40MHZ_Q = '1' and VIDCLK_65MHZ_Q = '1')) then + VIDCLK_8_86719MHZ_Q <= '0'; + else + VIDCLK_8_86719MHZ_Q <= '1'; + end if; + end if; + end process; + FFCLK3: process( VIDCLK_16MHZ, VRESETn ) begin + if VRESETn = '0' then + VIDCLK_16MHZ_Q <= '1'; + + -- If the control clock goes active high, process the inputs and set the D-type output. + elsif( rising_edge(VIDCLK_16MHZ) ) then + if (VIDEOMODE = 1 and VIDCLK_8MHZ_Q = '1' and VIDCLK_8_86719MHZ_Q = '1' and (VIDCLK_17_7344MHZ_Q = '1' and VIDCLK_25_175MHZ_Q = '1' and VIDCLK_40MHZ_Q = '1' and VIDCLK_65MHZ_Q = '1')) then + VIDCLK_16MHZ_Q <= '0'; + else + VIDCLK_16MHZ_Q <= '1'; + end if; + end if; + end process; + FFCLK4: process( VIDCLK_17_7344MHZ, VRESETn ) begin + if VRESETn = '0' then + VIDCLK_17_7344MHZ_Q <= '1'; + + -- If the control clock goes active high, process the inputs and set the D-type output. + elsif( rising_edge(VIDCLK_17_7344MHZ) ) then + if (VIDEOMODE = 3 and VIDCLK_8MHZ_Q = '1' and VIDCLK_8_86719MHZ_Q = '1' and (VIDCLK_16MHZ_Q = '1' and VIDCLK_25_175MHZ_Q = '1' and VIDCLK_40MHZ_Q = '1' and VIDCLK_65MHZ_Q = '1')) then + VIDCLK_17_7344MHZ_Q <= '0'; + else + VIDCLK_17_7344MHZ_Q <= '1'; + end if; + end if; + end process; + FFCLK5: process( VIDCLK_25_175MHZ, VRESETn ) begin + if VRESETn = '0' then + VIDCLK_25_175MHZ_Q <= '1'; + + -- If the control clock goes active high, process the inputs and set the D-type output. + elsif( rising_edge(VIDCLK_25_175MHZ) ) then + if ((VIDEOMODE = 4 or VIDEOMODE = 5 or VIDEOMODE = 6 or VIDEOMODE = 7) and (VIDCLK_8MHZ_Q = '1' and VIDCLK_8_86719MHZ_Q = '1' and VIDCLK_16MHZ_Q = '1' and VIDCLK_17_7344MHZ_Q = '1' and VIDCLK_40MHZ_Q = '1' and VIDCLK_65MHZ_Q = '1')) then + VIDCLK_25_175MHZ_Q <= '0'; + else + VIDCLK_25_175MHZ_Q <= '1'; + end if; + end if; + end process; + FFCLK6: process( VIDCLK_40MHZ, VRESETn ) begin + if VRESETn = '0' then + VIDCLK_40MHZ_Q <= '1'; + + -- If the control clock goes active high, process the inputs and set the D-type output. + elsif( rising_edge(VIDCLK_40MHZ) ) then + if ((VIDEOMODE = 12 or VIDEOMODE = 13 or VIDEOMODE = 14 or VIDEOMODE = 15) and (VIDCLK_8MHZ_Q = '1' and VIDCLK_8_86719MHZ_Q = '1' and VIDCLK_16MHZ_Q = '1' and VIDCLK_17_7344MHZ_Q = '1' and VIDCLK_25_175MHZ_Q = '1' and VIDCLK_65MHZ_Q = '1')) then + VIDCLK_40MHZ_Q <= '0'; + else + VIDCLK_40MHZ_Q <= '1'; + end if; + end if; + end process; + FFCLK7: process( VIDCLK_65MHZ, VRESETn ) begin + if VRESETn = '0' then + VIDCLK_65MHZ_Q <= '1'; + + -- If the control clock goes active high, process the inputs and set the D-type output. + elsif( rising_edge(VIDCLK_65MHZ) ) then + if ((VIDEOMODE = 8 or VIDEOMODE = 9 or VIDEOMODE = 10 or VIDEOMODE = 11) and (VIDCLK_8MHZ_Q = '1' and VIDCLK_8_86719MHZ_Q = '1' and VIDCLK_16MHZ_Q = '1' and VIDCLK_17_7344MHZ_Q = '1' and VIDCLK_25_175MHZ_Q = '1' and VIDCLK_40MHZ_Q = '1')) then + VIDCLK_65MHZ_Q <= '0'; + else + VIDCLK_65MHZ_Q <= '1'; + end if; + end if; + end process; -- Clock at maximum system speed to minimise transfer time. -- Rasterisation and blending into the display framebuffer is made during the Vertical Blanking period. -- - RENDERFRAMES: process( VRESETn, SYS_CLK, XFER_DST_ADDR, FB_ADDR, VIDEOMODE_RESET_TIMER ) + RENDERFRAMES: process( VRESETn, VID_CLK, XFER_DST_ADDR, FB_ADDR, VIDEOMODE_RESET_TIMER ) variable XFER_CYCLE : integer range 0 to 10; variable XFER_ENABLED : std_logic; -- Enable transfer of VRAM/GRAM to framebuffer. variable XFER_PAUSE : std_logic; -- Pause transfer of VRAM/GRAM to framebuffer during data display period. @@ -711,11 +820,12 @@ begin -- Copy at end of Display based on the highest clock to minimise time, -- - elsif rising_edge(SYS_CLK) then + elsif rising_edge(VID_CLK) then -- A video mode change is similar to a RESET, the process halts and all the control variables are reset. -- if VIDEOMODE_RESET_TIMER /= 0 then + XFER_VRAM_ADDR <= (others => '0'); XFER_DST_ADDR <= (others => '0'); XFER_CGROM_ADDR <= (others => '0'); @@ -742,18 +852,23 @@ begin -- During the actual data display, we pause rendering until the start of a horizontal or vertical blanking period. -- - --if V_BLANKi = '0' then --XFER_CYCLE = 0 and XFER_R_WEN = '0' and XFER_G_WEN = '0' and XFER_B_WEN = '0' and V_BLANKi = '0' then - if (V_COUNT < V_DSP_WND_END and (H_COUNT < H_DSP_WND_END or H_COUNT > H_LINE_END - 3 or XFER_DST_ADDR >= FB_ADDR-std_logic_vector(MAX_COLUMN))) - and XFER_R_WEN = '0' and XFER_G_WEN = '0' and XFER_B_WEN = '0' + if XFER_ENABLED = '1' and + -- Horizontal blanking period, allow upto line end - 3 to allow 3 extra cycles if the FSM is actively writing to the Frame buffer. + ((H_COUNT > H_DSP_WND_END and H_COUNT < H_LINE_END-8 and FB_ADDR > XFER_DST_ADDR+std_logic_vector(MAX_COLUMN)) or + -- Vertical blanking period, allow full use of this period for copying. + (V_COUNT > V_DSP_WND_END and V_COUNT < V_LINE_END) or + -- Active write to Framebuffer taking place, override other conditions in this state. + (XFER_R_WEN = '1' or XFER_G_WEN = '1' or XFER_B_WEN = '1') + ) then - XFER_PAUSE := '1'; - else XFER_PAUSE := '0'; + else + XFER_PAUSE := '1'; end if; -- If we are in the active transfer window, start transfer. -- - if XFER_ENABLED = '1' and XFER_PAUSE = '0' then + if XFER_PAUSE = '0' then -- Once we reach the end of the framebuffer, disable the copying until next frame. -- @@ -1060,10 +1175,10 @@ begin -- framebuffer then we use the XFER_DST_ADDR, all other times we use the Framebuffer address FB_ADDR which is used to extract data -- for display. -- - if XFER_ENABLED = '1' and XFER_PAUSE = '0' then - XFER_SRC_ADDR <= XFER_DST_ADDR; + if XFER_PAUSE = '0' then + XFER_SRC_ADDR <= XFER_DST_ADDR; else - XFER_SRC_ADDR <= FB_ADDR; + XFER_SRC_ADDR <= FB_ADDR; end if; end process; @@ -1077,42 +1192,59 @@ begin -- then load up the required parameter set and generate the video signal. -- if VRESETn = '0' then - H_DSP_START <= (others => '0'); - H_DSP_END <= (others => '0'); - H_DSP_WND_START <= (others => '0'); - H_DSP_WND_END <= (others => '0'); - V_DSP_START <= (others => '0'); - V_DSP_END <= (others => '0'); - V_DSP_WND_START <= (others => '0'); - V_DSP_WND_END <= (others => '0'); - MAX_COLUMN <= (others => '0'); - H_LINE_END <= (others => '0'); - V_LINE_END <= (others => '0'); - H_SYNC_START <= (others => '0'); - H_SYNC_END <= (others => '0'); - V_SYNC_START <= (others => '0'); - V_SYNC_END <= (others => '0'); - H_POLARITY <= (others => '0'); - V_POLARITY <= (others => '0'); - H_PX <= (others => '0'); - V_PX <= (others => '0'); - H_COUNT <= (others => '0'); - V_COUNT <= (others => '0'); - H_BLANKi <= '1'; - V_BLANKi <= '1'; - H_SYNCni <= '1'; - V_SYNCni <= '1'; - H_PX_CNT <= 0; - V_PX_CNT <= 0; - H_SHIFT_CNT <= 0; - FB_ADDR <= (others => '0'); + H_DSP_START <= (others => '0'); + H_DSP_END <= (others => '0'); + H_DSP_WND_START <= (others => '0'); + H_DSP_WND_END <= (others => '0'); + V_DSP_START <= (others => '0'); + V_DSP_END <= (others => '0'); + V_DSP_WND_START <= (others => '0'); + V_DSP_WND_END <= (others => '0'); + MAX_COLUMN <= (others => '0'); + H_LINE_END <= (others => '0'); + V_LINE_END <= (others => '0'); + H_SYNC_START <= (others => '0'); + H_SYNC_END <= (others => '0'); + V_SYNC_START <= (others => '0'); + V_SYNC_END <= (others => '0'); + H_POLARITY <= (others => '0'); + V_POLARITY <= (others => '0'); + H_PX <= (others => '0'); + V_PX <= (others => '0'); + H_COUNT <= (others => '0'); + V_COUNT <= (others => '0'); + H_BLANKi <= '1'; + V_BLANKi <= '1'; + H_SYNCni <= '1'; + V_SYNCni <= '1'; + H_PX_CNT <= 0; + V_PX_CNT <= 0; + H_SHIFT_CNT <= 0; + FB_ADDR <= (others => '0'); + VIDEOMODE_SWITCH <= '0'; + VIDEOMODE <= 0; + VIDEOMODE_RESET_TIMER <= (others => '1'); + VIDCLK_DIV <= '0'; elsif rising_edge(VID_CLK) then + -- The video clock is running at twice the display frequency to provide additional edges for rendering the display during the blanking periods. + -- We therefore divide the clock by two and only act on the second edge in 2 edges. + VIDCLK_DIV <= not VIDCLK_DIV; + + -- If the video mode changes, we wait until the current frame has been displayed then commence switching to the new video mode. + if VIDEOMODE /= VIDEOMODE_NEXT then + VIDEOMODE_SWITCH <= '1'; + end if; + -- If the video mode changes, reset the variables to the initial state. This occurs - -- at the end of a frame to minimise the monitor syncing incorrectly. + -- at the end of a frame to minimise the monitor syncing incorrectly. Max columns is used as a parameter + -- to cater for reset conditions in order to initialise the variables. -- - if VIDEOMODE_RESET_TIMER /= 0 then + if (VIDEOMODE_SWITCH = '1' and V_COUNT = to_unsigned(FB_PARAMS(VIDEOMODE, 9), 16)) or MAX_COLUMN = 0 + then + VIDEOMODE <= VIDEOMODE_NEXT; + VIDEOMODE_SWITCH <= '0'; -- Iniitialise control registers. -- @@ -1120,37 +1252,52 @@ begin -- Load up configuration from the look up table based on video mode. -- - H_DSP_START <= to_unsigned(FB_PARAMS(VIDEOMODE, 0), 16); -- IO 0 - H_DSP_END <= to_unsigned(FB_PARAMS(VIDEOMODE, 1), 16); -- IO 2 - H_DSP_WND_START <= to_unsigned(FB_PARAMS(VIDEOMODE, 2), 16); -- IO 4 - H_DSP_WND_END <= to_unsigned(FB_PARAMS(VIDEOMODE, 3), 16); -- IO 6 - V_DSP_START <= to_unsigned(FB_PARAMS(VIDEOMODE, 4), 16); -- IO 8 - V_DSP_END <= to_unsigned(FB_PARAMS(VIDEOMODE, 5), 16); -- IO 10 - V_DSP_WND_START <= to_unsigned(FB_PARAMS(VIDEOMODE, 6), 16); -- IO 12 - V_DSP_WND_END <= to_unsigned(FB_PARAMS(VIDEOMODE, 7), 16); -- IO 14 - H_LINE_END <= to_unsigned(FB_PARAMS(VIDEOMODE, 8), 16); -- IO 16 - V_LINE_END <= to_unsigned(FB_PARAMS(VIDEOMODE, 9), 16); -- IO 18 - MAX_COLUMN <= to_unsigned(FB_PARAMS(VIDEOMODE, 10), 8); -- IO 20 - H_SYNC_START <= to_unsigned(FB_PARAMS(VIDEOMODE, 11), 16); -- IO 22 - H_SYNC_END <= to_unsigned(FB_PARAMS(VIDEOMODE, 12), 16); -- IO 24 - V_SYNC_START <= to_unsigned(FB_PARAMS(VIDEOMODE, 13), 16); -- IO 26 - V_SYNC_END <= to_unsigned(FB_PARAMS(VIDEOMODE, 14), 16); -- IO 28 - H_POLARITY <= to_unsigned(FB_PARAMS(VIDEOMODE, 15), 1); -- - V_POLARITY <= to_unsigned(FB_PARAMS(VIDEOMODE, 16), 1); -- - H_PX <= to_unsigned(FB_PARAMS(VIDEOMODE, 17), 8); -- IO 30 - V_PX <= to_unsigned(FB_PARAMS(VIDEOMODE, 18), 8); -- IO 31 + H_DSP_START <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 0), 16); -- IO 0 + H_DSP_END <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 1), 16); -- IO 2 + H_DSP_WND_START <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 2), 16); -- IO 4 + H_DSP_WND_END <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 3), 16); -- IO 6 + V_DSP_START <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 4), 16); -- IO 8 + V_DSP_END <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 5), 16); -- IO 10 + V_DSP_WND_START <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 6), 16); -- IO 12 + V_DSP_WND_END <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 7), 16); -- IO 14 + H_LINE_END <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 8), 16); -- IO 16 + V_LINE_END <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 9), 16); -- IO 18 + MAX_COLUMN <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 10), 8); -- IO 20 + H_SYNC_START <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 11), 16); -- IO 22 + H_SYNC_END <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 12), 16); -- IO 24 + V_SYNC_START <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 13), 16); -- IO 26 + V_SYNC_END <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 14), 16); -- IO 28 + H_POLARITY <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 15), 1); -- + V_POLARITY <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 16), 1); -- + H_PX <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 17), 8); -- IO 30 + V_PX <= to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 18), 8); -- IO 31 -- H_COUNT <= (others => '0'); V_COUNT <= (others => '0'); H_BLANKi <= '1'; V_BLANKi <= '1'; - H_SYNCni <= not std_logic_vector(to_unsigned(FB_PARAMS(VIDEOMODE, 15), 1))(0); - V_SYNCni <= not std_logic_vector(to_unsigned(FB_PARAMS(VIDEOMODE, 16), 1))(0); + H_SYNCni <= not std_logic_vector(to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 15), 1))(0); + V_SYNCni <= not std_logic_vector(to_unsigned(FB_PARAMS(VIDEOMODE_NEXT, 16), 1))(0); H_PX_CNT <= 0; V_PX_CNT <= 0; H_SHIFT_CNT <= 0; + -- + -- On display start or change we need to give a small period between one set of frequencies/display settings and the next. + -- This is necessary as I've noticed on one of my displays that changing modes too quickly results in lock up - probably a bug + -- of my monitor but this ensures other monitors arent affected either. + VIDEOMODE_RESET_TIMER <= (others => '1'); + -- + VIDCLK_DIV <= '0'; - else + -- During reset periods, just count down, no active display signals will be generated. + elsif VIDEOMODE_RESET_TIMER /= 0 then + VIDEOMODE_RESET_TIMER <= VIDEOMODE_RESET_TIMER - 1; + -- + VIDCLK_DIV <= '0'; + + -- Only process the display output on the second of each video clock edges as the video clock is running at 2x frequency. + -- + elsif VIDCLK_DIV = '1' then -- Ability to adjust the video parameter registers to tune or override the default values from the lookup table. This can be useful in debugging, -- adjusting to a new monitor etc. @@ -1256,7 +1403,7 @@ begin -- if H_COUNT >= H_DSP_START and H_COUNT < H_DSP_END and V_COUNT >= V_DSP_START and V_COUNT < V_DSP_END then - if (V_COUNT >= V_DSP_WND_START and V_COUNT < V_DSP_WND_END-V_PX) and (H_COUNT >= H_DSP_WND_START and H_COUNT < H_DSP_WND_END) then + if (V_COUNT >= V_DSP_WND_START and V_COUNT <= V_DSP_WND_END) and (H_COUNT >= H_DSP_WND_START and H_COUNT < H_DSP_WND_END) then -- Update Horizontal Pixel multiplier. -- @@ -1277,7 +1424,7 @@ begin SR_G_DATA <= DISPLAY_DATA(23 downto 16); FB_ADDR <= FB_ADDR + 1; - else -- H_SHIFT_CNT /= 0 then --and H_COUNT >= H_DSP_START and H_COUNT < H_DSP_END and V_COUNT >= V_DSP_START and V_COUNT < V_DSP_END then + else -- During the active display area, if the shift counter is not 0 and the horizontal multiplier is equal to the setting, -- shift the data in the shift register to display the next pixel. -- @@ -1292,11 +1439,11 @@ begin else -- Blank. -- - SR_R_DATA <= (others => '0'); - SR_B_DATA <= (others => '0'); - SR_G_DATA <= (others => '0'); - H_PX_CNT <= 0; --to_integer(H_PX); - H_SHIFT_CNT <= 0; --1; + SR_R_DATA <= (others => BORDER_REG(2)); + SR_B_DATA <= (others => BORDER_REG(1)); + SR_G_DATA <= (others => BORDER_REG(0)); + H_PX_CNT <= 0; + H_SHIFT_CNT <= 0; end if; else @@ -1737,10 +1884,10 @@ begin GRAM_PAGE_ENABLE <= '0'; CGROM_PAGE <= '0'; DISPLAY_VGATE <= '0'; - VIDEOMODE_RESET_TIMER <= to_unsigned(2, VIDEOMODE_RESET_TIMER'length); --(others => '0') & '1'; CGRAM_ADDR <= (others=>'0'); PCG_DATA <= (others=>'0'); CPLD_CFG_DATA <= "00000100"; + BORDER_REG <= (others => '0'); PALETTE_REG <= (others => '0'); PALETTE_PARAM_SEL <= (others => '0'); CGRAM_WEn <= '1'; @@ -1782,6 +1929,12 @@ begin end if; end if; + -- Setup the VGA border attributes. The VGA modes have areas not used by the graphics output, this register allows this area to be set to a specific colour (when colour mode enabled). + -- Bits [2:0] define the border colour, 2 = R, 1 = G, 0 = B + if CS_FB_BORDERn = '0' and VZ80_WRn = '0' and VZ80_WR_LASTn = '1' then + BORDER_REG <= VDATA; + end if; + -- Setup the palette register to given value. if CS_FB_PALETTEn = '0' and VZ80_WRn = '0' and VZ80_WR_LASTn = '1' then PALETTE_REG <= VDATA; @@ -1823,7 +1976,8 @@ begin end if; -- Read out the rightmost byte of the GPU parameters and shift right, this allows reading or manipulating the parameters. - if CS_FB_PARAMSn = '0' and VZ80_RDn = '0' and VZ80_RD_LASTn = '1' then + -- The shift is made at the end of the read cycle so that valid data is seen by the CPU. + if CS_FB_PARAMSn = '0' and VZ80_RDn = '1' and VZ80_RD_LASTn = '0' then GPU_PARAMS(119 downto 0) <= GPU_PARAMS(127 downto 8); end if; @@ -1954,8 +2108,6 @@ begin -- The VGA Mode is used to change the type of VGA output frequency and resolution made to the external monitor. VGAMODE <= VDATA(7 downto 6); - -- Flag the video mode change so new settings can be loaded. - VIDEOMODE_RESET_TIMER <= (others => '1'); end if; -- Framebuffer control register. @@ -2126,11 +2278,6 @@ begin else MODE_CPLD_SWITCH <= '0'; end if; - - -- If video mode has changed then the reset timer is started, decrement it if it hasnt expired on each clock cycle. - if VIDEOMODE_RESET_TIMER /= 0 then - VIDEOMODE_RESET_TIMER <= VIDEOMODE_RESET_TIMER - 1; - end if; end if; -- Non-registered signal vectors for readback. @@ -2197,6 +2344,11 @@ begin CS_80B_PIOn <= '0' when CS_IO_EXXn = '0' and VADDR(3 downto 2) = "10" and MODE_VIDEO_MZ80B = '1' else '1'; + -- 0xF3 set the VGA border colour. The VGA modes have areas not used by the graphics output, this register allows this area to be set to a specific colour (when colour mode enabled). + -- Bits [2:0] define the border colour, 2 = R, 1 = G, 0 = B + CS_FB_BORDERn <= '0' when CS_IO_FXXn = '0' and VADDR(3 downto 0) = "0011" + else '1'; + -- 0xF4 set the MZ80B video in/out mode. -- Output data | V-RAM GRPH I | V-RAM GRPH II -- to port $F4 | Input Output | Input Output @@ -2350,6 +2502,8 @@ begin else std_logic_vector(V_PX(7 downto 0)) when VZ80_RDn = '0' and CS_IO_DXXn = '0' and VADDR(3 downto 0) = "0010" and DSP_PARAM_SEL = "1111" else + BORDER_REG when VZ80_RDn = '0' and CS_FB_BORDERn = '0' + else PALETTE_REG when VZ80_RDn = '0' and CS_FB_PALETTEn = '0' else "000" & PALETTE_DO_R when VZ80_RDn = '0' and CS_IO_DXXn = '0' and VADDR(3 downto 0) = "0101" @@ -2485,7 +2639,7 @@ begin -- 10 Mode 2 upscaled as 640x480 @ 72Hz timings for 40Char mode colour. -- 11 Mode 3 upscaled as 640x480 @ 72Hz timings for 80Char mode colour. -- - VIDEOMODE <= 0 when VIDEO_DEBUG = '1' + VIDEOMODE_NEXT <= 0 when VIDEO_DEBUG = '1' else 0 when VGAMODE = "00" and (MODE_VIDEO_MZ80A = '1' or MODE_VIDEO_MZ80K = '1' or MODE_VIDEO_MZ80C = '1' or MODE_VIDEO_MZ1200 = '1' or MODE_VIDEO_MZ80B = '1') and MODE_VIDEO_MONO = '1' else @@ -2521,80 +2675,26 @@ begin else 0; - -- Select the video clock based on the mode. + -- Select the video clock based on the video mode. The video mode selects an active clock when the old and previous clocks go to the high level. -- -- - VID_CLK <= VIDCLK_8MHZ when (VIDEOMODE = 0 or VIDEOMODE = 2) - else - VIDCLK_16MHZ when (VIDEOMODE = 1 or VIDEOMODE = 3) - else - VIDCLK_25_175MHZ when (VIDEOMODE = 4 or VIDEOMODE = 5 or VIDEOMODE = 6 or VIDEOMODE = 7) - else - VIDCLK_65MHZ when (VIDEOMODE = 8 or VIDEOMODE = 9 or VIDEOMODE = 10 or VIDEOMODE = 11) - else - VIDCLK_40MHZ when (VIDEOMODE = 12 or VIDEOMODE = 13 or VIDEOMODE = 14 or VIDEOMODE = 15) - else - VIDCLK_8MHZ; + VID_CLK <= (VIDCLK_8MHZ or VIDCLK_8MHZ_Q) and + (VIDCLK_8_86719MHZ or VIDCLK_8_86719MHZ_Q) and + (VIDCLK_16MHZ or VIDCLK_16MHZ_Q) and + (VIDCLK_17_7344MHZ or VIDCLK_17_7344MHZ_Q) and + (VIDCLK_25_175MHZ or VIDCLK_25_175MHZ_Q) and + (VIDCLK_65MHZ or VIDCLK_65MHZ_Q) and + (VIDCLK_40MHZ or VIDCLK_40MHZ_Q); - -- Output the VGA signals on the main clock edge, helps a bit with jitter. + + + -- Process to output signals on clock edges, to clean them up as needed. -- --- process(SYS_CLK) --- begin --- if rising_edge(SYS_CLK) then --- if H_BLANKi='0' and V_BLANKi = '0' and ((DISPLAY_VGATE = '0' and MODE_VIDEO_MZ80B = '1') or MODE_VIDEO_MZ80B = '0') then --- VGA_R <= (others => SR_R_DATA(7)); --- VGA_G <= (others => SR_G_DATA(7)); --- VGA_B <= (others => SR_B_DATA(7)); --- else --- VGA_R <= (others => '0'); --- VGA_G <= (others => '0'); --- VGA_B <= (others => '0'); --- end if; --- if H_POLARITY(0) = '0' then --- VGA_HS <= H_SYNCni; --- else --- VGA_HS <= not H_SYNCni; --- end if; --- if V_POLARITY(0) = '0' then --- VGA_VS <= V_SYNCni; --- else --- VGA_VS <= not V_SYNCni; --- end if; --- end if; --- end process; --- process(SYS_CLK) begin if rising_edge(SYS_CLK) then if MODE_CPLD_MB_VIDEOn = '1' then --- if H_BLANKi='0' and V_BLANKi = '0' and ((DISPLAY_VGATE = '0' and MODE_VIDEO_MZ80B = '1') or MODE_VIDEO_MZ80B = '0') then --- VGA_R(3 downto 0) <= FB_PALETTE_R(3 downto 0); --- VGA_G(3 downto 0) <= FB_PALETTE_G(3 downto 0); --- VGA_B(3 downto 0) <= FB_PALETTE_B(3 downto 0); --- else --- VGA_R(3 downto 0) <= (others => '0'); --- VGA_G(3 downto 0) <= (others => '0'); --- VGA_B(3 downto 0) <= (others => '0'); --- end if; --- --- if FB_PALETTE_R(4) = '0' then --- VGA_R_COMPOSITE <= '0'; --- else --- VGA_R_COMPOSITE <= 'Z'; --- end if; --- --- if FB_PALETTE_G(4) = '0' then --- VGA_G_COMPOSITE <= '0'; --- else --- VGA_G_COMPOSITE <= 'Z'; --- end if; --- --- if FB_PALETTE_B(4) = '0' then --- VGA_B_COMPOSITE <= '0'; --- else --- VGA_B_COMPOSITE <= 'Z'; --- end if; --- + if H_POLARITY(0) = '0' then HSYNC_OUTn <= H_SYNCni; else @@ -2608,17 +2708,10 @@ begin end if; elsif MODE_CPLD_MB_VIDEOn = '0' then --- VGA_R_COMPOSITE <= V_R; --- VGA_G_COMPOSITE <= V_G; --- VGA_B_COMPOSITE <= V_B; --- VGA_R <= (others => V_R); --- VGA_G <= (others => V_G); --- VGA_B <= (others => V_B); HSYNC_OUTn <= V_HSYNCn; -- Horizontal sync (negative) from mainboard. VSYNC_OUTn <= V_VSYNCn; -- Vertical sync (negative) from mainboard. end if; end if; - end process; @@ -2678,16 +2771,6 @@ begin else '0' when MODE_CPLD_MB_VIDEOn = '1' and H_BLANKi='0' and V_BLANKi = '0' and (MODE_VIDEO_COLOUR = '1' or MODE_VIDEO_COLOUR80 = '1') and FB_PALETTE_B(4) = '0' else 'Z'; --- HSYNC_OUTn <= H_SYNCni when MODE_CPLD_MB_VIDEOn = '1' and H_POLARITY(0) = '0' --- else --- not H_SYNCni when MODE_CPLD_MB_VIDEOn = '1' and H_POLARITY(0) = '1' --- else --- V_HSYNCn; -- Horizontal sync (negative) from mainboard. --- VSYNC_OUTn <= V_SYNCni when MODE_CPLD_MB_VIDEOn = '1' and V_POLARITY(0) = '0' --- else --- not V_SYNCni when MODE_CPLD_MB_VIDEOn = '1' and V_POLARITY(0) = '1' --- else --- V_VSYNCn; -- Vertical sync (negative) from mainboard. -- Composite video signal output. Composite video is formed in external hardware by the combination of VGA R/G/B signals. CSYNC_OUTn <= not V_CSYNC when MODE_CPLD_MB_VIDEOn = '0' @@ -2697,6 +2780,8 @@ begin else H_SYNCni xor not V_SYNCni; COLR_OUT <= V_COLR when MODE_CPLD_MB_VIDEOn = '0' -- Composite and RF base frequency from mainboard. + else + VIDCLK_17_7344MHZ when (VIDEOMODE = 2) else V_COLR; diff --git a/FPGA/SW700/VideoController700_Toplevel.vhd b/FPGA/SW700/VideoController700_Toplevel.vhd index ee17cf4..4f9bfcd 100644 --- a/FPGA/SW700/VideoController700_Toplevel.vhd +++ b/FPGA/SW700/VideoController700_Toplevel.vhd @@ -93,8 +93,11 @@ architecture rtl of VideoController700 is signal VIDCLK_25_175MHZ : std_logic; signal VIDCLK_40MHZ : std_logic; signal VIDCLK_65MHZ : std_logic; + signal VIDCLK_8_86719MHZ : std_logic; + signal VIDCLK_17_7344MHZ : std_logic; signal PLL_LOCKED : std_logic; signal PLL_LOCKED2 : std_logic; + signal PLL_LOCKED3 : std_logic; signal RESETn : std_logic := '0'; signal RESET_COUNTER : unsigned(3 downto 0) := (others => '1'); begin @@ -124,6 +127,17 @@ begin locked => PLL_LOCKED2 ); + -- Instantiate a 3rd PLL to generate clock for pseudo monochrome generation on internal monitor. + VCPLL3 : entity work.Video_Clock_III + port map + ( + inclk0 => CLOCK_50, + areset => '0', + c0 => VIDCLK_8_86719MHZ, + c1 => VIDCLK_17_7344MHZ, + locked => PLL_LOCKED3 + ); + -- Add the Serial Flash Loader megafunction to enable in-situ programming of the EPCS16 configuration memory. -- SFL : entity work.sfl @@ -141,11 +155,13 @@ begin -- Primary and video clocks. SYS_CLK => SYS_CLK, -- 120MHz main FPGA clock. IF_CLK => VZ80_CLK, -- Z80 runtime clock (product of SYSCLK and CTLCLK - variable frequency). - VIDCLK_8MHZ => VIDCLK_8MHZ, -- 8MHz base clock for video timing and gate clocking. - VIDCLK_16MHZ => VIDCLK_16MHZ, -- 16MHz base clock for video timing and gate clocking. - VIDCLK_65MHZ => VIDCLK_65MHZ, -- 65MHz base clock for video timing and gate clocking. - VIDCLK_25_175MHZ => VIDCLK_25_175MHZ, -- 25.175MHz base clock for video timing and gate clocking. - VIDCLK_40MHZ => VIDCLK_40MHZ, -- 40MHz base clock for video timing and gate clocking. + VIDCLK_8MHZ => VIDCLK_8MHZ, -- 2x 8MHz base clock for video timing and gate clocking. + VIDCLK_16MHZ => VIDCLK_16MHZ, -- 2x 16MHz base clock for video timing and gate clocking. + VIDCLK_65MHZ => VIDCLK_65MHZ, -- 2x 65MHz base clock for video timing and gate clocking. + VIDCLK_25_175MHZ => VIDCLK_25_175MHZ, -- 2x 25.175MHz base clock for video timing and gate clocking. + VIDCLK_40MHZ => VIDCLK_40MHZ, -- 2x 40MHz base clock for video timing and gate clocking. + VIDCLK_8_86719MHZ => VIDCLK_8_86719MHZ, -- 2x original MZ700 video clock. + VIDCLK_17_7344MHZ => VIDCLK_17_7344MHZ, -- 2x original MZ700 colour modulator clock. -- V[name] = Voltage translated signals which mirror the mainboard signals but at a lower voltage. -- Address Bus @@ -189,13 +205,13 @@ begin -- Process to reset the FPGA based on the external RESET trigger, PLL's being locked -- and a counter to set minimum width. -- - FPGARESET: process(CLOCK_50, PLL_LOCKED, PLL_LOCKED2) + FPGARESET: process(CLOCK_50, PLL_LOCKED, PLL_LOCKED2, PLL_LOCKED3) begin - if PLL_LOCKED = '0' or PLL_LOCKED2 = '0' then + if PLL_LOCKED = '0' or PLL_LOCKED2 = '0' or PLL_LOCKED3 = '0' then RESET_COUNTER <= (others => '1'); RESETn <= '0'; - elsif PLL_LOCKED = '1' and PLL_LOCKED2 = '1' then + elsif PLL_LOCKED = '1' and PLL_LOCKED2 = '1' and PLL_LOCKED3 = '1' then if rising_edge(CLOCK_50) then if RESET_COUNTER /= 0 then RESET_COUNTER <= RESET_COUNTER - 1; diff --git a/FPGA/SW700/build/VideoController700.qsf b/FPGA/SW700/build/VideoController700.qsf index 9f5440d..07d6895 100644 --- a/FPGA/SW700/build/VideoController700.qsf +++ b/FPGA/SW700/build/VideoController700.qsf @@ -142,14 +142,14 @@ set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VDATA[3] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VDATA[2] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VDATA[1] set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to VDATA[0] -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VDATA[7] -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VDATA[6] -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VDATA[5] -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VDATA[4] -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VDATA[3] -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VDATA[2] -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VDATA[1] -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VDATA[0] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VDATA[7] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VDATA[6] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VDATA[5] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VDATA[4] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VDATA[3] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VDATA[2] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VDATA[1] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VDATA[0] # Video control signals. # ====================== @@ -178,13 +178,6 @@ set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to V_G set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to V_B set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to V_R set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to V_COLR -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to V_CSYNC -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to V_HSYNCn -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to V_VSYNCn -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to V_G -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to V_B -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to V_R -#set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to V_COLR # VGA/RGB/Composite video signals output. # ======================================= @@ -233,21 +226,21 @@ set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to CSYNC_O set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to CSYNC_OUT set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VSYNC_OUTn set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to HSYNC_OUTn -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_R[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_R[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_R[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_R[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_R_COMPOSITE -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_G[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_G[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_G[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_G[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_G_COMPOSITE -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_B[0] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_B[1] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_B[2] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_B[3] -set_instance_assignment -name CURRENT_STRENGTH_NEW "MINIMUM CURRENT" -to VGA_B_COMPOSITE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[0] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[1] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[2] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R[3] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_R_COMPOSITE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[0] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[1] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[2] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G[3] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_G_COMPOSITE +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[0] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[1] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[2] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B[3] +set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to VGA_B_COMPOSITE # Reserved. # ========= @@ -279,6 +272,7 @@ set_global_assignment -name VHDL_FILE ../VideoController700_Toplevel.vhd set_global_assignment -name QIP_FILE SFL.qip set_global_assignment -name QIP_FILE Video_Clock.qip set_global_assignment -name QIP_FILE Video_Clock_II.qip +set_global_assignment -name QIP_FILE Video_Clock_III.qip set_global_assignment -name QIP_FILE vbuffer.qip set_global_assignment -name VHDL_FILE ../VideoController700_pkg.vhd set_global_assignment -name VHDL_FILE ../VideoController700.vhd @@ -301,6 +295,9 @@ set_global_assignment -name SDC_FILE VideoController700_constraints.sdc + + + diff --git a/FPGA/SW700/build/VideoController700_constraints.sdc b/FPGA/SW700/build/VideoController700_constraints.sdc index aba08f1..3f0bac1 100644 --- a/FPGA/SW700/build/VideoController700_constraints.sdc +++ b/FPGA/SW700/build/VideoController700_constraints.sdc @@ -100,7 +100,7 @@ set_input_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VG set_input_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VGA_G_COMPOSITE}] set_input_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VGA_R_COMPOSITE}] set_input_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {V_CSYNC}] -set_input_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {V_CVIDEO}] +#set_input_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {V_CVIDEO}] set_input_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {V_HSYNCn}] set_input_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {V_VSYNCn}] set_input_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {V_COLR}] @@ -126,6 +126,7 @@ set_output_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {V set_output_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VDATA[5]}] set_output_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VDATA[6]}] set_output_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VDATA[7]}] +set_output_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VWAITn}] set_output_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VGA_B[0]}] set_output_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VGA_B[1]}] set_output_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {VGA_B[2]}] @@ -162,7 +163,15 @@ set_output_delay -add_delay -clock [get_clocks {CLOCK_50}] 1.000 [get_ports {a #************************************************************** # Set False Path #************************************************************** - +set_false_path -from [get_clocks {VCPLL3|altpll_component|auto_generated|pll1|clk[0]}] -to [get_clocks {VCPLL2|altpll_component|auto_generated|pll1|clk[0]}] +set_false_path -from [get_clocks {VCPLL3|altpll_component|auto_generated|pll1|clk[1]}] -to [get_clocks {VCPLL2|altpll_component|auto_generated|pll1|clk[0]}] +set_false_path -from [get_clocks {VCPLL2|altpll_component|auto_generated|pll1|clk[0]}] -to [get_clocks {VCPLL3|altpll_component|auto_generated|pll1|clk[0]}] +set_false_path -from [get_clocks {VCPLL2|altpll_component|auto_generated|pll1|clk[1]}] -to [get_clocks {VCPLL3|altpll_component|auto_generated|pll1|clk[0]}] +set_false_path -from [get_clocks {VCPLL2|altpll_component|auto_generated|pll1|clk[0]}] -to [get_clocks {VCPLL3|altpll_component|auto_generated|pll1|clk[1]}] +set_false_path -from [get_clocks {VZ80_CLK}] -to [get_clocks {VCPLL3|altpll_component|auto_generated|pll1|clk[0]}] +set_false_path -from [get_clocks {VZ80_CLK}] -to [get_clocks {VCPLL2|altpll_component|auto_generated|pll1|clk[0]}] +set_false_path -from [get_clocks {VZ80_CLK}] -to [get_clocks {VCPLL3|altpll_component|auto_generated|pll1|clk[1]}] +set_false_path -from [get_clocks {VZ80_CLK}] -to [get_clocks {VCPLL2|altpll_component|auto_generated|pll1|clk[1]}] #************************************************************** diff --git a/FPGA/SW700/build/Video_Clock.vhd b/FPGA/SW700/build/Video_Clock.vhd index 512518d..c6a90bb 100644 --- a/FPGA/SW700/build/Video_Clock.vhd +++ b/FPGA/SW700/build/Video_Clock.vhd @@ -169,15 +169,15 @@ BEGIN clk0_phase_shift => "0", clk1_divide_by => 25, clk1_duty_cycle => 50, - clk1_multiply_by => 4, + clk1_multiply_by => 8, clk1_phase_shift => "0", clk2_divide_by => 25, clk2_duty_cycle => 50, - clk2_multiply_by => 8, + clk2_multiply_by => 16, clk2_phase_shift => "0", clk3_divide_by => 5, clk3_duty_cycle => 50, - clk3_multiply_by => 4, + clk3_multiply_by => 8, clk3_phase_shift => "0", inclk0_input_frequency => 20000, intended_device_family => "Cyclone III", @@ -268,9 +268,9 @@ END SYN; -- Retrieval info: PRIVATE: DUTY_CYCLE2 STRING "50.00000000" -- Retrieval info: PRIVATE: DUTY_CYCLE3 STRING "50.00000000" -- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "120.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "8.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "16.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "40.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "16.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE2 STRING "32.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE3 STRING "80.000000" -- Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0" -- Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" -- Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" @@ -305,9 +305,9 @@ END SYN; -- Retrieval info: PRIVATE: MULT_FACTOR3 NUMERIC "1" -- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "0" -- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "120.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "8.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "16.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "40.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "16.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ2 STRING "32.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ3 STRING "80.00000000" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "1" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "1" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE2 STRING "1" @@ -373,15 +373,15 @@ END SYN; -- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" -- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "25" -- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "4" +-- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "8" -- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" -- Retrieval info: CONSTANT: CLK2_DIVIDE_BY NUMERIC "25" -- Retrieval info: CONSTANT: CLK2_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "8" +-- Retrieval info: CONSTANT: CLK2_MULTIPLY_BY NUMERIC "16" -- Retrieval info: CONSTANT: CLK2_PHASE_SHIFT STRING "0" -- Retrieval info: CONSTANT: CLK3_DIVIDE_BY NUMERIC "5" -- Retrieval info: CONSTANT: CLK3_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "4" +-- Retrieval info: CONSTANT: CLK3_MULTIPLY_BY NUMERIC "8" -- Retrieval info: CONSTANT: CLK3_PHASE_SHIFT STRING "0" -- Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "20000" -- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III" diff --git a/FPGA/SW700/build/Video_Clock_II.vhd b/FPGA/SW700/build/Video_Clock_II.vhd index 2c24bf6..571aa30 100644 --- a/FPGA/SW700/build/Video_Clock_II.vhd +++ b/FPGA/SW700/build/Video_Clock_II.vhd @@ -147,13 +147,13 @@ BEGIN altpll_component : altpll GENERIC MAP ( bandwidth_type => "LOW", - clk0_divide_by => 24, + clk0_divide_by => 12, clk0_duty_cycle => 50, clk0_multiply_by => 13, clk0_phase_shift => "0", - clk1_divide_by => 4800, + clk1_divide_by => 240, clk1_duty_cycle => 50, - clk1_multiply_by => 1007, + clk1_multiply_by => 101, clk1_phase_shift => "0", inclk0_input_frequency => 8333, intended_device_family => "Cyclone III", @@ -239,8 +239,8 @@ END SYN; -- Retrieval info: PRIVATE: DIV_FACTOR1 NUMERIC "1" -- Retrieval info: PRIVATE: DUTY_CYCLE0 STRING "50.00000000" -- Retrieval info: PRIVATE: DUTY_CYCLE1 STRING "50.00000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "65.000000" --- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "25.174999" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE0 STRING "130.000000" +-- Retrieval info: PRIVATE: EFF_OUTPUT_FREQ_VALUE1 STRING "50.500000" -- Retrieval info: PRIVATE: EXPLICIT_SWITCHOVER_COUNTER STRING "0" -- Retrieval info: PRIVATE: EXT_FEEDBACK_RADIO STRING "0" -- Retrieval info: PRIVATE: GLOCKED_COUNTER_EDIT_CHANGED STRING "1" @@ -268,8 +268,8 @@ END SYN; -- Retrieval info: PRIVATE: MULT_FACTOR0 NUMERIC "1" -- Retrieval info: PRIVATE: MULT_FACTOR1 NUMERIC "1" -- Retrieval info: PRIVATE: NORMAL_MODE_RADIO STRING "0" --- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "65.00000000" --- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "25.17500000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ0 STRING "130.00000000" +-- Retrieval info: PRIVATE: OUTPUT_FREQ1 STRING "50.50000000" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE0 STRING "1" -- Retrieval info: PRIVATE: OUTPUT_FREQ_MODE1 STRING "1" -- Retrieval info: PRIVATE: OUTPUT_FREQ_UNIT0 STRING "MHz" @@ -315,13 +315,13 @@ END SYN; -- Retrieval info: PRIVATE: ZERO_DELAY_RADIO STRING "0" -- Retrieval info: LIBRARY: altera_mf altera_mf.altera_mf_components.all -- Retrieval info: CONSTANT: BANDWIDTH_TYPE STRING "LOW" --- Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "24" +-- Retrieval info: CONSTANT: CLK0_DIVIDE_BY NUMERIC "12" -- Retrieval info: CONSTANT: CLK0_DUTY_CYCLE NUMERIC "50" -- Retrieval info: CONSTANT: CLK0_MULTIPLY_BY NUMERIC "13" -- Retrieval info: CONSTANT: CLK0_PHASE_SHIFT STRING "0" --- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "4800" +-- Retrieval info: CONSTANT: CLK1_DIVIDE_BY NUMERIC "240" -- Retrieval info: CONSTANT: CLK1_DUTY_CYCLE NUMERIC "50" --- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "1007" +-- Retrieval info: CONSTANT: CLK1_MULTIPLY_BY NUMERIC "101" -- Retrieval info: CONSTANT: CLK1_PHASE_SHIFT STRING "0" -- Retrieval info: CONSTANT: INCLK0_INPUT_FREQUENCY NUMERIC "8333" -- Retrieval info: CONSTANT: INTENDED_DEVICE_FAMILY STRING "Cyclone III" diff --git a/FPGA/SW700/build/output_files/VideoController700.jic b/FPGA/SW700/build/output_files/VideoController700.jic index 67ed6824efb55591807122a292fee5559c7d8900..dc48bde2289a6ce8579574159b716dbbd1be3394 100644 GIT binary patch literal 2097376 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
    PI&u=3S;;U4@! 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

    CijN)!;T1j}dGUHv3_gdLb57S1%?Z+)Lgu%>l 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 diff --git a/software/MZF/sharpmz-test.MZF b/software/MZF/sharpmz-test.MZF index f50c60535365639956c4c899334fe20e1dfc6285..5ec2ca41fab5b6ea7aede9b97cb562ba633ba977 100644 GIT binary patch delta 53 zcmcbqc2jM`UM9BN-%qp#j`{NU$xoT&5wZ%KwV3q<0NG9% Ag#Z8m delta 35 qcmcbqc2jM`UZ%+#nMEdFXX0bK{r$AN!mr6sndE^&_M4rV#RLEz-42BS diff --git a/software/asm/include/CPM_Definitions.asm b/software/asm/include/CPM_Definitions.asm index b8a1907..78f3ceb 100644 --- a/software/asm/include/CPM_Definitions.asm +++ b/software/asm/include/CPM_Definitions.asm @@ -263,6 +263,7 @@ CPLDCFG EQU 06EH ; Versi CPLDSTATUS EQU 06EH ; Version 2.1 CPLD status register. CPLDINFO EQU 06FH ; Version 2.1 CPLD version information register. ;SYSCTRL EQU 0F0H ; System board control register. [2:0] - 000 MZ80A Mode, 2MHz CPU/Bus, 001 MZ80B Mode, 4MHz CPU/Bus, 010 MZ700 Mode, 3.54MHz CPU/Bus. +VMBORDER EQU 0F3H ; Select VGA Border colour attributes. Bit 2 = Red, 1 = Green, 0 = Blue. ;GRAMMODE EQU 0F4H ; MZ80B Graphics mode. Bit 0 = 0, Write to Graphics RAM I, Bit 0 = 1, Write to Graphics RAM II. Bit 1 = 1, blend Graphics RAM I output on display, Bit 2 = 1, blend Graphics RAM II output on display. VMCTRL EQU 0F8H ; Video Module control register. [2:0] - 000 (default) = MZ80A, 001 = MZ-700, 010 = MZ800, 011 = MZ80B, 100 = MZ80K, 101 = MZ80C, 110 = MZ1200, 111 = MZ2000. [3] = 0 - 40 col, 1 - 80 col. VMGRMODE EQU 0F9H ; Video Module graphics mode. 7/6 = Operator (00=OR,01=AND,10=NAND,11=XOR), 5=GRAM Output Enable, 4 = VRAM Output Enable, 3/2 = Write mode (00=Page 1:Red, 01=Page 2:Green, 10=Page 3:Blue, 11=Indirect), 1/0=Read mode (00=Page 1:Red, 01=Page2:Green, 10=Page 3:Blue, 11=Not used). diff --git a/software/asm/include/TZFS_Definitions.asm b/software/asm/include/TZFS_Definitions.asm index ffd5849..b128f8c 100644 --- a/software/asm/include/TZFS_Definitions.asm +++ b/software/asm/include/TZFS_Definitions.asm @@ -200,6 +200,7 @@ PALSETRED EQU 0D5H ; set t PALSETGREEN EQU 0D6H ; set the green palette value according to the PALETTE_PARAM_SEL address. PALSETBLUE EQU 0D7H ; set the blue palette value according to the PALETTE_PARAM_SEL address. SYSCTRL EQU 0F0H ; System board control register. [2:0] - 000 MZ80A Mode, 2MHz CPU/Bus, 001 MZ80B Mode, 4MHz CPU/Bus, 010 MZ700 Mode, 3.54MHz CPU/Bus. +VMBORDER EQU 0F3H ; Select VGA Border colour attributes. Bit 2 = Red, 1 = Green, 0 = Blue. GRAMMODE EQU 0F4H ; MZ80B Graphics mode. Bit 0 = 0, Write to Graphics RAM I, Bit 0 = 1, Write to Graphics RAM II. Bit 1 = 1, blend Graphics RAM I output on display, Bit 2 = 1, blend Graphics RAM II output on display. VMPALETTE EQU 0F5H ; Select Palette: ; 0xF5 sets the palette. The Video Module supports 4 bit per colour output but there is only enough RAM for 1 bit per colour so the pallette is used to change the colours output. diff --git a/software/asm/sharpmz-test.asm b/software/asm/sharpmz-test.asm index 0683e48..4611898 100644 --- a/software/asm/sharpmz-test.asm +++ b/software/asm/sharpmz-test.asm @@ -74,6 +74,7 @@ PALSLCTON EQU 0D4H ; set t PALSETRED EQU 0D5H ; set the red palette value according to the PALETTE_PARAM_SEL address. PALSETGREEN EQU 0D6H ; set the green palette value according to the PALETTE_PARAM_SEL address. PALSETBLUE EQU 0D7H ; set the blue palette value according to the PALETTE_PARAM_SEL address. +VMBORDER EQU 0F3H ; Select VGA Border colour attributes. Bit 2 = Red, 1 = Green, 0 = Blue. GRAMMODE EQU 0F4H ; MZ80B Graphics mode. Bit 0 = 0, Write to Graphics RAM I, Bit 0 = 1, Write to Graphics RAM II. Bit 1 = 1, blend Graphics RAM I output on display, Bit 2 = 1, blend Graphics RAM II output on display. VMPALETTE EQU 0F5H ; Select Palette: ; 0xF5 sets the palette. The Video Module supports 4 bit per colour output but there is only enough RAM for 1 bit per colour so the pallette is used to change the colours output. @@ -687,6 +688,11 @@ GPUNEXT1: LD A,(GPUSTARTX) GPUNEXT2: LD A,(GPUSTARTY) LD (GPUENDY),A + ; Wait for the GPU to become ready. +GPUWAIT1: IN A,(GPUSTATUS) + BIT 0,A + JR NZ,GPUWAIT1 + ; Setup the GPU parameters to fill area. GPUNEXT3: LD A,(GPUSTARTX) OUT (GPUPARAM),A @@ -703,17 +709,13 @@ GPUNEXT3: LD A,(GPUSTARTX) ; Issue the GPU command. LD A,GPUCLEARVRAMP OUT (GPUCMD),A - ; Wait for the command to complete. -GPUWAIT1: IN A,(GPUSTATUS) - BIT 0,A - JR NZ,GPUWAIT1 ; Next End Y loop. LD A,(GPUENDY) INC A LD (GPUENDY),A CP 25 - JP C, GPUNEXT3 + JP C, GPUWAIT1 ; Change the character. LD A,(GPUCHAR) @@ -727,6 +729,11 @@ GPUWAIT1: IN A,(GPUSTATUS) CP 40 JP C, GPUNEXT2 + ; Wait for the GPU to become ready. +GPUWAIT2: IN A,(GPUSTATUS) + BIT 0,A + JR NZ,GPUWAIT2 + ; Setup the GPU parameters to clear area. LD A,(GPUSTARTX) OUT (GPUPARAM),A @@ -743,10 +750,6 @@ GPUWAIT1: IN A,(GPUSTATUS) ; Issue the GPU command. LD A,GPUCLEARVRAMP OUT (GPUCMD),A - ; Wait for the command to complete. -GPUWAIT2: IN A,(GPUSTATUS) - BIT 0,A - JR NZ,GPUWAIT2 ; Adjust back colour. LD A,(GPUATTR) diff --git a/software/asm/tzfs.asm b/software/asm/tzfs.asm index 7938a19..0567b69 100644 --- a/software/asm/tzfs.asm +++ b/software/asm/tzfs.asm @@ -99,6 +99,7 @@ BANKTOBANK_:JMPTOBNK ?INITMEMX: CALLBNK INITMEMX, TZMM_TZFS3 ?SETVMODE: CALLBNK SETVMODE, TZMM_TZFS2 ?SETVGAMODE:CALLBNK SETVGAMODE, TZMM_TZFS2 +?SETVBORDER:CALLBNK SETVBORDER, TZMM_TZFS2 ?SETFREQ: CALLBNK SETFREQ, TZMM_TZFS2 ;----------------------------------------- @@ -355,6 +356,9 @@ CMDTABLE: DB 000H | 000H | 000H | 003H DB 000H | 000H | 000H | 001H DB 'T' ; Timer test. DW TIMERTST + DB 000H | 000H | 000H | 007H + DB "VBORDER" ; Set VGA border colour. + DW ?SETVBORDER DB 000H | 000H | 000H | 005H DB "VMODE" ; Set VGA mode. DW ?SETVMODE diff --git a/software/asm/tzfs_bank2.asm b/software/asm/tzfs_bank2.asm index dba0ca5..8bce949 100644 --- a/software/asm/tzfs_bank2.asm +++ b/software/asm/tzfs_bank2.asm @@ -106,8 +106,8 @@ SETVMODE1: LD A,(SCRNMODE) ; Disab SETVGAMODE: IN A,(CPLDINFO) ; Get configuration of hardware. BIT 3,A JP Z,NOFPGAERR ; No hardware so cannot change mode. - CALL ConvertStringToNumber ; Convert the input into 0 (disable) or frequency in KHz. - JR NZ,BADNUMERR + CALL ConvertStringToNumber ; Convert the input into 0-3, 0 = off, 1 = 640x480, 2=1024x768, 3=800x600. + JP NZ,BADNUMERR LD A,H CP 0 JR NZ,BADNUMERR ; Check that the given mode is in range 0 - 3. @@ -132,6 +132,27 @@ SETVGAMODE: IN A,(CPLDINFO) ; Get c LD (SCRNMODE),A RET + ; Method to set the VGA border colour on the external display. +SETVBORDER: IN A,(CPLDINFO) ; Get configuration of hardware. + BIT 3,A + JP Z,NOFPGAERR ; No hardware so cannot change mode. + CALL ConvertStringToNumber ; Convert the input into 0 - 7, bit 2 = Red, 1 = Green, 0 = Blue. + JP NZ,BADNUMERR + LD A,H + CP 0 + JR NZ,BADNUMERR ; Check that the given mode is in range 0 - 7. + LD A,L + CP 7 + JR NC,BADNUMERR + ; + IN A,(CPLDCFG) + OR MODE_VIDEO_FPGA ; Set the tranZPUter CPLD hardware to enable the FPGA video mode. + OUT (CPLDCFG),A + ; + LD A,L + OUT (VMBORDER),A + RET + ; Method to enable/disable the alternate CPU frequency and change it's values. ; SETFREQ: CALL ConvertStringToNumber ; Convert the input into 0 (disable) or frequency in KHz. @@ -518,6 +539,7 @@ HELPSCR: ; "--------- 40 column width -------------" DB "T - test timer.", 00DH DB "T2SD - copy tape to sd card.", 00DH DB "V - verify tape save.", 00DH + DB "VBORDER[n] - set vga border colour.", 00DH DB "VMODE[n] - set video mode.", 00DH DB "VGA[n]- Set VGA mode.", 00DH DB 000H diff --git a/software/roms/tzfs.rom b/software/roms/tzfs.rom index 7e8a10788396d39fa5d36b104608a9aaa1a81e19..da29abfef41e5e86da59544f30ee0b4a5f7d9b3b 100644 GIT binary patch delta 514 zcmZpez}PT>k)6S+;m!6#JQLY#piGQXt z-kLm#(SY~*%g0Yo3P%4q+wkIW&*bxrflN#GMJO-|Oa0T-u=%HGVR5$pwSt+jCJ=1Rmv{*lR{@GEoL%tRK<;e) zn;TdfnHk+CGjW76uAdyiaZq{vtL>*47zBg<0c}2cR{6DskrIobi!X?!@zzO+ zN${-lW*bf&X2zb$nLLI-ayCyiW6$RAJbjEn6WaI!nYdn0zR8yl!n!`rj#CodKF4b-zxFojLz#fPg0&#ru}U{&*v;n1fKwg1>JeVQyOp~G|Q z!%3-s{u-?R@(+EQ94H|w^x^|h9Z(5Sp+bG_KNf?k$>kEV4!849$Dcx$^9Gt>;C4Ij z8^`6m+RL9$f=oA8>U>+XSAoUOL4wK7@hs4j3i363PuMvD9kW?NkzefN$)`vEH5dr} zHxgdXG1$wHDEjER%2C3P8pZqAe}X4?EunvI3AVl%74A9fDq*Ei1Ezdma= QnNy>b1;p6gq){gi009Z$;Q#;t delta 490 zcmZpez}PT>k)6S+;m!6#OcU8_KVD4MVM?1khv~SS!)xt*7ayLi`^TX1;~%fa z7jub^{}ONftG;ke;pEw*$&Jh|`bn?-lj7^g>c?^N%Y@TSwrp@1Z`WS&GwDAQpeS0PzOC7-z+&eh!DQ!n7U%^9`I@~a?3{pBU6oMe|MKDF)1&_y41|DT$EVmenN?Dc z@%m&FNexE($+42UjMq1JOBORtp1`8C`JXf!3uD-3R)s(89Q?0uoYj7PR%tS)Mkx!3 KvAId3P96ZfL(>8P