F11 запустился на QMTECH и OMDAZZ (есно с аналогичным результатом). Не могли бы вы выложить образ DX-диска с тестами 11/23? Я понятия не имею как создавать загрузочные XXDP диски и где брать драйверы.
F11 запустился на QMTECH и OMDAZZ (есно с аналогичным результатом). Не могли бы вы выложить образ DX-диска с тестами 11/23? Я понятия не имею как создавать загрузочные XXDP диски и где брать драйверы.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Да сколько угодно. Прикладываю к этому сообщению.
Я лично их под simh делал. Загружался с DL-диска с полным XXDP, инициализировал диск DX, и потом копировал то что мне надо с DL на DX.
Интересно, пойдут ли у вас тесты JKDB и JKDD. У меня лично JKDB глухо виснет, так что даже пультовое прерывание HALT перестает работать. Проблема проявляется в тесте 375, проверяющем работу подсистемы контроля нижней границы стека. По адресу 40052 есть инструкция CLR STATUS, очищающая PSW. Это сделано для открытия прерываний. По логке теста, после выполнения этой инструкции процессор должен начать цикл обработки прерывания, поскольку уже имеется активный запрос прерывания от консоли.
Вместо этого процессор убегает на адрес 20400, пытается начать выполнять оттуда код, влетает в прерывание 4 и в процессе его обработки полностью умирает. Пропадает вся активность на внешних шинах. Микрокод продолжает работать, это видно на внутренних шинах, но что он там делает - это только великий VSLAV знает. Он, похоже, пока единственный, кто ковырялся в этом микрокоде, написал доку по микроинструкциям и даже дизассемблер на питоне. Он бы сразу сказал, в чем проблема. А без него как бы не пришлось мне самому стать ковряльщиком микрокода процессора. Ибо по-другому понять суть проблемы не получается.
Для начала я хочу выбрать все же время, прикрутить диск DX к референсной схеме от VSLAV (та, что идет в комплекте с процессорными ядрами), и попробовать погонять тесты там. Ведь сам-то VSLAV гонял все заводские тесты, получается что у него проблем не было. Но он запускал абсолютные бинарники, загружаемые вместе с прошивкой в FPGA, я же использую XXDP - может быть тут есть какая-то разница.
Спасибо, попробовал. Обе платы QMTECH и OMDAZZ ведут себя одинаково:
JKDAD1 MEMORY MANAGEMENT TEST - работает
JKDBD0 BASIC CPU TEST - вис
JKDCB0 KEFlt FLOATING POINT CHIP TEST 1 - работает
JKDDB0 KEFll FLOATING POINT CHIP TEST 2 - вывод SWR = 000000 NEW = --- <Enter> --- вис
То, что поведение однотипное - радует. Может Vslav появится и поможет...
Первая победа. С проблемой непрохождения тестов я разобрался.
Благодаря подсказке от VSLAV, правда дошедшей до меня весьма косвенным путем, я понял в чем дело. Оказалось, что моя схема неправильно формирует протокол входа в прерывание. В отличие от VSLAV, создавшего один универсальный контроллер прерываний, я использую отдельные контроллеры для разных уровней IRQ. Делал я это еще в процессе создания платы PDP2011, и мой набор сигналов несколько отличается от того, что сделал VSLAV. А именно - мой pdp2011 формировал сигнал запроса вектора ISTB для каждого уровня в отдельности - istb[6:4], а VSLAV сделал один-единственный выход ISTB (wbi_stb_o). Потому как у меня каждый сигнал подключается к отдельному контроллеру прерываний и определяет, какой именно из контроллеров отдаст вектор. А у VSLAV контроллер единый и он сам решает, прерывание какого уровня надо обслужить.
Вообщем, теперь все заработало. Пошел тест JKDA:Скрытый текст
Код:015770 000002 001100 000002 $DX CHMDXC0 XXDP+ DX MONITOR BOOTED VIA UNIT 0 28K DOES THIS SYSTEM HAVE A UNIBUS? (Y/N CR=Y) N NON-UNIBUS SYSTEM ENTER DATE (DD-MMM-YY): RESTART ADDR: 152010 THIS IS XXDP+. TYPE "H" OR "H/L" FOR HELP. .R JKDB?? JKDBD0.BIC CJKDBD0 DCF11-AA CPU DIAGNOSTIC END PASS # 1�� END PASS # 15�� END PASS # 29�� END PASS # 43�� END PASS # 57��[свернуть]
Почему-то номера проходов идут не подряд. Но как оно должно быть на самом деле я не знаю, потому как образцовой машины PDP11/23 у меня нет.
Также пошел FPU-тест JKDD:Скрытый текст
Код:.R JKDD?? JKDDB0.BIC CJKDDB KEF11-A DIAGNOSTIC PART 2 SWR = 000000 NEW = END PASS # 1�� END PASS # 2�� END PASS # 3�� END PASS # 4�� END PASS # 5��[свернуть]
В качестве вишенки на торте, загрузилась RT-11:
Скрытый текст
Код:040000 143060 126064 141300 $DX1 RT-11SJ (S) V05.04 D .SET TT QUIET .DIR DIR .SAV 19 17-Nov-87 RESORC.SAV 26 17-Nov-87 DUMP .SAV 9 17-Nov-87 STARTS.COM 1 RK .SYS 3 03-Jan-99 NL .SYS 2 06-Apr-99 TT .SYS 2 06-Apr-99 VM .SYS 3 06-Apr-99 SWAP .SYS 27 17-Nov-87 PIP .SAV 30 17-Nov-87 DUP .SAV 49 17-Nov-87 RT11FB.SYS 94 06-Apr-99 MY .SYS 3 02-Jan-99 ODT .MAP 1 ODT .SAV 8 DM .SYS 5 12-Jun-99 DW .SYS 15 02-Jan-99 RT11SJ.SYS 84 03-Jan-99 DX .SYS 4 03-Jan-99 SPEED3.SAV 8 29-Oct-88 20 Files, 393 Blocks 93 Free blocks .SH CONF RT-11SJ (S) V05.04 D Booted from DX1:RT11SJ USR is set SWAP EXIT is set SWAP KMON is set NOIND TT is set QUIET ERROR is set ERROR SL is set OFF EDIT is set KED KMON nesting depth is 3 PDP 11/23 PLUS Processor 4088KB of memory FP11 Hardware Floating Point Unit Extended Instruction Set (EIS) Memory Management Unit 50 Cycle System Clock Device I/O time-out support Error logging support Multi-terminal support SJ timer support[свернуть]
Ну, и на этом пока все. Чтобы загрузить что-то более серьезное, надо собирать схему DMA. Но тут есть одна проблема. Большинство устройств, использующих DMA, умеют работать только с 18-битной адресной шиной. 22 бита из имеющихся у меня дисков умеют только MY и DB. Но MY - мелкая дискетка, а DB не поддерживает RT-11. Для машин с Unibus существует такой замечательный механизм как UBM, позволяющий 18-битным устройствам работать с любыми адресами физической памяти. И у нашего F11 есть выходной сигнал UMAP, включающий этот механизм. Но только вот плата KDF11A, которую мы сейчас собираем, это QBUS-машина, и там этого механизма нет. Следовательно, для работы с любыми дисками кроме DB придется ограничить ОЗУ до 256К. А это грустно, последние версии RSX-11M-PLUS и RSTS/E на такой памяти если и загрузятся, то работать будет практически невозможно.
Интересно, как же люди обходились на реальных 11/23 ?
Всё нормально, тест так устроен
- - - Добавлено - - -
В принципе - можно будет, но нужно сгенерить специально под такую маленькую память
Ну или допилить UMR
RQDX3
- - - Добавлено - - -
Кстати, есть ещё вариант - допилить контроллер RL11 - вариант RLV211, если мне не изменяет память про название, - QBus-ный и поддерживает 22 бита. Но для него тоже надо пилить RSX+, так как все файлы дистра, насколько я помню, на диск не влазят
На OMDAZZ при прогоне теста JKDDB0 часто возникает:
NO INTERRUPT FROM SLU IN ALLOTTED TIME.
FLOATING POINT ERROR, STOPPED AT PC=032622
Тест не "виснет", иногда проходит без ошибок.
RT-11 загружается.
Timer??? Время не "тикает".
- - - Добавлено - - -
.SH CONF
RT-11SJ (S) V05.04 D
Booted from DX1:RT11SJ
***
PDP 11/23 PLUS Processor
4088KB of memory
FP11 Hardware Floating Point Unit
Extended Instruction Set (EIS)
Memory Management Unit
50 Cycle System Clock
Последний раз редактировалось vva; 23.11.2022 в 20:00.
Для честной эмуляции RQDX надо ждать реверса Т11
Честная эмуляция DU-дисков вообще невозможна. Поскольку у нас тут не QBUS и MFM-диск, а Wishbone и SD-карта. То есть и прошивку придется переписывать, и схему в корне переделать. Проще создать контроллер с нуля, но он, гад, сложный, вначале придется дизассемблировать прошивку RQDX и разбираться в ней.
Тут, пожалуй, проще будет сделать PDP11/24 на том же процессоре F11. Это UNIBUS-машина, и там можно реализовать UBM.
На надо путать процессор (F-11), процессорную плату (KDF11-B) и компьютер (PDP-11/23 PDP-11/23+ PDP-11/24)
- - - Добавлено - - -
И кстати, DU (а точнее говоря - MSCP) - это не обязательно MFM диск
- - - Добавлено - - -
Кстати, о птичках. Её не просто дизассемблировали - всплыли исходники
Но на мой взгляд - RQDX, даже третий - так себе. Ну и MFM, конечно, энтузиазма не добавляет
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)