User Tag List

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

Тема: Еще один Орион НЕ на ПЛИС или калинка-малинка по-русски

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

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

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

    Lightbulb ОРИОН 2.0

    Итак, продолжим по сабжу. Делаю черновые наброски схемотехники.

    Полагаю, проектировать новый комп в 2019-ом году с тактом 3,5/5 МГц было бы как минимум издевательством. В природе давно существуют КМОП-версии Z80 на 20 МГц, а сейчас скорее всего только они и продаются (из КМОП), логично заложить в схемотехнику их поддержку.

    В связи с этим тактовый генератор будет таким:



    Идея в следующем. По-умолчанию (при сбросе) включен родной орионовский клок = 2,5 МГц. Программно через порт #FC активируется т.н. режим "турбо", который с помощью джамперов конфигурится исходя из установленного экземпляра процессора.
    Этим процессом рулит новое ПО (например, ОС), старое ПО про это не знает, но ему и не нужно, оно работает на родных 2,5 МГц.
    При опросе клавиатуры также придётся "падать" на 2,5 МГц, т.к. ВВ55 и МК физически не смогут даже на 10 МГц, а уж на 20 - и подавно. Заодно не придётся адаптировать код (программные задержки) под различные клоки.


    Выборка ПЗУ/ОЗУ и организация начального старта (ПЗУ @ 0000h) и верхнего непереключаемого ОЗУ:



    До кучи сюда же попала реализация "матюгальника"
    К сожалению, у Z80 нет выходного сигнала "INTE", поэтому придётся идти по пути Z80-card (


    Едем далее. Обращения к системным портам Ориона и эмуляция натягивания портов на память:



    Не нравятся мне эти две КП11 ради того, чтобы IN/OUT копировали LDA/STA... тут надо будет подумать ещё..


    Небольшое ноу-хау: совмещение Монитора и ROM-диска в одной микросхеме ПЗУ WB27C512:



    Смысл в том, что делать сегодня на РФ2 как-то смешно, нынче проще достать "винбонд", и для базового варианта в принципе будет достаточно 62 Кб под ROM-диск. Упаковав оба два мы получаем экономию места и проводки, а заодно избавляемся от лишней ВВ55, для эмуляции которой достаточно защёлкивать адрес (2хИР23), а данные буду выдаваться на ШД МПС напрямую от ПЗУ.
    А в случае применения МП на 20 МГц, для работы в режиме "турбо" винбонд вообще без вариантов!


    В общем-то, и всё. Это почти вся материнка! МП, ПЗУ и СОЗУ не нарисованы, но там всё понятно. Позже разрисую узел клавиатуры, порт пользователя и СОМ-порт.
    Сигналы активации портов видеочасти можно вывести на свободные линии системного разъёма (их там есть и достаточно много), а также чипселекты порта клавиатуры и пула портов расширения (#F7xx).


    С клавиатурой пока вопрос открытый, тут у меня три варианта:

    1. Классическая связка ВВ55 + МК;
    2. Разъём порта расширения с чипселектом #F4, и т.о. исключить собственно ВВ55 (отдать МК и её эмуляцию);
    3. Прямая поддержка клавиатуры PS/2.

    С первым вариантом всё понятно, он самый каноничный и пожалуй универсальный, но некрасивый (для 21-го века) и громоздкий.
    Второй - более красивый - позволит при желании воткнуть платку с ВВ55 и подключить труъ-клаву, но разработка соотв. ПО для МК под вопросом.
    Третий вариант грубо нарушает феньшуй: потребуется "перепил" кода монитора (и поддержка PS/2 скорее всего в 2 Кб не влезет) и кондовое ПО, которое напрямую обращается к клавиатуре, не будет работать. В случае использования конструктора в качестве МПС без видеокарты это всё не проблемы, но для "классики" такой вариант однозначно не подойдёт.


    Раз уж у нас Z80, то можно добавить и диспетчер ОЗУ (от Z80-card), но конструкцию это усложнит, а нужен ли он на практике - х/з.

    Прерывания. Наверное неплохо заложить. Но в виду вынесения "за скобки" видеочасти возникает небольшое неудобство. В случае использования без видео, прерывания (50 Гц?) нужно генерить интернально, а в случае подключения видеокарты хотелось бы их получать от пятки кадровых импульсов. Нужно мутить схему коммутации, автодетект подключения видео-части с переключением на прерывания от неё...


    Можно сразу заложить возможность расширения ОЗУ до 1024 Кб (или даже до 4 Мб?!), но опять же вопрос - нужно ли?


    Также витает мысль "положить на бутер вторым слоем" СОЗУ (512 или 1024 Кб), подпёртое батарейкой, т.о. получится быстрый и почти "халявный" RAM-диск, находящийся в адресном пространстве МП (доступ также, как и к доп. страницам ОЗУ, активация например старшим битом порта #F9).
    Но для работы с таким RAM-диском придётся переключаться на клок 2,5 МГц, т.к. малопотребялющее СОЗУ на клоке 20 МГц работать не будет. В общем-то, такая же история и с клавиатурой, но с ней это по барабану, в её случае скорость и не требуется.
    Последний раз редактировалось Denn; 22.03.2019 в 13:19.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

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

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

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

Похожие темы

  1. Эмулятор ZX-Poly
    от Raydac в разделе Эмуляторы
    Ответов: 109
    Последнее: 07.12.2024, 21:42
  2. ОРИОН-2018 на ПЛИС
    от Павел Рябцов в разделе Орион
    Ответов: 125
    Последнее: 06.10.2023, 16:41
  3. Еще один Орион на ПЛИС
    от andreil в разделе Орион
    Ответов: 660
    Последнее: 07.05.2020, 02:02
  4. ОРИОН-2010 на ПЛИС.
    от Ewgeny7 в разделе Орион
    Ответов: 447
    Последнее: 23.11.2016, 12:27
  5. Ещё один Д.Р.
    от GNTB в разделе Поздравления
    Ответов: 4
    Последнее: 19.07.2006, 01:52

Ваши права

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