Я что-то нашел

51 views
Skip to first unread message

Leo Broukhis

unread,
Nov 1, 2009, 1:38:27 AM11/1/09
to БЭСМ-6
Если я не ошибаюсь, в зонах 1125-1131 диска 2049 (он у нас пока только
в формате эмулятора Диспака) лежит ничем не попорченный модуль БЕГА, в
который входят собственно "БЕГА", "ПОСАДКА" и "LANDING". Что нужно,
чтобы его запустить?

Leo

Basil Dolmatov

unread,
Nov 1, 2009, 4:09:48 AM11/1/09
to be...@googlegroups.com
Загрузить его с нулевого листа, передать управление на ячейку 00007
(AFAIR)...

Но... Нужно обеспечить наличие в 37-м листе кода административной
системы Паскаль-Автокода (см. стандартный паспорт ДЖИНа).

Все модули ДЖИНа были написаны на Паскаль-Автокоде и для своей работы
требовали эту административку...

Leo Broukhis

unread,
Nov 1, 2009, 11:25:59 AM11/1/09
to be...@googlegroups.com
2009/11/1 Basil Dolmatov <vdol...@gmail.com>:

> Leo Broukhis wrote:
>> Если я не ошибаюсь, в зонах 1125-1131 диска 2049 (он у нас пока только
>> в формате эмулятора Диспака) лежит ничем не попорченный модуль БЕГА, в
>> который входят собственно "БЕГА", "ПОСАДКА" и "LANDING". Что нужно,
>> чтобы его запустить?

> Загрузить его с нулевого листа, передать управление на ячейку 00007
> (AFAIR)...
>
> Но... Нужно обеспечить наличие в 37-м листе кода административной
> системы Паскаль-Автокода (см. стандартный паспорт ДЖИНа).

Стандартный паспорт ссылается на область.
Какие были у этого кода отличительные признаки, чтобы найти его на сыром диске?

> Все модули ДЖИНа были написаны на Паскаль-Автокоде и для своей работы
> требовали эту административку...

Не требовали ли они чего-нибудь еще? Листа связи с другими блоками
ДЖИНа, например?

Leo

Сергей В.

unread,
Nov 1, 2009, 11:37:44 AM11/1/09
to БЭСМ-6
On 1 ноя, 12:09, Basil Dolmatov <vdolma...@gmail.com> wrote:
> Leo Broukhis wrote:
> > Если я не ошибаюсь, в зонах 1125-1131 диска 2049 (он у нас пока только
> > в формате эмулятора Диспака) лежит ничем не попорченный модуль БЕГА, в
> > который входят собственно "БЕГА", "ПОСАДКА" и "LANDING". Что нужно,
> > чтобы его запустить?

Аналогично в зонах 1230--1235 старого ИТМовского диска 2048 находится
модуль КАЛАХ.

> Загрузить его с нулевого листа, передать управление на ячейку 00007
> (AFAIR)...

Похоже на то.

> Но... Нужно обеспечить наличие в 37-м листе кода административной
> системы Паскаль-Автокода (см. стандартный паспорт ДЖИНа).

Судя по коду, в 36-м листе:
1230.0007: пв 74003(10) мода
1230.0010: слиа -10(10) пб 12533(10)

И берётся 36-й лист из зоны 1006. Но у меня пока вылетает по делению
на нуль.
___
Сергей

Leo Broukhis

unread,
Nov 1, 2009, 12:22:20 PM11/1/09
to be...@googlegroups.com
2009/11/1 Сергей В. <serge.v...@gmail.com>:

>
>> Но... Нужно обеспечить наличие в 37-м листе кода административной
>> системы Паскаль-Автокода (см. стандартный паспорт ДЖИНа).
>
> Судя по коду, в 36-м листе:
> 1230.0007:  пв 74003(10)    мода
> 1230.0010:  слиа -10(10)    пб 12533(10)
>
> И берётся 36-й лист из зоны 1006. Но у меня пока вылетает по делению
> на нуль.

1007 зону в 37-й лист стоит прочитать, наверное.

Leo

Сергей В.

unread,
Nov 1, 2009, 12:46:01 PM11/1/09
to БЭСМ-6
On 1 ноя, 20:22, Leo Broukhis <l...@mailcom.com> wrote:
>
> 1007 зону в 37-й лист стоит прочитать, наверное.

Нет, туда идёт 1035-я зона.

Оказывается, готовые программы Паскаль-автокода можно выполнять из
Пульта директивой ПАСКАЛ-ВЫП. Например:

паскал-вып 400125 5

Первый параметр - начало, второй - длина. Но бега и калах выходят на
конец задачи: хотят "ТАМБОВ" в ячейке 76233.
___
Сергей

Sergey Ryzhkov

unread,
Nov 1, 2009, 1:11:25 PM11/1/09
to be...@googlegroups.com
А пульт уже работает?

1 ноября 2009 г. 20:46 пользователь Сергей В.
<serge.v...@gmail.com> написал:

Sergey Ryzhkov

unread,
Nov 1, 2009, 1:13:04 PM11/1/09
to be...@googlegroups.com
Кстати, я понял. что какие то шифры уже завели?

1 ноября 2009 г. 21:11 пользователь Sergey Ryzhkov <s...@rinet.ru> написал:

Leo Broukhis

unread,
Nov 1, 2009, 1:33:33 PM11/1/09
to be...@googlegroups.com
2009/11/1 Sergey Ryzhkov <s...@rinet.ru>:
> А пульт уже работает?

Да, работает. examples/pult.b6, вызывается в эмуляторе Диспака.
И тираж работает, я даже нашел один файл, который им можно напечатать:

dispak/dispak -p examples/tirazh.b6
боб 2048
печ 654 2

Leo

Basil Dolmatov

unread,
Nov 1, 2009, 1:33:33 PM11/1/09
to be...@googlegroups.com
Сергей В. пишет:
Так и должно быть... :)

Это В.В. такое средство от запуска через Пульт сделал.

Совершенно отдельная история. :)

dol@
P.S. Если убить эту проверку, то все будет работать. :)

Сергей В.

unread,
Nov 1, 2009, 1:52:25 PM11/1/09
to БЭСМ-6
On 1 ноя, 21:33, Basil Dolmatov <vdolma...@gmail.com> wrote:
> Так и должно быть... :)
> Это В.В. такое средство от запуска через Пульт сделал.
> Совершенно отдельная история. :)
> P.S. Если убить эту проверку, то все будет работать. :)

Поставил тамбов через отладчик. Теперь выходит на контроль команды по
адресу 77410.

СИСТЕМА ПУЛЬТ 01.11.89
^C
Interrupt
56551: 10 30 00053 uj
- 76233=1442005410227042
- g

паскал-вып 400125 5
77410: 00 000 0000 atx
acc = 0000000000012525 Y = 0000000000000000 R = 000111
11346 12525 12530 01020 66131 66000 67015 00000
12126 00070 12530 10673 11374 10700 12536
АВОСТ 000024
РАSСАLИНФ О СТЕКЕ СВЕРХУ
1. АДРЕС СТЕКА=5464БЕЗ РМД
2. АДРЕС СТЕКА=5461БЕЗ РМД
3. АДРЕС СТЕКА=4838БЕЗ РМД
ЭТО БЫЛ РМD ПРОГРАММЫ...

паскал-вып 410230 6
КОНТРОЛЬ КОМАНДЫ
77410: 00 000 0000 atx
acc = 0000000000013754 Y = 0000000000000000 R = 000111
12704 13754 13761 01020 66131 66000 67015 00000
13546 00070 13761 12502 13014 12507 13767
___
Сергей

Leo Broukhis

unread,
Nov 1, 2009, 2:00:06 PM11/1/09
to be...@googlegroups.com
Я запускаю без Пульта, с помощью модифицированного паспорта "тиража":

ШИФР 419900^
ВРЕМ 110^
АЦПУ 15^
ЛИСТ 0-14,32,34-37^
ЛЕНТ 50(2048)^
ТРАК 20^
РОСП 0^
ТЕЛЕ^
СПЕЦ^
ВХОД 70000^
Е
В 70000
К 00 110 0007 00 040 0006
К 07 24 00064 15 24 77773
К 00 170 0007
К 00 110 0007 00 113 0010
К 00 100 0007 15 37 70002
К 00 170 0011
К 00 30 70012
С 0010 0000 0050 1125
С 0000 0100 0000 0001
С 0010 3600 0050 1006
К 00 170 0101
К 00 110 0100 00 100 6233
К 00 30 00007
В 70100
С 14420054 10227042
С 0010 3700 0050 1035
ЕКОНЕЦ

Получаю некорректный Э70 по адресу 77412: пытается прочесть
в 0-й (!) лист 140-ю зону с виртуального номера 40:

0010000000400140

Leo

Basil Dolmatov

unread,
Nov 1, 2009, 2:00:29 PM11/1/09
to be...@googlegroups.com
Сергей В. пишет:
On 1 ноя, 21:33, Basil Dolmatov <vdolma...@gmail.com> wrote:
  
Так и должно быть... :)
Это В.В. такое средство от запуска через Пульт сделал.
Совершенно отдельная история. :)
P.S. Если убить эту проверку, то все будет работать. :)
    
Поставил тамбов через отладчик. Теперь выходит на контроль команды по
адресу 77410.

  
Угу... Как всегда, второй пинок подправляет склероз... :)


там действительно незаимозаменяемо... :(
ДЖИН использовал слегка подправленную административку... Что там было направлено - не разбирался, всегда просто копировал её - и все.
Поставлялась отдельным листом as is.

а "ТАМБОВ" - это еще и опознаватель элементов ДЖИНа, это слово должно быть в каждом блоке, на него проверялось при перегрузке блоков, чтобы не передавать управление куда попало, если блок будет затерт.

Кстати, если проискать диски, то все элементы ДЖИНа можно будет выловить...
Константа типа ALPHA, то есть аккуратно ложилась в машинное слово.

dol@


Basil Dolmatov

unread,
Nov 1, 2009, 2:11:52 PM11/1/09
to be...@googlegroups.com
Leo Broukhis пишет:

>
> Получаю некорректный Э70 по адресу 77412: пытается прочесть
> в 0-й (!) лист 140-ю зону с виртуального номера 40:
>
>
Ну, оно примерно это и должно было сделать... :)

1. ДЖИН не индифферентен к номеру устройства и зоне...
Он живет на 40... :)
2. И сдвиг можно теперь подвычислить... Если в 1000-й зоне в 7-й ячейке
есть осмысленные команды, то я бы заказал 2048 на 40, в стандартном
паспорте поставил бы туда сдвиг на 640(8) зон и попробовал бы еще разок

> 0010000000400140
>
> Leo
>
> >
>

Leo Broukhis

unread,
Nov 1, 2009, 2:27:01 PM11/1/09
to be...@googlegroups.com
2009/11/1 Basil Dolmatov <vdol...@gmail.com>:

> Угу... Как всегда, второй пинок подправляет склероз... :)
>
>
> там действительно незаимозаменяемо... :(
> ДЖИН использовал слегка подправленную административку... Что там было
> направлено - не разбирался, всегда просто копировал её - и все.
> Поставлялась отдельным листом as is.

Адреса входов, надеюсь, были те же, что и в стандартной? Иначе как
компилятор знал, для какой версии административки компилировать?

> а "ТАМБОВ" - это еще и опознаватель элементов ДЖИНа, это слово должно быть в
> каждом блоке, на него проверялось при перегрузке блоков, чтобы не передавать
> управление куда попало, если блок будет затерт.

Еще вот в чем дело. Вот трасса экстракодов прямого запуска:

70002:070.70007(0010000000501125) 0010000000501125
70002:070.70007(0010010000501126) 0010010000501126
70002:070.70007(0010020000501127) 0010020000501127
70002:070.70007(0010030000501130) 0010030000501130
70002:070.70007(0010040000501131) 0010040000501131
70005:070.70011(0010360000501006) 0010050000501132
70012:070.70101(0010370000501035) 0010360000501006
74243:070.74357(0010340000270000) 0000000000074252
11110:063.00004(1402011014220104) 0000000000000001
11112:053.00010(4257777043011100) 0000000000000062
11117:071.12526(7777777777777777) 7777777777777777
77412:070.77547(0010000000400140) 0010000000400140

Что он хочет в 34-й лист с 0-го тракта барабана 27?

1. ДЖИН не индифферентен к номеру устройства и зоне...
Он живет на 40... :)

ОК.

2. И сдвиг можно теперь подвычислить... Если в 1000-й зоне в 7-й ячейке
есть осмысленные команды, то я бы заказал 2048 на 40, в стандартном
паспорте поставил бы туда сдвиг на 640(8) зон и попробовал бы еще разок

В 1000-й зоне дешифратор пульта. Осмысленные команды, среди которых
встречается текстовая константа "ИГР" - в 1140 зоне.

Но какой сдвиг ни ставь, он все 32 листа в цикле читает и теряет управление.

Leo

Сергей В.

unread,
Nov 1, 2009, 2:32:04 PM11/1/09
to БЭСМ-6
On 1 ноя, 22:00, Basil Dolmatov <vdolma...@gmail.com> wrote:
> ДЖИН использовал слегка подправленную административку... Что там было направлено - не разбирался, всегда просто копировал её - и все.

То есть 37-я страница от пульта не подойдет? :(

> Кстати, если проискать диски, то все элементы ДЖИНа можно будет выловить...

Поиск на диске 2049:

Searching for 'тамбов' on disk 2049/0000, 10000 zones
1126.0630: В 0000 НЕТ00ТАМБОВИГР КОН СОN В БЛОКЕ НЕТ ПРИКАЗА
0000НЕ П
1225.0277: БЛОКА А00000ТАМБОВ -= ОТЛАДКА =-000ДАЙ РАБОТУ
<ТАБ,АНК,КОН,ВЫХ>

Поиск на ИТМовском диске 2048:

Searching for 'тамбов' on disk 2148/0000, 10000 zones
0540.0601: АDМIN+00000ТАМБОВОТЛКАД501300<*> ОТЛАДКА
<*>0000КАД000СПРЗАФИ
0545.0561: 00000ТАМБОВ<*> ОТЛАДКА <*>0000УСТ000СЛУ000ПЕЧ000ВЦП000Э
0553.0464: 0≠4000ТАМБОВ-= ОТЛАДКА =-000000СЛУВАМ НЕЛЬЗЯ00ВЫХ 0000К
0560.0614: ВАМ НЕЛЬЗЯ00ТАМБОВ<*> ОТЛАДКА
<*>0000КАД000СПР000VVО000СОN000П
0565.0753: ЛЬЗЯ000Ц(000ТАМБОВ<*> ОТЛАДКА
<*>0000КАД000СПР000ТАБ000АРХПАРО
1010.0232: 0000:0000:ТАМБОВ00000СRЕQ НЕТ БОБИНЫ00КОН ДО СВИДАНИЯ !
000
1126.0630: В 0000 НЕТ00ТАМБОВИГР КОН СОN В БЛОКЕ НЕТ ПРИКАЗА
0000НЕ П
1225.0277: БЛОКА А00000ТАМБОВ -= ОТЛАДКА =-000ДАЙ РАБОТУ
<ТАБ,АНК,КОН,ВЫХ>

На сосновоборском 2048 вообще ничего нет.
___
Сергей

Leo Broukhis

unread,
Nov 1, 2009, 2:38:07 PM11/1/09
to be...@googlegroups.com
Так, уже лучше: вместо 1035 зоны читаем в 37-й лист 64-ю, как это
делает Тираж, получаем:

70002:070.70007(0010000000401125) 0010000000401125
70002:070.70007(0010010000401126) 0010010000401126
70002:070.70007(0010020000401127) 0010020000401127
70002:070.70007(0010030000401130) 0010030000401130
70002:070.70007(0010040000401131) 0010040000401131
70005:070.70011(0010360000401006) 0010050000401132
70012:070.70101(0010370000400064) 0010360000401006
70014:050.00112(0400000000000000) 0000000000400020

Тираж тоже читает этот барабан, но ему от этого не плохеет.

74243:070.74357(0010340000270000) 0000000000074252
11110:063.00004(1402011014220104) 0000000000000001
11112:053.00010(4257777043011100) 0000000000000062
11117:071.12526(7777777777777777) 7777777777777777

76104:071.77013(7777777777777777) 0000000000000001
76525:071.76401(0420000011000000) 0000000000000000
НЕ ПОНИМАЮ

Явно у нас в эмуляторе диспака какая-то ошибка в Э71 - или что-то не
реализовано.

77412:071.76402(0120000000000000) 1000000200000012
02755:063.00004(1402011014220104) 0000000000011346
76104:071.77013(7777777777777777) 0000000000000001
76525:071.76401(0420000011000000) 0000000000000000
ВАШЕ ВРЕМЯ ИСТЕКЛО

Это совсем странно. Э63 4 должен возвращать что-то очень близкое к нулю.

77412:071.76402(0120000000000000) 1000000200000012
10616:063.00004(1402011014220104) 0000000000011346
10623:053.00010(4257777043011100) 0000000000000000
76222:070.76234(0010000000660730) 0010000000660730
ОШ.В ИНФ.СЛ.ЭКСТ

А теперь еще и 66-е устройство! Там-то что?

Leo

Сергей В.

unread,
Nov 1, 2009, 2:40:37 PM11/1/09
to БЭСМ-6
On 1 ноя, 22:00, Leo Broukhis <l...@mailcom.com> wrote:
> Я запускаю без Пульта, с помощью модифицированного паспорта "тиража":

Переставь на 40 номер со смещением 1000.

Вот мой вариант:

шифр 412020^
озу 32^
врем 19^
лент 40(2049-1000)^
лент 57(2049)^
вход 70000^
e
в 70000
к 00 170 0100 00 22 00000
к 00 170 0101 00 22 00000
к 00 170 0102 00 22 00000
к 00 170 0103 00 22 00000
к 00 170 0104 00 22 00000
к 00 170 0105 00 22 00000

к 00 170 0200 00 22 00000
к 00 110 0201 00 100 6233
к 00 30 00007 00 22 00000

в 70100
с 0010 3600 0040 0006
с 0010 0000 0040 0125
с 0010 0100 0040 0126
с 0010 0200 0040 0127
с 0010 0300 0040 0130
с 0010 0400 0040 0131

в 70200
с 0010 3700 0040 0035
бTAMБОВ
еконец

Подчитывает что-то с зон 1140-1176 в память, переходит туда и теряет
управление.
___
Сергей

Leo Broukhis

unread,
Nov 1, 2009, 2:59:36 PM11/1/09
to be...@googlegroups.com
2009/11/1 Leo Broukhis <le...@mailcom.com>:

> ВАШЕ ВРЕМЯ ИСТЕКЛО
>
> Это совсем странно. Э63 4 должен возвращать что-то очень близкое к нулю.

Он и возвращает, но сравнивается это время с разметочным кодом,
прочитанным с барабана (тракт, в который еще ни разу не писали,
отдается нулями или разметочным кодом?). Если условный переход
обмануть, то пытается в цикле выдавать Э71, который немедленно
завершается, не ожидая приема, и Э63 4. Нужно на эмуляторе машины
пробовать - перегонять диски в новый формат.

Leo

Leo Broukhis

unread,
Nov 1, 2009, 3:14:50 PM11/1/09
to be...@googlegroups.com
На эмуляторе машины получается некорректное обращение в первом же
76525:071.76401,
т.е. в эмуляторе диспака мы что-то не проверяем, поэтому хотя бы
выдача на терминал работает.

Близок локоть...

Leo

2009/11/1 Leo Broukhis <le...@mailcom.com>:

Сергей В.

unread,
Nov 1, 2009, 4:21:03 PM11/1/09
to БЭСМ-6
On 1 ноя, 23:14, Leo Broukhis <l...@mailcom.com> wrote:
>
> Близок локоть...

Да уж. Я добавил в dispak трассировку выполнения команд по "-t -t".
Получаю то же, что и ты: НЕ ПОНЯТНО, ВАШЕ ВРЕМЯ ИСТЕКЛО, ОШ.В
ИНФ.СЛ.ЭКСТ. Дальше прорубиться не получается.

Мне кажется, количество заказанного времени имело значение.
___
Сергей

Leo Broukhis

unread,
Nov 1, 2009, 4:49:29 PM11/1/09
to be...@googlegroups.com
2009/11/1 Сергей В. <serge.v...@gmail.com>:

Не могло, потому что не опрашивается.

Leo

Basil Dolmatov

unread,
Nov 1, 2009, 5:11:37 PM11/1/09
to be...@googlegroups.com
Сергей В. пишет:
Имело.
Так джин некоторое время определял "большой" он или "маленький".
именно запрашивая "заказанное время"...
потом, вроде бы, перешли на проверку числа заказанных листов... потому как время - оказалось плохой величиной для проверки. :)

-~----------~----~----~----~------~----~------~--~---

  

Basil Dolmatov

unread,
Nov 1, 2009, 5:13:42 PM11/1/09
to be...@googlegroups.com
Leo Broukhis пишет:

> На эмуляторе машины получается некорректное обращение в первом же
> 76525:071.76401,
> т.е. в эмуляторе диспака мы что-то не проверяем, поэтому хотя бы
> выдача на терминал работает.
>
> Близок локоть...
>
> Leo
>
> 2009/11/1 Leo Broukhis <le...@mailcom.com>:
>
>> 2009/11/1 Leo Broukhis <le...@mailcom.com>:
>>
>>> ВАШЕ ВРЕМЯ ИСТЕКЛО
>>>
>>> Это совсем странно. Э63 4 должен возвращать что-то очень близкое к нулю.
>>>
>> Он и возвращает, но сравнивается это время с разметочным кодом,
>> прочитанным с барабана (тракт, в который еще ни разу не писали,
>> отдается нулями или разметочным кодом?). Если условный переход
>> обмануть, то пытается в цикле выдавать Э71, который немедленно
>> завершается, не ожидая приема,

Какой прием? Там скорее всего с нулевым словом опрос...

>> и Э63 4.
Э63 4, AFAIR - это "дай время на авост"... Да, джин заказывал себе 1-2
секунды.

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

Команды пока выглядят разумно :)

>> Leo
>>
>>

Basil Dolmatov

unread,
Nov 1, 2009, 5:14:42 PM11/1/09
to be...@googlegroups.com
Сергей В. пишет:
Не должен он столько читать... Явная фигня :(


Basil Dolmatov

unread,
Nov 1, 2009, 5:17:17 PM11/1/09
to be...@googlegroups.com
Leo Broukhis пишет:

>
> 77412:071.76402(0120000000000000) 1000000200000012
> 10616:063.00004(1402011014220104) 0000000000011346
> 10623:053.00010(4257777043011100) 0000000000000000
> 76222:070.76234(0010000000660730) 0010000000660730
> ОШ.В ИНФ.СЛ.ЭКСТ
>
> А теперь еще и 66-е устройство! Там-то что?
>
>
Ничего там нет... Не от той кастрюли крышка... Это я про 37-лист...

И совершенно не понимаю, почему "ОШ в ИНФ.СЛ.ЭКСТ"

Это к какому экстракоду относится?


Leo Broukhis

unread,
Nov 2, 2009, 1:47:08 AM11/2/09
to be...@googlegroups.com
2009/11/1 Basil Dolmatov <vdol...@gmail.com>:

> Leo Broukhis пишет:
>>
>> 77412:071.76402(0120000000000000) 1000000200000012
>> 10616:063.00004(1402011014220104) 0000000000011346
>> 10623:053.00010(4257777043011100) 0000000000000000
>> 76222:070.76234(0010000000660730) 0010000000660730
>>  ОШ.В ИНФ.СЛ.ЭКСТ
>>
>> А теперь еще и 66-е устройство! Там-то что?
>>
> Ничего там нет... Не от той кастрюли крышка... Это я про 37-лист...

Что-то есть (но не знаю, что это - никаких интересных текстовых
констант там нет).

> И совершенно не понимаю, почему "ОШ в ИНФ.СЛ.ЭКСТ"
>
> Это к какому экстракоду относится?

Это относится к экстракоду чтения с 66-го направления.

Но это все позади.

ИГРА К ВАШИМ УСЛУГАМ
НУЖНЫ ПРАВИЛА ?
=-* да
ПРАВИЛА ИГРЫ:

ПОЛЕ ДЛЯ ИГРЫ СОСТОИТ ИЗ 11 КЛЕТОК.
КЛЕТКИ ПОЛЯ ИМЕЮТ НОМЕРА ОТ 0 ДО 10.
В ИГРЕ ПРИНИМАЮТ УЧАСТИЕ ТРИ БЕЛЫЕ И ОДНА ЧЕРНАЯ ФИШКИ.
НАЧАЛЬНОЕ ПОЛОЖЕНИЕ ИЗОБРАЖЕНО НА РИСУНКЕ:

------- ------- -------
I1 bb I-----I6 I-----I7 I
------- ------- -------
/ I \ I / I \
------- ------- ------- ------- --------
I0 bb I-----I2 I-----I5 ~~ I-----I8 I-----I10 I
------- ------- ------- ------- --------
\ I / I \ I /
------- ------- -------
I3 bb I-----I4 I-----I9 I
------- ------- -------

Дальше хуже (ДЖИН сильно пользуется ГОСТ-овскими эквивалентами
управляющих кодов видеотона, которых мы не знаем), но уже что-то.
Всего-то делов было - поместить команду "ШАШ" в 0-е слово зоны,
читаемой с барабана.

Leo

Leo Broukhis

unread,
Nov 2, 2009, 2:56:21 AM11/2/09
to be...@googlegroups.com
2009/11/1 Leo Broukhis <le...@mailcom.com>:

> Всего-то делов было - поместить команду "ШАШ" в 0-е слово зоны,
> читаемой с барабана.

Аккуратно выходя из шашек и аккуратно вызывая другие игры, можно
пощупать "крестики" (рисует таблицу, потом жестоко умирает), бега
(вроде работает - буйство управляющих символов в коде ГОСТ), калах
(сначала "в блоке нет приказа ШАШ", потом "ТУРНИР ЗАКРЫТ" после
запроса даты/времени и использования логарифма - собственно программу
"калах" вызывать не пытается).

Я расписал весь лист константой "ШАШ<377>", и оказалось, что
ПОСАДКА/LANDING берут оттуда свои тексты (вместо любых текстов
выводится лишь "ШАШ ШАШ ШАШ ..."), но что-то математическое считает,
пользуясь Э50 5 (ln x), и вроде как-то играет.

Leo

Basil Dolmatov

unread,
Nov 2, 2009, 3:20:54 AM11/2/09
to be...@googlegroups.com
Leo Broukhis пишет:

> 2009/11/1 Leo Broukhis <le...@mailcom.com>:
>> Всего-то делов было - поместить команду "ШАШ" в 0-е слово зоны,
>> читаемой с барабана.
>
> Аккуратно выходя из шашек и аккуратно вызывая другие игры, можно
> пощупать "крестики" (рисует таблицу, потом жестоко умирает),
Это так и должно работать... Игра "Крестики" - на самом деле просто
разметка экрана для игры двух человек, сидящих около терминала... :)

> бега
> (вроде работает - буйство управляющих символов в коде ГОСТ), калах
> (сначала "в блоке нет приказа ШАШ", потом "ТУРНИР ЗАКРЫТ" после
> запроса даты/времени и использования логарифма - собственно программу
> "калах" вызывать не пытается).
>
> Я расписал весь лист константой "ШАШ<377>", и оказалось, что
> ПОСАДКА/LANDING берут оттуда свои тексты (вместо любых текстов
> выводится лишь "ШАШ ШАШ ШАШ ..."), но что-то математическое считает,
> пользуясь Э50 5 (ln x), и вроде как-то играет.

Барабан: для работы ДЖИНа нужен 1 (один!) тракт барабана.. .Обычно
заказывалось два, потому что в каких-то крайне редких случаях ДИСПАК
считал, что нужно их два, и снимал задачу по авосту "ДАЙ ТРАКТЫ"

Сам ДЖИН барабаном не не пользуется! То есть вообще!
С ним работает только административка Паскаль-Автокода, и как и для чего
его при этом использует - вопрос смутный.
Поэтому, если что-то записать на барабан и потом это видно при работе
ДЖИНа, значит, что-то кардинально неправильно.

Никакого занесения никакой информации на барабан от программиста не было.

Если есть живой блок, то...

Переключатель команд в ДЖИНе был реализован так:

1. в каждом блоке основная программа состояла только из переключателя,
все команды вынесены в процедуры, исполнение любой команды этого блока -
один ПВ в переключателе.
2. Некоторые блоки состояли из нескольких субблоков, перегрузка которых
проходила невидимо для пользователя (не выдавался текст "Вы вошли в
блок..."). Переключатель каждого субблока содержал команды всех субблоков
3. Все остальные неизвестные субблоку команды вызывали загрузку
основного блока джина, единственного, где был полный переключатель всех
команд.
4. Команда, которую надо исполнять, если требовалась перегрузка блока,
"забрасывалась" куда-то в административку (там было найдена типа пара
неиспользуемых ячеек) - (именно поэтому административка была
зафиксирована, при смене ее версии запись туда команды начинала что-то
затирать) а после завершения перегрузки - бралась и сразу использовалась
для поиска по переключателю.
5. Для перегрузки блока использовалась маленькая процедурка-цикл (где-то
в верхних адресах, куда точно садилась уже не помню). Вся перегрузка
примитивна - чтение N зон c нулевого листа и ПБ в 7-ю ячейку.


Калах - турнир... Если загрузить именно блок КАЛАХ, то можно играть и
когда турнир закрыт, заказа тренировочную партию, что-то типа "КАЛ ТРЕ"

HTH

Leo Broukhis

unread,
Nov 2, 2009, 3:39:46 AM11/2/09
to be...@googlegroups.com
2009/11/2 Basil Dolmatov <vdol...@gmail.com>:

>> Аккуратно выходя из шашек и аккуратно вызывая другие игры, можно
>> пощупать "крестики" (рисует таблицу, потом жестоко умирает),
> Это так и должно работать... Игра "Крестики" - на самом деле просто
> разметка экрана для игры двух человек, сидящих около терминала... :)

Я знаю. В оригинале там была какая-то хитрость, позволявшая ДЖИНу
завершаться без выдачи "КОНЕЦ СЕАНСА", а в эмуляторе диспака после
таблицы выдается куча мусора и происходит "ош в инф. сл. экст."

> Барабан: для работы ДЖИНа нужен 1 (один!) тракт барабана.. .Обычно
> заказывалось два, потому что в каких-то крайне редких случаях ДИСПАК
> считал, что нужно их два, и снимал задачу по авосту "ДАЙ ТРАКТЫ"
>
> Сам ДЖИН барабаном не не пользуется! То есть вообще!
> С ним работает только административка Паскаль-Автокода, и как и для чего
> его при этом использует - вопрос смутный.

По крайней мере команда, приведшая к вызову блока, передается через него.

> Поэтому, если что-то записать на барабан и потом это видно при работе
> ДЖИНа, значит, что-то кардинально неправильно.
>
> Никакого занесения никакой информации на барабан от программиста не было.

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

> Калах - турнир... Если загрузить именно блок КАЛАХ, то можно играть и
> когда турнир закрыт, заказа тренировочную партию, что-то типа "КАЛ ТРЕ"

Завтра попробую, если Сергей до меня не успеет. Где жила таблица
дебютов и как примерно она выглядела?

Leo

Basil Dolmatov

unread,
Nov 2, 2009, 3:54:51 AM11/2/09
to be...@googlegroups.com
Leo Broukhis пишет:

> 2009/11/2 Basil Dolmatov <vdol...@gmail.com>:
>
>>> Аккуратно выходя из шашек и аккуратно вызывая другие игры, можно
>>> пощупать "крестики" (рисует таблицу, потом жестоко умирает),
>> Это так и должно работать... Игра "Крестики" - на самом деле просто
>> разметка экрана для игры двух человек, сидящих около терминала... :)
>
> Я знаю. В оригинале там была какая-то хитрость, позволявшая ДЖИНу
> завершаться без выдачи "КОНЕЦ СЕАНСА",
"Хитрость" - тривиальная... :)
Прежде чем завершиться задача _отказывалась_ от терминала.
Поэтому на момент выполнения экстракода КЗ ДИСПАКу не было необходимости
информировать этот терминал об окончании сеанса. :)

>а в эмуляторе диспака после
> таблицы выдается куча мусора и происходит "ош в инф. сл. экст."

в эмуляторе именно диспака? значит, не реализована эта ветка в Э71.

>
>> Барабан: для работы ДЖИНа нужен 1 (один!) тракт барабана.. .Обычно
>> заказывалось два, потому что в каких-то крайне редких случаях ДИСПАК
>> считал, что нужно их два, и снимал задачу по авосту "ДАЙ ТРАКТЫ"
>>
>> Сам ДЖИН барабаном не не пользуется! То есть вообще!
>> С ним работает только административка Паскаль-Автокода, и как и для чего
>> его при этом использует - вопрос смутный.
>
> По крайней мере команда, приведшая к вызову блока, передается через него.
>
>> Поэтому, если что-то записать на барабан и потом это видно при работе
>> ДЖИНа, значит, что-то кардинально неправильно.
>>
>> Никакого занесения никакой информации на барабан от программиста не было.
>
> Параметры, наверное, через него передавались, и массив строк для
> локализации был параметром.

Еще раз и медленно: код ДЖИНа ничего целенаправленно на барабан не писал
и с барабана не читал. Содержимое барабана никак не использовалось из
паскалевских текстов ДЖИНа. (Это я как разработчик говорю :) ).

>
>> Калах - турнир... Если загрузить именно блок КАЛАХ, то можно играть и
>> когда турнир закрыт, заказа тренировочную партию, что-то типа "КАЛ ТРЕ"
>
> Завтра попробую, если Сергей до меня не успеет. Где жила таблица
> дебютов и как примерно она выглядела?

Не помню. Для меня это не было нужной информацией :)

>

Leo Broukhis

unread,
Nov 2, 2009, 10:27:21 AM11/2/09
to be...@googlegroups.com
2009/11/2 Basil Dolmatov <vdol...@gmail.com>:

>> Я знаю. В оригинале там была какая-то хитрость, позволявшая ДЖИНу
>> завершаться без выдачи "КОНЕЦ СЕАНСА",
> "Хитрость" - тривиальная... :)
> Прежде чем завершиться задача _отказывалась_ от терминала.
> Поэтому на момент выполнения экстракода КЗ ДИСПАКу не было необходимости
> информировать этот терминал об окончании сеанса. :)
>
>>а в эмуляторе диспака после
>> таблицы выдается куча мусора и происходит "ош в инф. сл. экст."
> в эмуляторе именно диспака? значит, не реализована эта ветка в Э71.

Да, именно диспака. В эмуляторе машины происходит некорректное
обращение на первом же Э71 - обычно это значит, что задан неверный
номер терминала.

>>> Сам ДЖИН барабаном не не пользуется! То есть вообще!
>>> С ним работает только административка Паскаль-Автокода, и как и для чего
>>> его при этом использует - вопрос смутный.
>>
>> По крайней мере команда, приведшая к вызову блока, передается через него.
>>
>>> Поэтому, если что-то записать на барабан и потом это видно при работе
>>> ДЖИНа, значит, что-то кардинально неправильно.
>>>
>>> Никакого занесения никакой информации на барабан от программиста не было.
>>
>> Параметры, наверное, через него передавались, и массив строк для
>> локализации был параметром.
> Еще раз и медленно: код ДЖИНа ничего целенаправленно на барабан не писал
> и с барабана не читал. Содержимое барабана никак не использовалось из
> паскалевских текстов ДЖИНа. (Это я как разработчик говорю :) ).

Спрошу по-другому: как передавались параметры при вызове субблока? Тот
же субблок "бега" реализует и бега, и шашки, и посадку, и крестики -
как (примерно) в паскалевском тексте выглядел его вызов, чтобы субблок
сразу знал, во что играть?

Как вообще была устроена передача параметров при вызове "оверлеев" в
Паскаль-автокоде?

Leo

Leo Broukhis

unread,
Nov 2, 2009, 11:05:17 AM11/2/09
to be...@googlegroups.com
2009/11/2 Leo Broukhis <le...@mailcom.com>:

>> Калах - турнир... Если загрузить именно блок КАЛАХ, то можно играть и
>> когда турнир закрыт, заказа тренировочную партию, что-то типа "КАЛ ТРЕ"
>
> Завтра попробую, если Сергей до меня не успеет. Где жила таблица
> дебютов и как примерно она выглядела?

До таблицы дебютов дело не дошло:

В БЛОКЕ НЕТ ПРИКАЗА ШАШ - артефакт росписи барабана
==* кал
ТУРНИР ЗАКРЫТ
==* кал тре
КАТЕГОРИЯ ? <Ю,К,У,Э>
=-* ю
КТО НАЧИНАЕТ ? <ДЖИН,ПОЛЬЗ>
=-* д
...
10420: *62 55 (=0000000000000136) acc=0000000000000000
Пока рано

Это запрос адреса реакции на авост. Разрешение этого экстракода
приводит к уже знакомому "ош. в инф. сл. экст." при попытке обратиться
к 66-му направлению, но не к зоне 730, как обычно при любом приказе,
не обрабатываемом блоком, а к зоне 1013. Или это он как раз таблицу
дебютов пытается читать?

Leo

Basil Dolmatov

unread,
Nov 2, 2009, 11:30:47 AM11/2/09
to be...@googlegroups.com
Leo Broukhis пишет:

>
> Спрошу по-другому: как передавались параметры при вызове субблока? Тот
> же субблок "бега" реализует и бега, и шашки, и посадку, и крестики -
> как (примерно) в паскалевском тексте выглядел его вызов, чтобы субблок
> сразу знал, во что играть?
>

в одном из предыдущих писем пытался это рассказать.

> Как вообще была устроена передача параметров при вызове "оверлеев" в
> Паскаль-автокоде?

Единственный передаваемый параметр - имя команды, которую нужно выполнять.

И это не имеет никакого отношения к "оверлеям" в Паскаль-автокоде...
Эта технология сделана в ДЖИНе и только в ДЖИНе.

>

Сергей В.

unread,
Nov 2, 2009, 11:42:23 AM11/2/09
to БЭСМ-6
On 2 ноя, 00:49, Leo Broukhis <l...@mailcom.com> wrote:
>
> > Мне кажется, количество заказанного времени имело значение.
>
> Не могло, потому что не опрашивается.

Экстракод *63 4, похоже, должен возвращать время, оставшееся до конца
сеанса, в виде отрицательного целого. После правки пропало сообщение
"ваше время истекло".

> Завтра попробую, если Сергей до меня не успеет. Где жила таблица
> дебютов и как примерно она выглядела?

Сегодня уже рабочий день, а игровой блок пускает только с пятницы по
воскресенье. :) Для бегов надо обнулить 50-ю ячейку, для калаха - 26-
ю. Если в 12-ю ячейку занести 1, субблок станет считать себя
автономным и перестанет делать попытки перейти в основной блок джина
(правда, появляются другие глюки). Нулевую зону 27-го барабана
достаточно растереть нулями.

Теперь калах вываливается на экстракоде *62 55 - не реализовано. Что
это?

Я добавил kalah.b6 и games.b6 в каталог examples.
___
Сергей

Leo Broukhis

unread,
Nov 2, 2009, 11:49:51 AM11/2/09
to be...@googlegroups.com
2009/11/2 Сергей В. <serge.v...@gmail.com>:

>
> Экстракод *63 4, похоже, должен возвращать время, оставшееся до конца
> сеанса, в виде отрицательного целого. После правки пропало сообщение
> "ваше время истекло".

У Тюрина написано иначе.

>> Завтра попробую, если Сергей до меня не успеет. Где жила таблица
>> дебютов и как примерно она выглядела?
>
> Сегодня уже рабочий день, а игровой блок пускает только с пятницы по
> воскресенье. :) Для бегов надо обнулить 50-ю ячейку, для калаха - 26-
> ю. Если в 12-ю ячейку занести 1, субблок станет считать себя
> автономным и перестанет делать попытки перейти в основной блок джина
> (правда, появляются другие глюки). Нулевую зону 27-го барабана
> достаточно растереть нулями.

Или сделать setenv ZERODRUM 1.

> Теперь калах вываливается на экстракоде *62 55 - не реализовано. Что
> это?

Это запрос адреса реакции на авост. У тебя есть тюринская
"Операционная система Диспак" из серии "Библиотечка программиста"?

Leo

Сергей В.

unread,
Nov 2, 2009, 11:59:03 AM11/2/09
to БЭСМ-6
On 2 ноя, 19:49, Leo Broukhis <l...@mailcom.com> wrote:
> > Экстракод *63 4, похоже, должен возвращать время, оставшееся до конца
> > сеанса, в виде отрицательного целого. После правки пропало сообщение
> > "ваше время истекло".
>
> У Тюрина написано иначе.

Я посмотрел у Тюрина... Но по трассировке выполнения "бегов"
получается иначе. Надо в тексты диспака залезть.

> > Нулевую зону 27-го барабана достаточно растереть нулями.
>
> Или сделать setenv ZERODRUM 1.

Давай сделаем по умолчанию?

> > Теперь калах вываливается на экстракоде *62 55 - не реализовано. Что
> > это?
>
> Это запрос адреса реакции на авост. У тебя есть тюринская
> "Операционная система Диспак" из серии "Библиотечка программиста"?

Есть дома, но сейчас я на работе.

Я добавил выполнение *62 55 вхолостую - калах начал играть. Но после
первого моего хода задумался навсегда. Не выполняя никаких
экстракодов. Он что, по авосту от таймера должен прекращать поиск
хода? А таблица дебютов как же?
___
Сергей

Leo Broukhis

unread,
Nov 2, 2009, 12:16:50 PM11/2/09
to be...@googlegroups.com
2009/11/2 Сергей В. <serge.v...@gmail.com>:

> Я посмотрел у Тюрина... Но по трассировке выполнения "бегов"
> получается иначе. Надо в тексты диспака залезть.
>
>> > Нулевую зону 27-го барабана достаточно растереть нулями.
>>
>> Или сделать setenv ZERODRUM 1.
>
> Давай сделаем по умолчанию?

Разные программы ожидают разного. Это может как-то зависеть от раздела
паспорта РОСП, но неясно, как именно.

>
> Я добавил выполнение *62 55 вхолостую - калах начал играть. Но после
> первого моего хода задумался навсегда. Не выполняя никаких
> экстракодов. Он что, по авосту от таймера должен прекращать поиск
> хода? А таблица дебютов как же?

Таблицу дебютов, возможно, он нашел. Зачекинь примеры, пожалуйста.

Leo

Leo Broukhis

unread,
Nov 2, 2009, 12:21:30 PM11/2/09
to be...@googlegroups.com
2009/11/2 Basil Dolmatov <vdol...@gmail.com>:

> Leo Broukhis пишет:
>
>>
>> Спрошу по-другому: как передавались параметры при вызове субблока? Тот
>> же субблок "бега" реализует и бега, и шашки, и посадку, и крестики -
>> как (примерно) в паскалевском тексте выглядел его вызов, чтобы субблок
>> сразу знал, во что играть?
>>
> в одном из предыдущих писем пытался это рассказать.

"Куда-то в административку" - это один из нескольких тысяч вариантов.

>> Как вообще была устроена передача параметров при вызове "оверлеев" в
>> Паскаль-автокоде?
> Единственный передаваемый параметр - имя команды, которую нужно выполнять.

Хорошо. Зачем в первых же командах после вызова программы безусловно
делается чтение с барабана?

00007: vjm 74003(10) (=4300000000000000) acc=0000000000400020 r[10]=00000
74003: uj (10) (=4257777043011100) acc=0000000000400020 r[10]=00010
00010: utm -10(10) (=0000000000000000) acc=0000000000400020 r[10]=00010
00010: uj 11100(10) (=6311134100000000) acc=0000000000400020 r[10]=00000
11100: vjm 11341(14) (=0037000300100005) acc=0000000000400020 r[14]=00000
11341: ntr 3 (=0000000000200030) acc=0000000000400020
11341: xta 5 (=0000000000011346) acc=0000000000400020
11342: ati 1 (=1022244310007417) acc=0000000000011346
11342: mtj 17(1) (=0260137600120601) acc=0000000000011346 r[1]=11346
11343: mtj 13(1) (=0010000000000630) acc=0000000000011346 r[1]=11346
11343: vjm 74027(15) (=0307425100000000) acc=0000000000011346 r[15]=00000
74027: uj 74251 (=0110521173174242) acc=0000000000011346
74251: xta 75211 (=0010340000270000) acc=0000000000011346
74251: vjm 74242(16) (=0006000260440016) acc=0010340000270000 r[16]=00112
74242: atx 74357 (=0000000000000000) acc=0010340000270000
74242: ita 16 (=0000000001660730) acc=0010340000270000
74243: atx 74356 (=0000000000000000) acc=0000000000074252
74243: *70 74357 (=0010340000270000) acc=0000000000074252

Leo

Сергей В.

unread,
Nov 2, 2009, 12:48:24 PM11/2/09
to БЭСМ-6
On 2 ноя, 20:16, Leo Broukhis <l...@mailcom.com> wrote:
>
> Разные программы ожидают разного. Это может как-то зависеть от раздела
> паспорта РОСП, но неясно, как именно.

Разве ДИСПАК не всегда расписывал барабаны нулём? Вроде РОСП относится
к МОЗУ.

> Таблицу дебютов, возможно, он нашел. Зачекинь примеры, пожалуйста.

Не вижу никаких лишних обращений к диску. Зачекинил:
http://besm6.svn.sourceforge.net/viewvc/besm6/examples/games.b6?view=markup
http://besm6.svn.sourceforge.net/viewvc/besm6/examples/kalah.b6?view=markup
___
Сергей

Leo Broukhis

unread,
Nov 2, 2009, 12:58:01 PM11/2/09
to be...@googlegroups.com
2009/11/2 Сергей В. <serge.v...@gmail.com>:

>> Разные программы ожидают разного. Это может как-то зависеть от раздела
>> паспорта РОСП, но неясно, как именно.
>
> Разве ДИСПАК не всегда расписывал барабаны нулём? Вроде РОСП относится
> к МОЗУ.

Нужно смотреть, что делалось при чтении еще не образованного тракта барабана.

>> Таблицу дебютов, возможно, он нашел. Зачекинь примеры, пожалуйста.
>
> Не вижу никаких лишних обращений к диску. Зачекинил:

Есть чтение из зоны 1013 НУ 66, причем в режиме монопольного захвата диска.
В этой зоне находится кусок исходников АРФЫ в кодировке БЕМШ.

Leo

Сергей В.

unread,
Nov 2, 2009, 12:58:19 PM11/2/09
to БЭСМ-6
On 1 ноя, 21:13, Sergey Ryzhkov <s...@rinet.ru> wrote:
> Кстати, я понял. что какие то шифры уже завели?

Нет, шифры пока не делали. Я еще не решил, как дисковое пространство
народу выделять. Кстати, Серега, ты с технологией Ajax знаком? Можно
её приспособить для эмуляции терминалов через веб-сайт? И как именно?
___
Сергей

Сергей В.

unread,
Nov 2, 2009, 1:13:49 PM11/2/09
to БЭСМ-6
On 2 ноя, 20:58, Leo Broukhis <l...@mailcom.com> wrote:
>
> Есть чтение из зоны 1013 НУ 66, причем в режиме монопольного захвата диска.
> В этой зоне находится кусок исходников АРФЫ в кодировке БЕМШ.

Вроде там какие-то бинарные данные... Но может и не те, поэтому он
циклится.

$ besmtool view 2148 --start=01013 --length=1 | less
1013.0000: 000001 ⊃0000e0000001 ```````````R````````````
1013.0004: 0000 00000Г00001|002009 ````Ч``````#`````X``````
1013.0010: 00000000000000000000008З ```````````````````````'
1013.0014: 1 3900 062А- 01 F- -2Р. `````````` `````@`````0`
1013.0020: 2Р/2Р22Р3 00 F/2А 00 0/ `0``0``0`````@`` ```````
1013.0024: 03 02e32e200 e210000 ````````````````````````
1013.0030: 2e/2e.20- 3 00 50 2 ````````````````````````
1013.0034: Ь F5203ТF2К А900Р 0 Э ``;`@````2@`*` ```0````<
1013.0040: 1 V Ю ) 0[00 e;8Р00+ ``J``=``````````````0```
1013.0044: Ю1 *Р 0 ЯР 0Р00900У 0 ``=```0````>0``0`````3``
1013.0050: Ю1 )Р 0 DР 0Р00 ЮР 0 ``=```0````?0``0````=0``
1013.0054: FР 0Р00Ы 100 e00e00× ``@0``0``:``````````````
1013.0060: 2А2 022А3 2 0А 0e 00 07 ` ````` `````` `````````
1013.0064: 072А- 01 F- /2Р.2Р/2Р4 ```` `````@`````0``0``0`
1013.0070: 2Р52Р62Р72Р200 e 8000> `0``0``0``0`````````````
1013.0074: 2Р3 00 F/2А 00 0e 03 0 `0`````@`` `````````````
1013.0100: 2e32e22e72e62e52e42e/2e. ````````````````````````
___
Сергей

Leo Broukhis

unread,
Nov 2, 2009, 1:27:45 PM11/2/09
to be...@googlegroups.com
2009/11/2 Сергей В. <serge.v...@gmail.com>:

> On 2 ноя, 20:58, Leo Broukhis <l...@mailcom.com> wrote:
>>
>> Есть чтение из зоны 1013 НУ 66, причем в режиме монопольного захвата диска.
>> В этой зоне находится кусок исходников АРФЫ в кодировке БЕМШ.
>
> Вроде там какие-то бинарные данные... Но может и не те, поэтому он
> циклится.

ЧТО- ПРО 2148 1013
ВЫДАТЬ- БЕ
ВЫДАТЬ- 0
0000)
0001) ФУНТМ2
...
0660) ФУНТМ2
0661)
0662) КОНСТ
0663) 8
0664) ЗАКРБУ
0665)
0666) ТОМ009
0667)
0670) БУФ001
0671) Т
0672) БУФ011
0673)
0674) ТОМ002
0675) 7
0676) ТОМ003
0677) 7
0700) БУФ012
0701) 7
0702) ТОМ009
0703)
0704) БУФ001
0705) Т
0706) БУФ011
0707)
0710) УИМ 1
...
0732) *УСТАН
0733) АВЛИВА
0734) ЕМ Р15
0735) НА АД
0736) РЕС ТЕ
0737) КУЩЕЙ
0740) ОБЛ СО
0741) СТ

Явный БЕМШ, но между яч. 1 и 660 ничего текстового нет. Но это неважно
- главное, что калах это читает, но это вовсе не дебюты.

Leo

Basil Dolmatov

unread,
Nov 2, 2009, 3:37:14 PM11/2/09
to be...@googlegroups.com
Leo Broukhis пишет:
    
Нулевую зону 27-го барабана достаточно растереть нулями.
        
Или сделать setenv ZERODRUM 1.
      
Давай сделаем по умолчанию?
    
Разные программы ожидают разного. Это может как-то зависеть от раздела
паспорта РОСП, но неясно, как именно.

  
Никак. РОСП - это роспись памяти.


Basil Dolmatov

unread,
Nov 2, 2009, 3:43:37 PM11/2/09
to be...@googlegroups.com
Leo Broukhis пишет:
2009/11/2 Сергей В. <serge.v...@gmail.com>:

  
Разные программы ожидают разного. Это может как-то зависеть от раздела
паспорта РОСП, но неясно, как именно.
      
Разве ДИСПАК не всегда расписывал барабаны нулём? Вроде РОСП относится
к МОЗУ.
    
Нужно смотреть, что делалось при чтении еще не образованного тракта барабана.
  
Тракты барабана не "образовывались", а назначались... Физические...
Или на МБ, или, в дальнейшем, на НРДИС...

Это только в эмуляторе они "образуются"... :)

Система не давала никаких гарантий по поводу содержания только что назначенных трактов барабана (кроме  систем с ЭФ=1, там другая песнь :) ).
 

Leo Broukhis

unread,
Nov 2, 2009, 3:47:37 PM11/2/09
to be...@googlegroups.com
2009/11/2 Basil Dolmatov <vdol...@gmail.com>:

>
> Разные программы ожидают разного. Это может как-то зависеть от раздела
> паспорта РОСП, но неясно, как именно.
>
> Никак. РОСП - это роспись памяти.

> Тракты барабана не "образовывались", а назначались...

Ты меня понял. :)

> Система не давала никаких гарантий по поводу содержания только что назначенных трактов барабана (кроме систем с ЭФ=1, там другая песнь :) ).

Это странно. Нужно проверить по коду.

После росписи пресловутого 0-го тракта МБ 27 константой "ШАШ<377>00" и
исправления Э71, чтобы выдачу в коде терминала завершал по нулевому
байту, шашки играют, как родные, разве что поле пока не
перерисовывается.

Leo

Basil Dolmatov

unread,
Nov 2, 2009, 3:55:12 PM11/2/09
to be...@googlegroups.com
Leo Broukhis пишет:
2009/11/2 Basil Dolmatov <vdol...@gmail.com>:
  
Leo Broukhis пишет:

    
Спрошу по-другому: как передавались параметры при вызове субблока? Тот
же субблок "бега" реализует и бега, и шашки, и посадку, и крестики -
как (примерно) в паскалевском тексте выглядел его вызов, чтобы субблок
сразу знал, во что играть?

      
в одном из предыдущих писем пытался это рассказать.
    
"Куда-то в административку" - это один из нескольких тысяч вариантов.
  
Да, именно так. Извини, не помню... Может 76012, а может 77577. :)

Выяснить, в принципе, несложно... Запускается любой блок ДЖИНа, дается "не его" команда и когда управление уходит в верхний лист, просто смотрится, где в этом же листе лежит эта команда... AFAIR - в ячейке три буквы, добитые нулями слева (а может и наоборот :) )

  
Как вообще была устроена передача параметров при вызове "оверлеев" в
Паскаль-автокоде?
      
Единственный передаваемый параметр - имя команды, которую нужно выполнять.
    
Хорошо. Зачем в первых же командах после вызова программы безусловно
делается чтение с барабана?
  
Уже писал...
Никто не знал, что делала административка ПУЛЬТа с этим одним траком, но его её нужно было заказать.
Никто ничего не просил эту административку в этот трак записывать...

00007: vjm 74003(10)        (=4300000000000000) acc=0000000000400020 r[10]=00000
74003: uj  (10)             (=4257777043011100) acc=0000000000400020 r[10]=00010
00010: utm -10(10)          (=0000000000000000) acc=0000000000400020 r[10]=00010
00010: uj  11100(10)        (=6311134100000000) acc=0000000000400020 r[10]=00000
11100: vjm 11341(14)        (=0037000300100005) acc=0000000000400020 r[14]=00000
11341: ntr 3                (=0000000000200030) acc=0000000000400020
11341: xta 5                (=0000000000011346) acc=0000000000400020
11342: ati 1                (=1022244310007417) acc=0000000000011346
11342: mtj 17(1)            (=0260137600120601) acc=0000000000011346 r[1]=11346
11343: mtj 13(1)            (=0010000000000630) acc=0000000000011346 r[1]=11346
11343: vjm 74027(15)        (=0307425100000000) acc=0000000000011346 r[15]=00000
74027: uj  74251            (=0110521173174242) acc=0000000000011346
74251: xta 75211            (=0010340000270000) acc=0000000000011346
74251: vjm 74242(16)        (=0006000260440016) acc=0010340000270000 r[16]=00112
74242: atx 74357            (=0000000000000000) acc=0010340000270000
74242: ita 16               (=0000000001660730) acc=0010340000270000
74243: atx 74356            (=0000000000000000) acc=0000000000074252
74243: *70 74357            (=0010340000270000) acc=0000000000074252

  
Кстати, судя по адресам, административка получается два листа? 36-й, 37-й? Кстати, да, 37-й - административка ПУЛЬТа, 36-й - Паскаль-Автокода

По секрету могу сказать, что любая программа на Паскаль-автокоде первым делом бегала в административку, которая ей открывала input и output и привязывала их к терминалу. :)

А так - код типично ДЖИНовсский...

Вход в 7-ю, прыжок на program (который в конце блока лежит), там, сначала прыжок в административку...
Самое интересное тут начинается с 11343 и дальше :)  Что там нарисовано?

А по административке ходить - только время тратить... :)

Кстати, опять для сведения: переменные program - индексировались по М1, переменные процедур и функций  в програм по М2, переменные вложенных глубже процедур - по М3 и так далее... На М7 - Паскаль-Автокод ломался :)





Basil Dolmatov

unread,
Nov 2, 2009, 3:58:58 PM11/2/09
to be...@googlegroups.com
Leo Broukhis пишет:

> 10420: *62 55 (=0000000000000136) acc=0000000000000000
> Пока рано
>
> Это запрос адреса реакции на авост. Разрешение этого экстракода
> приводит к уже знакомому "ош. в инф. сл. экст." при попытке обратиться
> к 66-му направлению, но не к зоне 730, как обычно при любом приказе,
> не обрабатываемом блоком, а к зоне 1013. Или это он как раз таблицу
> дебютов пытается читать?
>
>
Он и 730 пытается с 66-го направления читать?
Тогда имеет смысл переложить диск в паспорте на 66 НУ...
Видимо, код был странслирован в этом предположении...


Alexei_Roudnev

unread,
Nov 2, 2009, 4:15:25 PM11/2/09
to be...@googlegroups.com
Меня тут спросили, неожиданно, а не знаю ли я подобных эмуляторов для IMB/360 (ну или чего то чтобы выполнять старинные программы для нее).
Я правда думаю что имелось в виду 360 и 370 (и что вероятно оно есть у самой IBM).
 


 

Leo Broukhis

unread,
Nov 2, 2009, 5:05:06 PM11/2/09
to be...@googlegroups.com
2009/11/2 Basil Dolmatov <vdol...@gmail.com>:

> "Куда-то в административку" - это один из нескольких тысяч вариантов.
>
> Да, именно так. Извини, не помню... Может 76012, а может 77577. :)
>
> Выяснить, в принципе, несложно... Запускается любой блок ДЖИНа, дается "не
> его" команда и когда управление уходит в верхний лист, просто смотрится, где
> в этом же листе лежит эта команда... AFAIR - в ячейке три буквы, добитые
> нулями слева (а может и наоборот :) )

Все-таки нули справа, судя по поведению.

> Никто не знал, что делала административка ПУЛЬТа с этим одним траком, но его
> её нужно было заказать.

Почему ПУЛЬТа? Это административка Паскаль-автокода читает (74ххх -
это 36-й лист).

> 74243: *70 74357 (=0010340000270000) acc=0000000000074252
>
> Кстати, судя по адресам, административка получается два листа? 36-й, 37-й?
> Кстати, да, 37-й - административка ПУЛЬТа, 36-й - Паскаль-Автокода
>
> По секрету могу сказать, что любая программа на Паскаль-автокоде первым
> делом бегала в административку, которая ей открывала input и output и
> привязывала их к терминалу. :)

Понятное дело.

> А так - код типично ДЖИНовсский...
>
> Вход в 7-ю, прыжок на program (который в конце блока лежит), там, сначала
> прыжок в административку...
> Самое интересное тут начинается с 11343 и дальше :) Что там нарисовано?

Ты себе еще эмулятор не поставил?

> А по административке ходить - только время тратить... :)
>
> Кстати, опять для сведения: переменные program - индексировались по М1,
> переменные процедур и функций в програм по М2, переменные вложенных глубже
> процедур - по М3 и так далее... На М7 - Паскаль-Автокод ломался :)

Спасибо. Может, декомпилятор написать?

Leo

Сергей В.

unread,
Nov 2, 2009, 5:37:48 PM11/2/09
to БЭСМ-6
On 2 ноя, 23:47, Leo Broukhis <l...@mailcom.com> wrote:
>
> После росписи пресловутого 0-го тракта МБ 27 константой "ШАШ<377>00" и
> исправления Э71, чтобы выдачу в коде терминала завершал по нулевому
> байту, шашки играют, как родные, разве что поле пока не
> перерисовывается.

Однако на 0-м тракте МБ 27 дофига параметров хранится. Открыты ли блок
игр и турнир калаха, шифр и фамилия юзера, текущая выполняемая
команда.
___
Сергей

Leo Broukhis

unread,
Nov 2, 2009, 5:48:24 PM11/2/09
to be...@googlegroups.com
2009/11/2 Сергей В. <serge.v...@gmail.com>:

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

И что нам мешало делать эти эксперименты полтора года назад, как
только мы калах обнаружили?

Leo

Leo Broukhis

unread,
Nov 2, 2009, 6:59:57 PM11/2/09
to be...@googlegroups.com
2009/11/2 Leo Broukhis <le...@mailcom.com>:

>
> И что нам мешало делать эти эксперименты полтора года назад, как
> только мы калах обнаружили?

Калах заработал после того, как диск на НУ 66 я объявил большим куском и сделал
setenv ZERODRUM 1, чтобы он считался нулями:

ПРИВЕТСТВУЮ ТЕБЯ, НЕТ !!

МОЙ ХОД: ДЖИН 0 0 0000 Ю
=++> 3 ПРИВЕТСТВУЮ ТЕБЯ, НЕТ !!
...
=++> 2 Я ПРОСМОТРЕЛ 36 ПОЗИЦИЙ, А ТЫ ?
...
=++> 6 ПОЧЕМУ МОЛЧИШЬ ?

И пр.

Leo

Leo Broukhis

unread,
Nov 2, 2009, 8:59:49 PM11/2/09
to be...@googlegroups.com
2009/11/2 Leo Broukhis <le...@mailcom.com>:

> Калах заработал после того, как диск на НУ 66 я объявил большим куском и сделал
> setenv ZERODRUM 1, чтобы он считался нулями:

Или, проще, обнулить зону 1013 диска 2148 и разрешить в него запись.
Тогда ведется счет и можно откладывать партии.

Leo

Basil Dolmatov

unread,
Nov 3, 2009, 3:08:04 AM11/3/09
to be...@googlegroups.com
Leo Broukhis пишет:

Вот в это - верю... :)


Leo Broukhis

unread,
Nov 3, 2009, 3:18:27 AM11/3/09
to be...@googlegroups.com
2009/11/3 Basil Dolmatov <vdol...@gmail.com>:

>> Или, проще, обнулить зону 1013 диска 2148 и разрешить в него запись.
>> Тогда ведется счет и можно откладывать партии.
>
> Вот в это - верю... :)

Под шифром пользователя 0000 и фио "НЕТ". Если это победить - и
написать какую-нибудь плюшку в зону 730, чтобы ловила неизвестные
блоку приказы, то можно будет открывать доступ. :)
Восстановить программу "турнир" должно быть не очень сложно, а вот
дебюты перегенерировать (они нужны для уровней "участник" и "эфенди")
- задача непростая.

Я нашел еще (бесполезный для нас) блок "БИБЛ", (бесполезную для нас)
запускалку Джина из области АРФЫ, блок "КАДРЫ"(?) и теоретически
полезный блок "СТАТ", который не запускается, видимо, потому что
неавтономный.

http://groups.google.com/group/besm6/web/2048--2049

Leo

Basil Dolmatov

unread,
Nov 3, 2009, 3:40:36 AM11/3/09
to be...@googlegroups.com
Leo Broukhis пишет:

> 2009/11/3 Basil Dolmatov <vdol...@gmail.com>:
>
>>> Или, проще, обнулить зону 1013 диска 2148 и разрешить в него запись.
>>> Тогда ведется счет и можно откладывать партии.
>> Вот в это - верю... :)
>
> Под шифром пользователя 0000 и фио "НЕТ". Если это победить - и
> написать какую-нибудь плюшку в зону 730, чтобы ловила неизвестные
> блоку приказы, то можно будет открывать доступ. :)

> Восстановить программу "турнир" должно быть не очень сложно, а вот
> дебюты перегенерировать (они нужны для уровней "участник" и "эфенди")
> - задача непростая.

ага... еще и закодировать их так, как надо... :(
проще найти диск где они не потерты.


>
> Я нашел еще (бесполезный для нас) блок "БИБЛ", (бесполезную для нас)
> запускалку Джина из области АРФЫ, блок "КАДРЫ"(?)

наплюй... неюзабельно.


> и теоретически
> полезный блок "СТАТ", который не запускается, видимо, потому что
> неавтономный.

автономный.
>

Basil Dolmatov

unread,
Nov 3, 2009, 3:42:23 AM11/3/09
to be...@googlegroups.com
Basil Dolmatov пишет:

>> и теоретически
>> полезный блок "СТАТ", который не запускается, видимо, потому что
>> неавтономный.
> автономный.
Sorry,
работа со статистикой ДИСПАКа - это блок "ЖУРНАЛ". Удобный, и хороший...


А СТАТ - это команда по статистике ДЖИНа...
Не особо и иинтересно.

>>

Basil Dolmatov

unread,
Nov 3, 2009, 3:47:12 AM11/3/09
to be...@googlegroups.com
Leo Broukhis пишет:

>
> http://groups.google.com/group/besm6/web/2048--2049
>

Эхолот - да...

Программа, анализировавшая, в частности, использование стека в
Паскалевской программе...
Потому и "эхолот" - меряла "глубину колодца стека". :)
Делал ее, по-моему, Тихорский...

СТРУК - это что-то знакомое, типа красивой печати... Ей, вроде бы,
печаталась документация ДЖИНа.


dol@


Leo Broukhis

unread,
Nov 3, 2009, 11:19:14 PM11/3/09
to be...@googlegroups.com
2009/11/3 Basil Dolmatov <vdol...@gmail.com>:

>> Восстановить программу "турнир" должно быть не очень сложно, а вот
>> дебюты перегенерировать (они нужны для уровней "участник" и "эфенди")
>> - задача непростая.
> ага... еще и закодировать их так, как надо... :(
> проще найти диск где они не потерты.

Так, одной проблемой меньше:

==* тур
ТУРНИР " Д Ж И Н Н - Ч Е Л О В Е К "
С 1V.1V.1V ПО 03.11.09 НА 20.17
=========================================
IМЕСТО ШИФР ФАМИЛИЯ НОМО ДЖИН ФОРI
-----------------------------------------
I‾‾‾‾‾‾‾‾‾‾‾ Э Ф Е Н Д И ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾I
I 1 07+ НЕТ ТАКОГО 165 168 0 I
I 2 01+8 НЕТ ТАКОГО 1 160 >> I
I 3 5049 НЕТ ТАКОГО 0 0 1 I
I 4 03+8 НЕТ ТАКОГО 3 80 >> I
I 5 0003 НЕТ ТАКОГО 84 7 0 I
I 6 5049 НЕТ ТАКОГО 0 0 1 I
I 7 07+8 НЕТ ТАКОГО 3 80 >> I
I 8 5049 НЕТ ТАКОГО 0 0 1 I
...

Leo

Leo B.

unread,
Jan 6, 2022, 5:08:10 AM1/6/22
to БЭСМ-6
On Tuesday, November 3, 2009 at 12:40:36 AM UTC-8 ReedCat wrote:


> Я нашел еще (бесполезный для нас) блок "БИБЛ", (бесполезную для нас)
> запускалку Джина из области АРФЫ, блок "КАДРЫ"(?)

наплюй... неюзабельно.


А вот декомпилирую - узнаю, посмотрю, насколько оно юзабельно хотя бы для того, чтобы выяснить, как в блоке "КАДРЫ" была база данных сделана.
У меня нынче полуавтоматическая декомпиляция на поток поставлена - примерно лист выполняемого кода за вечер.

На СВС-овском 2048 есть аж

(GOST) 0540.0101:  ПРОФ  ВАЛЕТ !КАДРЫКАТАЛО!ЗОНКД!ЗОНПЧ00000↑00000000А00000Z0000
(GOST) 0545.0116:  ******-=*=- !КАДРЫКАТАЛО!ЗОНПЧ00000А00000Z00000П0000300000З0000
(GOST) 0553.0121:  ******-=≠=- !КАДРЫКАТАЛО!ЗОНКД!ЗОНПЧ00000Э00000А00000Z00000D0000
(GOST) 0560.0066:  ******-=≠=- !КАДРЫКАТАЛО!ЗОНКД!ЗОНПЧ00000↑00000Э00000А00000Z0000
(GOST) 0565.0116:  00000*-=О=- !КАДРЫ!ЗОНКД!ЗОНПЧ******00000А00000Z00000П00000:0000
(GOST) 0572.0052:  000006!ЗОНПЧ!КАДРЫ0000000000 ******00000,00000*00000А00000Z0000
(GOST) 1225.0046:  00000*******!КАДРЫ!ЗОНКД!ЗОНПЧ00000↑000003-=≠=-       00000Ш0000

7 разных бинарников, работающих с этой базой. Не все из них запускаются, правда, но через пару недель узнаем, откуда ноги растут. Все тексты школы блока сохранились
(в отличие от других блоков, они были не встроенные в код, а читались из отдельного "файла"; почему так для всего Джина не сделали?) Там примеры запросов к базе
довольно продвинутые.

То, что в зоне 553 - служебный блок - я уже наполовину оприходовал. Он скомпилирован весьма старой версией компилятора, которая еще не писала дату в первые слова,
и в ней отсутствовали некоторые оптимизации, из-за чего приходится вставлять "прокладки" для выравнивания адресов.

Заодно и видно, что писали этот блок заметно раньше, чем все остальные, которые мне приходилось видеть.
Так, например, запрос даты везде делается как

_function getDate: alfa;
_var k:integer;l:alfa;
_(
  k:=00003777776Т;l:='3 1   ';
  СОDЕ(Э050114=,2СБ4=2РБ5,СД120=2ЗЧ4,МР=СД70,2ЗЧ5=МР,2СМ5=СД140,17ЛС=2СМ4,СД60=17ЛС,);
  getDate := ;
_);


а в "кадрах" как

_function getDate:integer;
_var i:integer;
_(
 code(Э050114=,);
 i := ;
 getDate := (((((((((((shift(i,16) _mod 16) * 10) + (shift(i,20) _mod 16)) * 10) +
  (shift(i, 28) _mod 2)) * 10) + (shift(i, 24) _mod 16)) * 10) +
  (shift(i, 33) _mod 4)) * 10) + (shift(i, 29) _mod 16));
 _);


Leo

Reply all
Reply to author
Forward
0 new messages