bash.im ithappens.me zadolba.li

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

10823

В тютельку

10 апреля 2013, 07:15

В 1992 году прокладывали мы сети во всех московских загсах. Ещё не Ethernet и даже не ARCnet. Потом несколько месяцев, где бы я ни шёл, фиксировал боковым зрением все проложенные кабели и ошибки монтажа.

Пришлось просверлить немало стен. Тогда о перфораторах почти никто не слышал, и была у нас обычная дрель со сделанным на заводе по знакомству метровым сверлом.

Очередной загс, дом в старом фонде. Сверлю очередную стену. С другой стороны у стены стоит только платяной шкаф, остальная стена голая. Загнал в стену своё метровое сверло полностью — с другой стороны ничего не показалось. Ну, я же опытный (уже пятый загс) — понимаю, что попал в шкаф. Открываю шкаф — ничего. Вынимаю все вещи — пусто. Сверло нигде не торчит. Ничего себе стена! Значит, надо обходить по коридору. На всякий случай заглядываю за шкаф в узкую щель — и вижу сверло, уходящее в шкаф! Сверло диаметром 10 мм попало точно в боковую стенку шкафа толщиной 10 мм и прошло по ней вдоль сантиметров пятнадцать, не высунувшись ни изнутри шкафа, ни снаружи. По бокам отверстия остался только слой шпона. А перед этим сверло прошло через кирпичную стену сантиметров шестьдесят.

Чудеса бывают. Только поганые.

10812

Вирусы рубят — ошмётки летят

Давным-давно всё запускалось из командной строки. Вот девушка-оператор попыталась открыть редактор, но где-то ошиблась, и программа не запустилась. Девушка без всяких сомнений начала свою работу. Заносит строку текста в командную строку, нажимает «ввод», оно ей пишет: «Bad command or…», а она продолжает заносить дальше. И ничего же в душе не дрогнуло, что всё на экране по-другому! Я случайно заметил, когда она была на третьей странице своего текста.

Как положено бюджетникам, на работе я не работал, а играл. Играл в довольно людном помещении. И игры были достаточно динамичные и громкие. То есть на экране летает самолётик, мочит неизвестную инопланетную нечисть, раздаются звуки стрельбы и взрывов. Так продолжалось несколько лет, пока коллегам кто-то не сказал, что я играю. Они всё это время думали, что я работаю. Наверное, считали, что это у меня такой навороченный графический интерфейс. Это в Досе-то.

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

Позже я начал писать и пытаться продавать программы. Потенциальные клиенты очень радовались, когда я перечислял все отчёты, что будет делать комп, но когда я сажал их за комп для занесения первичных документов, то сразу выкатывали глаза по пять копеек и истерили: «Что, туда ещё и заносить что-то нужно?» И действительно, на системнике же две кнопки. Одна для включения; при нажатии на другую из компа явно должны начинать вываливаться отчёты.

10807

Пиксель к пикселю

Было это в 1993 году. Заканчивая ЛИТМО, я нашёл программистскую халтуру, чему был очень рад. Фирмочка, которая клепала «синклеры», продала штук тридцать в школу для компьютерного класса. Но школа поставила условие: с компьютерами должны быть две обучающие программы. Вот их мне и предстояло написать.

От фирмочки было дополнительное условие: большой красивый логотип с названием фирмы при запуске программы. Ну, «синклер» и бейсик — не великой сложности вещи. Пусть раньше сталкиваться и не приходилось, разобрался быстро. А с красивым (то есть графическим) логотипом всё было не так просто. Сканеров тогда не было в городе, цифровых фотоаппаратов — в природе.

Выход был найден. На миллиметровке я нарисовал характерный силуэт Питера с названием фирмы сверху, разлиновал по 8 мм — и началась «оцифровка»! Закончилась, к слову, довольно быстро. И последнее извращение на закуску: чтоб не разбираться с графическим режимом, забил кусочки картинки в знакогенератор и вывел эту мозаику в текстовом режиме.

При сдаче заказчику на его восхищённое «Отсканировано?!» можно было небрежно бросить: «Ну да…»

10803

Внортонепоэфтрисампосмотри

В хорошем, крепком банке с конца восьмидесятых активно использовались несколько барабанных АЦПУ с интерфейсом ИРПР. А надо знать, что ИРПР — это штука хитрая и с привычным Centronix не особо совместимая. Поэтому к этому делу прилагался драйвер.

Изначально всё это было заточено под XT. К 93-му году экстишки себя совсем изжили и были переданы в филиалы райцентров, где после Robotron-1715, а кое-где и печатающих калькуляторов Elka-55 им сильно обрадовались. На смену заслуженным экстишкам пришли 286-е машины. Тут-то принтера и отвалились. Кооператив, который делал сопряжение интерфейсов, уже давно пукнул и испарился — разумеется, вместе с исходниками. Печатать сальдовки по сто метров надо. Оставшиеся экстишки отбирают в приказном порядке.

Давай разбираться, что не так. Тык-мык-тык-мык. Что первое в глаза бросается? Экстишка — 4,77 МГц, 286-ая — 12, а в турборежиме — 16. Перепаиваем кварц на экстишечный. Работает принтер. Значит, завязан на тактовую частоту и квитирование делает в зависимости от неё. Но кто ж позволит из работающей экстишки кварц попятить?

«Пишем драйвер», — говорит шеф. Пишем, чё! «За сутки управимся», — отвечаю я.

И тут выясняется, что спеков на ИРПР хоть чем жуй. А вот на ИРПР-М, он же Centronix, чё-то не видно нигде. Ну, пока всякие НИИ работали, можно было в их научных библиотеках покопаться. Или в какой ВЦ по старой дружбе заглянуть — спеки-то не секретные. Но на улице был 93 год, и почти всё уже загнулось и позакрывалось.

Хорошо, что драйвер был пару килобайт. Плохо, что в виде TSR-программки. Если что, Hiew и IDA появились заметно позже, а досовский debug дебагать TSR не очень умел. Даже хекс-режим «внортонепоэфтрисампосмотри», по-моему, ещё не появился. Поэтому сначала мы получили старую добрую распечатку хекс-дампа драйвера. Потом «дизассемблировали» карандашиком на бумажке. Нашли цикл задержки, который крутился в цикле управления квитированием, после чего рассчитали нужные значения для 12 МГц и попатчили драйвер. Найти под утро компилятор ассемблера тоже оказалось непростой задачей. Да и драйвер изначально не на ассемблере был писан. И мусорного кода было предостаточно.

Самое главное, что в цикле гонялось транспонирование каких-то мусорных матриц. Увеличение размеров матрицы и их количества позволило аналогично попатчить драйвер под 25, 33, 40 мегагерц. А вот, не приведи господи, считался бы там какой-нибудь факториал…

Потом появились 486 с кэшем, и всё накрылось тазом. Но к тому времени под рукой уже были и дебаггеры, и IDA, и компиляторы. И году в 96-м драйвер был-таки переписан.

10798

За зерно ответишь?

5 апреля 2013, 07:15

Хороший, крепкий банк начала девяностых был серьёзной конторой. Так как местный авиазавод нам был крепко должен, то не в падлу было взять самолёт на денёк и сгонять в первопрестольную за оргтехникой. И выбор там был неизмеримо больше, и за покупку наличкой без проблем делали все документы.

Одна была незадача. В те времена всех покупателей компов и периферии априори считали колхозниками и лохами. То CGA-монитор вместо VGA пытаются впарить, то вместо 286-го на 16 мегагерц втихаря на 12 подсовывают, то дисководы SS/SD вместо DS/HD.

Был в те времена такой весьма критичный момент — зерно монитора. Мониторы с зерном 0,21 мм стоили запредельно даже для хорошего, крепкого банка. Но уж 0,28 мы могли себе позволить. А так как все норовили подсунуть 0,39 или вообще 0,41 в формате 14", то был измыслен способ аппаратного контроля. А то тайваньцы или корейцы на коробке могли что угодно написать.

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

Прилетаем в столицу. Приезжаем в фирму. И каждый монитор включаем и поверяем на соответствие написанному на коробке. Красота! Партию забраковали. Через пару недель вторую. А там уже и уважать начали.

10795

Do you speak CP 866?

4 апреля 2013, 07:15

Кто тут хотел баек от сорокалетних спецов с двадцатилетним стажем? Их есть у меня.

Дело было лет двадцать назад, когда писишка была редкостью, стоила дорого и не всегда комплектовалась мышкой, а про локальные сети мало кто слышал. Действующие лица: студенты специальностей 220100, 220400 и 220500 в количестве пяти человек. Инвентарь: БК-0010 с дисководом и принтером СМ6337.

Один из студентов приносит дискету (5,25 дюйма на 800 КБ, «бэкашка» другие не понимала) с книжкой по IBM PC в виде голого текста. В книжке, по его рассказу, много интересного. Возникает идея распечатать, тем более что книжка специально порезана на кусочки по 8–10 килобайт, что позволяет напечатать её на БК (там всего чуть меньше 16 КБ для программ и данных выделено).

Мгновенно ваяется программочка, перекидывающая байтики в порт принтера, начиная с определённого адреса памяти. А чего? Несколько команд на ассемблере. В нужную область памяти грузится первый файл, программа запускается, принтер печатает несколько знаков… и затыкается. Программа завершает работу.

Студенты садятся думать, как решить проблему. Минут через пять в процессе чтения мануала на принтер (изрядной толщины книжица с кучей технических данных и таблиц) кого-то осеняет, что программа кидает в порт данные быстрее, чем принтер их переваривает. Вместо того чтобы проверять готовность принтера к приёму данных, в программу всовывается пустой цикл, который заставляет кидать эти данные пореже.

Печать пошла. Только вместо текста полезли кракозябры. «Опа! — говорит один из студентов. — На писишке кодировка 866-я, а тут КОИ-8». Возникает логичный вопрос: что делать? Таблиц с кодировками под рукой нет, посмотреть их негде (про интернет тогда никто и не слышал), а распечатку получить хочется.

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

Распечатка у меня до сих пор где-то валяется. Только я не пошёл по программистской части, и многие интересные сведения из неё мне оказались без надобности.

10701

Колыбель бухгалтеризма

Вас спросили, в каком месте передней панели системного блока производитель замаскировал кнопку включения питания? Не спорю: чтобы не найти значок на этой кнопке, надо иметь некоторый талант. Однако проблема поиска кнопки навеяла воспоминания.

Был в стародосовые времена компьютер аглицкой фирмы «Амстрад» под названием PC1512. Внутри был 86-й процессор, полметра памяти, жёсткий диск (как бы ещё не MFM), пара флопиков калибра 5.25 и EGA-адаптер для графики. Комплектовался компьютер в зависимости от кармана покупателя монохромным или цветным монитором.

А теперь вопрос: где у него была кнопка включения питания? Не на морде, как у большинства нормальных компьютеров. И не на задней части боковой панели, как на популярных в начале 90-х десктопных корпусах. Кнопка включения на этом чуде британской инженерной мысли располагалась сзади на мониторе и включала/выключала и монитор, и системник.

10647

Пара палочек радости

Далекий 1979-й. Возвратился советский моряк из заграничного плавания. Чудо заморское привёз — приставку игровую на неведомой микросхеме интегральной по имени AY-3-8500.

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

Вернулся муж из магазина, и молвила жена ему:

— Я из всей инструкции всего два слова поняла: «падлы-контролёры». Да уж, метко про них сказали буржуины: иной раз поедешь без билета — как оштрафуют!

Разумеется, «падлы-контролёры» оказались обыкновенными аналоговыми джойстиками (paddle controllers).

10636

Золотая бочка

28 февраля 2013, 07:45

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

* * *

Во времена Великой Отечественной на одном заводе, где производилось огнестрельное оружие (кажись, ППШ, но не помню точно), пошёл брак. Стволы давали кривизну на стрельбах, нарезы сбивались или что-то там ещё. Тогда разбирались быстро и экспериментальным путём установили, что все технологическая цепочка работает в штатном режиме. Но брак был. Когда копнули поглубже, выяснили, что в одном из циклов стволы охлаждал дедуля болезненный и старенький, сейчас по какой-то причине отлёживающийся дома. Вместо него работал парень, который делал всё то же самое, что и дед. Вроде бы. Как оказалось, старичку было трудно бегать по малой нужде на другой конец цеха, и он отливал прямо в бочку, куда и опускали металл для охлаждения. Молодой этого не делал; более того, вообще заново наполнил ёмкость, так как воняла жутко.

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

* * *

Теперь современный аналог. У приятеля был домашний компьютер, который включался очень интересным способом: его надо было погладить по лицевой панели, а потом слегка хлопнуть по корпусу со стороны материнской платы. Запускался не всегда с первого раза, но только так. Несоблюдение последовательности действий ни к чему не приводило. Сначала приятель гладит, потом хлопает. Причём ни у кого, кроме него, это не получалось.

Выяснилось всё, когда его маменька обработала после стирки свитер, который таскал приятель, антистатиком. Компьютер включаться перестал. Приятель взвыл. Думали-гадали, допёрли. Поглаживание накапливало небольшой заряд статического электричества (вот он, магический свитер!), а похлопывание по боку системника его отдавало. А так как техника была древняя, местами неисправная, то эта искорка, почти не чувствительная для человека, каким-то макаром запускала компьютер.

* * *

У первой истории тоже есть какое-то своё научное объяснение, связанное с химико-термической обработкой стали, но я не вдавался. Вообще, думал вначале рассказать для примера историю с собственноножно давившим виноград виноделом, из-за уникального грибка стопы которого вино получалось ну просто неподражаемым, но решил, что айтишники как-то к «железу» ближе.

Мораль: смотри в корень и ищи причину, какой бы абсурдной она ни была.