User Tag List

Показано с 1 по 10 из 17

Тема: Контроллер диска "Демиург" из Обнинска

Древовидный режим

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

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Обдумывая установку CP/M в плату, обзываемую здесь "Ленинград-1", стал искать информацию о том, как аппаратно в отечественных промышленных клонах ZX-48K получали CP/M. Интересует как включается CP/M именно в ZX-Spectrum с 48K, т.к в 128-мых клонах для CP/M использовался стандартный второй экран на E000, включаемый битом D3 порта #7FFD (и расположеный в 7-й странице памяти).

    Замечу, что Spectrum-128 в оригинале непригоден для CP/M, т.к у него в адресах 0...3FFF ПЗУ не отключается. Для CP/M в клонах добавляют какой-то порт для отключения ПЗУ и включения так называемого "теневого ОЗУ".

    Оказалось, что из нескольких сотен клонов ZX, лишь в нескольких из них была CP/M. Изначально я знал, что CP/M использовалась в TIMEX, самом первом клоне ZX. Знал также, что CP/M была в Хоббите, т.к когда-то имел полную его документацию. Увы, информации о управляющих архитектурой портах TIMEX-а и Хоббита не нашёл.

    Зато узнал, что CP/M была в Кворуме и нашёл описание его портов служащих для реконфигурации архитектуры под CP/M. Т.о в Кворуме-64 это делает порт #0, а в Кворуме-128 - порт #80FD. А в Балтике, где тоже есть CP/M, используется порт #7E (бит D7 отключает ПЗУ, бит D2 перемещает экран на C000).

    В итоге, сделал вывод, что стандарта управляющих портов для реконфигурации архитектуры под CP/M не существует и каждый волен это делать как угодно, лишь бы не конфликтовало с портами Spectrum-128.

    Также стал искать в каких расширенных клонах ZX есть режим 512*192. Оказалось таких клонов ещё меньше, чем клонов, имеющих реконфигуратор под CP/M. Во-первых, это тот же TIMEX-2048/2068. А из отечественных клонов режим 512*192 имеется лишь в Пентагоне-128 и в Байте-01.

    Но и в этих клонах управление видео режимом оказалось разное. Т.е и на режим двойного разрешения стандарта нет.

    В Пентагоне-128 режим 512*192 включается 1-м битом порта #EFF7. А в Байте 01 включение двойного разрешения осуществляется установкой 7-го бита в порте #05. Остальные биты порта #05 используются для установки цвета символов и фона для всего экрана. Адрес дополнительной экранной области такой же, как и в TIMEX (#6000), так что возможно и управляющий порт тот же.

    Здесь указано, что режим 512*192 во всех клонах, где он реализован - монохромный, что свидетельствует о том, что используются не 2 параллельные банки, а лишь одна. Вторая плоскость читается вместо атрибутов, отсюда и монохромность. Потому-то у них адрес второй плоскости - другой.

    Я же думаю о использовании двух параллельных банок, как в ОРИОНЕ, и экранный адрес второй плоскости - тот же самый, только физически она находится в другой банке ОЗУ и считывается одновременно. Причём атрибуты считываются обычным образом, т.к никаких вторжений в схему видеогенератора нет. И для раскраски для каждого знакоместа имеется байт атрибутов. Так и получается режим 512*192, но цветной.

    Причём, если нужен только текст и скорость не важна, то аппаратно этот режим можно значительно упростить. Тогда используются не 2 сдвиговых регистра ИР9 на такте 14 МГЦ, а добавляется только один регистр ИР9 на такте 7 МГЦ для второй банки ОЗУ и мультиплексор коммутирующий выходы обоих ИР9-тых с частотой 14 МГЦ (плюс КП11 переключающий выходы RGBI, чтобы был один общий видео выход). При этом в одном полупериоде сигнала 14 МГЦ на видео-выход уходит сигнал считанный из одной банки ОЗУ, а в другом полупериоде из другой.

    Разрешение по горизонтали удваивается, но для программирования (особенно графики) такой режим неудобен и заметно тормознут, хотя аппаратная доработка проста. Я делал такой режим в ОРИОНЕ в 1991 и имею соответствующий драйвер вывода текста. С точки зрения программирования лучше потратить на несколько TTL-корпусов больше и получить нормальную байтовую графику и отсутствие потери скорости при символах шириной в байт.

    С другой стороны, если обе экранные области перенести в одну банку (тогда сокращается TPA, но отпадает тормозящая вывод коммутация банок) и отказаться от возможности считывания второй банки (тогда отпадает буфер чтения ИР22, D32 для второй банки), то доработка упрощается. Кроме доп.банки ОЗУ надо ИР9, две КП11 и несколько корпусов логики. При этом усложняется программирование, но упрощается апп.доработка.
    Последний раз редактировалось barsik; 03.02.2018 в 15:15.

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

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

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

Похожие темы

  1. Ответов: 530
    Последнее: 09.01.2025, 09:36
  2. Ответов: 29
    Последнее: 24.03.2019, 18:11
  3. Ответов: 17
    Последнее: 26.12.2015, 23:22
  4. Платы ром-диска "Орион-128"
    от AL.EX в разделе Барахолка (архив)
    Ответов: 45
    Последнее: 10.06.2012, 12:54
  5. Ответов: 0
    Последнее: 15.08.2010, 14:38

Ваши права

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