TS-Config — различия между версиями
Ts-labs (обсуждение | вклад) |
Ts-labs (обсуждение | вклад) м (Updated) |
||
(не показано 19 промежуточных версии 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). | ||
− | * | + | *Контроллер маскируемых прерываний с 3-мя источниками и индивидуальными векторами IM2. |
+ | *Программируемая позиция кадрового маскируемого прерывания | ||
*Банкинг для любого окна памяти по границе 16кБ (#0000, #4000, #8000, #C000). | *Банкинг для любого окна памяти по границе 16кБ (#0000, #4000, #8000, #C000). | ||
*Виртуальное ПЗУ. | *Виртуальное ПЗУ. | ||
− | |||
− | |||
+ | == Расширение порта #7FFD == | ||
Биты LCK128[1:0] регистра MEMConfig выбирают 4 режима работы порта #7FFD: | Биты LCK128[1:0] регистра MEMConfig выбирают 4 режима работы порта #7FFD: | ||
− | *00 - 512кБ. | + | *00 - 512кБ. Номер страницы (в битовом представлении): 0 0 0 d7 d6 d2 d1 d0. |
− | *01 - 128кБ. | + | *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к. | + | *11 - 1024кБ. Бит 5 перестает работать защелкой 48к. Номер страницы: 0 0 d5 d7 d6 d2 d1 d0. |
Где: | Где: | ||
− | |||
*dN - бит шины данных в момент записи в порт #7FFD. | *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. | |
− | + | ||
− | + | ||
− | + | == См. также == | |
− | + | *[http://www.retroleum.co.uk/v6z80p/ V6Z80P] | |
− | + | *[http://zxpress.ru/article.php?id=8681 Будущее Спектрума - Видеоконтроллеры V9990. Расширение графических возможностей ZX Spectrum] | |
− | + | *[http://zxpress.ru/book_articles.php?id=361 Видеопроцессор для ZX-Spectrum] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | | | + | |
− | | | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
== Ссылки == | == Ссылки == | ||
Строка 150: | Строка 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-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.
См. также
- V6Z80P
- Будущее Спектрума - Видеоконтроллеры V9990. Расширение графических возможностей ZX Spectrum
- Видеопроцессор для ZX-Spectrum