Закольцованный экран без края?
снова смысловые галлюцинации? где там было сказано, что ЭКРАН?

Закольцованный экран без края?
Ват зе… Прям слышно как трещит мой шаблон…
Я всё понял. Страшный ты человек, зря я с тобой связался…
Пацаны, бегите… :)))
Не паясничай. И ты еще смеешь обвинять меня в клоунаде…
  • avatar Raider
  • -1
Ты неправильно используешь слово «край». У закольцованной структуры нету краёв. У фрагментов же внутри такой структуры край считается по выходу за фрагмент.

Закольцованный экран без края?
Ват зе… Прям слышно как трещит мой шаблон...
Я всё понял. Страшный ты человек, зря я с тобой связался...
Пацаны, бегите… :)))
Вот напишешь формулу, и тогда сможешь смело встать у подножия пьедестала этого специалиста по извращениям)))
Я конечно видел много клоунады, но такую чтобы мой оппонент сначала что-то нарисовал или написал,
а потом, несмотря на четко нарисованные биты, заявил что я должен якобы представлять это не так (при том что написал/нарисовал — он всё вполне четко) — вот такую изворотливость я вижу впервые.
Клоунадой ты сейчас занимаешься. И нарисовано, и сказано было чётко: «c — столбцы». А то, что в этих битах непременно должны перебраться все комбинации — исключительно твои личные сексуальные фантазии. Я же ничего такого не утверждал.

Поздравляю. Ведь если уменьшить количество столбцов, уменьшится количество бит (или диапазон пересчета) и будет происходить регенерация не всех строк DRAM.
иииииишто? Кто сказал из религиозных авторитетов, что регенерация должна осуществляться именно чтением растра для отображения и никак иначе?

Дело в том что у тебя нарушена регенерация памяти и железо не рабочее. Дело в этом.
И пустым птицебольством «выше сказано, что могла усложниться схема регенерации» — не отделаешься.
Дурачок? Если нет, то прекращай включать дурачка. Даже в спектруме есть огромный промежуток в регенерации в 152 строки развёртки, почти полкадра. То есть достаточно делать один лишний доступ во время hblank, последовательно перебирая RAS от 0 до 127 — промежуток даже меньше получится. Можно даже применить для этого штатный счётчик строк видеоузла (но тогда на один hblank могут понадобиться два доступа, если промежуток в 184 строки слишком долгий).

Дело за малым, жду от тебя столбцовую раскладку адресов, такую чтобы работало.
Всё рабочее. Заканчивай клоунаду. От тебя жду формулу «коэффициента извратности перестановок»
  • avatar Raider
  • -1
Lethargeek
ПОЧЕМУ ОДНО ПЕРЕПУТЫВАНИЕ ТЫ СЧИТАЕШЬ ИЗВРАЩЁННЕЙ ДРУГОГО?
Ведь у тебя наверняка есть какие-то СЕРЬЁЗНЫЕ основания (раз уж ты такой серьёзный Непетросян))
Напиши, пожалуйста, нам здесь серьёзную формулу для вычисления
КОЭФФИЦИЕНТА ИЗВРАТНОСТИ
по заданной комбинации 14 неповторяющихся номеров!

Зигмунд Фрейд
  • avatar Raider
  • 1
Православный ассемблер на русском: PUSH и POP — ВСУНЬ, ВЫСУНЬ (И это лучше чем ПИХ, ВЫПИХ!)
  • avatar Raider
  • 1
А мне абсолютно норм! Вышел tsl, крикнул первую попавшуюся команду, и ушел в туман. Чего еще? Самое то, всё по закону жанра. По идее, он может еще где-то из-за кулис крикнуть: «прерывание вам всем в кернель!» После этого стреляет пушка и появляется VBI :)))
  • avatar Raider
  • -1
Нет, здесь факапчик-с у тебя приключился. Ты не подумал, что..

Я конечно видел много клоунады, но такую чтобы мой оппонент сначала что-то нарисовал или написал,
а потом, несмотря на четко нарисованные биты, заявил что я должен якобы представлять это не так (при том что написал/нарисовал — он всё вполне четко) — вот такую изворотливость я вижу впервые.
Поздравляю. Ведь если уменьшить количество столбцов, уменьшится количество бит (или диапазон пересчета) и будет происходить регенерация не всех строк DRAM.

И дело даже не в h7

Дело в том что у тебя нарушена регенерация памяти и железо не рабочее. Дело в этом.
И пустым птицебольством «выше сказано, что могла усложниться схема регенерации» — не отделаешься.

Дело за малым, жду от тебя столбцовую раскладку адресов, такую чтобы работало.
Приведи корректные биты адреса, идущие от контролера к DRAM 4116. Если это возможно в реальности, а не в диванных мечтах.
Чистка стеком применяется много где. Да хотя бы в той же Elite 1985 года. Но вот на пример именно копирования буфера, чтобы стеком и чтение, и запись осуществлялись, могу вспомнить только Wec le Mans от 1988
Инженеры не пользуются подобной терминологией, в электронике сложно представлять «средние». Именно этот образ мышления, терминология и форма выражения мысли поначалу вводит в полный ступор.
а при чём тут электроника? когда это нужно было представлять в ГЕОМЕТРИИ )))

Не удивительно, что я долгое время не мог ничего понять, у меня даже мысли не работают подобным извращенно-искривленным образом, чтобы я смог до такого додуматься. Смеялся я дооолго…
Ндаа… и эти люди раскритиковали Sinclair ZX Spectrum!
Нет, у ТЕБЯ они работают таким образом, если ты извращённо-искривлённый спектрум считаешь лучше. Это же именно на спектруме приходится извращаться для такой простой операции, как сдвиг по вертикали экранного адреса. Да и для вычисления по координатам самого адреса.

Соответствие | центр.пикс = край атр.
Ты неправильно используешь слово «край». У закольцованной структуры нету краёв. У фрагментов же внутри такой структуры край считается по выходу за фрагмент.

Lethargeek должен быть внесен в анналы спектрумистов как выдумщик
Если что, я не претендую на единоличное авторство))
Это всё результат одного давнего коллегиального обсуждения.

самого наибольшего hardware-извращения, какое только можно представить.
За сим нарекаю справедливо заслуженным титулом «хардварный Петросян».
Ладно, понимаю, со стороны софта у тебя мозги могли быть безнадёжно искривлённо-извращены многолетним программированием на спеке. Но вот с чего ты в hardware извращение усмотрел? Применяется ведь тот же самый приём, что в спектруме — перепутывание адресных линий. А теперь ВНИМАНИЕ, ВОПРОС: ПОЧЕМУ ОДНО ПЕРЕПУТЫВАНИЕ ТЫ СЧИТАЕШЬ ИЗВРАЩЁННЕЙ ДРУГОГО? Ведь у тебя наверняка есть какие-то СЕРЬЁЗНЫЕ основания (раз уж ты такой серьёзный Непетросян)) Напиши, пожалуйста, нам здесь серьёзную формулу для вычисления КОЭФФИЦИЕНТА ИЗВРАТНОСТИ по заданной комбинации 14 неповторяющихся номеров! :|
в общепринятом смысле «байты» (октеты) в адресе видеоконтроллера,
выставляемого на DRAM отсутствуют,
поскольку ША видео-адреса, будучи представленной выводами счётчиков,
не пересекается с микропроцессорной ША, вот такая для тебя шокирующая новость.
это для меня совсем не новость, представь себе

Однако говорить о старшей и младшей части адреса можно.
ну и к чему тогда пустая придирка выше? Чтобы только показать вумность?

14 бит, 2^14 = 16384.
У вас факапчик-с приключился с видеообластью объемом 16кб.
Нет, здесь факапчик-с у тебя приключился. Ты не подумал, что 16k нужно было бы для всех теоретических 64 столбцов, но столько даже в тв-строку не влезает с квадратным пикселем. 32 столбца как на спеке — 8k. А хочешь 320 пикселей в ширину, как на всех нормальных компах обычно — 10k. И то, что эта схема НЕ ДИКТУЕТ единственно возможную ширину экрана, как у Альтвассера — жирный ПЛЮС.

Тут еще один факапчик из-за банального незнания как регенерируется DRAM.
К сведению: tREF по даташиту MAX 2 ms. Бит h7 — половина высоты растра. Сколько это ms?
Нет, еще один факапчик тут опять у тебя из-за привычки очень выборочно читать. К сведению: выше сказано, что могла усложниться схема регенерации. И дело даже не в h7, а в том, что не перебираются все столбцы. Переделывать ничего не требуется, а достаточно 1-2 «лишних» чтений на строку растра, что практически процессор не замедляло бы (но, возможно привело бы к удорожанию изделий на пару фунтов, если бы не влезло в юлу).
Я сейчас не помню кто первым изобрёл копирование буфера в экран стеком. Но точно помню что это было раньше, что-то типа 1985 или 1986; думаю к 1989, которых не клали в экран стеком, просто уже увольняли по профнепригодности :)
  • avatar sq
  • 0
(Это шутка, если что!)
  • avatar sq
  • 1
Лёш, про стек наверное в 89 так же говорили) Команды PUSH и POP нужны для того, чтобы сохранять и восстанавливать значения! Не надо придумывать для них странное применение, зачем помещать стек в экранную область? ЕРЕСЬ СЖЕЧ!
@tsl, походу в этом треде жгут вообще поголовно все!

Пояснение для некодеров: DAA — это команда для коррекции нормальной арифметики в применении к числам в BCD представлении. Неважно, что это заклинание означает, но важно понимать, что это странная команда для немного странной вещи, узкоспециализированная. Всякий раз когда кодер придумывает какое-то применение для DAA вне BCD чисел, все остальные кодеры сбегаются в восхищении, чтобы выразить своё почтение и внести изобретателя на руках на Олимп.

Если ты всерьёз сейчас расскажешь, как применить DAA для ускорения вычисления адресов в экране спектрума, у тебя добавится много новых поклонников.
  • avatar Raider
  • -2
Поскольку атрибуты лежат в одном столбце с пикселями, то старший байт адреса один, то есть совпадают уже 6 бит.
Последний совпадающий бит найти можно, например, если начинать распределять байты от средней линии.

Инженеры не пользуются подобной терминологией, в электронике сложно представлять «средние». Именно этот образ мышления, терминология и форма выражения мысли поначалу вводит в полный ступор.

То есть центр столбца по высоте это младшие байты адреса для пикселей #7F и #80, соответствующих атрибутов — #00 и #FF.
Сдвиг от центра на пиксельную линию — #7E и #81 против тех же #00 и #FF.
Сдвиг на знакоместо — #77 и #88 против #01 и #FE. Совпадает старший бит младшего адреса.
Все 7 нужных совпадающих бит нашли.

Не удивительно, что я долгое время не мог ничего понять, у меня даже мысли не работают подобным извращенно-искривленным образом, чтобы я смог до такого додуматься. Смеялся я дооолго...
Ндаа… и эти люди раскритиковали Sinclair ZX Spectrum!

Объясняю, что тут такое придумано.
Lethargeek предлагает чтобы layout (адресация) была такой:


Address |  Type   |   Comm.
--------------------------------
#xx00    Attrs     Начало столбца из 256 байт, байт атрибутов   <--+
#xx01    Attrs     Следующий адрес атрибутов                       |
#xx02    Attrs     И так далее, байт атрибутов                     |
...                                                                | Соответствие
...                                                                | центр.пикс = край атр.
#xx7E    Pixels                                                    |
#xx7F    Pixels    <- Пиксель -1 по вертикали от центра         <--+

                                   --- условная линия разделяющая экран по высоте ------
                                   
#xx80    Pixels    <- Пиксель +1 по вертикали от центра         <--+
#xx81    Pixels                                                    |
                                                                   |
...                                                                |
#xxFD    Attrs                                                     |
#xxFE    Attrs    Предпоследний байт в столбце, байт атрибутов     |
#xxFF    Attrs    Последний байт в столбце, байт атрибутов      <--+


То есть, в центре столбцов — пиксели, а по краям столбца сверху и снизу атрибуты.
При этом лежащие ближе к центру столбца (по-вертикали) байты пикселей соответствуют атрибутам ближе краю (по-вертикали) экрана.
Т.е. в начале адресов #xx00..#xx0F лежат атрибуты, далее с адреса #xx10 до адреса #xxEF идут пиксели, затем по адресам #xxF0..#xxFF снова лежат атрибуты.

Адресация такова:
двигаешься по пикселям вверх, адрес атрибутов спускается вниз.
двигаешься вниз, адрес атрибутов идёт вверх.
Высота экрана 224 строки (#E0).

Lethargeek должен быть внесен в анналы спектрумистов как выдумщик
самого наибольшего hardware-извращения, какое только можно представить.
За сим нарекаю справедливо заслуженным титулом «хардварный Петросян». :)))))
  • avatar Raider
  • -1
О байтах и «русском языке».
Я тут пару сообщений назад все хотел тебе сказать:
в общепринятом смысле «байты» (октеты) в адресе видеоконтроллера,
выставляемого на DRAM отсутствуют,
поскольку ША видео-адреса, будучи представленной выводами счётчиков,
не пересекается с микропроцессорной ША, вот такая для тебя шокирующая новость.
Однако говорить о старшей и младшей части адреса можно.

c13, с12, с11, с10, с9, с8, h7, v6, v5, v4, v3, v2, v1, v0


14 бит, 2^14 = 16384.
У вас факапчик-с приключился с видеообластью объемом 16кб.

RAS: c13, с12, с11, с10, с9, с8,h7


Тут еще один факапчик из-за банального незнания как регенерируется DRAM.
К сведению: tREF по даташиту MAX 2 ms. Бит h7 — половина высоты растра. Сколько это ms?
Сорян, придется всё переделать, чтобы заработало в реальности.

  • avatar aa-dav
  • 1
P.P.S.
Глянул документацию по SjASMPlus — и интуиция не подвела. Там есть для этих оптимизационных целей ключевое слово IFUSED. Прикольно, прикольно…
  • avatar aa-dav
  • 0
P.S.
И, кстати, по своим ощущениям — когда действительно этот мой библиотечный по духу код несколько вырос и я оценил просто как он при этом набухает байтами, то мне самому показалось, что без умения выкидывать неиспользованные функции, как полагается в ЯВУ, оно больше потом будет обременять в реальных вещах, чем помогать. Для асма вроде такая оптимизация не проходит, т.к. понятие функции слишком аморфно ведь.