#02 — И целого байта мало… | The Cross of Changes

    Честь по чести и часть за частью. Примерно так мы будем погружаться с вами в увлекательный мир демосцены. Сегодня поговорим о конкретной работе в области sizecoding. Дело в том, что некоторые релизы не только имели культовый статус в узких кругах — они прямо и явно воздействовали на умы людей, заставляя учить IDA Pro, смотреть код, проникать во все мельчайшие детали. Было просто непонятно и очень интересно, как же такая магия работает.

    Речь идет о cross by Queue Members Group — 128 байт интро для PC из далекого 1996 года:

    image

    Вот видеозапись работы:



    В двух словах, как деды воевали… После успеха Enlight'95 в FIDO-конференции DEMO.DESIGN был объявлен виртуальный конкурс на создание работ размером 128 байт для PC. Он шел несколько месяцев, организаторы собрали результаты, провели голосование и определили победителей. Весь архив релизов с Demo design'96 доступен на Pouet для ознакомления. Победителем оказался cross от Mad Max / Queue Members Group. Группа QMG — из Самары, на тот момент ребята были студентами одного из технических вузов, а сам Mad Max — лидером всей команды.

    Конкурс настолько «раскачал» молодые умы по всей стране, что организаторы Enlight'96 напечатали тираж футболок, где на спине была распечатка дампа cross. Вот несколько архивных фотографий:

    image

    image

    image

    И кадр из видеофильма про Enlight'96:

    image

    В марте 2020 года группа =RMDA= (которую я здесь официально представляю) успешно осуществила проект по цифровому сохранению / digital preservation этой исторической работы. Начали мы с создания видео… Да, банального видео, которое в последствии загрузили на YouTube. Ранее, на протяжении 25 лет видео-версии cross не существовало, и для просмотра требовалось мощное кунг-фу DosBox, которым далеко не каждый владеет.

    Далее мы собрали в единый архив все дополнительные материалы, включая исходный код cross. К сожалению, автор не опубликовал исходников в свое время, более того, с его слов, последние изменения в работу вовсе вносились в HEX-редакторе. Соответственно, исходный код ниже — это наш реверс оригинала с нашими комментариями:

    ; NASM or FASM
    
            org 100h
    
            mov bx,es
            add bh,10h              ; bx = cs + 1000h
            mov es,bx               ; es = segment behind 64k of our code (extra video buffer)
            mov ds,bx               ; ds = es
    
            xor ax,ax
            mov cx,ax
            dec cx                  ; cx = -1
            rep stosb               ; clear extra video buffer
            dec ax                  ; ax = -1
            mov di,0A2D0h           ; set pointer to pixel at 130,80 (col,row)
            mov cl,80
            rep stosw               ; fill 80*2 = 160 pixels by 0FFh color (draw horizontal line)
    
            mov bx,19A0h            ; set pointer to pixel at 20,160 (col,row)
    v:      mov [bx],ax             ; draw vertical line...
            add bx,320
            ja v                    ; ...until bottom
    
            mov ax,13h
            int 10h                 ; set 320x200 (256 colors) graphical video mode
    
            mov dx,3C8h
            xor al,al
            out dx,al               ; start palette set from 0 color
            inc dx
            mov cx,0C0h*3
            rep outsb               ; set first 0C0h (192) colors to black
    p:
            out dx,al               ; red component
            outsb                   ; green = 0
            outsb                   ; blue = 0
            inc ax                  ; increase color (1, 2, 3..63)
            cmp al,64
            jb p                    ; set colors 0C0h..0FFh to red gradient (from dark to saturated)
    
            mov ch,0A0h
            mov ds,cx               ; ds = 0A000h = vedeo segment
    
    l:      ; bx = pixel pointer, dx = pixel pointer delta value (initial values doesn't matter)
            cmp bh,0FAh
            jae s                   ; jump if current pixel is out of screen
            mov al,[bx]             ; else get color of pixel
            cmp al,0C0h
            jb s                    ; jump if pixel color is out of red gradient range (0C0h..0FFh)
    
            ; flame effect
            dec ax                  ; else decrase color by 1 (make it darker)
            mov [bx+1],al
            mov [bx-1],al
            mov [bx+320],al         ; di = 320
            mov [bx-320],al         ; and fill pixels around the current by new color
    
            mov si,-640             ; position delta: 2 lines up
            test dh,80h
            jnz n                   ; jump if dx is negative (poor pseudorandom boolean check)
            add si,2                ; wind effect
    n:      mov [bx+si],al          ; add pixel 2 lines higher than current pixel considering possible wind
    s:
            ; restore cross
            mov al,[es:bx]          ; get color from extra video buffer
            or [bx],al              ; replace pixel on screen by 0FFh is al = 0FFh (slow cross redraw)
            add bx,dx               ; increase pixel pointer by (pseudorandom) delta value
            inc dx                  ; increase delta value
    
            or bx,bx
            jnz l                   ; loop until full screen will be processed
    
            in al,60h               ; read keyboard scan code
            cmp al,1
            jnz l                   ; repeat if Esc key is not pressed
    
            mov al,3
            int 10h                 ; set text video mode
    
            ret                     ; return to DOS
    


    Ясное дело, что в процессе реверса кода в исходник наш ключевой программист на x86 загорелся идеей оптимизации. Так получился cross2 — он занимает больше на 1 байт (127 вместо 126), но все, что было оптимизировано, потрачено на текст и звук. Цвет мы поменяли на зеленый, чтобы вы визуально не путали эти работы:



    Никакой цели в глумлении над историческим наследием тут нет, просто любой sizecoding со временем может быть оптимизирован на несколько байт. Времени прошло изрядно, почти 30 лет, вот и оптимизация оказалась существенной — 20 байт (почти 16% от объема кода). Наша работа на один байт длиннее оригинала (в коде добавилось 13 байт текста, 6 байт кода для вывода, 2 байта на звук = 21, минус 1 байт разницы в размере).

    Собственно все! Исходник cross2 вы сможете найти в архиве на Pouet и наглядно сравнить его с оригиналом. Большая благодарность Петру [frog] Соболеву и Майку [Mad Max] Широбокову за консультации и материалы при разработке этого проекта.

    ---EOF---

    #FF — И целого байта мало… | Пилот)
    #00 — ИЦБМ… | Приглашение на Revision Online 2020
    #01 — ИЦБМ… | Какими бывают intro?
    #02 — ИЦБМ… | The Cross of Changes
    #03 — ИЦБМ… | 2B or not 2B
    #04 — ИЦБМ… | Берем БК за рога
    #05 — ИЦБМ… | Анимэ
    #06 — ИЦБМ… | Метеоризмы

    Развлекательный канал деда в Телеграм: teleg.run/bornded

    Рядом с каналом есть чат. В нем можно попробовать поднять вопросы за демосцену, ассемблер, пиксель-арт, трекерную музыку и другие аспекты процессы. Вам могут ответить либо отправят в другие, более тематические чаты.

    ТАК ПОБЕЖДАЛИ — ТАК ПОБЕДИМ!

    Комментарии 62

      –3
      Русские идут? ээээ
        +5
        Так может реально 640килобайт хватит всем?
          +1
          Реально хватает. Древний досовский комбайн NOS (вроде с UNIX корнями) — tcp/ip стек, http/ftp/smtp сервер — 200 кБ кода и довольно скромные запросы к ОЗУ (для сравнения, родной tcp/ip + smb стек в MSDOS отжирает 350 кБ нижней ОЗУ, т.е. больше половины).
            +3
            в том и дело и когда смотришь на гигагерцы, ядра и GPU не совсем понимаешь, как же деды то воевали и воевали успешно! Вон на Луну даже высадились…
              +12
              Просто нужно ввести обязательный тотальный рефакторинг для приложений, преодолевших планку в один ГигаПользователь — ведь один Ватт лишнего тепла, выделяемый в результате паразитной неоптимальной деятельности такого ПО — это один Гигаватт в глобальном масштабе.
                +2

                Если вы проехали на машине 10 километров, вы сожгли литр бензина и выделили примерно 50 мегаджоулей. Ваш сотовый телефон с 2 Ач выделит 28 килоджоулей за всё время работы батареи.


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

                  +3
                  Электрический чайник работает несколько минут в сутки (5-10-15, у кого как). 2 кВт * 0,25 ч = 0.5 кВт*ч в сутки.
                  Компьютер может работать по 12 часов в сутки (±). Допустим, по 200 Вт. Итого имеем 0,2 кВт * 12 ч = 2,4 кВт*ч в сутки.
                  Чайник вносит больше вклада?

                  От того, какой процессор у вас стоит, какая видеокарта, сколько памяти и пр., будет зависеть потребление энергии.
                  А теперь помножьте это на миллиарды компьютеров по всему миру.

                  Тут вопрос в другом: как проще. Для программиста, для компании-разработчика. А юзер… ну куда он денется? Адаптируется!
                  Сколько жрёт один только Chrome (и памяти и процессора) – это ж трэш просто!
                    +2

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


                    А вот если вы пройдёте пешком эти 10 километров, а не на машине, вы сэкономите на 100 лет вперёд этой дельты. Или если попьёте холодную воду вместо чая, тоже нехило так сэкономите (особенно летом). 2.4 кВтч это 8 МДж.


                    Ну и 200 Вт это довольно много для среднестатистического компьютера, на мой взгляд. Люди нынче пользуются ноутбуками, которые тянут считанные ватты на типовой нулевой нагрузке. 200 Вт это какой-нибудь варкрафтер, который с утра до ночи фармит голд. Но игры это дело такое, им сколько железа не дай, они будут просто больше треугольников рисовать.


                    Просто холодный чай пить и пешком ходить никто не хочет, а ругать программистов все горазды (:

                      +1
                      Приведённый пример с флешем вполне реален. Компьютер видеонаблюдения на первом квадкоре, купленном для платы захвата, не умеющей аппаратного сжатия. Стандартная загрузка процессора была около 30%. Вдруг жалуются — картинка стала фризиться. С платой захвата всё в порядке, с процессором и материнкой тоже, загрузка 30%. И так неделю. Фризы продолжаются. Оказалось, на компьютер с утра забегал менеджер, запускал в браузере аналог игры «Lines», выполненной на флеше, и сворачивал браузер. В итоге загрузка процессора выросла на 25%, т.е. одно ядро было на 100% занято отрисовкой флеша (шарики продолжали прыгать в фоне). В итоге перегрев процессора и троттлинг. Процессор по замерам потреблял лишних около 50 ватт.

                      Программистов ругаю тех, кто после своего топового компьютера не проверяет работу своего ПО на среднестатистическом, с 2-4 ГБ ОЗУ и древним скрипящим винчестером, загибающимся от постоянного своппинга. И да, среднестатистический компьютер легко потребляет 100-150-200 Ватт.

                      На настольном компьютере, с которого сейчас пишу, ватты действительно считанные. Настольный процессор со всроенным видео (в девичестве TDP 51 ВТ) при полной загрузке (gamemode on ;) потребляет 15-17 ватт, данный момент — 3-5.
                      В ноль да, оптимизировать не удалось, но офисную нагрузку неограниченно долго тянет с пассивным охлаждением. 15 Ватт в полном пассиве отвести не удалось даже крупным медным радиатором на пяти тепловых трубках, через 7 минут полной нагрузки температура процессора достигает 85℃.
                      Кстати, видео на youtube по умолчанию декодируется программно, несмотря на встроенную поддержку аппаратной декомпрессии h.264. Это лишние 5 Вт. Непорядок, поэтому прошу его предоставлять видео в правильном формате.
                      Чай пью горячим, да и Вы чай из холодной воды пить не станете.
                      Пешком ходить люблю, но предпочитаю велосипед. Фара питается от динамки.
                        +1
                        Подключил комп (с монитором) через измеритель нагрузки.
                        130-140 Вт без особой нагрузки (при открытом браузере).
                        160-170 Вт при запуске WinRAR.
                        200+ Вт при запуске стресс-теста.
                        Это при том, что у меня встроенная видеокарта, и я не играю.
                        У кого-то, кто много играет в игры либо занимается видеомонтажом, музыкой, 3D-графикой, будет далеко за 200 Вт в среднем.

                        Чайник тоже по 15 минут в день не у каждого работает. Это надо раза 4-5 кипятить воду (чтобы докипятить с 60 до 100 градусов нужно куда меньше времени, чем с 20 градусов).

                        Что касается дельты, то она вполне могла бы составлять 50 Вт, ну пусть 30. Умножаем 30*12 = 360-600 Вт, можно считать, что это как раз чайник :)

                        Ноутбуками ли пользуется большинство или десктопами – это нужно ещё исследовать. Чайниками тоже не каждый пользуется, а кто-то греет воду на газе.

                        А задумайтесь о том, что где-то стоят серверы. Тысячи процессоров, которые работают 24/7 и потребляют совершенно другое кол-во энергии. Какой-нибудь Amazon и т.п. Либо компания MS или Google с их штатом программистов, работающих на компьютерах.

                        Но суть не только в ваттах или джоулях. Мы же периодически обновляем компьютеры, причём не только процессоры и мат. платы, но и память, видеокарты, жёсткие диски, блоки питания, кулеры, флешки. Мобильники, ноутбуки, планшеты и пр. А это денежные затраты. Когда всё это начинает устаревать и тормозить, страдают ещё и нервы. И т.д.

                        Ещё раз: я понимаю прекрасно, что в условиях рыночной экономики процесс производства ПО требует оптимизации человека-часов и что бóльшую часть кода могут писать джуны и т.д. Но факт расточительства компьютерных ресурсов от этого никуда не девается. Реально ли дешевле поддерживать постоянно работающую систему из 1000 процессоров, чем нанять группу специалистов, которая оптимизирует код и сократит это число хотя бы до 900 процессоров при той же эффективности?
                        • НЛО прилетело и опубликовало эту надпись здесь
                      +2
                      Чайник кипятит поллитра воды двумя киловаттами за минуту, несколько раз в день. Холодный чай никому не нужен. 5 кипячений за день, допустим, 160 Вт.

                      Двухъядерный процессор, потребляющий 100 ватт в течение восьми часов ежедневно, отображающий веб-страницу с посторонней флеш-анимацией, при этом одно ядро занято только отрисовкой флеша. Флеш тоже был никому не нужен. 50 лишних ватт в течение восьми часов. Пример из недалёкого прошлого. Сейчас тотальное шифрование, которое тоже потребляет лишнюю энергию. На миллиардах устройств. Ежедневно.

                      p.s. Пока отвлёкся, уже ответили.
                        +3

                        Не совсем корректно считаете. Неоптимизированный телефон выделит 28 килоджоулей за время работы батареи (условные сутки), оптимизированный 25 килоджоулей к примеру. Согласно статистике Pew Research Center, на планете смартфонами (именно смартфонами, потому что есть еще и мобилки) пользуется 4.3 миллиарда человек. Получается в сутки — 12.9 гигаджоулей лишнего расхода. Или 3.5 МВт\ч. Или 4 месяца энергопотребления моего дома, где все на электричестве за один день. Излишков (!!!) энергии за 8 месяцев пользования смартфонами на планете, хватит для питания моего дома на ВОСЕМЬДЕСЯТ ЛЕТ.


                        В общем, одним смартфоном жизнь не ограничивается =)


                        P.S. как приятно, что много людей мыслит широко. Пока набирал текст — уже ответили

                        +3
                        да деды и слова такого не знали. Просто писали экстремальный код, который решает задачу оптимальнейшим образом. Сейчас, часто, писать такой код просто дорого — задачи, на которые раньше уходили недели, могут решаться за дни, но ценой потери производительности. Хотя есть много средств и оптимизировать свое творение за счет других умов. Но экономить гигагерцы и гигабайты в большинстве приложений все еще дорого. И навряд ли ситуация скоро изменится.

                        Ну и vsb тут был прав. Чайник — плохой пример, гораздо лучший — обычные автомобили, которые за пару часов своей работы нажирают десятки киловатт-часов — и это только полезной работы, не говоря уже о том, что в атмосферу они отправляют в 5 раз больше тепла. Или реактивные самолеты, которые жрут уже сотни киловатт полезной мощи на человека. А промышленность? А города?
                        И нет, это не значит, что не надо оптимизировать работу дата центров и других компьютеров. Надо в первую очередь уделять внимание более энергоемким отраслям. Это простая задача для оптимизации — одни и те же усилия приводят к разному результату. В ИТ оптимизировать что-то дорого, так как сфера сама по себе дорогая и наукоемкая. С другой стороны, внедрение технологий в другие сферы может привести к гораздо большей экономии, а оптимизировав их, уже будет выгоднее двигать и ИТ.
                        +1

                        У них не было AAA игр, и никому не нужна были оставшиеся от игр мощности

                        +1
                        Стесняюсь спросить а где можно посмотреть на «Древний досовский комбайн NOS»?
                      • НЛО прилетело и опубликовало эту надпись здесь
                          +1
                          вроде есть пара таких наркоманов — колибри и центос — могу ошибаться в названиях. Проблема в том, что демосцену не интересует вопрос ОС. Мы делаем все с нуля, каждый раз, нам не нужно API и все вот это. Загрузил код — выполнил = получил эффект.
                            +1
                            Ну не CentOS наверное все же, а Haiku/BeOS. CentOS — современный дистр линукса, репы на сотни гигабайт могут быть)
                              0
                              Ну я не помню точно названий — тут регулярно раз в год есть статья про эту ОС которую они уже лет 20 делают. Грузится с дискеты, на виндовс похожа.
                                +1
                                KolibriOS. Похожа на Windows только внешне, не совместима по API. Написана на асме, умещается на дискете вместе с приложениями. Вероятно, можно запихнуть в BIOS.
                                ReactOS очень похожа на XP, частично программно совместима, но крупнее, чем Kolibri.
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                КМК компиляторы под ПЛИС и являются в какой-то мере таким ИИ — большинство разработчиков не вникают, как происходит эта магия.
                                • НЛО прилетело и опубликовало эту надпись здесь
                              +1
                              Вы не упомянули кучку свежайших фреймворков, сертификаты, три слоя шифрования, антивирус и обязательное обновление всего этого, так что, боюсь, вариант esp32 без внешней ОЗУ отпадает сразу.

                              Если серьёзно, то довольно немалое количество взрослых ЧПУ станков всё ещё работает под ДОС, и будут работать, т.к. производитель не станет перерабатывать управляющие компьютеры, а стоимость нового станка выглядит так, как будто записана в бинарном виде.

                              Ещё загляните, например, на сайт wilke.de. Там продаются промышленные компьютеры под управлением многозадачного Бейсика. С кучей дополнительной периферии, тачскринами, и прочая и прочая. Цена 100 евро за младшую модель одноплатного компьютера с 512 кБ ОЗУ и 512 кБ ПЗУ не отпугивает клиентов.
                                +1
                                Если серьезно, то довольно много малого бизнеса в Европе и США до сих пор работает на… Commodore 64. В статье будет единственный пример, а на деле их очень много таких историй: https://emulate.su/2016/b-balans/

                                image
                                • НЛО прилетело и опубликовало эту надпись здесь
                                    0
                                    Для разных применений есть разные классы устройств. Каждое из них, с соответствующим ПО, уместно в своей нише и работает не в сферическом вакууме, а в инфраструктуре. К примеру, браузер — всего лишь клиент, он зависит от сервера и от контента. Если http отмирает, уступая https, то меняются требования не только к браузеру, но и к процессору, которому теперь нужно раз в год добавлять всё новые расширения и инструкции, чтобы наращивать его аппаратные возможности относительно шифрования, иначе драматически просядет производительность при введении очередного протокола.
                                    Растёт потребление оперативной памяти, при том, что никаких новых фич, заметных пользователю, не появляется.
                                    Это когда речь идёт об использовании интернет.

                                    «Простенькие» же чпу продолжают работать под дос, оставаясь при этом вполне промышленными и достаточно качественными/функциональными/производительными и по своему современными. И откуда, как не из Solid'а они берут модели, по Вашему? Но Solid'у достаточно меньших ресурсов, чем браузеру.
                                    А нелепым чпу станет если начнёт ломиться в веб, тратя на это ресурсов больше, чем на свою основную работу.

                                    п.с. Не переживайте, то чем я пользуюсь достаточно современно в моём понимании. А Вам я своего мнения не навязываю.
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                        +1
                                        Да, я активно использую устройство под дос, в том числе в режиме с 1 МБ ОЗУ (в режиме передачи файлов по ftp ).
                                        Нет, не 640 КБ, потому что используемое ПО использует расширитель дос, которому не хватает именно 640 КБ, а нужно около 700. Можно?
                                        ДА, я использую на этом компьютере планку памяти 1 ГБ, потому что, во первых, есть другие режимы работы ПО, которые могут продуктивно утилизировать дополнительное ОЗУ, а во-вторых найти планку so-dimm ddr2 объёмом 1 МБ я не смогу.

                                        Есть у меня устройство на 186 процессоре, которое активно использовалось в 2000-ых для трекинга транспорта. Не используется не потому что не справляется, а потому что отпала необходимость. Прошивка кастомная, на RTOS. ОЗУ на нём ЕМПИП 256 кБ, Общается со встроенным gps и передаёт через gprs на сервер. Если пороюсь в архивах, всё ещё могу собрать и модифицировать прошивку.

                                        Также я приводил ссылку не немцев, которые производят и успешно продают довольно востребованные одноплатные промышленные компьютеры на многозадачном Бейсике с кучей различной дополнительной периферии. С 512 кБ ОЗУ в маладших версиях. В 2000-х минимальная модель была построена на 8051 кристалле с 32к ЕМПИН.

                                        Считаю ли я, что современный софт зажрался и с этим нужно что-то делать? Определённо, да, и не только я.
                                        Считаю ли я, что оптимизация возможна? Определённо, да.
                                        Считаю ли я, что оптимизация обязательно состоится — к сожалению, нет.
                                        Считаю ли я, что все обязаны разделять мой взгляд на ситуацию? Нет. Все несогласные вправе поступать по-своему. Персональную индульгенцию предоставляю Вам лично.
                                        Спасибо за диалог, мне пора.
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                          0
                                          Да, я активно использую устройство под дос, в том числе в режиме с 1 МБ ОЗУ (в режиме передачи файлов по ftp ).
                                          Нет, не 640 КБ, потому что используемое ПО использует расширитель дос, которому не хватает именно 640 КБ, а нужно около 700. Можно?
                                          ДА, я использую на этом компьютере планку памяти 1 ГБ, потому что, во первых, есть другие режимы работы ПО, которые могут продуктивно утилизировать дополнительное ОЗУ, а во-вторых найти планку so-dimm ddr2 объёмом 1 МБ я не смогу.

                                          Есть у меня устройство на 186 процессоре, которое
                                    0
                                    Да, чуть не забыл.
                                    Kolibri — очень миниатюрная и невероятно быстрая операционная система. Её основной дистрибутив умещается на дискету (1,44 Мб) — и это при том, что содержит набор драйверов, браузер, текстовый процессор, графический редактор, просмотрщик, более 30 игр и другие программы.
                                  +2
                                  так точно!
                                    0
                                    Для автоматических задач, не требующих участия человека, хватит за глаза.
                                    +1
                                    cross by Queue Members Group — 128 байт интро для PC из далекого 1996 года:
                                    7D (126 байт). На футболке дамп отображён в виде таблицы 14*9 (поэтому прямоугольник без изъянов), в Far'е 16*8, но без двух (в заголовке окна также длина файла 126).

                                    Спасибо, интересно.
                                      +2
                                      все верно — работа в оригинале 126 байт, а сама номинация 128 байт
                                      наша новая cross2 тоже 126 байт чтобы соблюсти историческую достоверность
                                      +1
                                      в том и дело и когда смотришь на гигагерцы, ядра и GPU не совсем понимаешь, как же деды то воевали и воевали успешно! Вон на Луну даже высадились…


                                      Что вы хотите? Тогда программисты ПРОГРАММИРОВАЛИ! А воевали деды а не беспилотники.

                                      Я даже не спрашиваю когда кто из нынешних последний раз пользовался HEX-редактором. А просто интересно у кого он на машине есть?

                                      Вот кстати, был еще ежегодный конкурс на лучшую программу общим размером 1024 байта (.com файл). Помню, что один раз первую премию автору, запихнувшему в 1019 байт уровень Wolfenstein, как положено, с босом, тайниками и сменой оружия. И еще помнится — за почтовый клиент.
                                        +1
                                        Клиент аськи был на асме, 2,5 кБ. Лет пять назад ещё позволял получать сообщения, но не отправлять.
                                          0
                                          клиент IRC есть даже на Commodore 64 (1 мегагерц, 64 килобайта памяти)
                                            +1
                                            Возможно, но не icq, и не предпоследних версий, когда родной icq клиент стал весьма прожорлив, в том числе и благодаря постоянной смене протоколов.
                                          +3
                                          Я не очень хорошо понимаю, это ирония или нет, но интро успешно делают и по сей день. Демосцена сейчас сильна как никогда, на демопати съезжаются тысячи людей, и программисты показывают ещё больше новых классных интро. И все они понимают, что интро — это одно, а промышленное программирование — это совсем другое.
                                            –1
                                            промышленное программирование? это тот которое девочки на .NET делают? в том и дело, что все отлично понимают, что такое бизнес и что такое настоящий арт.
                                            +2
                                            У меня, пару месяцев назад даже пользовался. Но я ещё из динозавров, которые на 8битном ассемблере писали
                                              +2
                                              тут все такие, тут перепись тех кому за Z80
                                                +2
                                                А некоторым и вовсе за Д3-28.
                                              +2
                                              Я даже не спрашиваю когда кто из нынешних последний раз пользовался HEX-редактором

                                              редактором не так часто, а hexdump использую регулярно, последний раз вчера

                                                +1
                                                Несчитово.) Hex view встроен в FAR.
                                                  +1

                                                  ну именно в тот раз это было через ssh на raspberry. боюсь, что far тут не особо к месту )

                                                    +1
                                                    Платформа в исходном вопросе не уточнялась. HEX просмотрщики распространены явно шире, чем редакторы.
                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                +1
                                                А может все таки FORT тряхнет стариной?
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                  • НЛО прилетело и опубликовало эту надпись здесь
                                                    • НЛО прилетело и опубликовало эту надпись здесь
                                                        +2
                                                        Давно интересуюсь темой визуального программирования, в образовательных целях и для развлечения. Но чем больше я об этом думаю, тем больше понимаю, что визуальное программирование подходит только для конкретных и главное небольших задач, иначе оно превращается в спагетти код из коннекторов и блоков.
                                                        Кстати на demoscene существуют бесплатные системы для визуального программирования demo: Tooll2, CablesGL, Enigma 4, Werkzeug, Plasticator
                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                    +1
                                                    Тоже реверсил cross в 1996-ом, по итогам сделал эффект в 4kb-intro «Cindy» для БК 0010. Идея эффекта замечательная, респект МэдМаксу.

                                                    P.S. cross2 – прикольно, особенно звук.
                                                      0
                                                      Любопытно стало, однако видео нет :(

                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                  Самое читаемое