Картотека Игротека Люди Форум
Библиотека Галерея Мастерская Софт для PC Помощь сайту

      ПЭВМ Агат » Общая информация » Описание ПЭВМ Агат

Про Агат

Разделы сайта

Были и небылицы

Обновления сайта

Описание ПЭВМ Агат

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

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

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

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

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

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

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

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

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

  • Агат (1983 г.): изготовленный в ручную металлический корпус, секционированный микропроцессор на базе комплекта к588/к589. Изображен на буклете Elorg и "изучался" журналом BYTE. По сути - макетный образец, выпущено всего 2 шт.
  • Агат-4 (1984 г.): однокристальный центральный процессор. Опытная партия из 100 машин, по архитектуре близка к Агат-7.
  • Агат-7 (1985 г.): однокристальный центральный процессор, базовая память - 32 кб, два модуля дополнительной памяти по 32 кб каждый (итого 96 кб), дисковод - 140 кб (ранние выпуски) или 840 кб (поздние), контроллер последовательного и параллельного интерфейса.
  • Агат-8: почти то же что и семёрка, но с принтером в комплекте.
  • Агат-9 (1988 г.): однокристальный центральный процессор, базовая память - 128 кб, дисководы - 840 кб (иногда дополнялся вторым дисководом на 140 кб), контроллер принтера, возможность эмуляции Apple ][.

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

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

Apple ][

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

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

Пожалуй единственный крупный и сложный блок, довольно точно скопированный с Apple ][ - контроллер 140кб дисковода. Но и его копия совпадала лишь в используемых алгоритмах и программной совместимости - электронные схемы были различны.

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

Восьмиразрядный MOS Technology 6502. Это в теории, но на практике, в досерийных машинах, в качестве центрального процессора использовался комплект микросхем серий к588/к589. Комплект программировался таким образом, что был полностью совместим соднокристальным 6502 и даже превосходил его по системе команд, но по скорости был медленнее примерно на треть.

Серийные машины предполагалось выпускать с отечественным аналогом 6502. Но Минский НПО "Интеграл" не был готов освоить новый кристалл к моменту выхода Агата в серию. Поэтому использовались 6502 производства Тайвань (UMC) и Индия (SCL). Это были не оригинальные MOS-овские кристаллы, но сделанные по лицензии другими фирмами точные аналоги.

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

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

Тактовая частота 6502 - 14.3 / 14 МГц. Т.е. около одного мегагерца или около 500 тысяч операций в секунду. Одна команда исполняется за время от 2 до 7 тактов. Некоторые недокументированные команды могут требовать до 8 тактов. Таким образом 6502 относился, скорее, к RISC-процессорам.

Адресное пространство 6502 - 64 кб. Отдельного пространства портов нет. Первые 256 адресов называются "нулевой страницей", доступ к ним быстрее, некоторые методы адресации работают только с этими адресами. Фактически, можно называть эти ячейки набором регистров общего назначения, которые могут использоваться, в т.ч. для индексной и косвенной адресации любой точки адресного пространства.

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

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

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

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

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

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

Дисководы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Автор раздела: Garnizon

Зеркало сайта