Электроника Д3-28: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
 
(не показана 41 промежуточная версия 21 участника)
Строка 1: Строка 1:
<noinclude>{{к удалению|2024-12-07}}
</noinclude>{{нет ссылок|дата=2009-04-17}}
[[Файл:Электроника Д3-28.JPG|thumb|300px|Электроника Д3-28]]
[[Файл:Электроника Д3-28.JPG|thumb|300px|Электроника Д3-28]]
'''Электроника Д3-28''' — настольная вычислительная система, занимающая промежуточное положение между персональными компьютерами и программируемыми калькуляторами.
'''Электро́ника Д3-28''' — специализированное настольное управляющее и вычислительное устройство, занимающее промежуточное положение между [[Персональный компьютер|персональными компьютерами]] и [[Программируемый калькулятор|программируемыми калькуляторами]].


Создана основе машины 15ВСМ5, которая в свою очередь сделана на базе программируемого калькулятора [[Wang Laboratories|Wang]] 700<ref>{{cite web
Создана на основе машины Электроника С50 (15ВСМ-5), у которой прототипом являлся программируемый калькулятор [[Wang Laboratories|Wang]] 700<ref>{{cite web
| author = Rick Bensene
|author = Rick Bensene
| date = 2008-09-03
|date = 2008-09-03
| url = http://www.oldcalculatormuseum.com/wang720.html
|url = http://www.oldcalculatormuseum.com/wang720.html
| title = Wang 720C Advanced Programming Calculator
|title = Wang 720C Advanced Programming Calculator
| work = The Old Calculator Web Museum
|work = The Old Calculator Web Museum
| publisher =
|publisher =
| accessdate = 2010-09-12
|accessdate = 2010-09-12
| lang = en
|lang = en
| archiveurl = http://www.webcitation.org/68EPPhATv
|archiveurl = https://web.archive.org/web/20100803044024/http://www.oldcalculatormuseum.com/wang720.html
| archivedate = 2012-06-07
|archivedate = 2010-08-03
|deadlink = yes
}}</ref>.Имела встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на [[Семисегментный индикатор|семисегментных индикаторах]] (12 цифр мантиссы, две цифры степени и два индикатора знака в каждой строке) и накопитель на стандартных аудиокассетах.
}}</ref>. Имеет встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на [[Семисегментный индикатор|семисегментных индикаторах]] (12 цифр мантиссы, две цифры степени и два индикатора знака в каждой строке) и накопитель на магнитной ленте (НМЛ) в стандартных [[Компакт-кассета|аудиокассетах]].
Также оснащалась интерфейсами [[ИРПР]] и [[ИРПС]] (в виде согласующего устройства ПЭЛ2.240.001), к которым обычно подключался принтер и алфавитно-цифровой терминал (как правило, [[15ИЭ-00-013]]).

Оснащена [[ОЗУ]] емкостью около 200 000 бит и имеет быстродействие до 1000 операций в секунду.<ref>{{Книга|ссылка=https://www.google.se/books/edition/%D0%AD%D0%BD%D1%86%D0%B8%D0%BA%D0%BB%D0%BE%D0%BF%D0%B5%D0%B4%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D1%81%D0%BB/P5H9AgAAQBAJ?hl=sv&gbpv=1&dq=%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0+%D0%B43-28&pg=PA52&printsec=frontcover|автор=А. П. Савин|заглавие=Энциклопедический словарь юного математика|издательство=Рипол Классик|страниц=353|isbn=978-5-458-39328-7}}</ref>

Также оснащается интерфейсами [[ИРПР]] и [[ИРПС]] (в виде согласующего устройства ПЭЛ2.240.001), к которым обычно подключался принтер и алфавитно-цифровой терминал (как правило, модели [[15ИЭ-00-013]]).


== Варианты исполнения ==
== Варианты исполнения ==
Первые выпуски Д3-28 имели микропрограммное обеспечение, находящееся в [[ПЗУ]] на магнитных сердечниках (прошивалось вручную тонким многожильным проводом на матрице из ферритовых колец). Впоследствии ПЗУ выполнялось на интегральных микросхемах.
Первые серии Д3-28 имели [[Микрокод|микропрограммное]] обеспечение, находящееся в [[Постоянное запоминающее устройство|постоянных запоминающих устройствах]] (ПЗУ) на вручную прошиваемой тонким проводом матрице из ферритовых разборных П-образных сердечниках из магнитомягкого феррита). В последующих сериях ПЗУ выполнялось на интегральных микросхемах.

В некоторых тестовых экземплярах ПЗУ с микропрограммами устанавливались в панельки; существовали специальные прошивки для использования машин в составе специализированных вычислительных комплексов.
В некоторых тестовых экземплярах машин ПЗУ с микропрограммами устанавливались в панельки; существовали специальные прошивки этих ПЗУ для использования устройств в составе специализированных вычислительных комплексов.


В процессе производства Д3-28 внутренняя архитектура и программное обеспечение совершенствовалось с добавлением новых команд. Поколения Д3-28 (в соответствии с инструкцией по эксплуатации) делятся на «выпущенные до октября 1979 года», после этой даты и «после 1983 года».
В процессе производства Д3-28 внутренняя архитектура и программное обеспечение совершенствовалось с добавлением новых команд. Поколения Д3-28 (в соответствии с инструкцией по эксплуатации) делятся на «выпущенные до октября 1979 года», после этой даты и «после 1983 года».


=== Д3-28 16К (15ВМ16)===
=== Д3-28 16К (15ВМ16) ===
16 килобайт ОЗУ (микросхемы в первых выпусках — [[К565РУ1]], в последующих — [[К565РУ3]] и [[К565РУ6]])
16 килобайт ОЗУ (микросхемы в первых выпусках — [[К565РУ1]], в последующих — [[К565РУ3]] и [[К565РУ6]]).

Внешне отличалась также красным цветом индикаторов и закрывающего их оргстекла (последующие модели — оранжевые цифры под зелёным стеклом).
Внешне отличалась также красным цветом свечения индикаторов и цветом закрывающей их пластины из оргстекла. Последующие модели имели оранжевый цвет цифр под зелёным светофильтром.


=== Д3-28 32К (15ВМ32) ===
=== Д3-28 32К (15ВМ32) ===
Оснащена 32 килобайтами ОЗУ, выполненного на микросхемах 565РУ6.
Наиболее массовое исполнение{{источник}}. 32 килобайта ОЗУ (микросхемы 565РУ6)


=== Д3-28 128К (15ВМ128)===
=== Д3-28 128К (15ВМ128) ===
Оснащена 128 килобайтами ОЗУ, выполненного на микросхемах 565РУ5.
128 килобайт ОЗУ (микросхемы 565РУ5)


В зависимости от исполнения (цифры после 15ВМ128-xxx) Д3-28 имел возможность подключения к фотосчитывающим устройствам (СП-3 и FS-1501), ленточным перфораторам (ПЛ-150М), печатающим машинкам (Consul 256, Consul 260), специальные блоки для подключения терминалов типа 15ИЭ-00-013, а также возможность подключения удаленных устройств дистанционного управления Д3-28. Подключение машинок Consul и терминала превращала Д3-28 в персональный компьютер.
В зависимости от исполнения (кодировались цифрами ххх в обозначении 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 ==
У Электроники Д3-28 с объёмом ОЗУ 32 К, команды машинно-ориентированного языка Д3-28 кодируются двумя или четырьмя шестнадцатеричными цифрами.


Набор команд на основе КОИ-7 (набор 2) в виде русскоязычных команд и машинного 4-значного шестнадцатеричного кода для электроники ЭВМ ДЗ-28 приведён в таблице. Строки в таблице — старшие 4 бита кода, столбцы — младшие биты.
{| {{chset-tableformat}}
{| {{chset-tableformat}}
|-
|-
Строка 201: Строка 207:
|}
|}


'''Пояснения к таблице'''
* ПУС (NUL) — пусто, НЗ (SON) — начало заголовка, НТ (STX) — начало текста, КТ (ETX) — конец текста, КП (EOT) — конец передачи, КТМ (ENQ) — кто там?, НЕТ (NAK) —отрицание
* отрицательный ответ, СИН (SIN) — синхронизация, КБ (ETB) — конец блока блока данных, ЗБ (DEL) — забой, АН (CAN) — аннулирование, КН (EM) — конец носителя, ЗМ (SUB)- замена, позволяет заменить символ, ВХ, (S1) — вход, работа с одной половиной таблицы, ВЫХ (S0) — выход, работа с символами
* ПУС (NUL) — пусто; НЗ (SON) — начало заголовка; НТ (STX) — начало текста; КТ (ETX) — конец текста; КП (EOT) — конец передачи; КТМ (ENQ) — кто там?; НЕТ (NAK) — отрицание, отрицательный ответ; СИН (SIN) — синхронизация; КБ (ETB) — конец блока данных; ЗБ (DEL) — забой; АН (CAN) — аннулирование; КН (EM) — конец магнитного носителя; ЗМ (SUB) — замена, позволяет заменить символ; ВХ (S1) — вход, работа с одной половиной таблицы; ВЫХ (S0) — выход, работа с символами.


=== Для облегчения восприятия команд используется мнемокод в ассемблированном виде ===
'''Для облегчения восприятия команд используется мнемокоды в [[ассемблер]]ном виде, приведённые в таблице:
'''
* ABGE — прибавление единицы и ветвление, если больше или равно
{| class="wikitable"
* ADD — сложение
!Ассемблерный вид
* AND — логическое умножение
!Описание
* ANS — анализ
!Ассемблерный вид
* GO — пуск
!Описание
* LOAD — загрузка
|-
* LOADP — считывание с МЛ
|ABGE
* DIV — деление
|прибавление единицы и ветвление, если больше или равно
* SUB — вычитание
|BEQ
* RTSI — псевдовозврат из подпрограммы
|переход, если равно
* INP — ввод
|-
* SOB — вычитание единицы и ветвление
|ADD
* MARK — метка
|сложение
* MUL — умножение
|E
* BBIS — ветвление, если бит установлен (=1)
|экспонента, (показатель степени)
* WAIT — ожидание
|-
* SWA — обмен
|AND
* CLR — очистка (обнуление)
|логическое умножение
* NEG — отрицание
|BLT
* INT — целое
|переход, если меньше чем
* VER — контроль
|-
* DIG — цифра (десятичная)
|ANS
* SQR — квадратный корень
|анализ
* INV — обратная величина
|OR
* JMM — передача управления метки
|логическое сложение
* XOR — исключающее “или”
|-
* BMER — ветвление, если машинная ошибка
|GO
* BEV — ветвление, если чётно
|пуск
* BBIC — ветвление, если бит очищен (= 0)
|BKEY
* BEQ — ветвление, если равно
|переход, если нажата клавиша
* E — экспонента, (показатель степени)
|-
* BLT — ветвление, если меньше чем
|LOAD
* OR — логическое сложение
|загрузка
* BKEY-ветвление, если клавиша
|BGE
* BGE-ветвление, если больше или равно
* BHIS-ветвление, если больше или тождественно
|переход, если больше или равно
|-
* MOV — пересылка
|LOADP
* CAP — декартовы в полярные
|считывание с МЛ
* PRINT — вывод на печать
|BHIS
* POC — полярные в декартовы (преобразование координат)
|переход, если больше или тождественно
* SAVE — запись
|-
* OUT — вывод
|DIV
* ATOI — преобразование в целочисленное
|деление
* POINT — точка
|MOV
* CMD — команда
|пересылка
* DEG — градус
|-
* COM — инвертирование
|SUB
* BR — ветвление безусловное
|вычитание
* RTII — псевдовозврат из прерывания
|CAP
* BSA — ветвление или тождество
|преобразование декартовых координат в полярные координаты
* RTS — возврат из подпрограммы
|-
* RES — остаток
|RTSI
* QRT — квадрат
|псевдовозврат из подпрограммы
* BPER — ветвление, если программная ошибка
|PRINT
* BNE — ветвление, если не равно
|вывод на печать
* BPL — ветвление, если плюс
|-
* BMI — ветвление, если минус
|INP
* END — конец
|ввод
|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 ===
=== Работа с клавиатуры Д3-28 ===
* Возможна работа в одном из 4-х режимов*Р*, *В*, *ПВ*, *П*, задаётся нажатием клавиши и горит рядом с ней индикатор.
Возможна работа в одном из 4-х режимов: Включение режимов 'Р', 'В', 'ПВ', 'П' производится нажатием клавиши и индицируется свечением расположенного рядом с ней индикатора.
* Р* является основным, производится выполнение всех программ и команд записанных в ОЗУ вводимых с клавиатуры Д3-28, с НМЛ.
* В* Ввод программ в ОЗУ проверка и изменение текстов программ, команда не выполняется, а только записывается в ОЗУ в шестнадцатеричном виде по адресу, индицируемому в регистре Y.
* ПВ* Печать и ввод


{| class="wikitable"
{| class="wikitable" style="float:right; margin-left:1em; clear:right"
|-
|-
! Символ на клавише !! Название команды !! Мнемокод !! Код команды
! Символ на<br>клавише !! Название<br>команды !! Мнемокод !! Код<br>команды
|-
|-
| М || Метка || MARK || 04 80
| М || Метка || MARK || 04 08
|-
|-
| СЛ || Считывание с МЛ || LOADP || 05 13
| СЛ || Считывание с МЛ || LOADP || 05 13
Строка 280: Строка 378:
| S || Пуск || GO || 05 14
| S || Пуск || GO || 05 14
|-
|-
| ВП || Вызов из памяти || MOV C,X || 04 05
| ВП || Вызов<br>из памяти || MOV C,X || 04 05
|-
|-
| ЗП || Запись в память || MOV X,C || 04 04
| ЗП || Запись<br>в память || MOV X,C || 04 04
|}
|}
* 'Р' является основным, производится выполнение всех программ и команд записанных в ОЗУ вводимых с клавиатуры Д3-28, с НМЛ.
* 'В' Ввод программ в ОЗУ проверка и изменение текстов программ, команда не выполняется, а только записывается в ОЗУ в шестнадцатеричном виде по адресу, индицируемому в регистре Y.
* 'ПВ' Печать и ввод.
* 'П' Печать.


=== Организация памяти ===
=== Организация памяти ===
* В ЭВМ Д3-28 две зоны, рабочая и служебная. Ячейки служебной зоны именуются регистрами.
* В Д3-28 ОЗУ условно разделено на две зоны: рабочая и служебная. Ячейки служебной зоны именуются регистрами.
* Рабочая зона занимает адреса с 0.00.00.00 (00000 дес.)по 7.14.15.15 (32511 дес.) в этой зоне размещаются данные и программы пользователя.
* Рабочая зона машин с 32-килобайтами ОЗУ занимает адреса с 0.00.00.00 (00000 дес.) по 7.14.15.15 (в 16-ричном виде 0x7EFF или 32511 десятичном виде), в этой зоне размещаются данные и программы пользователя.
* служебная зона занимает последние 256 байтов ОЗУ с 7.15.00.00 (32512 дес.) по 7.15.15.15 (32767 дес) в некоторых регистрах хранится информация
* Служебная зона занимает последние 256 байтов ОЗУ с 7.15.00.00 (32512 дес.) по 7.15.15.15 (32767 дес). В некоторых регистрах хранится информация для нормальной работы Д3-28, часть свободных ячеек может быть использована для хранения команд.
* Структура служебной зоны ОЗУ: с адреса 7.15.00.00 по 7.15.01.15 расположены шестнадцать двухбайтовых регистров R00, R01…R15, каждый R-регистр состоит из двух байтов ОЗУ с соседними адресами, байт с меньшим адресом является старшим. Регистры R08…R15 состоят из шестнадцати однобайтных регистров S00…S15.
* для нормальной работы Д3-28,часть свободных может быть использована для команд.
* Четыре регистра R04, R05, R06, R07 образуют восьмибайтный регистр RR, который используется в командах с кодами 12 06 (MOV X,RR) и 12 07 (MOV RR,X).
* Структура служебной зоны ОЗУ с адреса 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-байтовых чисел (12 байт — десятичная мантисса, 2 бита — знак числа и знак порядка, три тетрады — три десятичных цифры показателя степени). Адресом ячейки служит условный номер такого числа от 0 до (размер памяти /16).
* Плавающие числа хранились в двух разных форматах. В одном, когда адресом был номер ячейки, число занимало или старшие, или младшие полубайты в 16 байтах, расположенных подряд и выровненных на адрес, кратный 16. В другом число занимало целиком 8 байтов в памяти подряд. При этом разрядность и прочие характеристики чисел совпадали. Первая форма была унаследована от калькулятора и допускала только команды с прямой адресацией (0-255?, поскольку адрес был байтовый), вторая — только команды с косвенной адресацией, зато адресовалась вся память.
* Плавающие числа хранятся в двух разных форматах. В одном, когда адресом был номер ячейки, число занимает или старшие, или младшие полубайты в 16 байтах, расположенных подряд и выровненных на адрес, кратный 16. В другом число занимает целиком 8 байтов в памяти подряд. При этом разрядность и прочие характеристики чисел совпадают. Первая форма была унаследована от калькулятора и допускала только команды с прямой адресацией (0-255, поскольку адрес был байтовый), вторая — только команды с косвенной адресацией, но при этом адресуется вся память.
* Для команд целочисленной арифметики и логики с байтами, 16-ти и 32-битными словами адресом служил физический адрес первого, самого старшего байта слова.
* Для команд целочисленной арифметики и логических операций с байтами, 16-ти и 32-битными словами адресом служит физический адрес первого, самого старшего байта слова.
* Порядок следования байтов в словах — от старшего к младшему.
* Порядок следования байтов в словах — от старшего к младшему.
* Архитектура была эклектичная. Для безусловного перехода использовалось не менее 4 способов: по поиску «метки» в теле программы  последовательным просмотром (явное наследие калькулятора), с относительной адресацией, по адресу в регистре, по таблице переходов.
* Структура переходов — эклектичная{{прояснить}}. Для безусловного перехода или перехода к подпрограмме используется не менее 4 способов: по поиску «метки» в теле программы (последовательности байт 04 08 + <метка>), последовательным просмотром (прослеживается явное наследие калькулятора), с относительной адресацией — в пределах 256 байт от команды перехода, и по адресу в регистре — по таблице переходов.


В 128-килобайтной версии наличествовала страничная организация памяти с мгновенно переключаемыми (по изменению состояния соответствующих ячеек) страницами по 16 килобайт размером. Адресное пространство без переключений составляло 64 килобайта.
В 128-килобайтной версии машины применяется страничная организация памяти с мгновенно переключаемыми (по изменению состояния управляющих ячеек памяти) страницами размером по 16 килобайт каждая. Адресное пространство без применения механизма переключений страниц составляет 32 килобайта.


=== Регистры и индикаторы ===
=== Регистры и индикаторы ===
Регистры адресовались как ячейки памяти по некоторым фиксированным адресам.
Регистры адресовались как ячейки памяти по некоторым фиксированным адресам.
При этом регистры X и Y арифметики плавающей запятой отображаются на индикаторах.
При этом регистры X и Y арифметики с плавающей запятой непрерывно отображаются на 2 индикаторах.


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


При работе программы на индикаторах отображались состояния регистров X и Y, однако существовало несколько команд, позволявших изменить способ отображения соответствующей им области памяти на один из нескольких служебных.
При работе основной программы на индикаторах отображались состояния регистров X и Y, однако существовало несколько команд, позволявших изменить способ отображения соответствующей им области памяти на один из нескольких служебных регистров.


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


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

=== Сообщения об ошибках ЭВМ Д3-28 ===
Эти сообщения об ошибках выводились интерпретатором языка Бейсик, а не самой "прошивкой" Д3-28. Д3-28 могли использоваться и без интерпретатора языка Бейсик.
{| class="wikitable"
!Код
!Тип ошибки
!Код
!Тип ошибки
|-
|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
|Некорректная операция в процессе вычисления
|-
|}


=== Порты ввода-вывода ===
=== Порты ввода-вывода ===
Машина стандартно имела устройство чтения/записи на магнитной ленте.
Машина стандартно имела устройство чтения/записи на магнитной ленте компактной кассеты, применяемой в бытовых магнитофонах.
Интерфейс ввода-вывода позволял подключать перфоратор и считыватель с перфоленты,
а также привод гибких восьмидюймовых дисков


Интерфейс ввода-вывода позволял подключать перфоратор и считыватель с перфоленты, а также дисковод гибких восьмидюймовых дисков.
=== Сообщения об ошибках ЭВМ Д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 машин.
Была разработана и реализована спецификация локальной сети размером до 255 устройств (машин или внешних устройств, например, принтеров) построенная на параллельном интерфейсе ИРПР. Топология сети — общая шина. Число соединительных проводников в кабеле — 34. Например, в компьютерном зале [[МФТИ]] соединялось от 5 до 18 машин.


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


=== Бейсик ===
=== Бейсик ===
На ЭВМ Электроника Д3-28 реализован интерпретатор языка [[Бейсик]] (вариант 3А). Примечателен тем, что позволял сразу после загрузки интерпретатора, загрузить расширения интерпретатора в машинном коде с НМЛ. Расширения вызывались через оператор CALL по номеру пакета расширений. Данные расширения позволяли компенсировать ограниченность языка, существовали расширения для работы со строками, для плотной упаковки целочисленных данных, многочисленные расширения для работы с периферийным оборудованием. Исходно, язык Бейсик 3А поддерживал только вещественные числа.
На ЭВМ Электроника Д3-28 реализован БЭЙСИК (вариант 3А)

Также существовали версии интерпретатора вар. 3П, Бейсик-4, Бейсик-Т (всё это из официальных заводских поставок).


=== «Тужилкинский Бейсик» ===
=== «Тужилкинский Бейсик» ===
Назван по фамилии автора — Владимира Алексеевича Тужилкина, распространён был, главным образом, в МФТИ, где и был написан. Достоинства — большая функциональность и меньший объём занимаемой памяти, чем у «официальной» версии (8 кбайт против 10,5 кбайт). Недостаток — был рассчитан на нестандартное подключение дисплея 15ИЭ-00-013, что ограничивало его распространение. Использовал формат хранения программ и данных, также несовместимый с исходной версией, однако, благодаря доступу большого количества студентов МФТИ к этим машинам, объём «софта», написанного под этот диалект, далеко превышает объём других программ для Д3-28.
Назван по фамилии автора — Владимира Алексеевича Тужилкина, распространён был, главным образом, в МФТИ, где и был написан интерпретатор. Достоинства — бо́льшая функциональность и меньший объём занимаемой памяти, чем у «официальной» версии (8 кбайт против 10,5 кбайт). Недостаток — интерпретатор был рассчитан на нестандартное подключение дисплея 15ИЭ-00-013, что ограничивало его более широкое распространение. Использовал формат хранения программ и данных, также несовместимый с исходной версией, однако, благодаря доступу большого количества студентов МФТИ к этим машинам, объём «софта», написанного под этот диалект, далеко превышает объём других программ для Д3-28.


=== ОС ВТ-МХТИ ===
=== FORTRAN-5M ===
Самоназвание, выводилось после успешного запуска комплекса. Работал только на системах с 128 кБ памяти. Компилятор диалекта Фортрана, редко применяемый на подобных машинах, давал быстродействие, сопоставимое с программой, изначально написанной в машинных кодах. Скопмпилированную программу можно было записать на кассету и использовать независимо от загруженного компилятора. Во время компиляции этот компилятор иногда уничтожал исходный код программы (вероятно, в случае большого её объёма), но позволял корректно сохранить исполняемый модуль. Позволял вставлять фрагменты в машинных кодах. Возможно, он был основой или ранней версией ОС ВТ-МХТИ.
В [[РХТУ|Московском химико-технологическом институте им. Д.И. Менделеева]] была создана [[операционная система]], называвшаяся по названию института — ОС ВТ-МХТИ. Разработчиком этой системы был Александр Калинкин. В систему входил интерпретатор-компилятор собственного [[язык программирования|языка программирования]] ВТ-МХТИ, работавший на порядок быстрее штатного "Бейсика" и ряд системных [[утилита|утилит]]. Генерация системы производилась с кассеты-генератора (по аналогии с [[ЕС ЭВМ|ЕС-1022]]), сгенерированная система записывалась на вторую кассету. Особенностью языка программирования ВТ-МХТИ являлось использование как англоязычного, так и русскоязычного набора [[Оператор (программирование)|оператор]]ов и наличие интерактивного ввода (что-то типа [[Т9]] на современных [[смартфон]]ах). В сети сложно найти описание ОС ВТ-МХТИ, но существует масса [[пользователь|пользователей]], вспоминающих про эту систему.


=== ОС ВТ-МХТИ ===
http://www.phantom.sannata.ru/forum/index.php?t=&p=153740#pp153740#pp153740
В [[РХТУ|Московском химико-технологическом институте им. Д. И. Менделеева]] была создана [[операционная система]], называвшаяся по названию института — ОС ВТ-МХТИ. Разработчиком этой системы был Владимир Калинкин. В систему входил интерпретатор-компилятор собственного [[язык программирования|языка программирования]] ВТ-МХТИ, работавший на порядок быстрее штатного «Бейсика» и ряд системных [[утилита|утилит]]. Генерация системы производилась с кассеты-генератора (по аналогии с [[ЕС ЭВМ|ЕС-1022]]), сгенерированная система записывалась на вторую кассету.

http://www.chemport.ru/forum/viewtopic.php?f=1&t=5597&start=60#p596777


Особенностью языка программирования ВТ-МХТИ являлось использование как англоязычного, так и русскоязычного набора [[Оператор (программирование)|операторов]] и наличие интерактивного ввода (что-то типа [[Т9]] на современных [[смартфон]]ах).
http://forum.vingrad.ru/topic-57314/view-all.html#


== См. также ==
== См. также ==
* [[Электроника 15ВСМ-5]] — устройство, внешне и по основным органам управления, устройствам и логической организации памяти очень похожее на Д3-28, однако имевшее 1 килобайт ОЗУ на ферритовых колечках, 256 слов ПЗУ микропрограмм, исполненном в виде ферритовых колечек с пропущенными через них проводниками.
* [[Электроника С50 (15ВСМ-5)]] — устройство, внешне и по основным органам управления, устройствам и логической организации памяти очень похожее на Д3-28, но имевшее только 1 килобайт ОЗУ на ферритовых кольцах, 256 слов ПЗУ микропрограмм, исполненном в виде ферритового ПЗУ.


== Примечания ==
== Примечания ==
Строка 389: Строка 558:


== Ссылки ==
== Ссылки ==
* [https://docs.yandex.ru/docs/view?tm=1733572764&tld=ru&lang=ru&name=download.php%3Ffile%3DD3-28.%20USUV%20Jelektronika%20D3-28.%20Tehnicheskoe%20Opisanie%20I5M3.857.100%20TO.pdf&text=%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0%20%D0%B43-28&url=https%3A%2F%2Fretropc.org%2Fdownload.php%3Ffile%3DD3-28.%2520USUV%2520Jelektronika%2520D3-28.%2520Tehnicheskoe%2520Opisanie%2520I5M3.857.100%2520TO.pdf&lr=54&mime=pdf&l10n=ru&sign=a3a382525a023f981beef778e82dbef3&keyno=0&nosw=1&serpParams=tm%3D1733572764%26tld%3Dru%26lang%3Dru%26name%3Ddownload.php%3Ffile%3DD3-28.%2520USUV%2520Jelektronika%2520D3-28.%2520Tehnicheskoe%2520Opisanie%2520I5M3.857.100%2520TO.pdf%26text%3D%25D1%258D%25D0%25BB%25D0%25B5%25D0%25BA%25D1%2582%25D1%2580%25D0%25BE%25D0%25BD%25D0%25B8%25D0%25BA%25D0%25B0%2B%25D0%25B43-28%26url%3Dhttps%253A%2F%2Fretropc.org%2Fdownload.php%253Ffile%253DD3-28.%252520USUV%252520Jelektronika%252520D3-28.%252520Tehnicheskoe%252520Opisanie%252520I5M3.857.100%252520TO.pdf%26lr%3D54%26mime%3Dpdf%26l10n%3Dru%26sign%3Da3a382525a023f981beef778e82dbef3%26keyno%3D0%26nosw%3D1 Устройство cпециализированное управляющее вычислительное «Электроника Д3-28». Техническое описание И5М3.857.100. ТО.]
* [https://docplayer.ru/38451759-Elektronika-d3-28-tehnicheskoe-opisanie-1-vvedenie.html Устройство специализированное управляющее вычислительное «Электроника Д3-28».]
* Фотогалерея: {{cite web
* Фотогалерея: {{cite web
| author = Сергей Фролов
|author = Сергей Фролов
| date = 2010-08-28
|date = 2010-08-28
| url = http://www.leningrad.su/museum/show_calc.php?n=357
|url = http://www.leningrad.su/museum/show_calc.php?n=357
| title = Электроника Д3-28 15ВМ128-019
|title = Электроника Д3-28 15ВМ128-019
| work = Коллекция советской цифровой электроники Сергея Фролова
|work = Коллекция советской цифровой электроники Сергея Фролова
| publisher =
|publisher =
| accessdate = 2010-09-12
|accessdate = 2010-09-12
| lang = ru
|lang = ru
| archiveurl = http://www.webcitation.org/67ltLy7kT
|archiveurl = https://web.archive.org/web/20110818190504/http://www.leningrad.su/museum/show_calc.php?n=357
| archivedate = 2012-05-19
|archivedate = 2011-08-18
|deadlink = yes
}}
}}
* [https://d3-28.ru/imitator-d3-28-s-ozu-128-kilobajt/ Архив программ, документации, симулятор для Д3-28]
* [https://xlat8086.com/d3-28/ Онлайн-эмулятор Электроника Д3-28 (15ВМ128-018)]


{{rq|sources}}
{{Перечень советских компьютеров}}
{{Перечень советских компьютеров}}



Текущая версия от 00:24, 8 декабря 2024

Электроника Д3-28

Электро́ника Д3-28 — специализированное настольное управляющее и вычислительное устройство, занимающее промежуточное положение между персональными компьютерами и программируемыми калькуляторами.

Создана на основе машины Электроника С50 (15ВСМ-5), у которой прототипом являлся программируемый калькулятор Wang 700[1]. Имеет встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на семисегментных индикаторах (12 цифр мантиссы, две цифры степени и два индикатора знака в каждой строке) и накопитель на магнитной ленте (НМЛ) в стандартных аудиокассетах.

Оснащена ОЗУ емкостью около 200 000 бит и имеет быстродействие до 1000 операций в секунду.[2]

Также оснащается интерфейсами ИРПР и ИРПС (в виде согласующего устройства ПЭЛ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)

[править | править код]

Оснащена 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) в виде русскоязычных команд и машинного 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

Пояснения к таблице

  • ПУС (NUL) — пусто; НЗ (SON) — начало заголовка; НТ (STX) — начало текста; КТ (ETX) — конец текста; КП (EOT) — конец передачи; КТМ (ENQ) — кто там?; НЕТ (NAK) — отрицание, отрицательный ответ; СИН (SIN) — синхронизация; КБ (ETB) — конец блока данных; ЗБ (DEL) — забой; АН (CAN) — аннулирование; КН (EM) — конец магнитного носителя; ЗМ (SUB) — замена, позволяет заменить символ; ВХ (S1) — вход, работа с одной половиной таблицы; ВЫХ (S0) — выход, работа с символами.

Для облегчения восприятия команд используется мнемокоды в ассемблерном виде, приведённые в таблице:

Ассемблерный вид Описание Ассемблерный вид Описание
ABGE прибавление единицы и ветвление, если больше или равно BEQ переход, если равно
ADD сложение E экспонента, (показатель степени)
AND логическое умножение BLT переход, если меньше чем
ANS анализ OR логическое сложение
GO пуск BKEY переход, если нажата клавиша
LOAD загрузка BGE переход, если больше или равно
LOADP считывание с МЛ BHIS переход, если больше или тождественно
DIV деление MOV пересылка
SUB вычитание CAP преобразование декартовых координат в полярные координаты
RTSI псевдовозврат из подпрограммы PRINT вывод на печать
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

[править | править код]

Возможна работа в одном из 4-х режимов: Включение режимов 'Р', 'В', 'ПВ', 'П' производится нажатием клавиши и индицируется свечением расположенного рядом с ней индикатора.

Символ на
клавише
Название
команды
Мнемокод Код
команды
М Метка 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-килобайтами ОЗУ занимает адреса с 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, R01…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 способов: по поиску «метки» в теле программы (последовательности байт 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.

Самоназвание, выводилось после успешного запуска комплекса. Работал только на системах с 128 кБ памяти. Компилятор диалекта Фортрана, редко применяемый на подобных машинах, давал быстродействие, сопоставимое с программой, изначально написанной в машинных кодах. Скопмпилированную программу можно было записать на кассету и использовать независимо от загруженного компилятора. Во время компиляции этот компилятор иногда уничтожал исходный код программы (вероятно, в случае большого её объёма), но позволял корректно сохранить исполняемый модуль. Позволял вставлять фрагменты в машинных кодах. Возможно, он был основой или ранней версией ОС ВТ-МХТИ.

В Московском химико-технологическом институте им. Д. И. Менделеева была создана операционная система, называвшаяся по названию института — ОС ВТ-МХТИ. Разработчиком этой системы был Владимир Калинкин. В систему входил интерпретатор-компилятор собственного языка программирования ВТ-МХТИ, работавший на порядок быстрее штатного «Бейсика» и ряд системных утилит. Генерация системы производилась с кассеты-генератора (по аналогии с ЕС-1022), сгенерированная система записывалась на вторую кассету.

Особенностью языка программирования ВТ-МХТИ являлось использование как англоязычного, так и русскоязычного набора операторов и наличие интерактивного ввода (что-то типа Т9 на современных смартфонах).

  • Электроника С50 (15ВСМ-5) — устройство, внешне и по основным органам управления, устройствам и логической организации памяти очень похожее на Д3-28, но имевшее только 1 килобайт ОЗУ на ферритовых кольцах, 256 слов ПЗУ микропрограмм, исполненном в виде ферритового ПЗУ.

Примечания

[править | править код]
  1. Rick Bensene. Wang 720C Advanced Programming Calculator (англ.). The Old Calculator Web Museum (3 сентября 2008). Дата обращения: 12 сентября 2010. Архивировано из оригинала 3 августа 2010 года.
  2. А. П. Савин. Энциклопедический словарь юного математика. — Рипол Классик. — 353 с. — ISBN 978-5-458-39328-7.