Электроника Д3-28 (Вопросы по этому "Калькулятору с кассетой")
Вот здесьsanders писал(а):А есть у кого-то схема клавиатуры с разъемом?
https://d3-28.ru/dokumentatsiya-d3-28/d ... ipialnaya/
Она там на 4 и 5 листах. В терминологии оригинальной документации называется "Плата".
Просто продублирую своё сообщение здесь, т.к. Эта тема - суть специализированная по Д3-28.
Программа свистелка/записывалка для создания кассет Д3-28:
http://www.phantom.sannata.ru/forum/index.php?t=29632
----------
P.S. Кстати, вопрос к модераторам раздела: емнип, раньше Эта тема была прикреплена вверху и не тонула с течением времени...
... но с какого-то момента она почему-то самооткрепилась и пошла ко дну.
Вчера оперативно вот не смог её отыскать, а была потребность — и только сегодня смог её отыскать, на свежую голову.
Так вот, суть, может, давайте Эту тему прикрепим сверху? Всё-таки машинка массам интересна, и тема по ней актуальность в целом пока не потеряла.
Тем более, что Данная тема де-факто стала агрегатной по всем вопросам, касающимся Д3-28.
Спасибо!
Программа свистелка/записывалка для создания кассет Д3-28:
http://www.phantom.sannata.ru/forum/index.php?t=29632
----------
P.S. Кстати, вопрос к модераторам раздела: емнип, раньше Эта тема была прикреплена вверху и не тонула с течением времени...
... но с какого-то момента она почему-то самооткрепилась и пошла ко дну.
Вчера оперативно вот не смог её отыскать, а была потребность — и только сегодня смог её отыскать, на свежую голову.
Так вот, суть, может, давайте Эту тему прикрепим сверху? Всё-таки машинка массам интересна, и тема по ней актуальность в целом пока не потеряла.
Тем более, что Данная тема де-факто стала агрегатной по всем вопросам, касающимся Д3-28.
Спасибо!
-
- Advanced Member
- Сообщения: 2820
- Зарегистрирован: 05.07.2003,15:30
- Откуда: Питер
- Контактная информация:
-
Конкурсы
Вклад в сообщество
А для чего нужен загрузчик Бейсика - такая коротенькая программка, которая есть на кассетах?
Вроде для обычного Бейсика ничего такого не надо.
Вроде для обычного Бейсика ничего такого не надо.
Собираю в коллекцию советские калькуляторы и компьютеры.
Мой сайт: http://www.leningrad.su/museum/ ICQ=12370106 https://t.me/retrocomps
Мой сайт: http://www.leningrad.su/museum/ ICQ=12370106 https://t.me/retrocomps
В системе команд Д3-28 есть два типа команд загрузки в ОЗУ с ленты (и, соотвтетственно, 2 типа команд записи), исполняемых микрокодом из ПЗУ машины:
1-й тип: загрузка на заданный начальный адрес (чаще всего этот адрес = 0, и задаётся он просто нажатием кнопки "С" на пульте машины перед подачей команды загрузки "СЛ") сколь угодно длинного массива байтов (лишь бы массив поместился в рабочую зону ОЗУ) с контрольными битами чётности между байтами и с обязательным байтом 0512 в конце; для машины это код команды END. Как только машина увидит байт 0512, так загрузка с ленты останавливается.
2-й тип: на начальный адрес, указанный в одном из регистров R, загрузка с ленты 256 произвольных байтов. Как только машина увидит, что с ленты загружено 256 каких-то байт, так она думает, что выполнила команду загрузки, и переходит к выполнению следующей команды в ОЗУ. При этом способе загрузки нет микропрограммного обнаружения ошибок и не играют роли байты 0512.
Допустим, мы хотим загрузить серьёзную большую программу - некий "продвинутый" Бейсик или ОС ВТ-МХТИ и т.п., в которой есть много текстов для вывода на экран терминала. В текстах попадаются байты 0512, так как для терминала это код символа "\" или буквы "э". В этом случае 1-й способ загрузки не годится. А загрузку 2-го типа может обеспечить лишь специальная программа-загрузчик (которая заранее загружается в ОЗУ 1-м способом).
В загрузчике в цикле обновляется начальный адрес загрузки в регистре R после загрузки очередного 256-байтного блока, подсчитывается контрольная сумма блока и сравнивается с указанной в самом блоке, проверяется номер блока (и если блоки на ленте записаны для надёжности с дублированием, то загрузчик пропускает лишние копии), подсчитывается количество загруженных блоков. И как только будет загружено запрограммированное количество 256-байтных блоков, загрузчик передает управление команде в ОЗУ по запрограммированному адресу - происходит запуск загруженной большой программы.
Бывает и несколько загрузчиков: начальный загрузчик (загружаемый 1-м способом) загружает один или несколько 256-байтных блоков и передает им управление, а они загружают остальные блоки по тем или иным адресам в ОЗУ. В общем, 2-способ загрузки гораздо более гибкий, чем 1-й способ. (Однако при этом загружаемая программа или массив данных должны быть специальным образом записаны на ленте - в виде 256-байтных блоков со своими служебными байтами внутри блоков: с номерами блоков и с контрольными суммами. Такая блочная запись должна быть "сгенерирована" специальной программой записи, в которой используются циклы с командами записи 2-го типа).
1-й тип: загрузка на заданный начальный адрес (чаще всего этот адрес = 0, и задаётся он просто нажатием кнопки "С" на пульте машины перед подачей команды загрузки "СЛ") сколь угодно длинного массива байтов (лишь бы массив поместился в рабочую зону ОЗУ) с контрольными битами чётности между байтами и с обязательным байтом 0512 в конце; для машины это код команды END. Как только машина увидит байт 0512, так загрузка с ленты останавливается.
2-й тип: на начальный адрес, указанный в одном из регистров R, загрузка с ленты 256 произвольных байтов. Как только машина увидит, что с ленты загружено 256 каких-то байт, так она думает, что выполнила команду загрузки, и переходит к выполнению следующей команды в ОЗУ. При этом способе загрузки нет микропрограммного обнаружения ошибок и не играют роли байты 0512.
Допустим, мы хотим загрузить серьёзную большую программу - некий "продвинутый" Бейсик или ОС ВТ-МХТИ и т.п., в которой есть много текстов для вывода на экран терминала. В текстах попадаются байты 0512, так как для терминала это код символа "\" или буквы "э". В этом случае 1-й способ загрузки не годится. А загрузку 2-го типа может обеспечить лишь специальная программа-загрузчик (которая заранее загружается в ОЗУ 1-м способом).
В загрузчике в цикле обновляется начальный адрес загрузки в регистре R после загрузки очередного 256-байтного блока, подсчитывается контрольная сумма блока и сравнивается с указанной в самом блоке, проверяется номер блока (и если блоки на ленте записаны для надёжности с дублированием, то загрузчик пропускает лишние копии), подсчитывается количество загруженных блоков. И как только будет загружено запрограммированное количество 256-байтных блоков, загрузчик передает управление команде в ОЗУ по запрограммированному адресу - происходит запуск загруженной большой программы.
Бывает и несколько загрузчиков: начальный загрузчик (загружаемый 1-м способом) загружает один или несколько 256-байтных блоков и передает им управление, а они загружают остальные блоки по тем или иным адресам в ОЗУ. В общем, 2-способ загрузки гораздо более гибкий, чем 1-й способ. (Однако при этом загружаемая программа или массив данных должны быть специальным образом записаны на ленте - в виде 256-байтных блоков со своими служебными байтами внутри блоков: с номерами блоков и с контрольными суммами. Такая блочная запись должна быть "сгенерирована" специальной программой записи, в которой используются циклы с командами записи 2-го типа).
В те времена не слышал о таком. И не понятным кажется применение - ведь в каждой дэтрише был встроенный магнитофон. Для чего еще один? И как он подключался - через УСО или к какому-то разъему на системнике?.Arhat109 писал(а):Вроде бы был же "армянский магнитофон", как внешнее устройство, подключаемое к Д3-28 и способный гонять ленту "вперед-взад" и как раз читать/писать блоками по 256 байт
А вот взялся бы кто из электронщиков сваять такое на современном уровне? Как это вижу:
- лентопротяжка трехдвигательная с раздельным управлением двигателями,
- головка на электромагните,
- усилитель считывания (пока только чтение!) на операционнике,
- управление от Arduino или Raspberry Pi,
Вся эта техника воспроизводит кассеты, записанные на Д3-28, оцифровывает их и переводит в байт-коды с записью в свою память. И еще режим исполнения магнитофонных команд. Тогда можно будет вытащить с кассет все найденное ПО, сделать полноценный эмулятор дэтриши и исполнять программы, завязанные на лентопротяжку (а таких много было).
У меня уже есть все необходимое железо, вот только со временем плохо.
Вот это интересно! А можно подробнее, что за модели? У меня есть на радиорынке знакомый, который всякое-разное старое перепродает. Могу у него поинтересоваться. Я у него уже неплохую лентопротяжку взял от Atari, но однодвигательную. Говорит, что еще много разных валяется...KALDYH писал(а):Готовый веговский ЛПМ БС-02?
Лучше, конечно, вильмовский, но его как отдельный готовый узел купить проблематично.
-
- Advanced Member
- Сообщения: 2594
- Зарегистрирован: 05.06.2009,16:37
- Откуда: Кемерово
-
Вклад в сообщество
Электроника БС-02 - применялся в магнитофонах Вега МП-120С, МП-122С. Можно купить new old stock тут: http://vega-brz.ru/products/category/308559 , ну либо на радиофорумах с разбора.
Вильмовский - от Вильмы-104 или 214, вот такой: http://rt21.getbb.ru/viewtopic.php?f=4&t=41666
Ещё есть ЛПМ с полностью электронным управлением от Маяка/Кометы и от Ноты-220, но это здоровенные железные монстры с сетевым мотором, для компакной самоделки не порекомендую.
Вильмовский - от Вильмы-104 или 214, вот такой: http://rt21.getbb.ru/viewtopic.php?f=4&t=41666
Ещё есть ЛПМ с полностью электронным управлением от Маяка/Кометы и от Ноты-220, но это здоровенные железные монстры с сетевым мотором, для компакной самоделки не порекомендую.