Страница произведения
Войти
Зарегистрироваться
Страница произведения

Рождены, чтоб сказку сделать былью #1


Опубликован:
01.04.2013 — 16.05.2017
Читателей:
1
Аннотация:
Русский парень пытается перевернуть мир. Ему тоскливо от окружающего быта. Он мечтает о красивой сказке. Будет куча заклёпок, роботов, девушек, бытовухи, философии и всякого прочего. Поступательное технологическое развитие от нашего уровня. Но мелькнут ушастые няшки. А добро сразиться со злом. Хватит мечтать! Мир надо прогибать прямо здесь и сейчас без волшебных амулетов или инопланетных артефактов. Герой попал сам в себя ровно на ноль секунд назад. История о приключениях отчаянного прогрессора.
Предыдущая глава  
↓ Содержание ↓
  Следующая глава
 
 

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

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

"Ну не интересная эта Владлена! Фе! Разве же можно подумать иначе? Мало того, что слишком тихая и скромная, так она типичный гуманитарий!" — оценивал подросток, предусмотрительно скрывая мысли за нейтральной улыбкой.

Выглядела Владлена гармонично. Но её компактные округлости оставляли желать большего. Девочка ещё не дозрела. А на фоне более развитых сверстниц казалась младше несколькими годами. Виктор обращал внимание на других более спелых девчонок. У некоторых одноклассниц налились весьма объёмные формы. При ходьбе они упруго колыхались, провоцируя слюноотделение. Виктор со стороны наблюдал за ними, мучительно ограничивая себя в действиях. Лишь в мечтах он позволял себе вольности. Но наяву держал себя в рамках приличия, не желая уподобляться озабоченным бабуинам.

Грёзы о девочках посещали его лишь во сне. Ещё накрывало эмоциями при взгляде на них. Но Виктор общался с противоположным полом лишь в школе. А когда занимался своими делами, то забывал и не вспоминал о девчонках. Школа — она такая. Оказывается, она ещё учила межполовым отношениям. Иногда Волкову казалось, что если бы в классе учились только мальчики, то всем стало бы проще. Но зато учится вместе с девчонками гораздо интереснее. А к их виду и странным выходкам можно привыкнуть.

Если хорошенько вдуматься, то на самом деле школа не так уж плоха, как может показаться. Знания в голове учеников систематизировались и упорядочивались. Гораздо сложнее самому для себя придумать адекватную программу обучения, заведомо ничего не понимая в теме. Учась самостоятельно, можно пропустить важные вещи. А кроме наук, школа учила строить отношения с людьми и поведению в обществе. К сожалению, процесс не идеален, но лучше хотя бы так, чем вообще без школы. Конечно, она съедала много времени, но во взрослом мире не примут самостоятельного ребёнка. Можно прогрызть себе дорогу, но лень тратить на это лишние усилия, когда вокруг так много интересных занятий. А школа служила своеобразным стартовым столом для запуска нового человека во взрослую жизнь. Так что школа — это дополнительная защита, отделяющая детей от взрослых забот. Волков не собирался противостоять системе. Он собирался органично встроиться в неё. Поэтому он решил закончить школу нормальным способом и не выпендриваться.

к оглавлению

Фрагмент 19B

Витя добрался до компьютера, после уроков, между домашними хлопотами. Старый кабель для подключения клавиатуры к "Спектруму" отдирать не хотелось, но тот уж очень неудобно цеплялся к матрице. Подростку пришлось отключить кабель во избежание накладок, тем самым временно лишившись возможности взаимодействовать со старыми компьютерами. В магазинчике мальчишка заранее купил новый штекер PS/2. Вернул клавиатуре её родную плату. Подпаял новый кабель к плате. На другой конец кабеля напаял штекер. Прозвон контактов дефектов не выявил.

Чтобы вникнуть в компьютерные дела, требовалось много свободного времени. Сервер, притащенный из магазина и подключённый к самодельному монитору, писал какую-то ерунду, а потом просил логин. Витя понажимал кнопочки, поводил курсором. В результате выяснил, что компьютер нормально понимает отремонтированную клавиатуру. Но мальчишка не знал логина. Попытался понабирать разные стандартные, а затем и белиберду, сервер одинаково легко всё принимал и тут же требовал пароля. Подобрать пароль методом тыка не удалось, и Витя забил болт. Ему не очень-то хотелось влезать в чужие системы и смотреть чужие файлы. Конечно, хотелось, из чистого любопытства разузнать чужие секреты. Но ещё больше хотелось поскорее заюзать настоящий большой компьютер.

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

— У меня есть старый компьютер. Он почему-то перестал загружаться. Я не знаю, что делать.

— Операционная система слетела, — скучающе отозвался парень в свитере. — Надо её переустановить.

— Э-э-э, а как? Он же не загружается! — Витя состроил непонятливую гримасу.

— У тебя какая система была? — лениво поинтересовался продавец.

— Ну, вроде бы ДОС, — сбившись с ответом, подросток сделал сильное допущение.

— Возьми загрузочную дискету. Вставь её в дисковод. Загрузись с неё. Затем набери команду "sys c:" — должно помочь.

— А что делает эта команда? — уточнил мальчишка.

— Она перезаписывает старую загрузочную запись новой, — пояснил продавец.

— А что делать, если нет загрузочной дискеты? — спросил Витя.

— Нет проблем, — продавец улыбнулся. — Купи новую дискету, а в качестве бонуса сразу запишу всё что нужно.

Подросток согласился. Он передал деньги. Продавец взял дискету, сунул её в компьютер, что-то набрал и через несколько минут отдал дискету. Витя поспешил домой. Он без проблем загрузился с принесённой дискеты. А вот дальше начались неожиданности. Кроме диска A, ДОС ничего не видел. Справка, запрошенная командой "help", из командной строки ничем не помогла. Пришлось лезть в книги и журналы про MS-DOS. Внимательное пролистывание и вдумчивое перечитыванье навело на команду "fdisk". Запустив программу, Виктор наконец-то увидел диски, размеченные неизвестной файловой системой. Подросток выбрал команду удаления раздела, но остановился, не решившись подтвердить. Ему захотелось узнать, что же хранилось на этом разделе. В любом случае стереть диск он всегда успеет. Но если поспешит и сотрёт раньше, то никогда не узнает, что же там хранилось. И Витя вышел из программы. А затем, выключил компьютер и снял винчестеры, чтобы они не искушали и не мешали.

Для начала хотелось разобраться с компьютерами и программным обеспечением. Грузиться можно с дискеты. Лучше, конечно, установить систему на винчестер, но без них прожить какое-то время тоже можно. А вот программы как раз отсутствовали. На дискете лежал командный интерпретатор, несколько системных утилит и набор разных драйверов. Любопытной показалась утилита "debug", которая позволяла писать и читать простенькие программы, а затем их запускать и отлаживать. В неё встраивался примитивный ассемблер и дизассемблер. Только вот даже на "Спектруме" имелся более мощный ассемблер. Хотелось же чего-то более мощного и крутого. Витя читал о "Turbo Basic", "Turbo Pascal", "Turbo C", "Macro Assembler" и других интересных инструментов. Возможно, в компьютерном магазинчике, имелось, что-то такое, но Витя не заметил на Ветрине ничего подходящего. Было бы полезно завести хорошее знакомство с парнями из компьютерного магазина. Они наверняка в теме, чего-нибудь подскажут или подкинут. Но стоит ли отвлекать серьёзных людей всякими глупостями? А пока проще самому поколупать программы. Кроме различий в процессоре и архитектуре ему ничего не мешало самостоятельно перенести программы со "Спектрума". Значит, нужно изучать эту самую архитектуру и систему команд.

Подросток переставил под стол первый IBM-486 со встроенным дисководом, переложил провода и отодвинул "Спектрум" в сторону. Второй компьютер убрал в шкаф, чтобы не загромождал свободное место и не мешался. Переставил осциллограф и телевизор "Рекорд" подальше, а самодельный монитор наоборот, придвинул ближе. Всё равно места на двух столах катастрофически не хватало и мальчишка не мог его расширить, разве только ещё чего-нибудь убрать. Поскольку клавиатура могла работать только для одного из компьютеров, то Витя также убрал "Спектрум" и подключённый к нему телевизор. Заодно снял второй дисковод и переставил его в "четвёрку". С двумя дисководами работать с компьютером стало гораздо удобнее. А без громоздкого телевизора на столе появилось свободное место.

Виктор вставил во второй дисковод новую дискету и отформатировал её. Мальчишка решил оставить MS-DOS, который его вполне устраивал. Он считал, что добра от добра не ищут. Старый DOS вполне соответствовал простым требованиям, он умел запускать программы, управлять файлами, а вроде большего от операционки и не требовалось. Зато хотелось поскорее перенести другие привычные программы. А в первую очередь — полноценный Ассемблер, который облегчит перенос других программ.

Исходник Ассемблера имелся на бумаге. Но он требовал серьёзной и вдумчивой переработки. Во-первых, программа транслировала мнемоники в машинные команды для процессора Z80, а требовалось их транслировать в команды для процессора X86. Во-вторых, сама программа предназначалась для процессоров Z80, а вовсе не X86. И в-третьих, вспомогательные функции вызывались из встроенного Бейсика, а следовало использовать прерывания. Так же наверняка имелось множество различий, о которых Виктор мог лишь догадываться.

Зарывшись в библиотеке, подростку удалось раскопать сразу две интересных книжки о процессоре 8086 и о процессоре 80386. Улов оказался даже толще, чем он мог надеяться. Мальчишка перерисовал таблицы всех команд и выписал пояснения к ним. Дома же поспешил проверить команды. Выяснилось, что "debug" понимал лишь самые базовые команды, но зато они правильно работали. А вот команды для процессора 386 работали через одну, иногда даже подвешивая машину. Поэтому Витя отложил их на будущее, намеренно ограничившись только базовыми командами.

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

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

Мальчишка лишь подсматривал реализацию нужных алгоритмов. Всё остальное различалось слишком сильно. Приходилось много экспериментировать и проверять, что же получится. Казалось очень необычным вызывать прерывание, чтобы открыть файл, записать данные и закрыть. Но шаг за шагом подросток переписал Ассемблер. Некоторые функции глючили на ровном месте или вообще отказывались работать. Другие же функции просили встроенные функции из ПЗУ. Кое-какие функции Витя перенёс, а остальные пришлось заново придумывать и самостоятельно программировать. В итоге новый транслятор мнемоник заметно отличался от своего прототипа.

Довольно много времени ушло на вылизывание сомнительных мест и устранения неожиданных багов. Поскольку "debug" самостоятельно не умел рассчитывать адреса, то мальчишке пришлось пересчитывать адреса процедур и переменных. Подобное скучное занятие ему откровенно надоело. Как только он удостоверился, что транслятор перестал хулиганить на тестовых примерах, то сразу же удалил из исходников специальные команды, вставил именованные метки и ассемблировал транслятор "самим собой". Поскольку синтаксис мнемоник для нового транслятора заимствовался из "debug", то в исходниках переделывался лишь самый минимум. После чертыханий, поисков забытых команд и дописывания заголовка, новый Ассемблер наконец-то собрался. Результат получился сомнительным и подростку сразу захотелось переписать его или даже написать новый по мотивам собственных мыслей и приобретённого опыта. Но ему уже надоело возиться с Ассемблером и хотелось заняться чем-то более интересным.

Погуляв и отдохнув, подросток всё же заставил себя немного привести транслятор в порядок. Слегка причесал текст исходного кода и вставил поясняющие комментарии. Сделал правильные вызовы функций, лучше подходящие для архитектуры x86, раньше он писал иначе. Переработал обращение к памяти, которой стало гораздо больше на новой машине. Переделал принципы работы с регистрами процессоров. А затем переработал внутреннюю таблицу команд процессора. Работа опять увлекла и затянула. Изначально мальчишка брал лишь самые простые команды и "прибивал их гвоздями", наплевав на размерность операндов. Но читая книги, а затем, практикуя, не просто осознал, а прочувствовал разницу между процессорами Z80 и x86. Своё новое понимание он постарался вложить в транслятор. Получилось лишь с пятой попытки, зато эффект превзошёл самые оптимистичные ожидания — заметно ускорились программы, собираемые переделанным Ассемблером, включая сам транслятор. И такой программой правомочно гордиться, называя её своей, поскольку она уже не походила на исходную версию.

к оглавлению

Фрагмент 38A

Виктор уже давно мечтал о собственном велосипеде. То желание почти забылось, но не совсем ушло. Пешее возвращение в город опять напомнило подростку о мечте. Он жалел терять время на дорогу до будущей базы. Поэтому у него возродилась идея сделать личный транспорт. Какой-нибудь, как-нибудь, пусть даже самый простой, лишь бы ездил.

Предыдущая глава  
↓ Содержание ↓
  Следующая глава



Иные расы и виды существ 11 списков
Ангелы (Произведений: 91)
Оборотни (Произведений: 181)
Орки, гоблины, гномы, назгулы, тролли (Произведений: 41)
Эльфы, эльфы-полукровки, дроу (Произведений: 230)
Привидения, призраки, полтергейсты, духи (Произведений: 74)
Боги, полубоги, божественные сущности (Произведений: 165)
Вампиры (Произведений: 241)
Демоны (Произведений: 265)
Драконы (Произведений: 164)
Особенная раса, вид (созданные автором) (Произведений: 122)
Редкие расы (но не авторские) (Произведений: 107)
Профессии, занятия, стили жизни 8 списков
Внутренний мир человека. Мысли и жизнь 4 списка
Миры фэнтези и фантастики: каноны, апокрифы, смешение жанров 7 списков
О взаимоотношениях 7 списков
Герои 13 списков
Земля 6 списков
Альтернативная история (Произведений: 213)
Аномальные зоны (Произведений: 73)
Городские истории (Произведений: 306)
Исторические фантазии (Произведений: 98)
Постапокалиптика (Произведений: 104)
Стилизации и этнические мотивы (Произведений: 130)
Попадалово 5 списков
Противостояние 9 списков
О чувствах 3 списка
Следующее поколение 4 списка
Детское фэнтези (Произведений: 39)
Для самых маленьких (Произведений: 34)
О животных (Произведений: 48)
Поучительные сказки, притчи (Произведений: 82)
Закрыть
Закрыть
Закрыть
↑ Вверх