АСПИД вспоминайте

31 views
Skip to first unread message

Leo B.

unread,
Dec 1, 2020, 2:01:16 AM12/1/20
to БЭСМ-6
Заработал АСПИД (на единственном имеющемся у нас файле 

Собственно программа ASPID имелась в виде PERSO на СБоровском 2048 (и в похожем, но попорченном виде, на одной из транспортных лент Э-Б). Трюк был в выяснении, что это за

*CALL ASPID*D:MACROS 

потому что подача файла непосредственно ASPID-у или печатает кирпичи в две колонки, или - если исправить метасимволы - ругается на неизвестные команды.

Эта самая ASPID*D нашлась на образе диска monsys.9 от ОС "Дубна". Напрямую ее использовать не удалось, но в ней нашлись литеральные строки, определяющие необходимые макросы (не бог весть сколько их было). Если их вставить перед файлом, то всё работает.

ШИФР 419999 ЗС5^
ЛЕН 67(2048)^
EEB1A3
*name
*perso:671470
*main aspid
*no load list
*execute
%CK # #CHП _ 
#CCБ & #CПБ @ #ДCK58 #ДCЦ60 #HCЦ1 #PП 
#MAKPO Г #A0 #HOBCЦ #БC3 #CГ0 #A0 #ПБ #Ц #KOHMAK 
#MAKPO ГГ #KПБ #БC3 #A3 #KOHMAK 
#MAKPO HA #A0 #KПБ #БC1 #BC2 #CГ0 #A3 #KOHMAK 
#MAKPO ПEPH #A0 #KПБ #CГ6 #BC2 #БC1 #ЛA3 #KOHMAK 
#MAKPO ПEP #A0 #KПБ #CГ6 #BC2 #БC1 #A0 #KOHMAK 
#MAKPO ПAP #A0 #БC5 #CГ0 #BC10 #A6 #KOHMAK 
#MAKPO ПOД #A12 #TAБ36 - #БC3 #KOHMAK 
#MAKPO Б #ПБ #KOHMAK 
#MAKPO M #KПБ #KOHMAK
(содержимое https://github.com/besm6/besm6.github.io/blob/master/wiki/mkb-assembler-guide.txt без строки *CALL ASPID*D)
*end file
``````
ЕКОНЕЦ  

Теперь осталось только выяснить, как включить в АСПИДе режим вывода в формате команд для фотонаборного автомата (где-то я читал или слышал, что такой режим был) и написать конвертер в HTML.  

Leo

Leo B.

unread,
Dec 1, 2020, 2:19:06 AM12/1/20
to БЭСМ-6
Вот почему не удавалось использовать ASPID*D напрямую: она вызывает процедуру KILNUMPG (Подавление номеров страниц? В ОС Дубна они автоматически печатались по умолчанию?), которой в диспаковском варианте нет, а на monsys.9 она такая:

         С===========================================
          КILNUМРG:,ЕNТRУ,
         С===========================================
          ,*63,704В
          ,*50,74671В
          13,UJ,

Миша Попов, что эти бешеные экстракоды должны были делать? Зачем их два? 

Leo

Mikhail Popov

unread,
Dec 1, 2020, 6:04:59 PM12/1/20
to be...@googlegroups.com
Ответ очень простой и ты будешь, наверно, смеяться, но:

,*63,704В . чтение физ. 704В где сидит бит 44
,*50,74671В. or сумматора в ИПЗ по адресу 571B 
что в ИПЗ означает
В44 - ОТМЕНА НУМЕРАЦИИ СТРАНИЦ

почему ,*63,704В, там была своя логика, по подавлению листования, чтобы пользователи не баловали.

О ASPID-е у Сапожникова была документация в ASPID-е, возможно она дубненцких лентах и есть,
а так, вот,  нашел  https://innoscope.ru/tech/offer/932/


М.П.


--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/c28368f5-7079-45cb-85db-b40ded96a9e8n%40googlegroups.com.

Mikhail Popov

unread,
Dec 1, 2020, 6:21:16 PM12/1/20
to be...@googlegroups.com
А, это-же  БОЯКОВСКИЙ, т.е. препринты можно и найти

https://library.keldysh.ru/preprint.asp?id=1986-134

Препринт ИПМ № 134, Москва, 1986 г.
Авторы: Баяковский Ю.М., Мишакова С.Т.
Автоматизированная система подготовки публикаций и документов (АСПИД)
Язык публикации: русский
Сведения об авторах:
  • Баяковский Юрий Матвеевич,  ИПМ им. М.В. Келдыша РАН
  • Мишакова Светлана Тойвовна,  ИПМ им. М.В. Келдыша РАН


Michael Yaroslavtsev

unread,
Dec 1, 2020, 6:51:28 PM12/1/20
to be...@googlegroups.com
On Tue, Dec 1, 2020 at 3:05 PM Mikhail Popov <mikha...@gmail.com> wrote:
Ответ очень простой и ты будешь, наверно, смеяться, но:

,*63,704В . чтение физ. 704В где сидит бит 44
,*50,74671В. or сумматора в ИПЗ по адресу 571B 
что в ИПЗ означает
В44 - ОТМЕНА НУМЕРАЦИИ СТРАНИЦ

почему ,*63,704В, там была своя логика, по подавлению листования, чтобы пользователи не баловали.

Впечатлён. Офигенный дизайн.
 
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CAHBB7Y7N5nQLSbeTJ6aRG8zbdZrs5rHUOzbCk16Z2b2Q7r__xg%40mail.gmail.com.


--
Thanks,
-- Michael

Leo B.

unread,
Dec 1, 2020, 7:22:14 PM12/1/20
to БЭСМ-6
Спасибо. Действительно, выделить в ИПЗ диапазон слов, доступных для модификации,  и фиксировать их структуру куда как эффективнее, чем городить отдельные экстракоды для каждого флажка. Но читать экстракодом константу - это уже перебор.

Когда я сделал заглушку для KILNUMPG, полезли другие экстракоды уже непосредственно из ASPID-a (дубненский вариант сильно отличается от диспаковского).

На сайте ИПМ только упоминания о существовании препринтов. Самих препринтов там нет.
По адресу https://innoscope.ru/tech/offer/932/  тоже ничего нет.

Mikhail Popov

unread,
Dec 1, 2020, 8:43:02 PM12/1/20
to be...@googlegroups.com
Я же сказал, что это защита, разве на Диспаке *65 (если не ошибаюсь - чтение физ. памяти) был открыт для всех?
или это управлялось паспортом ? в Дубне папорта небыло.

Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/c8331e3c-affa-4403-b86e-67ea8e945fc9n%40googlegroups.com.

Mikhail Popov

unread,
Dec 1, 2020, 8:48:26 PM12/1/20
to be...@googlegroups.com
Лео, пришли что за экстракоды? я проинтерпритирую, что они модут значить. а так можно АСПИД выкрутить и их забить.


Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/c8331e3c-affa-4403-b86e-67ea8e945fc9n%40googlegroups.com.

Mikhail Popov

unread,
Dec 1, 2020, 8:53:43 PM12/1/20
to be...@googlegroups.com
Миша,  если это не сокразм то выглядело это так

                   С..  ЭК РАБОТЫ С ИПЗ :
                   С     ,*50,АДР
                   С     АДР =     15-13   12-11   10-1 РАЗРЯДЫ
                   С                 7      ТИП    АДРЕС ПО ИПЗ
                   С                              +СМЕЩЕНИЕ
                   С..   ТИП = 0   ЧТЕНИЕ ИПЗ
                   С     ТИП = 1   ЗАПИСЬ В ИПЗ
                   С     ТИП = 2   ОПЕРАЦИЯ ’ОR’
                   С     ТИП = 3   ОПЕРАЦИЯ ’АND’
                   С...........................................



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

Michael Yaroslavtsev

unread,
Dec 1, 2020, 10:35:36 PM12/1/20
to be...@googlegroups.com
On Tue, Dec 1, 2020 at 5:43 PM Mikhail Popov <mikha...@gmail.com> wrote:
Я же сказал, что это защита, разве на Диспаке *65 (если не ошибаюсь - чтение физ. памяти) был открыт для всех?

Экстракод открыт, но некоторые области ядра (напр., буфера терминалов) не читались.
 
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CAHBB7Y56LcbmuR9qhNY0TAs1jYyBViA8%2BDHVVaxC5-NifpQmiw%40mail.gmail.com.


--
Thanks,
-- Michael

Michael Yaroslavtsev

unread,
Dec 1, 2020, 10:41:31 PM12/1/20
to be...@googlegroups.com
On Tue, Dec 1, 2020 at 5:53 PM Mikhail Popov <mikha...@gmail.com> wrote:
Миша,  если это не сокразм то выглядело это так

                   С..  ЭК РАБОТЫ С ИПЗ :
                   С     ,*50,АДР
                   С     АДР =     15-13   12-11   10-1 РАЗРЯДЫ
                   С                 7      ТИП    АДРЕС ПО ИПЗ
                   С                              +СМЕЩЕНИЕ
                   С..   ТИП = 0   ЧТЕНИЕ ИПЗ
                   С     ТИП = 1   ЗАПИСЬ В ИПЗ
                   С     ТИП = 2   ОПЕРАЦИЯ ’ОR’
                   С     ТИП = 3   ОПЕРАЦИЯ ’АND’
                   С...........................................

Да, спасибо, понятно.
Я имел в виду, что делать внутреннюю структуру kernel process descriptor-а частью public API - смелая идея.
Надеюсь, хоть не всё подряд писать можно было.
 
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CAHBB7Y7CRQh9ugWNURb%3DORqhXsSmC%2Beq74u3bBAqzC0V7cAiPQ%40mail.gmail.com.


--
Thanks,
-- Michael

Leo B.

unread,
Dec 1, 2020, 11:38:19 PM12/1/20
to БЭСМ-6
Вот что я сделал (на номер 67 заказан диск, сделанный из monsys.9, с переписанными зонами 0172-0271 в зону 1000, чтобы библиотека начиналась с границы сегмента, в эмуляторе диспака - где диски считаются 29 Мб чтобы работали образы дисков СВС - работал сдвиг, и можно было сделать *LIBRARY, потому что как *PERSO библиотеки  ОС Дубна почему-то не грузятся ("испорчен каталог"), хотя *call plcatalog работает. 

Доставать отдельные модули с помощью *LIBLIST, к счастью, тоже работает.

*name
*table:liblist(ЖИРПЕЧ,ЖИРЛИС,iputs)
*liblist:670320
*tapes:671000
*libra:67
*assem
 kilnumpg:,name,
 13,uj,
 ,end,
*call aspid
a quick brown fox jumps over the lazy dog
%kp
*end file

Три каких-то процедурки оказалось надо достать из другой библиотеки. 

Вызывались экстракоды  *65 526  (три раза) и  *65 61. Когда я сделал, чтобы по обоим отдавались нули,
то следующим же экстракодом был *64, который печатал много мусора до конца памяти (НЕТ КОНЦА БЦ.ИНФ).

Leo

Mikhail Popov

unread,
Dec 2, 2020, 3:14:03 PM12/2/20
to be...@googlegroups.com
Вызывались экстракоды  *65 526  (три раза) и  *65 61.

Смахивает на Диспак, что там у вас в 526 и 61 было?  В Дубне: адрес таблицы ISOTOALL и инф.слово чтения монитора

Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/1bb8836e-906b-4c43-aa44-507bd4f72979n%40googlegroups.com.

Mikhail Popov

unread,
Dec 2, 2020, 4:38:09 PM12/2/20
to be...@googlegroups.com
Ну формально, это всё было tribal knowledge, недокументировано ни о структуре ИПЗ, ни интефейс.  А так, чтобы писать в ИПЗ, надо ещё иметь бит физ.действий или быть на служебном счетном канале (что многие из нас и делали)
 

Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CADLwzuf5oqgkMYwZh74gxm2FKoZ2bmffrsNK%2BE%2BVobM3E8PnPw%40mail.gmail.com.

Leo B.

unread,
Dec 2, 2020, 5:09:10 PM12/2/20
to БЭСМ-6
On Wednesday, December 2, 2020 at 12:14:03 PM UTC-8 mikhailp wrote:
Вызывались экстракоды  *65 526  (три раза) и  *65 61.

Смахивает на Диспак, что там у вас в 526 и 61 было?  В Дубне: адрес таблицы ISOTOALL и инф.слово чтения монитора

*65 526 вызывается из процедуры ЖИРПЕЧ, так что скорее всего связано с перекодировкой, потому и специфически Дубненское.
После детрансляции с минимальным украшательством:

 ЖИРПЕЧ            МАDLЕN-3.5  02.12.20 М1 14.02.41   СТР    1    ЖИРПЕЧ            МАDLЕN-3.5  02.12.20 М1 14.02.41   СТР    2

 001L               ЖИРПЕЧ  :  , NАМЕ,        DТRАN  /01.06.84/   0037                         2, VТМ ,
 002L    1          *ЖПРОТ* :  , LС  ,1                            -   0124                     , ХТА ,*0124В
 0000               *0000В  :  , SТI ,12                          0040 0115                     , ААХ ,=200
  -                            , SТI ,11                           -   0046                     , UZА ,*0046В
 0001                        12, WТС ,                            0041 0043                    3, VZМ ,*0043В
  -                          12, VТМ ,                             -                           3, UТМ ,177В
 0002                        11, WТС ,                            0042                          , IТА ,3
  -                          11, VТМ ,                             -   0075                   14, VJМ ,*0075В
 0003                          , SТI ,10                          0043               *0043В  :  , IТА ,8
  -                          14, VТМ ,-6                           -   0075                   14, VJМ ,*0075В
 0004               *0004В  :14, IТS ,7                           0044                         3, VТМ ,
  -   0004                   14, VLМ ,*0004В                       -   0047                     , UJ  ,*0047В
 0005                         9, ВАSЕ,*0000В                      0045               *0045В  : 2, UТМ ,1
  -                           1, VТМ ,                            0046               *0046В  : 3, UТМ ,1
 0006 0125                    4, VТМ ,*0125В                      0047               *0047В  : 1, UТМ ,1
  -   0154                    5, VТМ ,*0154В                       -                          11, UТМ ,-1
 0007                         6, VТМ ,-5                          0050 0054                   11, VZМ ,*0054В
  -                           7, VТМ ,-5                           -                            , IТА ,12
 0010                         3, VТМ ,                            0051 0115                     , ААХ ,=200
  -                            , UТС ,*ЖПРОТ*                      -   0054                     , U1А ,*0054В
 0011                          , ХТS ,                            0052                        12, UТМ ,1
  -   0071                   14, VJМ ,*0071В                       -   0123                     , ХТА ,*0123В
 0012                          , ХТА ,                            0053 0024                     , U1А ,*0024В
  -   0075                   14, VJМ ,*0075В                       -   0023                   10, VLМ ,*0023В
 0013                         2, VТМ ,                            0054               *0054В  :  , WТС ,*ЖПРОТ*
  -                            , *65 ,526В                         -                          11, VТМ ,1
 0014 0122                     , АТХ ,АТАВ                        0055                          , IТА ,1
  -                          12, МТJ ,8                            -                            , IТS ,2
 0015                         8, UТМ ,-1                          0056                        15, АЕХ ,
  -   0023                    8, VZМ ,*0023В                       -   0102                     , UZА ,*0102В
 0016                          , IТА ,8                           0057 0125                    8, VТМ ,*0125В
  -                           8, UТМ ,200В                         -                           6, МТJ ,2
 0017                          , АSN ,64+7                        0060 0117          *0060В  :  , ХТА ,=176
  -   0021                     , UZА ,*0021В                       -   0071                   14, VJМ ,*0071В
 0020                        12, VТМ ,1                           0061 0060                    2, VLМ ,*0060В
  -   0023                     , UJ  ,*0023В                       -   0114                     , *64 ,*0114В
 0021               *0021В  :  , IТА ,8                           0062                        11, VТМ ,1
  -   0071                   14, VJМ ,*0071В                       -                            , IТА ,1
 0022                          , IТА ,8                           0063                          , IТS ,3
  -   0075                   14, VJМ ,*0075В                       -                          15, АЕХ ,
 0023               *0023В  :10, ХТА ,                            0064 0102                     , UZА ,*0102В
  -   0054                     , UZА ,*0054В                       -                           7, МТJ ,3
 0024               *0024В  :  , АSN ,64-8                        0065 0117          *0065В  :  , ХТА ,=176
  -   0123                     , АТХ ,*0123В                       -   0075                   14, VJМ ,*0075В
 0025                          , УТА ,                            0066 0065                    3, VLМ ,*0065В
  -   0124                     , АТХ ,*0124В                       -                           3, VТМ ,-1
 0026 0121                     , ААХ ,=177                        0067 0154          *0067В  : 8, VТМ ,*0154В
  -                            , АТI ,8                            -   0114                     , *64 ,*0114В
 0027                         8, UТМ ,-32                         0070 0067                    3, VLМ ,*0067В
  -   0045                    8, VZМ ,*0045В                       -   0102                     , UJ  ,*0102В
 0030 0122                     , WТС ,АТАВ                        0071               *0071В  : 4, ХТS ,
  -                           8, *65 ,40В                          -                            , АSN ,64-8
 0031                          , АSN ,64-8                        0072                        15, АОХ ,
  -                            , АSN ,64-8                         -                           4, АТХ ,
 0032                          , УТА ,                            0073 0101                    6, VLМ ,*0101В
  -                            , АТI ,8                            -                           6, VТМ ,-5
 0033 0120                     , АЕХ ,=17                         0074 0101                    4, VLМ ,*0101В
  -   0045                     , UZА ,*0045В                      0075               *0075В  : 5, ХТS ,
 0034 0036                    2, VZМ ,*0036В                       -                            , АSN ,64-8
  -                           2, UТМ ,177В                        0076                        15, АОХ ,
 0035                          , IТА ,2                            -                           5, АТХ ,
  -   0071                   14, VJМ ,*0071В                      0077 0101                    7, VLМ ,*0101В
 0036               *0036В  :  , IТА ,8                            -                           7, VТМ ,-5
  -   0071                   14, VJМ ,*0071В                      0100                         5, UТМ ,1


 ЖИРПЕЧ            МАDLЕN-3.5  02.12.20 М1 14.02.41   СТР    3

 0101               *0101В  :14, UJ  ,
 0102               *0102В  :  , IТА ,11
  -                            , UТС ,*ЖПРОТ*
 0103                          , SТХ ,
  -                          14, VТМ ,7
 0104               *0104В  :14, SТI ,
  -                          14, UТМ ,-1
 0105 0104                   14, V1М ,*0104В
  -                          13, UJ  ,
                   С===========================================
 0106               ЖИРЛИС  :  ,ЕNТRУ,
                   С===========================================
 0106 0000                    9, VТМ ,*0000В
  -   0111                     , *64 ,*0111В
 0107 0116                     , ХТА ,=I0
  -                            , UТС ,*ЖПРОТ*
 0110                          , АТХ ,
  -                          13, UJ  ,
 0111 0113          *0111В  :  , Z00 ,*0113В
  -   0113                     , Z00 ,*0113В
 0112                          , АТХ ,
  -                           8, АТХ ,
 0113               *0113В  :  , GОSТ,6Н’201’’231’
 0114               *0114В  : 8, 100 ,
  -                           8, АТХ ,
 0122    1          АТАВ    :  , ВSS ,1
 0123    1          *0123В  :  , ВSS ,1
 0124    1          *0124В  :  , ВSS ,1
 0125   27          *0125В  :  , ВSS ,23
 0154   27          *0154В  :  , ВSS ,23
       203                     , ЕND ,



 

Michael Yaroslavtsev

unread,
Dec 2, 2020, 6:50:04 PM12/2/20
to be...@googlegroups.com
On Wed, Dec 2, 2020 at 12:14 PM Mikhail Popov <mikha...@gmail.com> wrote:
Вызывались экстракоды  *65 526  (три раза) и  *65 61.

Смахивает на Диспак, что там у вас в 526 и 61 было?  В Дубне: адрес таблицы ISOTOALL и инф.слово чтения монитора

В 61, естественным образом, служебные слова 6-го направления МЛ. Очевидно, что разрешать читать это нельзя (там КЧ!), так что такие адреса можно использовать как резервированные для специальных целей.
В ОС ДИСПАК ничего такого, насколько я помню, не было.
 
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CAHBB7Y6gv0X89PY7GWiuh4KuWqcbh8LE8yYs879YVNYhsQEC-g%40mail.gmail.com.


--
Thanks,
-- Michael

Michael Yaroslavtsev

unread,
Dec 2, 2020, 6:51:28 PM12/2/20
to be...@googlegroups.com
On Wed, Dec 2, 2020 at 1:38 PM Mikhail Popov <mikha...@gmail.com> wrote:
Ну формально, это всё было tribal knowledge, недокументировано ни о структуре ИПЗ, ни интефейс.  А так, чтобы писать в ИПЗ, надо ещё иметь бит физ.действий или быть на служебном счетном канале (что многие из нас и делали)

Спасибо за пояснения!
 
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/CAHBB7Y7T40rnkyi7JGf6LaKg6aAZUOtTY%3DG22tC67zsMGtT-QA%40mail.gmail.com.


--
Thanks,
-- Michael

Mikhail Popov

unread,
Dec 2, 2020, 7:18:25 PM12/2/20
to be...@googlegroups.com
Да, это печать с наложением

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

Leo B.

unread,
Dec 2, 2020, 9:40:49 PM12/2/20
to БЭСМ-6
Короче, я вытащил процедуры ISOTOALL и ALLTOISO из диспетчера ОС Дубна, заменил ЖИРПЕЧ на вариант, в котором явно присутствует
,Z00, ISOTOALL
,Z00,ALLTOISO
и больше нет экстракодов, но много радости это не принесло.

Во-первых, эмулятор Диспака умеет далеко не все фичи Э64. Результат запуска по умолчанию (Э64 эмулируется) и с ключом -x (Э64 уходит в псевдо-Диспак, выходной поток печатается после окончания задачи) существенно различаются.

Дано:
....
*main aspid
*execute
однажды в студеную зимнюю пору
я из лесу вышел. был сильный мороз.
гляжу поднимается медленно в гору
лошадка, везущая хворосту воз.
%КР
*end file

Результат: 
Диспаковский АСПИД:

                               1

      ОДНАЖДЫ В СТУДЕНУЮ ЗИМНЮЮ ПОРУ  Я  ИЗ  ЛЕСУ  ВЫШЕЛ.  БЫЛ
 СИЛЬНЫЙ  МОРОЗ.  ГЛЯЖУ  ПОДНИМАЕТСЯ  МЕДЛЕННО В ГОРУ ЛОШАДКА,
 ВЕЗУЩАЯ ХВОРОСТУ ВОЗ.

Дубненский АСПИД, Э64 эмулируется: пара сотен строк полнейшего мусора, ничего похожего на исходный текст, НЕТ КОНЦА БЦ. ИНФ.

Дубненский АСПИД, Э64 нативный диспаковский:
   2 1   00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000 Т 900 F8







   2 ОДНАЖДЫ                                     ТУДЕНУЮ
                                                                                               ИМНЮЮ   ОРУ Я ИЗ ЛЕСУ ВЫШЕЛ. БЫЛ 00000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000 Т 900 F8
                                                  1СИЛЬНЫЙ МОРОЗ. ГЛЯЖУ ПОДНИМАЕТСЯ МЕДЛЕННО\
                                   ОРУ     ОШАДКА,  0000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000 Т 900 F8
   1ВЕЗУЩАЯ                                          ВОРОСТУ
                                                                                              ОЗ.  ДНИМАЕТСЯ МЕДЛЕННО\
                                   ОРУ     ОШАДКА,  0000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000000000 Т 900 F8

Символы \ означают, что следующая строка должна быть наложена на предыдущую. Похоже, что в Э64 в ОС Дубна были произведены неизвестные в других местах улучшения.

Leo

On Wednesday, December 2, 2020 at 4:18:25 PM UTC-8 mikhailp wrote:
Да, это печать с наложением

Michael Yaroslavtsev

unread,
Dec 2, 2020, 9:54:58 PM12/2/20
to be...@googlegroups.com


On Wed, Dec 2, 2020 at 6:40 PM Leo B. <leo...@gmail.com> wrote:
...


Во-первых, эмулятор Диспака умеет далеко не все фичи Э64. Результат запуска по умолчанию (Э64 эмулируется) и с ключом -x (Э64 уходит в псевдо-Диспак, выходной поток печатается после окончания задачи) существенно различаются.

Это и к бабке ходить не надо. Вряд ли кто возьмётся восстановить всю логику Э64 и переписать её на Си. Собственно, в основном, по этой причине весь этот "псевдо-Диспак" и затевался.
Насколько я помню, и в Диспак-то Э64 тоже пришёл из Д68 "куском", путём механического переписывания на БЕМШ.
 
--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/e23b59ad-44ff-4fa1-8136-96ddd1b121adn%40googlegroups.com.


--
Thanks,
-- Michael

Mikhail Popov

unread,
Dec 2, 2020, 10:02:17 PM12/2/20
to be...@googlegroups.com
Leo, I attached isitoall.s.

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/aac2b6dd-69ba-4701-b4f9-b45d262c0136n%40googlegroups.com.
isotoall.s

Leo B.

unread,
Dec 2, 2020, 10:15:59 PM12/2/20
to БЭСМ-6
On Wednesday, December 2, 2020 at 7:02:17 PM UTC-8 mikhailp wrote:
Leo, I attached isitoall.s.

Спасибо, конечно, но видимо, ты при отправке ещё не успел увидеть, что я уже сказал, что уже нашёл, что мне было нужно, и произвёл эксперименты.

Ты не помнишь ли, какие дополнительные умности в ОС Дубна пририсовали к Э64 по сравнению с Диспаком?

Leo

Leo B.

unread,
Dec 2, 2020, 10:30:14 PM12/2/20
to БЭСМ-6
On Wednesday, December 2, 2020 at 6:54:58 PM UTC-8 BOPOHOK wrote:

Во-первых, эмулятор Диспака умеет далеко не все фичи Э64. Результат запуска по умолчанию (Э64 эмулируется) и с ключом -x (Э64 уходит в псевдо-Диспак, выходной поток печатается после окончания задачи) существенно различаются.

Это и к бабке ходить не надо.

Да, но не до такой же степени, чтобы никакого сходства не наблюдалось и управление терялось! Помнится, я в СПИЧ на Э-Б забил на эмуляцию темных углов Э64 и сказал Чайковскому (ז'ל), что если он хочет, то пусть сам весь этот кошмар и эмулирует.
 
Вряд ли кто возьмётся восстановить всю логику Э64 и переписать её на Си. Собственно, в основном, по этой причине весь этот "псевдо-Диспак" и затевался.
Насколько я помню, и в Диспак-то Э64 тоже пришёл из Д68 "куском", путём механического переписывания на БЕМШ.

Во-во, поэтому "улучшениям" поддавался с трудом. Если я правильно помню, его в Диспаке в конце концов слегка ускорили,  но новых фич не добавляли (и печать вещественных чисел так и осталась с ошибками, потому что не было смысла возиться - ею никто не пользовался). А в ОС Дубна поди ж ты. 
 
Кстати о псевдо-Диспаке. Когда у тебя руки дойдут, верни в него, пожалуйста, экстракоды элементарных функций. А то все константы там есть, а реализации нет.

Спасибо,
Leo

Mikhail Popov

unread,
Dec 2, 2020, 11:08:08 PM12/2/20
to be...@googlegroups.com
Э64 - там достаточно много народа упражнялось (Веретенов, Силин, Сахаров и др), я туда не лез, так что, я тут не краевед. В Э64 был сделан полный прерхват на терминал и всякие маленькие улучшения, но совместимость с ДД68 сохранялась, иначе, Мониторная система не работала бы в Диспаке.
ASPID прикручивал Сапожников и (если я правильно помню)  и потом Давыдов, и там уже тормозов небыло, т.к. затаскивали в ОС Дубна. Перехват АЦПУ (уже после Э64) работал на терминал, и Сапожниконв отлаживал всю документацию по МКБ на терминале.
Я бы заглушил ЖИРПЕЧ и посмотрел, что АСПИД туда сует. Мне бы надо поднять simh  и посмотреть, что оттуда  ваползает в Дубне, но насколько я помню, я что-то там хакал с повторной печать. 

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/a9251269-3c3b-4fcf-9f95-85fec3ef2175n%40googlegroups.com.

Mikhail Popov

unread,
Dec 2, 2020, 11:30:28 PM12/2/20
to be...@googlegroups.com
Нашел тебе, взамен, ЖИРПЕЧ

zhirpech.s

Leo B.

unread,
Dec 3, 2020, 12:55:41 AM12/3/20
to БЭСМ-6
On Wednesday, December 2, 2020 at 8:30:28 PM UTC-8 mikhailp wrote:
Нашел тебе, взамен, ЖИРПЕЧ

Спасибо. Вот с такой залипухой вместо ЖИРПЕЧ всё работает (есть некоторые отличия от диспаковского варианта в выравнивании строк и пустых строках, но при их игнорировании всё совпадает с точностью до признака границы страниц),  и оказывается, что никаких жирных букв нигде нет.

program noprogram(output);
type w=packed array [0..5] of char;
s = array [0..21] of w;

PROCEDURE PRINTA(VAR B, E: w; VAR POS:INTEGER); FORTRAN;
(*=e+*)procedure ЖИРПЕЧ(var str: s; var l, ipoz: integer);
var i:integer; c:char; loc:s; bold:boolean;
_( 
    bold := false;
    for i := 0 to l-1 do _(
         c := str[i div 6][i mod 6];
        if ord(c) >= 200B then _(
            bold := true;
            c := chr(ord(c)-200B);
        _);
        loc[i div 6][i mod 6] := c;
    _);
    if l mod 6  <> 0 then for i := l mod 6 to 5 do
        loc[l div 6][i] := ' ';
    printa(loc[0], loc[l div 6], ipoz);
    if bold then _( 
      for i := 0 to l-1 do
       if ord(str[i div 6][i mod 6]) >= 200B then
           loc[i div 6][i mod 6] := '^'
       else
           loc[i div 6][i mod 6] := ' ';
       printa(loc[0], loc[l div 6], ipoz);
    _);
_);
(*=e+*)procedure ЖИРЛИС; var p: integer; hr:alfa;
_( p := 1; hr := ' <hr> '; printa(hr, hr, p); _);
_( _).

Michael Yaroslavtsev

unread,
Dec 3, 2020, 1:02:37 AM12/3/20
to be...@googlegroups.com
Я как-то пытался, и с первого наскока не получилось. уж больно там всё спагеттизировано. Легче заново написать.
 

Спасибо,
Leo

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


--
Thanks,
-- Michael

Mikhail Popov

unread,
Dec 3, 2020, 1:51:00 AM12/3/20
to be...@googlegroups.com
Лео, HTML прямо отсюда будешьвыдавать?

--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
---
Вы получили это сообщение, поскольку подписаны на группу "БЭСМ-6".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес besm6+un...@googlegroups.com.
Чтобы посмотреть обсуждение на веб-странице, перейдите по ссылке https://groups.google.com/d/msgid/besm6/9b085412-9141-41ac-97cb-b37076c54789n%40googlegroups.com.

Leo B.

unread,
Dec 3, 2020, 3:04:11 AM12/3/20
to БЭСМ-6
On Wednesday, December 2, 2020 at 10:51:00 PM UTC-8 mikhailp wrote:
Лео, HTML прямо отсюда будешьвыдавать?

 Нет :) Просто надо было что-то выдать, означающее переход на новую страницу. С тем же успехом можно было и '  ^L  ' написать. 

Странно, что в мониторке не было предусмотрено официального символа в кодировке ISO, который перекодировался бы в код ГОСТ 201, чтобы можно было делать листование самостоятельно.
Экспериментально в эмуляторе выходит, что таким символом мог быть 021, но это может быть и произвольный мусор - в ISOTOALL/ALLTOISO нет ничего подобного.

Leo

Leo B.

unread,
Dec 3, 2020, 3:12:48 AM12/3/20
to БЭСМ-6
On Wednesday, December 2, 2020 at 10:02:37 PM UTC-8 BOPOHOK wrote:
Кстати о псевдо-Диспаке. Когда у тебя руки дойдут, верни в него, пожалуйста, экстракоды элементарных функций. А то все константы там есть, а реализации нет.

Я как-то пытался, и с первого наскока не получилось. уж больно там всё спагеттизировано. Легче заново написать.

 Я примерно это и имел в виду. Вместо а(нетэкс) сделать блочки, вычисляющие соответствующие функции, если Аисп = 0 или уходящие на "нетэкс", если Аисп != 0.

Leo
 

Mikhail Popov

unread,
Dec 3, 2020, 12:48:55 PM12/3/20
to be...@googlegroups.com
Странно, что в мониторке не было предусмотрено официального символа в кодировке ISO, который перекодировался бы в код ГОСТ 201, чтобы можно было делать листование самостоятельно.

Формально, этого делать было не надо, т.к. основное использование печати было из Фортрана, в котором умолчания первой позиции имели более одного заначения (в смысле протяжки страницы). Вторая проблема это печать би-листом, который альтернативно заменял print8, т.е. вывод на новую страницу надо было интерпритиорвать программно, ну и последнее , кодировки все были  от 0 до 177B.


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

Leo B.

unread,
Dec 4, 2020, 3:32:17 AM12/4/20
to БЭСМ-6
Оказалось, что на транспортной ленте АСПИД если и попорченный, то очень несильно.
PERSO называется
LIВRАRУ ОТ  25.10.87 М2 АSРID НА 57

Он умеет работать в двух режимах:
*call program - печатает в две колонки, результат в точности совпадает с АСПИДом с 2048
и
*execute - пишет результат на НУ 57 в одну колонку в таком формате:
..10                                                                            
      A.Л. ДAВЫДOВ                                                              
..03                                                                            
   ЖЖЖ   ЖЖЖ   ЖЖЖ  ЖЖЖЖ  Ж   Ж ЖЖЖЖЖ   ЖЖЖ ЖЖЖЖ  ЖЖЖЖ                          
  Ж   Ж Ж   Ж Ж   Ж Ж     ЖЖ ЖЖ Ж      Ж  Ж Ж     Ж   Ж                         
  Ж   Ж Ж     Ж     Ж     Ж Ж Ж Ж      Ж  Ж Ж     Ж   Ж                         
  Ж   Ж Ж     Ж     ЖЖЖ   Ж Ж Ж ЖЖЖЖ   Ж  Ж ЖЖЖ   ЖЖЖЖ                          
  ЖЖЖЖЖ Ж     Ж     Ж     Ж   Ж Ж   Ж  Ж  Ж Ж     Ж                             
  Ж   Ж Ж   Ж Ж   Ж Ж     Ж   Ж Ж   Ж  Ж  Ж Ж     Ж                             
  Ж   Ж  ЖЖЖ   ЖЖЖ  ЖЖЖЖЖ Ж   Ж ЖЖЖЖ  Ж   Ж ЖЖЖЖЖ Ж                             
..04                                                                            
      Ж   Ж Ж  Ж  ЖЖЖЖЖ        ЖЖЖ   ЖЖЖ   ЖЖЖ    Ж                             
      ЖЖ ЖЖ Ж Ж   Ж           Ж   Ж Ж     Ж   Ж  ЖЖ                             
      Ж Ж Ж ЖЖЖ   ЖЖЖЖ   ЖЖЖ   ЖЖЖ  ЖЖЖЖ  Ж   Ж   Ж                             
      Ж   Ж Ж  Ж  Ж   Ж       Ж   Ж Ж   Ж Ж   Ж   Ж                             
      Ж   Ж Ж   Ж ЖЖЖЖ         ЖЖЖ   ЖЖЖ   ЖЖЖ   ЖЖЖ                            
..27                                                                            
                         МOCKВA 1988                                            
..                                                                              
..                                                                              

Подобный формат уже встречался: https://github.com/besm6/besm6.github.io/blob/master/wiki/elbrus-b-assembler-descr.txt
Чем его печатать, пока не найдено (или когда-то найдено и забыто).

Непонятно, в чем была его польза: ну обозначены группы пустых строк их количеством, и что? Много слов это не экономит.
Кто-нибудь знает?

Leo

Leo B.

unread,
Jun 8, 2021, 4:08:16 PM6/8/21
to БЭСМ-6
On Monday, November 30, 2020 at 11:01:16 PM UTC-8 Leo B. wrote:
Заработал АСПИД (на единственном имеющемся у нас файле 
...
Теперь осталось только выяснить, как включить в АСПИДе режим вывода в формате команд для фотонаборного автомата (где-то я читал или слышал, что такой режим был) и написать конвертер в HTML.  


Благодаря Александру Ильину, посетившему РГБ и посмотревшему пристальным взглядом на препринт про АСПИД, удалось выяснить, что имеющаяся у нас версия несколько старше описанной в препринте (некоторые команды не распознаются), но зато удалось заставить его печатать через строку с подчеркиваниями, означающими большие буквы
(почему-то со сдвигом подчеркиваний на два символа вправо) командой, предназначенной для выдачи на флексорайтер (%ФЛ). 
На обещанную перфоленту по ней ничего не выдается, а по команде для флексорайтера с латинским алфавитом (%FL) получается  " НЕТ КАНАЛА  LUN 53"
Команда записи на магнитный носитель (%МЛ) не считается валидной, как и команды для различения русских и латинских букв с одинаковым начертанием (%Р, %Л, %СЛБ, %СРБ).

Тем не менее, с помощью эмулятора Диспака (*) и простого Perl-скрипта удалось получить примерно такое:

     Перейдем теперь к самому языку ассемблера.

     В некотором смысле его можно считать дальнейшим  разви-
  тием  автокода МАDLЕN-3, зарекомендовавшего себя как удоб-
  ный, наглядный и эффективный автокод. При разработке ново-
  го языка ставились следующие задачи:

      - создать ассемблер, гармонично учитывающий  специфику
        новой машины;


^L                                                                                    6

      - сделать  переход  на новый язык программирования для
        человека, знающего МАDLЕN, как можно более  простым,
        т.Е. Соблюсти традиции, сложившиеся в МАDLЕN’е;

(в последней строке из-за забытой разметки буквы после точек автоматически стали заглавными)

Для памяти: запуск

ШИФР 419999 ЗС5^лен 67(4023)^АЦП 128^EEB1A3
*name 
*perso:670733
*call aspid
%ФЛ 
...

Перл-скрипт, которому на вход подается выдача (уж как умею):

use utf8;
binmode(STDIN, ":utf8");
binmode(STDOUT, ":utf8");
$cnt = 0;
while(<>) {
@line =split //;
if ($line[0] eq chr(12)) { print; $cnt = 0; next; }
++$cnt;
if ($cnt % 2 == 1) { @chars = @line; next; }
@case = @line;
for ($i = 0; $i <= $#chars; ++$i) {
if ($i+2 > $#case || $case[$i+2] ne '_')
     { print lc($chars[$i]); }
        else { print $chars[$i]; }
}
}

Аспид на 2048 в зоне 1470 тоже работает аналогично.

(*) В эмуляторе Диспака печать с наложением игнорируется, поэтому результат проще обрабатывать. А почему оно делается со смещением - загадка.

Michael Yaroslavtsev

unread,
Jun 8, 2021, 5:03:23 PM6/8/21
to be...@googlegroups.com


On Tue, Jun 8, 2021 at 1:08 PM Leo B. <leo...@gmail.com> wrote:
...
На обещанную перфоленту по ней ничего не выдается, а по команде для флексорайтера с латинским алфавитом (%FL) получается  " НЕТ КАНАЛА  LUN 53"
К нему надо что-то подключить средствами Монитора-80.
Зовите Руднева! 
--
Данное сообщение отправлено Вам, как участнику группы "БЭСМ-6":
http://groups.google.com/group/besm6/topics
--
Thanks,
-- Michael

Leo B.

unread,
Jun 8, 2021, 5:34:21 PM6/8/21
to БЭСМ-6
On Tuesday, June 8, 2021 at 2:03:23 PM UTC-7 BOPOHOK wrote:

On Tue, Jun 8, 2021 at 1:08 PM Leo B. <leo...@gmail.com> wrote:
...
На обещанную перфоленту по ней ничего не выдается, а по команде для флексорайтера с латинским алфавитом (%FL) получается  " НЕТ КАНАЛА  LUN 53"
К нему надо что-то подключить средствами Монитора-80.
Зовите Руднева! 

Пожалуй, но толку от при выдаче для "латинского флексорайтера" все специфически русские буквы будут заменяться на пробелы, так что толку от этого немного.

Насколько я смог понять, это более или менее пишущая машинка с перфовводом, так что лучшее, что может получиться на ленте - это последовательность байтов с кодами 
клавиш, а ничего интересного, кроме переключения регистров, там и не будет, а оно у нас уже и так есть.

Leo

Reply all
Reply to author
Forward
0 new messages