Электроника Д3-28: различия между версиями
[непроверенная версия] | [непроверенная версия] |
Нет описания правки |
Macuser (обсуждение | вклад) Нет описания правки |
||
(не показана 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''' — специализированное настольное управляющее и вычислительное устройство, занимающее промежуточное положение между [[Персональный компьютер|персональными компьютерами]] и [[Программируемый калькулятор|программируемыми калькуляторами]]. |
||
Создана основе машины |
Создана на основе машины Электроника С50 (15ВСМ-5), у которой прототипом являлся программируемый калькулятор [[Wang Laboratories|Wang]] 700<ref>{{cite web |
||
| |
|author = Rick Bensene |
||
| |
|date = 2008-09-03 |
||
| |
|url = http://www.oldcalculatormuseum.com/wang720.html |
||
| |
|title = Wang 720C Advanced Programming Calculator |
||
| |
|work = The Old Calculator Web Museum |
||
| |
|publisher = |
||
| |
|accessdate = 2010-09-12 |
||
| |
|lang = en |
||
| |
|archiveurl = https://web.archive.org/web/20100803044024/http://www.oldcalculatormuseum.com/wang720.html |
||
| |
|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 (в соответствии с инструкцией по эксплуатации) делятся на «выпущенные до октября 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 в персональный компьютер. |
||
Возможность загрузки и автоматического запуска программы через интерфейс при включении машины. |
|||
Имелась возможность загрузки и автоматического запуска программы через интерфейс при включении машины. |
|||
== Архитектура и система команд == |
|||
== Архитектура и система команд == |
|||
У Электроники Д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) —отрицание |
|||
* отрицательный ответ |
* ПУС (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-ветвление, если больше или равно |
|||
|переход, если больше или равно |
|||
|- |
|||
* 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-х режимов: Включение режимов 'Р', 'В', 'ПВ', 'П' производится нажатием клавиши и индицируется свечением расположенного рядом с ней индикатора. |
|||
* Р* является основным, производится выполнение всех программ и команд записанных в ОЗУ вводимых с клавиатуры Д3-28, с НМЛ. |
|||
* В* Ввод программ в ОЗУ проверка и изменение текстов программ, команда не выполняется, а только записывается в ОЗУ в шестнадцатеричном виде по адресу, индицируемому в регистре Y. |
|||
* ПВ* Печать и ввод |
|||
{| class="wikitable" |
{| class="wikitable" style="float:right; margin-left:1em; clear:right" |
||
|- |
|- |
||
! Символ на |
! Символ на<br>клавише !! Название<br>команды !! Мнемокод !! Код<br>команды |
||
|- |
|- |
||
| М || Метка || MARK || 04 |
| М || Метка || MARK || 04 08 |
||
|- |
|- |
||
| СЛ || Считывание с МЛ || LOADP || 05 13 |
| СЛ || Считывание с МЛ || LOADP || 05 13 |
||
Строка 280: | Строка 378: | ||
| S || Пуск || GO || 05 14 |
| S || Пуск || GO || 05 14 |
||
|- |
|- |
||
| ВП || Вызов |
| ВП || Вызов<br>из памяти || MOV C,X || 04 05 |
||
|- |
|- |
||
| ЗП || Запись |
| ЗП || Запись<br>в память || MOV X,C || 04 04 |
||
|} |
|} |
||
* 'Р' является основным, производится выполнение всех программ и команд записанных в ОЗУ вводимых с клавиатуры Д3-28, с НМЛ. |
|||
* 'В' Ввод программ в ОЗУ проверка и изменение текстов программ, команда не выполняется, а только записывается в ОЗУ в шестнадцатеричном виде по адресу, индицируемому в регистре Y. |
|||
* 'ПВ' Печать и ввод. |
|||
* 'П' Печать. |
|||
=== Организация памяти === |
=== Организация памяти === |
||
* В |
* В Д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 дес). В некоторых регистрах хранится информация для нормальной работы Д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 байтах, расположенных подряд и выровненных на адрес, кратный 16. В другом число занимает целиком 8 байтов в памяти подряд. При этом разрядность и прочие характеристики чисел совпадают. Первая форма была унаследована от калькулятора и допускала только команды с прямой адресацией (0-255, поскольку адрес был байтовый), вторая — только команды с косвенной адресацией, но при этом адресуется вся память. |
||
* Для команд целочисленной арифметики и |
* Для команд целочисленной арифметики и логических операций с байтами, 16-ти и 32-битными словами адресом служит физический адрес первого, самого старшего байта слова. |
||
* Порядок следования байтов в словах — от старшего к младшему. |
* Порядок следования байтов в словах — от старшего к младшему. |
||
* |
* Структура переходов — эклектичная{{прояснить}}. Для безусловного перехода или перехода к подпрограмме используется не менее 4 способов: по поиску «метки» в теле программы (последовательности байт 04 08 + <метка>), последовательным просмотром (прослеживается явное наследие калькулятора), с относительной адресацией — в пределах 256 байт от команды перехода, и по адресу в регистре — по таблице переходов. |
||
В 128-килобайтной версии |
В 128-килобайтной версии машины применяется страничная организация памяти с мгновенно переключаемыми (по изменению состояния управляющих ячеек памяти) страницами размером по 16 килобайт каждая. Адресное пространство без применения механизма переключений страниц составляет 32 килобайта. |
||
=== Регистры и индикаторы === |
=== Регистры и индикаторы === |
||
Регистры адресовались как ячейки памяти по некоторым фиксированным адресам. |
Регистры адресовались как ячейки памяти по некоторым фиксированным адресам. |
||
При этом регистры X и Y арифметики плавающей запятой отображаются на индикаторах. |
При этом регистры X и Y арифметики с плавающей запятой непрерывно отображаются на 2 индикаторах. |
||
В режиме останова большинство клавиш на |
В режиме останова основной программы большинство клавиш на клавиатуре предназначалось для арифметических и функциональных действий с числами в регистрах X и Y. |
||
При работе программы на индикаторах отображались состояния регистров X и Y, однако существовало несколько команд, позволявших изменить способ отображения соответствующей им области памяти на один из нескольких служебных. |
При работе основной программы на индикаторах отображались состояния регистров X и Y, однако существовало несколько команд, позволявших изменить способ отображения соответствующей им области памяти на один из нескольких служебных регистров. |
||
При отладке и запуске пошагового исполнения на индикаторах отображались адрес исполняемой команды, код и три |
При отладке и запуске пошагового исполнения отлаживаемой программы на индикаторах отображались адрес исполняемой команды, код операции и три следующих в памяти байта команд. |
||
Регистры работы с байтами, 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 устройств (машин или внешних устройств, например |
Была разработана и реализована спецификация локальной сети размером до 255 устройств (машин или внешних устройств, например, принтеров) построенная на параллельном интерфейсе ИРПР. Топология сети — общая шина. Число соединительных проводников в кабеле — 34. Например, в компьютерном зале [[МФТИ]] соединялось от 5 до 18 машин. |
||
== Программное обеспечение == |
== Программное обеспечение == |
||
=== Бейсик === |
=== Бейсик === |
||
На ЭВМ Электроника Д3-28 реализован интерпретатор языка [[Бейсик]] (вариант 3А). Примечателен тем, что позволял сразу после загрузки интерпретатора, загрузить расширения интерпретатора в машинном коде с НМЛ. Расширения вызывались через оператор CALL по номеру пакета расширений. Данные расширения позволяли компенсировать ограниченность языка, существовали расширения для работы со строками, для плотной упаковки целочисленных данных, многочисленные расширения для работы с периферийным оборудованием. Исходно, язык Бейсик 3А поддерживал только вещественные числа. |
|||
На ЭВМ Электроника Д3-28 реализован БЭЙСИК (вариант 3А) |
|||
Также существовали версии интерпретатора вар. 3П, Бейсик-4, Бейсик-Т (всё это из официальных заводских поставок). |
|||
=== «Тужилкинский Бейсик» === |
=== «Тужилкинский Бейсик» === |
||
Назван по фамилии автора — Владимира Алексеевича Тужилкина, распространён был, главным образом, в МФТИ, где и был написан. Достоинства — |
Назван по фамилии автора — Владимира Алексеевича Тужилкина, распространён был, главным образом, в МФТИ, где и был написан интерпретатор. Достоинства — бо́льшая функциональность и меньший объём занимаемой памяти, чем у «официальной» версии (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, |
* [[Электроника С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 = Сергей Фролов |
||
| |
|date = 2010-08-28 |
||
| |
|url = http://www.leningrad.su/museum/show_calc.php?n=357 |
||
| |
|title = Электроника Д3-28 15ВМ128-019 |
||
| |
|work = Коллекция советской цифровой электроники Сергея Фролова |
||
| |
|publisher = |
||
| |
|accessdate = 2010-09-12 |
||
| |
|lang = ru |
||
| |
|archiveurl = https://web.archive.org/web/20110818190504/http://www.leningrad.su/museum/show_calc.php?n=357 |
||
| |
|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 — специализированное настольное управляющее и вычислительное устройство, занимающее промежуточное положение между персональными компьютерами и программируемыми калькуляторами.
Создана на основе машины Электроника С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 | псевдовозврат из подпрограммы | вывод на печать | |
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.
FORTRAN-5M
[править | править код]Самоназвание, выводилось после успешного запуска комплекса. Работал только на системах с 128 кБ памяти. Компилятор диалекта Фортрана, редко применяемый на подобных машинах, давал быстродействие, сопоставимое с программой, изначально написанной в машинных кодах. Скопмпилированную программу можно было записать на кассету и использовать независимо от загруженного компилятора. Во время компиляции этот компилятор иногда уничтожал исходный код программы (вероятно, в случае большого её объёма), но позволял корректно сохранить исполняемый модуль. Позволял вставлять фрагменты в машинных кодах. Возможно, он был основой или ранней версией ОС ВТ-МХТИ.
ОС ВТ-МХТИ
[править | править код]В Московском химико-технологическом институте им. Д. И. Менделеева была создана операционная система, называвшаяся по названию института — ОС ВТ-МХТИ. Разработчиком этой системы был Владимир Калинкин. В систему входил интерпретатор-компилятор собственного языка программирования ВТ-МХТИ, работавший на порядок быстрее штатного «Бейсика» и ряд системных утилит. Генерация системы производилась с кассеты-генератора (по аналогии с ЕС-1022), сгенерированная система записывалась на вторую кассету.
Особенностью языка программирования ВТ-МХТИ являлось использование как англоязычного, так и русскоязычного набора операторов и наличие интерактивного ввода (что-то типа Т9 на современных смартфонах).
См. также
[править | править код]- Электроника С50 (15ВСМ-5) — устройство, внешне и по основным органам управления, устройствам и логической организации памяти очень похожее на Д3-28, но имевшее только 1 килобайт ОЗУ на ферритовых кольцах, 256 слов ПЗУ микропрограмм, исполненном в виде ферритового ПЗУ.
Примечания
[править | править код]- ↑ Rick Bensene. Wang 720C Advanced Programming Calculator (англ.). The Old Calculator Web Museum (3 сентября 2008). Дата обращения: 12 сентября 2010. Архивировано из оригинала 3 августа 2010 года.
- ↑ А. П. Савин. Энциклопедический словарь юного математика. — Рипол Классик. — 353 с. — ISBN 978-5-458-39328-7.
Ссылки
[править | править код]- Устройство cпециализированное управляющее вычислительное «Электроника Д3-28». Техническое описание И5М3.857.100. ТО.
- Устройство специализированное управляющее вычислительное «Электроника Д3-28».
- Фотогалерея: Сергей Фролов. Электроника Д3-28 15ВМ128-019 . Коллекция советской цифровой электроники Сергея Фролова (28 августа 2010). Дата обращения: 12 сентября 2010. Архивировано из оригинала 18 августа 2011 года.
- Архив программ, документации, симулятор для Д3-28
- Онлайн-эмулятор Электроника Д3-28 (15ВМ128-018)