[Эксклюзив] Сказ о восьми битах

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

[Эксклюзив] Сказ о восьми битах

Сообщение hCORe » 24.07.2006 (Пн) 18:07

СКАЗ О ВОСЬМИ БИТАХ
http://entropia.fluda.net/pm/8bits.htm

ПРЕДУПРЕЖДЕНИЕ.
Эта история выдумана от начала и до конца. При любом совпадении с реальными лицами, событиями и продуктами следует немедленно вызвать санитаров.

0

Неделю назад менеджер Петрович подозвал меня к себе и сообщил, что нашу компанию поглотил софтверный гигант «64K», и, следовательно, будет «реорганизация» (читай: массовые увольнения). По слухам, порядки в «64K» были весьма и весьма строгие. Петрович намекнул: умных и тертых парней вроде меня должны оставить в покое, но для этого перед новым начальством надо отличиться. «Как раз подоспел потрясающий заказ, но немного не по твоему профилю. Думаю, Леха, ты справишься, гонорар хороший», – сказал он. Так я превратился из прикладного программиста в разработчика встроенных (embedded) решений.

Разработчик встроенных решений, как всем известно, пишет микрокод для процессоров в калькуляторах, холодильниках, телевизорах и тостерах, а также устройствах по производству серной кислоты, молока и полиэтиленовых пакетов.


1

Петрович сказал: «Все очень просто, правда я в этом не разбираюсь» и вкратце обрисовал техническое задание. Есть экспериментальная модель сенсорного экрана с терморезистивной матрицей и самопальный процессор. Плюс еще куча всяческих устройств (контроллеры, понижаторы, повышаторы, усредняторы, ужасаторы…) Эти компоненты надо срочно подружить. При этом в проц можно загнать до 16 Кб кода и данных, но лучше вполовину, так как уже при 10 К система начинает дико тормозить. «И чтоб через неделю работало!» – предупредил менеджер.

Чуть позже мне выдали экран, чип, полное ТЗ и «дополнительные ресурсы». Среди них были пять килограмм печатных мануалов и диск с материалами. В числе последних – доходчиво прокоментированные примеры кода и статьи «Оптимизация кода для восьмибитных процессоров», «Преимущества сортировки крестиком-ноликом», «Строки: использовать или нет?», «Пять истинных типов данных», «Особенности реализации БПФ (1) на ARM-базированных DSP», «Арифметика с плавающей точкой: краткий курс для новичков», «Техники однотактового побитового сдвига на 3 разряда», «Теория резонанса в стековой памяти» и т.п. Кроме того, я получил флэшку сомнительной жизнеспособности, на которой были: а) драйвер последовательного порта, б) софт для работы с процессором, в) текстовый редактор BRED2.


10

Работаю я дома. Потому что мысль. Если пытаться думать в офисе, мысль улетит и больше не вернется. А в уютной квартире, наоборот, созданы все условия. Товарищи по несчастью не мешают глупыми вопросами вроде «Какая функция в Win32 API помогает получить моментальный кайф?». Начальство не задает глупых же вопросов о сроках сдачи и не предлагает «сдвинуть вот эту штуковину на пять миллиметров относительно вон той хреновины». Правда, никакой комфорт не поможет, если проект изначально провальный…

Первым делом я решил ознакомиться с техпаспортом к экрану. Но нашел только маленькую наклейку на задней стороне панели:

Изображение

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

Я пролистал первый мануал (всего-то 100 страниц), нашел раздел «Ввод/вывод», внимательно прочитал следующее: «для обработки сигнала может использоваться внешнее электронное устройство; при этом требуется преобразование данных из аналогового вида в цифровой».

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


11

Во-первых, драйвер последовательного порта не захотел ставиться под Windows XP. Разработчики, видите ли, не подписали его в лабораториях им. Б.Гейтса, и вообще, он предназначен для Windows 98. Достал диск с «девяносто восьмой». Выставил на ноутбуке загрузку с DVD. Система бодро перезагрузилась, дрогнула дисководом, вывела надпись «Press any key to boot from CD/DVD…». Нажал пробел. Дисковод заурчал, и на экране появилось красивое меню мультизагрузочного диска. Выбрал пункт «Установить Windows 98 Second Russian Edition». Ноут подумал пару минут, пошуршал дисками, помигал лампочками, показал непонятное сообщение: «ID 4F» (2). А еще через минуту экран выключился. Загрузился в XP, запустил PartitionMagic, создал аж два дополнительных FAT32-раздела. Попробовал опять начать установку «девяносто восьмой» – с тем же результатом. Решил: аппаратный конфликт. Просмотрел все до единой опции BIOS Setup – не помогло. Написал на форум iXBT – не помогло. Применил найденный в шкафу артефакт «бубен шамана особый» (1 шт.) по прямому назначению – не помогло. В итоге закончилось тем, что я достал старый проеденный молью системный блок, подключил клавиатуру и мышь. Комп, охая и кряхтя, врубился. «Non-System Disk or Disk Error. Insert System Disk…» Настроил загрузку с диска, запустил инсталляцию Windows 98. Началась. Но с какой скоростью! В общем, к концу дня я уже лицезрел надпись «Откиньтесь на спинку стула и займитесь самосозерцанием!»

Ценой бессонной ночи были установлены все привычные программы и утилиты. Решил поставить главный софт с флэшки. Вставил. Ничего. Вынул. Ничего. «Нужен драйвер!» – догадался Штир…, то есть я. К счастью, на этот случай есть волшебный CD с «Универсальным драйвером съемных дисков» (ufdsk.sys). Запустил «Мастер установки нового оборудования», в очередной раз понял, что это вовсе не мастер, а самый натуральный чайник! Да что там чайник! В прошлый раз все ставилось «на раз», а тут система выпадала с самыми разными сообщениями. Чего стоит, например, такое: «Из-за чрезмерного увеличения энтропии во Вселенной невозможно найти файл "ufdskst.inf", необходимый для установки устройства "Universal USB Flash Disk". Попробуйте еще раз. В случае неудачи обратитесь в "Русское лото".» Пару часов промучавшись с универсальным драйвером, я нашел-таки выход из положения: переписал софт с флэшки на CD-R. После завершения всех инсталляционных процедур система самовольно перезагрузилась, но софт заработал! Правда, его вид вызывал исключительно рвотные ассоциации. Представьте себе, что сумасшедший любитель скинов вдруг открыл для себя «кислотные» оттенки. И применил все свои знания к разукрашиванию и без того ужасных утилит «M-chip Code Writer» и «M-chip COM1 Debugger». Последняя соответствует своему названию: подключается только через порт COM1. Причем, отменить отладку можно только вырвав кабель «с мясом» из системного блока. Сей оригинальный метод предлагается в мануале! Там же приведен другой вариант отладки: установка эмулятора процессора и альтернативного драйвера последовательного порта. Альтернативный драйвер уже поставлен, а вот эмулятора я не нашел. «Ничего, сейчас загружу с сайта M-chip! – подумал я и тут же осекся. – У нас же локалку отрубили до второго числа следующего месяца! Теперь только по GPRS и выходить. Так и не скачаешь ничего, и без штанов мигом останешься!»

Короче, решил я писать код «вживую». Подключил все нужные устройства (спасибо пятикилограммовым мануалам, ничего не перепутал) и стал отлаживать программу по COM-порту. Параллельно пытаясь выучить примитивный ассемблер самопального процессора, явно придуманный изощренными садистами. Операции умножения нет, операции деления нет, зато все побитовые операции есть. И восемь способов занести данные в регистр. И регистров столько же, сколько способов. Ну, вы поняли…


100

На десятом часу пятого дня я, озверев, пытался загнать непомерно разросшуюся программу в узкие рамки аппаратных решений. То и дело отладчик выводил сообщения: «Strange Operation Pending. Please wait!», «Memory limit exceeded!», «Illegal instruction!» и (чаще всего) «Unknown Communication Error ???»

За эти пять дней я сильно оброс, похудел (еще бы, есть некогда!) и даже вроде поседел в нескольких местах. К счастью, еще не полысел, хотя все к этому идет. По крайней мере, по моим ощущениям.

Так вот, на десятом часу пятого дня в дверь позвонили. Пришел друг детства Дима. Спросил с порога: «Чем занимаешься?» Я указал на коробки из-под терморезистивного экрана и самопального процессора. Димка поинтересовался, сколько дней я уже мучаюсь. «Пять», – говорю. – «Тогда понятно. А я вот уже семь лет в этой области работаю. Помочь?»

Ну, кто же откажется!


101

…Шестой день. Шесть утра. Мы с Димой сидим на кухне, читаем распечатку кода. Пьем чай «РахметовЪ» с экстрактом натурального гвоздя для воспитания воли. И спорим. До хрипоты. Он говорит: «Тут лишних как минимум восемь бит!» А я ему: «Да ну?» А он: «Ну да!» Я: «Ладно, уговорил. Что сделать? Может сортировку методом крестика-нолика?» Тут друг разозлился: «Бред это все! Когда в коде лишние всего восемь бит, случаются события, которые потом преподносятся как универсальный мистический опыт! Со мной, вон, такое тоже бывало. Целых три раза!» «И что же делать?!» – испуганно спрашиваю я. «Как что, – объясняет Дмитрий, – жить. Вот вижу, надо удалить инструкцию 614. Как раз освободим один байт! Эх, истинных программистов осталось так мало. Но это, может быть, и к лучшему…»

На седьмой день, собрав себя в кулак, я довел код до рабочего состояния. Вечером позвонил Петрович и спросил, нагло так: «Ну как?» «Работает, – говорю, – Проект можно развивать. Но только без меня!»

_______________________________________________
(1) БПФ – Быстрое преобразование Фурье.
(2) «Frequently, crashes are followed with a message like "ID 02". "ID" is an abbreviation for "idiosyncrasy" and the number that follows indicates how many more months of testing the product should have had.» (Фольклор.)
_______________________________________________
/по мотивам истории одного байта/
Моду создают модоки, а распространяют модозвоны.

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 24.07.2006 (Пн) 20:15

Это пять :thumleft:
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 24.07.2006 (Пн) 21:04

Я pассказывал бабушке, как я пpогpамиpую однокpистальные микpопpоцессоpы..


LOL
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 24.07.2006 (Пн) 21:26

И заметь, что
Она внимательно, не пеpебивая слушала меня. Она все понимала! Каждое мое слово!


Такие вот продвинутые бабушки...
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 24.07.2006 (Пн) 21:33

А потом, когда он закончил, говорит - глупенько ты внученко, программатор у тебя кривой, я вот себе Тошибу купила, и не жаловаюсь...
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 24.07.2006 (Пн) 23:19

keks-n писал(а):И заметь, что
Она внимательно, не пеpебивая слушала меня. Она все понимала! Каждое мое слово!
Вот только сказать ничего не могла :lol:
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 26.07.2006 (Ср) 6:43

В Москве, что ли, теперь все студенты программируют микроконтроллеры за 2.000?
Истекаю слюнками от зависти.
Изображение


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 142

    TopList  
cron