Электроника Д3-28
Электроника Д3-28 — специализированное управляющее вычислительное устройство, занимающая промежуточное положение между персональными компьютерами и программируемыми калькуляторами.
Создана основе машины 15ВСМ5, которая в свою очередь сделана на базе программируемого калькулятора Wang 700[1].Имела встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на семисегментных индикаторах (12 цифр мантиссы, две цифры степени и два индикатора знака в каждой строке) и накопитель на стандартных аудиокассетах. Также оснащалась интерфейсами ИРПР и ИРПС (в виде согласующего устройства ПЭЛ2.240.001), к которым обычно подключался принтер и алфавитно-цифровой терминал (как правило, 15ИЭ-00-013).
Варианты исполнения
Первые выпуски Д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)
Наиболее массовое исполнение[источник не указан 2933 дня]. 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. Подключение машинок Consul и терминала превращала Д3-28 в персональный компьютер. Возможность загрузки и автоматического запуска программы через интерфейс при включении машины.
Архитектура и система команд
Система команд У Электроники Д3-28 с объёмом ОЗУ 32К Команды машинно-ориентированного языка Д3-28 кодируются двумя или четырьмя шестнадцатеричными цифрами: на основе КОИ-7 (набор2) c командами на русском языке:
На основе КОИ-7 Н2 в виде русскоязычных команд и машинного 4-хзначного шестнадцатеричного кода для электроники ЭВМ ДЗ-28
.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 |
- ПУС (NUL) — пусто, НЗ (SON) — начало заголовка, НТ (STX) — начало текста, КТ (ETX) — конец текста, КП (EOT) — конец передачи, КТМ (ENQ) — кто там?, НЕТ (NAK) —отрицание
- отрицательный ответ, СИН (SIN) — синхронизация, КБ (ETB) — конец блока блока данных, ЗБ (DEL) — забой, АН (CAN) — аннулирование, КН (EM) — конец носителя, ЗМ (SUB)- замена, позволяет заменить символ, ВХ, (S1) — вход, работа с одной половиной таблицы, ВЫХ (S0) — выход, работа с символами
Для облегчения восприятия команд используется мнемокод в ассемблированном виде
- ABGE — прибавление единицы и ветвление, если больше или равно
- ADD — сложение
- AND — логическое умножение
- ANS — анализ
- GO — пуск
- LOAD — загрузка
- LOADP — считывание с МЛ
- DIV — деление
- SUB — вычитание
- RTSI — псевдовозврат из подпрограммы
- INP — ввод
- SOB — вычитание единицы и ветвление
- MARK — метка
- MUL — умножение
- BBIS — ветвление, если бит установлен (=1)
- WAIT — ожидание
- SWA — обмен
- CLR — очистка (обнуление)
- NEG — отрицание
- INT — целое
- VER — контроль
- DIG — цифра (десятичная)
- SQR — квадратный корень
- INV — обратная величина
- JMM — передача управления метки
- XOR — исключающее “или”
- BMER — ветвление, если машинная ошибка
- BEV — ветвление, если чётно
- BBIC — ветвление, если бит очищен (= 0)
- BEQ — ветвление, если равно
- E — экспонента, (показатель степени)
- BLT — ветвление, если меньше чем
- OR — логическое сложение
- BKEY-ветвление, если клавиша
- BGE-ветвление, если больше или равно
- BHIS-ветвление, если больше или тождественно
- MOV — пересылка
- CAP — декартовы в полярные
- PRINT — вывод на печать
- POC — полярные в декартовы (преобразование координат)
- SAVE — запись
- OUT — вывод
- ATOI — преобразование в целочисленное
- POINT — точка
- CMD — команда
- DEG — градус
- COM — инвертирование
- BR — ветвление безусловное
- RTII — псевдовозврат из прерывания
- BSA — ветвление или тождество
- RTS — возврат из подпрограммы
- RES — остаток
- QRT — квадрат
- BPER — ветвление, если программная ошибка
- BNE — ветвление, если не равно
- BPL — ветвление, если плюс
- BMI — ветвление, если минус
- END — конец
Работа с клавиатуры Д3-28
- Возможна работа в одном из 4-х режимов*Р*, *В*, *ПВ*, *П*, задаётся нажатием клавиши и горит рядом с ней индикатор.
- Р* является основным, производится выполнение всех программ и команд записанных в ОЗУ вводимых с клавиатуры Д3-28, с НМЛ.
- В* Ввод программ в ОЗУ проверка и изменение текстов программ, команда не выполняется, а только записывается в ОЗУ в шестнадцатеричном виде по адресу, индицируемому в регистре Y.
- ПВ* Печать и ввод
Символ на клавише | Название команды | Мнемокод | Код команды |
---|---|---|---|
М | Метка | MARK | 04 80 |
СЛ | Считывание с МЛ | LOADP | 05 13 |
S | Пуск | GO | 05 14 |
ВП | Вызов из памяти | MOV C,X | 04 05 |
ЗП | Запись в память | MOV X,C | 04 04 |
Организация памяти
- В Д3-28 ОЗУ условно разделено на две зоны: рабочая и служебная. Ячейки служебной зоны именуются регистрами.
- Рабочая зона 32-килобайтных машин занимает адреса с 0.00.00.00 (00000 дес.) по 7.14.15.15 (в 16-ричном виде 0x7EFF или 32511 дес.) в этой зоне размещаются данные и программы пользователя.
- Служебная зона занимает последние 256 байтов ОЗУ с 7.15.00.00 (32512 дес.) по 7.15.15.15 (32767 дес). В некоторых регистрах хранится информация для нормальной работы Д3-28, часть свободных может быть использована для команд.
- Структура служебной зоны ОЗУ: с адреса 7.15.00.00 по 7.15.01.15 расположены шестнадцать двухбайтовых регистров R00,RO1…R15, каждый R-регистр состоит из двух байтов ОЗУ с соседними адресами, байт с меньшим адресом является старшим. Регистры R08…R15 состоят из шестнадцати однобайтных регистров S00…S15.
- Четыре регистра R04,R05,R06,R07 образуют восьмибайтный регистр RR, который используется в командах 12 06 (MOV X,RR) и 12 07 (MOV RR,X).
Вся память адресуется независимо двумя основными способами:
- Для команд работы с числами с плавающей запятой память представляет из себя набор последовательно расположенных 16-байтовых чисел (12 байт — десятичная мантисса, 2 бита — знак числа и знак порядка, три тетрады — три десятичных цифры степени). Адресом ячейки служит условный номер такого числа от 0 до (размер памяти / 16).
- Плавающие числа хранятся в двух разных форматах. В одном, когда адресом был номер ячейки, число занимает или старшие, или младшие полубайты в 16 байтах, расположенных подряд и выровненных на адрес, кратный 16. В другом число занимает целиком 8 байтов в памяти подряд. При этом разрядность и прочие характеристики чисел совпадают. Первая форма была унаследована от калькулятора и допускала только команды с прямой адресацией (0-255, поскольку адрес был байтовый), вторая — только команды с косвенной адресацией, зато адресуется вся память.
- Для команд целочисленной арифметики и логики с байтами, 16-ти и 32-битными словами адресом служит физический адрес первого, самого старшего байта слова.
- Порядок следования байтов в словах — от старшего к младшему.
- Архитектура - эклектичная[прояснить]. Для безусловного перехода используется не менее 4 способов: по поиску «метки» в теле программы — последовательным просмотром (явное наследие калькулятора), с относительной адресацией, по адресу в регистре, по таблице переходов.
В 128-килобайтной версии применяется страничная организация памяти с мгновенно переключаемыми (по изменению состояния соответствующих ячеек) страницами по 16 килобайт размером. Адресное пространство без переключений составляет 32 килобайта.
Регистры и индикаторы
Регистры адресовались как ячейки памяти по некоторым фиксированным адресам. При этом регистры X и Y арифметики плавающей запятой отображаются на индикаторах.
В режиме останова большинство клавиш на панели совершало арифметические и функциональные действия с числами в регистрах X и Y.
При работе программы на индикаторах отображались состояния регистров X и Y, однако существовало несколько команд, позволявших изменить способ отображения соответствующей им области памяти на один из нескольких служебных.
При отладке и запуске пошагового исполнения на индикаторах отображались адрес исполняемой команды, код и три последующих в памяти байта команд.
Регистров работы с байтами, 16-разрядными словами было по 16, при этом 16 байтовых регистров физически совпадали с первыми восемью 16-битовыми регистрами.
Порты ввода-вывода
Машина стандартно имела устройство чтения/записи на магнитной ленте. Интерфейс ввода-вывода позволял подключать перфоратор и считыватель с перфоленты, а также привод гибких восьмидюймовых дисков
Сообщения об ошибках ЭВМ Д3-28
0 — переполнение памяти, отведённой пользователю 1 — недопустимый оператор 2 — переполнение строки ввода 3 — недопустимый ограничитель в строке 4 — недопустимый номер строки 5 — несоответствие кавычек в предложении 6 — отсутствие открывающей скобки перед аргументом функции 7 — недопустимый оператор LET 10 — неправильная запись индексов 11 — неправильная размерность индекса 12 — несоответствие скобок в выражении 13 — недопустимый элемент выражения 14 — функция пользователя не определена 15 — неправильное имя переменной 20 — неправильная операция отношения 21 — недопустимый оператор IF 22 — недопустимый оператор COM или DIM 23 — недостаточно места для массива DIM 24 — неправильный оператор DEF 25 — нет данных для оператора READ 26 — недопустимый оператор DATA 27 — неправильный формат команд CMD 30 — неправильный формат в операторе FOR-NEXT 31 — отсутствие NEXT 32 — не было FOR 33 — переполнение стека FOR-NEXT 34 — нулевой шаг FOR 35 — неверный формат оператора PRINT 36 — неверно задан формат печати 37 — недопустимое выражение в операторе TAB 38 — отсутствие открывающей записи в МЛ 43 — нет строки для перехода по операторам GOSUB или GOTO 44 — нет внешней подпрограммы с указанным именем 50 — неправильное предложение с оператором обслуживания МЛ 52 — сбой структуры файла 53 — отсутствие в запоминающем устройстве массива при приёме с МЛ 54 — не считан очередной блок данных с МЛ в ОЗУ 55 — считанный блок не помещается в ОЗУ 123 — несуществующая переменная 128 — некорректная операция в процессе вычисления
Сетевая структура
Была разработана и реализована спецификация локальной сети размером до 255 устройств (машин или внешних устройств, например — принтеров) построенная на параллельном интерфейсе ИРПР. Топология — общая шина. Число соединительных проводников — 34. В компьютерном зале МФТИ было соединено от 5 до 18 машин.
Программное обеспечение
Бейсик
На ЭВМ Электроника Д3-28 реализован БЭЙСИК (вариант 3А)
«Тужилкинский Бейсик»
Назван по фамилии автора — Владимира Алексеевича Тужилкина, распространён был, главным образом, в МФТИ, где и был написан. Достоинства — большая функциональность и меньший объём занимаемой памяти, чем у «официальной» версии (8 кбайт против 10,5 кбайт). Недостаток — был рассчитан на нестандартное подключение дисплея 15ИЭ-00-013, что ограничивало его распространение. Использовал формат хранения программ и данных, также несовместимый с исходной версией, однако, благодаря доступу большого количества студентов МФТИ к этим машинам, объём «софта», написанного под этот диалект, далеко превышает объём других программ для Д3-28.
ОС ВТ-МХТИ
В Московском химико-технологическом институте им. Д.И. Менделеева была создана операционная система, называвшаяся по названию института — ОС ВТ-МХТИ. Разработчиком этой системы был Александр Калинкин. В систему входил интерпретатор-компилятор собственного языка программирования ВТ-МХТИ, работавший на порядок быстрее штатного "Бейсика" и ряд системных утилит. Генерация системы производилась с кассеты-генератора (по аналогии с ЕС-1022), сгенерированная система записывалась на вторую кассету. Особенностью языка программирования ВТ-МХТИ являлось использование как англоязычного, так и русскоязычного набора операторов и наличие интерактивного ввода (что-то типа Т9 на современных смартфонах). В сети сложно найти описание ОС ВТ-МХТИ, но существует масса пользователей, вспоминающих про эту систему.
http://www.phantom.sannata.ru/forum/index.php?t=&p=153740#pp153740#pp153740
http://www.chemport.ru/forum/viewtopic.php?f=1&t=5597&start=60#p596777
http://forum.vingrad.ru/topic-57314/view-all.html#
См. также
- Электроника 15ВСМ-5 — устройство, внешне и по основным органам управления, устройствам и логической организации памяти очень похожее на Д3-28, однако имевшее 1 килобайт ОЗУ на ферритовых колечках, 256 слов ПЗУ микропрограмм, исполненном в виде ферритовых колечек с пропущенными через них проводниками.
Примечания
- ↑ Rick Bensene. Wang 720C Advanced Programming Calculator (англ.). The Old Calculator Web Museum (3 сентября 2008). Дата обращения: 12 сентября 2010. Архивировано 7 июня 2012 года.
Ссылки
- Фотогалерея: Сергей Фролов. Электроника Д3-28 15ВМ128-019 . Коллекция советской цифровой электроники Сергея Фролова (28 августа 2010). Дата обращения: 12 сентября 2010. Архивировано 19 мая 2012 года.
Для улучшения этой статьи желательно:
|