Загрузка на «Спектруме»
Примерно три года моего детства были отданы компьютеру «Спектрум», с ним я проводил подавляющую часть своего свободного времени — играл, программировал, перепаивал. Игры хранились на обычных аудиокассетах (позже появились модели с дисководами, но не у меня) и средняя игра загружалась около пяти минут.
Мощи́ у компьютера хватало лишь на небольшое разрешение 256×192, пиксели были по современным меркам чудовищной величины и чтобы их ещё больше не растягивать, но сделать экран зрительно больше, создатели «Спектрума» сделали вокруг экрана специальную одноцветную область «бордюра» — используя 254-й порт ей можно было задавать один из небольшого набора цветов.
Если менять цвета достаточно быстро, в области бордюра появлялись разноцветные полосы — развёртка не поспевала за обновлением видопамяти. Встроенное ПО использовало этот эффект, чтобы оживлять процесс загрузки — пять минут можно было пялиться не только на заставку игры, но и на разноцветные полосы.
Разработчики игр и скучающие хакеры приделывали к играм собственный загрузчик, который после старта брал на себя процесс дальнейшей загрузки и менял цвета полос, их количество, ширину и прочее. Реже встречались такие, которые умели как-нибудь замысловато грузить заставку — стандартный грузил её сразу в видеопамять, без затей.
Это забытый сейчас уже вид искусства, требовавший от создателя, как фантазии, так и мастерства программирования на ассемблере из-за необходимости выдерживать тайминги.
Мы с братишкой тоже поучаствовали в общем безумии — приделали к игре «Ливингстон, я полагаю?», которая на скриншоте, загрузчик собственного изготовления, помню моя была идея и графика, а братишка больше программировал.
Не помню трогали ли мы область бордюра, скорее да, чем нет, но что точно помню — мы тогда сделали загрузку заставки «змейкой», а после подключалась анимация — Ливингстон в гамаке качал ножкой, а птица (не помню какая из двух) махала крыльями.
Из-за обилия спецэффектов не хватало регистров, пришлось даже использовать ассемблерную команду EXX, позволявшую использовать второй набор регистров. В таких условиях тайминги выдержать было очень тяжело и загрузчик получился не очень-то стабильным — скачок напряжения сети не отфильтровывался нашим магнитофоном «Весна» и нередко рвал процесс загрузки, но мы всё равно были довольны результатом.
Недавно разговаривали с братишкой на эту тему, с удовольствием вспоминали то время.
Любопытно было бы взглянуть на тот загрузчик сейчас, но боюсь очень мало шансов, что где-то могла уцелеть кассета с этой модифицированной игрой. Скорее всего наши труды растворились в шуме Вселенной.
Бордюр был не для этого. Он сделан для учета особенностей работы электронно-лучевой трубки, так как точно вывести пиксели в углу телевизора было тогда практически невозможно.
А так то я видел и картинки на бордюре рисовали, с учетом таймингов.
Не припомню других распространённых компьютеров с такой площадью бордюра.
Картинки? Гм, что-то сомневаюсь. Неподвижные полосы делали, как продолжение того, что на экране нарисовано — это да.
С такой может и нет, но у всех, кто работал с телевизором, поля по краям экрана были.
Вот тут все фотографии с бордюрами
https://en.wikipedia.org/wiki/Home_computer
С другой стороны, приставки игровые как-то с overscan научились работать же.
Так что тут двоякое скорее всего решение. И имитация увеличения области экрана, и работа с особенностями ЭЛТ.
на хабре статья недавно была https://habr.com/post/256409/
на портативных приставках много и фантазии и ассемблера встречается.
Статья интересная, но я имел ввиду этот конкретный вид — модифицированные загрузчики с кассет для Спектрума.
Делали и подвижные https://youtu.be/dl3wWxJmIZw?t=2m33s
Но в целом да — особо не развернёшься — разрешение бордюра по ширине — не менее 24 пикселей https://zxpress.ru/article.php?id=1733
Сатанизм ))) Сомневаюсь только, что так можно рисовать во время загрузки.
Из интересного — делал как-то интересно __звучащий__ загрузчик: после какого-то момента звук постепенно ускорялся, а потом и вообще переходил в мелодию (то ли двух, то ли трёхголосую), а потому продолжался как ни в чём не бывало. Скопировать такое ни один стандартный копировщик не мог, естественно.
Секрет был прост — после «какого-то момента» загрузчик считал и пропускал известное число переходов через ноль и продолжал загрузку; кажется, ещё были несколько незначимых нулевых бит после — чтоб при не очень большой ошибке в счёте было можно продолжить загрузку.
Внешне же загрузчик выглядел обычно и на время музыки простом мигал экраном как обычно бывало в отсутствии сигнала — как будто это просто обычная загрузка, только вместо пилот-тона — музыка.
Хм… кажется я что-то такое тоже встречал, впрочем это может быть ложная память, столько лет прошло…
Есть ещё не равный нулю шанс, что я уже про это писал — может быть даже в прошлой версии этого блога.
Возможно, сейчас уже и не упомнишь. Но все комментарии перенесены.