Важная информация
  • БКашка - моя первая любовь

    Автор: Евгений Пашигоров

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

    По крайней мере, это был или конец 1989 г., или начало 1990 г. Мой друг Толик Кадников привел меня в компьютерный класс (в котором он сам смонтировал локальную сеть из 10 компьютеров БК0010-01 и машины учителя ДВК-3) и показал мне ее.


    Нет, это не БКашка. Но это ее родственники: ДВК-4, внешне такая же, как ДВК-3 (была машиной учителя в КУВТ-86), только монитор цветной, и справа - УК-НЦ (двухпроцессорная машина), тоже с цветным монитором (впоследствии я для своей БКашки купил такой же)

    Компьютер я хотел иметь всегда. Еще когда прочитал Стругацких "Понедельник начинается в субботу". В то время компьютеры были большими... Воображение рисовало картины в виде здоровенных панелей с россыпями лампочек, переключателей, клавиш, ползущей из щелочки перфоленты, экранов осциллографов... И уже тогда я знал, что напишу программу для игры "Жизнь" Конуэя. Когда я прочитал про нее в книжке Гарднера, меня очень увлекла идея игры, и я даже пытался "вручную" проследить эволюцию простых конфигураций с помощью карандаша и ластика, но это было слишком медленно.

    1977 год. Университет, первый курс, программирование... Первый язык программирования - алгол-60. Оглядываясь назад, одобряю выбор наших преподавателей. Мощный, структурный, понятный. В качестве первого языка программирования очень даже хорош. (После него стандартный ПАСКАЛЬ показался мне каким-то упрощенным или недоделанным.) Польская машина "Одра", устройство ввода - перфолента, вывода - печатающая машинка "Консул". Память у нее была на ферритовых колечках (каждое колечко - 1 бит). Как на такой машине работал компилятор, сейчас даже представить не могу!

    Пятый курс. Друг Сашка Бредихин приобрел себе программируемый калькулятор "Б3-34". Как я ему завидовал! Это же был настоящий компьютер! Он мог запомнить 98 шагов программы, 98 нажатий на клавиши. А я считал интеграл для своего диплома на простом калькуляторе всю ночь (так и не знаю до сих пор, сколько раз я нажал не ту клавишу %).

    Я купил себе похожий калькулятор ("МК-51") уже когда стал работать, в году примерно 1985-86. И даже запрограммировал для него пару игр, и еще пару взял из "Науки и жизни". Удивился, что оказалось возможным реализовать самообучающийся алгоритм ("Чет-нечет"). С завистью читал в "Науке и жизни" про отечественный калькулятор с Бейсиком. Он со страшной силой превосходил по всем параметрам мой МК-51. Но в продаже его так и не видел никогда.

    Были даже планы собрать компьютер самому. Тогда это было модно. Точнее сказать, иначе просто негде было его достать. Помню, было на выбор несколько вариантов: "Спектрум", "Радио-86РК" и "ЮТ-88". Больше всего меня привлекал "ЮТ-88". У него была очень удачная концепция: начиналось все с программируемого калькулятора (на базе К580ВМ80), затем, добавляя модули, постепенно расширяли клавиатуру, память, дисплей, и в конце концов получался нормальный комп.

    Но в нашем медвежьем углу я не смог насобирать деталей даже для него. (думаю, что это было к лучшему, иначе я мог бы и не обратить внимания на БКашку, которую расхваливал мне Толик в "дисплейном классе"). Надо сказать, что это не была любовь с первого взгляда. Никакого впечатления она на меня не произвела. Смешная неуклюжая клавиатура, смешные цветастые буковки на цветных мониторах (ужасного качества), их и прочесть-то невозможно было (правда, Толик их читал совершенно свободно, и со временем оказалось - читаются запросто!).


    Но! Толик сказал: там 16-разрядный процессор. Я просто не поверил вначале. Самый лучший домашний компьютер в то время, который я знал, был Спектрум, который все называли "Синклером". Но и он внутри имел 8-разрядный Z80 (правда, это был наилучший из всех 8-разрядных микропроцессоров).

    Сравнение БК0010 и "Спектрума"

    Технические параметры
    БК0010
    16-разрядный, 3 MHz
    8 регистров общего назначения
    16-битная шина адреса/данных
    быстродействие - 300 тыс. оп/сек (регистр-регистр)
    ОЗУ пользователя 16К видеопамять 16К
    ПЗУ Монитор 8К/Бейсик 24К
    Видеорежимы: 1) 512х256 черно-белый 2)256х256 4 цвета
    Спектрум
    8-разрядный, 3.5 MHz
    8 регистров общего назначения
    16/8 бит шина адреса/данных
    быстродействие - 500? тыс. оп/с
    ОЗУ пользователя 48К видеопамять 6.5К
    ПЗУ Монитор/Бейсик 16К
    видеорежимы: 256x192 15 цветов

    С точки зрения пользователя

    Спектрум, конечно лучше по программам (особенно играм): их количество и качество значительно превосходит БКашное ПО. Это неудивительно: программы писали профессионалы. А для БКашки весь софт без исключения написан самими пользователями. Зато графика у БКашки заметно лучше Спектрумовской, несмотря на его 15 цветов (на самом деле в нем только текст имеет честные 15 цветов).

    С точки зрения программиста

    Здесь большую роль играют личные привычки. За себя могу сказать лишь, что после DEC'овского ассемблера БКашки Спектрумовский выглядит очень убого. Программирование экрана на Спектруме тоже задача не простая, он не линейный как в БК, а строки как-то чередуются, кроме того, точки не могут иметь любой цвет (имеется 32х24 знакоместа, в которых точки могут быть двух цветов - символа и фона). Работа с текстами на Синклере с его низким разрешением тоже удовольствие ниже среднего (видели мы тексты на БКашке в цветном режиме!). Да и кнопочек на клавиатуре маловато, русскоязычному пользователю, наверное, три регистра надо, чтобы все буковки ввести.

    А во всех журналах рекламировались разнообразные "Векторы", "Партнеры", "Микроши", "Агаты" и пр., пр., всех не перечислить. Все 8-разрядные. А еще, оказывается, были и зарубежные домашние компьютеры, о них мы вообще ничего не знали.

    Про 16-разрядные процессоры я тогда только в книжках и журналах читал, и ужасно завидовал буржуям, что у них уже это есть. Это и решило дело. И через некоторое время Толик привез мне ее (из Москвы в нашу Тьмутаракань).

    Обычная картонная коробка, внутри которой была она, блок питания, черненькая коробочка МСТД, шнуры и две тоненькие книжечки: описание Бейсика и руководство системного программиста. МСТД содержал загадочный язык ФОКАЛ. Бейсик - это было понятно. А вот руководство системного программиста - абсолютно не читалось! Вроде бы на русском языке, но абсолютно ничего не понятно. Умеют все-таки у нас делать описания! (Это, кстати, относится к любой нашей технической документации. Вся она написана так, чтобы невозможно было понять, как и что нужно делать, как это все работает.)

    Бейсик - как азбука, изучать было нечего. Но он встроен в БКашку, включил -- и вот он. Работай! Сразу полез в графику, как ставить и стирать точки. Игра Конуэя "Жизнь", вот что надо было сделать для своего компьютера. Быстродействие в 300 тыс. операций в секунду впечатляло. Я же не думал, что это так мало! Моя программа вывела на экран "планер" и задумалась... Следующего хода я не дождался. Когда написал тестовую программу, заполняющую точками экран и увидел, как ползет линия по дисплею, понял: Бейсик мне не поможет, соптимизируй я эту программу и в 100 раз! Пришлось учить ассемблер.

    Хорошо, что Толик достал где-то через знакомых книжечку (могу наврать в названии) К. Лин "Архитектура ЭВМ и программирование на языке ассемблера". Вот написал, а такое ощущение, что она называлась совсем не так. Ну ладно. В ней была описана система команд компьютера PDP-11. И почти все подходило к БКашке (ура!). Так как книжку надо было отдать, пришлось переписать в тетрадку все, что было возможно.

    Так это и прошло параллельно: писал программу и учил ассемблер. Смешно вспоминать, как все это изучалось, читая "Руководство системного программиста" и пытаясь понять, что все-таки имели в ввиду авторы. Потом как-то сразу пришло понимание (Лин помог).

    В результате появилась моя первая программа на ассемблере - реализация игры "Жизнь" Конуэя. Сама программа утеряна, осталась только тетрадка с черновиком программы. Но она работала. (Недавно стало интересно попробовать, и я еще переписал "Жизнь" заново. Результат того стоил. Скорость возросла раз в 10.)

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

    Да, мне повезло. И книга толковая попалась, и ассемблер просто замечательный - MICRO1103, и система команд процессора... Это же просто праздник какой-то! После DEC'овского ассемблера на другие и смотреть не хочется. Убогие они все!

    Долгое время единственным устройством внешней памяти был магнитофон. В результате разборок с драйвером магнитофона был написан собственный копировщик (а кто их не писал?) с разными скоростями записи-чтения. Этот копировщик я назвал SEZAM (сетевой загрузчик с магнитофона. К тому времени мы смонтировали БКашный класс в поселке Февральск, и повышенные скорости записи пригодились для одновременной загрузки программ с компьютера учителя (тоже БКашки) в компьютеры учеников). Пришло осознание того факта, что на магнитной ленте со штатным драйвером большей скорости, чем двойная, не достичь, падает надежность. После долгих экспериментов был все-таки разработан собственный формат записи и копировщик Compact-Copy (1991 г), который в своем формате записывал в 3 раза плотнее штатного. До сих пор в ящике стола валяется кассета с программами, записанными в этом формате.

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


    Энтузиазма хватало, хотелось сделать что-то настоящее, ну и начал потихоньку. Весной 1991 г. начал писать редактор текста для ЛОГО. Работа заняла в общей сложности год. В качестве монитора использовал малюсенький телевизор "Электроника-11", черно-белый, 11 см по диагонали. Хотя и маленький, но картинку он давал отличную, на буквах пикселы сливались, знаки получались четкие-четкие! Внешние носители - аудиокассеты. В корпус от большого, но переносного кассетника я вставил вторую деку, получив два в одном. Удобство значительно возросло. На левой деке - системные программы: ассемблер, отладчик, редактор текста, на правой - файлы разработки.


    ЛОГО был полностью завершен на этой системе. Я продал (!) его НПО "Альтернатива" из Барнаула в феврале 1992 г, и они какое-то время поставляли мой ЛОГО в составе программ для КУВТ-86.

    Очень не хватало принтера. Но в то время он стоил недешево. Ну что ж, печатали на всем, что печатает! Подключил БКашку к телетайпу F1100, написал программу для печати текстов на нем. Распечатывал документацию, исходники программ. Хоть и медленно печатает, но читать все-таки удобнее с бумаги. Печатал я тексты и на польской "друкарке" DZM-180. Этот принтер был весьма неплохим: мог печатать на перфорированной бумаге (и узкой, и широкой) со скоростью 180 знаков в секунду!

    Эх, десятка, десятка! Всем хороша была, но уж больно память куцая. Куда разработчики смотрели, оставляя пользователю 16к из 48к возможной памяти, я не могу понять. Да в общем-то это не единственный недостаток БКашки, но самый крупный. И тем не менее были созданы очень хорошие программы (в большинстве, конечно игры) именно для 10-й БКашки.

    И все же, когда Толик привез мне 11-ю, у меня появилась настоящая персоналка. 128к памяти! На первых порах ее нечем было занять.

    Именно в этот период мы сдружились с Пашкой Сизых, тоже счастливым обладателем БК0011М, что позже привело к образованию программистского союза "Flame Associated" на базе амбициозного проекта "Принц", но об этом ниже.

    Моя БКашка

    А вот так выглядела моя БКашка после всевозможных доработок.


    Фотка не очень, но, как оказалось, других просто нет; за клавиатурой моя младшая дочка Лидочка

    Для наших компьютеров мы с Пашкой сделали дюралевые корпуса. Внутри - плата БКашки, блок питания, контроллеры дисковода и винчестера, сам винчестер на 40 Мбайт, музыкальный сопроцессор + динамик + выход на внешние колонки. Сверху на системном блоке цветной монитор "Электроника МС6106" - один из лучших отечественных (у меня он прекрасно работал и в черно-белом режиме высокого разрешения, и в цветном). На передней панели виден дисковод Teac 800K, вместо второго дисковода заглушка с лампочкой винчестера. Три кнопки слева - "Сеть", "Reset" и громкость внутреннего динамика. Справа под стопкой тетрадок, распечаток, дискет - принтер D100M, на принтере колонка (вторая в кадр не попала). Сверху на мониторе - гарнитура телефона/модема (виден микрофон и оголовье, наушник закрыт трубой).

    У Пашки было примерно так же, только монитором работал CGA-монитор от IBM-ки.

    Сперва показалось, что 11-я совершенно несовместима с 10-й. Даже не читала файлы с магнитофона! 11-й Бейсик не понимал бейсиковые программы с 10-ки. После внимательного чтения документации оказалось, что можно заставить читать с магнитофона десяточные файлы. Загрузили с магнитофона монитор 10-ки, и 11-я превратилась в обычную 10-ку. Но оставалась куча страниц неиспользуемой памяти. Идея сделать RAM-диск просто напрашивалась, и я довольно быстро написал добавку к монитору 10-ки, позволяющую работать с ram-диском в 80к величиной. Учитывая, что программы для 10-ки были не более 16к, на диск помещалось более 5 программ/файлов. Это было клево: запустил ассемблер, скомпилировал программу, тут же ее запустил, посмотрел в отладчике. И ни разу магнитофон не понадобился! Класс!

    В 11-й появились палитры. Господи, до чего убогие! Из возможных 16 реально смотрелись на экране 3-4 штуки, остальные глаз совершенно не радовали. И вообще видеоадаптер сделан был просто отвратительно! Решительно не пойму, чего не хватило разработчикам, чтобы, добавив 1-2 микросхемки, сделать нормальные видеорежимы (на Пашкиной БКашке мы добавили одну микросхемку, и вместо дебильной палитры с 3 белыми! цветами у него появлялась палитра высокого разрешения 512х256 белый на синем!).

    Потом были подключены дисковод и через год - винчестер. Разрозненность разработчиков привела к появлению слишком большого числа "дисковых операционных систем".

    Ох уж эти БКашные "операционные системы"!

    В кавычках, потому что скорее это были запускалки файлов, умеющие лишь записать, прочитать и запустить файл с диска. Мне неизвестны ОС для БК, в которых были бы функции произвольного доступа к файлу. Возможно, они были в таких системах как CSI-DOS и HC-DOS, но нам не попалось ни одного файла с документацией на эти системы.

    Единственная "настоящая" ОС для БК была RT-11SJ, адаптированная к БК А. Саяпиным (Москва). Хороша она была тем, что к тому времени была широко известна, на нее имелась хорошая документация, в ее состав входили компиляторы С, Паскаля, Фортрана, Макроссемблера.

    Но она не получила распространения. Этому способствовали, по-моему, такие обстоятельства, как

    • неумение работать со страничной памятью БК0011М
    • неумение без "подпорок" запускать БКашные программы
    • на некоторые модули (в частности, на оболочку Inter Commander) авторы зачем-то ставили защиту от копирования
    • она не шла на 10-ке
    • ну и конкуренция со стороны АНДОС и МКДОС, которые при всей их примитивности вполне удовлетворяли потребности большинства пользователей


    Вначале у нас была МикроДОС. Эта вообще ничего не умела. У нее было жалкое подобие командной строки с командами COPY, DELETE и RUN. Но она работала с дисководом! К тому же у нее был очень простой формат диска, что, например, позволило мне легко встроить ее поддержку в свой RAM-диск.

    Потом появились МК-DOS (Королев, Бутырский) и ANDOS (Надежин, Камнев). Ну, МК-DOS- это была та же МикроДОС, но у нее была Нортон-подобная оболочка. А для ANDOS авторы сделали поначалу такую странную оболочку с одной панелью, что пользоваться ею желания не возникало, хотя у нее был гораздо более привлекательный формат: MS-DOS 800K, а это обеспечивало практически полную совместимость по записи-чтению с IBM PC. (В защиту этой оболочки ANDOS хочу сказать, что она была сделана для цветного режима низкого разрешения, поэтому пользователи только цветных мониторов видели нормальные буквы, а не цветастые.)

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


    Из Самары приходили крутые демо, сделанные под CSIDOS (Мельников, Кутяков).


    Но, видимо, самарцы не хотели, чтобы их система широко распространялась, так как на дисках не было никакой документации. А парни из Ростова на Дону (Борисенко, Тюрев) сделали какую-то HC-DOS, под которой мы резались в MAGICIAN, но что это за система и какие ее свойства, так и осталось тайной.

    Мы выбрали для себя ANDOS, как наиболее совместимую и стандартную.

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

    Но он тогда предложил написать для 11-й игру, которая использовала бы все ее возможности - сделать "Prince of Persia". И я позволил ему втянуть меня в эту авантюру! С большими перерывами работа над проектом продлилась около 5 лет.

    Повесть о Принце Персии

    Сначала я отнесся к этой идее скептически: и быстродействие, и память явно малы для игры такого уровня. У меня были планы попроще: сделать Zeliard или Supaplex (и почему мы не начали с них?).


    Пашка вроде бы отступился, но через несколько дней пришел с демонстрашкой, на которой горел факел из Принца! Да, это было красиво, но ведь игра потребует гораздо большего!

    Но Пашка не унимался и регулярно приносил демки, в которых принц бежал, выпивал кувшин, карабкался вверх на плиту. Он убедил меня, что хотя бы попробовать стоит.


    Мы поделили работу. Паша начал работать с графикой (останавливал игру на паузе и перерисовывал спрайты по точкам в тетрадку), а я начал писать модуль вывода спрайтов на экран. Размеры экрана на БКашке отличаются от размеров экрана EGA/VGA IBM PC, поэтому спрайты принца пришлось изменять, подгоняя под новые размеры, а спрайты обстановки и вовсе пришлось рисовать заново.

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

    Много сил ушло на то, чтобы спрайты не мигали. Практически во всех БКашных играх спрайты мигают. Вначале мы думали, что это дефект видеоадаптера, но все объяснялось просто: при движении спрайта его необходимо стереть в одном месте и вывести в другом. Т.е. некоторое время на экране спрайта нет. Вот и проглядывает временами через него фон, что и выглядит как мигание. Когда мы это поняли, проблема была решена (Хотя для этого пришлось завести скрытый экран, теряя 16К памяти). Но спрайты в нашем "Принце" не мигают!


    (Интересно отметить, как одна и та же задача одинаково решается разными людьми. Разбираясь с IBM-ским "Принцем", мы нашли множество "секретных" кнопок, в том числе и ту, которая показывала скрытый экран, на котором мигают IBM-овские спрайты).

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


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

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

    Зато, когда Пашка приехал в отпуск, я запустил "Принца" и с гордостью сказал: давай, побегай! Он "побегал", посмотрел на меня ошалелыми глазами и сказал: да это же готовая программа! Мы оба не представляли себе, сколько еще надо было сделать! Дело в том, что лабиринт был еще статическим. А в настоящем полно всяких решеток, падающих плит, кнопок и т.д. Еще и стражники оставались на закуску.


    Была еще одна проблема: для 11-й БКашки не было нормального ассемблера. Мы работали в MICRO1103 (я в нем и начинал). Попробовал хваленый MICRO8+ , преимуществ не нашли, а вот длина имени в 3 символа заставила сразу выкинуть его на помойку. Потом появился ТУРБО6. Переползли вроде на него. Но он, мало того что тормозил, еще и неправильно генерировал код. Вернулись обратно в старый испытанный МИКРО11.

    Когда число модулей стало подбираться к десятку, связывание их превратилось в пытку. Все приходилось шлепать с клавиатуры, то пропустишь какой-нибудь файл, то два раза слинкуешь - и опять все заново. И тут я вспомнил, что в БК существует режим псевдоклавиатуры: можно программе подсунуть текст в памяти, и она будет думать, что он вводится с клавиатуры. Стали разбираться. Вначале пришлось сломать МИКРО11, он нестандартно работал с клавиатурой. Потом оказалось, что длина текста ограничена 256 символами. Пришлось сломать и Монитор (благо он сидит в 11-й в ОЗУ), увеличили длину текста до 65536 символов. И появились у нас make-файлы.

    Красота! Запустишь его, и все само линкуется, и не ошибается! Через некоторое время мы уже не представляли себе, как можно по-другому работать, у нас в автоматическом режиме собирались огромные куски данных и кода. Это сильно повысило производительность, стало гораздо легче править ошибки: перекомпилировал один модуль и запустил пересборку, оно само все пересобралось.

    А когда мы убедились, что МИКРО11 умеет компилировать текстовые файлы в формате VorteX! (а это, несомненно, лучший редактор из всех, написанных когда-либо для 10-й), то у нас подобрался отличный пакет для программирования на ассемблере: редактор, компилятор, make и еще пара утилиток, улучшающих программирование для 11-й, плюс замечательный трассировщик TRACER. Сомневаюсь, чтобы у кого-либо программировавшего на БК0011М был лучший набор инструментов.

    Поскольку Пашка, вернувшись из армии, устроился оператором ЭВМ, у него всегда под рукой была ИБМка. Некоторое время у него на работе на столе стояли рядом IBMка и БКашка (к этому времени мы уже сделали для наших БКашек корпуса по типу персоналок и даже оснастили их винчестерами). Паша оживлял лабиринт, заставляя двигаться решетки, пилы и шипы. Качал и ронял плиты, нажимал кнопки.

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

    Стало не хватать звуков. Хорошо, что у нас уже был опыт работы со звуком на БК. Решили выводить оцифровки на динамик, чтобы было совместимо со стандартной БКашкой. Но как их вытащить из IBMки? Промучившись некоторое время, Пашка, настоящий хакер, сломал оригинального "Принца", изменив вывод звука вместо динамика на принтер, который печатал искомые байты звуков. Так что и звуки нашей версии Принца полностью соответствовали оригиналу.

    Но был уже 1995(96) год. Уже вовсю распространялись IBM PC, их мощность росла буквально на глазах. Оперативную память уже считали мегабайтами, а тактовую частоту - десятками мегагерц. Интерес к БКашке угасал. В общем, проект забросили больше чем на год.

    И вдруг мы получаем письмо из Сочи от некоего Григория Останина, в котором он вместе со своими друзьями-БКашниками прямо спрашивает, когда, наконец выйдет "Принц", сколько еще ждать? Мы ответили в том смысле, что уже не думали, что наша работа еще кому-то нужна, но раз такое дело, то за месяц-два беремся наш проект завершить, тем более, что осталось добавить только стражников и промежуточные мультики.

    Записали им дискету с последней рабочей версией "Принца", игрушку "Color Lines", архиватор LZ, схемный редактор и звуковое/графическое письмо (наговорили несколько слов через нашу звуковую приставку, вставили кусочек оцифрованной музыки).

    И с новыми силами бросились доделывать наш проект. На волне энтузиазма сделали стражников, отражение.




    Я даже написал линковщик к нашему ассемблеру, в котором добавил несколько фич, которых нам не хватало в MICRO1103.

    Кончилась память! Правда! Выкинули все, даже операционную систему, все равно не хватило. Пришлось делать своп: подгружали с диска спрайты принца с мечом и стражников.


    И вот на этом этапе все потихоньку заглохло. Да... В целом игра готова. Выловить немногочисленные глюки, добавить промежуточные мультики - и все. Не хватило духу. Слишком долго все тянулось. Я думаю, вот если бы не пропавшие те три года!


    Видно, не судьба была. Слишком быстро прогрессировали, да и сейчас прогрессируют персоналки. Я пишу эти строчки на стареньком субноутбуке IBM ThinkPad, а ведь это 133 МГц и 24 Мбайта памяти! А нынешние машины тактируются гигагерцами, имеют оперативную память под гигабайт и винчестеры, подбирающиеся к терабайту. И это не фантастика, а горькая правда.

    * * * * *

    Но и кроме "Принца" было сделано много чего.

    Я разработал и собрал "модемы" для БК,


    и мы с Пашкой получили возможность обмениваться файлами, не выходя из дома. "Модем" в кавычках, потому что это было просто согласование БК с телефонной линией, в программе для передачи/приема использовался драйвер магнитофона, доработанный с целью повышения скорости. Программа


    позволяла также набирать номер (гудки передавались на внутренний динамик БК).

    Добыли и подключили к БК звуковой сопроцессор AY1810.


    Заработали крутые музыкальные демонстрашки и игры, Паша набирал музыку в Rock Monitor'е и даже сочинял сам.

    Был также разработан АЦП


    для однобитной оцифровки звуков, для которого на ходу писалась программа, которая позже превратилась в настоящий звуковой редактор, позволяющий перегонять звуковые файлы и с IBM в разных форматах в однобитный формат, который БК играл на свой динамик (а с моего АЦП записывали и речь, и даже музыку, поток был около 1Кб/сек, на 11-ю БК влезало почти 1.5 минуты записи), а файлы COVOX'а можно было играть на AY.

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

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

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

    Ну и конечно, программировали.

    По мотивам статей в журнале Монитор я реализовал несколько упаковщиков, мы с Пашкой выбрали самый быстрый и сделали архиватор LZ.


    И очень скоро у нас все было им заархивировано, поскольку место на дисках экономилось вдвое, а времени на упаковку/распаковку тратилось немного.

    Написали игрушку Color lines.


    А дело было так. Моей дочери очень нравилась эта игра, IBM-ки тогда еще дома не было, и я решил сделать ее для БКашки. Придя ко мне как-то, Пашка увидел на экране монитора мои потуги (а в графике я никогда силен не был, вся графика в наших программах - это полностью Пашкина заслуга), спросил, это что, "Линии" что-ли? Что за фигня (а в общем, это и правда была фигня, я делал плоские кружочки, считая, что на БК объемные все равно не получатся)? Ну-ка, дай я…, и он сел за клавиатуру и минут за 10 нарисовал такой шикарный шарик, что я глазам не поверил. И поле сделал объемным.


    А какую заставку нарисовал! Да что говорить, игра удалась!

    А в планах был и Zeliard, и Wizardry, и Dangerous Dave... И теперь, с опытом работы с "Принцем", трудностей в реализации просто никаких бы не было. Не успели. Как-то очень быстро БКашка отошла от дел. Доконали ее IBM-ки своей сумасшедшей производительностью и доступностью. Уже у меня дома с год стояли одновременно 486-я и БКашка, а Паха свою БКашку примерно столько же времени не включал, работая в эмуляторе.

    Я еще успел сделать схемный редактор SET (все показанные схемы сделаны в нем),"Сапера"


    , и начал (в одиночку, уже без Пашки,он уже совсем тогда БКашку забросил) большой проект "Верная шпага короля" по одноименной книге-игре Браславского.


    И уже моя доча совершила подвиг, вколотив вручную более 200 страниц книги в БКашку, и уже заработал движок (можно было продвигаться по игре, выбирая альтернативы как в книге). Осталось добавить драки, еду, деньги и т.п. мелочи. Нарисовать картинки... Но... по указанным выше причинам, и еще по некоторым объективным, и этот проект так и остался незавершенным. Увы!

    * * * * *

    И все-таки моя БКашка жива. Она живет в моем домашнем компьютере, живет в моем маленьком ноутбуке (блин! он меньше БКашки!) и жива в моей памяти. Я всегда могу вспомнить, как это все было, взглянуть на позабытые игрушки, перечитать "запылившиеся" БКашные "газеты", вздохнуть, сожалея о незаконченных проектах, и порадоваться тому, что в моей жизни был этот компьютер, моя первая любовь - БКашка.

    май-июль, 2003 г.

    Комментарии 9 Комментарии
    1. Аватар для CityAceE
      CityAceE -
      Впервые данная статья была опубликована на форуме - http://forum.pk-fpga.ru. Здесь публикуется все всяких конкурсов по просьбе автора.
    1. Аватар для SKcorp.
      SKcorp. -
      Вообще-то эта статья была опубликована лет 10 назад, когда никакого пк-фпга не было:
      http://web.archive.org/web/200502041...sensi.org/~bk/

      А кто-нибудь видел вживую ДВК-4 в корпусе от ДВК-3 с цветным монитором внутри?
      Монитор для внутреннего исполнения отдельно я видел.
    1. Аватар для hobot
      hobot -
      http://pashigorov.pdp-11.ru/
      - сегодня пребывает так же тут ;0)
    1. Аватар для Bedazzle
      Bedazzle -
      Понравился и живой язык статьи, и сама история.
      Спасибо!
    1. Аватар для helcril
      helcril -
      Отличная статья! Было очень интерсно читать. Спасибо!
    1. Аватар для Q-Master
      Q-Master -
      У нас в школе был класс на БК с сетью и ДВК-2М (потом поставили ДВК-3) как машина учителя. Клавиатуры у БКшек были пробиваемые только кувалдой. Возможно просто от задолбанности.
    1. Аватар для peg
      peg -
      Цитата Сообщение от SKcorp. Посмотреть сообщение
      Вообще-то эта статья была опубликована лет 10 назад, когда никакого пк-фпга не было:.
      Да, конечно. Я постарался опубликовать статью, как только ее написал. У нас тогда еще и интернета толком не было!
      (Когда отдавал статью сюда, написал: была опубликована в том числе и на pk-fpga), Станислав, видимо, не обратил внимания и написал: впервые...

      - - - Добавлено - - -

      Да, советую посмотреть на http://forum.pk-fpga.ru/viewtopic.php?f=10&t=5376
      Здесь статья почему-то сильно урезанная: не работают ссылки на другие части.
    1. Аватар для CityAceE
      CityAceE -
      Статья была существенно переработана и дополнена.
    1. Аватар для Raydac
      Raydac -
      БК настолько крута, что суровые школьники могли сразу писать проги в машинных кодах не заморачиваясь каким то там ассемблером а бейсик был нужен только для записи в память