Предыдущая глава |
↓ Содержание ↓
↑ Свернуть ↑
| Следующая глава |
На обратной стороне он заметил надпись: "Made in USA" — и перевёл:
— Ого! Сделано в США!
— Ну да, фирменная сборка, настоящий "Ай-Би-Эм"! — заявил мужичок, — кстати, если ты разбираешься, может быть, поможешь подключить новую клавиатуру? А то я не уверен в своих силах.
— Конечно, Эрих Генрихович. С удовольствием помогу, — согласился Витя.
Новая клавиатура без проблем подключилась и заработала. Хозяин квартиры радостно заулыбался.
— Слышь, малец, а ты не знаешь, как перенести документы со старого компьютера на новый? — неожиданно спросил Эрих Генрихович, — старичок-то у меня того... кирдыкнулся и не фурычит.
— Эм... Вообще-то, не очень. У меня есть лишь общее представление, — пробормотал Витя.
Он застеснялся признаться, что современные компьютеры знает лишь в теории. Немного читал в журналах. А ещё кое-что подглядел в магазине.
— Хо! Не тушуйся. Я сам разбираюсь в этом как ёжик в апельсинах, — хохотнул мужичок.
Подросток осторожно предположил:
— А может быть, просто переставить на новый компьютер старый жёсткий диск?
— Э-э-э... Тут, наверное, мастер нужен? — озадачился мужичок.
— Да чего там? Это же словно конструктор, — самоуверенно заявил Виктор.
— Ну, я не знаю... — засомневался Эрих Генрихович.
— Я же не настаиваю. Просто предложил попробовать. Если вы против, то, конечно же, вызывайте мастера. — Виктор поспешил дать задний ход.
Мало ли, вдруг по незнанию чего испортит, а потом не расплатиться же. Хозяин квартиры задумчиво посмотрел на гостя. А потом бесшабашно махнул рукой.
— Ладно, малец. Пробуй. Попытка не пытка, — разрешил он. И тут же предупредил, — но если не уверен, то лучше не трогай.
— Конечно. А где? — Витя растерянно оглянулся.
Эрих Генрихович выставил системный блок старого компьютера и выдал отвёртки. Подросток первый раз заглядывал в недра настоящих компьютеров. Но он видел винчестеры на витринах и быстро сообразил, что с ними нужно делать. Внутренние компьютерные потроха выглядели логично и понятно. Извлечение винчестера из старого компьютера и установка в новый прошла успешно и буднично. Открутили, отключили, сняли, вставили, подключили, закрутили. Новый компьютер запустился и неожиданно показал чёрный экран.
— Ха-эм. Надеюсь, мы ничего не сломали? — забеспокоился Эрих Генрихович.
Витя запаниковал. Он перепугался, что случайно сломал какую-нибудь деталь. Но взяв себя в руки, сосредоточился. Ему вспомнилась статья, в которой говорилось о джамперах на винчестерах. Все доступные журналы о компьютерах он читал от корки до корки, понимая лишь некоторую часть из написанного материала и стараясь домыслить непонятное.
— Я, кажись, забыл, что нужно переставить джамперы. — пробормотал краснеющий подросток, — сейчас проверю.
Выключив новый компьютер, опять добрался до жёстких дисков. Вглядевшись, почти сразу нашёл перемычки. На обоих винчестерах они стояли в положении "master". Рядом имелось положение "slave". С английским языком Витя особо не дружил, в его переводе получилось "начальник" и "раб". Подросток подумал, что эти англичане очень странные, не проще ли было написать "первый" и "второй"? Витя осторожно подцепил ногтем перемычку на винчестере со старого компьютера и переставил её в положение "slave".
На этот раз компьютер запустился нормально. Тут же операционная система обнаружила новое оборудование и запросила установочный диск. После установки драйвера перезагрузили компьютер и убедились, что всё в порядке. Хозяин отыскал нужные файлы и очень обрадовался.
— Как у тебя всё ловко получилось, — восхитился Эрих Генрихович.
— А я чё? Там всё написано. — Витя смутился от незаслуженной похвальбы.
Он чуть было даже ножкой не шаркнул, но вовремя сдержался, взяв себя в руки. Не его заслуга в том, что компьютер запустился.
— Молодец! — похвалил хозяин квартиры.
— Тогда я системник закрою, — предложил Витя.
Дождавшись согласного кивка, подросток выключил машину. Аккуратно завинтил четыре винтика для фиксации вставленного винчестера. Затем закрыл кожух и завинтил его. Задвинув системный блок под стол, опять включил. Компьютер радостно загрузился. А Эрих Генрихович задумался над чем-то, даже лоб нахмурил. Затем приняв какое-то решение, переключил внимание на мальчишку.
— А знаешь что... — проговорил он. Почесал затылок и продолжил, переведя взгляд на раскрытый старый компьютер, — если хочешь, то можешь его забрать. Он, конечно, сломанный... Но, может быть, тебе детали пригодятся? Мне то всё равно не нужен.
Виктор от столь щедрого предложения чуть из собственных штанов не выпрыгнул. Ему с трудом удалось сдержаться от ликующего вопля.
— Благодарствую, Эрих Генрихович, — как можно спокойнее кивнул головой подросток, — возможно, пригодится.
Распрощавшись с мужичком, Витя приволок домой останки старого компьютера. Скинув уличную одежду, тут же уселся прямо на пол разбираться с подарком. Вскрыв старую айбиэмовскую машину с процессором "Intel" 80386 фирменной белой сборки, уставился на детали, как баран на новые ворота. Витя не имел понятия, что из этого работает, а что можно спокойно выбросить. Он видел перед собой набор незнакомых деталей, да к тому же весьма странно скомпонованных. Вздохнув, решил оставить детали на потом. Найти справочники, почитать подробнее и проверить функциональность. Если бы удалось найти вторую точно такую же машину, можно было бы попробовать последовательно протестировать на ней каждый компонент. А так даже и включать нет смысла. Один лишь вид материнской платы вызывал сомнения. Складывалось впечатление, что её облили сладким из-за чего окислились все контакты.
Витя взялся за плату, чтобы поставить её обратно в корпус. В этот момент его озарила мысль. Он мог вставить в этот корпус свой самодельный компьютер. Подросток усмехнулся, представив картину: в корпусе одного старичка плату с другим, ещё более древним компьютером. Оставив корпус, убрал остальные детали в комод. И только после этого взялся за клавиатуру. Штекер выглядел жалко, словно им забивали гвозди. Витя отрезал кончик кабеля, зачистил провода и подключил к ним измерительные приборы. После подачи питания стрелочки сразу же начали дёргаться, а значит, клавиатура функционировала. Но оставалось секретом, какие коды, и в каком формате она посылала. В принципе, при особом желании, их можно взломать. Только "Спектрум" всё равно не поймёт и не сможет обработать эти коды.
Вечера следующей недели сразу после уроков подросток просиживал в городской библиотеке. Он легко нашёл коды от клавиатур IBM-совместимых компьютеров, но не знал, как их аппаратно переконвертировать в коды для компьютеров типа "Спектрум", а ведь они различались очень сильно. Витя попытался самостоятельно разобраться со схемой клавиатуры и с удивлением обнаружил на ней процессор "Intel" 8051. Ему подумалось, что дальше всё просто, нужно лишь перепрограммировать процессор. Но мальчишка не смог накопать информации о том, что и как перепрограммировать в клавиатуре.
Грустно вздыхая от того, что приходится калечить вещь, Витя принял решение полностью сменить схему на клавиатуре. Он аккуратно отключил и вынул плату с микросхемами. А к матрице на второй плате, удерживающей клавиши, припаял два шлейфа. Дополнительные клавиши задействовать не удалось. Зато все основные клавиши прекрасно заработали. "Спектрум" самостоятельно опрашивал клавиатурную матрицу и не нуждался в промежуточных процессорах. Впрочем, даже здесь вылезли заморочки с модифицирующими клавишами. Сигналы от них пришлось выводить через отдельно подпаянные диоды.
Подросток окончательно доделал и протестировал "Спектрум". Чтобы использовать одну клавиатуру для двух компьютеров, поставил на каждом стандартные девятнадцатиштырьковые разъёмы. Это решение, пусть не слишком удобное, позволило использовать "Орион" для управления программатором. Также пришлось купить микросхему ПЗУ на шестнадцать килобайт. Для новой микросхемы потребовалось доработать программатор. К радости парня, старая кроватка идеально подошла для новой микросхемы, словно бы для неё и предназначалась. Подготовка к прошивке измотала нервы. Витей волей неволей потребовалось немного доработать "Орион", чтобы он смог держать в своей памяти весь дамп. Зато сам прожиг с первого же раза завершился успехом. Правда на полностью автоматическую операцию ушло довольно много времени. После установки ПЗУ на "Спектрум" и небольших доделок наконец-то удалось запустить Бейсик.
к оглавлению
Фрагмент 6J
На некоторое время Витя оставил железо в покое, погрузившись в необыкновенный мир программирования. Он на практике изучал, как работает Бейсик. Другие языки программирования он не успел достать, но собирался сделать это как можно скорее. Впрочем, интерпретатор Бейсика предоставлял основные возможности, позволяя наглядно изучать принципы построения программ. Подросток перепечатывал программы из журналов, а затем пытался разобраться в их алгоритмах. Витя попробовал сделать несколько простеньких игрушек. Но ему это быстро наскучило, поскольку кроме самообразования, игрушки не приносили пользу, зато отнимали время.
Мальчишка решил попытать силы на более серьёзных темах. Сначала он написал программку, высчитывающую квадратный корень. Вообще-то такую функцию поддерживал сам Бейсик, но подростка интересовал собственно принцип расчётов, а не результат. Затем он сделал программку, вычисляющую число пи. Для расчётов он взял воображаемый круг с радиусом, длина которого равнялась условной единице. Этот круг разбил на множество одинаковых треугольников, вершины которых оказались в центре окружности. Две стороны треугольника являлись радиусами длиной в одну условную единицу. Известно, что в окружности ровно триста шестьдесят градусов. Угол равнобедренного треугольника вычислялся банальным делением трёхсот шестидесяти на число воображаемых треугольников. А зная радиус круга, то есть длину двух равнобедренных сторон треугольника, да ещё угла между ними, длина противоположной стороны легко вычислялась по известной формуле. Конечно же, вычислялась не длина окружности, а фактически периметр многоугольника, все вершины которого лежали на окружности. Но чем больше взять треугольников, тем периметр многоугольника оказывался ближе к окружности и тем точнее оказывалось вычисление числа пи.
Впрочем, Витя быстро обнаружил, что результат не слишком точен. Для повышения точности он написал функцию, высчитывающую косинус вместо встроенной функции. К огорчению мальчишки точность повысить не удалось, при этом скорость работы алгоритма заметно снизилась. Точность вычислений ограничивал встроенный тип данных, но подросток не знал, как расширить размер числа. Впрочем, мальчишка не расстраивался мелкими провалами. Он просто хотел проверить придуманный алгоритм. А реальные результаты его не интересовали. Витя, довольствовался доказательством силы программирования и мощью своего интеллекта. Ни один из его одноклассников не мог похвастаться тем, что знает, как вычислять косинус без калькулятора или таблицы Брадиса.
Пресловутый Бейсик играл очень своеобразную роль, служа командной прослойкой между компьютером и человеком. Интерпретация команд предоставляла простую возможность решать математические выражения, рисовать примитивную графику, загружать и сохранять программы на магнитофон. Мелкие программки писались легко и работали с приемлемой скоростью. Интерпретатор загружался автоматически, сразу после включения, позволяя приступать к работе без лишних действий.
Но при попытке выжать из компьютера немного больше, всплывали недостатки интерпретатора от медленной скорости выполнения программы до ограниченности набора встроенных функций. Постепенно Виктор разочаровывался в Бейсике и по возможности пытался работать с машинным кодом. Но из-за расширившегося набора команд процессора машинный код значительно усложнился. А из-за увеличенного объёма оперативной памяти появилась возможность писать программы большего размера, что резко затруднило их модификацию. Виктор заметил, что сложность программ в зависимости от их размера росла в геометрической прогрессии вместо ожидаемой линейной.
Мальчишке пришлось выкручиваться, чтобы простыми средствами использовать максимальные возможности компьютера. Виделся единственный способ сохранить относительную читаемость исходного кода, при этом повысить скорость выполнения программы: в том, чтобы применять Ассемблер. Виктор раскопал в журнале исходники программы, переводящий мнемоники в машинные команды. Изучение новых понятий и концепций шло со скрипом. Впрочем, древний Бейсик концептуально не слишком далеко ушёл от более древнего Ассемблера. А ещё помогал некоторый опыт программирования калькулятора. Мальчишка начал полноценно осваивать Ассемблер. Эта программа напрямую преобразовывала буквенные мнемоники в машинные команды. Такие мнемоники легко запоминались. Она освобождала мозг от запоминания кодов команд. Но главным затруднением оказался магнитофон. Конечно, Ассемблер позволял составлять исходный код программы в более удобной форме, не принуждая заботиться о ручном вычислении адресов. Но сам Ассемблер приходилось загружать с магнитофона. К тому же, написанные программы размещались в альтернативных адресах, и Бейсик не мог сохранять их штатными средствами на кассету, из-за чего опять приходилось извращаться, записывая сырые дампы. А магнитофон тормозил. Вите приходилось тратить время на поиск пустого места или нужной программы. Вся эта мелочная возня уже непросто раздражала, а реально бесила.
И тогда подросток опять вспомнил о втором компьютере. А точнее — вспомнил о его дисководе. Но Витя не знал, с какой стороны подойти к нему. Вытащив детали, внимательно рассмотрел их. На вид почти все компоненты казались рабочими. Вот только материнская плата вызывала серьёзные сомнения. Но возможно, что такой вид являлся нормальным. Витя решил пока не разбирать и не выпаивать детали, надеясь, что потом, сможет оживить хоть что-то. Он отложил лишь дисковод, а всё остальное спрятал обратно в шкаф.
В журналах подросток нашёл примерную схему подключения дисковода и схему его сопряжения с шиной компьютера. Но найденная схема годилась лишь для обычного IBM-совместимого компьютера. А для "Спектрума" пришлось самостоятельно придумывать схему подключения к стандартным портам. Виктор перепроверял придумку несколько раз, чтобы не попасть впросак и не паять заведомую ерунду, которую пришлось бы в лучшем случае переделывать. Денег на новые детали он раздобыл, опять сдав пустые бутылки и несколько железяк притащенных с заброшенных строительных площадок.
На плате компьютера вывел параллельный порт. Спаял схему разводки сигналов. Написал программу для работы с устройством. Дисковод заработал почти сразу. И тут вылезла новая проблема. Программа не успевала реагировать. Виктор внезапно обнаружил, что дисковод пишет и читает данные быстрее, чем "Спектрум" успевает их отдать или принять. Стало очевидным, что для полноценного взаимодействия требовалась аппаратная поддержка. Пришлось по новому заходу штудировать схемы компьютеров. Появилась идея реализовать аппаратное копирование данных из порта в память и обратно. Через несколько дней розысков обнаружились многообещающие зацепки. В поисках подробностей перерыл доступные библиотеки. Подросток уже почти придумал, как сделать пересылку данных. Очень похожую схему на счётчиках он делал для видеоконтроллера. В новой же схеме дополнительно требовалось программно выставлять начальный и конечный адрес, что и вызывало дополнительные затруднения. Ведь адреса следовало как-то передать и где-то хранить, а затем выставлять их на счётчиках.
Предыдущая глава |
↓ Содержание ↓
↑ Свернуть ↑
| Следующая глава |