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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Спасено источников — 1, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0
дополнение, уточнение, викификация, оформление, стилевые правки
Строка 1: Строка 1:
[[Файл:Электроника Д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
Создана на основе машины 15ВСМ5, у которой прототипом являлся программируемый калькулятор [[Wang Laboratories|Wang]] 700<ref>{{cite web
|author = Rick Bensene
|author = Rick Bensene
|date = 2008-09-03
|date = 2008-09-03
Строка 14: Строка 14:
|archivedate = 2010-08-03
|archivedate = 2010-08-03
|deadlink = yes
|deadlink = yes
}}</ref>.Имеет встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на [[Семисегментный индикатор|семисегментных индикаторах]] (12 цифр мантиссы, две цифры степени и два индикатора знака в каждой строке) и накопитель на стандартных аудиокассетах.
}}</ref>. Имеет встроенную клавиатуру (цифровые и функциональные клавиши), двухстрочный дисплей на [[Семисегментный индикатор|семисегментных индикаторах]] (12 цифр мантиссы, две цифры степени и два индикатора знака в каждой строке) и накопитель на магнитной ленте (НМЛ) в стандартных [[Компакт-кассета|аудиокассетах]].

Также оснащается интерфейсами [[ИРПР]] и [[ИРПС]] (в виде согласующего устройства ПЭЛ2.240.001), к которым обычно подключался принтер и алфавитно-цифровой терминал (как правило, [[15ИЭ-00-013]]).
Также оснащается интерфейсами [[ИРПР]] и [[ИРПС]] (в виде согласующего устройства ПЭЛ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) ===
Наиболее массовое исполнение{{Нет АИ|15|12|2016}}. 32 килобайта ОЗУ (микросхемы 565РУ6)
Наиболее массовый вариант исполненя{{Нет АИ|15|12|2016}}. Оснащена 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}}
|-
|-
Строка 202: Строка 203:
|}
|}


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


=== Работа с клавиатуры Д3-28 ===
=== Работа с клавиатуры Д3-28 ===
* Возможна работа в одном из 4-х режимов*Р*, *В*, *ПВ*, *П*, задаётся нажатием клавиши и горит рядом с ней индикатор.
Возможна работа в одном из 4-х режимов: Включение режимов Р*, В*, ПВ*, П* производится нажатием клавиши и индицируется свечением расположенного рядом с ней индикатора.
* Р* является основным, производится выполнение всех программ и команд записанных в ОЗУ вводимых с клавиатуры Д3-28, с НМЛ.
* Р* является основным, производится выполнение всех программ и команд записанных в ОЗУ вводимых с клавиатуры Д3-28, с НМЛ.
* В* Ввод программ в ОЗУ проверка и изменение текстов программ, команда не выполняется, а только записывается в ОЗУ в шестнадцатеричном виде по адресу, индицируемому в регистре Y.
* В* Ввод программ в ОЗУ проверка и изменение текстов программ, команда не выполняется, а только записывается в ОЗУ в шестнадцатеричном виде по адресу, индицируемому в регистре Y.
* ПВ* Печать и ввод
* ПВ* Печать и ввод.
* П* Печать.


{| class="wikitable"
{| class="wikitable"
Строка 288: Строка 290:
=== Организация памяти ===
=== Организация памяти ===
* В Д3-28 ОЗУ условно разделено на две зоны: рабочая и служебная. Ячейки служебной зоны именуются регистрами.
* В Д3-28 ОЗУ условно разделено на две зоны: рабочая и служебная. Ячейки служебной зоны именуются регистрами.
* Рабочая зона 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, RO1…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).


Вся память адресуется независимо двумя основными способами:
Вся память адресуется независимо двумя основными способами:
* Для команд работы с числами с плавающей запятой память представляет из себя набор последовательно расположенных 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 способов: по поиску «метки» в теле программы (последовательности байт 04 08 <метка>), последовательным просмотром (явное наследие калькулятора), с относительной адресацией - в пределах 256 байт от команды ветвления, по адресу в регистре, по таблице переходов.
* Структура переходов — эклектичная{{прояснить}}. Для безусловного перехода или перехода к подпрограмме используется не менее 4 способов: по поиску «метки» в теле программы (последовательности байт 04 08 + <метка>), последовательным просмотром (прослеживается явное наследие калькулятора), с относительной адресацией — в пределах 256 байт от команды перехода, и по адресу в регистре — по таблице переходов.


В 128-килобайтной версии применяется страничная организация памяти с мгновенно переключаемыми (по изменению состояния соответствующих ячеек) страницами по 16 килобайт размером. Адресное пространство без переключений составляет 32 килобайта.
В 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 ===
{| 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А). Примечателен тем, что позволял сразу после загрузки интерпретатора, загрузить расширения интерпретатора в машинном коде с НМЛ. Расширения вызывались через оператор CALL по номеру пакета расширений. Данные расширения позволяли компенсировать ограниченность языка, существовали расширения для работы со строками, для плотной упаковки целочисленных данных, многочисленные расширения для работы с периферийным оборудованием. Исходно, язык Бейсик 3А поддерживал только вещественные числа.


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


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


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

https://web.archive.org/web/20160804174037/http://www.phantom.sannata.ru/forum/index.php?t=&p=153740#pp153740#pp153740

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


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


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


== Примечания ==
== Примечания ==

Версия от 03:04, 3 мая 2020

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

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

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

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

Варианты исполнения

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

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

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

Д3-28 16К (15ВМ16)

16 килобайт ОЗУ (микросхемы в первых выпусках — К565РУ1, в последующих — К565РУ3 и К565РУ6).

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

Д3-28 32К (15ВМ32)

Наиболее массовый вариант исполненя[источник не указан 2933 дня]. Оснащена 32 килобайтами ОЗУ, выполненной на микросхемах 565РУ6.

Д3-28 128К (15ВМ128)

Оснащена 128 килобайтами ОЗУ, выполненной на микросхемах 565РУ5.

В зависимости от исполнения (кодировались цифрами ххх в обозначении 15ВМ128-xxx) Д3-28 имела возможность подключения к фотосчитывающим устройствам (СП-3 и FS-1501), ленточным перфораторам (ПЛ-150М), печатающим устройствам (например, Consul 256, Consul 260), специальные блоки для подключения мониторов типа 15ИЭ-00-013, а также возможность подключения удаленных устройств дистанционного управления Д3-28. Подключение печатающего устройства машинок Consul и монитора превращала Д3-28 в персональный компьютер.

Имелась возможность загрузки и автоматического запуска программы через интерфейс при включении машины.

Архитектура и система команд

Система команд

У Электроники Д3-28 с объёмом ОЗУ 32 К, команды машинно-ориентированного языка Д3-28 кодируются двумя или четырьмя шестнадцатеричными цифрами.

Набор команд на основе КОИ-7 (набор 2) в виде русскоязычных команд и машинного 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 — прибавление единицы и ветвление, если больше или равно;
  • ADD — сложение;
  • AND — логическое умножение;
  • ANS — анализ;
  • GO — пуск;
  • LOAD — загрузка;
  • LOADP — считывание с МЛ;
  • DIV — деление;
  • SUB — вычитание;
  • RTSI — псевдовозврат из подпрограммы;
  • INP — ввод;
  • SOB — вычитание единицы и условный переход;
  • MARK — метка;
  • MUL — умножение;
  • BBIS — переход, если бит установлен (=1);
  • WAIT — ожидание;
  • SWA — обмен;
  • CLR — очистка регистра (обнуление);
  • NEG — отрицание;
  • INT — целое;
  • VER — контроль;
  • DIG — цифра (десятичная);
  • SQR — квадратный корень;
  • INV — обратная величина;
  • JMM — передача управления на метку;
  • XOR — исключающее или;
  • BMER — переход, если машинная ошибка;
  • BEV — переход, если чётно;
  • BBIC — переход, если бит очищен (=0);
  • BEQ — переход, если равно;
  • E — экспонента, (показатель степени);
  • BLT — переход, если меньше чем;
  • OR — логическое сложение;
  • BKEY — переход, если нажата клавиша;
  • BGE — переход, если больше или равно;
  • BHIS — переход, если больше или тождественно;
  • MOV — пересылка;
  • CAP — преобразование декартовых координат в полярные координаты;
  • PRINT — вывод на печать;
  • POC — преобразование полярных координат в декартовы координаты;
  • SAVE — запись;
  • OUT — вывод;
  • ATOI — преобразование в целочисленное;
  • POINT — точка;
  • CMD — команда;
  • DEG — градус;
  • COM — инвертирование знака;
  • BR — безусловный переход;
  • RTII — псевдовозврат из прерывания;
  • BSA — ветвление или тождество;
  • RTS — возврат из подпрограммы;
  • RES — остаток;
  • QRT — квадрат;
  • BPER — переход, если программная ошибка;
  • BNE — переход, если не равно;
  • BPL — переход, если плюс;
  • BMI — переход, если минус;
  • END — конец.

Работа с клавиатуры Д3-28

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

  • Р* является основным, производится выполнение всех программ и команд записанных в ОЗУ вводимых с клавиатуры Д3-28, с НМЛ.
  • В* Ввод программ в ОЗУ проверка и изменение текстов программ, команда не выполняется, а только записывается в ОЗУ в шестнадцатеричном виде по адресу, индицируемому в регистре Y.
  • ПВ* Печать и ввод.
  • П* Печать.
Символ на клавише Название команды Мнемокод Код команды
М Метка MARK 04 08
СЛ Считывание с МЛ LOADP 05 13
S Пуск GO 05 14
ВП Вызов из памяти MOV C,X 04 05
ЗП Запись в память MOV X,C 04 04

Организация памяти

  • В Д3-28 ОЗУ условно разделено на две зоны: рабочая и служебная. Ячейки служебной зоны именуются регистрами.
  • Рабочая зона машин с 32-килобайтами ОЗУ занимает адреса с 0.00.00.00 (00000 дес.) по 7.14.15.15 (в 16-ричном виде 0x7EFF или 32511 десятичном виде), в этой зоне размещаются данные и программы пользователя.
  • Служебная зона занимает последние 256 байтов ОЗУ с 7.15.00.00 (32512 дес.) по 7.15.15.15 (32767 дес). В некоторых регистрах хранится информация для нормальной работы Д3-28, часть свободных ячеек может быть использована для хранения команд.
  • Структура служебной зоны ОЗУ: с адреса 7.15.00.00 по 7.15.01.15 расположены шестнадцать двухбайтовых регистров R00, RO1…R15, каждый R-регистр состоит из двух байтов ОЗУ с соседними адресами, байт с меньшим адресом является старшим. Регистры R08…R15 состоят из шестнадцати однобайтных регистров S00…S15.
  • Четыре регистра R04, R05, R06, R07 образуют восьмибайтный регистр RR, который используется в командах с кодами 12 06 (MOV X,RR) и 12 07 (MOV RR,X).

Вся память адресуется независимо двумя основными способами:

  • Для команд работы с числами с плавающей запятой память представляет собой набор последовательно расположенных 16-байтовых чисел (12 байт — десятичная мантисса, 2 бита — знак числа и знак порядка, три тетрады — три десятичных цифры показателя степени). Адресом ячейки служит условный номер такого числа от 0 до (размер памяти /16).
  • Плавающие числа хранятся в двух разных форматах. В одном, когда адресом был номер ячейки, число занимает или старшие, или младшие полубайты в 16 байтах, расположенных подряд и выровненных на адрес, кратный 16. В другом число занимает целиком 8 байтов в памяти подряд. При этом разрядность и прочие характеристики чисел совпадают. Первая форма была унаследована от калькулятора и допускала только команды с прямой адресацией (0-255, поскольку адрес был байтовый), вторая — только команды с косвенной адресацией, но при этом адресуется вся память.
  • Для команд целочисленной арифметики и логических операций с байтами, 16-ти и 32-битными словами адресом служит физический адрес первого, самого старшего байта слова.
  • Порядок следования байтов в словах — от старшего к младшему.
  • Структура переходов — эклектичная[прояснить]. Для безусловного перехода или перехода к подпрограмме используется не менее 4 способов: по поиску «метки» в теле программы (последовательности байт 04 08 + <метка>), последовательным просмотром (прослеживается явное наследие калькулятора), с относительной адресацией — в пределах 256 байт от команды перехода, и по адресу в регистре — по таблице переходов.

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

Регистры и индикаторы

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

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

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

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

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

Сообщения об ошибках ЭВМ Д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А поддерживал только вещественные числа.

«Тужилкинский Бейсик»

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

FORTRAN-5M

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

ОС ВТ-МХТИ

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

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

См. также

  • Электроника 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 года.

Ссылки

  • Фотогалерея: Сергей Фролов. Электроника Д3-28 15ВМ128-019. Коллекция советской цифровой электроники Сергея Фролова (28 августа 2010). Дата обращения: 12 сентября 2010. Архивировано из оригинала 18 августа 2011 года.