TreeOS. 16-битная рождественская демка в загрузочном секторе
5 мин

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

Киберкультура





Всем привет,
Демо-сцена существует очень давно. Зачастую в процессе разработки очередной крутой демки приходится изобретать крутые алгоритмы: как для красивых анимаций и трекерной музыки, так и для кода. Иногда код получается большого объёма, поэтому его требуется сжать.
Понятно, что можно взять любой доступный алгоритм сжатия и использовать его у себя, но не существовало бы сейчас такого огромного количества различных упаковщиков, если бы всем хватало одного единственного алгоритма. Кому-то не нравится скорость работы, кому-то — качество сжатия, вот и изобретаются всё новые и новые алгоритмы. Одним из них и стал PowerPacker, исходные коды которого хотели получить многие, но удалось только мне.

Запощенный в 2015 г. перевод «Новый графический режим: CGA в 1024 цвета» меня сильно впечатлил, но из него я так и не понял до конца, как этот трюк работает, потому что статья написана профессионалом в области ретро-компьютерной графики, и предполагает, что читатель уже имеет некоторые познания в этой области. Хотя у моего первого компьютера («Поиск» — советский клон IBM PC/XT) и был CGA, но мониторы с композитным входом я не застал, так что мне пришлось гуглить и разбираться, как же композитное видео было устроено. Для тех, кому тоже интересно «нутро» технологий 1981 г., в которых в 2015 г. обнаружились неожиданные недокументированные возможности, я собрал воедино найденный мной материал.










pentagra.com за подписью Mcm, 128 байт, последнее изменение 24.09.1996 18:10:14, шестнадцатеричный дамп:000000: b0 13 cd 10 68 00 a0 07 06 1f ac ba c8 03 ee 42
000010: b1 40 ee 40 6e 6e e2 fa b8 3f 3f bb 40 01 bf 40
000020: 05 57 b1 78 ab 03 fb e2 fb 5f b1 60 88 01 aa 03
000030: fb 03 fb e2 f7 b1 61 88 01 aa 2b fb 2b fb e2 f7
000040: bf d1 99 57 b1 78 ab 2b fb e2 fb 5f b1 8f f3 ab
000050: 81 fe 00 fa 73 12 ac 0a c0 74 0d 48 88 44 fe 88
000060: 04 88 40 ff 88 84 bf fe 03 f2 42 75 e3 e4 60 3c
000070: 01 75 a5 b8 03 00 cd 10 c3 00 00 00 00 4d 63 6d