Вход

Просмотр полной версии : ZX Spectrum на частоте 20 (24) МГц без WAIT



Example626
06.12.2018, 04:13
В общем, я тут уже отписывался в сторонних ветках. Хочу просто в одной теме выкладывать свои наработки.
Немного вяловато разрабатываю платформу ZX Spectrum, работающую с любыми тактовыми частотами процессора от 0 до 20 МГц (зависит от частоты тактового генератора).
В качестве задающего генератора можно использовать либо внешний источник сигнала (тогда частота процессора не привязана к частоте видео), либо один из сигналов, привязанный к частоте видео и кратный родному тактовому сигналу ZX Spectrum (3,5 Мгц). Основа - тактовый генератор с частотой 56 МГц (3,5x16).
В том числе есть вариант "привязанной" частоты 18,66667 МГц (56 МГц умножается на 2, делится на 3 и ещё раз делится на 2).
Схема не использует сигнал Wait и работает по принципу разделения и буферизации всех одновременных обращений к ОЗУ (принцип похож "Пентагоновский", но схема переработана кардинально).
То есть при одновременном обращении схемы видео и процессора к ОЗУ процессор не тормозится и сохраняет полную производительность.
Данный тип схемы подразумевает быструю работу схемы и микросхем ОЗУ. У меня используется SRAM с задержкой 10 нс.
На данный момент схема собрана "на коленке". В её основе лежит ПЛИС Altera EPM3512AQC208-10 ("голова" от платы Igrosoft).
В ПЛИС зашита схема графического генератора, управления памятью, интерфейс (матрица) клавиатуры для порта PS/2, Beta-интерфейс (но на самой плате пока не реализован), порт FE, порт 7FFD, порт AY (на плате имеется).
Пока на плате только 48 кБ ОЗУ (не считая 16 кБ теневых) и обычная "Пентагоновская" ПЗУ-шка, порт магнитофона и RGB-выход без цветового кодирования (PAL, например), поэтому пока чёрно-белый на обычном телевизоре, подключенном по входу НЧ.
Два кварцевых генератора - один на 56 МГц для видео, другой на 40 МГц - для процессора (делится на 2).
Схемы буду выкладывать по мере их "причёсывания". Пока всё очень "лохмато" и требует перерисовки. Буду рад, если кто-нибудь поможет как-то упростить и оптимизировать схему, так как она довольно громоздкая.
Я уже выкладывал один вариант, но оказалось, что для частоты 20 МГц он не годится - слишком долгие задержки сигналов процессора для работы с памятью.
А сейчас могу поделиться видео, как я пытался поиграть в Elite на этой частоте.
Смотрите, но сильно не ругайте - не играл очень давно, и с управлением на такой скорости беда:


https://youtu.be/MJikKuLso0Q

CodeMaster
06.12.2018, 07:53
и с управлением на такой скорости беда:
А чём тогда смысл разгона до таких частот, чисто академический? Кстати, а частота будет меняться динамически? Типа в командере работаешь на полной, а при запуске софта можешь переключиться на 3.5 или 7.

Example626
06.12.2018, 09:37
CodeMaster,
1. Да, смысл, конечно, академический, но академические разработки зачастую ведут к прикладным воплощениям, если есть потребность.
2. Смысл номер два в том, что а что это Z80 под частоту 20 МГц существует, а Спектрума на нём нету? Непорядок!
3. Это в этой игре управление привязано к частоте процессора, а есть игры, где управление привязано к частоте INT, которая постоянна и равна частоте кадровой развёртки (50 Гц). В таких играх даже на больших частотах управление будет одинаковым.
4. Есть идея сделать видеорежим 1024x576 (стандарт PAL 16:9 с квадратными пикселами, полный экран без бордюра). Такой экран раскачать даже на частоте 20 МГц сложновато. И это при стандартной спектрумовской реализации видеоотображения. А есть желание сделать этот режим 256 (или хотя бы 16) цветов для каждой точки (моя схема способна обработать такой режим видео с частотой процессора 20 МГц). Тогда и 20 МГц для него очень мало, если писать, например, какую-нибудь игру.
Я ведь не только для себя делаю, поделюсь наработками здесь. А вдруг кто реализует в небольшой серии? Может, и я сам платы доразработаю и закажу несколько платок.
Мало ли...

По поводу динамического управления частотой:
У меня в схеме пока предусмотрено ручное управление кнопкой (турбо 20 / обычный 3,5 МГц). Однако я хотел бы сделать управление программное и к тому же с плавной регулировкой производительности процессора. Для этого хочу применить ШИМ для сигнала BUSRQ. У меня данная схема во времена оные работала и регулировалась переменным резистором. Я хочу сделать управление программное, но вопрос в использовании портов - какие порты и как использовать? Это вопрос к стандартизации схем Спектрума. Я могу сделать отсебятину и забить под них произвольные порты, но если схема пойдёт в массы и будет конфликтовать с какими-то другими схемами, мне не известными, будет не очень хорошо. Поэтому здесь надо аккуратно подходить.
Хочу пока вывести управление просто на клавиатуру (PC-шную) - клавиши PgUp и PgDn, например.

CodeMaster
06.12.2018, 10:12
если есть потребность.
Мне вот и интересно, есть ли она.


Z80 под частоту 20 МГц существует, а Спектрума на нём нету? Непорядок!
Ну, да, Northwood свой Пентагон с 14 МГц забросил, но 20-ть действительно никто вроде не штурмовал (не считая софт-ядра у vlad'а, которые то ли на 24-х, то ли на 48-и работают).


Z80 под частоту 20 МГц существует
А что кстати не 21? Наверняка он взлетит и с делителями будет проще.


а есть игры, где управление привязано к частоте INT
Эт я знаю, но какой смысл для них в более быстром проце тогда?


если писать, например, какую-нибудь игру
Тогда действительно чисто академический ;-)


Я ведь не только для себя делаю, поделюсь наработками здесь.
Я ни в коем случае не против, ни для себя, ни для всех.


А вдруг кто реализует в небольшой серии?
Это сейчас вообще не проблема, только зачем, что бы стояло на полочке?


Однако я хотел бы сделать управление программное и к тому же с плавной регулировкой производительности процессора.
Это ИМХО лишнее. По большому счёту надо только 20/7/3.5 но с возможность менять на ходу. Типа запустил софт, но что-то не так и кнопочкой снижаешь частоту. И ещё там что-то надо делать с софтом который работает с дискетами, но у тебя подключения дисководов наверное не будет.

Example626
06.12.2018, 10:37
А что кстати не 21?
А как 56 МГц в 21 преобразовать? Или даже 112?
На самом деле, частота роли не играет - кварц ставь любой, какой хочешь. Просто с частотами выше 20 МГц моя схема, я не думаю, что справится. Потому что у ПЛИС задержка 10 нс и у ОЗУ 10 нс. А на самом деле и такие задержки в реале больше. И 20 МГц - это некий физический предел. Для более быстрых частот нужны какие-то другие ПЛИС и ОЗУ. Но процессор на 20 МГц, и у меня задача стояла вывести схему именно на эту частоту.
Я пробовал 24 МГц, но она не заработала. Правда, ещё на старой схеме. На доработанной не пробовал. Попробую.



Это ИМХО лишнее. По большому счёту надо только 20/7/3.5 но с возможность менять на ходу.
Может, и лишнее, но, например, при отладке программы мне очень пригождалось сильное замедление - 1-5 процентов производительности - чтобы видеть, например, прорисовку спрайта и т.п.

Это сейчас вообще не проблема, только зачем, что бы стояло на полочке?
Так а для чего вообще Спектрум нынче нужен? Это просто хобби. Для энтузиастов.

CodeMaster
06.12.2018, 11:28
А как 56 МГц в 21 преобразовать? Или даже 112?
А зачем 56, можно же кварц на 42 взять.


Потому что у ПЛИС задержка 10 нс и у ОЗУ 10 нс.
В принципе допуск +5% должен пролезть. Но вопросы там и 20-ти ИМХО будут (если будет периферия).


Может, и лишнее, но, например, при отладке программы мне очень пригождалось сильное замедление - 1-5 процентов производительности - чтобы видеть, например, прорисовку спрайта и т.п.
Не вопрос, но для этого достаточно сделать одну фиксированную частоту 200-300 кГц.


Так а для чего вообще Спектрум нынче нужен?
Использовать имеющийся софт. Кто-то что-то пописывает (пописывали) по ньюСпектрумы (Sprinter, ZX Evo, Spec256) но это единичные случаи их не покупают из-за нового софта. Посмотрим, что будет с ZX Spectrum Next, но это немного другая тема (его ещё никто особо не видел, но его уже занесли в Основные модели на этом форуме).

bigral
06.12.2018, 18:20
1) смысл турбо спектрума очевиден - почти 80% игр спектрума или не синхронизированны с кадровой или тормозят; типичный пример boulder dash, игра написанна хорошо но не хватает скорости, возможно если переделать на 128к с его double buffer то можно достичь того же качества что на atari 8bit и с64, но пока никто не переделал; отчасти успех pentagon-а был именно в том что у него было немного больше тактов "на прерывание" а производители игрушек старались использовать производительность "на полную катушку" и подгоняли игру так что она уже немного подтормаживала но еще терпимо работала; опять же boulder dash хороший пример того как игра на pentagon работает немного лучше чем на оригинале, потому что успевает прорисовать больше за кадр.

2) разные частоты ЗЛО! изза этого никто и не переделывает игры под "турбо-спектрум" потому что никто не знает на какое количество тактов ориентироваться... 7mhz? 14mhz? 20mhz? вполне можно предположить что если бы был какой-то один стандарт турбо то под него бы кто-то что-нибудь и переделал бы. Ну там про мультиколоры, которые как бы логично иметь при более высоких частотах я вообще молчу потому что всякие схемы турбирования с разной скоростью выполняют код по отношению к ходу луча (равно как и времянки клонов тоже разные очень). Как с этим всем жить? 1й вариант - жестко определить стандарт по типу вот как "ZX-48 оригинал" и все времянки как у него. Это вариант жесткий дает возможность писать мультиколоры. 2й вариант - стандартизировать только минимально необходимое количество тактов на 1 кадр. Например минимум 68888 тактов на кадр. (ну и иметь 4 таких стандартных профиля для 3.5, 7, 14 и 20mhz. А разработчик уже по мере возможности будет стараться влезть в "минимальный" профиль, думаю 99% существующих игр можно переделать на 7mhz профиль (128k с двумя экранами) и после этого они будут работать очень плавно и красиво как например "ghouls and ghosts").

3) ну и да, чтобы это все имело смысл давайте оставаться в переделах спектрум retro платформы, 10ns это 100mhz... да еще и sram (не требует refresh-a) да еще и жирный cpld... это уже не спектрум, эта штука способна >14000 раз в секунду экран спектрума перерисовать, это платформа для экспериментов но уже не спектрум. Так что планируя что-либо надо подразумевать что конструкция должна быть реализуема на советских микросхемах (555,1533,559,... + советская память).

sergio78
06.12.2018, 19:15
Посмотрим, что будет с ZX Spectrum Next,
а ничего с ним не будет. кто купит, положат на полку для клекции. а все остальные про него забудут немного погодя.

Example626
06.12.2018, 19:43
А зачем 56, можно же кварц на 42 взять.
Я просто подумал, что речь идёт о "зависимом" генераторе. Так как речь шла о делителях. А так-то да, можно и на 42 МГц взять.

- - - Добавлено - - -


10ns это 100mhz
Вы забываете, что надо не просто на этой частоте данные из ОЗУ прочитать. Нужно сигнал от процессора принять (задержка), сформировать управляющий импульс (задержка), считать данные из ОЗУ и записать в буфер (опять задержка), потом данные нужно считать из буфера.
По факту я уже долгое время мучаю схему, и импульс чтения процессором из ОЗУ у меня равен (по симулятору - осциллографа на такую частоту у меня нет) 36 нс. Если я его уменьшаю, комп не работает - видимо, не успевает прочитаться. Если увеличиваю - тоже не работает (на высокой частоте), так как процессор "обгоняет" схему и на его входах не успевают сформироваться данные для чтения. Повторюсь - какой именно импульс, я точно не знаю, так как формируется он без привязки к тактам. Нужно смотреть осциллографом. Но у меня и 14 МГц уже еле-еле видно.
Если бы речь шла просто о доступе к SRAM без всяких одновременных обращений графики и проца - таки да - читается, как из ПЗУ-шки. Там и на 70 нс микросхема подойдёт.

По поводу разных частот не соглашусь: а ничего что на PC, например, все программы как-то работают на разных частотах и ничего. Просто программа предъявляет некие требования к компу, а пользователь понимает, потянет он её или нет. Для канонического Спектрума это тоже справедливо - есть игры только для 128 кБ, есть с музыкальным сопроцессором, а есть и без. Даже есть те, которым обязательно нужен Кемпстон-джойстик, иначе не поиграешь. И ничего. Если у тебя было только 48 кБ, ты просто не покупал игру для 128-го, а искал попроще и мечтал нарастить память.
На примере PC - одно тянет другое. Увеличивается мощность компа - программисты пишут под него более тяжёлый софт, более тяжёлый софт провоцирует производителей железа увеличивать его мощность, и так по кругу.
Потом, одна и та же игра может быть настраиваемой под производительность компа - на более медленном похуже графика, например. Спектрум и не получил дальнейшего развития отчасти и потому, что перестал эволюционировать. Как в плане процессора, так и в плане графики. Память и музыку как разовый апгрейд в расчёт не берём.

CodeMaster
06.12.2018, 20:08
а ничего что на PC, например, все программы как-то работают на разных частотах и ничего.
На ПЦ тоже полно нестыковок и костылей, но что про это говорить ПЦ - живая платформа.


думаю 99% существующих игр можно переделать на 7mhz профиль (128k с двумя экранами) и после этого они будут работать очень плавно и красиво как например "ghouls and ghosts").
И уже создана куча таких компов, но игры так что-то никто не переделывает.


разные частоты ЗЛО! изза этого никто и не переделывает игры под "турбо-спектрум" потому что никто не знает на какое количество тактов ориентироваться... 7mhz?
Хотя бы на 7, у которого борода до пола.

Example626
06.12.2018, 21:18
В общем, вот та часть схемы, что отвечает за синхронизацию обращений к ОЗУ.
http://turmalinnn.narod.ru/_Other/ZX/RAM_control.png
К сожалению, редактор не позволяет делать надписи на кириллице, поэтому пометки на великом и могучем английском.
Немного поясню: наверху формируется сигнал выборки страницы ОЗУ, так как на данный момент у меня ОЗУ с разделёнными полями. Две микросхемы по 32 кБ. Доступ к верхним 32 кБ у процессора ничем не ограничен и осуществляется непосредственно.
А вот к нижним доступ через данную схему.
Ниже селектора страниц ОЗУ расположен одновибратор формирователя импульса чтения (записи) ОЗУ и помещения данных в буфер (сигнал WRBUF). Чтение из буфера - сигналом RDRAM0/.
Кто знаком со схемой "Пентагона-128", тот поймёт.
Ниже - схема чтения пикселей графики, под ней - схема чтения атрибутов.
Вернее, не чтения, а чтения из ОЗУ и записи в промежуточный буфер (WRPIX и WRATTR). Сами буферы на другой странице схемы. Их пока здесь нет. Чтобы понять - смотрите опять же схему "Пентагона-128".
В правых частях этих схем расположены детекторы наложения - одновременного обращения к ОЗУ графикой и процессором. Если наступает такой момент, то он сначала детектируется предпоследним триггером, (а всё управление автоматически передаётся процессору, в отличие от схем с Wait). При этом графика, хоть и продолжает формировать импульсы чтения, но в свой буфер записывает не графические данные, а данные по адресу процессора, так как он её перебивает. По окончании цикла обращения процессора к ОЗУ схема формирует повторный импульс чтения графики (при помощи последнего триггера), так как предыдущий был испорчен. Алгоритмы одинаковы для чтения пикселов и атрибутов.
Чтение пикселов и атрибутов разнесено по времени. Атрибуты читаются положительным стробом на C3, а пикселы - отрицательным.

Симуляция сигналов - на таблице под спойлером.
http://turmalinnn.narod.ru/_Other/ZX/Pulses.png
Хорошо видно моменты наложения обращений к ОЗУ и формирование повторных импульсов (обведено).

Totem
07.12.2018, 04:42
ичего что на PC, например, все программы как-то работают на разных частотах и ничего.
например использование таймера , не даст уползти в запредельный FPS, для играбельности, как самый примитивный случай.


перестал эволюционировать. Как в плане процессора, так и в плане графики. Память и музыку как разовый апгрейд в расчёт не берём.

На это есть, весьма объективные причины, они только частично, могут быть связанны в Вашем понимании истории платформы.

- - - Updated - - -


Это вопрос к стандартизации схем Спектрума.
Сразу вопрос, а он есть? был? или будет?

Если пользоваться моментом "послезнания", то самым значимым и беспредельно крутым, будет не повышение тактовой частоты проца, а дополнительными "16КБ оперативки" , в "районе ПЗУ" и это гораздо проще в реализации, чем плодить клоны, с разными таймингами.

CodeMaster
07.12.2018, 09:12
Если пользоваться моментом "послезнания", то самым значимым и беспредельно крутым
Да ладно, пусть сделает 20 МГЦ, что-то тема стала похожа от отговор от этой затеи ;-) Есть 1001 вариант Спекки, будет 1002, может кто-то что-то действительно возьмёт из этой реализации, эффект накопления знаний никто не отменял.

Example626
07.12.2018, 09:34
использование таймера... как самый примитивный случай.
Самый примитивный случай уже давно реализован на самых первых спектрумах - использование прерываний по INT. Они приходят с частотой кадров (50 Гц). И многие игры синхронизируются именно так.
Например, R-Type (если мне память не изменяет). Если есть музыка для AY, в подавляющем большинстве случаев она воспроизводится по прерыванию - и, независимо от частоты проца, всегда и частота музыки, и скорость воспроизведения будет постоянна.
Никаких таймеров.


На это есть весьма объективные причины
Я и писал, что связь есть лишь - цитата - "отчасти".


Сразу вопрос, а он есть? был?
Немного не понял - кто был?


Если пользоваться моментом "послезнания", то самым значимым и беспредельно крутым, будет не повышение тактовой частоты проца, а дополнительными "16КБ оперативки" , в "районе ПЗУ"
Что-то ерунда какая-то. Это уже давно реализовано в 128 кБ Спектруме. Там эта страница отображается в верхний сегмент памяти. Есть схемы и с подменой ПЗУ. Да и зачем эти жалкие 16 кБ, если есть Спектрумы и с 4 МБ? Для чего эти 16 кБ применить?

- - - Добавлено - - -


пусть сделает 20 МГЦ
Так а что делать? Как концепт он уже сделан и работает.
Пусть пока на коленке.
Осталось только плату заказать и т.д.
Памяти добавить, интерфейсы... У меня есть процессоры Z380... Так что будем думать дальше.
Поймите - я этим занимаюсь не ради какой-то определённой цели, а просто потому, что руки чешутся.

Vadim
07.12.2018, 09:37
Памяти добавить, интерфейсы... У меня есть процессоры Z380... Так что будем думать дальше.
Пили плату на нём.

Example626
07.12.2018, 09:59
Пили плату на нём.
Я пока не готов. Есть много вопросов. У него немного другие сигналы, но здесь проблем не должно быть.
Программно и аппаратно он совместим с Z80 в нативном режиме, а вот в расширенном - не очень. Есть проблемы, как эти два режима совместить. У меня пока мыслей на этот счёт нет.
Буду заниматься - будут мысли. Пока до него не дошёл.
К тому же у него чтение/запись в память происходит за меньшее количество циклов. То есть на одинаковых частотах Z380 будет работать быстрее. И неизвестно, как моя схема работы с ОЗУ к этому отнесётся. Возможно, придётся всё-таки задействовать WAIT.
Но давайте в данной теме не будем пока обсуждать Z380. Эта тема очень объёмна и займёт не один десяток страниц. Да и есть уже тема на этот счёт.

CodeMaster
07.12.2018, 10:02
Так а что делать?
Герберы материнской платы в каком-то удобоваримом формате, например ITX и выкладывай в тему вместе с прошивкой ПЛИС. Кстати плата Igrоsoft у тебя используется без переделок? Если нет, то их надо документировать тоже.

solegstar
07.12.2018, 10:06
Example626, разработка отличная и я думаю у неё большое будущее. турборежим в спектрумах появился не просто так, в нем была необходимость. начиная от просто более комфортной работы и безтормознутости игр, заканчивая мультимедиа - есть плееры цифровой музыки, которые подстраиваются под максимальную производительность системы, повышая тем самым качество музыки. также расширенными экранами, для которых просто необходим был турборежим. работа с hdd, sd, cf будет быстрее. вообщем отлично, что получилось сделать концепт на реальном Z80 без использования сигнала Wait.

Example626
07.12.2018, 10:28
Герберы материнской платы в каком-то удобоваримом формате
Этого пока нет, так как плата ещё не разработана в КАДе.
Даже принципиальной схемы по сути нет - она у меня большей частью в голове.
Прошивку для ПЛИС - я выложу исходники, но пока причешу ещё. Да и изменяться она будет постоянно - по ходу дела.
Плата Igrosoft у меня как есть, только без ПЗУ-шек, ОЗУ и Альтер графики - всё вынуто, чтоб не мешало.
Немного кое-где что-то подпаяно проводочками (например, сигнал RFSH - он изначально не заведён на ПЛИС).
Igrosoft я выкину. Он мне был нужен только как доска для экспериментальной сборки, поэтому смысла об нём писать вообще не вижу.
Плата всё равно другая будет.
Голова с 512-й Альтерой. В основном они 256-е. Можно и 256-ю, но у неё немного по-другому плата разведена, и придётся отдельной ПЛИС-кой делать периферию - в 256-ю не всё влезает. Но, думаю, мне придётся делать так же всё равно.

Vadim
07.12.2018, 11:33
Программно и аппаратно он совместим с Z80 в нативном режиме, а вот в расширенном - не очень. Есть проблемы, как эти два режима совместить. У меня пока мыслей на этот счёт нет
Зато у меня они есть ещё с 90х годов. Комп после старта будет находиться в 32 бит режиме. Со своей ОС, а при запуске программ CP/M или Спектрума переводится в режим совместимости Z80, по выходу ресет (запись в порт), ресет запустит комп из точки в ПЗУ, но там можно опознать был ли это аппаратный ресет или программный для выхода из режима Z80; выход в ОС в 32 бит режим. Всё это в общих чертах.

Example626
07.12.2018, 11:43
Vadim, могу ответить по существу, но не хочу в данной теме.

ZX_NOVOSIB
07.12.2018, 11:50
Есть схемы и с подменой ПЗУ. Да и зачем эти жалкие 16 кБ, если есть Спектрумы и с 4 МБ? Для чего эти 16 кБ применить?
Например вот для чего (https://zx-pk.ru/threads/27892-cash-remember-servisnyj-monitor-(512k-cache).html).


а просто потому, что руки чешутся.
О! Может тада переразведёшь плату пентагона в более компактом варианте? ))) Можно внедрить вот это (https://zx-pk.ru/threads/26977-pentagon-obshchaya-plata-dorabotok.html). Хотя чисто на мой вкус там есть лишнее, а кой чего нужного нет (например мыши).

Denn
07.12.2018, 13:45
2. Смысл номер два в том, что а что это Z80 под частоту 20 МГц существует, а Спектрума на нём нету? Непорядок!


Существует на 33 МГц (без напряга гонится (https://zx-pk.ru/threads/28423-dvukhportovaya-pamyat.html?p=938305&viewfull=1#post938305) до 40):

Kawasaki KL5C8400C specifications:

Type CPU / Microprocessor
Family Kawasaki Z80
CPU part number KL5C8400C is an OEM/tray microprocessor
Frequency 33 MHz
Package 44-pin plastic QFP
Socket QFP44
Architecture / Microarchitecture
Manufacturing process CMOS
Data width 8 bit
Data bus width 8 bit
Physical memory 64 KB
Electrical / Thermal parameters
V core 5V ± 10%
Minimum/Maximum operating temperature 0°C - 70°C

Notes on Kawasaki KL5C8400C:

- Object-code compatible with Z80
- The processor can operate either in Z80 or KC80 mode. In KC80 mode the CPU does not have M1 cycle.

http://www.cpu-world.com/CPUs/Z80/Kawasaki-KL5C8400C.html

https://zx-pk.ru/threads/10104-hardware-emulyator-z80.html


Челендж? ;)

Example626
07.12.2018, 14:39
Существует на 33 МГц (без напряга гонится до 40):
Kawasaki KL5C8400C specifications:
Не знал. Надо посмотреть.


Челендж?
На 33 МГц, думаю, моя схема без WAIT работать уже не будет.
Хотя, пока не попробуешь, не узнаешь.
Но я заинтересовался.

- - - Добавлено - - -

P.S.
Внимательней посмотрел.
Да, проц, без сомнения, интересный.
Минус в том, что при его использовании уже не получится сделать более-менее совместимый ZX Spectrum в плане скорости работы.
Он даже в режиме Z80 при той же частоте 3,5 МГц будет работать быстрее.
То есть большинство старых игр (без привязки к INT) будут быстрее, будут проблемы с прорисовкой спрайтов на некоторых и т.д.
И не факт, что искусственное замедление поможет - потому что у разных команд разные коэффициенты по скорости относительно оригинала Z80.
Но безусловно, пробовать надо.

- - - Добавлено - - -


Например вот для чего
Я в своё время просто пользовался встроенным в прошивку BASIC-48 1990 отладчиком, вызываемым по NMI.
Да, он не очень удобен, но работает.
Сделать такой вариант - это очень просто в плане схемотехники - "вытащить" теневую ОЗУ и подменить ей ПЗУ (но это будет работать только на 48-й машине).
Здесь - по ссылке - главное написать ПО, которым можно нормально пользоваться.
К тому же, если просто подменять ПЗУ-шку теневым ОЗУ, то на 128-й машине это не прокатит. Так как эта "теневая" страница на 128-х машинах вовсе не теневая. К ней есть открытый доступ, и программы её используют. Так что отладчиком ей пользоваться нельзя.
В этом случае вариант для отладчика может быть: либо использовать ещё ОЗУ (добавлять), либо делать отладчик, не использующий ОЗУ. Это сложнее программно, но при умении вполне возможно.
Такая вещь носит сугубо узкий прикладной характер и нужна лишь малому числу пользователей, которых и так почти не осталось.
Мне это не надо, заниматься я этим не хочу.

- - - Добавлено - - -


Может тада переразведёшь плату пентагона в более компактом варианте? ))) Можно внедрить вот это.
Что значит - "переразвести плату Пентагона"? Это значит сделать новую плату, усовершенствовать её, добавить новые функции (например, AY и турбо-режим), сделать всё по-своему.
То есть это уже будет не Пентагон, а другая машина, в основе которой лежит Пентагон, в основе которого лежит некий клон Спектрума, в основе которого лежит оригинальный Спектрум-128, в основе которого лежит Спектрум 48, в основе которого лежит...
В общем, это уже будет новая машина.
Фактически именно этим я и занимаюсь. Как и многие другие до меня. Только я пока не видел некоторых решений, которые я применил, чтобы кто-то до меня их воплотил, и решил сделать это сам.
Вот и всё.

CodeMaster
07.12.2018, 14:39
Плата всё равно другая будет.
Тогда делай в формате "резинки". Толку конечно меньше чем от ITX, но "резинка" это всегда круто ;-)

Example626
07.12.2018, 14:44
Тогда делай в формате "резинки".
Что-то вот не знаком я с таким термином.

CodeMaster
07.12.2018, 14:50
Что-то вот не знаком я с таким термином.
http://speccy.info/w/images/1/14/Spectrum48.jpg

Example626
07.12.2018, 15:06
Всё равно не понял.
Типа маленького размера, чтоб в клаву влазил?
Так не хочу я так. По крайней мере, пока не хочу. Буду делать под формат ITX или ATX, у меня есть под это дело небольшой корпус с блоком питания.
У меня и Пентагон был в выносном корпусе формата ATX, только самодельном - из оргстекла. Жаль фоток не осталось.
Но я ещё подумаю. Так тоже есть свои плюсы.

- - - Добавлено - - -

Вы лучше посоветуйте схему расширения памяти некую каноническую.
А то проблема в том, что есть схема (например, с портом 7FFD), у которой пара бит забита под дополнительные страницы памяти, а другие - подо что-то ещё.
Другой порт - тоже под память пара бит и т.д.
Мне нужно решение (каноническое, если вообще есть такое) расширения памяти до беспредела (почти) - чтобы вот он порт расширения памяти - сколько хочешь, столько добавляй, другие функции к нему не привязаны. Чтобы сразу заложить. А то режим видео (1024x576i, 1440x576i), который я хочу попробовать, очень требователен к памяти. Одна страница 1024x576 - 73 кБ в режиме с атрибутами и 576 кБ при 256 цветах на пиксел.

Totem
07.12.2018, 15:15
Что-то ерунда какая-то. Это уже давно реализовано в 128 кБ Спектруме. Там эта страница отображается в верхний сегмент памяти. Есть схемы и с подменой ПЗУ. Да и зачем эти жалкие 16 кБ, если есть Спектрумы и с 4 МБ? Для чего эти 16 кБ применить?

Конечно жалкие, правда это виртуальный экран, быстрая "выводилка" этого буфера, таблицы, доп графика и т.д. Как итог- свободная память под код.
Даже на 48, это дало бы эффект, в качестве софта, больше в разы , чем турбо 7МГц.


У меня есть процессоры Z380
Вы счастливый человек. Давайте поменяемся? есть что предложить.



Поймите - я этим занимаюсь не ради какой-то определённой цели, а просто потому, что руки чешутся.
Дело это серьезное, успехов. Если какая железяка нужна пишите, может найдется в закромах.

Example626
07.12.2018, 15:47
Давайте поменяемся? есть что предложить.
Если учесть, какой ценой я их получил... обмен должен быть стоящим.
Дело в том, что я облазил всех российских поставщиков - нигде их нет. Модель снята с производства. На заграничных тоже нет. Если есть - запрет на поставку нашу страну. Да и партию нужно было бы заказывать ломовую. На Алиэкспрессе тоже нет. На Алибабе вроде есть у некоторых поставщиков, но все отказали - тоже нет в наличии.
Отписалась одна китаянка с Алибабы, что у неё есть. По $15. Я заказал две штуки. То есть $30. Доставка вышла почти столько же.
Я могу дать контакты.

Totem
07.12.2018, 15:51
Если учесть, какой ценой я их получил... обмен должен быть стоящим.
Дело в том, что я облазил всех российских поставщиков - нигде их нет. Модель снята с производства. На заграничных тоже нет. Если есть - запрет на поставку нашу страну. Да и партию нужно было бы заказывать ломовую. На Алиэкспрессе тоже нет. На Алибабе вроде есть у некоторых поставщиков, но все отказали - тоже нет в наличии.
Отписалась одна китаянка с Алибабы, что у неё есть. По $15. Я заказал две штуки. То есть $30. Доставка вышла почти столько же.
Я могу дать контакты.
тут такие вещи обсуждать не надо. В личке или барахолке.

Example626
07.12.2018, 15:52
Вот схема буферов видео:
http://turmalinnn.narod.ru/_Other/ZX/Video.png
Она почти аналогична Пентагоновской. Исключения - схема формирования FLASH и триггер на выходе из буфера пикселов (это костыль, постараюсь от него избавиться - бордюр на полпиксела запаздывает).
Это так - дополнение к первой схеме, чтоб понять, как и куда данные видео записываются.

Totem
07.12.2018, 15:55
Существует на 33 МГц (без напряга гонится (https://zx-pk.ru/threads/28423-dvukhportovaya-pamyat.html?p=938305&viewfull=1#post938305) до 40):

Kawasaki KL5C8400C specifications:

Type CPU / Microprocessor
Family Kawasaki Z80
CPU part number KL5C8400C is an OEM/tray microprocessor
Frequency 33 MHz
Package 44-pin plastic QFP
Socket QFP44
Architecture / Microarchitecture
Manufacturing process CMOS
Data width 8 bit
Data bus width 8 bit
Physical memory 64 KB
Electrical / Thermal parameters
V core 5V ± 10%
Minimum/Maximum operating temperature 0°C - 70°C

Notes on Kawasaki KL5C8400C:

- Object-code compatible with Z80
- The processor can operate either in Z80 or KC80 mode. In KC80 mode the CPU does not have M1 cycle.

http://www.cpu-world.com/CPUs/Z80/Kawasaki-KL5C8400C.html

https://zx-pk.ru/threads/10104-hardware-emulyator-z80.html


Челендж? ;)
Да, лет 5 назад, кто то , вот вот обещал на нем собрать железку, только прошли года...

Example626
07.12.2018, 16:08
кто-то вот обещал на нём собрать железку
А что собирать-то? Воткнуть вместо оригинального Z80?
Считай, уже собрано. Проблема не железку на нём собрать, а ещё и функционал его реализовать на полную.

Totem
07.12.2018, 16:55
А что собирать-то? Воткнуть вместо оригинального Z80?
Считай, уже собрано. Проблема не железку на нём собрать, а ещё и функционал его реализовать на полную.

В этом "сокральная проблема", можно и в ленинград 1 воткнуть и получить ленинград, обсуждалось, уже раз 100, железка без софта -мертвая с рождения, как не крути. У меня таких "зудов" накопилось тоже много, железки руки жгут :) сделай печатку, не у всех есть возможность делать платки дома. А спаять "конструктор" могут. Или заказать платы самостоятельно могут, если интересно.

Example626
07.12.2018, 16:56
Печатную плату я буду заказывать. Сам делать не буду.

Totem
07.12.2018, 17:04
Вы лучше посоветуйте схему расширения памяти некую каноническую.
А то проблема в том, что есть схема (например, с портом 7FFD), у которой пара бит забита под дополнительные страницы памяти, а другие - подо что-то ещё.
Другой порт - тоже под память пара бит и т.д.
Ты сам напросился, держи "каноны":v2_clap2::v2_lol:
http://zx.clan.su/forum/7-82-1
http://zx.clan.su/forum/7-160-1
:v2_biggr:

Example626
07.12.2018, 17:13
Да эту тему я видел. Просил более конкретного совета.

Denn
07.12.2018, 17:18
Да, лет 5 назад, кто то , вот вот обещал на нем собрать железку, только прошли года...

Схемотехника придумана, все необходимые компоненты куплены, куплены макетные платы... где купить свободное время на хобби - х/з (((((

Totem
07.12.2018, 17:42
Схемотехника придумана, все необходимые компоненты куплены, куплены макетные платы... где купить свободное время на хобби - х/з (((((

вот это да, актуально.

- - - Добавлено - - -


Да эту тему я видел. Просил более конкретного совета.
Куда конкретней может быть? там разжевано все, вплоть до "необъятных" объемов памяти. Сходи на сайт атм
http://atmturbo.nedopc.com/
там есть конкретная и железная реализация.
http://micklab.ru/
тут вообще вопросы отпадут сами собой.

Example626
07.12.2018, 20:27
Куда конкретней может быть? там разжевано все, вплоть до "необъятных" объемов памяти.
В смысле "конкретней" я имел в виду "пальцем ткнуть".
Здесь же ссылки на начальные страницы и на объём информации, который надо месяц лопатить.
Да, там, возможно, есть всё. Но это надо искать. Я же просил просил поделиться конкретным решением (по возможности). Ну, если нет, значит, нет.
Буду пока делать то, что знаю. Искать пока нет времени.

Totem
07.12.2018, 20:58
В смысле "конкретней" я имел в виду "пальцем ткнуть".
Здесь же ссылки на начальные страницы и на объём информации, который надо месяц лопатить.
Да, там, возможно, есть всё. Но это надо искать. Я же просил просил поделиться конкретным решением (по возможности). Ну, если нет, значит, нет.
Буду пока делать то, что знаю. Искать пока нет времени.
так этих решений сколько хочешь, у каждого клона. Номера портов и дешифрация портов, все наглядно расписано, со схемами. Че душе угодно, то ваяй, если конечно совместимость предусматривается.

Tronix
07.12.2018, 21:12
Надо на этом спецтруме запилить эмулятор 8088 проца, воткнуть памяти метр, сделать на плате пару-тройку слотов ISA, чтоб втыкать тридент VGA и XT-IDE и грузить MS-DOS. Будет круто. :v2_dizzy_army:

Totem
07.12.2018, 21:14
Надо на этом спецтруме запилить эмулятор 8088 проца, воткнуть памяти метр, сделать на плате пару-тройку слотов ISA, чтоб втыкать тридент VGA и XT-IDE и грузить MS-DOS. Будет круто. :v2_dizzy_army:

сие пилить на ez80 о 50 MГц веселее и задорнее. :)

Example626
07.12.2018, 21:54
Что-то посмотрел я этот eZ80 и пока не хочу с ним связываться.
Вот, посмотрите лучше, как я сделал интерфейс клавиатуры:
http://turmalinnn.narod.ru/_Other/ZX/Port_FE.png
Матрица "набивается" внешним микроконтроллером PIC - хостом клавиатуры PS/2.
RESET специально отключен. Потому что:
У меня сейчас прошивка BASIC48 1990. При простом нажатии на RESET происходит сброс, но без очистки памяти.
А чтобы сброс был с очисткой памяти, нужно нажимать RESET с нажатой клавишей CAPS SHIFT. И вот, если при нажатии RESET сбрасывать и матрицу клавиатуры, она не успевает набиваться к моменту чтения вот этого запроса на нажатие CAPS.
И полного сброса не происходит.
Пришлось отключить.

LeoN65816
08.12.2018, 11:38
Example626, позволь дать несколько советов:


В её основе лежит ПЛИС Altera EPM3512AQC208-10 ("голова" от платы Igrosoft).
1. У CPLD, к коим относится и MAX3000, есть очень существенный недостаток - крайне малое количество внутренних связей между LAB-ами. Эта 512-ая (как и 256-ая) хоть и имеет 200+ ног (а доступных юзеру много меньше...), но всего лишь 36 сигналов между лабами... Уходи от CPLD в сторону доступных FPGA (https://www.waveshare.com/product/fpga-tools/altera/core.htm), обладающих много большей функциональностью, очень удобных для макетирования и, что не маловажно, предоставляющих возможность легкой сборки радиолюбителем готового изделия из конструктора (по типу такого (http://forum.agatcomp.ru//viewtopic.php?pid=1206#p1206)).

2. Очень рекомендую переходить на синхронный дизайн, и вместо схемного ввода переходить на Verilog: многократно повышается эффективность создания/модификации/отладки проекта.


По поводу динамического управления частотой:
3. Вот интересная идейка: CPU frequency can be changed real-time via rotary knob (0.2Mhz to 16.6Mhz) (http://www.a2heaven.com/webshop/index.php?rt=product/product&product_id=147). Ну и предусмотреть программное переключение.

4. В случае 48К/128К для видеоОЗУ (основное ОЗУ - отдельная статика) вполне достаточно внутренней памяти EP4CE10 (https://www.waveshare.com/product/fpga-tools/altera/core/coreep4ce10.htm) в режиме двухпортовки. Для расширенных видеорежимов - переход на двухпортовую статику. Адназначна! ;)

5. Преобразователи уровней (3.3В<->5В) и тормозилка проца для внешних чипов, устройств, карт расширения (PSG/AY, BDI и т.д.).

6. Видеовыхлоп штатного растра (256x192) делать на VGA 17"/19" 1280x1024 (5:4). По горизонтали: левый бордюр 128 точек + 256 учетверенных точек растра (=1024) + правый бордюр 128 точек. По вертикали: верхний бордюр 128 точек + 192 учетверенных точек растра (=768) + нижний бордюр 128 точек. Многие мониторы Viewsonic и Sony прекрасно проглатывают 50 Гц кадровой.

vlad
08.12.2018, 14:09
Очередной велосипед... Так-же думал, сделал плату и конфигурацию с несколькими процессорами и видео-режимами


https://www.youtube.com/watch?v=PvDHs7dZvf0

Потом сделал Spec256, в надежде, что хоть просто игры раскрасят...


https://www.youtube.com/watch?v=oee7vwiIMJc

Оказалось, это нафиг никому не нужно...

mastermind
08.12.2018, 19:48
2. Очень рекомендую переходить на синхронный дизайн, и вместо схемного ввода переходить на Verilog: многократно повышается эффективность создания/модификации/отладки проекта.
Хотя сам и не занимаюсь этой темой совсем, позволю себе также совет: попробовать Clash - декларативный язык описания железа, который генерирует Verilog/VHDL. Эффективность вышеперечисленного должна повыситься еще намного выше: https://clash-lang.org/

ZX_NOVOSIB
08.12.2018, 19:56
Потом сделал Spec256, в надежде, что хоть просто игры раскрасят...

Оказалось, это нафиг никому не нужно...
Во-о-от... А када допилят например ULAX, то каааак нараскрашивают игр, и это сразу станет всем нужно! ;)

Totem
09.12.2018, 04:20
Дайте ТС, свободу действий, укажите ему на ресурсы, где он может взять нужную информацию, как любой энтузиаст, он никогда не найдет поддержки, просто не зная элементарных вещей о платформе. Пусть он делает схемным или на любом HDL, пусть ему кажется, что он сам придумал вещи, которые реализованы
уже давно - он просто пришел поделиться своим мнением. Он использует сейчас те ресурсы, которые у него есть. Если взять топикастеров на этом форуме и тех кто с него сбежали давно, то будет примерно такая картина, они просто давно забыли, что писали в 2000 году например и это тоже смешно, читать их посты 15-18 летней давности, на различных ресурсах, учитывая, какие вещи они теперь делают :) амбиций прибавилось у них как и знаний:)

- - - Updated - - -


Во-о-от... А када допилят например ULAX, то каааак нараскрашивают игр, и это сразу станет всем нужно! ;)

тут не будем обсуждать сей проект, но если надо , за пару тройку дней можно "напилить" штук 15 игрушек, даже нашим скромным составом, где нет и "четветри взода", вопрос лишь в качестве "запила".

Example626
09.12.2018, 16:51
У CPLD, к коим относится и MAX3000, есть очень существенный недостаток - крайне малое количество внутренних связей между LAB-ами.
Не спорю. Есть такое. Но мне на всю схему Пентагона со всеми интерфейсами и дополнениями пока хватило.
Я взял эту ПЛИС по принципу "из того, что было".


и вместо схемного ввода переходить на Verilog
Я по этому поводу уже имел здесь разговор много-много лет назад. Повторяться не хочу. Приведу лишь пример - если вы видели выложенные мной в данной ветке схемы, вы могли видеть весь дизайн одним глазом. А если бы я выкладывал схемы в виде Verilog, сколько человек смогли бы понять, что там к чему? Схема - графическое представление - для восприятия стороннего человека гораздо нагляднее. Возвращаться к этому вопросу не хочу. Для меня ответ однозначен - нет.


Вот интересная идейка: CPU frequency can be changed real-time via rotary knob (0.2Mhz to 16.6Mhz).
Зачем мне это? Если у меня есть на этот счёт своё решение - ШИМ по входу BUSACK BUSRQ, уже опробованное и вполне рабочее. А программное переключение и там, и там делать надо.


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


6. Видеовыхлоп штатного растра (256x192) делать на VGA 17"/19" 1280x1024 (5:4). По горизонтали: левый бордюр 128 точек + 256 учетверенных точек растра (=1024) + правый бордюр 128 точек. По вертикали: верхний бордюр 128 точек + 192 учетверенных точек растра (=768) + нижний бордюр 128 точек. Многие мониторы Viewsonic и Sony прекрасно проглатывают 50 Гц кадровой.
Спасибо за наводку. Всё расписано, кроме длительности синхроимпульсов и уровня чёрного. Но и на этом спасибо.
У меня монитор 50 Гц не хочет отображать.

- - - Добавлено - - -


Очередной велосипед...
Ага, и что? Много разных велосипедов никому не мешают.

- - - Добавлено - - -


пусть ему кажется, что он сам придумал вещи, которые реализованы
А вот здесь у меня нет иллюзий. Напротив - я специально не стал изучать уже реализованные и придуманные другими решения. Я не касался темы Spectrum много лет. И намеренно не стал вникать в новые веяния и т.п.
Потому что хотел взяться с незамыленным взглядом. Я прекрасно понимал, что за 10-15 лет моего "отсутствия" много всяких решений должно было быть придумано и реализовано. Я понимаю, что многие из Spectrum сделали чуть ли не PC со всеми наворотами. У меня задачи такой не стояло. По сути - я просто хотел собрать свой Спектрум. И всё. Увидел проц на 20 МГц и решил его применить. Посмотрел, как я могу это сделать и смогу ли.
Вот тут посмотрел - не применил ли кто уже. Взял самый "продвинутый"? на мой взгляд вариант - NedoPC. Так оказалось, что там 14 МГц и то с WAIT. Поэтому решил выложить здесь.
Я не буду против, если режим 20 МГц по моей схеме добавят в NedoPC или куда ещё.
Что ещё внедрить - вот это вопрос. Но что-то громоздкое делать не собираюсь.

vlad
09.12.2018, 17:37
Ага, и что? Много разных велосипедов никому не мешают.
Тогда, какой смысл в вашем, когда у всех давно он уже есть? )


https://www.youtube.com/watch?time_continue=63&v=T8-6kJL6X0A

LeoN65816
09.12.2018, 21:54
Посоветуйте микросхемку, пожалуйста.
Из асинхронных (https://zx-pk.ru/threads/27625-prostoj-graficheskij-kompyuter-na-z80.html?p=909668&viewfull=1#post909668) выбирай вольтаж, объём, разрядность, корпус.


Всё расписано, кроме длительности синхроимпульсов и уровня чёрного.
Хочешь обсудить - в личке давай скайп, обкашляем. ;)

Положим твой проц шпарит на 20МГц. Даже LDIR-ом (21 такт/байт) он сможет прокачивать в пределе 1МБ/с. Твой экран 1024x576x8bpp (576 КБ!!!) будет перерисовываться более полусекунды!!! :eek:
Знаю два способа торможения проца:
1. Вэйтить по специально предназначенного входу проца. По-моему имеется ограничение на количество тактов вэйта...
2. Снижать тактовую. Что у КМОП-процессоров, что у nМОП- (тем более !!!) есть ограничение на минимально возможную частоту.
А вот ШИМ-ить (!!!), да еще и по выходу (!!!) nBUSACK, да еще и "уже опробованное и вполне рабочее" - это что-то совершенно мне непонятное... Расскажи, пожалуйста.

Example626
11.12.2018, 02:56
Тогда, какой смысл в вашем, когда у всех давно он уже есть? )
Как называется этот раздел форума? ZX Концепции. Что такое концепция, как не "никому не нужные" новые велосипеды?


Хочешь обсудить - в личке давай скайп, обкашляем
Да не надо, конечно. Вся инфа по данной тематике есть и расписана. Сейчас вот идёт "деаналоговизация" или "цифровизация" всего. Вот цифровой порт видео - это интересней (DP или HDMI).


А вот ШИМ-ить (!!!), да еще и по выходу (!!!) nBUSACK, да еще и "уже опробованное и вполне рабочее" - это что-то совершенно мне непонятное... Расскажи, пожалуйста.
Ой, не придирайся. Конечно, не BUSACK, а BUSRQ. Перепутал второпях.
На вход BUSRQ подаётся ШИМ с периодом (надо тестировать, но не сильно маленьким - скажем, 64 мкс - 15625 Гц). Длительность импульса регулируется - хочешь, плавно (резистором переменным), хочешь программно - контроллером или схемой.
Когда в импульсе лог 0, процессор встаёт и не работает, когда 1, продолжает работать. Соотвественно
Я такую схему делал лет 15 назад. Схема и идея не мои - прочитал где-то. Либо в журнале, либо в книге по ZX. Схемка делалась на какой-то КМОП-овской микросхеме. И длительность импульса регулировалась переменным резистором от 0 до 100% периода. Соотвественно, можно было в этих пределах регулировать производительность процессора. Очень помогало сильное замедление, когда нужно было отследить отрисовку спрайтов прямо побайтно.
Я надеюсь, подробно схемотехническое решение не нужно расписывать? Так как оно может быть совершенно любым. А конкретно ТУ схему я уже не найду. Принцип и так понятен.
P.S.
Причём, если я эту схему подключал не к BUSRQ, а к WAIT, она у меня не работала (WAIT был свободный - это был Пентагон-128). Что именно происходило, не помню, но не работала, в общем.

- - - Добавлено - - -


Твой экран 1024x576x8bpp (576 КБ!!!) будет перерисовываться более полусекунды!!!
А я как будто не считал. Считал, конечно. И знаю, что такая проблема есть.
Во-первых, 576 кБ - это в режиме 256 цветов для каждой точки!
Для режима с атрибутами - это в восемь раз быстрее. Если не считать самих атрибутов.
При экране с атрибутами 1024x576 и на 20 МГц быстродействие на прорисовку экрана всего в два раза медленнее стандартного Спектрума со стандартным экраном.
Во-вторых, на большинстве игр (например), не используется отрисовка ВСЕГО экрана во время процесса. Перемещаются только спрайты.
К тому же для игрового процесса выделено обычно две трети или треть экрана.
Основная идея - это убрать бордюр как поле с одним возможным цветом. Вместо этого можно делать декоративное обрамление. Либо выводить медленную, но полезную информацию - как части приборной панели, например, космолёта.
Можно и не использовать эту часть экрана. Никто ж не обязывает.
К тому же есть приложения, где вообще не важно быстродействие, а важны детали. Например, текстовый или графический редакторы.

Я не претендую, что всё это будет реализовано. Я просто хочу попробовать данный режим экрана.
Я ещё ни разу не видел широкоформатного экрана Спектрума. Почему-то.
А сейчас 16:9 - это даже не самый широкий формат. Можно использовать и 512x288 как половинное разрешение - уже в 4 раза быстрее. Или другие режимы. Но широкий формат, думаю, кто-то должен сделать.
Давай, не я - давай кто-то пусть, кто более искушён в данной теме, сделает, я не против.
Но мониторов-то и телевизоров "квадратных" уже не осталось почти.

troosh
11.12.2018, 11:32
P.S.
Причём, если я эту схему подключал не к BUSRQ, а к WAIT, она у меня не работала (WAIT был свободный - это был Пентагон-128). Что именно происходило, не помню, но не работала, в общем.

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

Example626
11.12.2018, 11:54
притормаживаете обмен - видеоконтроллер не может получить свои данные
Да это понятно. Просто по BUSRQ даёт завершить опрос памяти и только потом встаёт. А по WAIT запрос "подвисает" на середине обмена.
Это в теории. А по факту - я не разбирался.

Example626
11.12.2018, 17:19
Из асинхронных выбирай вольтаж, объём, разрядность, корпус
Что-то 128 кБ (128x8) 3,3 В одна штучка 5500 руб. стоит.
Это что-то уж совсем дорого.

Tronix
11.12.2018, 17:32
Что-то 128 кБ (128x8) 3,3 В одна штучка 5500 руб. стоит.
Это что-то уж совсем дорого.

Делюсь секретной ссылкой:
https://ru.aliexpress.com/item/316CDM-MLX90316KDC-CDM/32274986746.html?spm=a2g0s.9042311.0.0.734a33edZEU zU4
128Кб x8 10 нс (~75 MHz) пучек из десятка за 699 вечнодеревянных включая доставку.

Example626
11.12.2018, 17:45
Делюсь секретной ссылкой:
Так они не двухпортовые.

Tronix
11.12.2018, 17:49
Так они не двухпортовые.

Да, нюанс этот я упустил из виду

bigral
12.12.2018, 18:56
128Кб x8 10 нс (~75 MHz)

откуда цифра 75? микруха по идее тянет 100mhz и в синхронном режиме (при 10ns на запрос) должна уметь эмулировать 20ns dual port sram. Но это все не про спектрум, небыло такой памяти во времена спектрума.

Example626
12.12.2018, 19:15
откуда цифра 75? микруха по идее тянет 100mhz и в синхронном режиме (при 10ns на запрос) должна уметь эмулировать 20ns dual port sram. Но это все не про спектрум, небыло такой памяти во времена спектрума.

Что значит "не про Спектрум" и "не было во времена Спектрума"?
Во-первых, времена Спектрума ещё не прошли. А если речь о Спектруме оригинальном, то клоны и 20 лет назад использовали отличные от оригинальных микросхемы.
А во-вторых - раздел у нас назывется "ZX Концепции". Концепции не могут быть консервативным. Они должны ипользовать новые технологии (которые вовсе уже и не новые).
А Спектрум можно собрать десятками разных способов, используя огромное количество разных микросхем, не имеющих ничего общего с оригиналом.

Геккон
12.12.2018, 21:43
У Sprinter 2000 пpоцессоp: Zilog Z84C15 на частоте 21 МГц, 3.5 МГц в конфигурации ZX Spectrum

Example626
12.12.2018, 22:04
WAIT используется?

Геккон
12.12.2018, 22:57
WAIT используется?

В режиме нетурбо это происходит без каких либо задержек, а в режиме турбо процессору выставляется сигнал WAIT в зависимости от необходимой длины цикла обращения к порту.

Totem
13.12.2018, 00:06
WAIT используется?


http://micklab.ru/file/sprinter/Sprinter_2016s.pdf
;)
https://eax.me/arduino-sega-controller/

Example626
13.12.2018, 02:04
В режиме нетурбо это происходит без каких либо задержек, а в режиме турбо процессору выставляется сигнал WAIT в зависимости от необходимой длины цикла обращения к порту.

Я имел в виду WAIT при работе с памятью.
По схеме WAIT идёт от ПЛИС. Что там за сигналы - непонятно.

Геккон
13.12.2018, 08:55
Я имел в виду WAIT при работе с памятью.
По схеме WAIT идёт от ПЛИС. Что там за сигналы - непонятно.

посмотрите их документацию, она у них неплохая...

Example626
13.12.2018, 09:39
посмотрите их документацию, она у них неплохая...
Да мне тут накидали всякого уже - мне год нужно в документациях и схемах рыться.
Конечно, это неплохо, но пока я изучаю другие схемы, я свой комп собрать не могу. Буду собирать тогда так, как сам знаю.
Потом видно будет.
Но на Z84C15 я точно собирать не хочу.

LeoN65816
13.12.2018, 10:18
Что-то 128 кБ (128x8) 3,3 В одна штучка 5500 руб. стоит.
Это что-то уж совсем дорого.
Ты бы указал, какой конкретно ты чип выбрал, в том числе и тип корпуса.
Те же 128КБ, но с организацией 64Кx16 (что очень важно при организации текстовых режимов: одновременное считывание и символа и аттрибутов цвета) - пункт 3 (http://forum.agatcomp.ru//viewtopic.php?pid=1887#p1887). Надо постоянно мониторить и ибэй и алиэкспресс, бывают появляются по очень вкусным ценам, вот (https://www.ebay.com/itm/1PCS-NEW-IDT70V28L15PFGI-IDT-0621-QFP-100-/372308133940?hash=item56af4b4834), например. 32Кx16 по вкусной цене (https://www.ebay.com/itm/1PCS-NEW-IDT70V27L15PFI-IDT-0442-QFP-100-/153025495612?hash=item23a107c23c).

Totem
13.12.2018, 14:08
а какая разница? это просто Z80 с прикрученными плюшками, как SIO =MK

Example626
13.12.2018, 20:43
А потому что зачем?
Просто, если эти "плюшки" нафиг не нужны, зачем брать с ними изделие, если есть процессора (аналогичные ядру данного изделия) в чистом виде?
Лично мне не нужны. Поэтому я и пишу - не хочу.

Кстати, протестировал работу схемы на частоте 24 Мгц. Всё работает.
Как переименовать заголовок темы?

На 28 МГц не работает. Как я понял, это не тянет уже сам процессор (на 20 МГц он). Так как даже в тестовом ПЗУ в начале теста не выводит последовательность цветов бордюра. ПЗУ-шка на 70 нс, а на частоте 28 МГц время доступа по чтению к памяти составляет как раз чуть более 71 нс (два цикла CLK) Z80. К тому же ПЗУ я исключил, просто добавив в схему тормозилку при обращении к ПЗУ. То есть затык происходит, когда процессор обращается к ОЗУ и на него подаётся полные 28 МГц.

Но оставлять 24 МГц в качестве рабочего режима для процессора на 20 МГц не хочу.
Проверил - и забыл. И так нормально.

- - - Добавлено - - -


Ты бы указал, какой конкретно ты чип выбрал, в том числе и тип корпуса
Он там по ссылке один был 128x8 на 3,3 В. Сейчас не вспомню уже. Но сам порядок цен на подобные вещи меня моментально отпугнул. Однопортовки на порядок дешевле.
Пока обойдусь без двухпортовок.
С 16-разрядной шиной - да, у меня была идея использовать. Но не для текстового режима, а для экрана Спектрума. Но так как там атрибуты и пиксели вообще по разным адресам, за одно считывание такой вариант возможен, если шина ОЗУ 16-разрядная, а микросхемы две 8-разрядных с разной адресацией - на одной адрес атрибутов, на второй - пикселей.
То есть 64x16 или 32x16 не пойдут. Вернее, они подошли бы для данной модели, так как они всё-таки двухпортовые, но нужно ещё и процессору к памяти доступ дать.
Но я отказался пока от таких идей. Пока извращаться не буду - сделаю обычный а-ля Пентагон (со специями).
Отработаю некоторые решения, потом буду думать.
Двухпортовка была бы интересна, если бы была достаточно доступна. А если посчитать, сколько я уже потратил на запчасти для Спектрума, это можно PC-шку собрать средненькую. Дело, конечно, не в деньгах. Ага? Но всё-таки...

LeoN65816
13.12.2018, 21:30
Он там по ссылке один был 128x8 на 3,3 В.
Это IDT70V09 что-ли?
А ведь есть еще CY7C009V! А еще есть 128Kx9 IDT70V19 и CY7C019V!


То есть 64x16 или 32x16 не пойдут.
64Kx16 плюс один инвертер (на каждый порт) = 128Kx8!!! Догадываешься как? ;)


Вернее, они подошли бы для данной модели, так как они всё-таки двухпортовые, но нужно ещё и процессору к памяти доступ дать.
Не понимаю тебя... Что ты имел ввиду?


Двухпортовка была бы интересна, если бы была достаточно доступна.
Z380 у одной-единственной китаянки с Алибабы за $15 с доставкой ~$30 (https://zx-pk.ru/threads/29836-zx-spectrum-na-chastote-20-mgts-(bez-wait).html?p=990342&viewfull=1#post990342) - это, по-твоему, нормально. А 64Kx16 двухпортовки (!!!) за $10 и с бесплатной доставкой - оказывается, по-твоему, "недостаточно доступно"... Прям парадокс! :eek:

P.S. Как говорится, "Хозяин - барин!". Я ни в коем случае не отговариваю тебя, просто советами пытаюсь подтолкнуть тебя к созданию к еще более интересной, красивой (с технической точки зрения), вкусной разработке.

Totem
13.12.2018, 22:54
А потому что зачем?
Просто, если эти "плюшки" нафиг не нужны, зачем брать с ними изделие, если есть процессора (аналогичные ядру данного изделия) в чистом виде?
Лично мне не нужны. Поэтому я и пишу - не хочу.
Вообще сейчас обидно было да.. :) Sprinter 2000, в железке 18 лет назад был, а был еще 97 :( как думаешь сколько тогда он стоил? а SIO еще корпус.

- - - Добавлено - - -


На 28 МГц не работает.

z180 работает

К тому же ПЗУ я исключил, просто добавив в схему тормозилку при обращении к ПЗУ
и правильно нефиг пропадать 16K памяти.
тут менеджер памяти, разрисованный в логике. Управление в CPLD.
https://zx-pk.ru/threads/26909-prostenkaya-videokarta-dlya-8-bit-podelok/page2.html

Example626
14.12.2018, 09:55
64Kx16 плюс один инвертер (на каждый порт) = 128Kx8!!! Догадываешься как?
Поверь - я знаю, как x16 память использовать в качестве x8.


Не понимаю тебя... Что ты имел ввиду?
Я писал про режим одновременного чтения атрибутов и байта пикселов стандартного экрана одним заходом с 16-разрядной шины.
При одновременном чтении атрибута и байта пикселов стандартного экрана из памяти с единой 16-разрядной шины адрес при однопортовой памяти можно задать лишь один.
При этом читаться будут два соседних байта. Однако по карте памяти Спектрума эти байты расположены в совершенно разных областях памяти.
То есть по 16-разрядам одним 16-разрядным словом и атрибуты, и пикселы читать можно, но для этого нужно две микросхемы по 8 разрядов либо одну двухпортовую.
И это только для графики - для чтения экрана. А процессору тоже нужен доступ к этим областям.
То есть нужен ещё один порт. Либо возвращаемся к дискретному доступу по времени.
Так понятно?

А 64Kx16 двухпортовки (!!!) за $10 и с бесплатной доставкой - оказывается, по-твоему, "недостаточно доступно".
Я Z380 купил именно потому, что с большим трудом нашёл. И если в твоих словах про "одну-единственную китаянку" есть сарказм, то не стоит - предложений по Z380 действительно достаточно. Вот только не продаёт никто при конкретном запросе.


z180 работает
У него какая штатная частота?


и правильно нефиг пропадать 16K памяти.
тут менеджер памяти, разрисованный в логике.

Ты меня не совсем понял. Я исключал ПЗУ временно - чтобы проверить работу процессора. И то - не исключал полностью, а задавал при работе ПЗУ частоту процессора 3,5 Мгц.
И даже в моём контексте слово "исключил" - это "исключил из проверки на тормознутость", а не "исключил из схемы".
А "недоступность" теневых 16 кБ ОЗУ - это миф (вернее, это верно только для 48 кБ). Так как даже в 128-м режиме она вполне доступна как одна из страниц порта 7FFD.

Totem
14.12.2018, 10:48
У него какая штатная частота?
33MГц у z8s180. но это тоже контроллер с ядром z80.


Ты меня не совсем понял
понял прекрасно.

Vadim
14.12.2018, 14:15
Я Z380 купил именно потому, что с большим трудом нашёл.
Сегодня поискал на али - не нашёл вообще.

JeRrS
14.12.2018, 14:48
Как переименовать заголовок темы?
Напишите как нужно, я переименую.

Totem
14.12.2018, 15:13
Сегодня поискал на али - не нашёл вообще.

https://zx-pk.ru/threads/25399-z380.html?highlight=
https://ru.mouser.com/Semiconductors/Embedded-Processors-Controllers/Microprocessors-MPU/Z380-Core/_/N-6hpeh?P=1yzudgx
тогда, мне девушка звонила и уточняла что да как, сейчас уже не купить с "мусера."

Example626
14.12.2018, 16:58
С Маузера не продадут, на Алиэкспрессе нет. Я на Алибабе брал.

- - - Добавлено - - -


Напишите как нужно, я переименую.
Уже же ж переименовали.