Домашние ПК в СССР и их эмуляция
"Upgrade" №167(2004 г).
🕛 18.05.2009, 16:30
Первый компьютер, за который я сел почти двадцать лет назад представлял собой набор из четырех печатных плат, полностью расчерченных и распаянных вручную. Все платы конструктивно были собраны в единое целое внутри каркаса из алюминиевых уголков и соединены между собой шинами данных. Собран этот экземпляр, пожалуй, первой в Советском Союзе модели домашнего персонального компьютера был моим отцом, по схемам, опубликованным в начале 80-х годов журналом "Радио". И хотя позже, во время учебы и первых лет профессиональной деятельности я очень плотно работал с другими отечественными ЭВМ, в частности МВК "Эльбрус-1" и "Эльбрус-2" (compmus9.valuehost.ru/histussr/elbrus12.htm), именно первая, самодельная модель ПК (их еще называли ЛК - "любительский компьютер", или РК - "радиолюбительский компьютер"), стала моей отправной точкой в мир IT-технологий. То же самое я могу сказать о многих своих знакомых, которые начинали с "Векторов", "Корветов", "Спектрумов", и других представителей семейства "домашних компьютеров".В этой статье я хочу кратко рассказать вам о первых отечественных персональных компьютерах, как "доспектрумовской" эпохи, так и тех лет, когда в СССР уже пришел ZX-Spectrum, и которому они иногда могли оказать вполне достойную конкуренцию. Обязательно остановимся мы и на самом ZX-Spectrum, ставшим знаковым явлением для отечественных компьютерных энтузиастов конца прошлого века.
А сейчас немного об элементной базе, на которой строились десятки разнообразных домашних компьютеров восьмидесятых и девяностых годов двадцатого века. Большинство восьмиразрядных компьютеров в качестве базового использовали микропроцессорный комплект КР580, "сердцем" которого являлся центральный процессор КР580ВМ80А. Данный ЦП представлял собой аналог Интеловского 8080A, и имел полностью аналогичную систему команд, что при некоторых доработках позволяло воспользоваться огромным фондом уже существующего на тот момент за рубежом программного обеспечения. Некоторые модификации отечественных компьютеров и все ZX-Spectrum использовали забугорный процессор Z80. Данный ЦП производства фирмы Zilog представлял собой развитие Intel 8080. В нем было увеличено число команд и регистров, при сохранении совместимости "снизу вверх" по машинным кодам. Но вот мнемонику ассемблерных команд инженерам Zilog пришлось изменить, дабы не нарушать авторские права Intel. Что интересно, Zilog до сих пор, то есть уже двадцать восемь лет, выпускает модификации процессора Z80. В настоящее время они используются в основном в различных встраиваемых системах.
Общий взгляд на ЛК
За рассматриваемый нами промежуток времени в СССР было создано несколько десятков моделей бытовых компьютеров, построенных с точки зрения пользователя на общих принципах, и имевших примерно одинаковый подход к работе с ними. Как правило, такая ПЭВМ была скомпонована моноблоком вместе с клавиатурой; оперативное запоминающее устройство - от 32 килобайт; вывод информации осуществлялся на обыкновенный телевизор; в качестве устройства хранения данных использовался бытовой магнитофон. Реже в качестве отдельного модуля можно было подключить контроллер накопителя на гибких магнитных дисках. В таком случае становился доступным пятидюймовый НГМД, объемом 360/720 килобайт.
Основой программного обеспечения являлась так называемая программа "Монитор". Как правило, это небольшая программа в машинных кодах, хранящаяся в постоянном запоминающем устройстве. Объем "Монитора" большинства ПЭВМ составлял два килобайта. В этом небольшом объеме кода были реализованы подпрограммы работы с "железом" и пользовательский интерфейс, включающий: функции работы с памятью, ввод/вывод на магнитофон, функции отладчика программ в машинных кодах. Чтобы примерно представить, на что похожа работа с "Монитором", пока мы не дошли непосредственно до самих эмуляторов, вы можете набрать в командной строке своей персоналки команду debug, которая как раз ведет свою родословную от первых "Мониторов". Хотя кто от кого больше позаимствовал - достаточно спорный вопрос. Если проследить историю той же Windows, то за MS DOS мы увидим CP/M, в которой был примерно такой же отладчик. А CP/M уже существовала к моменту написания всех этих "Мониторов".
Кстати, о CP/M. Если компьютер оборудовался контроллером НГМД, а рано или поздно контроллеры были разработаны для подавляющего большинства бытовых ПЭВМ, то появлялась возможность работы с дисковой операционной системой. Обычно предпочитали не изобретать велосипед и адаптировали как раз CP/M-80 версии 2.2. Хотя, существовали и разработки "велосипедов", например, для "Радио-86РК" и "Орион-128".
Краткий обзор рассматриваемых ПЭВМ
Сразу предупреждаю читателя, что в нескольких абзацах невозможно более-менее полно осветить целый пласт развития отечественной компьютерной техники. Поэтому я рассмотрю лишь самые основные моменты.
Историю можно начать с публикаций журналом "Радио" в 1983 году цикла статей по радиолюбительскому компьютеру "Микро-80". Машина состояла из более чем 200 компонентов и была сложна в сборке и настройке. Объем оперативной памяти составлял 64 кб, постоянной, с "прошитым" "Монитором" 2 кб. Из программного обеспечения существовал интерпретатор языка Basic, ассемблер, несколько отладчиков и текстовый редактор. Кроме того, мне известно о нескольких игровых программах для этого компьютера. Впоследствии на "Микро-80" была перенесена часть программ с ПК "Радио-86РК", о котором все тот же журнал начал писать в 1986 году. Конструкция следующей модели бытового компьютера была упрощена, и число микросхем было снижено до трех десятков. Шаг в сторону упрощения сборки привел к достаточно большой по сравнению с первой моделью популярности этого радиолюбительского компьютера. Существовали две модификации с объемом памяти 32 кб и 64 кб. Кроме того, отечественная промышленность освоила выпуск радио-конструкторов для самостоятельной сборки под названием "Микроша" (существовали и готовые промышленные варианты под названием "Криста", "Апогей" и "Партнер"). Что интересно, по "железу" "Микроша" от "Радио-86РК" почти не отличался, но был с ним программно не совместим. Сие достигалось за счет отличающегося программного обеспечения программы "Монитор". Для этих компьютеров в отличие от "Микро-80" было разработано большое число различных игровых и системных программ. Для "Радио-86РК" существовала даже своя ни с чем не совместимая дисковая операционная система. Все вышеперечисленные ПЭВМ поддерживали только алфавитно-символьный режим, а в программах активно использовалась псевдографика.
Чтобы закончить с разработками пришедшим в массы со страниц журнала "Радио", несколько слов скажу о последнем компьютере "Орион-128". Машина работала на том же КР580, правда, позже был реализован вариант замены ЦП на Z80. Объем оперативной памяти составлял 128 или 256 кб. Ограничение на 64 кб адресуемой процессором памяти было преодолено за счет страничной организации памяти. Компьютер мог работать с графикой. Разрешение составляло 384 на 356 точек при 16 цветах. В плане программного обеспечения было три варианта работы. Первый - классический "Монитор" и работа с магнитофоном. Такая конфигурация предлагалась в самом начале и была в основном ориентирована на отладку и настройку компьютера. Второй вариант предусматривал работу с магнитофоном и псевдодисковой операционной системой ORDOS. Это потребовало замены первоначального "Монитора-1" на так называемый "Монитор-2", в котором был исключен пользовательский интерфейс и добавлен загрузчик операционной системы. При этом ПК работал с двумя дисками: RAM-диском в специально выделенной части ОЗУ и ROM-диском в ПЗУ. Объем ROM-диска и состав программ определялся самим пользователем. Как правило, туда прошивались файловый менеджер, интерпретатор языка Basic, загрузчик файлов с магнитофона, текстовый процессор, ассемблер. Впрочем, состав и назначение программ полностью определялся владельцем компьютера.
Подхватив инициативу журнала "Радио", другие издания также начали представлять свои схемы радиолюбительских компьютеров. В 1989 году в приложении к журналу "Юный техник" была опубликована схема и описание частично совместимого по системным вызовам с "Монитором" "Радио 86РК" компьютера "ЮТ-88". В "Микропроцессорных Средствах и Системах" - "Ириша-Л", ориентированная на работу с CP/M-80. "Моделист-Конструктор" в 1987 году начал серию статьей по бытовому компьютеру "Специалист", который превосходил по возможностям "Радио 86РК", и также как и он позднее выпускался отечественной промышленностью, как под названиями "Специалист", так и "Лик". В 1991 году появилась "продвинутая" модификация под названием "Специалист MX".
Скажу пару слов и о чисто "промышленном" ПК, принятым Министерством Образования СССР за базовый для использования в средних учебных заведениях. Он назывался "Корвет" и был разработан сотрудниками института ядерной физики МГУ. В школы поставлялся в виде класса, объединенного локальной сетью, с бездисковыми рабочими местами учеников (со встроенным интерпретатором языка Basic) и рабочим местом преподавателя, оборудованным НГМД и работающим под управлением ОС МикроДОС или CP/M-80.
Наконец, нельзя забыть и о самых распространенных бытовых компьютерах того времени - многочисленных клонах английского ZX-Spectrum 48. Подробнее о нем я расскажу в разделе, посвященном "Спектрумовским" эмуляторам.
Эмуляторы отечественных бытовых ПК
Первый эмулятор, который мы рассмотрим, эмулирует целый ряд отечественных ПК, включает более 20 моделей и доступен по адресу: www.emulator3000.emuita.it/rus-e3.htm. Его автор, Евгений Троицкий так рассказывает о своем детище: "Эмулятор написан на Borland Delphi 5.0 без использования функций ассемблера. Отличительные особенности моего эмулятора: функция "Взломщик игр" (нечто похожее на возможности программы Art Money для Microsoft Windows), эмуляция почти всех звуковых устройств, которые применялись в отечественных компьютерах: динамик, Covox, AY-3-8910 (музыкальный сопроцессор компьютеров БК) и таймер на микросхеме ВИ53. Для анализа АЧХ вырабатываемых звуковых сигналов можно использовать окно "Осциллограф". Также для ПК, предусматривающих работу с магнитофоном, имеется сохранение программы в wav-файл. Есть и функция захвата изображения/звука непосредственно с эмулируемого компьютера. В эмуляторе есть дополнительные настройки, которые позволяют просмотреть содержимое регистров процессора, изменить настройки виртуального дисковода, монитора и звуковых каналов. Есть отладчик, правда, пока в виде бета-версии. Для некоторых компьютеров эмулируются дополнительные устройства: мышь, джойстик и даже через мышь - световой пистолет". В целом эмулятор работает достаточно стабильно. В настоящее время Евгений практически заморозил работу над этим проектом.
Скачать эмулятор можно здесь: www.emulator3000.emuita.it. Размер дистрибутива последней на сегодняшний момент версии - 2,2 Мб. Здесь же можно скачать эмулятор отечественных программируемых калькуляторов. Кроме того, имеются статьи по тематике из журналов "Техника молодежи" и "Наука и жизнь" в формате DjVu и программы для эмулируемых компьютеров и калькуляторов.
Следующий эмулятор, который хочется упомянуть - это EmuRK Виктора Пыхонина. Программа закончила свое развитие в конце 2000 года, заявленных функций эмуляции компьютеров "Радио-86РК", "Партнер", "Апогей", "Микроша", "Специалист", "Орион", "Микро-80", "ЮТ-88" вполне достаточно (www.uic.nnov.ru/~pyva). На этом же сайте широкий выбор игрового и системного программного обеспечения для эмулируемых компьютеров. Эмулятор написан под DOS и без странных особенностей работает на линейке Windows 9x, а также в DOSEmu под Linux. Для запуска на компьютерах под управлением Windows NT и Windows 2000 вам придется установить программу VDMSound (подробнее - на сайте) и внести исправления в файл с настройками эмулятора - emu80.ini, который находится в корневом каталоге программы. В файле необходимо найти параметр led и поменять ему значение на off. Изменив параметр type, вы сможете задать тип эмулируемого компьютера, с которым хотите работать по умолчанию. Также обращаю ваше внимание на то, что для корректного отображения графики необходимо запускать эмулятор в полноэкранном режиме. Вообще, наверное, это самая "задокументированная" разработка в обзоре, поэтому я не буду подробно останавливаться на принципах ее работы. Благодаря документации, входящей в дистрибутив, вы также можете получить основные навыки работы с эмулируемыми компьютерами.
Замечу, что в состав дистрибутива входят программы для считывания файлов с магнитофона и записи на диск с использованием любой звуковой карты. Несколько лет назад мне с их помощью удалось перенести на персоналку часть "Орионовских" программ со старых "сыплющихся" магнитофонных кассет.
Следующий эмулятор предназначен как раз для работы с программами "Ориона-128". Адрес официального сайта программы, где также можно скачать программы и игры для "Ориона": gri.irk.ru/orion. Объем дистрибутива всего 150 кб. Развитие эмулятора закончилось в далеком 1999 году, но список его возможностей достаточно внушителен: помимо "магнитофонной" операционной системы ORDOS, поддерживается работа с CP/M-80, есть встроенный отладчик в стиле Turbo Debugger, есть поддержка динамика и двух вариантов раскладки клавиатуры и возможность записи состояния эмулятора в любой момент на диск. В целом, если вам необходима работа только с этой моделью ПК, то данный эмулятор будет не плохим выбором, правда обладателям Windows семейства NT я бы посоветовал одну из двух вышеописанных программ.
Следующий эмулятор заточен под ПК "Вектор-06Ц", и опять же предназначен для операционной системы DOS, хотя работает и в Windows 9x. Из особенностей: поддержка всех программ для ПК "Вектор-06Ц", Real-Time отладчик, полная эмуляция ПК "Вектор-06Ц", эмуляция Спикеpа и музыкального сопроцессора AY-8910 (8912), Covox, музыкального синтезатора на К580ВИ53, эмуляция дисковода (образы дисков) и контpоллеpа дисковода К1818ВГ93 (i8072) с обращением к дисководам A: или B:, эмуляция жесткого диска IDE (в режиме образа диска), эмуляция модема (через IBM-модем), а также обмен файлами из Микро-Дос в MS-Dos через ВЕКТОРовские программы. Скачать эмулятор и программы для "Вектора" можно по адресу www.v06.da.ru.
Ссылки на остальные эмуляторы отечественных ПК Вы можете найти в таблице 2.
ZX-Spectrum
Все выпускаемые и собираемые в нашей стране клоны (примерно с 1987 года) "компьютера всех времен и народов" базировались на оригинальной модели, которая с 1982 года выпускалась в Англии под названием ZX Spectrum 48. Позднее появились и более продвинутые модели. С 1982 по 1988 год выпускалось пять моделей "Спектрумов", но наиболее часто повторяемым и популярным у нас оставался ZX Spectrum 48. Народные умельцы и многочисленные кооперативы адаптировали схему компьютера под отечественную элементную базу. Само собой, что приходилось использовать некоторые оригинальные микросхемы. Например, в Союзе не на что было заменить центральный процессор Z80. Его аналоги у нас появились только в 1990 году (1810 серия). Кроме того, тяжело было заменить и заказную БИС SCL (Sinclair Computer Logic). Среди наиболее массовых клонов можно назвать модели "Москва", "Ленинград-1", "Пентагон-48".
Что же представлял собой типичный клон? Это машинка с 48 кб оперативной памяти и 16 кб постоянной. В ПЗУ был прошит достаточно продвинутый вариант интерпретатора языка Basic, со встроенными командами работы с кассетным магнитофоном и микродрайвом (про использование которого у нас я не слышал). Изображение в шестнадцати цветах выводилось на телевизор, а разрешение экрана составляло 256 на 192 точки. Цвета управлялись сразу матрицами восемь на восемь символов.
Из всех бытовых компьютеров того времени, несомненно, именно различного рода "Спектрумы" имели самый обширный фонд программного обеспечения. Число системных программ измерялось сотнями, а игровых - тысячами. Во врезке "Лучшие игры для ZX-Spectrum" я привел выборку из полутора десятка наиболее характерных "спектрумовских" игр, включенных в список TOP 100 сайта World Of Spectrum.
Нельзя также не упомянуть о развитом системном и прикладном программном обеспечении для "синклеров", как их еще называли, по имени создателя компьютера Клайва Синклера (Sinclair Clive). (Кстати, за вклад в развитие английской компьютерной промышленности, Клайв получил к своей фамилии приставку "сэр".) Пожалуй, программистами не остался не охваченным ни один класс ПО. Во-первых, на "Спектрумах" было представлено большое число языков программирования: C, Pascal, Forth, Logo, Prolog, Assembler, многочисленные расширения встроенного Basic, добавляющие ему различную функциональность. Кроме того, существовало большое число редакторов: графических (например, Artist, ArtStudio), текстовых (Tasword2, TLW2), музыкальных (Wham MusicBox). Лучшие и самые популярные из них русифицировались народными умельцами: RusArt, RusTas. Кстати, в большинстве отечественных клонов "Спектрума" знакогенератор в ПЗУ оставляли оригинальный, а русский набор символов подгружался с каждой отдельной программой или игрой.
Я не буду подробно останавливаться на описании эмуляторов для этого, пожалуй самого "эмулируемого" компьютера. Только для платформ DOS и Windows по адресу: www.worldofspectrum.org/emulators.html вы можете скачать более 50 различных эмуляторов. Из Windows-эмуляторов я могу посоветовать ZX-32, ZX Plus и Real Spectrum.
Веб-ресурсы, посвященные вопросу эмуляции отечественных ПК
nf8.jinr.ru/~volkov/pc-nostalgia - ОС Windows RT для семейства "Радио-86РК". Прикладные и игровые программы.
retro.bip.ru - база данных по компьютерам "Микро-80", "Радио-86РК", "ЮТ-88" и "Орион-128". Множество перенесенных со страниц журналов статей, описаний программ и принципиальных схем.
rkgames.spectormedia.ru - "Энциклопедия игр" Александра Болтаевского. Содержится информация об играх для ПК "Орион-128", "Специалист", "Радио-86РК", "Микроша" и "Партнер". Также имеется некоторая информация по самим компьютерам.
arendatr.chat.ru - Страничка посвящена ПК "Партнер-01.01". На ней вы найдете информацию по данному ПК, а также архив программ.
students.uniyar.ac.ru/non-official/projects/museum - виртуальный "Музей истории компьютеров в России"
deltasoft.fife.wa.us/cpm/archive/unofficial - "Unofficial CP/M web site". Здесь можно скачать различные версии операционной системы CP/M-80, ставшей стандартом для восьми разрядных ПК. В том числе, вы можете скачать и бинарники CP/M-86, работающей на персоналках.
www.retroarchive.org/cpm - архив коммерческого программного обеспечения для CP/M-80: операционные системы, языки программирования, текстовые процессоры, базы данных и другое программное обеспечение.
Веб-ресурсы, посвященные вопросу эмуляции ZX-Spectrum
Скрыто
"Операционная система" Windows Real Time
По адресу nf8.jinr.ru/~volkov/pc-nostalgia находится интересный проект "операционной системы" под названием Windows Real Time для компьютеров "Радио-86" и совместимых с ним "Микроши" и "Апогея". Как я уже рассказывал, эти компьютеры не имели графического режима, а только алфавитно-цифровой (с включением символов псевдографики). В качестве внешнего накопителя использовался кассетный магнитофон. Так вот, разработчикам группы "Dark Design" удалось в этой среде создать оконную среду для исполнения программ и написать под нее ряд системных и игровых программ.
С этого сайта вы можете скачать инсталлятор Windows Real Time, включающий в себя программы самой "операционной системы" и модифицированную версию эмулятора Виктора Пыхонина для работы с ней. Пакет включает в себя: язык программирования VMaker, сочетающий, по утверждениям разработчиков, мощность Ассемблера и синтаксис C++, язык программирования VBasic, графический и текстовые редакторы, встроенные буфер обмена и браузер гипертекстовых документов, отладчик машинных кодов, скринсейверы и игровые программы.
Наиболее корректно все это разнообразное программное обеспечение работает именно на эмуляторе Пыхонина. К сожалению "Эмулятор-3000" не справился с запуском.
Лучшие игры для ZX-Spectrum
Elita (1984) - родоначальник всех трехмерных космических стратегий - симуляторов. Существует отличный русскоязычный сайт об игре: www.elite-games.ru/elite.
Nether Earth (1987) - возможно, самая первая стратегия в реальном времени. Обладает потрясающим геймплеем. Кстати, существует и PC-версия ремейка по адресу braingames.getput.com/nether.
Tau Ceti 2: Academy (1987 г.) - очень продвинутый симулятор боевого космического корабля с десятками миссий.
Stunt Car Racer (1988) - трехмерные гонки по пересеченной местности с векторной графикой.
Серия Dizzy (1987-1991) - красочные квесты с элементами аркады, в которых вы управляете забавным персонажем - "яйцом".
Manic Miner (1983) - нечто среднее между классическим Lode Runer и квестом. Вам нужно пройти сорок комнат, собирая предметы и решая логические задачки.
Saboteur 1 и 2 (1986-1987) - аркада, тактическая стратегия. Ваша цель - провести диверсанта через ряд миссий во вражеском тылу.
Total eclipse (1988) - настоящая 3D графика на ZX-Spectrum. Квест, в котором вы выступаете в качестве исследователя египетских пирамид.
R-Type (1988) - аркада с участием "космического десантника".
Lords of Midnight (1984) - оригинальная стратегия, в которой вы управляете своим собственным королевством. Существует версия и на IBM PC.
JetPack (1983) - захватывающая аркада, напоминающая тетрис.
The Hobbit (1982) - текстовое приключение.
Sim City (1990) - самая первая версия классической стратегии.
Eagles Nest (1988) - игра, напоминающая серию Saboteur, но с "видом сверху".
Batty (1987) - один из лучших вариантов арканоида.
Commando (1984) - военная аркада.