За кунфу

Как-то так случилось, что я составлял ответ на форуме, но выросла целая портянка.

… ну, в общем, раздел Development с разбором TSconf растёт.
Понятно что по данным вещам особо не по флудишь, с другой стороны — очень малый фидбек, как для меня — автора.
Я понимаю, что тут нужно думать, и чаще проще спросить что-то конкретное в чате, но! Хотелось-бы вопросов, разборов тем. И думаю, это будет интересно всем.
Так как я знаю, какие вещи в тех мануалах слабо освещены, либо были поданы упрощённо.

А ведь я только учусь :)

В общем, по моему мнению, ситуация сейчас такова:

  • есть множество народу, которых интересует — как это сделано, какие возможности конфигурация предлагает, и нам интересно — как этим всем пользоваться. И я знаю, что мои статьи во многом не просто показывают — как пользоваться, но и приоткрывают возможности системы для личного изучения. Поэтому я и начал цикл статей, пусть и довольно долго внутренне готовился. И да, увы, но начальный уровень знания проца — нужен.
    Для меня интерес здесь следующий: я вижу нечто новое, с запуском эво стало интересно (спасибо рекламодателям! :1tooth: ), я погрузился в систему, начал чувствовать её абстракцию, и я ощутил внутреннюю философию. И я до сих пор вижу — система настолько нова, неизученна, система не имеет пока ещё стандартных, устоявшихся и известных всем подходов к программированию, способов использования своих возможностей. При этом я вижу, что новые подходы продолжают возникать.
    Изучать это оказалось просто великолепно. Об этом я цикл и веду, пусть пока и в довольно упрощённом виде — способы использования заложенных возможностей.
  • система устоялась, и я вижу что она внутренне замечательно связна и непротиворечива: возможности графики/производительности спроектированы довольно ровно относительно друг-друга. другими словами, менее абстрактно — использую все возможности системы мы можем получать не только 50 фпс.
    Итак, сейчас я бы сказал, что связность внутренней архитектуры на уровне 95% (наверное так ;) ), что — реально отлично. почему 95%?
    … недавно выяснилось, что таки есть определённые нелады, связанные с внутренней пропускной способностью при организации вывода в текстовом режиме при использовании TSU. Не смотря на то, что именно в данном случае система работает по не стандартным (относительно устоявшимся принципам организации адресования палитры для спрайтов), привычным принципам, я думаю что это можно таки отнести к особенностям системы и учитывать такой незапроектированный (и поэтому несвязный) подход. О чём я? о том, что при выводе спрайтов over text mode палитра для спрайтов будет использована из палитры, задействованной для текст-мода. Прошу TSL более подробно, технически, на этом остановится, ибо глюк поймал не я :agree:
    Но при этом — в остальном всё плотно обьединено общей философией организации. На самом деле — для меня это потрясающе. Спасибо, TSL.
    Что меня плотно убирает — так это продуманность и простота системы.
  • Система имеет внутреннюю философию. Я вижу как народ использует привычные для 128 подходы и потом жалуется на различного рода проблемы с работой системы. Господа! Используйте возможности конфы! Понятное дело, что юзать привычные, годами наработанные подходы удобно. Но не нужно опять придумывать велосипеды, TSL их приготовил с маслом :)
  • Конечно, конечно — давайте декранчить вместо использования кеша, конечно — давайте очищать ldir-ом вместо использования dma и т.д.No way, это не сюда. Не стоит замедлять процессор, пока система (завязанная на его командах) — проставивает. Увеличивайте производительность, умело используя денное железо.следующее достоинство — нас, кунфуистов, начали радостно принимать на пати. и народ уже просто ЖАЖДЕТ великолепных, мощных дем. Увы, интры народу надоели, а ведь хорошенькие были… особенно бриза… и буяна… ;) Парни, займёмся? :)



А теперь о минусах, которые мы имеем, увы.
  • в минусах у нас первое — это рекламодатель, создающий неприятный психологический фон.
    с этим бороться (я так думаю) невозможно, увы. Человек на зарплате, такая вот совесть, все дела; чел выполняет свои функции, примите как должное — минимум два thumbdown на пуете. и не парьтесь. увы, это нормально. да и зачем и о чём переживать.
    Мы разрабатываем новое.
    Увы, мне жаль что так происходит, но, увы, я не могу поменять этого человека. и вижу бессмысленность этих попыток. Принимаю это как дождь.
  • второе — молодость системы. Итак, оказывается, в общем и целом система была сформирована примерно в 2013 году. Два года?
    Я думаю, текущее положение дел просто ОТЛИЧНОЕ для разработки довольно небольшой группы энтузиастов, которые при этом постоянно получают ещё и факи в свой адрес :lol: .
  • третье — «относительно не высокая распространённость системы». Я специально взял эту строчку в кавычки.
  • Да, писать под эмуль — ну какой смысл, конечно. Вариант, наверное… Но давайте учтём, что самый массовый и самый удачный (по моему мнению) в продажах спек — ZX Evo (CHRV, огромное спасибо тебе!) — шьётся конфами, и, в последнее время — часто двумя сразу.Другими словами — железо есть. Железо работает. Железо развивается, пусть прошивка и достигла своего пикового состояния, как я думаю — предела, на данный момент.Вот оно, у меня под боком. И я на ней тестирую практически ВСЕ свои демы и прочее, перед тем как выложить на сайты. Ибо — это последняя инстанция.


Ну это было об общей ситуации.
Чем, по моему мнению стоит заняться МНЕ.
Думаю, что необходимо закончить цикл по базовым возможностям конфы. Не так много и осталось.
Кроме того, скорее всего, я выпущу статью о переносе/модификации игр под эту систему. Надеюсь, это будет интересно :)
И, опять-же, нужны примеры. Думаю, что разбор минимум одной демы вплоть до команд (либо — смысловым блокам) будет полезен.
Я надеюсь :)

И спасибо всем тем, кто — до меня, вместе со мною, да и, пусть, после меня — работает над развитием спектрума. Ибо — как я считаю — это оно и есть.

И отдельное спасибо MVV, dsp, palsw и другим ребятам (простите меня кого не указал, жаль что не все мы знакомы), которые заняты процессом переноса конфигурации на другие платформы.

PS. Прошу ни в коем случае не воспринимать мои материалы как «Вова огурел» и т.д. Це брыдко :) Я считаю полезным и нужным делиться с друзьями знаниями, которые получил в процессе исследований. И рад, когда узнаю неожиданные, интересные подходы к использованию нашего железа от друзей.

Всем спасибо :)

16 комментариев

avatar
Вова, спасибо что тащишь на себе такой большой проект. Да, так вышло, что тс-конфа у нас оказалась «спорной» платформой, по ряду причин, в чём-то объективных, в чём-то не очень. Извини, что мы (я) не вполне за тобой успеваем — довлеет груз других проектов. Хочу проговорить: то, что ты делаешь, важно. Я прочитал все статьи в твоей серии. К сожалению, нетривиальные вопросы/замечания/дополнения требуют намного более плотной работы с конфой, поэтому лично мне просто сложно спросить что-то нетупое.

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

А вообше, всё очень просто. Нужно делать нетривиальный проект на тс. Очень надеюсь в какой-то момент осилить.
avatar
все так мосчно
тока я не понял тут вообще о чем
avatar
добро пожаловать в наш клуб
avatar
introspec , Спасибо. Я не считаю что я «тащу» что-то, совершенно. Мне хочется делиться этим.
Тут скорее движение души, интерес к новому, к изучению, к тому что до сих пор не открыто и не изведанно.
Спек исходили полностью, и мы все знаем большинство входов и выходов, большинство приёмов использования — сейчас я говорю не за себя, за многих из нас. Спек изучен до корней, до микрокода ядра, до внутренностей ULA.
И при этом мы его продолжаем любить.

, я выложил своё понимание текущей ситуации на сцене с этой системой.
Дело в том, что я считаю так — система чрезвычайно интересна. Знаешь, когда я только начал воспринимать все возможности системы, я был очень воодушевлён открывающимися горизонтами, огромными просторами возможностей, которые МОЖНО использовать в своих демах и играх для Evo. А сейчас и не только для неё.

Об этом я и пишу, в общем :)
avatar
Nuts_ , вторая строчка тебе :)
avatar
VBI,
TSU овер текстмод работает, как задумано. Это не бага, а фича ©. Просто из-за обильной документации (на всех языках мира, в 25 томах) многие моменты остаются мутными.
Весь видеосигнал в системе формируется в таймингах ТВ. Это не позволяет вывести данный видеосигнал на ВГА монитор. Потому есть ВГА-даблер. Он сохраняет пиксели во внутреннем буфере, а затем выводит их на ВГА с двойной частотой по два раза. Таких буферов 2, один пишется, другой показывается. размер буфера 360 пикселей спектрумского (обычного, лоурез, low-res) разрешения. Поскольку выход палитры содержит 16 бит, а вход — 8 бит (256 ячеек по 16 бит — 32к цветов 5:5:5 и бит выбора таблицы), то для экономии выгоднее хранить вход, т.е. индексы цветов, а не готовый «труколор».
Схема такая:

И так оно работает во всех режимах, кроме текстмода (хайрез, hi-res), в котором пиксели «тоньше» в 2 раза и их следовательно 720, а не 360. Что делать? Запоминать в ВГА даблере вместо одного пикселя по 8 бит — два по 4. И тут уже схема другая:

Отсюда имеем процесс: если вывести графику TSU поверх текстмода, то получим, что в тех местах, где отображается пиксель тайла/спрайта он накроет 2 пикселя текста, попадет в буфер 2 раза, но при этом не будет содержать инфы, к какой палитре принадлежит. Палитра возьмется из того же селектора, что и текстмод.

Почему все так сложно? Потому что ЕР1К50 имеет 10 блоков памяти по 512 байт. Использованы они следующим образом:
2 — буфера ВГА даблера,
1 — палитровое ОЗУ,
1 — спрайтовое ОЗУ,
2 — оверлейные буфера TSU,
2 — буфера предвыборки тайлов,
1 — теги кеша,
1 — данные кеша,
Как можно видеть, если бы я сделал буфер даблера на 3 блока (как это, кстати, в бейзе), то было бы все труколор, но не было бы чего-то другого.
Такие дела.
avatar
TSU овер текстмод работает…

И надо заметить очень хорошо работает ;)

avatar
Я бы добавил спасибо рекламодателю, потому что 2 тумбдауна на пуэте, это НИЧТО по сравнению с нашей популярностью, которую он таким образом создает!

Еще, пользуясь трибуной, хочу выразить крик души: ааааааааааа не делайте из сабжа недоамигу! Идея была такая, чтоб Диззи бегал поверх 6912 ускорить эффекты обычного спектрума, сэкономить на лдпушах при помощи ДМА, ускорить проц кешом, добавить в 6912 необычных цветов и палитровых фефектов, упростить растровые эффекты при помощи двигаемого инта, упростить наконец страничную адресацию. Я хочу странного?.. =)
avatar
Я хочу странного?..

Ммм,… каждый др$@&*! т на что хочет (:
avatar
Идея была такая, чтоб ускорить эффекты обычного спектрума,…

Кстати пришла безумная идея, если так хочется ускорить обычный спектрум, как тогда насчёт DMA для флопика? ;)
avatar
DMA для флопика? ;)
Никак. ВГ93 внешнее ус-во на шине зетника.
avatar
Пичалька (:
avatar
Ну ежли барину угодна настоящая труЪшность, то могу добавить в ДМА бит сырых данных с дисковода (как в FDDripper-е). Будет настоящая Амига, где все именно так: декодированием флоподанных занимается центральнейший процессор, после приема оных по ДМА. :)
avatar
Я конечно извращенец, но не до такой же степени ;)
avatar
Я вижу как народ использует привычные для 128 подходы и потом жалуется на различного рода проблемы с работой системы.

VBI , я думаю было бы интересно сделать что-то на подобии этюдов в zx-ревю. То есть приводить краткие примеры: как быстро вывести спрайт, как поставить точку, как опросить PS/2 итд. Возможно тогда в комментариях появятся даже более оптимизированные процедуры ;)
avatar
«Этюды» — правильное направление или иже с ними..)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.