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)

lisica 26th February 2011 20:59

Quote:

Originally Posted by vlad (Post 362086)
Интересует поведение вг при подачи (других комбинаций бит не входящих в таблицу) команд второго и третьего типа.

Наверное не реагирует...

---------- Post added at 18:59 ---------- Previous post was at 18:57 ----------

Quote:

Originally Posted by БК-0010 (Post 362095)
lisica, ты собираешься со всех ламерсих журналов схемки прикручивать?

Если я сомневаюсь - то спрашиваю у знающих. Если знаешь - то ответь по существу!

Ewgeny7 26th February 2011 21:41

2 Attachment(s)
Вот мое решение проблемы :)
Резисторы на:
R - 470е
G - 0е
B - 1к2
Syn (13) - 100е
Соединил выходы с резисторов и подал на видеовход тюнера.
Земля - к земле.
Включение/выключение ТВ/VGA - ножка GPI. Посадил туда перемычку чтобы не тыркать клавиатуру лишний раз, а отключать ТВ просто снятием перемычки.
Прошивку класть смысла нет, у меня она "особенная" изза клавиатурного модуля, поэтому по кускам:

signal videoout_mode : std_logic;
signal hsync : std_logic;
signal hsync_buf : std_logic;
signal vsync_buf : std_logic;
.........................
process(clk_cnt,vid_h_cnt)
begin
if clk_cnt(0)'event and clk_cnt(0) = '1' then
if vid_h_cnt = 328 then hsync <= '0'; end if;
if vid_h_cnt = 356 then hsync <= '1'; end if;
end if;
end process;
...........................
VGA_R2 <= vid_sin_bus(5) when videoout_mode = '0' else vid_sout_reg(5);
VGA_G2 <= vid_sin_bus(4) when videoout_mode = '0' else vid_sout_reg(4);
VGA_B2 <= vid_sin_bus(3) when videoout_mode = '0' else vid_sout_reg(3);
VGA_R1 <= vid_sin_bus(2) when videoout_mode = '0' else vid_sout_reg(2);
VGA_G1 <= vid_sin_bus(1) when videoout_mode = '0' else vid_sout_reg(1);
VGA_B1 <= vid_sin_bus(0) when videoout_mode = '0' else vid_sout_reg(0);
VGA_R0 <= 'Z';
VGA_G0 <= 'Z';
VGA_B0 <= 'Z';

hsync_buf <= vid_hsync;
vsync_buf <= vid_vsync;

VGA_HSYNC <= hsync_buf when videoout_mode = '0' else not(hsync xor vsync_buf);
VGA_VSYNC <= vsync_buf;

videoout_mode <= '0' when GPI = '1' else '1';


Собственно, всё.

Black_Cat 26th February 2011 22:01

Quote:

Originally Posted by lisica (Post 362097)
Если знаешь - то ответь по существу!

я те уже ответил по существу сцылкой на единственно грамотную схему, всё остальное можешь сразу отправлять в печку

lisica 26th February 2011 22:10

Quote:

Originally Posted by Ewgeny7 (Post 362119)
Вот мое решение проблемы

Мне легче, имею два монитора - перевтыкаться не надо.

---------- Post added at 20:10 ---------- Previous post was at 20:08 ----------

Quote:

Originally Posted by БК-0010 (Post 362129)
я те уже ответил по существу сцылкой на единственно грамотную схему, всё остальное можешь сразу отправлять в печку

Подставил по той схеме - компилится. Теперь дай ссылочку на музон с CD, чтоб проверить.

vlad 26th February 2011 23:46

Код изменил, хотя толку от этого мало. Прикрути лучше UDMA SC.
Code:

        process(CLK, ENA)
        begin
                if (ENA = '0') then
                        outa <= (others => '0');
                        outb <= (others => '0');
                        outc <= (others => '0');
                        outd <= (others => '0');
                elsif (CLK'event and CLK = '1') then
                        if ((A = X"0F" or A = X"79") and nIORQ = '0' and nWR = '0' and DOS = '0') then
                                outa <= DI;
                        elsif ((A = X"1F" or A = X"7B") and nIORQ = '0' and nWR = '0' and DOS = '0') then
                                outb <= DI;
                        elsif ((A = X"4F" or A = X"F9") and nIORQ = '0' and nWR = '0' and DOS = '0') then
                                outc <= DI;
                        elsif ((A = X"5F" or A = X"FB") and nIORQ = '0' and nWR = '0' and DOS = '0') then
                                outd <= DI;
                        end if;
                end if;
        end process;



---------- Post added at 21:46 ---------- Previous post was at 21:41 ----------

Можно переделать с маской, для одиночной записи сразу в 1/2/3/4 регистра.

lisica 26th February 2011 23:56

Quote:

Originally Posted by vlad (Post 362179)
Прикрути лучше UDMA SC.

А что это такое, и где о нём почитать.

Quote:

Originally Posted by vlad (Post 362179)
Код изменил, хотя толку от этого мало.

Я подставил уже из ссылки БК-0010, вроде играет.
Не знаю, надо ли - сделал в одной прошивке два маппера под разные ромы. (7FFD(5,7,6,2,1,0) и DFFD) Переключаются F10. Вот, только как его индицировать?

Ewgeny7 27th February 2011 00:01

Вроде заработала клавиатура с модулем Влада. Выясняю детали...

Black_Cat 27th February 2011 01:00

Quote:

Originally Posted by vlad (Post 362179)
Прикрути лучше UDMA SC

чёт есть у мну сомнение что 8237 у вас в FPGA влезет

solegstar 27th February 2011 03:19

Quote:

Originally Posted by lisica (Post 362182)
Я подставил уже из ссылки БК-0010, вроде играет...

извиняюсь, что вмешиваюсь, но можно я свои пять копеек вставлю... возможно в конфиг soundrive добавить порт #B3 (GS-covox, который почему-то выкинул БК-0010 из своей схемы) и порт Scorpion`a #DD.

to БК-0010, по твоей схеме, второй режим soundrive полезен только портом #FB, ну и теоретически лучшей дешифрацией (хотя, я так понял на практике не проверялось)... откуда взялись порты #79, #7B? зачем они вообще нужны, если стандартные для второго режима были (лет этак 10-12) #F1, #F3 (на который отзывался порт #B3 GS-Covox), ну и конечно #F9 и #FB?.. но это уже не в этой теме обсуждать...

Black_Cat 27th February 2011 04:20

Quote:

Originally Posted by solegstar (Post 362230)
возможно в конфиг soundrive добавить порт #B3 (GS-covox, который почему-то выкинул БК-0010 из своей схемы) и порт Scorpion`a #DD.

не надо этот огород городить. Есть два наиболее распространённых стандарта - Covox (одноканальный) - для всего мира, и SounDrive (четырёхканальный) - в нашем узком кругу. Всё остальное - это конверсии из этих стандартов. Нет ничего ценного и уникального, чего нет на ковоксе и соунддрайве, в других реализациях портов, и поддерживать их нет смысла. Таких портов не два, их есть куча, и под них никто ничего не пишет, в лучшем случае существуют старые конверсии с ковокса. Ты предлагаешь все их прикрутить? Вобщем FPGA большая, можно весь хлам в неё запихать если задаться целью.. :)

---------- Post added at 03:20 ---------- Previous post was at 02:55 ----------

vlad, лучше проясни всёж вопрос на счёт 8237, она реально влезет в FPGA, ..и ещё пара таймеров 8254?

vlad 27th February 2011 10:51

Quote:

Originally Posted by БК-0010 (Post 362234)
лучше проясни всёж вопрос на счёт 8237, она реально влезет в FPGA, ..и ещё пара таймеров 8254?

Сейчас, серьезно прикручиванием UDMA никто не занимается, т.к. я пока не знаю кто уже реально ее прикрутил в FPGA. По поводу влезет или нет, то думаю влезет, ведь не все режимы чипов используются, да и повторять их (как есть) нет смысла, просто будет взят алгоритм работы.

lisica 27th February 2011 12:02

Quote:

Originally Posted by lisica (Post 362182)
Не знаю, надо ли - сделал в одной прошивке два маппера под разные ромы. (7FFD(5,7,6,2,1,0) и DFFD) Переключаются F10. Вот, только как его индицировать?

Повторюсь с вопросом - надо это, или оставить две разные прошивки под разные мапперы?

Я, вот подумал, может совместить переключатель мапперов с переключателем фреймов - режим экрана - пентагон и режим маппера тож пентагон?

---------- Post added at 09:53 ---------- Previous post was at 09:10 ----------

Влад, подставил FB, всё равно старый, добрый Covox не играет.

---------- Post added at 10:02 ---------- Previous post was at 09:53 ----------

Разобрался - заиграл covox

vlad 27th February 2011 12:14

Quote:

Originally Posted by lisica (Post 362256)
Повторюсь с вопросом - надо это, или оставить две разные прошивки под разные мапперы?

Я, вот подумал, может совместить переключатель мапперов с переключателем фреймов - режим экрана - пентагон и режим маппера тож пентагон?

Думаю смешивать "все в одном" ненужно, хотя и не мешало бы :) если: конфигурационный файл, который должен подгружаться с SD и настраивать систему. С другой стороны, по предложению Ewgeny7, конфигурацию стоит разместить в (NVRAM) PCF8583, так вот, нужен стандарт.

Ewgeny7 27th February 2011 12:41

Quote:

Originally Posted by vlad (Post 316317)
+ возможность обновления конфигурации "на лету"

А не могли бы вы просветить на этот счет? Это как?

lisica 27th February 2011 12:42

Quote:

Originally Posted by vlad (Post 362269)
Думаю смешивать "все в одном" ненужно, хотя и не мешало бы если: конфигурационный файл, который должен подгружаться с SD и настраивать систему. С другой стороны, по предложению Ewgeny7, конфигурацию стоит разместить в (NVRAM) PCF8583, так вот, нужен стандарт.

Значит давайте определимся где и куда и откуда. Но для карточной конфигурации ромов версия рабочая.

Ewgeny7 27th February 2011 14:25

Я делаю механизм запуска теневой страницы альтераПЗУ с программой записи данных в PCF по нажатию кнопки F11.

vlad 27th February 2011 15:25

Quote:

Originally Posted by Ewgeny7 (Post 362294)
Я делаю механизм запуска теневой страницы альтераПЗУ с программой записи данных в PCF по нажатию кнопки F11.

Это как? Совместно с вкл. Soundrive? Вроде при нажатии на ScrollLock этот механизм срабатывает?

---------- Post added at 13:25 ---------- Previous post was at 13:24 ----------

Хотя, может если флажки расставить...

Ewgeny7 27th February 2011 15:30

Quote:

Originally Posted by vlad (Post 362305)
Это как? Совместно с вкл. Soundrive? Вроде при нажатии на ScrollLock этот механизм срабатывает?

Очепятка, F2 (как "сохранение" в ПЦ).
Использую механизм прерываний по INT, вместо ПЗУ в обработчик будет подставляться своя теневая ПЗУ. По выходу с обработчика на место возвращается основное ПЗУ.

---------- Post added at 14:30 ---------- Previous post was at 14:29 ----------

Quote:

Originally Posted by vlad (Post 362305)
Вроде при нажатии на ScrollLock этот механизм срабатывает?

Какой?

vlad 27th February 2011 15:41

Просмотрел DMA USC. Если откинуть то что не востребовано в 8254 и 8237 то для FPGA пакуется все в разы и напрашивается вторая версия :) возможно 16-разрядная, и возможно с перезапуском семпла на конкретном адресе :) Понятно, что это никому ненужно...

---------- Post added at 13:38 ---------- Previous post was at 13:32 ----------

Quote:

Originally Posted by Ewgeny7 (Post 362307)
Использую механизм прерываний по INT, вместо ПЗУ в обработчик будет подставляться своя теневая ПЗУ. По выходу с обработчика на место возвращается основное ПЗУ.

Может зразу прикрутить ультру, с ее аналогичным механизмом обработки прерываний, для теневых подпрограмм (BIOS). Хотя это уже не входит в данную конфигурацию.

---------- Post added at 13:41 ---------- Previous post was at 13:38 ----------

Можно по этой F2 сделаю OSD?

Ewgeny7 27th February 2011 15:43

Quote:

Originally Posted by vlad (Post 362309)
Можно по этой F2 сделаю OSD?

занято, занято! :)
OSD логичней было бы на F1, типа "help" в отладке :)

Black_Cat 27th February 2011 16:27

Quote:

Originally Posted by vlad (Post 362248)
кто уже реально ее прикрутил в FPGA

DMAUSC - никто, 8237 - ZEK давал как-то сцылку, занимает что-то около 30% DE1 (на сегодня реализована токо частично)

---------- Post added at 15:27 ---------- Previous post was at 15:21 ----------

Quote:

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

т.е. ты предлагаешь сделать эмулятор под те три программы, что юзают DMAUSC, и всё.. а если появится четвёртая программа, юзающая DMA по другому - то всё, приплыли :)

Quote:

Originally Posted by vlad (Post 362248)
да и повторять их (как есть) нет смысла,

почему?

Дмитрий 27th February 2011 16:32

Quote:

Originally Posted by БК-0010 (Post 362320)
8237 - ZEK давал как-то сцылку, занимает что-то около 30% DE1 (на сегодня реализована токо частично)

но там можно почистить и выкинуть часть режимов, как то "Передача память-память" (которая так нигде и не использовалась), "Тестовый режим"(толку от него ноль, только торможение), "Сжатие времени передачи" (для спека не актуально), "Тип передачи: каскадный режим", это так - навскидку, можно полистать даташит и найти еще что выкинуть.

---------- Post added at 14:32 ---------- Previous post was at 14:31 ----------

Quote:

Originally Posted by vlad (Post 362309)
Если откинуть то что не востребовано в 8254

Отличий 8253 от 8254 не знаю, но в DMA юзалась 8253 (ВИ53).

Black_Cat 27th February 2011 16:58

Quote:

Originally Posted by lisica (Post 362256)
Я, вот подумал, может совместить переключатель мапперов с переключателем фреймов - режим экрана - пентагон и режим маппера тож пентагон?

лучше отдельно включать тайминги ZX48/Pentagon. А на какой архитетуре портов - это дело самих юзеров, вон Pentagon-1024SL v.1.4 - это по портам KAY, но с пентовыми таймингами

---------- Post added at 15:45 ---------- Previous post was at 15:34 ----------

Quote:

Originally Posted by vlad (Post 362269)
конфигурационный файл, который должен подгружаться с SD и настраивать систему. С другой стороны, по предложению Ewgeny7, конфигурацию стоит разместить в (NVRAM) PCF8583, так вот, нужен стандарт

конфигурационные файлы должны применяться для загрузи разных архитетур.. типо ZX, Орион, Вектор и т.д. А внутри одной архитектуры все переключения на разные клоны делать портами. В этом случае будет возможно менять конфигурацию на лету.. типо - один кадр - Пент, а на другой уже SKAY и т.д. Я не предлагаю менять их каждый кадр, имеется ввиду быстрота смены

---------- Post added at 15:47 ---------- Previous post was at 15:45 ----------

Quote:

Originally Posted by Дмитрий (Post 362323)
Отличий 8253 от 8254 не знаю

в 54 исправлены ошибки и частота 8MHz

---------- Post added at 15:58 ---------- Previous post was at 15:47 ----------

Quote:

Originally Posted by Дмитрий (Post 362323)
там можно почистить и выкинуть часть режимов, как то "Передача память-память" (которая так нигде и не использовалась), "Тестовый режим"(толку от него ноль, только торможение), "Сжатие времени передачи" (для спека не актуально), "Тип передачи: каскадный режим", это так - навскидку, можно полистать даташит и найти еще что выкинуть.

режим память-память в версии DMAUSC под NemoBus v.2.0 расширен до возможностей Z80DMA, т.е. кроме mem->mem, добавлены mem->I/O, I/O->mem, I/O->I/O. Кроме того в каскадном режиме включен второй 8237. И вообще, они оба используются как системные DMA со всеми вытекающими.

lisica 27th February 2011 18:16

Quote:

Originally Posted by БК-0010 (Post 362325)
лучше отдельно включать тайминги ZX48/Pentagon. А на какой архитетуре портов - это дело самих юзеров

Знач ставлю пока на F10.

Quote:

Originally Posted by БК-0010 (Post 362325)
конфигурационные файлы должны применяться для загрузи разных архитетур.. типо ZX, Орион, Вектор и т.д. А внутри одной архитектуры все переключения на разные клоны делать портами.

Если и делать портами, то только, когда активен CD загрузчик (когда грузится ром).
А сами конфиги конкретного клона всунуть в остальные ячейки RTS.

Black_Cat 27th February 2011 19:09

Quote:

Originally Posted by lisica (Post 362349)
Знач ставлю пока на F10.

имхо, на лету это делать нет необходимости, токо кнопку занимать. Эт надо в сетапе выставлять при первоначальной загрузке. В Хiмеr'e например, конфигурация прописывается в спец регистрах в защищённом режиме ОС (по типу режима Kernel в ReVerSe). В этих регистрах указывается полная конфигурация виртуальной машины XVM, в которой и будет запускаться спековский софт. Возможно динамическое переключение между несколькими XVM в режиме вытесняющей многозадачности или реалтайм многозадачности.

---------- Post added at 18:09 ---------- Previous post was at 17:54 ----------

Quote:

Originally Posted by lisica (Post 362349)
сами конфиги конкретного клона всунуть в остальные ячейки RTS

Т.к. обращение в RTC очень медленное, а динамическое изменение конфигурации должно происходить быстро, то в RTC есть смысл сохранять параметры токо для первоначальной инициализации. Память RTC - это токо зеркало, которое не влияет на параметры, меняющиеся динамически. Т.е. юзером через сетап сначала прописывается значение в порт, а уже потом это дублируется в памяти RTC.

Дмитрий 27th February 2011 19:19

Quote:

Originally Posted by БК-0010 (Post 362325)
режим память-память в версии DMAUSC под NemoBus v.2.0

а на u9 есть NemoBUS?

Black_Cat 27th February 2011 19:27

Да, забыл сказать, что в Хiмеr'e динамически можно переключаться только между четырьмя спековскими архитектурами портов: SKAY, Pentagon, Profi(токо спековский режим), +3.

---------- Post added at 18:27 ---------- Previous post was at 18:22 ----------

Quote:

Originally Posted by Дмитрий (Post 362371)
а на u9 есть NemoBUS?

ты хочешь на u9 NemoBus? :) Знаешь, нет ничего нереального :) - последовательный интерфейс + южный мост - и подключай хоть NemoBus, хоть ISA.. :)

lisica 27th February 2011 20:00

Quote:

Originally Posted by БК-0010 (Post 362360)
имхо, на лету это делать нет необходимости, токо кнопку занимать.

Пока тырдос нормальный для DFFD не появится - висеть переключателю на кнопке.Во всяком случае я для себя, а то, бывает мучаешься с прошивкой, а оказывается дос виноват. Да, и я же сказал пока ставлю - для отладки. А может и приживётся там.

Black_Cat 27th February 2011 20:07

Quote:

Originally Posted by lisica (Post 362378)
Пока тырдос нормальный для DFFD не появится

я говорил о таймингах, а не о портах. Тайминги на лету переключать нет смысла, и привязывать их к конкретной архитектуре портов тож. Тайминги выбираются - отдельно, порты - отдельно.

lisica 27th February 2011 20:22

Кто хотел понять тот понял.

Ewgeny7 27th February 2011 23:31

Блэк Кэт опять написал пост №666. Это уже не случайность, а диагноз :)

vlad 1st March 2011 13:08

По поводу ПДП. Делаю для нижнего уровня: 4 канала (память <-> порт); 2 канала (память <-> память). Развернутые 25 битовые регистры адреса, т.е. доступ канала сразу ко всей памяти 32Мбайт. На верхнем уровне будет одна 8237.

Black_Cat 1st March 2011 13:43

Quote:

Originally Posted by vlad (Post 362885)
Делаю для нижнего уровня: 4 канала (память <-> порт); 2 канала (память <-> память). Развернутые 25 битовые регистры адреса, т.е. доступ канала сразу ко всей памяти 32Мбайт. На верхнем уровне будет одна 8237.

т.е. опять две разных архитектуры.. а если у другого клона будет 16Mb, а у третьего 256Mb - то под каждый из них надо писать типо свой софт под разную разрядность.. замечательная перспектива - очередной Спринтер обеспечен! Делай монолитную архитектуру! Всё, что выходит за рамки монолитной архитектуры - нафиг! Выигрыш на увеличении разрядности DMA - мизерный. Ничего страшного если придётся программно несколько раз перезапускать DMA, зато оно везде будет работать одинаково!

vlad 1st March 2011 14:25

Quote:

Originally Posted by БК-0010 (Post 362895)
т.е. опять две разных архитектуры..

Нет, архитектура одна. Здесь разговор идет о нижнем и верхнем аппаратном уровне. Пример - драйвер, через который программа взаимодействует с устройством через понятные ей рычаги :). Так, что о какай несовместимости идет речь?

---------- Post added at 12:05 ---------- Previous post was at 12:03 ----------

Все же, добавлю технологию - "виртуальный порт" из ultra. Решит на программном уровне множество задач :)

---------- Post added at 12:25 ---------- Previous post was at 12:05 ----------

Quote:

Originally Posted by vlad (Post 362898)
Все же, добавлю технологию - "виртуальный порт" из ultra. Решит на программном уровне множество задач

Емкость Cyclone не резиновая, так что часть возьмет на себя второе ядро (эмуляция ВГ, DMA USC, GS...), ну пока об этом рано говорить... сложность такой системы в разы... да, и код под это все писать нужно, посмотрим...

Ewgeny7 1st March 2011 14:26

Маньяки...

Black_Cat 1st March 2011 14:34

Quote:

Originally Posted by vlad (Post 362898)
Здесь разговор идет о нижнем и верхнем аппаратном уровне.

я знаю токо один аппаратный уровень - собсно единственный аппаратный уровень - уровень железа. Выше него - только программные уровни. Поэтому не оч понятно о каких двух аппаратных уровнях речь..
Quote:

Originally Posted by vlad (Post 362898)
Пример - драйвер, через который программа взаимодействует с устройством через понятные ей рычаги . Так, что о какай несовместимости идет речь?

Про рычаги в драйверах - эт понятно, но вот допустим есть конкретная программа, которая знает о 25 разрядной шине и соответственно оперирует 25 разрядными словами.. Оперирует 25 разрядными словами чисто из соображений лени.. типо - а зачем другими, если DMA 25 разрядный.. Ведь если в прграмме делать разрядность другую, отличную от 25, то можно и 16 разрядов сделать как в 8237.. Но тогда почему сразу 8237 не поставить, а лепить какую-то отсебятину? Логика понятна? Какой смысл отсебятины?

---------- Post added at 13:34 ---------- Previous post was at 13:26 ----------

дык вот, такую 25 разрядную программу перетаскивать на другой клон, у которого DMA доустим 19 разрядный - это не драйвер переписать, это всю прогу переделывать надо в особо критичном случае.. И кто будет писать эти драйвера под тыщу клонов с сотней разных DMA?
Ты понимаешь, что ты закладываешь бомбу под всё дальнейшее развитие?

vlad 1st March 2011 21:44

Всему свое время....

Black_Cat 1st March 2011 22:04

Quote:

Originally Posted by vlad (Post 363000)
Всему свое время....

:) будешь осчастливливать человечество? :) Ох, как показывает практика - человечество бывает очень неблагодарным. :) ..особенно когда его осчастливливают против воли.. :)

vlad 2nd March 2011 16:05

Quote:

Originally Posted by БК-0010 (Post 363004)
будешь осчастливливать человечество? Ох, как показывает практика - человечество бывает очень неблагодарным. ..особенно когда его осчастливливают против воли..

Решил пока ограничиться советами БК-0010 :) Доделываю DMA USC.

vlad 7th March 2011 20:48

Ewgeny7, скинул на ящик пару ядрешек 8237 и 8254 думаю это поможет вырваться в перед :) хотя многое зависит как ими распорядиться...


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

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