Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Unsorted (http://zx-pk.ru/forumdisplay.php?f=13)
-   -   -=Reverse=- Конфигурации. (http://zx-pk.ru/showthread.php?t=13875)

alone 28th November 2013 19:57

Порты #B3 (cylinder low) и #BB (drive/head) DivIDE пересекаются с General Sound.

ILoveSpeccy 28th November 2013 22:17

Quote:

Originally Posted by alone (Post 647392)
Порты #B3 (cylinder low) и #BB (drive/head) DivIDE пересекаются с General Sound.

Velesoft писал где-то, что порты у DIVMMC другие и с GS не пересекаются. На днях попробую прикрутить.

lisica 17th February 2014 11:14

Quote:

Originally Posted by vlad (Post 674504)
После замены ядра вот что получилось:

Молодец, даже смещение борда сделал.
Quote:

Originally Posted by vlad (Post 674504)
Думаю как устранить возможные смещения при выходе из Turbo.

А зачем? Запускать не в турбо. А мультиколоры сами по себе синхронизируются.

vlad 17th February 2014 12:15

Quote:

Originally Posted by lisica (Post 674532)
А зачем? Запускать не в турбо. А мультиколоры сами по себе синхронизируются.

Осталось прикрутить 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 уже есть.

vlad 5th March 2014 16:42

Обновил конфигурацию Speccy http://zx.pk.ru/showpost.php?p=619825&postcount=894

balu_dark 8th March 2014 00:57

vlad - а чего там новенького ?

vlad 9th March 2014 14:09

1 Attachment(s)
Quote:

Originally Posted by balu_dark (Post 685497)
а чего там новенького ?

В версии 0.8.6 стараюсь настроить видео режим под Pentagon и ZX-Spectrum 48K/128K. По Pentagon все попытки в теме: Пентагоновский режим экрана на Робике.

Также из нового:
  • Добавил рамку (вкл. кнопкой 'F7') для удобства настройки позиции кадра. Сейчас мне просто необходима.
    http://zx-pk.ru/attachment.php?attac...1&d=1394351663
  • Начал разработку периферийного контроллера на базе N80CPU, для эмуляции периферии - FDC (работа с образами TRD, SCL, UDI, FDI... на SD карте), RTC, TAPE... Возможно будет встроенный отладчик (вкл. кнопкой 'F8'), для этого добавил цветной текстовый режим 80х30. При включении платы пока выводит информацию о версии и сканит в/в. Дальше добавлю настройку всей системы через меню и возможно файловик типа FAR.
    Attachment 46366
В общем будет видно. Возможности платы пока для этого есть.

vlad 11th March 2014 23:37

Quote:

Originally Posted by ILoveSpeccy (Post 647234)
Влад, есть успехи? Получилось портировать? Я решил немного отдохнуть от железа и написать простенькую конфигурацию спека для Aeon'а. Для загрузки софта приглянулся DIVMMC. Только пока не всё понятно с ним.

Пытаюсь запустить DivMMC. При включении намертво вешает спек. Такое впечатление что проц заваливается в цикл. Просмотрев rom наткнулся на порт #1FFD с установкой 3-го бита, и #FFFD ?
Написано, что переключение страницы должно сработать в начале цикла REFRESH после загрузки кода операции (после цикла М1) от 0000h, 0008h, 0038h, 0066h, 04C6h и 0562h. И также происходит мгновенно при исполнении кода операции из 3D00h-3DFFh по заднему фронту /MREQ. Отключение страницы в цикле /REFRESH при чтении команды из 1FF8h-1FFFh «офф-область».

Т.е. я правильно понял, что переключение происходит после цикла M1, когда код команды был считан? И после переключения порты divmmc стают доступны?

ILoveSpeccy 12th March 2014 02:21

Привет Влад,

я некоторое время назад наконец-то победил DivMMC!
Quote:

Originally Posted by vlad (Post 687106)
Т.е. я правильно понял, что переключение происходит после цикла M1, когда код команды был считан? И после переключения порты divmmc стают доступны?

Да, именно так. Переключение происходит сразу ПОСЛЕ чтения опкода из указанной области, и, например, если за опкодом следуют какие либо операнды, то они считаются уже из ROM/RAM DivMMC.

Вот куски из моего кода, надеюсь поможет...

Code:

  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";

Если нужно, могу выложить рабочий проект для DE2-115
Спек очень кастрированный, но DivMMC в связке с EsxDOS работает.
Мне в принципе только это и надо было, так как полноценный спек с обкатанными модулями будет сразу писаться под Aeon Lite.

point777 17th March 2014 23:08

ILoveSpeccy,
Выложи пожалуйста для de2-115.
Спасибо.

Sent from my VS980 4G using Tapatalk


All times are GMT +4. The time now is 16:29.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.