Что представляет собой БК0010


Честно говоря, году этак в 1995 я был бы весьма удивлён, увидев знакомого с компьютерами жителя России, никогда не видевшего БК. Но засилье IBM PC даёт о себе знать, и таких людей в настоящее время становится всё больше и больше. Я сам не раз попадал в такую ситуацию, когда обнаруживал где-нибудь на Аминете эмулятор компьютера, про который никогда в жизни ничего не слышал. Кроме того, авторы таких эмуляторов, как правило, предполагают, что пользователь данного программного продукта всю жизнь провёл на эмулируемой машине и знает её вдоль и поперёк, а не знакомым с данной машиной пользователям этот продукт будет совершенно не интересен. Ситуация получается довольно простая: пользователь даже не знает, как что-нибудь запустить (о том, как это сделать в данном случае, читайте здесь). На машинах с ROM BASIC тут же идут в ход всевозможные LOAD"xxx" и RUN"xxx", далеко не всегда оказывающиеся подходящими. Чем-то похоже на попытку ограбления квартиры - в надежде, что её хозяин, уходя, оставил ключ под ковриком при входе :) И ещё не известно, кто ждёт вора в квартире - деньги в холодильнике или злая собака...
Итак, что же у нас запасено в холодильнике?

Характеристики БК0010
О чём речьНа что похоже
Процессор Aналогичен младшим моделям PDP-11 фирмы Digital Equipment Corporation. 1801BM1, работающий на тактовой частоте 3 MHz (БК0011М - 4 MHz) и выполняющий при этом порядка 250000 «коротких» операций в секунду (операций типа регистр-регистр). Процессор PDP-11 очень схож с 680x0, что заметно облегчило его эмуляцию. Более подробно о системе команд этого процессора Вы можете почитать здесь на английском языке. Достаточно широко был распространён разгон процессора с трёх до 4 и даже 6 MHz. Ввиду того, что абсолютное большинство программ на БК написано на ассемблере с применением достаточно нетрадиционных для настоящего времени подходов к оптимизации, реальная производительность БК на многих задачах не так уж и мала.
Память Адресное пространство PDP-11 без страничной памяти (MMU) составляет 64 килобайта. Из них 32 килобайта отведено в БК0010 на оперативную память, и оставшиеся 32 - на различные расширения. Оперативная память делится на отображаемую на экране видеопамять и неотображаемую основную. В двух различных вертикальных разрешениях на видеопамять отводится соответственно 16 и 4 килобайта. Оперативная память находится с нулевого адреса. ROM находится с адреса $8000, первые 8 килобайт его - монитор, или «по-нашему», kickstart. Следующая часть адресного пространства используется либо под ROM BASIC, либо под расширение оперативки. Самый конец адресного пространства отводится под порты ввода-вывода, как интегрированных контроллеров, так и периферии.
Видео Видеоконтроллер БК имеет два видеорежима - монохромный и цветной, и два вертикальных разрешения (независимо от цветности) - 64 или 256 строк. В монохромном (чёрно-белом) режиме горизонтальное разрешение составляет 512 точек, а в цветном - 256 точек с фиксированной палитрой (чёрный, красный, зелёный, синий). Программное переключение цвет/монохром на реальном БК недоступно, отображение зависит от того, к какому из видео-выходов БК подключён монитор. Это привело к некоторой неразберихе среди программного обеспечения - авторы программ обычно пишут их под имеющееся оборудование, и если «цветные» программы в монохромном режиме смотрятся прекрасно (как градации серого), то «монохромные» в цветном режиме просто ужасны. В эмуляторе этот вопрос решён достаточно просто - переключением режимов с клавиатуры и возможностью указать режим для каждой конкретной программы.
Видеоконтроллер имеет аппаратный скроллинг по вертикали - возможность указать, с какой строки начинать отображение экрана. Экран «свёрнут» в кольцо, то есть - если он отображается не с начала видеопамяти, то при достижении конца следующая строка идёт уже с начала. Вертикальное разрешение изменяется путём запрета отображения нижних 3/4 экрана - так называемый «РП-режим», позволяющий использовать освободившуюся при этом память в качестве основной. При запрете отображения нижней части экрана вертикальный скроллинг продолжает работать как обычно, что используется при реализации некоторых видеоэффектов. Структура видеопамяти несколько отличается от обычной для AMIGA.
Звук Звуковые возможности БК0010 особо не выдаются - это всего лишь однобитный цифровой выход и встроенная «пищалка». Процессор имеет возможность в любой момент времени установить этот единственный бит в нужное состояние, и даже такая возможность породила множество попыток получить различные звуковые и музыкальные эффекты. В последнее время получили достаточно широкое распространение такие расширения, как COVOX и «музыкальный сопроцессор» Yamaha YM-2149F (он же General Instruments AY-3-8910).
Клавиатура В последних моделях БК устанавливалась довольно приятная 74-клавишная компактная плёночная клавиатура, немногим уступающая Вашей :) Контроллер клавиатуры берёт на себя все действия по её обслуживанию, и программа получает прерывания и коды нажатых клавиш (именно 7bit ASCII коды, а не скан-коды или опрос матрицы). В общем работа клавиатурного контроллера больше похожа на работу текстового терминала, с одним лишь отличием - есть возможность программно определить, нажата ли в данный момент какая-либо клавиша, или нет. Более подробно работа клавиатуры и её эмуляция описана здесь.
Интерфейсы Магнитофонный вход-выход. Выход магнитофона функционально совмещён со входом, вход - компаратор, позволяющий программе опрашивать полярность поступающего сигнала. Формат записи на ленту - файл с заголовком, записывающийся с частотной модуляцией на скорости 1200 baud. Есть программно управляемое реле, предназначенное для коммутации привода лентопротяжки.
Интерфейс процессорной шины МПИ, аналогичной шине Q-Bus PDP-11. Используется для подключения сетевых контроллеров ИРПС локальной сети КУВТ-86 (в последнее время использующихся для подключения модемов) и контроллеров дисковых накопителей - 5.25", 3.5" дисководов и IDE винчестеров.
Параллельный 16-битный порт, имеющий 16 входных и 16 выходных линий, а также запрос на прерывание и питание. Программно доступен как 16-битный порт, без особых «наворотов». Вся известная периферия, кроме упомянутой ранее (кроме COVOX), подключается именно к нему.


COVOX представляет собой восьмибитный DAC (цифро-аналоговый преобразователь), подключающийся к параллельному порту. Ввиду невероятно простой конструкции он легко повторяется даже неопытными пользователями, и поэтому в последнее время получил достаточно большое распространение. Улучшение качества звучания при этом просто несравнимо с материальными затратами на его изготовление. Однако, это устройство не позволяет проигрывать музыку и при этом делать что-то ещё, более сложное, чем имитация «осциллографа» либо какие-то другие простейшие эффекты.


Перейти к [ Содержанию ] [ FAQ ]