bash.im ithappens.me zadolba.li

Давным-давно

8885

Александр 5! Борис 7!

Дело было в начале девяностых. Сижу в ночную смену, чего-то там контролирую. Звонит друг из Крыма (он там сисадминил в каком-то крутом санатории) и стенает: «Хана диску — бут-сектор накрылся».

К счастью, был у него хекс-эдитор для харда. Началась голосовая передача бут-сектора по телефону из Донецка в Крым: я диктую — он вбивает… Трахались, наверное, с полчаса со скоростью передачи примерно 2,5 бод, но сектор восстановили.

8875

Флопсы загнивающего Запада

Начинал я на ЕС ЭВМ в ОС «Система виртуальных машин», она же VM/SP. Так вот, пользовательских исполняемых бинарников там не было вовсе. Была команда LOAD с ключом /START, которая грузила объектные модули, линковала и запускала на исполнение. При желании, конечно, можно было слинковаться и сохранить бинарник на диск (в терминологии СВМ оно называлось MODULE), но места на диске было откровенно жаль.

А теперь, как говорится, приз в студию. Загрузка всех объектных файлов реальной задачи и линковка на ЕС-1046 проходили быстрее, чем линковка «Hello world» на любом современном РС. А ведь сидел на ЕС-ке не я один, а целый учебный класс.

Прошло 25 лет, а я до сих пор не знаю, чем внутри персоналок занимаются эти хвалёные MIPS и TFLOPS. Но точно — совсем не моими задачами.

8873

Марсиане вызывают через прокси

Через полгода или чуть больше после запуска спутников «Ямал-200» мы заключили договор на оборудование и использование канала этого спутника. Привезли и поставили тарелку, привязались к координатам, посчитали угол местности, азимут, поляризацию, навели всё… Особо отчаянные даже инструкцию изучили. Включили.

На наземном пульте есть светодиод «SAT». Всё просто: если горит — есть и приём, и передача, моргает — есть только приём, не горит — нет ничего. Ну, как водится, лампочка не загорелась. Изначально нужно было поймать сигнал несущей (мерцающий светодиод). Начали крутить тарелку — по азимуту, по углу… После пары часов раздумий и настраиваний получили искомое мерцание. Звоню в Москву:

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

На что приёмник тогда отреагировал, узнать не удалось, но тарелка смотрела куда надо.

8796

Пожужжали — и спатеньки

21 марта 2012, 11:45

Рассказываю с чужих слов, но тем не менее. Самая шикарная система автоматического отключения питания стояла в одной конторе во времена оны.

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

8763

Идите индийским путём

В 1994-м подарили мне старенький «Агат». Подключил я его к телевизору «Рубин» и давай учиться программировать. Впрочем, программированием это было назвать нельзя — так, баловство. Команда GOTO встречалась чаще остальных, вместе взятых. Только потом я узнал, что это называется «спагетти».

Затем «Агат» был задвинут во встроенный шкаф. А недавно решил я ностальгию потешить — достать, пропылесосить и включить. Сказано — сделано. Заработало с полпинка. Теперь на видном месте стоит, включаю иногда.

Пока пылесосил, обратил внимание, что у компьютера в Индии сделан процессор, а у телевизора — кинескоп. А на полочке встроенного шкафа лежала пачка индийского чая, который я так любил пить за «Агатом».

И откуда столько GOTO?

8720

Кракозябры на экспорт

12 марта 2012, 08:00

Давно это было. Компьютеры были разные и преимущественно большие. Попались нам, молодым студентам-математикам, исходные тексты небезызвестного архиватора LHA. Лежали они на дискетке 3.5", но незадача заключалась в том, что компьютеры, доступные нам, вовсе не походили на PC, и кодировка русского языка там была весьма своеобразной.

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

Мельком решили поглядеть в соседние файлы. Рядышком лежал readme.eng, в котором была всего одна фраза, которая в одно мгновение и принесла нам облегчение, и расстроила нас. Смысл её был таков: к превеликому сожалению автора, файлик readme пока только на японском.

8693

SuperPuperAntiGame, или Гонка вооружений

В 1990 году поступил я в МВТУ им. Баумана и попутно устроился работать оператором в местный вычислительный центр под названием «Аквариум». Только-только появились первые персоналки, и к нам как раз завезли суперсовременные компьютеры IBM PC XT. Как водится, студенты сразу же вместо занятий стали на них играть.

Начальство поставило задачу игры запретить. Сначала пытались бороться словесно — не помогало. Тогда я решил бороться программно и взялся за изучение ассемблера. Через пару месяцев появился первый продукт под названием AntiGame. Программа резидентно висела в памяти, перехватывала запуск программ через функцию 4Bh 21 прерывания и имела базу сигнатур различных игр — просто читался кусок данных размером 32 байта из файла со смещением 1000h. Если запускаемая программа совпадала с одной из сигнатур, то считалась игрой. Запуск обрывался, в буфер клавиатуры посылалось echo y|del., проигрывалась веселая мелодия. Через месяц мелодию знали все.

Пару месяцев всё шло хорошо, база сигнатур пополнялась, студенты ходили злые и вынуждены были заниматься делом. Но тут группа студентов тоже села за ассемблер и через месяц хакнула мою программку. Хак быстро распространился среди посетителей «Аквариума», студенты снова стали довольные, играли повсеместно, а мелодии было не слышно. Отловив и изучив хак, я выяснил, что там тупо восстанавливался оригинальный вектор 21 прерывания, и моя программка обламывалась.

Покумекав, я взялся за клавиатуру. Спустя пару месяцев родился шедевр под названием SuperAntiGame. Это была шедевральная программа, написанная с использованием всех современных технологий, включая вирусные. Частично она даже использовала неизвестный тогда механизм «стелс», чем я до сих пор горжусь. Программа перехватывала 13 и 21 прерывания, причём не обычным способом, а путём внедрения в точки входа в области DOS, что делало бесполезным восстановление оригинальных векторов прерывания. В функциях поиска, открытия и записи файлов делалась проверка на имя файла antigame.exe и в случае совпадения возвращалась ошибка «File not found», так что ни один из «коммандеров» программу не видел. Также перехватывалось прерывание таймера 1Ch — на нём висела функция, постоянно проверяющая код в памяти. Если хотя бы один бит был изменён, то отключалась клавиатура, запускалась мелодия, флаг read only со всех файлов в текущем каталоге снимался, а в буфер клавиатуры отправлялось так любимое студентами echo y|del.. Помимо этого, там было ещё множество новаторских решений. Полный исходник занимал около 300 КБ текста, откомпилированный файл — 9 КБ.

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

Я, конечно, не питал иллюзий и знал, что рано или поздно это случится. К тому времени подходила к концу разработка бета-версии нового SuperPuperAntiGame, работающего в защищённом режиме только вышедшего тогда процессора 386SX, первые компьютеры с которым появились в нашем «Аквариуме».

Жаль, не удалось тогда довести задуманное до конца — увлёкся другим делом и AntiGame забросил. Но и сейчас, спустя два десятилетия, я вспоминаю эту гонку вооружений и думаю, какой же стимул для изучения программирования дала и сколько же талантливых программистов вырастила жажда игр.

8620

Меняю микроскоп на молоток

В те времена, «которые совсем не эти», когда компьютеры были на 486-х процессорах, а неразумное человечество ещё не изобрело ZIF-сокеты, удобнее всего устанавливать процессоры в разъёмы было методом «легонько тюк кулаком». Но тут в полный рост вставала проблема: процессоры иногда надо было из разъёмов извлекать.

Я перепробовал уйму способов и инструментов. Сжалившийся технический директор даже заказал за мегаденьги фирменные мегаклещи для извлечения процессоров. Былинный отказ: всё впустую, клещи оказались дико неудобными.

Так вот, опыт, сын ошибок трудных, показал, что самый удобный инструмент для извлечения процессоров — потёртая мельхиоровая чайная ложечка, которая всегда присутствовала в кружке с недопитым кофе рядом с монитором на рабочем столе. А фирменными четырёхгубочными клещами оказалось удобно открывать пивные бутылки.

8595

Ты можешь всё

В годы юности, поработав на стройках, я осуществил свою мечту, купив второй «пентиум» за 250 вечнозелёных (бешеные деньги в те времена). Прошло два года, мне стукнуло четырнадцать, и я решил почистить от пыли своего любимого зверька. Разобрал, продул пылесосом, собрал, включаю — пищит и не запускается, начинает кивать на оперативку. После многочисленных попыток сбора-разбора и запуска я решил осмотреть и заметил разодранные дорожки — видимо, когда кулер снимал, царапнул отвёрткой.

Расстроенный, я пошёл по магазинам, где мне радостно сообщали о смерти и предлагали купить новую маму. Денег у меня не было, и я, закурив, пошёл домой. Мысли о том, что ближайший год я проживу без Delta Force 2, не давали мне покоя. Выпив чаю после похода в магазины в 12-градусный мороз, я взял паяльник, тонкую проволоку и начал паять.

Комп жив по сей день, работая файл-сервером. Дорожки я паял толстым жалом обычного 40-ваттного паяльника. Расстояние между дорожками — 0,6–0,9 мм. Верьте в свои возможности, и всё у вас получится.