TSEvo Devboard Config

Материал из SpeccyDevWiki
Перейти к: навигация, поиск
Файл:TSdemo.png
TS Tech Demo by r0bat

TSEvo Devboard Config - конфигурация для ZXEvolution Devboard, разработанная TS-Labs.

Содержание

Особенности конструкции

Архитектурно TSEvo Devboard Config представляет из себя смоделированные в FPGA две функционально законченные архитектуры : архитектуру компьютера Pentagon-128/512/1024 и архитектуру видеокарты с тайлово-спрайтовым ускорителем (TSU), включающую в себя в т.ч. такие периферийные устройства как интерфейсы ZSD (SD-Card) и NemoIDE (IDE). Моделирование двух устройств в FPGA позволило значительно оптимизировать их архитектуры за счёт удаления дублирующих узлов. Такое объединение двух устройств значительно усложняет для неподготовленного пользователя понимание границы разделения между этими устройствами, и создаёт ложное представление об TSEvo Devboard Config как об одном неделимом устройстве. Но при представлении TSEvo Devboard Config в качестве чёрного ящика, он может быть смоделирован как компьютер Pentagon-1024 объединённый с TSU 4Mb через интерфейс шины NemoBus v.1.2, позволяющий внешнему устройству подставлять любую страницу ОЗУ в любое процессорное окно CPU0-CPU3. При этом предполагается отображение 1Mb ОЗУ Pentagon-1024 на 1Mb из 4Mb видео ОЗУ TSU, т.е. все действия CPU в ОЗУ компьютера отображаются так же в соответственной области ОЗУ TSU, но операции TSU в собственном ОЗУ не отображаются на память компьютера. Отнесение ZSD и NemoIDE интерфейсов к архитектуре TSU позволило организовать ПДП пересылки между внешними накопителями и видеопамятью TSU минуя CPU, а потому прозрачно для него, и таким образом исключило необходимость останавливать CPU для осуществления циклов ПДП. Таким образом, пересылки данных между TSU, ZSD и NemoIDE, для CPU невидимы и являются для него теневыми. Теоретически, архитектуру TSU используемого в TSEvo Devboard Config возможно реализовать в виде отдельной карты расширения для шины NemoBus v.1.2. Для реализации возможностей ПДП TSU, интерфейсы ZSD и NemoIDE должны быть продублированы на этой карте, а аналогичные интерфейсы компьютера будут блокироваться сигналом IORQGE TSU.

Недостатки конструкции

  • Основным идеологическим недостатком конструкции является её оторванность от эволюционного развития ZX Spectrum, выражающаяся в отсутствии какой-либо эволюционной привязки между разрешениями и структурой экрана новых видеорежимов видеоускорителя и экраном ZX Spectrum. Т.е. экранные режимы видеоускорителя TSEvo Devboard Config абсолютно чужды для ZX Spectrum. Тем не менее, в силу функционального разделения архитектуры компьютера Pentagon-512 и архитектуры видеоускорителя, использование в видеоускорителе любых видеорежимов вполне обосновано, и не противоречит мировой практике разработки видеоадаптеров.
  • Основными конструктивными недостатками являются несоответствие реализации внешней шины стандарту NemoBus, и плохая проработка выбора базового адреса #xxAF портов ВВ видеоускорителя, конфликтующего с портами DivIDE.

Характеристики

  • Совместимость с Pentagon в версии 512кБ, расширение через биты 6,7 (и опционально - 5 порта #7FFD до 1024кБ, без дополнительных графических режимов). Совместимость с расширениями других клонов не предусмотрена.
  • Наличие аппаратного видеопроцессора (TSU), обеспечивающего отображение тайлов и спрайтов поверх основной графики.
  • Дополнительные графические режимы 16 или 256 цветов на точку и линейной адресацией.
  • Палитра - 256 ячеек с выбором из 64/15625 оттенков.
  • Текстовый режим с подгружаемым шрифтом.
  • Блиттер (копирование/наложение по маске прямоугольной области экрана).
  • Количество видеостраниц ограничено только количеством страниц памяти (256 видеостраниц для режима 6912).
  • DMA, в т.ч. для устройств ZSD и NemoIDE (SD-Card и IDE), внутренних массивов чипсета.
  • Процессорный кэш, частично устраняющий проблему торможения при доступе к памяти на частоте 14МГц.
  • Виртуальный TR-DOS с использованием внешних устройств для хранения имеджей (SD-Card, IDE, RS-232).
  • Программируемые позиция INT (с точностью до такта 3,5МГц) и младший байт вектора прерываний IM2.
  • Банкинг для любого окна памяти по границе 16кБ (#0000, #4000, #8000, #C000).
  • Виртуальное ПЗУ.

Расширение порта #7FFD

Аппаратно регистра, хранящего значение, записанное в #7FFD нет. Вместо этого, для адресации страницы в окне CPU3 есть 8-битный регистр Page3, который линейно адресует страницы в диапазоне 0-255.

Биты LCK128[1:0] регистра MEMConfig выбирают 4 режима работы порта #7FFD:

  • 00 - 512кБ. Биты Page3: 0 0 0 d7 d6 d2 d1 d0.
  • 01 - 128кБ. Биты Page3: 0 0 0 0 0 d2 d1 d0.
  • 10 - 512/128к авто. Через OUT(#FD), a - 128k / OUT(C), r - 512k.
  • 11 - 1024кБ. Бит 5 перестает работать защелкой 48к. Биты Page3: 0 0 d5 d7 d6 d2 d1 d0.

Где:

  • биты в Page3 расположены: 7 6 5 4 3 2 1 0,
  • dN - бит шины данных в момент записи в порт #7FFD.

Контроллер маскируемого прерывания

В TS-Conf можно запрограммировать несколько источников маскируемого прерывания. Среди них:

  • - кадровый (frame, индекс 0),
  • - строчный (line, индекс 1),
  • - окончание DMA транзакции (dma, индекс 2).

Источник frame срабатывает, когда значение счетчиков растра совпадает с регистрами HSINT и VSINT. Источник line срабатывает в каждой строке, когда горизонтальный счетчик растра равен 0. Источник dma срабатывает после окончания любой транзакции DMA.

Каждый источник прерывания формирует сигнал ~INT и выставляет собственный байт D[7:0] на ШД в цикле ~IORQ || ~M1.

  • - $FF - кадровый,
  • - $FD - строчный,
  • - $FB - DMA.

В случае прихода нескольких событий одновременно, сначала обработается прерывание с меньшим индексом. При завершении ISR инструкциями EI : RET сразу произойдет обработка следующего по порядку ~INT, который разпознается в последнем машцикле инструкции RET.

Регистр конфигурации INTMask содержит биты разрешения индивидуального источника маскируемого прерывания, 0 - запрещен / 1 - разрешен. По ~RESET туда записывается значение $01: разрешен frame, все остальные запрещены. Если из ISR прерывания с меньшим приоритетом записать 0 в соответствующий бит маски источника прерывания, ожидающего в данный момент обработки, то произойдет его сброс и прерывание обработано не будет. Запись 1 не влияет на состояние ожидающего прерывания. Структура INTMask следующая:

  • бит 0, FRAME - разрешение источника frame,
  • бит 1, LINE - разрешение источника line,
  • бит 2, DMA - разрешение источника dma,
  • биты 3-7 - не используются, записывать 0.

Характеристики TSEvo Devboard Config

Характеристика TSEvo Devboard Config
Графический режим 16 цветов на точку Yes
Графический режим 256 цветов на точку Yes
Текстовый режим Yes
Аппаратные скроллеры графического окна Yes
Подгружаемый шрифт текстового режима Yes
Чтение шрифта текстового режима Yes
Память палитры Yes (256 байт)
Аналоговые цвета палитры Yes (64)
Чанковые и аналоговые цвета палитры Yes (15625)
Банкинг для всех окон памяти CPU0 - CPU3 Yes
Выбор произвольной страницы ПЗУ из текущего банка Yes
Выбор произвольного банка ПЗУ Yes
Установка защиты записи для ОЗУ в окне CPU0 (эмуляция ПЗУ) Yes
Режим "открытых" портов TR-DOS No
Аппаратный перехват обращений к портам TR-DOS Yes
DMA для обмена данными с ZSD, NemoIDE, или в режиме память-память (блиттер или очистка) Yes
Аппаратные спрайты Yes (3 плоскости, 85 спрайтов на строку)
Аппаратные тайлы Yes (2 плоскости, 4096 уникальных тайлов для каждой плоскости)
Кэш процессора Yes (256 слов 16 бит. Не учитывает изменений в ОЗУ, произведенных DMA, поэтому требует инвалидации при обращении к таким областям)
Программируемая позиция кадрового сигнала INT Yes (С точностью до такта 3.5МГц)
Контроллер маскируемого прерывания с приоритетизацией Yes
Источники INT Yes (3: кадровый, строчный, окончание DMA транзакции)
Программируемое значение шины данных в цикле подтверждения прерывания IM2 Yes
Генерация NMI по совпадению адреса в цикле М1 No
NMI в ОЗУ с запоминанием страницы, включенной в окно CPU0 No

См. также

Ссылки

Примечания

<references />

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты