Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: ZX Spectrum, регенерация видеобуфера и помехи

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3505

  • Vise
  • Vise аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 32
  • Спасибо получено: 4

iff2 пишет:

Vise пишет: У меня платка не марсоход. Плис у меня epm4c10e22i7. Вот такие дела. Если желание есть могу закинуть проект. Или подождите чуток пока 128 прикручу :))))

Что за плата?
dev.visuale.ru/visuale/files/downloads/o...p4ce10e/ep4ce10e.pdf

Vise пишет: Блин не влезает 128 К :))) Там 2 ПЗУ по 16 Кб и 2 видео страницы по 8 кб. Надо засовывать видеопамять во внешнюю!

Лучше ПЗУ, а не видео память.

Блин это надо будет пзу контроллером в плис грузить... Сколько блин мороки с этими спектрумами :))))

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3506

  • iff2
  • iff2 аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 13
  • Спасибо получено: 2

Vise пишет: dev.visuale.ru/visuale/files/downloads/o...p4ce10e/ep4ce10e.pdf


У меня похожая архитектура на ReVerSE-U9 , только там нет проблем с МК.

Vise пишет: Блин это надо будет пзу контроллером в плис грузить... Сколько блин мороки с этими спектрумами :))))

Да, нужен загрузчик ПЗУ. В связи с переездом с google code ещё не все конфигурации перенёс.
Как пример, можно взять загрузчик с z-контроллером из конфигурации TS-Conf ( ссылка )

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от iff2.

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3507

  • Chaosorg
  • Chaosorg аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 312
  • Спасибо получено: 18
Т.е. идея с использованием SDRAM в качестве видеопамяти неосуществима? странно как-то это. Вон видеобуферы (framebuffer) с довольно высоким пиксельклоком работают же.

Ну если так, то можно забрать данные из инициализированного MIF-файлом ОЗУ ПЛИС в SDRAM и потом отдать эту RAM под видео. Таким макаром и TRDOS поместится еще.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Chaosorg.

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3508

  • iff2
  • iff2 аватар
  • Не в сети
  • Новый участник
  • Новый участник
  • Сообщений: 13
  • Спасибо получено: 2

Chaosorg пишет: Т.е. идея с использованием SDRAM в качестве видеопамяти неосуществима? странно как-то это. Вон видеобуферы (framebuffer) с довольно высоким пиксельклоком работают же.
Ну если так, то можно забрать данные из инициализированного MIF-файлом ОЗУ ПЛИС в SDRAM и потом отдать эту RAM под видео. Таким макаром и TRDOS поместится еще.


Почему же, можно, придется только привязаться к видео выборке из SDRAM, т.е. делить её между процессором и видео автоматом. Но лучше для понимания работы, сначала сделать проще, на двухпортовой M9K. Тут только стоит связаться с SDRAM, как мысли про кэш начинают появляться :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от iff2.

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3510

  • Vise
  • Vise аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 32
  • Спасибо получено: 4
Ну все! Запустил я 128 :))) Сижу, ностальгирую во всю. Но! Я подключил шину из speccy.vhd напрямую к своей SRAM, выкинул видеобуфер, вместо него засунул ПЗУ 48 К, ПЗУ 128 К и еще место под ПЗУ TR-DOS осталось :)))) Дальше долго втыкал в адресацию 128. Едрен батон! Как они это все напридумывали! Слава Всевышнему что сейчас адресное пространство у какого нибудь АРМ линейное :))) Если вкратце изменения описать, то вот они:
128K
signal port_7ffd_sel : std_logic;
signal page_ram_sel : std_logic_vector(2 downto 0);
signal page_shadow_scr : std_logic;
signal page_rom_sel : std_logic;
signal page_reg_disable : std_logic; -- 1 48 KByte
-- RAM bank actually being accessed
signal ram_page : std_logic_vector(2 downto 0);

Добавили сигналы

process (vid_sel, vcnt, hcnt, cpu_a_bus)
begin
if vid_sel = '1' then

if page_shadow_scr = '1' then --Video from bank 7
case hcnt(0) is
--when '0' => ram_adr <= "000010" & vcnt(8 downto 7) & vcnt(3 downto 1) & vcnt(6 downto 4) & hcnt(7 downto 3);
--when '1' => ram_adr <= "000010110" & vcnt(8 downto 4) & hcnt(7 downto 3);
when '0' => ram_adr <= "001110" & vcnt(8 downto 7) & vcnt(3 downto 1) & vcnt(6 downto 4) & hcnt(7 downto 3);
when '1' => ram_adr <= "001110110" & vcnt(8 downto 4) & hcnt(7 downto 3);
end case;
end if;

if page_shadow_scr = '0' then --Video from bank 5
case hcnt(0) is
--when '0' => ram_adr <= "000010" & vcnt(8 downto 7) & vcnt(3 downto 1) & vcnt(6 downto 4) & hcnt(7 downto 3);
--when '1' => ram_adr <= "000010110" & vcnt(8 downto 4) & hcnt(7 downto 3);
when '0' => ram_adr <= "001010" & vcnt(8 downto 7) & vcnt(3 downto 1) & vcnt(6 downto 4) & hcnt(7 downto 3);
when '1' => ram_adr <= "001010110" & vcnt(8 downto 4) & hcnt(7 downto 3);
end case;
end if;

else
--ram_adr <= "000" & cpu_a_bus;
ram_adr <= "00" & ram_page & cpu_a_bus(13 downto 0);
end if;
end process;

Изменили формирование адреса

port_7ffd_sel <= '0' when (cpu_a_bus(15) = '0' and cpu_a_bus(1) = '0' and cpu_iorq_n = '0') else '1';

ram_page <= page_ram_sel when cpu_a_bus(15 downto 14) = "11" else -- Selectable bank at 0xc000
cpu_a_bus(14) & cpu_a_bus(15 downto 14); -- A=bank: 00=XXX, 01=101, 10=010, 11=XXX

-- 128K paging register
process(clock,reset_n)
begin
if reset_n = '0' then
page_reg_disable <= '0';
page_rom_sel <= '0';
page_shadow_scr <= '0';
page_ram_sel <= (others => '0');
elsif rising_edge(clock) then
if port_7ffd_sel = '0' and page_reg_disable = '0' and cpu_wr_n = '0' then
page_reg_disable <= cpu_do_bus(5);
page_rom_sel <= cpu_do_bus(4);
page_shadow_scr <= cpu_do_bus(3);
page_ram_sel <= cpu_do_bus(2 downto 0);
end if;
end if;
end process;

Защелка порта 7FFD

Ну все! Пошел ностальгировать :)))) А! Еще проц поменял на тот что у ILoveSpeccy он вроде как получше будет.
Спасибо сказали: Chaosorg

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3511

  • Chaosorg
  • Chaosorg аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 312
  • Спасибо получено: 18
отлично! :) если единственным измененным текстовым файлом был speccy.vhd, то как появится уверенность, что правки закончены, просьба выложить его.

как доберусь домой - буду пробовать запустить это все на Марсоходе 2

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3512

  • Vise
  • Vise аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 32
  • Спасибо получено: 4
Хорошо. Постараюсь вечером выложить проект целиком. Может комунибудь удастся все это запустить на марсаходе. В принципе SDRAM то побыстрее SRAM должна работать. Так что я думаю должно все получится. У меня еще и commodore64 есть :)))) Он в принципе работает, только клава чото тупит....

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Vise.

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3520

  • Chaosorg
  • Chaosorg аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 312
  • Спасибо получено: 18

Vise пишет: В принципе SDRAM то побыстрее SRAM должна работать.

Если бы это было так, то внутреннюю память ПЛИС тоже сделали бы SDRAM и кеши в процессорах и т.д. Но, к сожалению, при произвольном и случайном непредсказуемом доступе, а не передаче целого блока смежных данных это не так. Конечно, SRAM разная бывает, но в основном, мне кажется, современная быстрее. Или я неправильно понял Ваше высказывание.

Если не сложно, киньте ссылку на ресурс откуда Вы берете справочные данные по устройству спектрума, чтобы не искать и не выбирать лучший. Я надеюсь, Вы же не реверс инженирингом схем занимаетесь для выяснения дешифрации адресов портов периферии и страниц памяти ?

P.S. Нарыл тонны информации, но там часто упоминаются такие клоны, которых я сам не имел.

P.P.S. кажется, нашел то, что нужно на worldofspectrum.org на ftp у них свалка сканированной старой документации с некрасивой полиграфией, а вот wiki удобнее

но теперь возник новый вопрос - какой spectrum самый "правильный". Стремление сделать из спектрума что-то похожее на уже существовавшие PC привело ко всяким ATM и он у меня был, но ностальгировать с ним смысла нет - тогда уж в игры для DOS времен 286-486 лучше играть. Выше ZX Spectrum 128 все лишнее, но и их же несколько моделей вроде как. Всякие 2+ 3+. Есть что-то стоящее, что идет только на этих модификациях?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Chaosorg.

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3521

  • Vise
  • Vise аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Осваиваюсь на форуме
  • Сообщений: 32
  • Спасибо получено: 4

Chaosorg пишет:

Vise пишет: В принципе SDRAM то побыстрее SRAM должна работать.

Если бы это было так, то внутреннюю память ПЛИС тоже сделали бы SDRAM и кеши в процессорах и т.д. Но, к сожалению, при произвольном и случайном непредсказуемом доступе, а не передаче целого блока смежных данных это не так. Конечно, SRAM разная бывает, но в основном, мне кажется, современная быстрее. Или я неправильно понял Ваше высказывание.

Ну у меня то древняя SRAM. Хотя Z80 еще более древний. Так что должно и на марсоходе взлететь.

Chaosorg пишет: Если не сложно, киньте ссылку на ресурс откуда Вы берете справочные данные по устройству спектрума, чтобы не искать и не выбирать лучший. Я надеюсь, Вы же не реверс инженирингом схем занимаетесь для выяснения дешифрации адресов портов периферии и страниц памяти ?

Дак известно откуда. Из интернета. Что то из других проектов. Что то по схемам. Что то по старым журналам. Едрен батон, у меня уже весь стол схемами этих спектрумов завален!

Chaosorg пишет: P.S. Нарыл тонны информации, но там часто упоминаются такие клоны, которых я сам не имел.

P.P.S. кажется, нашел то, что нужно на worldofspectrum.org на ftp у них свалка сканированной старой документации с некрасивой полиграфией, а вот wiki удобнее

но теперь возник новый вопрос - какой spectrum самый "правильный". Стремление сделать из спектрума что-то похожее на уже существовавшие PC привело ко всяким ATM и он у меня был, но ностальгировать с ним смысла нет - тогда уж в игры для DOS времен 286-486 лучше играть. Выше ZX Spectrum 128 все лишнее, но и их же несколько моделей вроде как. Всякие 2+ 3+. Есть что-то стоящее, что идет только на этих модификациях?

Ну я вот размышляю прицепить TR-DOS или нет. Или за commodore взяться :)))) В принципе я думаю все что выше чем 128К AY TR-DOS в принципе лишнее. Ну и собственно вот чего у меня в конце получилось: dev.visuale.ru/visuale/index.php/materia...zhivee-vsekh-zhivykh
Спасибо сказали: Chaosorg

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

ZX Spectrum, регенерация видеобуфера и помехи 9 года 3 мес. назад #3522

  • Chaosorg
  • Chaosorg аватар Автор темы
  • Не в сети
  • Завсегдатай
  • Завсегдатай
  • Сообщений: 312
  • Спасибо получено: 18

Vise пишет: Ну я вот размышляю прицепить TR-DOS или нет. Или за commodore взяться :)))) В принципе я думаю все что выше чем 128К AY TR-DOS в принципе лишнее. Ну и собственно вот чего у меня в конце получилось: dev.visuale.ru/visuale/index.php/materia...zhivee-vsekh-zhivykh


Я решил для себя не мудрствовать - что я в реале тогда использовал, то и делать. Правда ATM у меня тоже был, но я его уже купил готовой платой, а не сам паял и потом быстро ушел с него на IBM PC. Я никогда не видел 3+ , но меня немного смущает где-то прочитанное, что "там у них" он был популярнее TR-DOS. Вот и позарился, скажем так, на какое-то время. Про CP/M тоже соблазнительно, но... Тем не менее, все популярное вроде было переделано нашими под TR-DOS. Если так уж приспичит CP/M, то вроде его как-то приделывали и к 128K.

А если уж заговорили про не ZX, то, из 8-битных, Atari 800 (или 65XE, 130XE) и NES у нас были популярнее, чем Commodore или что либо отечественное, включая даже 16-битный БК-0010. Из 16-битных, SEGA MegaDrive был популярнее, чем SNES или что-то там еще, пока не появилась PSX и не подешевел PC. Короче, я за Atari :) Но тут, каждому свое, конечно.

P.S.

и да, конечно, получилось у Вас хорошо :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Последнее редактирование: от Chaosorg.
Время создания страницы: 0.169 секунд
Работает на Kunena форум