TS-Config — различия между версиями

Материал из SpeccyWiki
Перейти к: навигация, поиск
(Отмена правки 32199 участника Alone (обсуждение))
м (Updated)
 
(не показано 8 промежуточных версии 3 участников)
Строка 6: Строка 6:
 
*Наличие аппаратного видеопроцессора (TSU), обеспечивающего отображение тайлов и спрайтов поверх основной графики.
 
*Наличие аппаратного видеопроцессора (TSU), обеспечивающего отображение тайлов и спрайтов поверх основной графики.
 
*Дополнительные графические режимы 16 и 256 цветов на точку.
 
*Дополнительные графические режимы 16 и 256 цветов на точку.
*Палитра - 256 ячеек с выбором из 64/15625 оттенков.
+
*Палитра - 256 ячеек с выбором из 64/15625 оттенков (в оригинальной конфигурации) или 32768 оттенков (с платой разширения IDE Video-DAC).
*Текстовый режим с подгружаемым шрифтом.
+
*Текстовый режим с подгружаемым шрифтом (на одной странице).
 
*Блиттер (копирование/наложение по маске прямоугольной области экрана).
 
*Блиттер (копирование/наложение по маске прямоугольной области экрана).
 
*Количество видеостраниц ограничено только количеством страниц памяти (256 видеостраниц для режима 6912).
 
*Количество видеостраниц ограничено только количеством страниц памяти (256 видеостраниц для режима 6912).
Строка 13: Строка 13:
 
*Процессорный кэш, частично устраняющий проблему торможения при доступе к памяти на частоте 14МГц.
 
*Процессорный кэш, частично устраняющий проблему торможения при доступе к памяти на частоте 14МГц.
 
*Виртуальный TR-DOS с использованием внешних устройств для хранения имеджей (SD-Card, IDE, RS-232).
 
*Виртуальный TR-DOS с использованием внешних устройств для хранения имеджей (SD-Card, IDE, RS-232).
*Программируемые позиция INT (с точностью до такта 3,5МГц) и младший байт вектора прерываний IM2.
+
*Контроллер маскируемых прерываний с 3-мя источниками и индивидуальными векторами IM2.
 +
*Программируемая позиция кадрового маскируемого прерывания
 
*Банкинг для любого окна памяти по границе 16кБ (#0000, #4000, #8000, #C000).
 
*Банкинг для любого окна памяти по границе 16кБ (#0000, #4000, #8000, #C000).
 
*Виртуальное ПЗУ.
 
*Виртуальное ПЗУ.
  
== Расширение порта #7FFD ==
 
Аппаратно регистра, хранящего значение, записанное в #7FFD нет. Вместо этого, для адресации страницы в окне #C000 есть 8-битный регистр Page3, который линейно адресует страницы в диапазоне 0-255.
 
  
 +
== Расширение порта #7FFD ==
 
Биты LCK128[1:0] регистра MEMConfig выбирают 4 режима работы порта #7FFD:
 
Биты LCK128[1:0] регистра MEMConfig выбирают 4 режима работы порта #7FFD:
*00 - 512кБ. Биты Page3: 0 0 0 d7 d6 d2 d1 d0.
+
*00 - 512кБ. Номер страницы (в битовом представлении): 0 0 0 d7 d6 d2 d1 d0.
*01 - 128кБ. Биты Page3: 0 0 0 0 0 d2 d1 d0.
+
*01 - 128кБ. Номер страницы: 0 0 0 0 0 d2 d1 d0.
 
*10 - 512/128к авто. Через OUT (#FD) - 128k / OUT (C), r - 512k.
 
*10 - 512/128к авто. Через OUT (#FD) - 128k / OUT (C), r - 512k.
*11 - 1024кБ. Бит 5 перестает работать защелкой 48к. Биты Page3: 0 0 d5 d7 d6 d2 d1 d0.
+
*11 - 1024кБ. Бит 5 перестает работать защелкой 48к. Номер страницы: 0 0 d5 d7 d6 d2 d1 d0.
 
Где:
 
Где:
*биты в Page3 расположены: 7 6 5 4 3 2 1 0,
 
 
*dN - бит шины данных в момент записи в порт #7FFD.
 
*dN - бит шины данных в момент записи в порт #7FFD.
  
== Сравнение TS-Conf и Baseconf ==
+
 
{| class="wikitable" |align="center" cellpadding="5" cellspacing="0" border="1"
+
== Контроллер маскируемого прерывания ==
|align="center"|Аппаратная возможность
+
В TS-Conf можно запрограммировать несколько источников маскируемого прерывания. Среди них:
|align="center"|Baseconf
+
*- кадровый (frame, индекс 0),
|align="center"|TS-Conf
+
*- строчный (line, индекс 1),
|- align="left"
+
*- окончание DMA транзакции (dma, индекс 2).
|Графический режим 16 цветов на точку
+
 
|{{Yes}}<ref>Режим "EGA" компьютера ATM Turbo 2 и режим [[16col]] компьютера Pentagon 1024 SL 2.x</ref>
+
Источник frame срабатывает, когда значение счетчиков растра совпадает с регистрами HSINT и VSINT.
|{{Yes}}<ref>С линейной адресацией</ref>
+
Источник line срабатывает в каждой строке, когда горизонтальный счетчик растра равен 0.
|- align="left"
+
Источник dma срабатывает после окончания любой транзакции DMA.
|Графический режим 256 цветов на точку
+
 
|{{No}}
+
Каждый источник прерывания формирует сигнал ~INT и выставляет собственный байт D[7:0] на ШД в цикле ~IORQ || ~M1.
|{{Yes}}
+
*- $FF - кадровый,
|- align="left"
+
*- $FD - строчный,
|Текстовый режим
+
*- $FB - DMA.
|{{Yes}}<ref>Текстовый режим компьютера ATM Turbo 2 плюс дополнительный текстовый режим "всё в одной странице"</ref>
+
 
|{{Yes}}<ref>С линейной адресацией</ref>
+
В случае прихода нескольких событий одновременно, сначала обработается прерывание с меньшим индексом. При завершении ISR инструкциями EI : RET сразу произойдет обработка следующего по порядку ~INT, который разпознается в последнем машцикле инструкции RET.
|- align="left"
+
 
|Аппаратные скроллеры графического окна
+
Регистр конфигурации INTMask содержит биты разрешения индивидуального источника маскируемого прерывания, 0 - запрещен / 1 - разрешен. По ~RESET туда записывается значение $01: разрешен frame, все остальные запрещены. Если из ISR прерывания с меньшим приоритетом записать 0 в соответствующий бит маски источника прерывания, ожидающего в данный момент обработки, то произойдет его сброс и прерывание обработано не будет. Запись 1 не влияет на состояние ожидающего прерывания. Структура INTMask следующая:
|{{No}}
+
*бит 0, FRAME - разрешение источника frame,
|{{Yes}}
+
*бит 1, LINE - разрешение источника line,
|- align="left"
+
*бит 2, DMA - разрешение источника dma,
|Подгружаемый шрифт текстового режима
+
*биты 3-7 - не используются, записывать 0.
|{{Yes}}
+
 
|{{Yes}}
+
 
|- align="left"
+
== См. также ==
|Чтение шрифта текстового режима
+
*[http://www.retroleum.co.uk/v6z80p/ V6Z80P]
|{{Yes}}<ref>Специальными ухищрениями</ref>
+
*[http://zxpress.ru/article.php?id=8681 Будущее Спектрума - Видеоконтроллеры V9990. Расширение графических возможностей ZX Spectrum]
|{{Yes}}<ref>Из ОЗУ</ref>
+
*[http://zxpress.ru/book_articles.php?id=361 Видеопроцессор для ZX-Spectrum]
|- align="left"
+
|Количество ячеек палитры
+
|align="center"|16
+
|align="center"|256
+
|- align="left"
+
|Количество цветов палитры
+
|align="center"|64
+
|align="center"|15625<ref>Поскольку видео-ЦАП имеет разрядность 6 бит, используются аппаратные чанки с размером субпикселя 1/8. Режим совместим только с мониторами ЭЛТ (CRT). Без использования чанковых цветов, их количество - 64</ref>
+
|- align="left"
+
|Банкинг для всех окон памяти 16кБ
+
|{{Yes}}
+
|{{Yes}}
+
|- align="left"
+
|Включение ПЗУ в любое окно 16кБ
+
|{{Yes}}
+
|{{No}}
+
|- align="left"
+
|Выбор произвольного банка ПЗУ
+
|{{Yes}}
+
|{{Yes}}
+
|- align="left"
+
|Выбор произвольного набора банков ПЗУ
+
|{{Yes}}
+
|{{Yes}}<ref>Выбор набора из 4-х последовательных страниц (SYS, TR-DOS, Basic128, Basic48), начиная с произвольной, кратной 4</ref>
+
|- align="left"
+
|Выбор произвольного набора банков ОЗУ для эмуляции ПЗУ
+
|{{No}}
+
|{{Yes}}<ref>Аналогично предыдущему пункту</ref>
+
|- align="left"
+
|Установка защиты записи для ОЗУ в окне памяти
+
|{{No}}
+
|{{Yes}}
+
|- align="left"
+
|Режим "открытых" портов TR-DOS
+
|{{Yes}}
+
|{{No}}
+
|- align="left"
+
|Аппаратный перехват обращений к портам TR-DOS
+
|{{No}}
+
|{{Yes}}
+
|- align="left"
+
|DMA для обмена данными с Z-Controller
+
|{{No}}
+
|{{Yes}}
+
|- align="left"
+
|DMA для обмена данными с IDE
+
|{{No}}
+
|{{Yes}}
+
|- align="left"
+
|DMA с режимом блиттера
+
|{{No}}
+
|{{Yes}}
+
|- align="left"
+
|DMA с режимом затирания страниц 2-байтным кодом
+
|{{No}}
+
|{{Yes}}
+
|- align="left"
+
|Аппаратные спрайты
+
|{{No}}
+
|{{Yes}}<ref>3 плоскости, 85 спрайтов на строку</ref>
+
|- align="left"
+
|Аппаратные тайлы
+
|{{No}}
+
|{{Yes}}<ref>2 плоскости, 4096 уникальных тайлов для каждой плоскости</ref>
+
|- align="left"
+
|Кэш процессора
+
|{{Yes}}<ref>1 слово 16 бит</ref>
+
|{{Yes}}<ref>256 слов 16 бит. Не учитывает изменений в ОЗУ, произведенных DMA, поэтому требует инвалидации при обращении к таким областям.</ref>
+
|- align="left"
+
|- align="left"
+
|Программируемая позиция кадрового сигнала INT
+
|{{No}}
+
|{{Yes}}<ref>С точностью до такта 3.5МГц</ref>
+
|- align="left"
+
|Контроллер маскируемого прерывания с приоритетизацией и пулом векторов
+
|{{No}}
+
|{{Yes}}
+
|- align="left"
+
|Источники INT
+
|align="center"|1
+
|align="center"|3<ref>Кадровый, строчный, окончание DMA транзакции</ref>
+
|- align="left"
+
|Программируемое значение шины данных в цикле подтверждения прерывания IM2
+
|{{No}}
+
|{{Yes}}
+
|- align="left"
+
|Генерация NMI по совпадению адреса в цикле М1
+
|{{Yes}}
+
|{{No}}
+
|- align="left"
+
|NMI в ОЗУ с запоминанием страницы, включенной в #0000
+
|{{Yes}}
+
|{{No}}
+
|}
+
  
 
== Ссылки ==
 
== Ссылки ==
Строка 158: Строка 63:
 
*[https://zx-evo-fpga.googlecode.com/hg/pentevo Репозиторий с конфигурацией от TS-Labs]
 
*[https://zx-evo-fpga.googlecode.com/hg/pentevo Репозиторий с конфигурацией от TS-Labs]
  
== Сноски ==
+
== Примечания ==
 
<references />
 
<references />
  
 
[[Категория:Железо]]
 
[[Категория:Железо]]

Текущая версия на 12:16, 12 января 2015

TS Tech Demo by r0bat

TS-Config (TS-Conf) - конфигурация для компьютера-конструктора ZX Evolution, разработанная TS-Labs.

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

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


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

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

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

Где:

  • 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.


См. также

Ссылки

Примечания

  1. Также не предусмотрена совместимость с советским клоном ZX Spectrum АТМ турбо ни в каких его расширениях.
  2. Поддерживаются транзакции только по четным адресам ОЗУ, длина транзакции кратна 2 байтам.