Передовица » Были и небылицы » Про Агат

Про Агат (предмет интереса в общих чертах)

Когда создавался этот сайт (бывший в первый год своего существования одной страничкой), мы предполагали, что им заинтересуются - в первую очередь - программисты, когда-то работавшие на Агате. Однако сейчас сюда заходят люди мало знавшие об этой машине. Кто-то из них только немного играл на ней или видел издалека или слышал что-то. На технических форумах возникают споры о той или иной стороне Агата, часто обусловленные плохим знанием его особенностей.

В данном тексте предпринята попытка описать Агат в общих чертах, только незначительно опираясь на самые общие технические термины. Отдельно, цветными блоками, отмечены абзацы с более подробной информацией.

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

Персональная Электронная Вычислительная Машина "Агат"

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

Так же как и современные машины - Агат был модульным. Т.е. можно было легко добавлять и убирать нужные блоки (если, конечно, они у вас были.... дело было - напомню - в конце 80-х, в СССР).

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

Возможно, что такое название А.Ф. Иоффе предложил не случайно и у него была определенная расшифровка. Традиция "камень - аббревиатура" устойчиво прижилась в Новосибирске у Андрея Александровича Берса: "МРАМОР" - Многофункциональное Рабочее Автоматизированное Место Обслуживания Редакции, "ЯХОНТ" - языковое хозяйство обеспечивающее нашу технологию и др.

Модельный ряд

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

  • Агат-1/2/3 (1980-83 г.) - опытные образцы получившие цифровое обозначением (для официальной демонстрации в министерстве)*. Еще несколько образцов не получили цифрового обозначения - именовались как "пятый макетный агат", "красный агат" и т.п. В этот период, произошел переход от ранних машин, являвшихся русифицированными клонами Apple (материнская плата - точная копия Apple//+, микросхемы аналоги импортных) к настоящим Агатам.
  • Красный Агат (1983 г.): изготовленный вручную металлический корпус. Изображен на буклете Elorg и "изучался" журналом BYTE. По сути - макетный образец.
  • Агат-4 (1984 г.): опытная партия из 100 машин, по архитектуре близка к Агат-7.
  • Агат-7 (1985-90 г.): ОЗУ - 96 кб (до 640 кб), дисковод - 140 кб (ранние выпуски) или 840 кб (поздние), модуль последовательного и параллельного интерфейса.
  • Агат-8: семёрка, но с принтером в комплекте. Иногда с увеличенным базовым ОЗУ и расширенным знакогенератором.
  • Агат-9 (1988-93 г.): ОЗУ - 128 кб (до 640 кб), дисководы - 840 кб (иногда дополнялся вторым дисководом на 140 кб), контроллер принтера, возможность эмуляции Apple ][.
  • Золотой Агат (1985г): спецверсия сёмерки для Минобороны. Немного подробностей.

Базовыми серийными моделями были Агат-7 и Агат-9. На их основе строились остальные варианты, отличавшиеся наличием дополнительной памяти, дополнительными контроллерами различных устройств и сами дополнительные устройства.

* Кривцов А.Ю. : "Речь идет об основной деятельности разработчиков в допроизводственный период - показухе. Раз в месяц-другой на работе появлялся начальник (А.Ф. Иоффе) в прединфарктном состоянии, вызванном крайней степени эйфорией (удалось устроить показуху) и полным отчаянием (к показухе не готовы). Потом несколько дней аврала (покраска/изготовление корпуса, подбор наименее отказывающего электричества, написание игрушки под вкусы зрителя, сочинение гордого имени - "Агат-ХХ") и торжественный выезд в министерство/ГКНТ/партконференцию/... Рекорд: Е.П.Велихов на собственной "Чайке" вывозил меня в Кремль к тогдашнему премьеру Тихонову. Следовательно тираж с ХХ < 4 определялся количеством показух, которым с этим ХХ повезло. Агат-5 и Агат-6 планировалось разрабатывать, названия светились в каких-то планах, но реальной разработки не было."

Apple ][

Ходят слухи, что Агат был копией американского Apple ][ или болгарского Правец. Это не совсем так: были некоторые общие черты (например, центральный процессор), но Агат отличается в ряде очень существенных элементов.

Другое дело, что для Агата существовали модули и режимы совместимости с Apple ][, но это всё же дополнительная функция.
Больше подробностей в статье Агат - это клон Apple][ ?.

Центральный процессор

Некоторые досерийные образцы формально имеют CPU к588, по факту это модуль CPU на базе комплекта к588/к589, который симулировал расширенный 6502.

Остальные опытные машины, а так же все серийные (4,7-9) имеют однокристальный процессор 6502.

Агаты предполагалось выпускать с отечественным аналогом 6502. Но Минский НПО "Интеграл" не был готов освоить новый кристалл к моменту выхода Агата в серию. Поэтому применялись 6502 зарубежного производства. На ранних машинах - Rockwell C014377 (США)*. Далее UM6502A (Тайвань), благодаря давней и доброй дружбе с фирмой UMC (United Microelectronics Corporation). Реже можно встретить SCL (Индия) и см630р (Болгария).

*НИИВК и ЛЭМЗ имели в структуре отдел N1 и при них сидел военпред, следовательно официально находились под оком КГБ. И применение зарубежных изделий разрешалось только вспомогательное. Придумали сдирать маркировку "Rockwell", иногда сверху писали "микросхема микропроцессора". Причиной были опасения, что МЭП-конкуренты настучат с фотографией ячейки, но разрешение в конце концов получили...

С 1988 года, НПО "Физика" выпускало отечественный аналог R6502, точнее его более поздней версии - R65C02P2. Наш вариант назывался 4.К602ВМ1. В Агаты он устанавливался в очень ограниченных количествах.

Тактовая частота 6502 в Агате - 1.021Мгц или около 500 тысяч операций в секунду. С точно такой же частотой 6502 работает в Commodore64 и Apple//.

Напрямую сравнивать 6502 с другими CPU по числу "операции в секунду" не получится. Потребуется подробное выяснение того, каких операций и в каких условиях, возможно сделать в секунду столько.

Одна команда у 6502 исполняется за время от 2 до 7 тактов. 6502 не имеет команд умножения, деления, сложения между регистровыми парами, как, например известный Z80, однако всё это реализуется в 2-3 короткие команды, и за то же время. Таким образом, 6502 относился, скорее, к RISC-процессорам.

А вот методов адресации у 6502 больше. Первые 256 ячеек памяти с коротким адресом и быстрым доступом (нулевая страница), это фактически массив из 256 регистров общего назначения, которые могут использоваться, в т.ч. для индексной и косвенной адресации любой точки адресного пространства. Команда типа регистр/регистр выполняется на 6502 за вдвое меньшее количество тактов, чем на Z80.

В итоге, производительность 6502 на 1 МГц сравнима с Z80 на 3.5 МГц, а пользовательская производительность Агата, примерно сравнима с другими современниками.

Постоянная память

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

Т.е. принцип, уже тогда, как у нынешних ЭВМ - в ПЗУ только BIOS, все остальное загружается с диска. Например нужная версия бейсика или другого языка.

Каждое периферийное устройство тоже могло содержать ПЗУ. Например, контроллеры дисководов имели ПЗУ с начальным загрузчиком, сетевые карты - ПЗУ удалённой загрузки, контроллер принтера - драйвер принтера.

Оперативная память

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

Так как объём памяти превышал адресное пространство процессора, память делилась на участки, которые могли быть доступны процессору только поочерёдно. Именно в конструкции контроллеров памяти заключалось одно из существенных отличий между Apple ][, Агат-7 и Агат-9.

Для однозначности: в силу технических причин, серийная семёрка (и четвёрка) комплектовалась двумя модулями расширения ОЗУ по 32 кб каждый + базовая память - 32 кб. Всего 96 кб в минимальной комплектации. И это не абстрактные килобайты, а подключаемые к конкретным адресам. И софт - в первую очередь Бейсик-60 и его DOS3.3, но также и Школьница - по полной использовали все эти модули. И без радикальных переделок с меньшим объёмом просто бы не грузились. Не потому что жадные, а потому что это была конкретная (минимальная) конфигурация серийной машины, под которую готовился этот софт.

Дисководы

Агат комплектовался двумя вариантами дисководов: 140 кб - полностью совместимый со стандартом Disk ][, используемым в Apple ][ и 840 кб - отечественной разработки.

Дисководы стандарта 140 кб отличались невысокой надёжностью и постепенно были вытеснены 840 кб вариантом, который был существенно лучше по всем параметрам (скорость, надёжность, объём, простота драйверов).

Несколько раз мне встречалась фраза вроде такой: "контроллер дисковода Агата/Apple][ программный, поэтому он жестко привязан к тактовой частоте центрального процессора". Фраза, в общем-то, правильная, но в зависимости от контекста может относится к различным нюансам реализации контроллера дисковода (речь идёт именно о 140 кб дисководе):

  1. Так как почти все контроллеры в Агате/Apple используют программный обмен данными с памятью, центральный процессор должен быстро-быстро передавать данные из порта дисковода в память (шина допускала использование прямого доступа к памяти, но реальных контроллеров с этой функцией практически не было).
  2. Иногда эта фраза подчёркивает тот факт, что контроллеры дисководов в Агате не разделяли дорожку на поля данных и адреса - это делает драйвер. Особой вычислительной мощности для этого не требуется, но такой подход оставляет большой простор для разнообразных защит от копирования, а так же для изменения формата хранения данных.
  3. Некоторые авторы этой фразой хотели напомнить, что при записи данных центральный процессор должен самостоятельно оценивать время записи очередного байта и, таким образом, написание драйвера становится весьма нетривиальной задачей (т.е. часть драйвера, выполняющая запись поля адреса или данных, должна иметь строго расчитанное время исполнения команд).
  4. И лишь немногие помнят о том, что при записи байта контроллер захватывает данные с шины не в соответствии с общим протоколом обмена, а опираясь на особенности поведения центрального процессора при исполнении конкретных команд - из-за чего контроллер оказывается жестко привязан не столько к тактовой частоте, сколько к конкретной модели центрального процессора (Устройство должно захватить данные с шины, когда выставлен нужный адрес и сигнал R/!W перешёл в низкий уровень. Вместо этого контроллер дисковода ожидает нужного адреса, после чего отсчитывает три такта и захватывает данные. Понятно, что такое решение выглядит несколько по дурацки, но оно было продиктовано жесткой экономией кристаллов при разработке Apple ][).

Оба контроллера (140 и 840 к) имели довольно простую аппаратную структуру и значительная часть действий выполнялась драйвером. Это привело к тому, что в конце 80-х годов был разработан драйвер, поддерживающий "ленивое чтение" - очередь команд (или кеширование команд). Идея состояла в том, что драйвер мог исполнять команды не в том порядке, в котором получил их от операционной системы, а в таком, который бы уменьшил суммарное время их исполнения. Иными словами: драйвер читал или записывал тот сектор диска, который в данный момент находится под головкой (конечно, если в очереди была команда на чтение или запись этого сектора). Это позволяло поддерживать максимальную скорость, на которую способен дисковод и контроллер, даже при непоследовательном обмене.

Видеоконтроллер

Видеоконтроллер был встроен в системную плату и в качестве видеопамяти использовал один из участков (страниц) базовой памяти - на выбор программиста. Поддерживалось два текстовых: 32x32 и 64x32 и несколько графических (от 64x64 до 512x256) режимов.

Разнообразие видеорежимов и большое количество доступных видеостраниц - второе (после контроллеров памяти) ключевое отличие Агатов от Apple ][. Третье - формат выводимого видеосигнала: Apple ][ отдавал на телевизор компонентный сигнал стандарта NTSC, в то время как Агат формировал полный набор RGB-стандарта.

Вес и потребляемая мощность

Менялись в таких пределах, что указывать какие-то цифры можно только применительно к какой-то конкретной модели.

Вес зависел от количества дисководов и, возможно, от веса монитора (если считать с ним). А ещё от типа крышек корпуса - пластик vs металл. Были оба варианта в серийном выпуске.

Иногда указывают потребление 60 ватт, и наверняка оно относилось к какой-то конкретной версии машины, но она точно не относится к любой версии.

Блок питания, по крайней мере в ранних семёрках: +5в x 6а, +12в x 1.2а, -12в x <1а. Итого около 45 ватт. Поздние версии имеют ещё дополнительную линию +12 x 2а (питание ч/б монитора) = итого ~ 70 ватт. Это максимальная мощность, которую может молотить БП. Реальная потребляемая меньше, причем сильно.

Потребление системного блока - зависело от количества флопиков/плат расширения и элементной базы. Например, генплата: ТТЛ vs ТТЛШ: 15 vs 10 ватт.

А какой монитор в комплекте? Цветной мог забрать ватт 40-60. Монохром колокольчик - 24 ватта максимум (по паспорту), в реале 15 ватт.

Вообще, логичнее указывать вес и потребление именно системного блока. А характеристики комплекта "в целом" могут помешать сравнению с иными ЭВМ и вызвать сумятицу. Судите сами: "игрушечный" Спектрум, но с телевизором "Рубин" и магнитофоном "Яуза", вместе весят и потребляют больше, чем "крупный" Агат в минимальной комплектации (всего две платы, один дисковод и монитор "колокольчик").

Таким образом в реальности "потребляемая мощность системного блока ~ 20-30 ватт в зависимости от комплектации".

Программное обеспечение

Изначально Агат проектировался как совершенно новый компьютер и в первые годы выпуска для него имелось очень мало программ. Это имело два важных последствия: 1) для Агат-7 был выпущен "контроллер-121" - позволявший запускать программы, написанные для Apple ][, а появившийся позднее Агат-9 имел такую возможность "от рождения", 2) в дальнейшем было разработано много отечественных программ, отличавшихся исходной ориентацией на отечественный рынок (это, в первую очередь, полная поддержка русского языка).

Вообще, Агат поддерживал русский язык "из коробки". Т.е. даже при включении машины первая же надпись - "** АГАТ **" - выводилась русскими буквами, а на клавиатуре были отдельные клавиши, обозначенные "РУС" и "LAT" - предназначенные для переключения раскладок клавиатуры.

Первые годы выпуска для Агат поставлялся с довольно небольшим набором программ: интерпретатор языка Бейсик, операционная система Школьница - разработка Новосибирского ВЦ и несколько игровых программ.

Позднее появились текстовый редактор "Агат-Автор", электронная таблица "СЧМ" (Система Численного Моделирования), база данных "Эврика". Затем (по мере увеличения пользователей машины и появления удобных средств разработки) последовал взрывной рост количества программ: графические редакторы, музыкальные редакторы, текстовые редакторы, базы данных, трансляторы языков, операционные системы...

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

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

* * *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

Использование материалов сайта agatcomp.ru без получения предварительного письменного разрешения agatcomp.ru запрещено.