Дошёл интеллект и до ДИМИПа

108 views
Skip to first unread message

Leo B.

unread,
Jun 30, 2026, 8:13:02 PMJun 30
to БЭСМ-6
Не прошло и года, как я писал

У нас есть все инструменты для воссоздания ДИМИПа. Их у нас аж два варианта, можно начать с более простого. 

В память о Коле Гайдаренко надо бы. 

С помощью ИИ это всё становится гораздо быстрее:  https://github.com/leobru/re-dimip  -  будучи подсунуто Клоду, он сам трассы запускает, сам до смысла переменных догадывается, сам имена меткам придумывает, сам документацию и комментарии пишет.  Проекту всего пара дней, так что понято ещё не очень много, но лиха беда начало.

Пока, впрочем, хвалёного самомодифицирующегося кода не обнаружено. 

Leo

Leo B.

unread,
Jul 4, 2026, 7:18:52 PMJul 4
to БЭСМ-6
...или "Два мира, две политики".

Коля был хитёр. У него таблица перекодировки ГОСТ <-> ISO, которая в каждом из 256 слов занимает только 2 младших байта, используется и для дешифратора директив. В определенном диапазоне слов в старшей половине слова три символа директивы, а в другом диапазоне - соответствующие им адреса перехода. На БЕМШе это пишется просто:

        КОНК П'ХХХ' а в другом диапазоне будет А(ДИРХХХ)
        КОНК М8П'Y'Д'Z' Y - символ ГОСТ, Z - символ ISO

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

И наоборот: есть цикл вида

       ,UTC, -SUM
 LOOP: ,XTA, SUM
       ,ARX, value
       ,ATX, SUM
       ....

Здесь удобным образом сумма инициализируется нулём благодаря отрицательной перемещаемости, которую Мадлен разрешает. По-моему, это на БЕМШе в принципе не написать.  Вот он, наверное, и ответ, почему Гайдаренко писал Димип на Мадлене.


 Leo

Michael Yaroslavtsev

unread,
Jul 4, 2026, 8:59:26 PMJul 4
to be...@googlegroups.com
On Sat, Jul 4, 2026 at 4:18 PM Leo B. <leo...@gmail.com> wrote:
...или "Два мира, две политики".

Коля был хитёр. У него таблица перекодировки ГОСТ <-> ISO, которая в каждом из 256 слов занимает только 2 младших байта, используется и для дешифратора директив. В определенном диапазоне слов в старшей половине слова три символа директивы, а в другом диапазоне - соответствующие им адреса перехода. На БЕМШе это пишется просто:

        КОНК П'ХХХ' а в другом диапазоне будет А(ДИРХХХ)
        КОНК М8П'Y'Д'Z' Y - символ ГОСТ, Z - символ ISO

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

И наоборот: есть цикл вида

       ,UTC, -SUM
 LOOP: ,XTA, SUM
       ,ARX, value
       ,ATX, SUM
       ....

Здесь удобным образом сумма инициализируется нулём благодаря отрицательной перемещаемости, которую Мадлен разрешает. По-моему, это на БЕМШе в принципе не написать.  Вот он, наверное, и ответ, почему Гайдаренко писал Димип на Мадлене.
Года 43-44 назад я у него спрашивал почему он выбрал Мадлен, но не помню что он ответил.
Думаю, главным образом, это клановость всё - кто в какой культуре вырос. Вон на ВЦ АН СССР люди вообще все с пёсьими головами на автокоде Чайковского программировали. 

Для меня лично главным, хоть и невеликим неудобством Мадлена было отсутствие стандартных средств для изготовления standalone binary executable, особенно, что касается нулевого листа.
Когда я у Коли спросил, почему он с первого листа начинает, а нулевой вообще не использует, он с негодованием ответил: "А зачем мне такой лист, в котором целого слова не хватает?"



 Leo

On Tuesday, June 30, 2026 at 5:13:02 PM UTC-7 Leo B. wrote:
Не прошло и года, как я писал

У нас есть все инструменты для воссоздания ДИМИПа. Их у нас аж два варианта, можно начать с более простого. 

В память о Коле Гайдаренко надо бы. 

С помощью ИИ это всё становится гораздо быстрее:  https://github.com/leobru/re-dimip  -  будучи подсунуто Клоду, он сам трассы запускает, сам до смысла переменных догадывается, сам имена меткам придумывает, сам документацию и комментарии пишет.  Проекту всего пара дней, так что понято ещё не очень много, но лиха беда начало.

Пока, впрочем, хвалёного самомодифицирующегося кода не обнаружено. 

Leo

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/4d0c7d44-f67b-4d01-a2d8-0dc593142712n%40googlegroups.com.


--
Thanks,
-- Michael

Mikhail Popov

unread,
Jul 5, 2026, 10:49:32 PMJul 5
to be...@googlegroups.com
Ну движения в этом направлении в MADLEN-3 были, 
В адресных выражениях могут быть использованы
константы вида: nHsss, nGsss, nTsss. Здесь n — число
символов, а sss — символы, соответственно, из кодов ISO,
GOST или TEXT. Производится число, равное двоичному
коду соответствующего набора символов, нормализован-
ных вправо. Лидирующие неиспользованные байты запол-
няются кодом 0B. Примеры: 1HA = 101B, 1T0 = 20B, 1G2=2,
1HAS3 = 1010B.

В команде LOG (если она не в группе DATA) в ад-
ресном поле может быть записан идентификатор. Тогда
генерируется пара команд:

,Z00,
,Z00,IDENT

Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CADLwzudqEc2ma-sXTtwCLtT7fn_sVbKbCLcPa85YDw0Ws7zykA%40mail.gmail.com.

Leo B.

unread,
Jul 6, 2026, 2:22:00 AMJul 6
to БЭСМ-6
Понятно. Но всё равно, слово, в котором половина перемещаемая, а половина - символы, придётся писать через a, Zbb, ccccc вручную.
Но всё равно, возможность делать отрицательные перемещаемости это мелкое неудобство искупает. :)

Leo

Leo B.

unread,
Jul 6, 2026, 3:17:01 AMJul 6
to БЭСМ-6
Хм. Не работает:
*MADLEN

 PROGRAM           MADLEN-3.5   06/07/26   00.14.37    CTP    1
 001L               PROGRAM :  , NAME,
****** OШИБKA B AДPECE
 0000               ,Z00,1GF
         1                     , END ,

Leo B.

unread,
Jul 6, 2026, 11:33:02 AMJul 6
to БЭСМ-6
Стараниями разных ИИ под руководством ЕИ обнаружено, что пушка (получение выходного потока подчинённой задачи) не стреляла, в частности, потому, что не заряжена была. 

Так, в инструкции по экстракодам (да и в книге Тюрина) говорится, что экстракод получения номера в каталоге ввода по номеру канала устроен следующим образом:

# 5.3.40. Запрос номера в каталоге ввода по номеру программного канала.

    ЭК 050, Аисп = 151b.

## Входная информация:
СМ: 6- 1 рр. - номер программного канала.

## Выходная информация:
СМ: 8- 1 рр. - номер задачи в каталоге ввода или ноль, если канал свободен.


У Тюрина - просто "в младшие разряды сумматора заносится номер задачи во входной очереди". Димип же ожидает этот номер в старших разрядах, ибо немедленно после экстракода делает, грубо говоря, И =М40В'377'.
Откуда такое расхождение между двумя вариантами документации и реализацией - бог весть.

Итого,

$ dispak --subtasks stuff/dimip.b6
УС.КТ
kt work 0000
<-- области АРФЫ функционируют
ВОЙДИ
вой а
*ДИМИП-МКП 05.04.85*
ф тест
=
ФЗ 041
=
КЗ 041 КОНЕЦ ЗАДАЧИ
б 41
л
00001  06.07.26 М1
00002  М О Н И Т О Р-8 0 (3.7) 25.09.84* ( МС " Д У Б Н А " ИАЭ ) ШИФР 419900000000
00003 *NАМЕ
00004  *ЕND FI
=

В файле "тест" было
ред тест
л
00001 ШИФР 419900ЗС5‾
00002 ГЛА 419999‾
00003 ЕЕВ1А3
00004 *NАМЕ
00005 *ЕND FILЕ

Коллективная память говорит, что писать ГЛА для того, чтобы задача была подчинённой, не надо было, вопреки инструкции.
Впрочем, версий Димипа было несколько, и они могли работать по-разному. Это подтверждается и тем, что под Диспаком в SIMH 
Димип как не работал, так и не работает. Там раздел паспорта ГЛА, похоже, просто игнорируется, и задачи подчинёнными не становятся.

Т. е. кто-то принёс в С. Бор "новый Димип", который был радостно записан на 2048, а этот Димип в части работы с подчинёнными задачами
был специфически СВС-овский.

Leo

Mikhail Popov

unread,
Jul 6, 2026, 12:47:53 PMJul 6
to be...@googlegroups.com
Да, поломано, надо тексты посмотреть.

Leo B.

unread,
Jul 7, 2026, 2:44:29 PMJul 7
to БЭСМ-6
Похоже, одну из двух сов мы с Клавдием разъяснили. После реализации в эмуляторе dispak  аппарата подчинённых задач, обработки раздела паспорта ГЛАВ <шифр> (имитация выдачи экстракода подчинения перед выполнением первой пользовательской команды), и обнаружения/исправления несоответствий между документацией и реальностью, судя по коду Димипа, в реализации экстракода получения номера в каталоге ввода по номеру канала, перехват выходного потока подчинённых задач, наконец, заработал.  

В коде найдено несколько вхождений трюков в виде "МОДА ....; МЕТКА операция", но не более того. Главный способ минимизации кода - совмещение таблицы перекодировки с другими константами и короткими текстами.

К сожалению, оба Димипа у нас для Диспака-СВС, и никаких нетривиальных действий с подчиненными задачами под Диспаком-БЭСМ они делать не могут. В частности, в Диспаке-БЭСМ раздел паспорта ГЛАВ,  насколько можно судить, распознается, но игнорируется. 

Leo

Michael Yaroslavtsev

unread,
Jul 7, 2026, 5:21:00 PMJul 7
to be...@googlegroups.com
On Tue, Jul 7, 2026 at 11:44 AM Leo B. <leo...@gmail.com> wrote:
Похоже, одну из двух сов мы с Клавдием разъяснили. После реализации в эмуляторе dispak  аппарата подчинённых задач,
Интересно было бы послушать про реализацию многозадачности в эмуляторе. Сколько я помню, состояние (единственного) пользовательского процесса было размазано по множеству глобальных объектов, как собственно в эмуляторе, так и в мини-диспаке.
--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/a38df1e2-0fbd-4b92-a7d1-7623a2bb916bn%40googlegroups.com.


--
Thanks,
-- Michael

Sergey Ryzhkov

unread,
Jul 7, 2026, 5:25:41 PMJul 7
to be...@googlegroups.com
Так вроде же эмулятор БЭСМ эмулирует, должна многозадачность сама реализовываться уже кодами Диспака. Или все так какие то команды и прерывания работают с жмкляторе не так как в реальной системе?

вт, 7 июл. 2026 г., 22:21 Michael Yaroslavtsev <absolutel...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CADLwzufiW5-A9UvxOOLmkcQK2wfhqxZcQYeSfBcaH3MqStBcQQ%40mail.gmail.com.

Michael Yaroslavtsev

unread,
Jul 7, 2026, 5:30:24 PMJul 7
to be...@googlegroups.com
On Tue, Jul 7, 2026 at 2:25 PM Sergey Ryzhkov <sir...@gmail.com> wrote:
Так вроде же эмулятор БЭСМ эмулирует, должна многозадачность сама реализовываться уже кодами Диспака. Или все так какие то команды и прерывания работают с жмкляторе не так как в реальной системе?
Нет. Тут речь про эмулятор ДИСПАКа. Это другой эмулятор. Он эмцлирует среду выполнения задачи в ОС ДИСПАК и большинство системных вызовов (экстракодов) выполняет самостоятельно.
При этом внутри yего есть мини-ОС - сильно урезанный ДИСПАК, выполняющий некоторые экстракоды, которые переписать на Си было слишком трудозатратно.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CALUV2cwMfmg8kee1Q9WOYfCMiVD9Pte5cbD9jDppEPQabi8cgQ%40mail.gmail.com.


--
Thanks,
-- Michael

Sergey Ryzhkov

unread,
Jul 7, 2026, 5:56:44 PMJul 7
to be...@googlegroups.com
Так сколько их всего этих эмуляторов? Я только Вакуленковский смотрел подробно, но он про МС Дубну вообще. Ещё какой то очень давно на Raspberry запускал и даже в сеть он был выставлен, потом заспаили и выключил. Я думал, что там настоящий Диспак.

вт, 7 июл. 2026 г., 22:30 Michael Yaroslavtsev <absolutel...@gmail.com>:
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CADLwzufmkquNveSL3GJKUfYsJY07-N0QGjcOwGv2BHLZi9EJFQ%40mail.gmail.com.

Michael Yaroslavtsev

unread,
Jul 7, 2026, 6:09:33 PMJul 7
to be...@googlegroups.com
On Tue, Jul 7, 2026 at 2:56 PM Sergey Ryzhkov <sir...@gmail.com> wrote:
Так сколько их всего этих эмуляторов? Я только Вакуленковский смотрел подробно, но он про МС Дубну вообще. Ещё какой то очень давно на Raspberry запускал и даже в сеть он был выставлен, потом заспаили и выключил. Я думал, что там настоящий Диспак.
Мне кажется основных code bases существует две:
  • dispak - эмулятор ОС ДИСПАК, который я, вдохновившись заделом вака,  заложил в 1993. Вскоре ко мне присоединился Лёня. Окончательно его причесал и облагородил vak.
  • SIMH-based эмулятор БЭСМ-6, сделанный Серёжей и Лёней.
Наверное, у них есть какие-то форки.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CALUV2czgrrzN_M8Th30bRVXte7D63jgVxxgbDNP4yoHXRbn54A%40mail.gmail.com.


--
Thanks,
-- Michael

Serge Vakulenko

unread,
Jul 7, 2026, 6:13:23 PMJul 7
to БЭСМ-6
On Tuesday, July 7, 2026 at 2:56:44 PM UTC-7 Сергей Рыжков wrote:
Так сколько их всего этих эмуляторов?

Эмуляторов бэсм6 у нас на настоящий момент четыре.

1. SIMH - имитирует машину целиком, со всей периферией. Условно аналог современных QEMU или VirtualBox. На SIMH можно запустить полную многозадачную операционную систему типа Диспак или ОС Дубна. Дай бог со временем и юникс осилим.

2. dispak - выполняет один пользовательский процесс. Имитирует экстракоды ОС Диспак. Условно аналог Wine, кто знает.

3. dubna -  тоже выполняет один пользовательский процесс, но имитирует экстракоды ОС Дубна. Тоже примерно аналог Wine.

На днях ещё один эмулятор появился:

4. b6sim - выполняет один юниксный процесс. Имитирует системные вызовы Unix v7. Примерный аналог apout от pdp11. Используется для разработки и тестирования Си компилятора.

--Сергей

Leo B.

unread,
Jul 7, 2026, 6:28:31 PMJul 7
to БЭСМ-6
On Tuesday, July 7, 2026 at 2:21:00 PM UTC-7 BOPOHOK wrote:
On Tue, Jul 7, 2026 at 11:44 AM Leo B. <leo...@gmail.com> wrote:
Похоже, одну из двух сов мы с Клавдием разъяснили. После реализации в эмуляторе dispak  аппарата подчинённых задач,
Интересно было бы послушать про реализацию многозадачности в эмуляторе. Сколько я помню, состояние (единственного) пользовательского процесса было размазано по множеству глобальных объектов, как собственно в эмуляторе, так и в мини-диспаке.

Там всё просто. Если в командной строке указано  --subtasks, то после выполнения Э50 7701  создается файл task registry и делается fork-exec dispak, после чего главная и подчиненная задачи общаются между собой через разделяемый в памяти файл.


Всё придумано Клавдием на основании инструкции по экстракодам. Я лишь добавлял какие-то мелкие указания и недостающие детали из книги Тюрина. Довольно долго пришлось выяснять (пришлось прибегнуть к тестовой задаче под SIMH), что причина останова подчинённой задачи сразу после э/к подчинения - явного или неявного из-за ГЛАВ - или после остановки главной задачей должна быть не каким-то существующим кодом авоста, а магическим числом 0177. 

Leo

Michael Yaroslavtsev

unread,
Jul 7, 2026, 6:59:57 PMJul 7
to be...@googlegroups.com
--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/042f272a-3c02-4050-8d29-94f3283251f7n%40googlegroups.com.


--
Thanks,
-- Michael

Michael Yaroslavtsev

unread,
Jul 7, 2026, 7:02:09 PMJul 7
to be...@googlegroups.com
On Tue, Jul 7, 2026 at 3:28 PM Leo B. <leo...@gmail.com> wrote:
On Tuesday, July 7, 2026 at 2:21:00 PM UTC-7 BOPOHOK wrote:
On Tue, Jul 7, 2026 at 11:44 AM Leo B. <leo...@gmail.com> wrote:
Похоже, одну из двух сов мы с Клавдием разъяснили. После реализации в эмуляторе dispak  аппарата подчинённых задач,
Интересно было бы послушать про реализацию многозадачности в эмуляторе. Сколько я помню, состояние (единственного) пользовательского процесса было размазано по множеству глобальных объектов, как собственно в эмуляторе, так и в мини-диспаке.

Там всё просто. Если в командной строке указано  --subtasks, то после выполнения Э50 7701  создается файл task registry и делается fork-exec dispak, после чего главная и подчиненная задачи общаются между собой через разделяемый в памяти файл.
That is cheating.
Разочарован. 

Всё придумано Клавдием на основании инструкции по экстракодам. Я лишь добавлял какие-то мелкие указания и недостающие детали из книги Тюрина. Довольно долго пришлось выяснять (пришлось прибегнуть к тестовой задаче под SIMH), что причина останова подчинённой задачи сразу после э/к подчинения - явного или неявного из-за ГЛАВ - или после остановки главной задачей должна быть не каким-то существующим кодом авоста, а магическим числом 0177. 

Leo

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/042f272a-3c02-4050-8d29-94f3283251f7n%40googlegroups.com.


--
Thanks,
-- Michael

Leo B.

unread,
Jul 7, 2026, 7:39:37 PMJul 7
to БЭСМ-6
И кого же это мы are cheating в данном случае? Где тот таксист, которому обидно, что мы обошли стороной его шашечки, но доехали?

Leo

Michael Yaroslavtsev

unread,
Jul 7, 2026, 7:57:11 PMJul 7
to be...@googlegroups.com
On Tue, Jul 7, 2026 at 4:39 PM Leo B. <leo...@gmail.com> wrote:
И кого же это мы are cheating в данном случае? Где тот таксист, которому обидно, что мы обошли стороной его шашечки, но доехали?
Конечно, задача решена.
image.png
😉 
--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/5edf9dc7-5a51-4ecb-a96d-7ea59de947c7n%40googlegroups.com.


--
Thanks,
-- Michael

Leo B.

unread,
Jul 13, 2026, 12:45:10 AM (10 days ago) Jul 13
to БЭСМ-6
Сразу спрошу:  Кто знает историю возникновения и развития Димипа?

On Tuesday, June 30, 2026 at 5:13:02 PM UTC-7 Leo B. wrote:

Пока, впрочем, хвалёного самомодифицирующегося кода не обнаружено. 

Зато обнаружено, что команда СФ (Список Файлов) смотрела на старшие 4 бита слова в каталоге как на тип файла
и могла выдавать следующие типы файлов:
0 - У (файл, разбитый на строки во внутреннем представлении Димипа, символы в кодировке ГОСТ)
2 - К (файл в машинных кодах, редактирование запрещено)
3 - М (псевдо-файл: макрос-элемент макро-библиотеки)
4 - I (файл в кодировке ISO, формат строк совместим с МС "Дубна")
8/12 - У. и I. соответственно - "созданный, но ни разу не записанный файл".

А ещё могли печататься, но неизвестно, как создавались, тип 1 (Б) и, соответственно, 9 (Б.)

Это ещё что? В планах была поддержка файлов в кодировке БЕМШ? Но вне архивов АРАП они смысла не имели.
Если не БЕМШ, то что? 

И ещё был тип 14, который печатался как "..", но типа 6 не было.

Leo

Michael Yaroslavtsev

unread,
Jul 13, 2026, 1:11:04 AM (10 days ago) Jul 13
to be...@googlegroups.com
On Sun, Jul 12, 2026 at 9:45 PM Leo B. <leo...@gmail.com> wrote:
Сразу спрошу:  Кто знает историю возникновения и развития Димипа?
История возникновения нам неизвестна. Коля с уже полностью готовым ДИМИПом появился как deus ex machina где-то в конце 82-го года. В то время он служил в ШМУ. Вскоре был принят в группу Тюрина.
Развитие впоследствии происходило на наших глазах. Коля постоянно что-то добавлял "по заявкам слушателей", но кто ж теперь всё это вспомнит. Разве что Лена Голенкова.
Помню, что по моему предложению былоа реализована директива EXEC (парсер смотрел только на 3 последних символа, так что внутри она фигурирует как XEC), но что именно эта команда делала, я уже не помню.
Наверное, самым крупным шагом была реализация PAGEN-а - макроязыка, на котором можно было писать программы, выполнявшиеся самим ДИМИПом.
Кстати, название ДИМИП - производное от ДИМОН (Индивидуального Пользования). У него и команды многие были унаследованы из ДИМОНа.
--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/b34fd821-a51f-4bcb-8386-0eed4dafae4cn%40googlegroups.com.


--
Thanks,
-- Michael

Leo B.

unread,
Jul 13, 2026, 12:58:49 PM (9 days ago) Jul 13
to БЭСМ-6
Что такое ШМУ? https://sokr.ru/search/?query=ШМУ вариантов, очевидно осмысленных в контексте ("имеющая отношение к делу организация, в которой можно служить"), не предлагает.

Единственный потенциальный источник макропроцессора PAGEN с его уникальным синтаксисом, который я смог нагуглить - это PArameter GENerator из ранних версий установочных конфигураторов DEC-овских операционок, в первую очередь RT-11.  Он потом заменился на SYSGEN, и англоязычной документации по PAGEN-у не находится.
Коля не говорил, откуда он взял PAGEN?

Я помню первоначальную, или близкую к ней, версию ДИМИПа, которая при старте говорила "УСТАНОВИ КАТАЛОГ" и была ещё без макроязыка (который внутри ДИМИПа называется МКП). Когда я вернулся из армии, он уже был, при входе говорилось "УС. КТ", и это то, что у нас есть на 2048 из С. Бора.

Команды [E]XEC там (уже) нет. Если предположить, что она должна была делать, то ее заменой стало то, что директивы редактора задаются с помощью "<<".
В этой версии также есть несущественная ошибка, из-за которой команду К для сохранения файлов нужно давать дважды (этого я не помню; видимо, делалось на автомате). 

Более новая версия, которая у нас есть на 2248 в области ДИМИП, при входе не говорит ничего, команды "ВОЙ" в ней уже нет, и нужно говорить имя и пароль непосредственно в команде КТ, команды МКП слегка изменились, и работает он неустойчиво:

 =$кт 1234 0 100   --- приглашения больше без backspace, первое - с пробелом. Создаем каталог
=сф тест 1         --- заводим файл ТЕСТ длиной 1, кодировка по умолчанию
=сф файл 1 i       --- заводим файл ФАЙЛ длиной 1, кодировка ISO
=сф                --- список файлов, вот они оба 
  ФАЙЛ    2   1 I.*ДИМИП
  ТЕСТ    1   1 У.*ДИМИП
=ред тест          --- редактируем ТЕСТ
00001 йцукен
00002
*сф                --- файлы всё ещё здесь, у ТЕСТ пропала точка-признак девственности
  ФАЙЛ    2   1 I.*ДИМИП
  ТЕСТ    1   1 У *ДИМИП
*к                 --- сохраняем файл
*сф                --- ой, а куда они делись?
*кт 1234 0         --- перечитываем каталог
БИБЛ: 0 НЕТ        --- это нормально, раз пользователь не указан
*сф                --- файлы на месте, но ТЕСТ снова нетронут 
  ФАЙЛ    2   1 I.*ДИМИП
  ТЕСТ    1   1 У.*ДИМИП
*ред тест          --- увы, ничего никуда не сохранилось
00001

Такие дела. А под SIMH этот ДИМИП вообще падает в произвольные моменты времени. Видимо, интерфейс существенных для его работы экстракодов к тому времени разошёлся принципиально.

Leo

Michael Yaroslavtsev

unread,
Jul 13, 2026, 3:16:43 PM (9 days ago) Jul 13
to be...@googlegroups.com
On Mon, Jul 13, 2026 at 9:58 AM Leo B. <leo...@gmail.com> wrote:
Что такое ШМУ? https://sokr.ru/search/?query=ШМУ вариантов, очевидно осмысленных в контексте ("имеющая отношение к делу организация, в которой можно служить"), не предлагает.
Шеф-монтажное управление. Одна из двух, насколько я помню, организаций, занимавшихся установкой и наладкой БЭСМ-6 и Э1К2. Вторая - завод САМ.

Единственный потенциальный источник макропроцессора PAGEN с его уникальным синтаксисом, который я смог нагуглить - это PArameter GENerator из ранних версий установочных конфигураторов DEC-овских операционок, в первую очередь RT-11.  Он потом заменился на SYSGEN, и англоязычной документации по PAGEN-у не находится.
Коля не говорил, откуда он взял PAGEN?
PDP точно упоминалась. Точнее не помню. 
Чтобы посмотреть обсуждение, перейдите по ссылке https://groups.google.com/d/msgid/besm6/4a6c0c71-8899-4525-9301-16744c01091fn%40googlegroups.com.


--
Thanks,
-- Michael

Leo B.

unread,
12:01 AM (14 hours ago) 12:01 AM
to БЭСМ-6
Через безумное количество лет после начала работы над эмулятором стало, наконец, понятно, как была устроена остановка по ЗПСЧ (по-нонешнему, watchpoint).  Была она устроена чуть-чуть не так, как написано в ТО, а ещё более просто:
не вдаваясь в подробности приписок, команды ЗП, ЗПМ вызывают прерывание, когда их исполнительный адрес равен регистру ЗПСЧ и стоит признак прерывания по записи; команды СЧ, СЧМ, СЧРЖ, МОД, и прочие арифметико-логические вызывают прерывание, когда их исполнительный адрес (а вовсе не "адрес считывания операнда") равен регистру ЗПСЧ и признак прерывания по записи сброшен.

Это значит, во-первых, что неявная работа с магазином игнорируется, и, во-вторых, что команды типа считывания в магазинном режиме вызывают прерывание не тогда, когда ожидается.

Итого, в ответ на выполнение вот такого ПАГЕН-макроса

<mcr=boom
<st=01=1
<boom
<men

один димип говорит ПЕРЕП. СТЕК, другой димип говорит СТЕК!, и всё продолжает работать как надо.
(Если что, название макроса придумал не я, а Codex.)

Leo

Reply all
Reply to author
Forward
0 new messages