Читаем Just for Fun полностью

Угловатый, матово-черный, с черной клавиатурой. Не закругленная хорошенькая машинка, а что-то суперэкстремальное. Клавиатура была толщиной примерно в два с половиной сантиметра, потому что составляла единое целое с компьютером. Это была стандартная для домашних компьютеров конструкция. В правой части клавиатуры, где обычно бывает цифровая панель, размещались два разъема для революционной новинки – микропривода Sinclair. Это устройство – больше нигде не применявшееся – использовало замкнутую петлю из пленки. По организации и функциям оно было подобно дисководу. Поскольку там была одна длинная петля, ее можно было крутить до тех пор, пока не найдешь то, что нужно. Однако устройство себя не оправдало, потому что сильно уступало флоппи-дисководам в надежности.

Итак, я потратил на Sinclair QL почти две тысячи долларов. И писал для него одну программу за другой. Я все время искал всякие интересные задачи. У меня был компилятор и интерпретатор языка Форт, с которыми я и возился. Форт – это очень странный язык; сейчас им уже никто не пользуется. Эта игрушка, рассчитанная на определенную рыночную нишу, в 80-е годы довольно широко использовалась для разных целей, но по-настоящему популярной так и не стала, потому что оказалась слишком сложной для непрофессионалов. Особой пользы от Форта не было.

Программный инструментарий я писал себе сам. Одной из моих первых покупок для Sinclair был модуль расширения с картой EEPROM (электрически стираемым программируемым постоянным запоминающим устройством). Туда можно было записывать информацию самостоятельно, пользуясь специальными модулями, и эта информация сохранялась при выключенном питании. Так я мог держать свои инструменты всегда под рукой, не тратя на их хранение драгоценное ОЗУ (оперативное запоминающее устройство), а ОЗУ целиком использовать под программы.

Операционками я заинтересовался так: купил флоппи-контроллер, чтобы не пользоваться микроприводами, но к нему прилагался такой поганый драйвер, что пришлось написать новый. Пока писал – обнаружил проколы в самой операционной системе или по крайней мере несоответствие между тем, что обещала документация, и тем, что реально происходило. Я с этим столкнулся, когда моя программа отказалась работать.

Поскольку мои-то программы – ясное дело – всегда идеальны, я понял, что тут дело в другом. Пришлось пойти дальше и дизассемблировать операционную систему.

Можно накупить книг с частичными листингами операционной системы. Большое подспорье. Еще нужен дизассемблер – программа перевода машинного кода на язык ассемблера. Это важно, потому что по машинному коду очень трудно отслеживать работу алгоритма. Вдруг натыкаешься на переход к числовому адресу – читать невозможно. Хороший дизассемблер заменяет номера именами и при этом позволяет выбирать эти имена. А еще он помогает найти определенную цепочку команд. У меня был собственный дизассемблер, который давал довольно симпатичные листинги. Когда что-то не работало, я мог потребовать листинг, начиная с определенного места, и увидеть все, что собиралась делать операционная система. Иногда я использовал дизассемблер не потому, что что-то сбоило, а просто чтобы узнать, как оно должно работать.

Меня бесило, что операционная система QL предназначалась только для чтения. Там ничего нельзя было изменить. Нет, там были выходы, где можно было передать управление какими-то функциями собственным программам, но только в определенных местах. Гораздо лучше, если в операционной системе можно заменять все. Дурацкая идея – записывать операционку в ПЗУ (постоянное запоминающее устройство).

Хоть я и сказал, что в Финляндии полно фанатов новых технологий, Sinclair QL не завоевал в этой седьмой по размерам стране Европы сколько-нибудь значительных позиций. И поскольку рынок был так мал, всякую обновку для этой революционной суперсовременной машины приходилось заказывать в Англии и получать по почте. Для этого надо было сначала прочесать каталоги в поисках продавца нужной штуки. Потом – добыть удостоверенный чек и неделями ждать доставки (это было до эры Amazon.com и кредитных карточек). Через все это мне пришлось пройти, когда я надумал увеличить ОЗУ со 128 до 640 килобайт. И мытарства повторились снова, когда я покупал новый ассемблер для перевода ассемблерных программ в машинный код (нули и единицы) и редактор связей, который по существу является текстовым процессором для программирования.

Новый ассемблер и редактор работали прекрасно, но они были на микроприводах и их нельзя было перенести на EEPROM. Поэтому я написал собственный редактор и ассемблер и дальше использовал только их.Обе программы были написаны на ассемблере, что кажется невероятно глупо по нынешним меркам. Это очень сложный и нудный процесс: решение задачи на ассемблере занимает раз в сто больше времени, чем, например, на Си (который тогда уже был).

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
Access 2002: Самоучитель
Access 2002: Самоучитель

В книге рассматривается широкий круг вопросов, связанных с использованием программной среды Access 2002, которая является составной частью пакета Office 2002 и предназначена для создания банка данных в самых различных предметных областях.Подробно описывается методика проектирования объектов базы данных (таблицы, формы, отчеты, страницы доступа к данным, запросы, модули).Детально обсуждаются вопросы создания интегрированной базы данных в единой среде Access 2002: формирование БД с нуля, конвертирование в программную среду баз данных, созданных в ином программном окружении – Clarion, FoxPro.Особое внимание уделяется формированию разнообразных запросов к интегрированной базе данных Access 2002 с использованием языков программирования SQL, VBA и макросов.Приводятся общие сведения о возможностях языка обмена данными между различными компьютерами и приложениями (XML). Описываются возможности использования гиперссылок, связывающих базу данных с другими программными продуктами. Объясняется, как можно работать с базой данных Access 2002 без установки ее на компьютер, используя технологию ODBC (Open Data Base Connectivity). В приложениях приводятся количественные параметры Access 2002 и связанная с этой СУБД терминология.Предлагаемая книга будет полезна специалистам, занимающимся практической разработкой банков данных и приложений на их основе, а также студентам вузов, изучающим информатику.

Павел Юрьевич Дубнов

Программирование, программы, базы данных / ОС и Сети / Книги по IT