Базовая схема (с ней ты уже разобрался AFAIK):
Скрытый текст
Вот тут чего-то по RAM-protect есть в конце странички (см. вложение этого поста), а также ЕМНИП описано где-то в одном из пунктов в методике из вложения вот этого поста
Базовая схема (с ней ты уже разобрался AFAIK):
Скрытый текст
Вот тут чего-то по RAM-protect есть в конце странички (см. вложение этого поста), а также ЕМНИП описано где-то в одном из пунктов в методике из вложения вот этого поста
Последний раз редактировалось Error404; 23.02.2018 в 12:13.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Вариантов было много. Суть в том, чтобы запретить сигналы /WE на динамических ОЗУ сигналом выборки ПЗУ+В/У. Это сигнал DD8.3/8, он подается на DD29/1 чтобы запрещать буфера ОЗУ. Этим же сигналом надо запрещать и /WE. Т.е при выборке ПЗУ + В/У надо запрещать и вторую половину дешифратора DD29. У меня это сделано вот так. Может и не оптимально, но работало.
Кстати, ещё нужна доработка отключающая ПЗУ и В/У вообще (FULL RAM). Управление этим делается уже не портом FB, а портом FC по биту D6 с помощью ЛИ1 включённого в разрыв цепи на входе DD14.2/13.
Последний раз редактировалось barsik; 23.02.2018 в 13:27.
Точно. 20 лет не смотрел на схему Z80CARD-II и всё про неё забыл, т.к пользуюсь вариантом "голый Z80", т.к он более распространён, а Z80CARD-II была нужна только для игр.
Это я просто нашёл какую-то схему, и сам удивился, что там использован порт FC. А сейчас сообразил, что это мой личный вариант отключения ПЗУ+В/У для варианта голый Z80, т.к в моих ОРИОНАХ нет регистра на порт FB, зато стоит ТМ9 на порт FC, которым я переключаю банки ПЗУ (2 банки по 2 кб в виде двух напаянных друг на друга РФ2).
Кстати две банки ПЗУ РФ2 стояли ещё в Z80CARD-I (которая решала цветовую проблему и проблему загрузки OS без ROM-диска). Но т.к это оказалось удобно, то я использовал это и впоследствии. Во второе ПЗУ при использовании DOS в банке 0, я обычно ставлю ПЗУ с фонтом, это позволяет не тратить ценное ОЗУ банки 0. Также второе ПЗУ необходимо для эмулятора РК86 на ОРИОНЕ. Кроме того у меня открыто ОЗУ в области F600...F6FF, что очень удобно (расход 1 вентиль из ЛЛ1).
Кстати, как Вы программно переключаете Турбо/Нетурбо? Стандартов на это кажется не было. Сам я обычно использовал бесплатный STA FB00, не то битом D7, не то D0. Программное или аппаратное переключение в Нетурбо при работе с КНГМД на ВГ93 желательно, а при РК-КНГМД просто необходимо. При 10 МГЦ также надо переключаться на Нетурбо при обращении в порты, иначе ВВ55 не тянут (без WAIT).
А не хотите сделать режим SuperFont 768*256, такой же как в компьютере "Искра-1080 Тарту". Текст с символами 8*10 в этом режиме выглядит отлично, особенно, если отплющить экран заменой кварца с 10 МГЦ на 8 МГЦ, что разворачивает растр на весь экран.
Режим отключения ПЗУ+В/У позволил поднять на 4 кб уровень TPA в CP/M, хотя толку от этого оказалось мало. Для самых мощных компиляторов CP/M требуется TPA в 62 кб, а это можно сделать только перенеся весь код CP/M в другую банку, оставив в банке CP/M только входы в BDOS/BIOS.
Последний раз редактировалось barsik; 23.02.2018 в 14:55.
Бит 7 порта FB в Z80-Card-II уже занят флагом MZ
Пока что это у меня сделано чисто аппаратно.
По поводу PIO - я вот думаю заменить их теми же ATMEGA8 или ещё чем-либо аналогичным - достать их намного проще, а порт клавиатуры тогда уместиться сразу в 1 корпус. Но это пока что только идея.
Или сделать цепочку формирования WAIT для PIO + ВГ93 - но это сильно позже.
Сильно много видеорежимов - плохо для схемы. И так уже "жирная" получается видео-часть
"Байт-48"
STA FB00 и OUT (FB),A это разные команды и попадают в разные порты, так что сигнал MZ (mode Z80) не пострадает. STA FB00 (цепь 91) это бесплатный и потому очень удобный строб на запись (т.к для его использования не нужна доп.логика, достаточно добавить лишь сам регистр).
Точно также OUT FC, FD, FE, FF это совсем не то же самое что STA FC00, FD00, FE00, FF00. Т.к в ОРИОНЕ упрощенный дешифратор системных регистров, то STA FC00 это то же самое, что и STA F800. И так далее, - запись на FD00, FE00, FF00 попадает в F900, FA00, FB00. При нужде удобно добавить немного логики и получить ещё 4 строба на запись по STA FC00, FD00, FE00, FF00.
Последний раз редактировалось barsik; 23.02.2018 в 15:27.
Кстати, по времянкам - INT формируется от кадрового синхроимпульса. В оригинале он 50Гц, но у меня - 60/70Гц (зависит от выхода - 4:3 или 16:9).
Это на что-либо влияет существенно?
- - - Добавлено - - -
Текущий вариант схем в Квартусе:
1) Видео-модуль;
2) Процессорный модуль.
Изменения в схеме очень значительные. по сравнению с оригиналом...
"Байт-48"
Теоретически, некоторые игры, которые привязаны к прерываниям станут работать немного быстрее.
Хуже, что тогда в ZX-играх, которые для того, чтобы не было мерцаний при движениях спрайтов, двигают их во время гашения по кадрам (во время обратного хода луча), это время гашения сократится. Возможно в некоторых играх возникнут мерцания, но из-за этого не стоит заморачиваться, т.к конвертированных ZX-игр мало, а конверсия все-равно изменила все времянки.
Последний раз редактировалось barsik; 23.02.2018 в 15:24.
Дома с клавиатурой попробую запустить тест на быстродействие
Так же напаяю панельку для реального Z80 и буду тестить с ним уже. Сегодня-завтра ещё и память будет на руках...
"Байт-48"
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)