Вход

Просмотр полной версии : Особенности процессоров и устройств архитектуры PDP-11. Тесты. Диагностика.



Страницы : 1 2 3 4 5 6 7 8 [9] 10

AFZ
04.09.2017, 06:06
Например некоторый DECовский софт в свое время не перешел ни в Mentec ни в HP, просто подвис в воздухе и с ним есть проблемы. А проблемы эти не снялись за давностью лет? Вроде бы все эти права срочные, срок кончился, и всё!..

form
04.09.2017, 06:19
А проблемы эти не снялись за давностью лет?
Черт его знает. Но несколько лет назад они еще были. Хоят в любом случае тут нужен юрист, разбирающийся в их законах.

hobot
04.09.2017, 10:28
и с ним есть проблемы.
А вот все эти РАФОСы в Советское время просто в наглую создавались вместе с документацией,
по принципу мы никому ничего не должны? Хотя если сравнивать побайтого там наверняка различия
с RT-11 хватит что бы отстаивать юридически, что система схожа, но не идентична.
А Зеленоградские камушки - это в любом случае никакие не клоны, оригинальная разработка с
системой команд заимствованной (или совместимой, Система команд Э-60? Так примерно? )

form
04.09.2017, 13:10
но не идентична
Настолько идентична, что даже косяки перенесены :)
Отличия минимальны - например чтобы "аналог" который в отличие от оригинала не отличает слово от байта заработал, или скажем "мощную" систему авторизации добавить (которая легко прерывается по CTRL/C) :)
Или в RSX-11M V4.0 (даже без переименования) позволить простому пользователю программы устанавливать (правда в силу дырявости самой системы это не ухудшает положений) :)
Это - наше! :D

form
04.09.2017, 22:15
У кого-то вроде был ментековский проц?
Тест прогнать один надо...

form
06.09.2017, 08:07
Для ментека уже несколько тестов накопилось...
И для DEC Pro/Э85 кое-что есть...

MiX
06.09.2017, 20:46
Для ментека уже несколько тестов накопилось...
И для DEC Pro/Э85 кое-что есть...
Что за тесты?

form
06.09.2017, 20:52
Что за тесты?
Для ментека интересно проверить DATE (http://zx-pk.ru/threads/10718-soft-dlya-dvk-pdp11.html?p=927193&viewfull=1#post927193)который выложил в теме про софт.
Сделать IOSCAN, после просмотра регистров будут тесты исходя из них.
Интересно проверить поведение команды MOVR (или как ее обозвать [код 075SDC]) - единственная наверно команда с тремя аргументами :).

Для прошника интересно проверить NVRAM в разных форматах: BCD/DM, 12/24.

MiX
06.09.2017, 20:55
form, Попробую.

form
06.09.2017, 21:59
Попробую.
Сейчас для MOVR тест нарисую.
И IOSCAN нужен - исходя из него еще кое-что будет.

- - - Добавлено - - -

Выложил тест команды MOVR (http://pdp-11.org.ru/~form/files/pdp-11/mentec/).
У меня, разумеется, трапается по 10 :)
.RU MOVR
Trap to 000010 at PC=001016
PS=170000, R3=010000, R4=020000, R5=000100
Trap to 000010 at PC=001016
PS=170000, R3=157770, R4=020000, R5=000100

.

- - - Добавлено - - -

Приведение E11 в состояние близкое к M-series :)
Ersatz-11 V7.2 Demo version, COMMERCIAL USE LIMITED TO 30-DAY EVALUATION
Copyright (C) 1993-2016 by Digby's Bitpile, Inc. All rights reserved.
See www.dbit.com for more information.
E11>set cpu 83 nopcr mr=1
E11>install mtctoy.dll
E11>b du

RSX-11M-PLUS V4.6 BL87 1024.KW System:"Baseline"
>RED DU:=SY:
>RED DU:=LB:
>RED DU:=SP:
>MOU DU0:"RSX11MPBL87"
>@[2,54]BASTART
>;
...
>;
>* Please enter time and date (Default:02-AUG-2015 11:30) [S]: ^Z
>@ <EOF>
>INS $ACF
>INS $ACO
>ACF
>ACO SHO
Processor Type: M11 (MENTEC) Memory Size: 1024. Kw

Options:

Floating Point Processor (FP11)
Extended Instruction Set (EIS)
Extended (22-Bit) Addressing
Cache Memory
Parity Memory

Name Vector CSR Unit Type Remark
RHA 254 176700
0 RP05
DUA 154 172150
0 RD54
MUA 260 174500
0 TU81
LPA 200 177514
YLA 060 177560
YLB 300 176500

>

MiX
06.09.2017, 22:29
IOSCAN нужен
Внутренним мапом прошелся.

Memory Map
Starting at Ending at
00000000 17757776
17772100 17772100
17772200 17772376
17772516 17772516
17773000 17773776
17776500 17776526
17777520 17777520
17777546 17777546
17777560 17777566
17777572 17777676
17777744 17777752
17777766 17777766
17777772 17777772
17777776

- - - Добавлено - - -

form, В общем не грузится у меня, разбираться некогда.

form
07.09.2017, 07:30
Memory Map
Starting at Ending at
00000000 17757776 RAM
17772100 17772100 PARITY CSR
17772200 17772376 SISDR0-SISDR7, SDSDR0-SDSDR7
SISAR0-SISAR7, SDSAR0-SDSAR7
KISDR0-KISDR7, KDSDR0-KDSDR7
KISAR0-KISAR7, KDSAR0-KDSAR7
17772516 17772516 MMR3
17773000 17773776 EPROM/EEPROM
17776500 17776526 YLB, YLC, YLD
17777520 17777520 BCSR
17777546 17777546 LCS
17777560 17777566 TKS-TPB
17777572 17777676 MMR0-MMR2, UISDR0-UISDR7
UDSDR0-UDSDR7, UISAR0-UISAR7
UDSAR0-UDSAR7
17777744 17777752 MSER, CCR, MREG, HMR
17777766 17777766 CPUERR
17777772 17777772 PIRQ
17777776 PSW
Как RSX и ожидает от Mentec'а, нет регистров страниц E(E)PROM, регистра конфигурации-светодиодов, привычных для KDJ11, и нету ASR как в KDJ11-E. Есть только CSR модуля в котором вероятно ничего нет кроме выбора что мапить в окно 173000 и тому подобного: RSX бодро обнуляет этот регистр, чтобы гарантировать EPROM, а не EEPROM в окне. Управления таймером как на KDJ11 видимо в нем тоже нет. На KDJ11-B/E обнуление регистра чревато повисанием намертво :)

Сейчас еще тестик наваяю.

form
07.09.2017, 09:49
Выложил общий тест (http://pdp-11.org.ru/~form/files/pdp-11/mentec/) для ментековских процов. Читает информацию о модуле, пробует выполнить команду блочной пересылки, пробует прочитать TOY.

На 11/83 выглядит так:
.RU MENTEC
Mentec board feature test V01.00

BCSR=003007, MR=000445, MFPT=000005 ;MODULE INFO
PC=001202, PS=140000, R3=010000, R4=020000, R5=000100 ;MOVR R3,R4,R5
PC=001204, PS=140000, R3=010000, R4=020000, R5=000100 ;TRAP TO 000010
177777 177777 177777 177777 ;TOY

.

На эмуляторе с Mentec TOY выглядит так:
.RU MENTEC
Mentec board feature test V01.00

BCSR=177777, MR=000425, MFPT=000005 ;MODULE INFO
PC=001202, PS=000000, R3=010000, R4=020000, R5=000100 ;MOVR R3,R4,R5
PC=001204, PS=000000, R3=010000, R4=020000, R5=000100 ;TRAP TO 000010
007000 010460 001007 012410 ;TOY

.

- - - Добавлено - - -

Там же программа RDUMP - ее запустить, а потом интересен созданный ей файл 173000.DAT.

form
07.09.2017, 14:04
Внезапно обнаружил еще одно несоответствие эмуляции DCJ11 в E11 с реальностью.
Вот такой тест ведет себя по разному:
.TITLE T4
.IDENT /V01.00/

.MCALL .EXIT,.PRINT,.TRPSET ;SYSTEM MACROS

START:: .TRPSET #AREA,#TRINT ;CATCH TRAPS THRU 4/10
MOV #160000,R3 ;SRC (NONEXISTENT MEMORY)
MOV #10000,R4 ;DST
MOV (R3)+,(R4)+ ;MOVE
.PRINT #OOPS ;SHIT HAPPENS
.EXIT ;EXIT

TRINT:: MOV #BUFF,R0 ;BUFFER
MOV #FMTS,R1 ;FORMAT
MOV #AREA+4,R2 ;ARGS
MOV R4,-(R2) ;...
MOV R3,-(R2) ;...
CALL $EDMSG ;EDIT
.PRINT #BUFF ;PRINT
.EXIT ;EXIT

AREA: .BLKW 2 ;EMT AREA/ARG BLOCK
BUFF: .BLKB 80. ;BUFFER

OOPS: .ASCIZ /SHIT HAPPENS/
FMTS: .ASCIZ /R3=%P, R4=%P/

.END START
11/83:
.RU T4
R3=160002, R4=010000

.
E11:
.RU T4
R3=160000, R4=010000

.
Отписал среди прочих запросов фич...

MiX
09.09.2017, 15:28
form, Не грузится. Могу пройтись с 173000.

- - - Добавлено - - -

Есть кстати DD загрузчик, но нужно вроде два соединения по СОМу.

form
09.09.2017, 15:32
Не грузится.
А что именно не грузится?
Я ничего не выкладывал загружаемого :)


Есть кстати DD загрузчик, но нужно вроде два соединения по СОМу.
А чем HX не устраивает?

MiX
09.09.2017, 15:38
Менюшка.

Enter a command and press the return key :SETUP

Setup Menu


1 Modify N11 hardware setup

2 Modify software setup

3 Save modified setup

4 Initialize to factory setup

5 Configure autoboot list

6 Configure device translations

7 Exit setup


Select an option and press the RETURN key :1

Hardware configuration
1 Base address of DLV11J emulation . 176500
2 Base vector of DLV11J emulation. . 000300
3 Serial line 0 baud rate. . . . . . 9600
4 Serial line 1 baud rate. . . . . . 9600
5 Serial line 2 baud rate. . . . . . 9600
6 Serial line 3 baud rate. . . . . . 38400
7 On board console . . . . . . . . . Enabled
8 On board LTC . . . . . . . . . . . 60 Hz
9 On board boot PROM . . . . . . . . Enabled
10 Power up mode. . . . . . . . . . . 173000
11 Power up address . . . . . . . . . 000000
12 On board parity CSR address. . . . 172100
13 Halt option. . . . . . . . . . . . Cleared
14 On board parity enable . . . . . . Disabled
15 Console Halt enable . . . . . . . Enabled
16 Memory Timeout Select . . . . . . 25 uS
Select option number to modify and press return (CR to exit):

Setup Menu


1 Modify N11 hardware setup

2 Modify software setup

3 Save modified setup

4 Initialize to factory setup

5 Configure autoboot list

6 Configure device translations

7 Exit setup


Select an option and press the RETURN key :2

Software configuration
1 Boot option. . . . . . . . . . Dialogue
2 Autoboot loop/exit option . . Exit
3 Console type . . . . . . . . . DUMB
4 Disable all diagnostics. . . . NO
5 Enable extended testing. . . . NO
6 Enable line time clock . . . . Enabled
7 Allow non standard boot block. YES
8 Map lower case to upper . . . Disabled
9 System Identification. . . . . Disabled
10 Allow FPU instructions. . . . Disabled
11 Allow MOVR instructions . . . Enabled
Select an option and press RETURN (CR to exit) :

Setup Menu


1 Modify N11 hardware setup

2 Modify software setup

3 Save modified setup

4 Initialize to factory setup

5 Configure autoboot list

6 Configure device translations

7 Exit setup

- - - Добавлено - - -


А что именно не грузится?

HX не грузится, после G молчёк.

form
09.09.2017, 15:43
HX не грузится, после G молчёк.
А консольный порт в 8-битный режим установлен?
Раньше же вроде что-то запускалось с этим процом?

MiX
09.09.2017, 15:54
ментековский проц
Кстати я бы не сказал что там ментековский проц. Ментековская плата, а проц там i960.
По сути эмулятор.


А консольный порт в 8-битный режим установлен?
Где эти установки я так и не понял.


Раньше же вроде что-то запускалось с этим процом?
Раньше другой загрузчик был.

form
09.09.2017, 16:03
Кстати я бы не сказал что там ментековский проц. Ментековская плата, а проц там i960.
По сути эмулятор.
Так и есть. Только один или два ментековских модуля использовали настоящий DCJ11. Остальные - эмуляция. И это еще интереснее: именно на таком проце по идее должна быть команда блочной пересылки которую я и хочу потестировать.


Раньше другой загрузчик был.
Тогда нужен Patron. А если после G остановить проц - где остановится?

MiX
09.09.2017, 16:09
Пишет:
ODT_Loader ERROR: Echo NOT matched: Send:...

- - - Добавлено - - -


именно на таком проце по идее должна быть команда блочной пересылки
На QED993 стоит моторолловский проц.

form
09.09.2017, 16:13
Echo NOT matched: Send:...
А что под "..." скрывается?

MiX
09.09.2017, 16:21
А что под "..." скрывается?
Там много таких сообщений.
Sent: 1 Echo: 0
Sent: 1 Echo: 3
Sent: 1 Echo: 4

form
09.09.2017, 16:28
Там много таких сообщений.
А включи лог терминала и прицепи его сюда - посмотрим на чем спотыкается - может где пробел какой в диалоге лишний или еще чего.

И начало лога где "Sent ...".

MiX
09.09.2017, 16:41
А включи лог терминала
Да промпт там хитрый 000 000 000 @.

- - - Добавлено - - -

Нули терминал не показал.

- - - Добавлено - - -

Надо бы сделать внешнюю настройку промпта в Эм. VT52. ;)

- - - Добавлено - - -

Забыл уже, как не отображаемые символы прописываются в настройках промпта.

form
09.09.2017, 16:54
Да промпт там хитрый
А если старый эмулятор взять?
В каталоге валяется от 03.03.16...

- - - Добавлено - - -

Как вариант - вручную набить загрузчик - он вроде не сильно большой :)

- - - Добавлено - - -

А других устройств для загрузке еще нету к ментеку? :)

MiX
09.09.2017, 16:55
Как промпт выставить?

PromptChar="\000\000\000\100"

Так?

form
09.09.2017, 17:00
Как промпт выставить?

PromptChar="\000\000\000\100"

Так?
Судя по названию настройки - там именно char, а не string :)
А нули если эмулятор терминала их не игнорит - это уже косяк.
Но промпт-то в сущности один раз только выдается (ну два - перед G еще) и по идее отсчет начинается с "@", а что до этого должно быть пофигу.

MiX
09.09.2017, 18:09
В общем, всё дело в "SendDelay".
Выставил MS=1 пошла загрузка.

- - - Добавлено - - -

IOSCAN

IOSCAN

172100
172200-172376
172516
173000-173776
176500-176526
177520
177546
177560-177566
177572-177676
177744-177752
177766
177772
177776

form
09.09.2017, 18:11
пошла загрузка
Теперь нужен результат теста (http://zx-pk.ru/threads/18184-osobennosti-protsessorov-i-ustrojstv-arkhitektury-pdp-11-testy-diagnostika.html?p=927247&viewfull=1#post927247).

MiX
09.09.2017, 18:18
DATE
?DATE-I-Time source: RT-11
?DATE-I-Date & time: 19-AUG-2017 00:06:43

- - - Добавлено - - -


MENTEC
Mentec board feature test V01.00

BCSR=000100, MR=000035, MFPT=000005 ;MODULE INFO
PC=001222, PS=000000, R3=010000, R4=020000, R5=000100 ;MOVR R3,R4,R5
PC=001224, PS=000000, R3=010000, R4=020000, R5=000100 ;TRAP TO 000010
000000 000000 000000 000000 ;TOY

form
09.09.2017, 18:23
Жаль. Ни блочной пересылки, ни TOY нету :)
Ну хоть ID одного ментековского модуля теперь знаем.

MiX
09.09.2017, 18:23
form, Что rdump делает?

form
09.09.2017, 18:24
Что rdump делает?
Читает окно 173000. Прочитав его можно разобраться как он разбирается с остальной частью и снять всю прошивку - оно несовместимо с KDJ.

MiX
09.09.2017, 18:27
Читает окно 173000. Прочитав его можно разобраться как он разбирается с остальной частью и снять всю прошивку - оно несовместимо с KDJ.
После запуска возвратил в монитор и всё.

form
09.09.2017, 18:30
После запуска возвратил в монитор и всё.
Ну так он и не говорит ничего - просто создает файл 173000.DAT, его и нужно.

MiX
09.09.2017, 18:47
Ну так он и не говорит ничего - просто создает файл 173000.DAT, его и нужно.
Не создаёт он ничего.

form
09.09.2017, 18:52
Не создаёт он ничего.
Странно это. Вроде он ругается если не может создать.

MiX
09.09.2017, 18:58
Создает в системном каталоге, но не в каталоге с которого запускается программа.
Хоть бы спрашивал.
Типа:
Create?

- - - Добавлено - - -

Прошивка.

form
09.09.2017, 19:01
Хоть бы спрашивал.
Так чего спрашивать если прога ничего другого не делает, а при ошибке пишет сообщение :)

MiX
09.09.2017, 19:05
Так чего спрашивать
Так можно и затереть файл с таким же именем.

form
09.09.2017, 19:11
Так можно и затереть файл с таким же именем.
Чтобы случайно не затереть есть хорошая команда PROTECT :)

form
10.09.2017, 19:11
Интересен еще один тест на Mentec. Тест тот же самый, но перед запуском программы MENTEC.SAV выполнить команды:
.D 1000=5037,177520,104350

.ST 1000

- - - Добавлено - - -

Новый думпер для прошивки здесь (http://pdp-11.org.ru/~form/files/pdp-11/mentec/) (прога MTROM.SAV (http://pdp-11.org.ru/~form/files/pdp-11/mentec/mtrom.sav)).

По первому впечатлению принцип адресации как у BDV11. Среди прочего адресуется и EEPROM. Пока без разбора читаю 256 страниц.

MiX
11.09.2017, 23:08
Тест TSTVM2 на плате М2 Эл.60.

DIV (odd) - ERROR: 0x43D5 / 0x64D1

Остальные все - OK.

- - - Добавлено - - -


Тест тот же самый, но перед запуском программы MENTEC.SAV выполнить команды:
Такой же результат.

- - - Добавлено - - -


Новый думпер для прошивки здесь
Показало 000377.

form
11.09.2017, 23:11
Показало 000377.
Ну это понятно что 377, суть та же - нужен файл который он создал: 173000.DAT.
На сей раз он должен быть 128 блоков.

MiX
11.09.2017, 23:14
нужен файл который он создал: 173000.DAT.
Где создал? Что вообще прога делает?

form
11.09.2017, 23:17
Где создал?
На устройстве DK.


Что вообще прога делает?
Читает всю прошивку (и, возможно, настройки из EEPROM).

MiX
11.09.2017, 23:27
На устройстве DK.
У меня DK это SY. Почему бы не сделать диалог с выбором каталога. Зачем мне забивать систему файлами.

- - - Добавлено - - -


Читает всю прошивку (и, возможно, настройки из EEPROM).
Конкретно как? Через регистр?

form
11.09.2017, 23:31
У меня DK это SY. Почему бы не сделать диалог с выбором каталога. Зачем мне забивать систему файлами.
Выбор есть: команда AS XXn DK ;)
Это как бы не повседневная программа, а одноразовая, цель которой считать прошивку.

- - - Добавлено - - -


Конкретно как? Через регистр?
Конкретно выставляя номер страницы в 177521 и читая окно 173400-173777.

MiX
12.09.2017, 00:42
Прошивка.

- - - Добавлено - - -

form, В эмуляторе запустить прошивку есть возможность?

form
12.09.2017, 00:56
В эмуляторе запустить прошивку есть возможность?
Сначала надо понять что здесь прошивка, что EEPROM (если есть), что мусор (если есть). Ну а далее все упирается в регистры к которым прошивка обращается.

- - - Добавлено - - -

Вот еще тест. Из пульта:
@17777520/ xxxxxx 120
@17773376/ (что здесь)?

MiX
12.09.2017, 01:08
Ну а далее все упирается в регистры к которым прошивка обращается.
Я же IOSCAN прогонял.


Вот еще тест. Из пульта:
@17777520/000040
@17773376/000374
@17777520/000040 120
@17773376/050120

form
12.09.2017, 01:14
И еще:
@17777520/ xxxxxx 200
@17773002/ (что здесь)?

Alex_K
12.09.2017, 01:17
А после записи в 17777520 читается записанное значение или другое?

form
12.09.2017, 01:25
А после записи в 17777520 читается записанное значение или другое?
Из него самого должно читаться то, что записано по идее. С оговоркой: попробовать значения 200, 201, 202.

В остальном все выглядит так: 177520 определяет страницу для окна 173000-173377, 177521 - для окна 173400-173777.

Alex_K
12.09.2017, 01:29
Из него самого должно читаться то, что записано по идее.
@17777520/000040
@17773376/000374

А вообще должно читаться 020373 из 17773376. А читается 000374, как будто стоит нулевой блок.

form
12.09.2017, 01:35
Да, тоже интересный тест. На чтение он может быть другим регистром. Тем более, что он один и есть для управления. Других просто нету (RSX так и определяет можно ли пробовать M100: если нету нифига - может быть Mentec, есть - KDJ)

Alex_K
12.09.2017, 01:44
А так по распределению примерно так: блоки 0-176 это ПЗУ, 177 - EEPROM, но используется только младший байт. Вопрос в блоках 200-377. В прошивке для записи используются как блок 177, так и 377.

form
12.09.2017, 10:07
блоки 0-176 это ПЗУ
Да. При старте делаются некоторые тесты, потом страницы 2-176 копируются последовательно (за вычетом последнего слова где старший байт равен номеру страницы, а младший - нечто вроде контрольной суммы, вычисляемой последовательными XORами) в память, начиная с 10000, после чего код запускается с 10000.

но используется только младший
Это и в KDJ11-B/KDJ11-E так же.

Сейчас попробую соорудить плагин для E11.


используются как блок 177, так и 377
Похоже организация такая: 0-176 EPROM, 177 EEPROM, 200-376 EPROM, 377 EEPROM.
При этом в данной конфигурации второй части нету.

- - - Добавлено - - -


Похоже организация такая: 0-176 EPROM, 177 EEPROM, 200-376 EPROM, 377 EEPROM.
При этом в данной конфигурации второй части нету.
А нет. Есть только первая часть. Это просто такая хитрость чтобы разрешить запись в EEPROM:
034712 012737 000377 177520 MOV #377,@#177520
034720 012737 000252 173000 MOV #252,@#173000
034726 012737 000125 173002 MOV #125,@#173002
034734 012737 000200 173000 MOV #200,@#173000
034742 012737 000252 173000 MOV #252,@#173000
034750 012737 000125 173002 MOV #125,@#173002
034756 012737 000177 177520 MOV #177,@#177520
034764 012737 000060 173000 MOV #60,@#173000
034772 105737 173000 TSTB @#173000
034776 100375 BPL 34772

- - - Добавлено - - -

Выложил там же (http://pdp-11.org.ru/~form/files/pdp-11/mentec/) еще один тест.
Программа MTCEE.SAV (http://pdp-11.org.ru/~form/files/pdp-11/mentec/mtcee.sav). Посмотрим какие значения принимает PCR на чтение в разных условиях.

MiX
12.09.2017, 11:08
И еще:

@17777520/ 000040 200
@17777520/ 000040
@17773002/ 003006

form
12.09.2017, 11:12
Сейчас больше вот этот (http://pdp-11.org.ru/~form/files/pdp-11/mentec/mtcee.sav) тест интересен - он включает проверку PCR (собственно ей и занимается).

MiX
12.09.2017, 11:21
MTCEE
PCR=000000
PCR=000177
PCR=000064
PCR=000000

Так в эмулятор то можно засунуть или нет?

- - - Добавлено - - -

form, А как сдампить пульт с М2 Эл.60?

form
12.09.2017, 11:29
Так в эмулятор то можно засунуть или нет?
Можно если эмулировать ROM/EEPROM с PCR. Сейчас пробую в E11 сделать.

- - - Добавлено - - -


А как сдампить пульт с М2 Эл.60?
Думаю, что никак. Если только кто знает хитрость как в HALT моду попасть програмно на нем.

- - - Добавлено - - -


E11>g 173000



Testing in progress please wait
4088 K Bytes RAM

M11 Bootstrap/Diagnostic Version V 1.4I

Commands are :
BOOT - Boot from a specific device.

HELP - Re-display this summary of commands.

LIST - List the bootstraps provided.

MAP - Display a map of the address space.

SETUP - Configure the M11.

TEST - Enter a continuous test mode


Enter a command and press the return key :

MiX
12.09.2017, 11:35
Код:
Да, так и показывает.
В меню можно зайти?

form
12.09.2017, 13:31
В меню можно зайти?
Можно, только я пока не эмулирую запись в EEPROM.

- - - Добавлено - - -

Последний тест убран - похоже он затирает первое слово EEPROM.

Выложил набор E11 (http://pdp-11.org.ru/~form/files/pdp-11/mentec/mtce11.rar) с плагином прошивки Mentec. EEPROM пока эмулируется только на чтение.
Testing in progress please wait
4088 K Bytes RAM

M11 Bootstrap/Diagnostic Version V 1.4I

Commands are :
BOOT - Boot from a specific device.

HELP - Re-display this summary of commands.

LIST - List the bootstraps provided.

MAP - Display a map of the address space.

SETUP - Configure the M11.

TEST - Enter a continuous test mode


Enter a command and press the return key :B DL0
Starting system ...

RT-11FB V05.07

Команда MAP подвисает - надо разобраться еще. Остальное вроде работает.

UPD: с MAP прояснилось - нужно было запретить процу откат автоинкремента после ошибок (который ошибочно включен при выборе DCJ11 процов в настройке.

MiX
12.09.2017, 16:39
Выложил набор E11 с плагином прошивки Mentec.
Нет пункта:

10 Allow FPU instructions. . . . Disabled
11 Allow MOVR instructions . . . Enabled

Должен быть после SETUP> 2 Modify software setup>...

form
12.09.2017, 16:42
Нет пункта:
С этим надо еще разбираться - возможно какие-то биты в maintenance регистре должны быть установлены.


11 Allow MOVR instructions . . . Enabled
О! Значит эта инструкция есть, но ее нужно включать.

form
12.09.2017, 18:52
Обновил эмуляторский набор. Теперь вопросы про FPU и MOVR задаются. Нужно было включить команду MED (от PDP-11/60, гы). E11 ее как NOP отрабатывает если включить, но прошивке этого хватает.

form
14.09.2017, 16:18
Теперь когда стали понятны некоторые особенности, интересен следующий тест: в сетапе разрешить команду MOVR и выполнить MENTEC.SAV (http://pdp-11.org.ru/~form/files/pdp-11/mentec/mentec.sav).

MiX
14.09.2017, 16:33
интересен следующий тест: в сетапе разрешить команду MOVR
Такой же как и раньше.

form
14.09.2017, 16:52
Такой же как и раньше.
Жаль. Возможно прошивка универсальная, а конкретно в этом модуле команда не эмулируется. В идеале запустить бы RSXный ACF и сам RSX (и посмотреть что он в словах конфигурации покажет). Есть какие-нибудь дисковые устройства на этой машине?

MiX
14.09.2017, 16:55
Есть какие-нибудь дисковые устройства на этой машине?
Нет. НХом гружусь.
А в Е11 не выставить 11/60 процессор?

form
14.09.2017, 17:22
А в Е11 не выставить 11/60 процессор?
Выставить можно, но команды MED он отрабатывает как NOP поскольку эти команды лезут за пределы PDP-11.

- - - Добавлено - - -


НХом гружусь.
А какой-нибудь MY через переходник подцепить если?

- - - Добавлено - - -

Разбор кода сохранения настроек привел к следующему пониманию работы с EEPROM:

Сначала один раз выполняется вот такой код:
034712 012737 000377 177520 MOV #377,@#177520 ;КОМАНДНАЯ СТРАНИЦА
034720 012737 000252 173000 MOV #252,@#173000 ;ATTENTION
034726 012737 000125 173002 MOV #125,@#173002 ;...
034734 012737 000200 173000 MOV #200,@#173000 ;ПОДГОТОВКА К СТИРАНИЮ
034742 012737 000252 173000 MOV #252,@#173000 ;ATTENTION
034750 012737 000125 173002 MOV #125,@#173002 ;...
034756 012737 000177 177520 MOV #177,@#177520 ;СТРАНИЦА EEPROM
034764 012737 000060 173000 MOV #60,@#173000 ;СТИРАНИЕ
034772 105737 173000 TSTB @#173000 ;ЗАТЕРЛОСЬ (СТАЛО 377)?
034776 100375 BPL 34772 ;PL - НЕТ ЕЩЕ
Затем на каждый байт выполняется такой код:
034526 012737 000377 177520 MOV #377,@#177520 ;КОМАНДНАЯ СТРАНИЦА
034534 012737 000252 173000 MOV #252,@#173000 ;ATTENTION
034542 012737 000125 173002 MOV #125,@#173002 ;...
034550 012737 000240 173000 MOV #240,@#173000 ;ПОДГОТОВКА К ЗАПИСИ
034556 012737 000177 177520 MOV #177,@#177520 ;СТРАНИЦА EEPROM
034564 110015 MOVB R0,@R5 ;ЗАПИСЬ БАЙТА
034566 100006 BPL 34604 ;PL - ЖДЕМ PL
034570 111503 MOVB @R5,R3 ;MI - ЖДЕМ MI
034572 105703 TSTB R3 ;...
034574 100375 BPL 34570 ;...
.................................................. ..........
034604 111503 MOVB @R5,R3 ;...
034606 105703 TSTB R3 ;...
034610 100775 BMI 34604 ;...
Отображение EEPROM осуществляется записью 177 в регистр страницы (177520), при этом используются только младшие байты каждого слова. Сохранение параметров записывает слова 000-270, слова 272-374 не трогает, в слово 376 пишется байт, получаемый последовательным XORом с 000 каждого из байтов (включая те, что не трогаются).

MiX
14.09.2017, 17:32
А какой-нибудь MY через переходник подцепить если?
Тогда уж RQDX c флопиком. Ну не сегодня.
А что в эмуляторе не поиграться? Из дисков, чего хочешь выстави.

form
14.09.2017, 18:06
Тогда уж RQDX c флопиком.
А там какого размера флопик?

- - - Добавлено - - -


Такой же как и раньше.
Дурацкий вопрос, но на всякий случай ;)
А сохранение параметров делалось после изменения?

Alex_K
14.09.2017, 18:24
Возможно прошивка универсальная, а конкретно в этом модуле команда не эмулируется.
Прошивка универсальная. Судя по всему поддерживает как модули с J-11, так и с Mentec. Во время запуска, если поддерживается команда MED6X, меняет название с M11 на N11, а также читает версию микрокода. Этой же командой MED6X возможно и включает эмуляцию команд FP-11 и MOVR.

form
14.09.2017, 18:32
Этой же командой MED6X возможно и включает эмуляцию команд FP-11 и MOVR.
Вижимо так. На J11 ее отключить нельзя - там FP команды всегда есть и можно только подключить/отключить ускоритель. Ну а про MOVR - жду еще отсвета на свой дурацкий вопрос :)
Про TOY clock же все верно: судя по картинке которую удалось посмотреть, нету его там.

MiX
14.09.2017, 18:35
А там какого размера флопик?
RX50, RX33, RX23.


Дурацкий вопрос, но на всякий случай
А сохранение параметров делалось после изменения?
Так там и был Enabled.

Alex_K
14.09.2017, 18:36
Про TOY clock же все верно: судя по картинке которую удалось посмотреть, нету его там.
Где-то я читал в инете, что TOY там есть, но он вроде не совместим с DEC-овским.

form
14.09.2017, 18:44
Где-то я читал в инете, что TOY там есть, но он вроде не совместим с DEC-овским.
Совместим, но не на уровне регистров. В DECовском варианте используется 8й бит регистра ASR (177526) для общения с ним. В Mentecовском варианте чтение производится из 173010 (младший бит), а запись делается хитро: 0 записывается чтением 173000, а 1 пишется чтением 173002.
А сами часы на том же далласе и работа с ними ведется одинаково.

Alex_K
14.09.2017, 20:10
Так там и был Enabled.
MiX, а с HX загружались после запуска кода из ПЗУ?
А то все параметры читаются из EEPROM, а после чтения эмуляция FP-11 и MOVR устанавливается командой MED6X.

form
14.09.2017, 21:42
Немного баловства на 11/83 :D
.INI DU2:/NOQ

.COP 010000.RAM DU2:
Files copied:
DK:010000.RAM to DU2:010000.RAM

.COP/DEV/NOQ SY:/STA:0/END:0 DU2:
?DUP-W-Output device is larger than input device

.R SIPP
*DU2:/A
Base? 0
Offset? 2000

Base Offset Old New?
000000 002000 012737 12700
000000 002002 003140 104
000000 002004 000100 12701
000000 002006 005037 37400
000000 002010 000102 12702
000000 002012 005003 10000
000000 002014 011367 4777
000000 002016 003714 3710
000000 002020 012706 112
000000 002022 010000 ^Y
*DU2:010000.RAM/A
Base? 0
Offset? 2772

Base Offset Old New?
000000 002772 177520 0
000000 002774 016706 ^Z
Offset? 13770

Base Offset Old New?
000000 013770 177521 1
000000 013772 177560 ^Z
Offset? 24050

Base Offset Old New?
000000 024050 177520 0
000000 024052 004767 ^Z
Offset? 24516

Base Offset Old New?
000000 024516 005067 5037
000000 024520 142776 0
000000 024522 000167 ^Z
Offset? 24532

Base Offset Old New?
000000 024532 177520 0
000000 024534 012737 ^Z
Offset? 24562

Base Offset Old New?
000000 024562 177520 0
000000 024564 110015 ^Z
Offset? 24716

Base Offset Old New?
000000 024716 177520 0
000000 024720 012737 ^Z
Offset? 24762

Base Offset Old New?
000000 024762 177520 0
000000 024764 012737 ^Z
Offset? 25306

Base Offset Old New?
000000 025306 177521 1
000000 025310 012701 ^Z
Offset? 26236

Base Offset Old New?
000000 026236 177520 0
000000 026240 005767 ^Y
*^C

.BO DU2:/FO

BOOT-E-EEPROM checkum invalid - reconfigure processor board
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored
BOOT-E-Invalid entry in auto-boot or device translation table entry ignored


Testing in progress please wait
4088 K Bytes RAM

M11 Bootstrap/Diagnostic Version V 1.4I

Commands are :
BOOT - Boot from a specific device.

HELP - Re-display this summary of commands.

LIST - List the bootstraps provided.

MAP - Display a map of the address space.

SETUP - Configure the M11.

TEST - Enter a continuous test mode


Enter a command and press the return key :M

Memory Map
Starting at Ending at
00000000 17757776
17760100 17760106
17760500 17760516
17765000 17765776
17767770 17767774
17772100 17772102
17772150 17772152
17772200 17772376
17772516 17772516
17773000 17773776
17774440 17774456
17774500 17774502
17776500 17776536
17777514 17777524
17777546 17777546
Press <CR> to continue

Memory Map
Starting at Ending at
17777560 17777566
17777572 17777676
17777744 17777752
17777766 17777766
17777772 17777772
17777776
Press <CR> to continue

M11 Bootstrap/Diagnostic Version V 1.4I

Commands are :
BOOT - Boot from a specific device.

HELP - Re-display this summary of commands.

LIST - List the bootstraps provided.

MAP - Display a map of the address space.

SETUP - Configure the M11.

TEST - Enter a continuous test mode


Enter a command and press the return key :B DU3
Starting system ...

RT-11ZM (S) V05.07

?DATE-I-Time source: AA-00-04-00-06-F8, RSX-11M-PLUS V4.6 BL87 (KOPOBA)
?DATE-I-Date & time: 15-SEP-2017 01:37:03

.

MiX
14.09.2017, 21:57
MiX, а с HX загружались после запуска кода из ПЗУ?
Если имеется ввиду менюшка, то да.

form
15.09.2017, 18:31
Для чистоты эксперимента еще вариант теста MOVR, в точности такой как делается в RSX при выяснении есть ли эта команда (пока просто проверка трапается или нет):
.D 1000=75310,104350

.ST 1000

Alex_K
15.09.2017, 19:09
Для чистоты эксперимента еще вариант теста MOVR, в точности такой как делается в RSX при выяснении есть ли эта команда (пока просто проверка трапается или нет):
.D 1000=75310,104350

.ST 1000
А что RSX перед этим кладет в регистры? А то вдруг сработает из затрет весь RMON.
А в RT-11 V 5.7 есть проверка MOVR?

form
15.09.2017, 19:13
А что RSX перед этим кладет в регистры?
RSX кладет 0,0,2 вроде. Так даже лучше будет для теста:
D 1000=5003,5001,12700,2,75310,104350

- - - Добавлено - - -


А в RT-11 V 5.7 есть проверка MOVR?
Нету. И RESORC не пытается определить M-серию процессоров.

MiX
15.09.2017, 19:35
Для чистоты эксперимента еще вариант теста MOVR, в точности такой как делается в RSX при выяснении есть ли эта команда (пока просто проверка трапается или нет):
Трапается.
?MON-F-Trap to 10 001002

form
15.09.2017, 19:42
Трапается.
Жаль. Ну да лано, сейчас RSXный флоп подготовлю для теста.

MiX
15.09.2017, 19:53
form, На плате есть перемычки, может и можно задействовать но нужно описание.

form
15.09.2017, 20:03
На плате есть перемычки, может и можно задействовать но нужно описание.
Вряд-ли перемычками меняются наборы инструкций процессора, тем более если есть такая настройка в сетапе :)

Alex_K
15.09.2017, 20:07
Вряд-ли перемычками меняются наборы инструкция процессора, тем более если есть такая настройка в сетапе :)
И кстати по прошивке получается, что если версия микрокода нечетная, то инструкций FP-11 нет. Можно попробовать в сетапе включить инструкции FPU, наверняка скажет, что данная опция не поддерживается в микрокоде.

MiX
15.09.2017, 20:14
Можно попробовать в сетапе включить инструкции FPU, наверняка скажет, что данная опция не поддерживается в микрокоде.
Так и есть.

form
15.09.2017, 20:29
Выложил образ (http://pdp-11.org.ru/~form/files/pdp-11/mentec/rx23.dsk) RX23 с RSX. После запуска нужно запустить команды
>ACF
>ACO SHO
ACF может долго думать

- - - Добавлено - - -


инструкции FPU
Кстати самый прикол в том, что если в команде MOVR в качестве всех аргументов указать R0, то получится команда FADD R0 :)
Ну и тому подобное...
MOVR R0,R1,R0 - FSUB R0

Alex_K
15.09.2017, 20:34
Ну там наверное под FPU понимались инструкции FP-11 с кодами от 170000. Кстати про Mentec тоже где-то читал, что числа с плавающей запятой соответствуют стандарту IEEE-754. Тогда получается, что это и не FIS и не FP-11, т.к. эта система команд делалась до этого стандарта и в них форматы single и double не соответствуют IEEE-754.

form
15.09.2017, 20:40
FIS
FIS в принципе редкость, не так много моделей с ним было, видимо решено забыть про него
как и про CIS с которым тоже пересечение получается.

- - - Добавлено - - -


под FPU понимались инструкции FP-11
Да.

Alex_K
15.09.2017, 20:47
как и про CIS с которым тоже пересечение получается
А с CIS где пересечение?

form
15.09.2017, 20:50
А с CIS где пересечение?
Бери любую инструкцию CIS - пересечение со всеми :)

MiX
15.09.2017, 21:00
Выложил образ RX23 с RSX.
Сейчас не возможности записать.

Alex_K
15.09.2017, 21:14
Бери любую инструкцию CIS - пересечение со всеми :)
Чего-то я не увидел пересечения ни с чем. Они же в диапазоне 076000-076177.

form
15.09.2017, 21:21
По Mentec процам немного:



MENTEC M-Series processors:
M70, M80, M90, M100 series (DCJ11 based processors)
M11 (DCJ11 emulation)
M1 (DCJ11 emulation) (New)


- - - Добавлено - - -


Чего-то я не увидел пересечения ни с чем. Они же в диапазоне 076000-076177.
Может ошибся, но вроде на глаза попадалось 75xxx недавно.

Alex_K
15.09.2017, 21:33
По Mentec процам немного:

Сообщение от RSX-11M+ V4.6 Release Notes
MENTEC M-Series processors:
M70, M80, M90, M100 series (DCJ11 based processors)
M11 (DCJ11 emulation)
M1 (DCJ11 emulation) (New)
А как она их отличает друг от друга?

form
15.09.2017, 22:03
А как она их отличает друг от друга?
SAV раличает только M11 и N11, отдельно проверяет наличие MOVR.
В общем случае проверка такая (MFPT=5, MR&360 = 20)
20$: MOV #KISDR7+1,R0 ;;;POINT TO KERNEL PDR7
MOVB (R0),(R0) ;;;WRITE THE HIGH BYTE OF THE PDR
BITB #100,-(R0) ;;;DOES IT SHOW WRITTEN?
BNE 60$ ;;; IF NE, YES, WE HAVE AN M11

Иными словами, если запись в бит W не сбрасывает его, то это M11

Далее проверяется MED:
.WORD 076600 ;;; TRY AN MED INSTRUCTION
.WORD 156227 ;;; CHECK FOR N11 PROCESSOR

Если нету, это ни M11 ни N11. Если есть - N11. Далее для M11/N11 проверяется MOVR и TOY.

В ACF проверка более сложная, сейчас буду ковырять как там делается.

Alex_K
15.09.2017, 22:19
А прошивка сначала считает, что это M11, а вот после MED6X (076600 156227) смотрятся биты 8 и 9 регистра R0. Если они равны нулю, то это N11. Кстати по этим битам определяется версия микрокода до запятой. И при нуле она может быть 5 или 6, шестая версия по идее должна иметь FPU.

form
15.09.2017, 22:47
прошивка сначала считает
Прошивке нужно многое знать, а RSXу в принципе интересна модель процессора (она возвращается директивой GTSK$, для M11 будет 95, для N11 - 97) и наличие команды MOVR (если есть выставляется фаг что есть и подпрограмма блочной пересылки патчится на использование команды).

А TOY проверяется так: если есть 177522 на шине, значит ментековского варианта быть не может, в противном случае чистится 177520 чтобы гарантировать маппинг EPROM, а не EEPROM и делается попытка прочитать TOY. К сожалению не на чем проверить важно ли последнее условие или его сделали на всякий случай чтобы не попортить EEPROM (хотя, как писал выше, записи в окно не выполняется даже при записи в TOY).

- - - Добавлено - - -

Да, при том прошивка просто считает, что она работает либо на M11 либо на N11. Я вон ее запустил на 11/83 - не обиделась - M11 говорит :)

Alex_K
15.09.2017, 22:52
Да, при том прошивка просто считает, что она работает либо на M11 либо на N11. Я вон ее запустил на 11/83 - не обиделась - M11 говорит
А она кроме M11 и N11 больше ничего не знает. Сначала при запуске выставляет везде буковку M, а если определила, что это N11, то буковку N.
Кстати, а чем M11 отличается от N11?

form
15.09.2017, 23:04
Кстати, а чем M11 отличается от N11?
Да в сущности тем, что M11 построен на J11, а N11 - эмуляция. Ну и как уже выяснили, у N11 есть команда MED и бит W в PDR сбрасывается при записи в него 1 (а может в принципе при записи чего-нибудь).

- - - Добавлено - - -

Кстати последнее можно проверить. Сейчас тест сделаю.

Alex_K
15.09.2017, 23:18
что M11 построен на J11
Вроде бы на J-11 у Mentec были M70, M71, M80, M90 и M100.

- - - Добавлено - - -


Ну и как уже выяснили, у N11 есть команда MED
Прошивка считает, что это M11, если не команды MED, а также если она есть, но версия микрокода меньше 5.

form
15.09.2017, 23:31
но версия микрокода меньше 5
Ну это как бы понятно: MED есть только при эмуляции DCJ11, но сначала видимо он эмуировался без особых наворотов.

- - - Добавлено - - -

Пока собиралмя писать тест дозрела мысль: запись в бит W непричем (хотя в прошивке при инициализации он в него пишет зачем-то). RSX проверяет просто запись в PDR, не трогая W бита в этот момент, и смотрит сбросился ли W при этом.

Alex_K
15.09.2017, 23:38
По поводу теста:
надо проверить MED6X 156227 какие значения R0 и R1 получаются сначала при R0=0 и R1=0, а затем при R0=177777 и R1=177777;
надо проверить MED6X 156226 какие значения R0 и R1 получаются при R0=177777 и R1=0.

form
16.09.2017, 00:33
Новый тест (http://pdp-11.org.ru/~form/files/pdp-11/mentec/pdrw.sav) в каталоге (http://pdp-11.org.ru/~form/files/pdp-11/mentec/). Проверяет поведение бита W в PDR.

На 11/83 выглядит так:
.RU PDRW
MOVB @#KISDR7,@#KISDR7 ;KISDR7=077406
MOV @#PSW,@#PSW ;KISDR7=077506
MOVB @#KISDR7,@#KISDR7 ;KISDR7=077406
MOV @#PSW,@#PSW ;KISDR7=077506
MOV @#KISAR7,@#KISAR7 ;KISDR7=077406
BIS #100,@#KISDR7 ;KISDR7=077406
BIC #100,@#KISDR7 ;KISDR7=077406

.
Запись как в PAR так и в PDR очищает W.

MiX
17.09.2017, 14:10
На М1 выглядит так:

.PDRW
MOVB @#KISDR7,@#KISDR7 ;KISDR7=077666
MOV @#PSW,@#PSW ;KISDR7=077766
MOVB @#KISDR7,@#KISDR7 ;KISDR7=077666
MOV @#PSW,@#PSW ;KISDR7=0777666
MOV @#KISAR7,@#KISAR7 ;KISDR7=077666
BIS #100,@#KISDR7 ;KISDR7=077666
BIC #100,@#KISDR7 ;KISDR7=077666

form
17.09.2017, 15:34
На М1 выглядит так
Весело. Три обычно неиспользуемых бита всегда установлены, а бит W не работает (ну собственно SAV так и проверяет).

Alex_K
17.09.2017, 16:36
а бит W не работает (ну собственно SAV так и проверяет)
А может он не работает только на странице ввода-вывода?

form
17.09.2017, 17:11
А может он не работает только на странице ввода-вывода?
Может быть.

- - - Добавлено - - -

Но лишние биты (а так же код в прошивке где при инициализации всех страниц бит W (R/O везде) зачем-то пишется) вызывает вопросы.

Alex_K
17.09.2017, 17:13
Но лишние биты (а так же код в прошивке где при инициализации всех страниц бит W (R/O везде) зачем-то пишется) вызывает вопросы.
Чувствуется влияние 1801ВМ3.

MiX
18.09.2017, 11:07
Выложил образ RX23 с RSX.
Мысль такая.
Загрузить через НХ дампом, где после команды G операционка будет уже развёрнута.
В качестве диска, сделать виртуальный VM (если есть такой в RSX).

form
18.09.2017, 11:12
Загрузить через НХ дампом, где после команды G операционка будет уже развёрнута.
Для этого надо готовить специальный образ RSX и самодельные куски программ которые запускаются.

- - - Добавлено - - -


VM (если есть такой в RSX).
Такой есть, нет возможности его сделать со стороны и загрузиться с него потом в силу того, что по логике этот самый диск окажется в числе того, что будет загружаться :)

MiX
18.09.2017, 11:21
нет возможности его сделать со стороны и загрузиться
В RT11 есть команда BOOT VM:. В RSX нет подобной?

- - - Добавлено - - -


Для этого надо готовить специальный образ RSX и самодельные куски программ которые запускаются.
Один раз сделать. :)

form
18.09.2017, 11:22
В RT11 есть команда BOOT VM:. В RSX нет подобной?
В RT-11 грузятся файлы с диска, в RSX грузится все что было в памяти. В данном случае регион в памяти который надо загрузить с диска который находится в этом регионе :)
Поэтому загрузка такая даже не предусмотрена. Вручную конечно что угодно можно сделать, но это ничем не отличается от переделки упомянутой программ для запуска без диска.

MiX
18.09.2017, 11:25
Поэтому загрузка такая даже не предусмотрена.
Тогда НХ сделать основным диском.

form
18.09.2017, 11:27
Один раз сделать.
Один-то один, но переделывать придется программу без исходников, и хотя посмотреть куда для сравнения есть, дело это муторное.
А в чем проблема с флопами возникла?

- - - Добавлено - - -


Тогда НХ сделать основным диском.
Во-первых его нету, во вторых он подразумевает останов функционала системы на время своей работы. RSX не RT, такого не потерпит :)

- - - Добавлено - - -

И даже DD не решение ибо полноценного эмулятора с MRSP нету вроде. Впрочем DD ничем не отличается от прямой заливки образа в память :)

MiX
18.09.2017, 12:23
А в чем проблема с флопами возникла?
Проблема, где расположить всё. Плата М1 стоит в блоке сопряжения где стоит корзина Н9270. Разумеется в таком корпусе нет места не только для дисковода, а вообще не для чего, кроме как корзины.
Был бы корпус а-ля 11/73 вопросов бы не было.

form
18.09.2017, 12:41
Был бы корпус а-ля 11/73 вопросов бы не было.
Ну вроде КЦГД через переходник удавалось подключить - можно так же MY подцепить :)
Попробую в голове конечно оформить вариант с передачей живого образа, но вводить два мега с пульта даже автоматом - то еще удовольствие :)

MiX
18.09.2017, 13:09
Ну вроде КЦГД через переходник удавалось подключить
1)Переходник у меня только один (самодельный), и подключить его можно только к шинам А,Б(А,В) или В,Г(C,D). Чтобы одновременно подключить к А,Б,В,Г(A,B,C,D) нужен ещё один переходник.
Для КЦГД это терпимо, но что-то серьёзное подключать нужно два переходника.
2)Переходники сделаны для ремонта а не для работы. В таком положении платы остаются без обдува, что чревато выгоранием шинных драйверов (может и ещё чего).


можно так же MY подцепить
Зачем?
MY не работают ни DECовскими платами, ни с Эл.60.
Проверено.

form
18.09.2017, 13:18
MY не работают ни DECовскими платами, ни с Эл.60.
А в чем проблема известно?

Patron
18.09.2017, 13:20
вариант с передачей живого образа, но вводить два мега с пульта даже автоматом - то еще удовольствиеЗато сделать ODT-скрипт, загружающий ядро RSX через эмулятор пульта в память голой платы - это круто. Такой скрипт можно использовать в качестве стресс-теста платы. При скорости заполнения через пульт = 10 слов памяти в секунду - загрузка 1024*1024 слов памяти займёт ~ 29 часов. Если использовать что-то вроде UKNC-style Loader и заполнять память со скоростью порта - загрузка 2Мб на скорости 9600 займёт ~ 40 минут.

MiX
18.09.2017, 13:22
А в чем проблема известно?
Криво сделан. Подробнее может рассказать Alex_K.

form
18.09.2017, 13:42
Зато сделать ODT-скрипт, загружающий ядро RSX через эмулятор пульта в память голой платы
Все упирается не в передачу образа RSX, а в необходимости диска пока что. Вечером подумаю над этим вопросом.

MiX
18.09.2017, 14:18
загрузка 2Мб на скорости 9600 займёт ~ 40 минут.
В моём случае, на скорости 38400 займет ~ 10 минут.


но вводить два мега
А с чего он такой жирный? Как тогда загружали (с MY) ВМ3 с 256кб?

form
18.09.2017, 14:25
Как тогда загружали (с MY) ВМ3 с 256кб?
Тогда загружали без образа диска в памяти, а идея была попробовать загрузить с готовым образом. Но наверно лучше эту идею оставить :)

Patron
18.09.2017, 14:57
Но наверно лучше эту идею оставитьЗагрузка через HX реализуется следующим многоступенчатым образом:

1. Из ODT-скрипта вводится короткая программка загрузки 512 байт по адресу 0 и передачи управления.
2. Загружается обычный файл Windows, содержащий первичный загрузчик HX из 512 байт, который загружает вторичный загрузчик RT11 из загружаемого образа.

Ничто не мешает написать полноценный загрузчик образа RSX в память, сохранить его в отдельном файле Windows и загружать/запускать тем же способом, что и файл первичного загрузчика HX.

- - - Добавлено - - -

Для упрощения работы с сервером - можно использовать протокол HX. Тогда надо вставить в первичный загрузчик подпрограмму получения данных с сервера по протоколу HX ( взятую из первичного загрузчика HX ) и монтировать загружаемый образ в привод HX сервера.

form
18.09.2017, 15:01
Ничто не мешает написать полноценный загрузчик образа RSX в память
Еще раз: проблема НЕ в загрузке.
Проблема в том, что на данный момент нужен диск. Полноценный - для работы программ которые требуется запустить.
Вот сейчас пытаюсь придумать как обойти это.

Patron
18.09.2017, 15:03
Проблема в том, что на данный момент нужен диск. Полноценный - для работы программ которые требуется запустить.А чем не подходят диски HX ?

form
18.09.2017, 15:12
А чем не подходят диски HX ?
Во-первых отсутствием драйвера - его придется писать.
Во-вторых тем, что в консольном варианте он блокирует функционал системы. То, что пройдет с RT-11 в RSX вызовет трудности.
В принципе можно сделать вариант с прерываниями на другом порту, но, опять таки все упирается в то, что драйвер надо писать :)

Patron
18.09.2017, 15:32
драйвер надо писатьДрайвер и в будущем может пригодиться, поэтому его создание - более перспективное решение, чем какие-то чисто сиюминутные меры сравнимой сложности.

form
18.09.2017, 15:42
Драйвер и в будущем может пригодиться, поэтому его создание - более перспективное решение, чем какие-то чисто сиюминутные меры сравнимой сложности.
Создать драйвер можно, работающий по прерываниям, но на данном этапе есть более простые решения вопроса.
Для дальнейшего же - нужен пример последнего варианта, работающего по прерываниям.

Patron
18.09.2017, 15:57
нужен пример последнего варианта, работающего по прерываниям.Это: HY.zip (http://emulator.pdp-11.org.ru/misc/HY.zip)

MiX
01.10.2017, 19:15
Открытие "окна" на процессоре 1801ВМ2.

В процессоре есть сигналы WRQ(SP1) и WAKI(SP2), при этом WAKI сидит на земле через шинный драйвер на плате МС1201.02.
В пульте как обычно, на 160000/ отвечает BUS ERROR.
Если на WAKI подать высокий уровень после 160000/ происходит зависание.
Обозначает ли что процессор ждет ответа от другого процессора, или подачи только высокого уровня на WAKI недостаточно для открытия окна?
Нужен ли второй процессор для работы окна?

form
01.10.2017, 19:17
160000/ отвечает BUS ERROR
А кто должен ответить? Есть устройство/память для этого?

MiX
01.10.2017, 19:22
А кто должен ответить? Есть устройство для этого?
Я полагаю ответит тот кто знает. :)

form
01.10.2017, 19:28
Я полагаю ответит тот кто знает.
Я про 160000 :)
Насколько я понял, устройства/памяти в этом месте нету чтобы ответить :)
Если я конечно правильно понял суть вопроса: были вручную выставлены сигналы и ожидается, что нечто (чего нет) от этого ответит по адресу окна.

MiX
01.10.2017, 19:44
Я про 160000
Окно в диапазоне 160000-163777. Пытался открыть получил зависон.


Насколько я понял, устройства/памяти в этом месте нету чтобы ответить
Память до 157777 но это не все 64Кб. Вот окно и даёт ещё 2Кб.



были вручную выставлены сигналы
Только WAKI.


и ожидается, что нечто (чего нет) от этого ответит по адресу окна.
Я и хочу выяснить, достаточно ли для открытия окна.

form
01.10.2017, 19:51
Окно в диапазоне 160000-163777. Пытался открыть получил зависон.
Ну так окно я так понимаю к чему-то обращается, а этого чего-то нет.


Вот окно и даёт ещё 2Кб.
Окно дает отображение на память, но эта память должна еще и существовать чтобы ответить. Теоретически могла бы ответить память/ром HALT режима, но оно скорее всего не отвечает пока не выславлен BHALT.

MiX
01.10.2017, 20:39
но оно скорее всего не отвечает пока не выставлен BHALT.
С HALTом или без, всё равно зависон.


Теоретически могла бы ответить память/ром
Если на сигнал СЕ рома пропустить через "ИЛИ" сигналы SEL и WRQ пойдет?

form
01.10.2017, 20:43
Если на сигнал СЕ рома пропустить через "ИЛИ" сигналы SEL и WRQ пойдет?
Я не в курсе схем и сигналы на память не знаю какие там. Могу только предположить, что при обращении к окну процессор должен выставлять некие сигналы которые говорят, что именно к окну идет обращение, а уже их можно задействовать чтобы выбрать к чему обратиться. Где-то была книжка с кратким описанием ВМок, но сейчас другими делами занимаюсь, позже может загляну в шкаф с книгами.

MiX
01.10.2017, 20:57
Теоретически могла бы ответить память/ром HALT режима
Ром там на 140000, так что не попадает.

Patron
04.10.2017, 14:39
Попытка загрузить DSM-11 в SIMH неожиданно показала, что большинство начальных загрузчиков RK05 не умеют правильно вызывать первичный загрузчик.

Для проверки этой беды сделан специальный тестовый образ RT-11 ( RK05_BOT_TST.DSK (http://emulator.pdp-11.org.ru/misc/RK05_BOT_TST.DSK.zip) ), с таким же первичным загрузчиком, как у DSM-11.

Результаты тестов:

SIMH


.bo/fo rk0:

RT-11SJ (Y) V05.04 G

.SE TT SCOPE

.
Simulation stopped, PC: 151634 (RTI)
sim> boot rk0

?BOOT-U-YOU CAN'T BOOT RK05 THIS WAY





ДВК-2


.BO/FO RK0:

RT-11SJ (Y) V05.04 G

.SE TT SCOPE

. 117670
@B
$RK0
001040
@G
?BOOT-U-YOU CAN'T BOOT RK05 THIS WAY




ДВК-3


.BO/FO RK0:

RT-11SJ (Y) V05.04 G

.SE TT SCOPE

.
@150122
@Boot: DK0

?BOOT-U-YOU CAN'T BOOT RK05 THIS WAY




СМ-1420


000000
?DK0
?BOOT-U-YOU CAN'T BOOT RK05 THIS WAY




Е-100/25


000000 000000 000000 000000
$DK0
?BOOT-U-YOU CAN'T BOOT RK05 THIS WAY

form
04.10.2017, 14:42
загрузить DSM-11 в SIMH
Главное не забывать, что 11/53, 11/73, 11/83, 11/93, 11/23 автоматом означает неработоспособность RK05 в принципе если памяти больше 64Kb (256 если SimH в этом вопросе плюнул на точность эмуляции).

Patron
04.10.2017, 15:04
Главное не забывать, что 11/53, 11/73, 11/83, 11/93, 11/23 автоматом означает неработоспособность RK05 в принципе если памяти больше 64KbПредлагаемый тест - официальный первичный загрузчик DEC для RK05, используемый в дистрибутиве DSM-11 v3.3 при установке на диск RK05.

- - - Добавлено - - -

В тесте рекомендуемым DEC способом загружается ОС RT-11, которая обязана нормально грузиться с RK05 на всех компьютерах с памятью 64Кб.

form
04.10.2017, 15:14
официальный первичный загрузчик DEC для RK05
Так официально RK05 на Q-Bus поддерживает только 64Kb памяти. И даже если SimH на это плюнет, то все-равно выше 256 не прыгнуть. Поэтому как минимум для начала надо понять какой проц выставлен в эмуляции (SimH по умолчанию собственно запрещает устройства там где они не к месту).


которая обязана нормально грузиться с RK05 на всех компьютерах с памятью 64Кб.
Зависит от варианта RT-11. У XM могут быть проблемы (несмотря на то, что сама по себе система не использует верхнюю память).

Patron
04.10.2017, 15:20
Зависит от варианта RT-11. У XM могут быть проблемы (несмотря на то, что сама по себе система не использует верхнюю память).В тесте грузится RT-11SJ - никаких проблем при загрузке ни на одном DEC-совместимом компьютере быть не должно.

form
04.10.2017, 15:25
В тесте грузится RT-11SJ - никаких проблем при загрузке ни на одном DEC-совместимом компьютере быть не должно.
Тем не менее про проц вопрос остался открытым :)
А что до загрузчика - надо просто смотреть его - он может быть завязан на поведение UNIBUSного контроллера или самого DSM на момент загрузки, а то и вовсе на наличие UNIBUS mapping (хоть и не нужен он аппаратному загрузчику) если он предназначен для загрузки DSM. У DEC полно таких нюансов: например BOO/FOR из RT-11 не сможет загрузить RSX-11 (как минимум M+) с DU без переделок, в свою очередь добавленный в RSX-11M+ функционал аппаратной загрузки не сможет загрузить в принципе ни одну DECовскую систему кроме самого RSX.

Patron
04.10.2017, 15:36
А что до загрузчика - надо просто смотреть егоДанный тестовый первичный загрузчик для RT-11 я написал. Оказывается, первичный загрузчик RK05 из DSM-11 - единственный среди всех первичных загрузчиков RK05 DEC рассчитывает на то, что DEC-совместимый начальный загрузчик RK05 передаёт ему в R1 правильное значение CSR загружаемого устройства.

Как выяснилось - реальные начальные загрузчики RK05 передают в R1 первичному загрузчику RK05 всякий мусор, что совершенно явно не DEC-совместимо.

Предлагаемый тест именно это и проверяет - DEC-совместимость начального загрузчика RK05.

- - - Добавлено - - -


он может быть завязан на поведение UNIBUSного контроллера или самого DSM на момент загрузки, а то и вовсе на наличие UNIBUS mapping (хоть и не нужен он аппаратному загрузчику) если он предназначен для загрузки DSMЕсли внимательнее посмотреть на скрины тестовых прогонов - хорошо заметно, что сначала один и тот же образ RK05 успешно загружается командой BO/FO RK0: и сразу после этого не может быть загружен тестируемыми начальными загрузчиками. Разница лишь в том, что начальный загрузчик из DUP.SAV является DEC-совместимым, а все остальные - НЕТ.

form
04.10.2017, 15:38
передаёт ему в R1 правильное значение CSR загружаемого устройства
Ну это может быть. У DEC все аппаратные загрузчики его передают. А сами загрузчики систем могут и не использовать это (равно как многие [если не большинство] не используют R0 для определения unit - для чего и просил, чтобы booter оставлял "следы" своей деятельности).

Patron
04.10.2017, 15:47
Ну это может быть. У DEC все аппаратные загрузчики его передают.Об том и речь - среди всех ОС DEC значение из R1 использует только DSM-11, поэтому авторы ПЗУ-загрузчиков расслабились и напороли муры. Меня особенно убило, что ни СМ-1420, ни Е-100/25 не способны нормально загрузить RK05. Чтобы сделать загрузку с RK05 в SIMH полноценной - пришлось править исходник SIMH и перекомпилировать, иначе было невозможно загрузить DSM-11 c RK05 в SIMH ни в одной конфигурации.

Интересно, как с этим делом у других эмуляторов, предлагающих загрузку с RK05..

form
04.10.2017, 15:51
СМ-1420, ни Е-100/25 не способны нормально загрузить RK05
Вроде и там и там в R1 передается CSR. И уж во всяком случае всегда отлично грузилось все (ну DSM не пробовал).

- - - Добавлено - - -


у других эмуляторов, предлагающих загрузку с RK05
E11 до сих пор грузил все что подсоввывал (н DSM опять таки не пробовал - надо проверить). В том числе там где R0 не используется загрузчиком системы.

Patron
04.10.2017, 15:56
И уж во всяком случае всегда отлично грузилось все (ну DSM не пробовал).С точки зрения первичного загрузчика - предлагаемый тестовый образ и есть "DSM-11 Light". ПЗУ-загрузчики из файлов SM1420.rom и E100_*.rom не смогли его загрузить.



E11 до сих пор грузил все что подсоввывал (DSM опять таки не пробовал - надо проверить).Думаю - не сможет.

form
04.10.2017, 15:58
Думаю - не сможет.
А чего гадать - надо просто взять и попробовать. Пока у E11 самый лучший загрузчик "без загрузчика" был.

Patron
04.10.2017, 16:01
А чего гадать - надо просто взять и попробовать.Тестовый образ ( RK05_BOT_TST.DSK (http://emulator.pdp-11.org.ru/misc/RK05_BOT_TST.DSK.zip) ) был в исходном сообщении.

form
04.10.2017, 16:17
Тестовый образ ( RK05_BOT_TST.DSK ) был в исходном сообщении.
Конкретно тестовый не загрузился (там загрузчик интересный - ждет, что CSR будет нестандартным [177400 вместо DECовского 177404]). А вот родной RT-11 V5.4 грузится на ура.

- - - Добавлено - - -


CSR будет нестандартным [177400 вместо DECовского 177404])
Кстати именно поэтому не грузится и прошивками - они по-DECовски пишут 177404.

Patron
04.10.2017, 16:19
Конкретно тестовый не загрузился (там загрузчик интересный - ждет, что CSR будет нестандартным [177400 вместо DECовского 177404]).Если бы так.

На самом деле - стандартное значение CSR RK05 как раз 177400 и именно поэтому тестовый образ без проблем грузится командой BO/FO RK0:

Похоже дело в том, что ни одна операционка в мире, кроме DSM-11, не использует в первичном загрузчике RK05 правильное передаваемое значение CSR. DUP.SAV передаёт правильное значение, поэтому DSM-11 ( как и предлагаемый тестовый диск ) можно без проблем загрузить с RK05 командой BO/FO RK0:

form
04.10.2017, 16:22
Проверка на 11/83:
Type a command then press the RETURN key: B DK


Trying DK0

Message 14
Non existent controller, address 17777404

Commands are Help, Boot, List, Setup, Map and Test.
Type a command then press the RETURN key:
Тут тоже DECовский вариант (удивительно! :D).

- - - Добавлено - - -


Если бы так.
Именно так. Взял, сделал B/HALT, записал 177400 в R1 и загрузился тестовый образ.

- - - Добавлено - - -


На самом деле - стандартное значение CSR RK05 как раз 177400
На самом деле именно 177404 стандартное значение CSR. 177400 - начало регистров. Аппаратные загрузчики DEC все используют 177404.

- - - Добавлено - - -

А что вообще там за загрузчик? (чтобы вверх не читать) - он явно не RTшный.
RT-11 V5.4, как уже написал, отлично грузится без всяких бубнов.

Patron
04.10.2017, 16:24
Кстати именно поэтому не грузится и прошивками - они по-DECовски пишут 177404.Об том и речь - это ОШИБОЧНОЕ поведение, не являющееся DEC-совместимым.

form
04.10.2017, 16:26
DEC-совместимым
177404 как раз именно _DEC-совместимый_, что и показал на примере _DEC_овского загрузчика.
Я только не понял откуда этот загрузчик в принципе взялся у RT-11 V5.4G - это не его загрузчик явно.

Patron
04.10.2017, 16:29
На самом деле именно 177404 стандартное значение CSR. 177400 - начало регистров. Аппаратные загрузчики DEC все используют 177404.Как тогда получается, что DUP.SAV может загрузить тестовый диск командой BO/FO RK0: - ведь для этого он должен передать в R1 правильное значение CSR.

- - - Добавлено - - -


Я только не понял откуда этот загрузчик в принципе взялся у RT-11 V5.4G - это не его загрузчик явно.Конечно. Чтобы не отвлекаться на DSM-11 я в тестовых целях просто переделал драйвер RK.SYS из RT-11 в стиле DSM-11.

form
04.10.2017, 16:33
DUP.SAV может загрузить тестовый диск командой BO/FO RK0
DUP может туда писать драйверный CSR который как раз считается 177400. Но DUP и не ориентирован на зругие системы по сути даже с /FOR.

- - - Добавлено - - -


Чтобы не отвлекаться на DSM-11 я в тестовых целях просто переделал драйвер RK.SYS из RT-11 в стиле DSM-11.
Ну может фича какая в DSM. Не даром ошибка получается не ошибка загрузки, а "нельзя загрузить таким способом". Может это фича какая чтобы не грузили на "неправильных машинах" - как к примеру в P/OS специально не переносили некоторый функционал из M+...

Patron
04.10.2017, 16:38
DUP может туда писать драйверный CSR который как раз считается 177400.Это прямо указывает на то, что если бы какая-то операционка ( кроме DSM-11 ) использовала значение R1 при загрузке с RK05 - загрузить такую операционку при помощи DUP.SAV было бы НЕВОЗМОЖНО. Но DUP.SAV одинаково успешно грузит ВСЕ операционки с RK05 - и DSM-11, и все остальные.

Следовательно, НИ ОДНА ОПЕРАЦИОНКА В МИРЕ ( кроме DSM-11 ) не требует наличия в R1 правильного значения CSR при вызове первичного загрузчика, поэтому глобальная ошибка большого количества прошивок DEC при загрузке RK05 была выяснена только сейчас.

- - - Добавлено - - -


Ну может фича какая в DSM. Не даром ошибка получается не ошибка загрузки, а "нельзя загрузить таким способом".Это тестовое сообщение. Реальный загрузчик DSM-11 просто молча зависает.

form
04.10.2017, 16:44
Но DUP.SAV одинаково успешно грузит ВСЕ операционки с RK05 - и DSM-11, и все остальные.
Потому что почти все системы просто игнорируют CSR, передаваемый в R1, потому и грузит.

- - - Добавлено - - -


не требует наличия в R1 правильного
Не требует. RT-11 использует фиксированный CSR, RSX-11 использует записанный при сохранении/указанный при загрузке CSR.
Про остальные особо не знаю.

- - - Добавлено - - -


правильного
правильный, как уже сказано, 177404 - именно он указан во всех до единого примерах загрузчиков, в документауции, и именно он передается всеми до единого DECовскими аппаратными загрузчиками

- - - Добавлено - - -

Скорее всего это фича DSM, чтобы к нему еще и свой загрузчик был, а родным не грузилось.

Patron
04.10.2017, 16:49
правильный, как уже сказано, 177404 - именно он указан во всех до единого примерах загрузчиков и именно он передается всеми до единого DECовскими аппаратными загрузчикамиВыясненный факт совершенно однозначно ДОКАЗЫВАЕТ, что правильный CSR именно 177400.

Ни одна операционка DEC не использует значение из R1 при загрузке с RK05, а единственная, которая использует - требует передачи там ПРАВИЛЬНОГО значения 177400.

Поэтому, можно совершенно однозначно утверждать, что все программы, передающие в R1 значение 177404 при загрузке с RK05 не являются DEC-совместимыми.

- - - Добавлено - - -


Скорее всего это фича DSM, чтобы к нему еще и свой загрузчик был, а родным не грузилось.А передача этого значения в R1 при загрузке через DUP - это фича DEC, чтобы DUP не мог загрузить с RK05 ни одну операционку, кроме DSM-11.

form
04.10.2017, 16:54
Выясненный факт совершенно однозначно ДОКАЗЫВАЕТ, что правильный CSR именно 177400.
Не дказывает ибо, как уже каазано, это единственный пример, и он противоречит ВСЕЙ DECовской документации.


передающие в R1 значение 177404 при загрузке с RK05 не являются DEC-совместимыми.
Является. По причине того, что ВСЕ DECовские загрузчики так поступают. ВСЕ до единого. И во всей документации именно так.
В противном случае придется признать: ВСЕ до единого _DEC_овские загрузчики не DEC-совместимы.

- - - Добавлено - - -

И, кстати, аналогичная ситуация по-моему и с RP02/RP03, RH. Там CSR - это именно CSR, а не начало регистров.

Patron
04.10.2017, 16:56
В противном случае придется признать: ВСЕ до единого _DEC_овские загрузчике не DEC-совместимы.Именно так и есть. Если спокойно подумать - факт загрузки DSM-11 через DUP доказывает это совершенно однозначно. DUP передаёт 177400 абсолютно всем загружаемым операционкам DEC и абсолютно все операционки DEC при этом загружаются.

Если же передавать в R1 произвольное значение ( хоть 177404, хоть любой другой мусор ) - загружаются все операционки DEC, кроме DSM-11.

AFZ
04.10.2017, 17:01
Скорее всего это фича DSM, чтобы к нему еще и свой загрузчик был, а родным не грузилось. Думаю, проще: они один раз внимательно прочитали спецификацию к одному из первых RK05, точно по ней написали драйвер, а потом благополучно обо всем забыли. ДИАМС ведь - это свой отдельный мир, таких низменных понятий, как РКС или прочие регистры в нем просто нет. :)

А, кстати, люди, откуда у вас взялся DSM-11 ? Может это что-то, чего нет у меня?

form
04.10.2017, 17:02
факт загрузки DSM-11 через DUP доказывает
Доказывает только то, что DUP предусматривает загрузку быть может именно DSM. Как уже писал выше, загрузку других DECовских систем он может и не делать.


Если же передавать в R1 произвольное значение ( хоть 177404, хоть любой другой мусор ) - загружаются все операционки DEC, кроме DSM-11.
Из чего можно сделать вывод, что для DSM-11 специально требовалось покупать аппаратный загрузчик - обычная практика для DEC - сделать _конеретную систему_ (а не все остальные кроме нее) несовместимой.

Patron
04.10.2017, 17:09
откуда у вас взялся DSM-11 ?Сгенерил варианты DSM-11 для всех устройств SIMH, загрузившись с ранее выложенного образа дистрибутивной ленты DSM-11 v3.3: dsm_image (http://zx-pk.ru/attachment.php?attachmentid=56916&d=1461131631).

Подозреваю, что до сегодняшнего дня я был единственным в мире обладателем загрузочного образа RK05 с DSM-11, поэтому глобальная ошибка дековцев с ПЗУ-загрузчиками RK05 не удивительна - DSM-11 никто не грузил с RK05 со времён PDP-11/34, а все остальные операционки не используют значение из R1 при загрузке с RK05.

form
04.10.2017, 17:11
И, кстати, у нас пока нет гарантии, что это родной загрузчик DSM :)
Может быть он как раз переделан с подобной же целью - у нас такого тоже хватало (пример - советские варианты TSX).

- - - Добавлено - - -


со времён PDP-11/34
У которого загрузчик согласно DECовским правилам пишет 177404 :)

Patron
04.10.2017, 17:13
Из чего можно сделать вывод, что для DSM-11 специально требовалось покупать аппаратный загрузчик.Или грузить через DUP. Подозреваю, что в те годы, когда дековцы разрабатывали свою единственную операционную систему, использующую значение из R1 при загрузке c RK05 - их ПЗУ-загрузчики вели себя более DEC-совместимым образом.

- - - Добавлено - - -


И, кстати, у нас пока нет гарантии, что это родной загрузчик DSMТогда бы его DUP не грузил.

form
04.10.2017, 17:14
Тогда бы его DUP не грузил.
Не обязательно. Родной мог просто не использовать R1 как все остальные системы.

- - - Добавлено - - -


Или грузить через DUP.
Не стоит забывать, что в то время когда DSM появился, у RT-11 вероятно еще не было опции /FOREIGN (которая в первую очередь появилась для того, чтобы грузить RT-11 старых версий). Надо год смотреть.

Patron
04.10.2017, 17:20
Родной мог просто не использовать R1 как все остальные системы.Сильно сомневаюсь - там правильное начальное значение CSR из R1 запоминается при входе в загрузчик и используется в основном драйвере DSM-11 как база доступа к регистрам RK05.

DSM-11 - единственная операционка DEC, которая требует передачи правильного значения в R1 при загрузке с RK05 и "не может без этого жить".

form
04.10.2017, 17:23
требует передачи
Из чего можно заключить, что она изначально готовилась так, чтобы не работать со стандартными загрузчиками DEC.

- - - Добавлено - - -

И кстати насчет всех DEC систем тоже не стоит пока говорить: не все попробовали пока.

Patron
04.10.2017, 17:23
Не стоит забывать, что в то время когда DSM появился, у RT-11 вероятно еще не было опции /FOREIGN (которая в первую очередь появилась для того, чтобы грузить RT-11 старых версий). Надо год смотреть.Об том и речь. Никогда не поверю, что дековцы, разрабатывая свою единственную операционку, использующую значение из R1 при загрузке с RK05 - сделали её неправильно и поэтому она никогда не могла быть загружена, в отличие от всех остальных операционок DEC, которые с одинаковой радостью принимают в R1 любой мусор ( включая и 177404 ).

form
04.10.2017, 17:26
Надо искать тех, кто с DSM работал в те годы, чтобы рассказали что и как...

- - - Добавлено - - -


сделали её неправильно
Не неправильно, а умышленно несовместимо. Прецеденты есть. Это разные вещи.

Patron
04.10.2017, 17:26
не все попробовали пока.Дело в том, что хотя DSM-11 с RK05 давным-давно никто не грузил, но загрузка всех операционок DEC при помощи DUP - наверняка тестировалась строго. Трудно поверить, что есть такая операционка DEC, которой DUP передаёт НЕПРАВИЛЬНОЕ значение в R1, из-за которого та не может загрузиться - и дековцы спокойно на это смотрят.

form
04.10.2017, 17:31
Дело в том, что хотя DSM-11 с RK05 давным-давно никто не грузил, но загрузка всех операционок DEC при помощи DUP - наверняка тестировалась строго.
Как насчет RSX который куда как популярнее DSM?
Где строгое тестирование?
Обратное не говорю - это уже времена Mentec.

Patron
04.10.2017, 17:34
Как насчет RSX который куда как популярнее DSM?Т.е. RSX нельзя загрузить с RK05 командой: BO/FO RK0:

form
04.10.2017, 17:36
Т.е. RSX нельзя загрузить с RK05 командой BO/FO RK0:
С RK05 можно. С DU нельзя (было бы вероятно и с RH нельзя, но он в RT-11 не поддерживается).

Patron
04.10.2017, 17:39
С RK можно.Значит, при загрузке с RK05 - DUP передаёт в R1 единственное значение, позволяющее загрузить абсолютно любую операционку DEC, тогда как любое другое значение в R1 позволяет загрузить с RK05 только те операционки, которые это значение не используют.

form
04.10.2017, 17:42
А вот еще пример (уже из RT-11). Как насчет загрузки с ленты если есть в наличии несколько контроллеров разного типа? Ответ в исходниках MSBOOT/MBOOT - возможна ситуация когда загрузка просто не будет работать. В принципе.

- - - Добавлено - - -


абсолютно любую
Пока рано утверждать. Вряд-ли были попробованы все операционки. Хотя скорее всего никто R1 не использует, но тем не менее даже те, что в наличии еще не все опробованы.

- - - Добавлено - - -


Значит, при загрузке с RK05 - DUP передаёт в R1 единственное значение
Из написанного - не значит. RSX так же не использует R1, а с DU не грузится совсем по другой причине: способ которым грузит BOOT/FOR заставляет его думать, что загрузка не выполнялась с DU.

Patron
04.10.2017, 17:48
скорее всего никто R1 не использует, но тем не менее даже те, что в наличии еще не все опробованыСлишком старое устройство RK05. Что-то сильно старше XXDP и DOS-11 вряд ли даже драйвер для него имеет. Если найдётся дековский ровесник DSM-11, не способный загрузиться с RK05 при 177400 в R1 - значит дековцы намудрили с DSM-11. Но если нет - значит обнаружена глобальная ошибка DEC в требованиях к начальному загрузчику RK05.

form
04.10.2017, 17:55
Слишком старое устройство RK05. Что-то сильно старше XXDP и DOS-11 вряд ли даже драйвер для него имеет.
Подозреваю, что система где нет поддержки RK05 просто в принципе еще не умела грузиться с диска :)
Но RK05 остался поддерживаемым до самого конца всеми системами. Некоторые другие устройства бросили, а его оставили.

- - - Добавлено - - -


глобальная ошибка
Или как написал уже - требовался отдельно покупаемый загрузчик. В стиле DEC. Ибо ни одного родного загрузчика RK05 на самых старых машинах не было который бы передавал 177400 в R1.

Hunta
04.10.2017, 18:08
CSR - Command & State Register, русский вариант РКС (регистр команд и состояний) у RK05 именно 177404. 177400 - это Drive Status Register или RKDS

- - - Добавлено - - -


DOS-11 вряд ли даже драйвер для него имеет
Ещё как имеет

- - - Добавлено - - -

Я начинал работать на компах с СМ-4 с дисками RK05 (советский аналог) и у нас стояла тогда именно DOS-11/Batch, насколько помню, девятой версии

- - - Добавлено - - -

И в сети легко найти диски RK05 с DOS-11

form
04.10.2017, 18:11
И в сети легко найти диски RK05 с DOS-11
В частности, у меня на сайте или в китах simh :)

Patron
04.10.2017, 18:15
ни одного родного загрузчика RK05 на самых старых машинах не было который бы передавал 177400 в R1Как и ни одной операционки DEC, которая бы не загружалась при 177400 в R1, но одна - которая не загружается при мусоре в R1.

- - - Добавлено - - -


Ещё как имеетКак это противоречит оригинальному сообщению:


Что-то сильно старше XXDP и DOS-11 вряд ли даже драйвер для него имеет.

Hunta
04.10.2017, 18:18
К сожалению, значительной части исходных текстов нет, придётся начальный загрузчик выдирать из диска и дизассемблить...

DEC-11-MW2C-UC -- 11/15/71 -- DOS SYSTEM TAPE V004A (RK11/RK03 HIGH DENSITY)

- - - Добавлено - - -


DOS-11 вряд ли даже драйвер для него имеет
DOS-11 имеет драйвер для RK05 - вот как противоречит

Patron
04.10.2017, 18:20
DOS-11 имеет драйвер для RK05 - вот как противоречитИменно это и утверждается в исходном сообщении ( если прочитать целиком ).

Hunta
04.10.2017, 18:21
Учитывая, что DEC-овские загрузчики передают адрес CSR устройства загрузки, учитывая, что CSR у RK11 (кстати, а не у RK05) 177404 (читайте документацию), учитывая, что DSM-11 - НЕ DEC-ОВСКАЯ система - это особенность поведения именно DSM-11, а не стандартного загрузчика RK11

Patron
04.10.2017, 18:22
К сожалению, значительной части исходных текстов нет, придётся начальный загрузчик выдирать из диска и дизассемблить...Или просто загрузить DOS-11 в SIMH при помощи DUP:



.bo/fo rk0:

DOS/BATCH V10-01A
DATE:
WRONG DATE DD-MMM-YY
DATE:

Hunta
04.10.2017, 18:22
Слишком старое устройство RK05. Что-то сильно старше XXDP и DOS-11 вряд ли даже драйвер для него имеет.

вряд ли даже драйвер для него имеет -> то есть драйвера нет

form
04.10.2017, 18:23
Как и ни одной операционки DEC, которая бы не загружалась при 177400 в R1
Это не показатель: просто ни одна система не использует R1 (у DEC к слову полно ссылок на такие случаи вроде "не используется софтом DEC").

Hunta
04.10.2017, 18:25
Ещё мысль. Когда нужен адрес CSR загрузчику. Когда несколько контроллеров, что бы понять, на каком контроллере висит устройство. Если контроллер всего один - и система ориентируется на этом - ей, строго говоря - наплевать на адрес CSR. RK11 действительно очень старое устройство и видимо ставилось по принципу - один контроллер на комп - и поэтому родные системы DEC могли просто игнорировать адрес CSR, и использовать значение по умолчанию

Patron
04.10.2017, 18:29
учитывая, что DSM-11 - НЕ DEC-ОВСКАЯ системаЗначит, меня ввели в заблуждение исходники DSM-11:



BACKUP ;DSM11 UTILITIES; COPYRIGHT 1980 DEC
START U 0 K S $ZT="UNEX^BACKUP"


- - - Добавлено - - -


Слишком старое устройство RK05. Что-то сильно старше XXDP и DOS-11 вряд ли даже драйвер для него имеет.

вряд ли даже драйвер для него имеет -> то есть драйвера нетЧто-то, сделанное сильно позже XXDP и DOS-11 - вряд ли даже драйвер для него имеет.

Так понятнее?

form
04.10.2017, 18:29
игнорировать адрес CSR
Вроде в принципе все до единой DEC системы игнорируют CSR в R1. Адрес CSR всегда прописан в самом аппаратном загрузчике диска.

Hunta
04.10.2017, 18:31
Нет, ошибся, DSM-11 - это реализация MUMPS от DEC

1970s

By the early 1970s, there were many and varied implementations of MUMPS on a range of hardware platforms. The most widespread was DEC's MUMPS-11 on the PDP-11, and MEDITECH's MIIS. In 1972, many MUMPS users attended a conference which standardized the then-fractured language, and created the MUMPS Users Group and MUMPS Development Committee (MDC) to do so. These efforts proved successful; a standard was complete by 1974, and was approved, on September 15, 1977, as ANSI standard, X11.1-1977. At about the same time DEC launched DSM-11 (Digital Standard MUMPS) for the PDP-11. This quickly dominated the market, and became the reference implementation of the time. Also, InterSystems sold ISM-11 for the PDP-11 (which was identical to DSM-11).

- - - Добавлено - - -



Что-то, сделанное сильно позже XXDP и DOS-11 - вряд ли даже драйвер для него имеет.

Так понятнее?

Так, понятнее, только и с этим проблемы. RSX сделано сильно позже RK11 - а драйвер имеет.

form
04.10.2017, 18:31
Что-то, сделанное сильно позже XXDP и DOS-11 - вряд ли даже драйвер для него имеет.

Так понятнее?
Понятнее, но неправильно. Напротив, как писал выше, все до единой системы которые шли до последнего, до самого последнего дня не только имели драйвер RK05, но и поддерживали его. Тогда как другие старые устройства выкидывались. Живой пример тому тот же RT-11.

Patron
04.10.2017, 18:32
Это не показатель: просто ни одна система не использует R1 (у DEC к слову полно ссылок на такие случаи вроде "не используется софтом DEC").По счастью - у нас есть одна операционка DEC, использующая значение R1 при загрузке с RK, поэтому есть простой способ определить, какое именно значение в R1 является DEC-совместимым.

form
04.10.2017, 18:34
есть простой способ определить, какое именно значение в R1 является DEC-совместимым.
А именно сказать, что все, что делал DEC (в частности во времена создания этой самой операционки) не-DECсовместимо, а только DUP из RT-11 (согласно слов выше, сделанный тогда когда про RK05 в принципе забыли) прав ;)

Patron
04.10.2017, 18:37
RSX сделано сильно позже RK11 - а драйвер имеет.А XXDP v2.5, выпущенная в 1989 г. - не имеет драйвера DK.

- - - Добавлено - - -


А именно сказать, что все, что делал DEC не-DECсовместимо, а только DUP из RT-11 (согласно слов выше, сделанный тогда когда про RK05 в принципе забыли) правВсе операционки DEC, ожидающее передачу в R1 адреса CSR - используют правильное значение 177400. Все загрузчики DEC, кроме DUP - передают в R1 неправильное значение. Поэтому ошибочный софт DEC загружает с RK только те операционки, которые игнорируют мусор в R1.

Hunta
04.10.2017, 18:42
При написании DSM-11 была сделана ошибка и использовали не то значение для CSR RK11. Когда обнаружили - было решено объявить это фичей.
Попробуйте опровергнуть это утверждение

form
04.10.2017, 18:48
Все загрузчики DEC, кроме DUP
DUP не передает правильное или неправильное значение. Он передает значение из DRDEF, а оно в RT-11 если не ошибаюсь всегда совпадает с первым регистром. Тогда как в других системах такого принципа нет. В том же RSX например CSR пишется правильно: 177404, в RSTS/E если не ошибаюсь, тоже.

Patron
04.10.2017, 18:51
При написании DSM-11 была сделана ошибка и использовали не то значение для CSR RK11. Когда обнаружили - было решено объявить это фичей.
Попробуйте опровергнуть это утверждениеЭто утверждение не требует опровержения, потому что все операционки DEC, ожидающее передачу в R1 адреса CSR - загружаются исключительно и только при передаче значения 177400.

- - - Добавлено - - -


DUP не передает правильное или неправильное значение.Имеется в виду, что по счастливой случайности DUP не передаёт при загрузке с RK такой же мусор в R1, как весь остальной загрузочный софт DEC.

Hunta
04.10.2017, 18:52
Перечислите, пожалуйста, список этих

все операционки DEC
всех операционок.

Patron
04.10.2017, 18:56
Перечислите, пожалуйста, список этих всех операционок.Список всех известных операционок DEC, не игнорирующих мусор в R1 при загрузке с RK и поэтому требующих при загрузке передачи в R1 правильного значения CSR - выглядит пока так:

1. DSM-11

Hunta
04.10.2017, 19:00
Вот когда найдёте хотя бы ещё одну операционку DEC, которая не загрузится без 177400 в качестве адреса "CSR" в R1 - тогда это и будет правильным вариантом. А пока - это фича DSM-11

- - - Добавлено - - -

Если же Вы возьмёте и почитаете документацию на RK11 (благо в инете найти это можно) то увидите, что в качестве CSR в RK11 выступает адрес (по умолчанию) 177404

form
04.10.2017, 19:00
Кстати, раз уж тут упоминался XXDP, но уж он-то (старый) знает? Поверим ему?
E11>MOU DL XXDP.RL
E11>MOU DK RK05
E11>B DL


CHMDLD0 XXDP+ DL MONITOR
BOOTED VIA UNIT 0
28K UNIBUS SYSTEM

ENTER DATE (DD-MMM-YY):

RESTART ADDR: 152010
THIS IS XXDP+. TYPE "H" OR "H/L" FOR HELP.

.R UPD1
UPD1 .BIN

CHUP1B0 XXDP+ UPD1 UTILITY
RESTART: 002650

*BOOT DK0:

%HALT
R0/000000 R1/177404 R2/002070 R3/001000 CM=K PM=K PRIO=7
R4/014756 R5/002114 SP/006156 PC/000002 N=0 Z=1 V=0 C=0
000002 halt
E11>

Или добавим к списку там где у DEC ошибка? ;)

Hunta
04.10.2017, 19:02
Ты что - это ошибка в E-11 ;)

form
04.10.2017, 19:03
это ошибка в E-11
Тогда уж в виндовсе - из виндовса же запускал :)

Patron
04.10.2017, 19:03
Вот когда найдёте хотя бы ещё одну операционку DEC, которая не загрузится без 177400 в качестве адреса "CSR" в R1 - тогда это и будет правильным вариантом. А пока - это фича DSM-11Наоборот - как только отыщется хотя бы одна операционка DEC, которая не рассматривает любое значение R1, отличное от 177400, в качестве мусора, который нужно игнорировать - только тогда правильность передачи в R1 значения CSR 177400 - будет поставлена под сомнение.

А до тех порт глючный загрузочный софт DEC просто сыпет мусор в R1, который или игнорируется загружаемыми операционками, или приводит к их зависанию при загрузке.

Hunta
04.10.2017, 19:09
Точняк! :)

- - - Добавлено - - -


глючный загрузочный софт DEC
заодно вместе с XXDP

- - - Добавлено - - -

Кстати, если DUP действительно берёт адрес из DRDEF, а там прописан адрес именно первого регистра - то это ошибка в DUP :)

Patron
04.10.2017, 19:09
заодно вместе с XXDPВ смысле?

Содержимое R1 при загрузке с RK не проверяется XXDP:



.bo/fo rk:

DZQUD-E 21-JUL-76 RKDP - XXDP RK11 MONITOR 28K
RESTART ADDR:152522
BOOTED VIA UNIT#: 0

Hunta
04.10.2017, 19:11
%HALT
R0/000000 R1/177404 R2/002070 R3/001000 CM=K PM=K PRIO=7
R4/014756 R5/002114 SP/006156 PC/000002 N=0 Z=1 V=0 C=0
000002 halt
E11>

form
04.10.2017, 19:11
В смысле?
Всмысле выше показал как происходит загрузка из XXDP: он помещает в R1 значение CSR (то есть 177404). Или софт времен RK05 "тщательно не проверяли" в отличие от более позднего RT-11 V4? :)

Patron
04.10.2017, 19:13
Кстати, если DUP действительно берёт адрес из DRDEF, а там прописан адрес именно первого регистра - то это ошибка в DUPИ при этом - передача любого другого значения CSR в R1 - приводит к зависанию при загрузке всех операционных систем DEC, которые используют при загрузке с RK адрес CSR из R1.

- - - Добавлено - - -


Всмысле выше показал как происходит загрузка из XXDP: он помещает в R1 значение CSR (то есть 177404).Ошибочное поведение - так невозможно загрузить ни одну операционку DEC, использующую значение из R1.

Hunta
04.10.2017, 19:35
То есть DSM-11

- - - Добавлено - - -



dkboot: ; DK: boot, continued
ror r2 ;(finish getting unit in <15:13>)
ror r2
ror r2
add #dkda,r1 ;point at disk addr
mov r2,(r1) ;set unit, C/H/S=0/0/0
clr -(r1) ;bus addr = 0
.assume dkba eq dkda-2
mov #-<1000/2>,-(r1) ;word count for one block
.assume dkwc eq dkba-2
mov #dkrdd!dkgo,-(r1) ;start command
.assume dkcs eq dkwc-2
10$: tstb (r1) ;wait for completion
bpl 10$ ;(ignore errors, will be obvious)
clr pc ;drop into boot block



add #dlmp,r1 ;point at multi-purpose reg
mov #-<1000/2>,(r1) ;word count = 1 block
clr -(r1) ;disk addr = 0/0/0
.assume dlda eq dlmp-2
clr -(r1) ;bus addr = 0
.assume dlba eq dlda-2
add #dlrdd-dlsek,r2 ;change cmd to "read"
mov r2,-(r1) ;start cmd
.assume dlcs eq dlba-2
50$: bit #dlerr!dlrdy,(r1) ;wait for error or success
beq 50$
bmi 60$ ;error
.assume dlerr eq 100000
clr pc ;happy, drop into boot block
60$: ; error of some kind, just give up
halt



go1: mov #dm$csr,r1 ;R1 points at base CSR
mov pc,r4 ;must point 20 bytes past signature
.assume . eq 20
mov #dmrdd!dmgo,r2 ;"read" command, as RK06 first time through
10$: ; read block 0, R2 contains "read" command including CDT bit
mov #dmerr,(r1) ;controller clear
;;; need to select drive first?
clr dmdc(r1) ;desired cyl = 0
add #dmcs2,r1 ;point at DMCS2
mov r0,(r1) ;set unit #
clr -(r1) ;disk addr=0/0 (track/sector)
.assume dmda eq dmcs2-2
clr -(r1) ;bus addr = 0
.assume dmba eq dmda-2
mov #-<1000/2>,-(r1) ;word count = 1 block
.assume dmwc eq dmba-2
mov r2,-(r1) ;"read" command
20$: bit #dmerr!dmrdy,(r1) ;wait for error or success
bpl 30$ ;success
.assume dmerr eq 100000
;;; we have lots of space, maybe we can fix soft ECC errors?
; assume drive type mismatch, try it both ways (RK06 vs. RK07)
add #dmcdt,r2 ;assume tried as RK06, now do RK07
bit #dmcdt,r2 ;or did we do that already?
bne 10$ ;no, do it now
br . ;error, hang
30$: clr pc ;happy, drop into boot block



go1: mov #dx$csr,r1 ;R1 points at base CSR
mov pc,r4 ;must point 20 bytes past signature
.assume . eq 20
restrt: ; retry
mov #dxrds!dxgo,r2 ;"read sector" command
tst r0 ;unit 1?
beq 10$
bis #dxus,r2 ;yes, set unit select bit
10$: mov #1,r3 ;starting sector #
clr r5 ;init memory address
20$: ; read next sector
; R2=read cmd, R3=sector number, R5=address
mov r2,(r1) ;start cmd
30$: bit #dxerr!dxtr,(r1) ;wait for error or transfer request
beq 30$
bmi restrt ;error, start over
.assume dxerr eq 100000
mov r3,dxdb(r1) ;write sector number
40$: bit #dxerr!dxtr,(r1) ;wait for error or transfer request
beq 40$
bmi restrt ;error, start over
.assume dxerr eq 100000
mov #1,dxdb(r1) ;write track # (always 1 for block 0)
50$: bit #dxerr!dxdone,(r1) ;wait for error or completion
beq 50$
bmi restrt ;error
.assume dxerr eq 100000
; success, empty silo
add #dxemp-dxrds,r2 ;change command to "empty silo"
mov r2,(r1) ;start cmd
60$: bit #dxerr!dxtr,(r1) ;wait for error or transfer request
beq 60$
bmi restrt ;error, start over
.assume dxerr eq 100000
add #dxrds-dxemp,r2 ;restore "read sector" command
70$: bit #dxerr!dxtr,(r1) ;wait for error or transfer request
beq 70$
bmi restrt ;error, start over
.assume dxerr eq 100000
movb dxdb(r1),(r5)+ ;read next data byte
bit #177,r5 ;reached multiple of 128.?
bne 70$ ;loop if not
; bump to next sector
add #2,r3 ;skip 2 sectors (2:1 soft interleave)
cmp r5,#1000 ;done whole block?
blo 20$ ;loop if not
clr pc ;happy, drop into boot block



go1: mov #dy$csr,r1 ;R1 points at base CSR
mov pc,r4 ;must point 20 bytes past signature
.assume . eq 20
restrt: ; retry
mov #dyrds!dygo,r2 ;init command, assume SD (about to flip it)
tst r0 ;unit 1?
beq 10$
bis #dyus,r2 ;yes, set unit select bit
10$: ; try other density
add #dydd,r2 ;flip DD flag
bic #dydd*2,r2 ;(clear carry)
mov #1,r3 ;starting sector #
clr r5 ;init memory address
20$: ; read next sector
; R2="read sector" cmd including DD flag, R3=sector number, R5=addr
mov r2,(r1) ;start cmd
30$: tstb (r1) ;wait for transfer request
bpl 30$ ;(ignore errors)
mov r3,dydb(r1) ;write sector number
40$: tstb (r1) ;wait for transfer request
bpl 40$ ;(ignore errors)
mov #1,dydb(r1) ;write track # (always 1 for block 0)
50$: bit #dyerr!dydone,(r1) ;wait for error or completion
beq 50$
bmi 10$ ;error, try other density
.assume dyerr eq 100000
; success, empty silo
add #dyemp-dyrds,r2 ;change command to "empty silo"
mov r2,(r1) ;start cmd
60$: tstb (r1) ;wait for transfer request
bpl 60$ ;(ignore errors)
add #dyrds-dyemp,r2 ;(restore "read sector" command)
mov #128./2,sp ;SD word count (not using stack, so...)
cmp r2,sp ;double density?
.assume dydd ge 128./2
.assume dyus!dyrds!dygo lt 128./2
blo 70$ ;no
asl sp ;yes, DD word count
70$: mov sp,dydb(r1) ;set word count
80$: tstb (r1) ;wait for transfer request
bpl 80$ ;(ignore errors)
mov r5,dydb(r1) ;write core addr
90$: bit #dydone,(r1) ;wait for completion
beq 90$ ;(ignore errors)
add sp,r5 ;bump addr by sector size
add sp,r5 ;(twice for byte address)
; bump to next sector
add #2,r3 ;skip 2 sectors (2:1 soft interleave)
cmp r5,#1000 ;done whole block?
blo 20$ ;loop if not
clr pc ;happy, drop into boot block


Везде передаётся CSR. Берем документацию на RK11 - адрес CSR по умолчанию 177404
На этом для себя обсуждение считаю законченным.

form
04.10.2017, 19:46
CSR по умолчанию 177404
С чем, к слову, согласен и DSM в процессе инсталяции:
1.3 Do you wish to Auto-configure the current system [Y OR N] ? <Y>

Configuring Host System . . .


Processor Type: PDP-11/83

Memory Size: 256 KB

Processor/Memory Options:

Floating Point Unit
Extended Instuction Set
22 Bit Addressing
Cache

Name Vector CSR Unit Type Description

DKA 220 177404 RK11 Disk Controller
...

form
04.10.2017, 22:42
Информация к размышлению: ни один загрузчик DSM кроме RK05 не использует R1.
При загрузке с того же RL02 в R1 можно положить что угодно.
Аппаратная загрузка с MT пишет 172522 (как и положено) в R1, а не 172520 как можно было бы подумать.

Иными словами, загрузка с RK05 (для которого при генерации любой DEC системы даже не
спрашивается адрес регистра - он всегда жестко зашит) единственная вдруг с какого-то перепуга
хочет использовать R1, причем довольно странным способом: готовится набор регистров к которым
будет обращение методом BIS, а не ADD. В R1 можно записать 0, 400, 1400, 2400, 5400, ... загрузится.
Добавим гипотетический контроллер RK05 по адресу 177410 (CSR=177414) и... правильно: нифига не загрузится хоть ты 177410 хоть 177414 передавай в R1. Или, скажем, 177200 (чтобы не было соблазна сказать, что пересекается со стандартным, не кратен 20 или еще что-нибудь)... То есть реально этому загрузчику (единственному у DSM что-то делающему с R1) CSR передать через R1 невозможно (если быть точнее, то возможно три варианта кроме 177400).

То есть загрузчики для контроллеров, которых официально может быть несколько, игнорируют R1. Единственный загрузчик для контроллера который с точки зрения DEC всегда один и на одном месте (RSX правда позволяет кучу наплодить возможно - спрашивает сколько контроллеров, но отвечать на вопрос не пробовал) пытается манипулировать с R1 и выбрать один из 4 вариантов.

Hunta
04.10.2017, 23:46
Не удивлюсь, если было какое то нестандартное чудо, в котором было четыре контроллера RK. Учитывая, что DSM - это к тому же своеобразная база данных, а где базы - там большие объёмы и требуется скорость - может DEC под что такое своеобразное и сделало такой не стандартный загрузчик. Но это только предположение.
Кстати, ещё на что обратил внимание (хотя в памяти это и так крутилось) - начальный загрузчик грузиться с адреса 0

form
04.10.2017, 23:54
нестандартное чудо, в котором было четыре контроллера RK
В этом случае ничто не мешает как с остальными контроллерами использовать прописанный в загрузчике. Или если уж передавать, то использовать переданное (а не часть битов).

Hunta
05.10.2017, 00:31
Ну может там какое то извращение было задумано :) В общем, сейчас, когда с авторами не связаться... уже и не скажешь...

Patron
05.10.2017, 14:27
..

Как выяснилось - загрузчик DSM-11 берёт номер загружаемого привода RK из R0, а не из RKDA, поэтому минимальный загрузчик, способный загрузить с RK0 любую ОС DEC, выглядит так:



MOV (PC), R2 ; READ COMMAND
RESET ; SET UNIT 0 ; BLOCK 0 ; ADDR 0
MOV #177400, R1 ; WORD COUNT
MOV #177406, R3 ; RKWC
MOV R1, (R3) ; SET WORD COUNT
MOV R2,-(R3) ; READ BOOT
TSTB (R3) ; WAIT FOR READY
BPL .-2.
CLR R0 ; BOOT UNIT
CLR PC ; BOOT

Hunta
05.10.2017, 16:24
берёт номер загружаемого привода ... из R0
Что вроде бы тоже как стандарт DEС, ЕМНИП

form
05.10.2017, 16:31
Что вроде бы тоже как стандарт DEС
Да, но сам DEC как правило не использует.


минимальный загрузчик
Ровно на одно слово короче с полным сохранением результата ;)
MOV @PC,R2
RESET
MOV #177410,R3
COMB -(R3)
MOVB -(R3),R0
MOV @R3,R1
MOV R2,-(R3)
TSTB @R3
BPL .-2
CLR PC

Hunta
05.10.2017, 16:36
MOV #177406, R3 ; RKWC
Насколько я понимаю, это передача 253 слов, а не 256, не? Наверное всё таки 177400

form
05.10.2017, 16:40
253 слов, а не 256
Там R1 пишется в RKWC, а он 177400

Hunta
05.10.2017, 16:47
Тьфу, да, неправильно строки воспринял, да, всё нормально.

Patron
05.10.2017, 19:59
..

Мистическая тайна DSM-11 раскрыта - обсуждаемое использование содержимого R1 отсутствует в оригинальном коде DSM-11 и было внесено патчем.

Оригинал загрузчика DK:



.=0
.DSKBOT DK
MOV %2,-(6)
MOVB BOOTDK+510.,%5 ;GET DISK-TYPE
CMP #DL,%5 ;CHECK TYPE
BEQ BERRDK ;.+210
MUL #000014,%5
ADD #BOTTDK-BOOTDK+VIR.P5,%5
TSTB BOOTDK+510.
BEQ 1$


Патченая версия:



.=0
.DSKBOT DK
MOV %2,-(6)
MOVB BOOTDK+510.,%5 ;GET DISK-TYPE
CMP #DL,%5 ;CHECK TYPE
BEQ BERRDK ;.+210
MUL #000014,%5
ADD #BOTTDK-BOOTDK+VIR.P5,%5
CALL @#640
BEQ 1$
...
.=640
MOV BOOTDK+500.,%2
BIS %2,(5)
BIS %2,6(5)
BIS %2,10(5)
TSTB BOOTDK+510.
RETURN

form
05.10.2017, 20:01
отсутствует в оригинальном коде DSM-11
Что и было среди предположений высказано :)

AFZ
06.10.2017, 17:46
Оригинал загрузчика DK: А откуда исходники? Или это дизасм?

Patron
06.10.2017, 21:06
А откуда исходники? Или это дизасм?Оригинал - из файла BOOTDK, находящегося в образе MYmac1.DSK в архиве DSMMAC.zip (http://zx-pk.ru/attachment.php?attachmentid=57181&d=1463206093), а патченная версия - дизасм нулевого блока образа диска RK05 с DSM-11 v3.3.

Patron
06.10.2017, 23:06
..

Изменил патч загрузчика в дистрибутиве DSM-11 v3.3 так, чтобы он по-прежнему влиял на DM, DP, DR и DB, но не влиял на DK : DSM-11_v3.3.tap (http://emulator.pdp-11.org.ru/misc/DSM-11_v3.3.tap.zip)

Patron
11.10.2017, 12:18
Загрузчик DSM-11 помог найти ошибку в моей эмуляции RK, которою не выявляют тесты XXDP - мой вариант RK не мог прочитать с диска за один раз более 32К слов. Загрузчик же DSM-11 мапит себя в верхнюю память и считывает одним запросом с диска RK всю область ядра = 45К слов ( 90 Кб ) в адреса 00000..263777 и вторым запросом - 37 Кб системного аннекса в адреса 264000..375777.

form
11.10.2017, 14:22
за один раз более 32К слов
Тут интересно бы на живом посмотреть. По описанию можно предположить, что RKWC, выставленный в 0 перед началом R/W операции должен нормально прокрутиться через все 64KW и остановиться когда снова станет равен нулю. SimH так и поступает. E11 тестить не стал - я его уже ловил на разных косяках относительно RK06/RK07 и RP02/RP03 (В SimH впрочем тоже был косяк в RK06/RK07:)). Можно еще в CHARON попробовать.

MiX
11.10.2017, 16:14
Patron, Можно попросить диск DU в эмуляторе?

Patron
11.10.2017, 16:51
Можно попросить диск DU в эмуляторе?Драйвер DU для RT-11 в 12 раз больше драйвера DP - значит вероятность скорого появления в эмуляторе устройства DP - примерно в 12 раз выше, чем вероятность появления устройства DU. Но это не относится к модулю SIMH - оттуда я планирую адаптировать все процессоры и все дисковые контроллеры PDP-11 ( терминальные контроллеры тоже не исключены, насчёт сетевых и ленточных контроллеров большой уверенности нет ).

ilynxy
17.03.2018, 23:25
Господа, а кто-то вот тут делал макет с ВМ2 и выкладывал логи шинных циклов в разных ситуациях (толи анализатор был на ноги зацеплен, толи ещё как-то). Хочу прояснить для себя некоторые моменты, но что-то никак не могу найти где это. Подскажите пожалуйста.

form
26.02.2019, 13:16
По просьбам трудящихся снова собрал 11/83. Если нужно запустить какие тесты - пишите.

http://pdp-11.org.ru/~form/files/pdp-11/1183/2019-02-26.jpg

AFZ
27.02.2019, 07:39
Господа, а кто-то вот тут делал макет с ВМ2 и выкладывал логи шинных циклов в разных ситуацияхЕсли еще не поздно, этим занимался Vslav. Отчет здесь. (https://zx-pk.ru/threads/21192-eksperimentalnye-protsessornye-moduli-2kh1801vm1-i-1801vm2.html?p=596337&viewfull=1#post596337)

ilynxy
27.02.2019, 12:36
Если еще не поздно, этим занимался Vslav. Отчет здесь.
Таперча уважаемый Vslav сделал модель ВМ2 на verilog'e -- я в modelsim'e смотрю всё что надо (за что ему нечеловеческое спасибо!).

dk_spb
23.03.2019, 19:31
Продублирую и в этой теме:
Есть СМ1425 c "родным" ТМОС-1425.
Тест процессора TCPA00 на отечественном процессоре проходит без ошибок, а вот на DEC'овском выдает такие ошибки.
Чтобы это значило?

.R TCPA00/2
TCPA00.BIC

o{ibka bazowyh komand
o{ibka N = 490 PC o{ibki =030106
o{ibka bazowyh komand
o{ibka N = 491 PC o{ibki =030122
o{ibka bazowyh komand
o{ibka N = 502 PC o{ibki =030702
o{ibka bazowyh komand
o{ibka N = 503 PC o{ibki =030716
o{ibka bazowyh komand
o{ibka N = 502 PC o{ibki =030702
o{ibka bazowyh komand
o{ibka N = 503 PC o{ibki =030716
o{ibka bazowyh komand
o{ibka N = 504 PC o{ibki =030732
test bazowyh komand
konec prohoda # 1 o{ibok # 7

dk_spb
24.03.2019, 01:51
Да, судя по найденной информации в ранних версиях DCJ11 были ошибки микрокода в командах (ASH, ASHC).
Соответственно 1831 - копия раннего микрокода, с ошибкой. И тест TCPA00 есть ни что иное как ранняя версия теста ZKDJ.
Соответственно J11 с исправленным микрокодом этим тестом признаются неисправными.

ra3qdp
14.04.2019, 22:21
По просьбам трудящихся снова собрал 11/83. Если нужно запустить какие тесты - пишите.

Dhrystones !

form
15.04.2019, 04:01
Dhrystones !
Было уже.
Впрочем уже обратно разобрал все :)