Электро́ника Д3-28 — специализированное настольное управляющее и вычислительное устройство, занимающее промежуточное положение между персональными компьютерами и программируемыми калькуляторами.
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Создана на основе машины Электроника С50 (15ВСМ-5), у которой прототипом являлся программируемый калькулятор Wang 700[нет в источнике]. Имеет встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на семисегментных индикаторах (12 цифр мантиссы, две цифры степени и два индикатора знака в каждой строке) и накопитель на магнитной ленте (НМЛ) в стандартных аудиокассетах.
Также оснащается интерфейсами ИРПР и ИРПС (в виде согласующего устройства ПЭЛ2.240.001), к которым обычно подключался принтер и алфавитно-цифровой терминал (как правило, модели 15ИЭ-00-013).
Первые серии Д3-28 имели микропрограммное обеспечение, находящееся в постоянных запоминающих устройствах (ПЗУ) на вручную прошиваемой тонким проводом матрице из ферритовых разборных П-образных сердечниках из магнитомягкого феррита). В последующих сериях ПЗУ выполнялось на интегральных микросхемах.
В некоторых тестовых экземплярах машин ПЗУ с микропрограммами устанавливались в панельки; существовали специальные прошивки этих ПЗУ для использования устройств в составе специализированных вычислительных комплексов.
В процессе производства Д3-28 внутренняя архитектура и программное обеспечение совершенствовалось с добавлением новых команд. Поколения Д3-28 (в соответствии с инструкцией по эксплуатации) делятся на «выпущенные до октября 1979 года», после этой даты и «после 1983 года».
16 килобайт ОЗУ (микросхемы в первых выпусках — К565РУ1, в последующих — К565РУ3 и К565РУ6).
Внешне отличалась также красным цветом свечения индикаторов и цветом закрывающей их пластины из оргстекла. Последующие модели имели оранжевый цвет цифр под зелёным светофильтром.
Оснащена 32 килобайтами ОЗУ, выполненного на микросхемах 565РУ6.
Оснащена 128 килобайтами ОЗУ, выполненного на микросхемах 565РУ5.
В зависимости от исполнения (кодировались цифрами ххх в обозначении 15ВМ128-xxx) Д3-28 имела возможность подключения к фотосчитывающим устройствам (СП-3 и FS-1501), ленточным перфораторам (ПЛ-150М), печатающим устройствам (например, Consul 256, Consul 260), специальные блоки для подключения мониторов типа 15ИЭ-00-013, а также возможность подключения удаленных устройств дистанционного управления Д3-28. Подключение печатающего устройства машинок Consul и монитора превращала Д3-28 в персональный компьютер.
Имелась возможность загрузки и автоматического запуска программы через интерфейс при включении машины.
У Электроники Д3-28 с объёмом ОЗУ 32 К, команды машинно-ориентированного языка Д3-28 кодируются двумя или четырьмя шестнадцатеричными цифрами.
Набор команд на основе КОИ-7 (набор 2) в виде русскоязычных команд и машинного 4-значного шестнадцатеричного кода для электроники ЭВМ ДЗ-28 приведён в таблице. Строки в таблице — старшие 4 бита кода, столбцы — младшие биты.
.0 | .1 | .2 | .3 | .4 | .5 | .6 | .7 | .8 | .9 | .A | .B | .C | .D | .E | .F | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0. | ПУС 00 00 | НЗ 00 01 | НТ 00 02 | КТ 00 03 | КП 00 04 | КТМ 00 05 | ДА 00 06 | ЗВ 00 07 | ВШ 00 08 | ГТ 00 09 | ПС 00 10 | ВТ 00 11 | ПФ 00 12 | ВК 00 13 | ВЫХ 00 14 | ВХ 00 15 |
1. | АР1 01 00 | (СУ1) 01 01 | (СУ2) 01 02 | (СУ3) 01 03 | СТП 01 04 | НЕТ 01 05 | СИН 01 06 | КБ 01 07 | АН 01 08 | КН 01 09 | ЗМ 01 10 | АР2 01 11 | РФ 01 12 | РГ 01 13 | РЗ 01 14 | РЭ 01 15 |
2. | ПРОБЕЛ 02 00 | ! 02 01 | ” 02 02 | # 02 03 | ¤ 02 04 | % 02 05 | & 02 06 | ′ 02 07 | ( 02 08 | ) 02 09 | * 02 10 | + 02 11 | ’ 02 12 | - 02 13 | . 02 14 | / 02 15 |
3. | 0 03 00 | 1 03 01 | 2 03 02 | 3 03 03 | 4 03 04 | 5 03 05 | 6 03 06 | 7 03 07 | 8 03 08 | 9 03 09 | : 03 10 | ; 03 11 | < 03 12 | {{{2}}} 03 13 | > 03 14 | ? 03 15 |
4. | @ 04 00 | A 04 01 | B 04 02 | C 04 03 | D 04 04 | E 04 05 | F 04 06 | G 04 07 | H 04 08 | I 04 09 | J 04 10 | K 04 11 | L 04 12 | M 04 13 | N 04 14 | O 04 15 |
5. | P 05 00 | Q 05 01 | R 05 02 | S 05 03 | T 05 04 | U 05 05 | V 05 06 | W 05 07 | X 05 08 | Y 05 09 | Z 05 10 | [ 05 11 | \ 05 12 | ] 05 13 | ¬ 05 14 | _ 05 15 |
6. | Ю 06 00 | А 06 01 | Б 06 02 | Ц 06 03 | Д 06 04 | Е 06 05 | Ф 06 06 | Г 06 07 | Х 06 08 | И 06 09 | Й 06 10 | К 06 11 | Л 06 12 | М 06 13 | Н 06 14 | О 06 15 |
7. | П 07 00 | Я 07 01 | Р 07 02 | С 07 03 | Т 07 04 | У 07 05 | Ж 07 06 | В 07 07 | Ь 07 08 | Ы 07 09 | З 07 10 | Ш 07 11 | Э 07 12 | Щ 07 13 | Ч 07 14 | ЗБ 07 15 |
Пояснения к таблице
Для облегчения восприятия команд используется мнемокоды в ассемблерном виде, приведённые в таблице:
Ассемблерный вид | Описание | Ассемблерный вид | Описание |
---|---|---|---|
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 | конец |
Возможна работа в одном из 4-х режимов: Включение режимов 'Р', 'В', 'ПВ', 'П' производится нажатием клавиши и индицируется свечением расположенного рядом с ней индикатора.
Символ на клавише | Название команды | Мнемокод | Код команды |
---|---|---|---|
М | Метка | MARK | 04 08 |
СЛ | Считывание с МЛ | LOADP | 05 13 |
S | Пуск | GO | 05 14 |
ВП | Вызов из памяти | MOV C,X | 04 05 |
ЗП | Запись в память | MOV X,C | 04 04 |
Вся память адресуется независимо двумя основными способами:
В 128-килобайтной версии машины применяется страничная организация памяти с мгновенно переключаемыми (по изменению состояния управляющих ячеек памяти) страницами размером по 16 килобайт каждая. Адресное пространство без применения механизма переключений страниц составляет 32 килобайта.
Регистры адресовались как ячейки памяти по некоторым фиксированным адресам. При этом регистры X и Y арифметики с плавающей запятой непрерывно отображаются на 2 индикаторах.
В режиме останова основной программы большинство клавиш на клавиатуре предназначалось для арифметических и функциональных действий с числами в регистрах X и Y.
При работе основной программы на индикаторах отображались состояния регистров X и Y, однако существовало несколько команд, позволявших изменить способ отображения соответствующей им области памяти на один из нескольких служебных регистров.
При отладке и запуске пошагового исполнения отлаживаемой программы на индикаторах отображались адрес исполняемой команды, код операции и три следующих в памяти байта команд.
Регистры работы с байтами, 16-разрядными словами было по 16, при этом 16 байтовых регистров физически совпадали с первыми восемью 16-битовыми регистрами.
Эти сообщения об ошибках выводились интерпретатором языка Бейсик, а не самой "прошивкой" Д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.
Самоназвание, выводилось после успешного запуска комплекса. Работал только на системах с 128 кБ памяти. Компилятор диалекта Фортрана, редко применяемый на подобных машинах, давал быстродействие, сопоставимое с программой, изначально написанной в машинных кодах. Скопмпилированную программу можно было записать на кассету и использовать независимо от загруженного компилятора. Во время компиляции этот компилятор иногда уничтожал исходный код программы (вероятно, в случае большого её объёма), но позволял корректно сохранить исполняемый модуль. Позволял вставлять фрагменты в машинных кодах. Возможно, он был основой или ранней версией ОС ВТ-МХТИ.
В Московском химико-технологическом институте им. Д. И. Менделеева была создана операционная система, называвшаяся по названию института — ОС ВТ-МХТИ. Разработчиком этой системы был Владимир Калинкин. В систему входил интерпретатор-компилятор собственного языка программирования ВТ-МХТИ, работавший на порядок быстрее штатного «Бейсика» и ряд системных утилит. Генерация системы производилась с кассеты-генератора (по аналогии с ЕС-1022), сгенерированная система записывалась на вторую кассету.
Особенностью языка программирования ВТ-МХТИ являлось использование как англоязычного, так и русскоязычного набора операторов и наличие интерактивного ввода (что-то типа Т9 на современных смартфонах). Сейчас в сети сложно найти описание ОС ВТ-МХТИ, но существует много пользователей, вспоминающих про эту систему: 1, 2, 3.
This article uses material from the Wikipedia Русский article Электроника Д3-28, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). Если не указано иное, содержание доступно по лицензии CC BY-SA 4.0. Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki Русский (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.