Электроника Д3-28 — Википедия
Эту статью предлагается удалить. |
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Электро́ника Д3-28 — специализированное настольное управляющее и вычислительное устройство, занимающее промежуточное положение между персональными компьютерами и программируемыми калькуляторами.
Создана на основе микроЭВМ «Электроника С50» (15ВСМ-5), прототипом для которой, в свою очередь, послужил программируемый калькулятор Wang 700[1]. Имеет встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на семисегментных индикаторах (12 цифр мантиссы, 2 цифры степени и 2 индикатора знака в каждой строке) и накопитель на магнитной ленте (НМЛ) в стандартных аудиокассетах.
Оснащена оперативным запоминающим устройством (ОЗУ) ёмкостью около 200 000 бит и имеет быстродействие до 1000 операций в секунду[2].
Также оснащается интерфейсами ИРПР и ИРПС (в виде согласующего устройства ПЭЛ2.240.001), к которым обычно подключался принтер и алфавитно-цифровой терминал (как правило, модели 15ИЭ-00-013). Для представления алфавитно-цифровой информации (строк символов) используется кодировка КОИ-7 Н2 (ГОСТ 13052-74); коды символов дополняются до 8-битных байтов (октетов) добавлением нулевого бита в качестве старшего.
Варианты исполнения
[править | править код]Первые серии Д3-28 имели микропрограммное обеспечение, находившееся в постоянных запоминающих устройствах (ПЗУ) на вручную прошиваемой тонким проводом матрице из ферритовых разборных П-образных сердечников из магнитомягкого феррита. В последующих сериях ПЗУ выполнялось на интегральных микросхемах.
В некоторых тестовых экземплярах машин ПЗУ с микропрограммами устанавливались в панельки; существовали специальные прошивки этих ПЗУ для использования устройств в составе специализированных вычислительных комплексов.
В процессе производства Д3-28 внутренняя архитектура и программное обеспечение совершенствовалось с добавлением новых команд. Поколения Д3-28 (в соответствии с инструкцией по эксплуатации) делятся на «выпущенные до октября 1979 года», после этой даты и «после 1983 года».
Д3-28 16К (15ВМ16)
[править | править код]16 килобайт ОЗУ (микросхемы в первых выпусках — К565РУ1, в последующих — К565РУ3 и К565РУ6).
Внешне отличалась также красным цветом свечения индикаторов и цветом закрывающей их пластины из оргстекла. Последующие модели имели оранжевый цвет цифр под зелёным светофильтром.
Д3-28 32К (15ВМ32)
[править | править код]Оснащена 32 килобайтами ОЗУ, выполненного на микросхемах 565РУ6.
Д3-28 128К (15ВМ128)
[править | править код]Оснащена 128 килобайтами ОЗУ, выполненного на микросхемах 565РУ5.
В зависимости от исполнения (кодировалось цифрами ххх в обозначении 15ВМ128-xxx) Д3-28 имела возможность подключения к фотосчитывающим устройствам (СП-3 и FS-1501), ленточным перфораторам (ПЛ-150М), печатающим устройствам (например, пишущим машинкам Consul 256 и Consul 260), специальные блоки для подключения мониторов типа 15ИЭ-00-013, а также возможность подключения удалённых устройств дистанционного управления. Подключение печатающего устройства и монитора превращало Д3-28 в персональный компьютер.
Имелась возможность загрузки и автоматического запуска программы через интерфейс при включении машины.
Архитектура и система команд
[править | править код]В документации к Электронике Д3-28 значения байтов представлены особым образом — в виде двух тетрад, каждая из которых выражена двузначным десятичным числом. Это обусловлено возможностью побайтового ввода информации (команд и данных) непосредственно с клавиатуры. Так, например, буква Э имеет код символа 0x7C
в кодировке КОИ-7 Н2, используемой Д3-28, и может быть введена как 07 12
.
Система команд
[править | править код]Команды машинно-ориентированного языка Электроники Д3-28 кодируются одним или двумя байтами. Для облегчения восприятия человеком используются ассемблерные мнемокоды команд, приведённые в таблице:
Ассемблерный вид | Описание | Ассемблерный вид | Описание |
---|---|---|---|
ABGE | прибавление единицы и ветвление, если больше или равно | BEQ | переход, если равно |
ADD | сложение | E | экспонента (показатель степени) |
AND | логическое умножение | BLT | переход, если меньше чем |
ANS | анализ | OR | логическое сложение |
GO | пуск | BKEY | переход, если нажата клавиша |
LOAD | загрузка | BGE | переход, если больше или равно |
LOADP | считывание с МЛ | BHIS | переход, если больше или тождественно |
DIV | деление | MOV | пересылка |
SUB | вычитание | CAP | преобразование декартовых координат в полярные координаты |
RTSI | псевдовозврат из подпрограммы | вывод на печать | |
INP | ввод | POC | преобразование полярных координат в декартовы координаты |
SOB | вычитание единицы и условный переход | SAVE | запись |
MARK | метка | OUT | вывод |
MUL | умножение | ATOI | преобразование в целочисленное |
BBIS | переход, если бит установлен (=1) | POINT | точка |
WAIT | ожидание | CMD | команда |
SWA | обмен | DEG | градус |
CLR | очистка регистра (обнуление) | COM | инвертирование знака |
NEG | отрицание | BR | безусловный переход |
INT | целое | RTII | псевдовозврат из прерывания |
VER | контроль | BSA | ветвление или тождество |
DIG | цифра (десятичная) | RTS | возврат из подпрограммы |
SQR | квадратный корень | RES | остаток |
INV | обратная величина | QRT | квадрат |
JMM | передача управления на метку | BPER | переход, если программная ошибка |
XOR | исключающее или | BNE | переход, если не равно |
BMER | переход, если машинная ошибка | BPL | переход, если плюс |
BEV | переход, если чётно | BMI | переход, если минус |
BBIC | переход, если бит очищен (=0) | END | конец |
Работа с клавиатуры Д3-28
[править | править код]Символ на клавише | Название команды | Мнемокод | Код команды |
---|---|---|---|
М | Метка | MARK | 04 08 |
СЛ | Считывание с МЛ | LOADP | 05 13 |
S | Пуск | GO | 05 14 |
ВП | Вызов из памяти | MOV C,X | 04 05 |
ЗП | Запись в память | MOV X,C | 04 04 |
Выбор режима осуществляется нажатием соответствующей клавиши и индицируется свечением расположенного рядом с ней индикатора. Возможна работа в одном из четырёх режимов:
- Работа (Р). Основной режим. Производится выполнение всех программ и команд, записанных в ОЗУ, а также вводимых с клавиатуры Д3-28 или с НМЛ.
- Ввод (В). Запись в ОЗУ, проверка и изменение программ. Команда не выполняется, а только записывается по адресу, индицируемому в регистре Y.
- Печать и ввод (ПВ).
- Печать (П).
Организация памяти
[править | править код]- В Д3-28 ОЗУ условно разделено на две зоны: рабочую и служебную. Ячейки служебной зоны именуются регистрами.
- Рабочая зона машин с 32 килобайтами ОЗУ занимает адреса
0x0000
—0x7EFF
, в этой зоне размещаются данные и программы пользователя. - Служебная зона занимает последние 256 байтов ОЗУ с адресами
0x7F00
—0x7FFF
. В некоторых регистрах хранится информация, требуемая для нормальной работы Д3-28, часть свободных ячеек может быть использована для хранения команд. - Структура служебной зоны ОЗУ: с адреса
0x7F00
по0x7F1F
расположены шестнадцать двухбайтных регистров R00—R15, каждый R-регистр состоит из двух байтов ОЗУ с соседними адресами, байт с меньшим адресом является старшим. Регистры R08—R15 состоят из шестнадцати однобайтных регистров S00—S15. - Четыре регистра R04—R07 образуют восьмибайтный регистр RR, который используется в командах с кодами
12 06
(MOV X,RR) и12 07
(MOV RR,X).
Вся память адресуется независимо двумя основными способами:
- Для команд работы с числами с плавающей запятой память представляет собой набор последовательно расположенных 16-байтовых чисел (12 байт — десятичная мантисса, 2 бита — знак числа и знак порядка, три тетрады — три десятичных цифры показателя степени). Адресом ячейки служит условный номер такого числа от 0 до (объём памяти / 16).
- Плавающие числа хранятся в двух разных форматах. В одном, когда адресом был номер ячейки, число занимает или старшие, или младшие тетрады в 16 байтах, расположенных подряд и выровненных на адрес, кратный 16. В другом число занимает целиком 8 байтов в памяти подряд. При этом разрядность и прочие характеристики чисел совпадают. Первая форма была унаследована от калькулятора и допускала только команды с прямой адресацией (0—255, поскольку адрес был однобайтный), вторая — только команды с косвенной адресацией, но при этом адресуется вся память.
- Для команд целочисленной арифметики и логических операций с байтами, 16- и 32-битными словами адресом служит физический адрес первого, самого старшего байта слова.
- Порядок следования байтов в словах — от старшего к младшему.
- Структура переходов — эклектичная[прояснить]. Для безусловного перехода или перехода к подпрограмме используется не менее четырёх способов: по поиску «метки» в теле программы (последовательности байтов
04 08
+ <метка>), последовательным просмотром (прослеживается явное наследие калькулятора), с относительной адресацией — в пределах 256 байтов от команды перехода, и по адресу в регистре — по таблице переходов.
В 128-килобайтной версии машины применяется страничная организация памяти с мгновенно переключаемыми (по изменению состояния управляющих ячеек памяти) страницами размером по 16 килобайт каждая. Адресное пространство без применения механизма переключений страниц составляет 32 килобайта.
Регистры и индикаторы
[править | править код]Регистры адресовались как ячейки памяти по некоторым фиксированным адресам. При этом регистры X и Y арифметики с плавающей запятой непрерывно отображаются на 2 индикаторах.
В режиме останова основной программы большинство клавиш на клавиатуре предназначалось для арифметических и функциональных действий с числами в регистрах X и Y.
При работе основной программы на индикаторах отображались состояния регистров X и Y, однако существовало несколько команд, позволявших изменить способ отображения соответствующей им области памяти на один из нескольких служебных регистров.
При отладке и запуске пошагового исполнения отлаживаемой программы на индикаторах отображались адрес исполняемой команды, код операции и три следующих в памяти байта команд.
Имелось по 16 регистров для работы с байтами и 16-битными словами, при этом 16 однобайтных регистров физически совпадали с первыми восемью 16-битными регистрами.
Сообщения об ошибках ЭВМ Д3-28
[править | править код]Эти сообщения об ошибках выводились интерпретатором языка Бейсик, а не самой «прошивкой» Д3-28. Д3-28 могли использоваться и без интерпретатора языка Бейсик.
Код | Тип ошибки | Код | Тип ошибки |
---|---|---|---|
0 | Переполнение памяти, отведённой пользователю | 26 | Недопустимый оператор DATA |
1 | Недопустимый оператор | 27 | Неправильный формат команд CMD |
2 | Переполнение строки ввода | 30 | Неправильный формат в операторе FOR…NEXT |
3 | Недопустимый ограничитель в строке | 31 | Отсутствие NEXT |
4 | Недопустимый номер строки | 32 | Отсутствие FOR |
5 | Несоответствие кавычек в предложении | 33 | Переполнение стека FOR…NEXT |
6 | Отсутствие открывающей скобки перед аргументом функции | 34 | Нулевой шаг FOR |
7 | Недопустимый оператор LET | 35 | Неверный формат оператора PRINT |
10 | Неправильная запись индексов | 36 | Неверно задан формат печати |
11 | Неправильная размерность индекса | 37 | Недопустимое выражение в операторе TAB |
12 | Несоответствие скобок в выражении | 38 | Отсутствие открывающей записи в магнитной ленте (МЛ) |
13 | Недопустимый элемент выражения | 43 | Нет строки для перехода по операторам GOSUB или GOTO |
14 | Функция пользователя не определена | 44 | Нет внешней подпрограммы с указанным именем |
15 | Неправильное имя переменной | 50 | Неправильное предложение с оператором обслуживания МЛ |
20 | Неправильная операция отношения | 52 | Сбой структуры файла |
21 | Недопустимый оператор IF | 53 | Отсутствие в запоминающем устройстве массива при приёме с МЛ |
22 | Недопустимый оператор COM или DIM | 54 | Не считан очередной блок данных с МЛ в ОЗУ |
23 | Недостаточно места для массива DIM | 55 | Считанный блок не помещается в ОЗУ |
24 | Неправильный оператор DEF | 123 | Несуществующая переменная |
25 | Нет данных для оператора READ | 128 | Некорректная операция в процессе вычисления |
Порты ввода-вывода
[править | править код]Машина стандартно имела устройство чтения/записи на магнитной ленте компактной кассеты, применяемой в бытовых магнитофонах.
Интерфейс ввода-вывода позволял подключать перфоратор и считыватель с перфоленты, а также дисковод гибких восьмидюймовых дисков.
Сетевая структура
[править | править код]Была разработана и реализована спецификация локальной сети размером до 255 устройств (машин или внешних устройств, например, принтеров) построенная на параллельном интерфейсе ИРПР. Топология сети — общая шина. Число соединительных проводников в кабеле — 34. Например, в компьютерном зале МФТИ соединялось от 5 до 18 машин.
Программное обеспечение
[править | править код]Бейсик
[править | править код]На ЭВМ Электроника Д3-28 реализован интерпретатор языка Бейсик (вариант 3А). Он примечателен тем, что позволял сразу после загрузки интерпретатора загрузить расширения интерпретатора в машинном коде с НМЛ. Расширения вызывались через оператор CALL по номеру пакета расширений. Данные расширения позволяли компенсировать ограниченность языка, существовали расширения для работы со строками, для плотной упаковки целочисленных данных, многочисленные расширения для работы с периферийным оборудованием. Исходно Бейсик 3А поддерживал только вещественные числа.
Также существовали версии интерпретатора вар. 3П, Бейсик-4, Бейсик-Т (всё это из официальных заводских поставок).
«Тужилкинский Бейсик»
[править | править код]Назван по фамилии автора — Владимира Алексеевича Тужилкина. Распространён был, главным образом, в МФТИ, где и был написан интерпретатор. Достоинства — бо́льшая функциональность и меньший объём занимаемой памяти, чем у официальной версии (8 килобайтов против 10,5 килобайтов). Недостаток — интерпретатор был рассчитан на нестандартное подключение дисплея 15ИЭ-00-013, что ограничивало его более широкое распространение. Использовал формат хранения программ и данных, также несовместимый с исходной версией, однако благодаря доступу большого количества студентов МФТИ к этим машинам объём ПО, написанного под данный диалект, далеко превышает объём других программ для Д3-28.
FORTRAN-5M
[править | править код]Самоназвание, которое выводилось после успешного запуска комплекса. Работал только на системах с 128 килобайтами памяти. Компилятор диалекта Фортрана, редко применяемый на подобных машинах, давал быстродействие, сопоставимое с программой, изначально написанной в машинных кодах. Скомпилированную программу можно было записать на кассету и использовать независимо от загруженного компилятора. Во время компиляции этот компилятор иногда уничтожал исходный код программы (вероятно, в случае её большого объёма), но тем не менее позволял корректно сохранить исполняемый модуль. Позволял вставлять фрагменты в машинных кодах. Возможно, он был основой или ранней версией операционной системы ВТ-МХТИ.
ОС ВТ-МХТИ
[править | править код]В Московском химико-технологическом институте им. Д. И. Менделеева была создана операционная система, называвшаяся по названию института — ОС ВТ-МХТИ. Её разработчиком был Владимир Николаевич Калинкин. В систему входил интерпретатор-компилятор собственного языка программирования ВТ-МХТИ, работавший на порядок быстрее штатного Бейсика, и ряд системных утилит. Генерация системы производилась с кассеты-генератора (по аналогии с ЕС-1022), сгенерированная система записывалась на вторую кассету.
Особенностью языка программирования ВТ-МХТИ являлось использование как англоязычного, так и русскоязычного набора операторов и наличие интерактивного ввода (наподобие Т9 на мобильных телефонах).
См. также
[править | править код]- Электроника С50 (15ВСМ-5) — устройство, внешне и по основным органам управления, устройствам и логической организации памяти очень похожее на Д3-28, но имевшее только 1 килобайт ОЗУ на ферритовых кольцах и 256 слов ПЗУ (также ферритового) для хранения микропрограмм.
Примечания
[править | править код]- ↑ Rick Bensene. Wang 720C Advanced Programming Calculator (англ.). The Old Calculator Web Museum (3 сентября 2008). Дата обращения: 12 сентября 2010. Архивировано из оригинала 3 августа 2010 года.
- ↑ А. П. Савин. Энциклопедический словарь юного математика. — Рипол Классик. — 353 с. — ISBN 978-5-458-39328-7.
Ссылки
[править | править код]- Устройство cпециализированное управляющее вычислительное «Электроника Д3-28». Техническое описание И5М3.857.100. ТО.
- Устройство специализированное управляющее вычислительное «Электроника Д3-28».
- Фотогалерея: Сергей Фролов. Электроника Д3-28 15ВМ128-019 . Коллекция советской цифровой электроники Сергея Фролова (28 августа 2010). Дата обращения: 12 сентября 2010. Архивировано из оригинала 18 августа 2011 года.
- Архив программ, документации и имитатор Д3-28
- Онлайн-эмулятор Электроника Д3-28 (15ВМ128-018)