User Tag List

Страница 1 из 5 12345 ПоследняяПоследняя
Показано с 1 по 10 из 80

Тема: ZX Spectrum на частоте 20 (24) МГц без WAIT

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    07.08.2007
    Адрес
    Нижний Новгород
    Сообщений
    77
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию ZX Spectrum на частоте 20 (24) МГц без WAIT

    В общем, я тут уже отписывался в сторонних ветках. Хочу просто в одной теме выкладывать свои наработки.
    Немного вяловато разрабатываю платформу 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 на этой частоте.
    Смотрите, но сильно не ругайте - не играл очень давно, и с управлением на такой скорости беда:

    Последний раз редактировалось Example626; 06.12.2018 в 04:21.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Example626 Посмотреть сообщение
    и с управлением на такой скорости беда:
    А чём тогда смысл разгона до таких частот, чисто академический? Кстати, а частота будет меняться динамически? Типа в командере работаешь на полной, а при запуске софта можешь переключиться на 3.5 или 7.
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  4. #3

    Регистрация
    07.08.2007
    Адрес
    Нижний Новгород
    Сообщений
    77
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    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, например.
    Последний раз редактировалось Example626; 06.12.2018 в 09:44.

  5. #4

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Example626 Посмотреть сообщение
    если есть потребность.
    Мне вот и интересно, есть ли она.

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

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

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

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

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

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

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

  6. #5

    Регистрация
    07.08.2007
    Адрес
    Нижний Новгород
    Сообщений
    77
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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


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

  7. #6

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,480
    Спасибо Благодарностей отдано 
    310
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    217 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Example626 Посмотреть сообщение
    А как 56 МГц в 21 преобразовать? Или даже 112?
    А зачем 56, можно же кварц на 42 взять.

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

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

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

  8. #7

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Example626 Посмотреть сообщение
    2. Смысл номер два в том, что а что это Z80 под частоту 20 МГц существует, а Спектрума на нём нету? Непорядок!

    Существует на 33 МГц (без напряга гонится до 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/Ka...KL5C8400C.html

    https://zx-pk.ru/threads/10104-hardw...yator-z80.html


    Челендж?
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  9. #8

    Регистрация
    07.08.2007
    Адрес
    Нижний Новгород
    Сообщений
    77
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

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

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

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

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

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

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

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

  10. #9

    Регистрация
    13.12.2007
    Адрес
    Архангельск
    Сообщений
    2,189
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    13 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Denn Посмотреть сообщение
    Существует на 33 МГц (без напряга гонится до 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/Ka...KL5C8400C.html

    https://zx-pk.ru/threads/10104-hardw...yator-z80.html


    Челендж?
    Да, лет 5 назад, кто то , вот вот обещал на нем собрать железку, только прошли года...
    Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
    zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)

  11. #10

    Регистрация
    07.08.2007
    Адрес
    Нижний Новгород
    Сообщений
    77
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

Страница 1 из 5 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 11
    Последнее: 09.11.2024, 09:35
  2. Полосы в ZX Spectrum без ПЗУ как образуются?
    от PATHNK в разделе Программирование
    Ответов: 13
    Последнее: 28.04.2013, 09:54
  3. О частоте огибающей.
    от Enigmatic в разделе Музыка
    Ответов: 2
    Последнее: 08.10.2010, 20:18
  4. Схемы WAIT для различных клонов ZX Spectrum
    от ARTi в разделе Несортированное железо
    Ответов: 0
    Последнее: 28.04.2008, 16:57
  5. Ленинград-1 без WAIT - косяк :(
    от skyther в разделе Ленинград
    Ответов: 20
    Последнее: 06.07.2006, 19:14

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •