Блог проекта "The Goonies для БК11М"
БК-0011М, БК-0011М-01, SMK-512, AZ
Ну это, скажем, не метод Manwe, поскольку ему тыща лет уже (методу).
Но именно на БК с учётом PDP-адресации такой формат хранения и вывода самый оптимальный.
Разве что маска инвертирована, в отличие от привычного вида, поскольку вместо AND у PDP идёт BIC
И лучше работать сразу словами, а не байтами.
Однако, на БК я раньше ни разу не встречал такого метода, хотя по многим играм прошёлся отладчиком. Думаю, всё же первый пример такого применения – моя вариация Digger. Я даже больше скажу: у меня есть спрайты, которые вперемешку с пикселями хранят маску не для всего прямоугольника, а только для угловых байтов, и процедура вывода это учитывает.
manwe.pdp-11.ru
Странно даже... учитывая кучу перегнанных на БК со Спектрума игр - а на нем такой метод сплошь и рядом применяется.
Даже я, нубас полный в PDP, и то сразу написал подобный вывод, основываясь на спектрумовском прошлом, не рассматривая другие варианты.
Только выводил словами, а не байтами, но тут надо смотреть на занимаемую сдвигами спрайтов память. Если в наличии SMK-512, проблем нету.
Не особо странно. Есть два фактора:
1. Софт. Графические редакторы на БК, даже заточенные под рисование спрайтов, не работали специально с масками. Приходилось рисовать маску как обычный спрайт и сохранять отдельно. Поэтому и относились к маскам как к обычным отдельно лежащим спрайтам.
2. Семь индексных регистров процессора. Брать маску и спрайт из разных мест памяти не составляло проблемы, потому что регистров-указателей хватает с запасом.
Метод хранения маски и пикселей вперемешку даёт лишь два небольших преимущества:
1. Экономия на загрузке адреса маски (1 инструкция за всю процедуру вывода)
2. Экономия 1 регистра (не нужно делать PUSH и POP, хотя обычно их и так не делают)
manwe.pdp-11.ru
Да, у PDP в этом плане возможностей больше, чем у Z80. Предположу, что лежащие отдельно спрайт и маска выводились, по сути, тем же способом:
BIC (R1)+,(R3)
BIS (R2)+,(R3)+
Тут действительно доп. затраты лишь на один регистр, что при равнозначных регистрах несущественно. Z80 в этом плане ограничен, учитывая способы адресации.
Но работа со стеком у Z80 эффективнее других адресаций, поэтому там брали данные со стека, а так как проц восьмибитный, то извлекались сразу маска+спрайт.
С редакторами спрайтов и их форматами проблем тоже хватало, так что выкручивались, кто как умел =) Обычно рисовали экран со спрайтами, а оттуда дергали процедурами.
Жаль, но уважаемый form уничтожил свою страницу, посвященную играм на RT11 на которую ссылался в первом посте. Предполагал, что эта страница будет наоборот становиться больше. Похоже в сети больше нет страниц по RT11-играм.
Что написано в интернет, того не вырубить Delete.
"Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.
litwr (08.08.2022)
Уже есть тема с таким же названием. Модет быть переименовать эту в "игры с RT-11 на БК"?
manwe.pdp-11.ru
litwr (01.07.2023)
Добавил ещё несколько игр, всё тут , на двух загрузочных образах дисков.
AndyFox (06.09.2023)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)