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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
 
(не показана 21 промежуточная версия 13 участников)
Строка 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
Строка 15: Строка 17:
|deadlink = yes
|deadlink = yes
}}</ref>. Имеет встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на [[Семисегментный индикатор|семисегментных индикаторах]] (12 цифр мантиссы, две цифры степени и два индикатора знака в каждой строке) и накопитель на магнитной ленте (НМЛ) в стандартных [[Компакт-кассета|аудиокассетах]].
}}</ref>. Имеет встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на [[Семисегментный индикатор|семисегментных индикаторах]] (12 цифр мантиссы, две цифры степени и два индикатора знака в каждой строке) и накопитель на магнитной ленте (НМЛ) в стандартных [[Компакт-кассета|аудиокассетах]].

Оснащена [[ОЗУ]] емкостью около 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]]).
Также оснащается интерфейсами [[ИРПР]] и [[ИРПС]] (в виде согласующего устройства ПЭЛ2.240.001), к которым обычно подключался принтер и алфавитно-цифровой терминал (как правило, модели [[15ИЭ-00-013]]).
Строка 31: Строка 35:


=== Д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) ===
Строка 204: Строка 208:


'''Пояснения к таблице'''
'''Пояснения к таблице'''
* ПУС (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-х режимов: Включение режимов 'Р', 'В', 'ПВ', 'П' производится нажатием клавиши и индицируется свечением расположенного рядом с ней индикатора.


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


=== Организация памяти ===
=== Организация памяти ===
Строка 292: Строка 391:
* Рабочая зона машин с 32-килобайтами ОЗУ занимает адреса с 0.00.00.00 (00000 дес.) по 7.14.15.15 (в 16-ричном виде 0x7EFF или 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 дес). В некоторых регистрах хранится информация для нормальной работы Д3-28, часть свободных ячеек может быть использована для хранения команд.
* Служебная зона занимает последние 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.
* Структура служебной зоны ОЗУ: с адреса 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).
* Четыре регистра R04, R05, R06, R07 образуют восьмибайтный регистр RR, который используется в командах с кодами 12 06 (MOV X,RR) и 12 07 (MOV RR,X).


Строка 317: Строка 416:


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

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


=== «Тужилкинский Бейсик» ===
=== «Тужилкинский Бейсик» ===
Строка 442: Строка 544:


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


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


Особенностью языка программирования ВТ-МХТИ являлось использование как англоязычного, так и русскоязычного набора [[Оператор (программирование)|операторов]] и наличие интерактивного ввода (что-то типа [[Т9]] на современных [[смартфон]]ах). Сейчас в сети сложно найти описание ОС ВТ-МХТИ, но существует много [[пользователь|пользователей]], вспоминающих про эту систему: [https://web.archive.org/web/20160804174037/http://www.phantom.sannata.ru/forum/index.php?t=&p=153740#pp153740#pp153740 1], [http://www.chemport.ru/forum/viewtopic.php?f=1&t=5597&start=60#p596777 2], [http://forum.vingrad.ru/topic-57314/view-all.html# 3].
Особенностью языка программирования ВТ-МХТИ являлось использование как англоязычного, так и русскоязычного набора [[Оператор (программирование)|операторов]] и наличие интерактивного ввода (что-то типа [[Т9]] на современных [[смартфон]]ах).


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


== Примечания ==
== Примечания ==
Строка 456: Строка 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».]
* [https://docplayer.ru/38451759-Elektronika-d3-28-tehnicheskoe-opisanie-1-vvedenie.html Устройство специализированное управляющее вычислительное «Электроника Д3-28».]
* Фотогалерея: {{cite web
* Фотогалерея: {{cite web
Строка 470: Строка 573:
|deadlink = yes
|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.