Графические режимы TS-Config

Документация, FAQ-и

Postby Grey » Sat, 21.12.2013 09:23:07

Sergey78 wrote:При записи по нечетному адресу 2 байта пишутся в альтеропамять.

Сенкс - теперь понятно. Значит придется делать через буфер.
Grey
 
Posts: 104
Joined: Fri, 29.11.2013 15:58:02

Postby TS-Labs » Sat, 21.12.2013 17:53:43

Внутренняя память для палитры 16-битная, задать разные размеры шин для чтения и записи в этом чипе нельзя. Потому такой костыль.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby samanasuke » Fri, 05.09.2014 21:54:46

breeze wrote:Независимо задаются:- видео-режим (ZX, 16 цветов и 256 цветов, текстовый),- графическое разрешение экрана: 256x192, 320x200, 320x240 и 360x288.

Что-то не нашёл информации о спектрум совместимых режимах. К примеру раз уж режим и графическоге разрешение задаются независимо, то если выбрать видео режим 256x192 и графическое разрешение 16 цветов то где будет экранная область: с адреса #4000 или в экранном буфере задаваемом через переменную Vpage? И в обратной ситуации если выбрать режим ZX и экран 320x240 то где будет расположена экранная область?
Ещё интересует какие из функций можно использовать со стандартным экраном например для отображения дополнительной информации или расширения видимой площади экрана в программах за счет бордюра. Вроде бы где то слышал что можно спрайты выводить на бордюрной области, можно ли это использовать для увеличения экранной области?
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby VBI » Fri, 05.09.2014 22:03:43

отвечает грузь:
"- Что-то не нашёл информации о спектрум совместимых режимах. К примеру раз уж режим и графическоге разрешение задаются независимо, то если выбрать видео режим 256x192 и графическое разрешение 16 цветов то где будет экранная область: с адреса #4000 или в экранном буфере задаваемом через переменную Vpage? И в обратной ситуации если выбрать режим ZX и экран 320x240 то где будет расположена экранная область?

не путай разрешение и цветовую глубину. имеем либо папер/инк, либо 16 / 256 цветов. немного с терминами твоими я запутался
режим ZX - это 256х192, всё. и да, с №4000.
либо указываешь свою видео-страницу и с №с000, например. или как удобно - обращаться к страницам можно по адресам 0, 4000, 8000, с000.
по умолчанию VPage равно 00000101 - 5 банк.

в режиме ZX палитру можно задать свою.
да, по режиму ZX + 16цветов пусть уточнит TSL

- Ещё интересует какие из функций можно использовать со стандартным экраном например для отображения дополнительной информации или расширения видимой площади экрана в программах за счет бордюра.

если режим 256х192, то и видимый экран это 256х192.
но! у нас есть при этом 2 слоя тайлов и 3 спрайтов сверху :)

- Вроде бы где то слышал что можно спрайты выводить на бордюрной области, можно ли это использовать для увеличения экранной области?
не выйдет, область отображения ограничена окном вывода. я пробовал :)

короче, пишешь в VPage страницу, в VConfig разрешение/цветность, забрасываешь свою палитру и устанавливаешь значение PalSel.
В странице (что в VPage указана) - либо байт на точку, либо пол байта на точку.

надеюсь понятно
Last edited by VBI on Fri, 05.09.2014 22:16:14, edited 1 time in total.
User avatar
VBI
 
Posts: 1965
Joined: Mon, 03.06.2013 09:20:29

Postby samanasuke » Fri, 05.09.2014 22:15:04

То есть если я правильно понял то когда выбран ZX и 256х192 то на бордюре не получится выводить дополнительную информацию? (ну за исключением моргания бордюром при помощи процессора)
Жаль. А у меня были надежды.
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby samanasuke » Fri, 05.09.2014 23:52:17

А как же тогда вот это сделано?
https://www.youtube.com/watch?v=VyYwEZjjJGs#t=27

ЗЫ. Там оказывается в скролле все разъяснено, по прерыванию переключаются режимы экрана и таким образом получаются по вертикали две дополнительные области над спековским экраном и под ним. А льзя ли каким-нибудь нетривиальным способом задействовать еще и боковые области бордюра?
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby LessNick » Sat, 06.09.2014 00:47:20

samanasuke wrote:А льзя ли каким-нибудь нетривиальным способом задействовать еще и боковые области бордюра?


можно переставляя позицию инта на новое место. как например сделан эффект с шахматной доской тут:

Video from : youtube.com


инт переставляется каждый раз на новую строку(tsHsInt), и там вызывается смещение картинки по синусу оси X (tsGXoffsL, tsGXoffsH), но можно задать и вертикально — tsVsIntL.

А вообще настоятельно рекомендую ознакомится с моим «шедевром» — «tsconf.h.asm»
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby LessNick » Sat, 06.09.2014 00:59:03

Кстати забавно, если в бейсике выполнить команду

OUT (175), 192

то есть задать режим 360x288, но при этом включить графический режим ZX, получится забавная фигня :D

Image
(∩。•o•。)っ.゚☆。・ TS-Conf для PentEvo — это классический Pentagon 128k для тех кто хочет больше!
User avatar
LessNick
грей сашу — сашу грей
 
Posts: 975
Joined: Thu, 26.07.2012 15:00:53
WEBSITE: http://fishbone.untergrund.net/

Postby TS-Labs » Sat, 06.09.2014 01:58:38

А еще дунуть травы - обхохочешься :1tooth:
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby samanasuke » Sat, 06.09.2014 02:11:07

TS-Labs wrote:А еще дунуть травы - обхохочешься

спс, очень информативно.
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby TS-Labs » Sat, 06.09.2014 02:27:06

ОК. Отвечаю официально.
Режим ZX, он же 6912, рассчитан на работу только и исключительно с рамкой 256х192.
Другие рамки включать не запрещается, но ничего хорошего с этого поиметь не получится.
Почему?
Вопрошающему предлагается придумать формат адреса для графмода ZX, при котором:
а) сохранится совместимость с чудесной адресацией сэра Клайва, нашего Сиклайра,
б) будет больше, чем 256х192 пикселей на экране.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby samanasuke » Sat, 06.09.2014 03:21:43

Не-не-не, сэр, вопрос был задан абсолютно без претензиев.
Бриз привел наглядный пример тому что выходит ерунда, просто заинтересовали подробности тех процессов которые при этом происходят.
По скриншоту видно что экран 6912 уехал в левый верхний угол и (если я правильно понимаю) будет отображать из адреса #4000. Тогда (чисто теоретически) можно попробовать переключением графических режимов по ходу луча затемнить ту часть изображения которая повторяется справа и снизу. Конечно же это займёт полфрейма процессорного времени, но задачи бывают разные. Ещё не знаю как это можно использовать, но сам факт занимательный.
Впрочем, подозреваю что эти функции рассматриваются как "недокументированные" и в процессе развития конфы могут быть переиначены, да?
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby TS-Labs » Sat, 06.09.2014 04:05:40

samanasuke wrote:просто заинтересовали подробности тех процессов которые при этом происходят

Ну какие процессы происходят... Есть горизонтальные счетчики (инкрементятся по выборке из ОЗУ) и вертикальные (инкрементятся по новой строке). Из них набиваются адреса для разных графмодов. По горизонтали адрес идет 0-63 (графика/атрибут), переваливает за 64, а посколька в данном графмоде в адресе предусмотрено только 6 бит по горизонтали, то идет с нуля. По вертикали - же графика заваливается в область атрибутов, а сами атрибуты вообще чертикуда.
samanasuke wrote:можно попробовать переключением графических режимов по ходу луча затемнить ту часть изображения которая повторяется справа и снизу

Можно, есть бит отключающий графику, будет бордер вместо нее.
samanasuke wrote:Конечно же это займёт полфрейма процессорного времени

Отнюдь. Делай 3 раза ИНТ в кадре и потратишь ровно столько тактов, сколько надо для влета в ИМ2 и выполнения процедуры в нем. В остальное время можно делать другие полезные вещи.
samanasuke wrote:Впрочем, подозреваю что эти функции рассматриваются как "недокументированные" и в процессе развития конфы могут быть переиначены, да?

Ну именно 6912 бай дизайн ОНЛЫ 256х192. Для справки, даже поведение в анрыле и железе отличается.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby samanasuke » Sat, 06.09.2014 14:12:59

TS-Labs wrote:По вертикали - же графика заваливается в область атрибутов, а сами атрибуты вообще чертикуда.

Жаль. Значит буду пробовать в режиме 360х288 эмулить знакоместа. Боюсь могу не осилить.
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby TS-Labs » Sat, 06.09.2014 14:33:15

Потенциально можно по горизонтали расширить режим на следующие 8к (#4000/#6000), а по вертикали на смежную пагу.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby samanasuke » Sat, 06.09.2014 14:53:13

TS-Labs wrote:Вопрошающему предлагается придумать формат адреса для графмода ZX, при котором:
а) сохранится совместимость с чудесной адресацией сэра Клайва, нашего Сиклайра,
б) будет больше, чем 256х192 пикселей на экране.

Эээ... может и бред, но как вариант: аппаратно поместить 256х192 посреди 360х288. То есть не физически поместить, а что бы по ходу отрисовки экрана вместо бордюра выводилась данные из области указанной в Vpage, а сам экран брался из #4000. Получился бы экран 6912 окаймлённый расширенным экраном. Можно было бы писать софты которые будут работать и на простом спектруме 128 с обрезаным экраном, а на ТС конфе всё тоже самое только и обзор побольше и всяких полезных фишек на экране разместить можно (например миникарту, инвентарь прорисованный цветом на точку и т.п.) То есть такие вещи без которых можно было бы и обойтись, но которые создают больший комфорт. Совместимость с оригиналом можно поддерживать отключением опционально этих наворотов.
Кстати, обращения к порту #xxAF не может подвесить обычный 128 спек? По идее ведь нет?
И ещё, есть какой-нибудь способ программно детектить ТС конфу со 100% уверенностью что бы при загрузке программа могла сама конфигурироваться под железо?
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby samanasuke » Sat, 06.09.2014 14:57:18

TS-Labs wrote:Потенциально можно по горизонтали расширить режим на следующие 8к (#4000/#6000), а по вертикали на смежную пагу.

Я уже не помню точно, но вроде бы там системные переменные бэйсика, с загрузкой дискет конфликтов не будет?
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby dnik75 » Sat, 06.09.2014 15:08:23

А может всё таки не стоит извращаться над спековским экраном, а то опять котэ орать начнёт благим матом "Не трогайте экран Спеки" :D
Если что-то хочкшь сделать хорошо, сделай это сам :D
User avatar
dnik75
 
Posts: 171
Joined: Fri, 04.07.2014 19:41:26

Postby samanasuke » Sat, 06.09.2014 15:21:56

dnik75, присмотрись внимательно, все эти "извращения" обсуждаются с целью сохранить в неприкосновенности спековский экран, но при этом ещё и попользоваться последними достижениями научно-технического прогресса в области 360х288 и 16 цветов на точку (по желанию можно 256 цветов) плюс спрайты. И что бы в результате этот монстр (в хорошем смысле слова) всё ещё оставался спектрумом не только опционально.
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby dnik75 » Sat, 06.09.2014 17:55:38

То есть рисовать экран Спеки поверх экрана tsconf... Из главных минусов тока ещё один потребятор тактов рамы и LE.
Если что-то хочкшь сделать хорошо, сделай это сам :D
User avatar
dnik75
 
Posts: 171
Joined: Fri, 04.07.2014 19:41:26

Postby introspec » Sat, 06.09.2014 20:07:59

dnik75 wrote:То есть рисовать экран Спеки поверх экрана tsconf... Из главных минусов тока ещё один потребятор тактов рамы и LE.

В идеале, вообще-то, было бы показывать его между тайловыми слоями.
User avatar
introspec
 
Posts: 579
Joined: Sun, 14.07.2013 15:36:47

Postby TS-Labs » Sun, 07.09.2014 03:51:11

samanasuke wrote:как вариант: аппаратно поместить 256х192 посреди 360х288

Нет, слишком громоздко с т.з. аппаратной части.
samanasuke wrote:Кстати, обращения к порту #xxAF не может подвесить обычный 128 спек?

Не должон. Из известного железе пересекается только с DivIDE (один из регистров винта).
samanasuke wrote:И ещё, есть какой-нибудь способ программно детектить ТС конфу со 100% уверенностью что бы при загрузке программа могла сама конфигурироваться под железо?

Чтение регистра 0 (порт $00AF).
samanasuke wrote:Я уже не помню точно, но вроде бы там системные переменные бэйсика, с загрузкой дискет конфликтов не будет?

Разве что надо делать CLEAR 24575, стек очень низко для работы бейсиков.
introspec wrote:В идеале, вообще-то, было бы показывать его между тайловыми слоями.

"Между" не получится, мы уже обсуждали, изза того что в экране 6912 надо както оформлять прозрачность )
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby samanasuke » Sun, 07.09.2014 10:26:57

TS-Labs wrote:samanasuke писал(а):как вариант: аппаратно поместить 256х192 посреди 360х288
TS-Labs писал(а): Нет, слишком громоздко с т.з. аппаратной части.

Странно, я конечно нуб в этих плисах, но мне казалось что это должно быть просто, даже программно можно успевать переключать режимы дважды за строку. Ну нет, так нет. Полагаюсь на ваше мнение.
samanasuke
 
Posts: 11
Joined: Fri, 05.09.2014 21:34:55

Postby TS-Labs » Sun, 07.09.2014 10:49:38

Не, аппаратно все иначе. Долго объяснять, технически сделать можно, но выйдет конь педальный.
User avatar
TS-Labs
 
Posts: 5398
Joined: Thu, 26.07.2012 01:29:56

Postby MVV » Sun, 07.09.2014 10:49:55

samanasuke, да можно там все попробовать сделать, к примеру как полупрозрачные OSD в мониторах, только скорей всего это будет уже на другом железе :) Evo просто не тянет уже ничего :)
Last edited by MVV on Sun, 07.09.2014 10:51:40, edited 1 time in total.
MVV
 
Posts: 479
Joined: Sun, 01.12.2013 22:48:17

PreviousNext

Return to Manuals

Who is online

Users browsing this forum: No registered users and 1 guest

x