Фальшивый паспорт

Aug. 22nd, 2025 12:43 am
spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
Насколько можно судить, система DMS ("Диалоговая мониторная система") позволяла пользователям записывать пакеты задачи полностью в форме МС "Дубна" путем изобретения карт "заказа ресурсов" и преобразовывала их в разделы паспорта при формировании задачи. Это требовало наличия поддержки со стороны "Монитора-80", который обладал бы ровно тем же знанием о наборе и формате карт заказа ресурсов, чтобы уметь их или игнорировать, или как-то ещё дополнительно обрабатывать.

Вот какие были карты заказа ресурсов в таблице дешифратора. Для большинства из них соответствующий раздел паспорта Диспака очевиден, но не для всех. Некоторые - явный договорняк между DMS и Монитором-80; остальные - загадка.

PASS - это, возможно, механизм указания пароля на шифр
GRIF - раздел паспорта ГРИФ
REPEA - ПОВТ
RESPO - ???
WAIT - ЖДЕМ
TIME - ВРЕМ
LINE - АЦПУ
PAGE - ЛИСТ
///// - ???
LIBRA - неясно, зачем она здесь, ведь *LIBRA разрешается в любом месте пакета
ATAPE - ???
FTAPE - ???
LTAPE - ???
DISC - ДИСК
CHECK - ???
TAPE - ЛЕНТ
NEW - ???
DRUM - ТРАК
MEMO - ОЗУ
PRIO - ???
TELE - ТЕЛЕ
PRINT - ПЕЧ ?
ASSIG - *ASSIGN трактуется как ошибка
BLERR - ???
FILE - связь с DMS FS?
JSPC - --""--
JLIB - --""--
JFILE - --""--
DUMON - ???
BUGJE - явно имелся в виду BUDGET, но такого раздела паспорта я не припомню
BESM - МАШ
MS - ???

Математики, ау!

Aug. 19th, 2025 11:48 am
spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
Вот пишете вы, скажем, компилятор — для простоты, ассемблер — с языка, в котором бывают литеральные константы (не таков был покойный Марк Германович Чайковский).

Как вы организуете уникальность литеральных констант? Посмотрим на БЕМШ и попробуем в нём тест
OШИБKИ   HПK  CBOБ ПEPEM AДPEC KOMAHДA    A ИCП N ГEH N ИCX METKA  OПEPAЦИЯ OПEPAHД   KOMMEHTAPИЙ
                                                 0001  0001 TEST   START 1
         001             00001 00 010 0005       0002  0002        XTA   =B’4’
                               00 010 0006       0003  0003        XTA   =B’1’
                         00002 00 010 0007       0004  0004        XTA   =B’7’
                               00 010 0010       0005  0005        XTA   =B’3’
                         00003 00 010 0011       0006  0006        XTA   =B’6’
                               00 010 0012       0007  0007        XTA   =B’2’
                         00004 00 010 0013       0008  0008        XTA   =B’5’
                               00 22
                                                 0009  0009        FIN
                         00005  0000000000000004
                         00006  0000000000000001
         002             00007  0000000000000007
                         00010  0000000000000003
                         00011  0000000000000006
                         00012  0000000000000002
                         00013  0000000000000005

Как видим, в каком порядке литералы были упомянуты в коде, в таком и получились в блоке данных. Если разных литералов не безумные тыщи, то цикл линейного поиска, помещающийся в БРС, вполне адекватен, и добавление нового литерала в конец массива не требует копирования памяти.

А теперь попробуем Мадлен:ну попробуем )
spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
В дампе диска встретился текст:

PCAM: O PECYHЯTA П ИЛИ COHЧEHA HE OK````````````ЗАДАЧА

Что это значит и зачем так?
spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
Смотрите, что нашлось:
  BREEDING:,NAME,
C*
C***   1.10.85.   A.П.CAПOЖHИKOB
C*             ( C ПOДAЧИ P.EГИKЯHA )
C*
C*   *CALL BREEDING:NAME(N1,N2,...,NN)
C*   "PAЗMHOЖEHИE" ЗAДAHHOЙ ПPOГPAMMЫ
C*   BO BPEMEHHOЙ БИБЛИOTEKE.
C*
C*   ИЗ-ЗA OTCYTCTBИЯ B ФOPTPAHE PEKYPCИИ
C*   PEKYPCИBHЫE ПO CBOEЙ CYTИ BЫЗOBЫ
C*   ПOДПPOГPAMM ПPИXOДИTCЯ ПOДMEHЯTЬ
C*   OБPAЩEHИEM K KOПИЯM ЭTИX ПOДПPOГPAMM,
C*   ИMEЮЩИM ДPYГИE ИMEHA.  ПPИ ЭTOM
C*   ЧИCЛO KOПИЙ ДOЛЖHO COOTBETCTBOBATЬ
C*   ГЛYБИHE PEKYPCИИ.
C*     ПPOГPAMMA   BREEDING  ПPEДCTABЛЯET
C*   ИЗ CEБЯ MEXAHИЗM ДЛЯ ПOPOЖДEHИЯ HYЖ-
C*   HOГO KOЛИЧECTBA TAKИX KOПИЙ.  ПPOГ-
C*   PAMMA C ИMEHEM  NAME  PAЗЫCKИBAETCЯ
C*   BO BPEMEHHOЙ БИБЛИOTEKE (ИЛИ CPEДИ
C*   ЗAKAЗAHHЫX OБCП).  ЗATEM KATAЛOГ
C*   BPEMEHHOЙ БИБЛИOTEKИ ДOПOЛHЯETCЯ
C*   ИMEHAMИ  N1,N2,...,NN,  ПPИЧEM
C*   YKAЗATEЛИ MECTOПOЛOЖEHИЯ ПPOГPAMM
C*   N1,N2,...,NN  ДYБЛИPYЮT YKAЗATEЛЬ
C*   ДЛЯ  NAME.
C*


Вот уж поистине топором брились, рекурсивные процедуры на Фортране писали, вместо более подходящих для этого языков.

К сожалению, не работает. Отсутствующие в каталоге процедуры диагностирует
*CALL BREEDING:NOTEXIST(FOO)
  OTCYTCTBYET :
                    NOTEXIST
, но если дать существующую, то тихо ничего не делает
*CALL BREEDING:BREEDING(FOO)
*CALL TCATALOG
                                             17 ABГ 25 14.25
                      TEMPORARY LIBRARY
                     CBOБOДHO  21 03 25
   BREEDING   21 02 00  00106

Всеед без литералов

Aug. 9th, 2025 05:52 pm
spamsink: (Default)
[personal profile] spamsink posting in [community profile] besm6
Задача: за минимальное количество команд получить на сумматоре всеед, не используя никаких литеральных констант.

За 11 команд это делается тривиально:
 14,vtm,7777b . УИА '7777'(М16)
 ,ita,14      . СЧИ М16
 ,asn,64-12   . СДА 64-12
 ,its,14      . СЧИМ М16
 15,aex,      . НТЖ (М17)
 ,asn,64-12   . СДА 64-12
 ,its,14      . СЧИМ М16
 15,aex,      . НТЖ (М17)
 ,asn,64-12   . СДА 64-12
 ,its,14      . СЧИМ М16
 15,aex,      . НТЖ (М17)

Кто меньше? Если для решения важен конкретный режим АУ, можно считать, что он уже установлен.

По идее это должно быть можно сократить как минимум на пару-тройку команд (таки можно, попробуйте).

Profile

x86128: (Default)
x86128

April 2023

S M T W T F S
      1
2345678
9101112131415
16171819202122
232425 26272829
30      

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 22nd, 2025 02:50 pm
Powered by Dreamwidth Studios