Порты #B3 (cylinder low) и #BB (drive/head) DivIDE пересекаются с General Sound.
Порты #B3 (cylinder low) и #BB (drive/head) DivIDE пересекаются с General Sound.
Взносы в призовой фонд конкурса "Твоя игра 5" принимаются с помощью PaуPal, ЯндексДенег или перевода на карту Сбербанка (см. http://ti5.retropc.ru)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Робик 1024(пентагоновские тайминги),+ 7Мц+, 2AY(TS),+ контроллер дисковода,+ 3.5,+ 5.25 флоп,+CMOS,+ mouse(caro),+ Flash.
Pentagon 128(1991г.)+YМ
программатор 2732-27512.
Осталось прикрутить OSD меню для настройки всего, как к примеру в unreal. Эти и не только функции (ВГ93, RTC, отладчик, leds, 128KB - 16MB, работа с образами на SD с их привязкой к дикам A..D и Tape...) ляжут на плечи второго проца NZ80@50MHz. Или все это привязать к T80, тогда с TurboSound, GeneralSound, Soundrive, MP3, OGG, AAC, WMA, FLAC, MIDI, заиграет и SID Blaster Только смотрю плеер придется писать самому... Базовые наработки от shurik-ua уже есть.
Обновил конфигурацию Speccy http://zx.pk.ru/showpost.php?p=619825&postcount=894
vlad - а чего там новенького ?
Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
ZX Evo 4Mb- в строю.
Speccy2010 v1
Специалист (пока готовлюсь к восстановлению).
Это все мое!
Родное!
Все люблю на свете я! Это родина моя!
В версии 0.8.6 стараюсь настроить видео режим под Pentagon и ZX-Spectrum 48K/128K. По Pentagon все попытки в теме: Пентагоновский режим экрана на Робике.
Также из нового:
- Добавил рамку (вкл. кнопкой 'F7') для удобства настройки позиции кадра. Сейчас мне просто необходима.
- Начал разработку периферийного контроллера на базе N80CPU, для эмуляции периферии - FDC (работа с образами TRD, SCL, UDI, FDI... на SD карте), RTC, TAPE... Возможно будет встроенный отладчик (вкл. кнопкой 'F8'), для этого добавил цветной текстовый режим 80х30. При включении платы пока выводит информацию о версии и сканит в/в. Дальше добавлю настройку всей системы через меню и возможно файловик типа FAR.
Вложение 46366
В общем будет видно. Возможности платы пока для этого есть.
Пытаюсь запустить DivMMC. При включении намертво вешает спек. Такое впечатление что проц заваливается в цикл. Просмотрев rom наткнулся на порт #1FFD с установкой 3-го бита, и #FFFD ?
Написано, что переключение страницы должно сработать в начале цикла REFRESH после загрузки кода операции (после цикла М1) от 0000h, 0008h, 0038h, 0066h, 04C6h и 0562h. И также происходит мгновенно при исполнении кода операции из 3D00h-3DFFh по заднему фронту /MREQ. Отключение страницы в цикле /REFRESH при чтении команды из 1FF8h-1FFFh «офф-область».
Т.е. я правильно понял, что переключение происходит после цикла M1, когда код команды был считан? И после переключения порты divmmc стают доступны?
Привет Влад,
я некоторое время назад наконец-то победил DivMMC!
Да, именно так. Переключение происходит сразу ПОСЛЕ чтения опкода из указанной области, и, например, если за опкодом следуют какие либо операнды, то они считаются уже из ROM/RAM DivMMC.
Вот куски из моего кода, надеюсь поможет...
Если нужно, могу выложить рабочий проект для DE2-115Код:process(CLK) begin if rising_edge(CLK) and TICK = "010" and CPU_MREQ = '0' then if CPU_M1 = '0' and CPU_A(15 downto 3) = "0001111111111" then MAPCOND <= '0'; elsif (CPU_M1 = '0' and (CPU_A = X"0000" or CPU_A = X"0008" or CPU_A = X"0038" or CPU_A = X"0066" or CPU_A = X"04C6" or CPU_A = X"0562")) or (CPU_M1 = '0' and CPU_A(15 downto 8) = X"3D") then MAPCOND <= '1'; end if; if MAPCOND = '1' or (CPU_M1 = '0' and CPU_A(15 downto 8) = X"3D") then AUTOMAP <= '1'; else AUTOMAP <= '0'; end if; end if; end process; process(CLK) begin if rising_edge(CLK) and TICK = "010" then if CPU_IORQ = '0' and CPU_WR = '0' then if CPU_A(0) = '0' then BORDER <= CPU_DO(2 downto 0); elsif CPU_A(7 downto 0) = X"E3" then BANK <= CPU_DO(5 downto 0); CONMEM <= CPU_DO(7); MAPRAM <= CPU_DO(6) or MAPRAM; LEDG(6) <= CPU_DO(7); end if; end if; end if; end process; CPU_NMI <= '0' when KEY(3) = '0' and MAPCOND = '0' else '1'; RAM_WR <= '1' when CPU_MREQ = '0' and CPU_WR = '0' and CPU_A(15 downto 14) /= "00" else '0'; ESXRAM1_WR <= '1' when CPU_MREQ = '0' and CPU_WR = '0' and CPU_A(15 downto 13) = "001" and (AUTOMAP = '1' or CONMEM = '1') and BANK(2) = '0' else '0'; ESXRAM2_WR <= '1' when CPU_MREQ = '0' and CPU_WR = '0' and CPU_A(15 downto 13) = "001" and (AUTOMAP = '1' or CONMEM = '1') and BANK(2) = '1' else '0'; VRAM_WR <= '1' when CPU_MREQ = '0' and CPU_WR = '0' and CPU_A(15 downto 13) = "010" else '0'; CPU_DI <= ROM_DO when CPU_A(15 downto 14) = "00" and CPU_MREQ = '0' and AUTOMAP = '0' and CONMEM = '0' else ESXDOS_DO when CPU_A(15 downto 13) = "000" and CPU_MREQ = '0' and (AUTOMAP = '1' or CONMEM = '1') -- ESXDOS ROM else ESXRAM1_DO when CPU_A(15 downto 13) = "001" and CPU_MREQ = '0' and (AUTOMAP = '1' or CONMEM = '1') and BANK(2) = '0' -- ESXDOS RAM 1 else ESXRAM2_DO when CPU_A(15 downto 13) = "001" and CPU_MREQ = '0' and (AUTOMAP = '1' or CONMEM = '1') and BANK(2) = '1' -- ESXDOS RAM 2 else RAM_DO when CPU_A(15 downto 14) /= "00" and CPU_MREQ = '0' else "111" & KEYB_DO when CPU_A(0) = '0' and CPU_IORQ = '0' else in_reg when CPU_A(7 downto 0) = X"EB" and CPU_IORQ = '0' else "11111111";
Спек очень кастрированный, но DivMMC в связке с EsxDOS работает.
Мне в принципе только это и надо было, так как полноценный спек с обкатанными модулями будет сразу писаться под Aeon Lite.
Последний раз редактировалось ILoveSpeccy; 12.03.2014 в 01:32.
ILoveSpeccy,
Выложи пожалуйста для de2-115.
Спасибо.
Sent from my VS980 4G using Tapatalk
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)