Цитата Сообщение от andykarpov Посмотреть сообщение
1) Что записывать в ПЗУ чтобы работали ОБЕ версии - ZC и DIVMMC? - соберите сами прошивку (Makefile там есть), чтобы в одной половине было то что нужно для divmmc, а во второй половине - то что нужно для ZC, чтобы переклбчать перемычной банки.
Как я и писал, я ипользовал готовую из вашего github-а : divmmc-29ee040.rom. Меня больше устроил бы divmmc - он развиваеться и надеюсь, имеет больше возможностей чем ZC. Меня больше интересует сам процесс создания железки , чем ее использование))) Makefile видел но не собирал сам потому, что не понятен алгоритм работы двух устройств в одной железяке: ZC и DIVMMC. После Вашего ответа стало понятно для чего нужны перемычки ROM_A16 "ROMBANK0" и ROM_A17 "ROMBANK1". Их можно завести на Raspberry Pi pico и удаленно дергать на uPython-e))))
Цитата Сообщение от andykarpov Посмотреть сообщение
2) обвязка для AD724 под NTSC - это, конечно, хорошо, но тогда и код надо править так, чтобы развертка тоже была NTSC Иначе кина не будет. Был ли в природе пентагон под ntsc я даже не знаю. И это значит, что с бордер-эффектами можно будет попрощаться.
про это я уже подумал сам. Попробовав подключить для теста вот такую штуку на Raspberry Pi pico. Там тоже под PAL "кино" очень условное и черно-белое)))

3) NMI должна перехватываться модулем divmmc и показывать NMI browser. Если этого не происходит, значит ESXDOS не проинициализировался. При включении есть стартовое меню ESXDOS, там где отображается список найденных устройств и загруженных модулей с SD карты ?
Карта стоит в приемнике - файлы переписаны в корень из вашего раздела: karabas-nano-master\sd\divmmc\. Старта "divmmc" я так и не увидел - ни прикаких комбинациях.
4) То что CPLD греется - значит где-то есть конфликт, ну либо по скорости не выгребает. Без предоставления исходников сложно понять, что вы там наделали
Про конфликт не скажу, потому что нет осциллографа под рукой. Могу предположить , раз комп заводиться и работает то все что к нему подключено - все работает как положено. На данном этапе подключено только МИНИМУМ - ПЗУ, ПРОЦ и ОЗУ! Скорость та же что и Вас - 28МГц заводиться во-внутрь. Чип шустрый но старый))) Исходники - НИЧЕГО не менял , кроме замены сдвиговых регистров которые использовали встроенные библиотеки от ALTERA.
вот мой "код" в файле divmmc.vhd (в конце файла)
Код:
signal clock_shift_in : std_logic;

process ( I_CLK, cnt(3) )
begin
  clock_shift_in  <= not I_CLK and not cnt(3);
end process;

U_SHIFTIN: entity work.shift_in
port map(
	--clock_in => not I_CLK and not cnt(3),
	--clock_in => '1',
	clock_in => clock_shift_in,
	shiftin => I_MISO,
	q => O_DATA
);

O_SCLK  <= I_CLK and not cnt(3);
O_MOSI  <= shift_out(7);
а это замените
Код:
entity shift_in is
    port(
	      clock_in  : in std_logic;
			shiftin : in std_logic;
         q : out std_logic_vector(7 downto 0)
			);
end shift_in;

architecture syn of shift_in is
   signal tmp: std_logic_vector(7 downto 0);
--   signal clock : std_logic;
	COMPONENT lpm_shiftreg
	PORT (
			clock_in	: IN STD_LOGIC ;
			q	: OUT STD_LOGIC_VECTOR (7 DOWNTO 0);
			shiftin	: IN STD_LOGIC 
	     );
	END COMPONENT;

begin
 
    process (clock_in)
    begin
        if rising_edge(clock_in) then
            tmp <= tmp(6 downto 0)& shiftin;
        end if;
    end process;
    q <= tmp;

end syn;
Код:
entity shift_out is
       port (
		       clock		: in  std_logic ;
		       data		   : in  std_logic_vector (7 downto 0);
		       enable		: in  std_logic ;
		       load		   : in  std_logic ;
		       shiftout	: out std_logic 
		      );
end shift_out;

architecture syn of shift_out is
	signal sub_wire0	  : std_logic ;
	signal register_tmp : std_logic_vector (7 downto 0);
begin

process ( clock, load, enable )
begin
    if( clock'event and clock = '1' ) then
       if ( enable ='1') then  
		    if( load = '1') then
             register_tmp <= data;                                        -- параллельная загрузка
          else 
             register_tmp <= register_tmp(0)&register_tmp(7 downto 1) ;   -- сдвиг вправо по циклу
          end if;
          shiftout <= register_tmp(0) ;                                   -- последовательный выход
	    end if;	 
    end if;
end process;