Помню свой первый бинарь, скомпиленный из ассемблерного кода. Не было ни генеративных моделей, ни большого количества инструкций для чайников в сети. Вот эта книжка давала реально много полезной информации:
Вспоминаются уже смутно прерывания... int10h, всякие там функции эффективного скроллинга экранного буфера, копирования кусков памяти, переключения графических режимов... Страшный геморрой с VESA-режимами, и уютненький 320х200 палитровый 8 бит. Помню алгоритмы Брезенхема, которые приходилось городить для скорости, вручную написанные на асме реализации сортировок, первые попытки соорудить что-то похожее на вирус, головоломная отладка, тесные регистры, страницы памяти, уютные 64 килобайта, доступные в com без заморочек, структура PE-заголовка, зубодробительные РГЗ от профессора Корсунова, первые эксперименты с графикой, самопальные демки...
Вот знаете какой эффект получается, если рисовать на экране много-премного полупрозрачных ортогональных прямоугольников? А если гонять по экрану линии, у которых концы задаются координатами из разных тригонометрических функций? Это была какая-то магия, когда у тебя получается крохотный бинарник, который работает и что-то эдакое изображает на экране, штатно выключается по горячим клавишам и даже содержит пару пасхалок!
Эх, вот же было время! Сейчас такого уже нет. Сейчас детвора на младших курсах с помощью ИИшек может горы свернуть. Тогда мы программировали мозгами, иногда на бумажке. Код на ассемблере писали в простом текстовом редакторе в FARе, а компилировали макро-ассемблером в командной строке.
О. а первые мои ассемблерные строчки кода вообще были вставками в программу на Q-Basic, когда я ещё в школе учился. Это был единственный способ быстро скроллить кусок экрана в текстовом режиме на компе с 640кб оперативы и 8088 процессором. Если чистить и перерисовывать принтами в бейсике, то перерисовка занимала секунды, а int10h, если не изменяет память, позволяла одной из своих функций скроллить мгновенно, как в текстовом редакторе Lexicon, например. Как же здорово, что мне попался такой замечательный наставник и он подогнал мне такую замечательную книжку:
А вот эта книга была моей первой книгой про компьютеры:
Я до сих пор помню её запах! И запах первых моих пятидюймовых дискет.
А ещё я помню здоровенный "гроссбух" - руководство по MS DOS, которое я читал просто как настольную книгу впитывая команды и их логику, когда отведённый родителями час за стареньким XT-шкой заканчивался, а тяга к знаниям и технике нет. Где сейчас этот справочник? Он толщиной был сантиметра два и формата больше чем А4. Убить можно, даром что в мягком переплете.
Какой же страшный информационный вакуум тогда был!
Хотелось делать всякое, а возможностей и информации не хватало! Чего стоило рисование по координатам анимации, записывание команд на LOGO, и ввод всего этого на школьных электониках...
Потом был первый пентиум, 95-винда, Q-Basic, QuickBasic, Visual Basic, Turbo Pascal и первые попытки сделать GUI типа Turbo Vision, потом первые попытки соорудить графический 3д-движок, потом вычитанная где-то инфа про афинные преобразования... Кватернионы и матрицы - это было так красиво и элегантно! Хотелось изобретать свои форматы пердставления 3д-данных, написать свои реализации алгоритмов Гуро и Фонга, первые попытки текстурировать полигоны... потом как чертов снег на голову прилетел OpenGL с пониманием тщетности и полной никчемности всех потуг написать свой игровой 3д-движок. Я чуть не сдался из-за огромных возможностей и порога вхождения. Слишком большой скачок.
Удивительное было время. Но сейчас ещё удивительнее. Мог бы я тогда представить, что будет какие-то 20 лет спустя?!
Охренеть, если задуматься, так-то...