Первая победа. С проблемой непрохождения тестов я разобрался.
Благодаря подсказке от 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 ?




Ответить с цитированием