-
После некоторой войны с ошибками и неточностями в реализации:
Код:
KDJ11-E Monitor Version 2.01 18-Aug-1998
(C) Digital Equipment Corporation 1990-1998
Memory 2048 KW Memory Intern 4MB
EEprom 4 KW Rom on 173000 Yes
Time 01:02:03 01-Mar-23 Wed Rom on 165000 Yes
Power-up Mode Dialog
Nr Device Unit Address Restart Mode Dialog
1 Do Power-on Selftests No
2 DL ROM 0 Default Do Select Selftests Edit
3 Do User Boot Edit
4 Do Alternate Boot Block No
5 Do LTC Register Yes
6 Do Force Clock Interrupt No
Clock Frequency P/S
Lines Address/Vec Baud Data Stop Par Halt on Break Yes
Line 1 176500/300 9600 8 1 Dis Trap on Halt No
Line 2 176510/310 9600 8 1 Dis Ignore Battery No
Line 3 176520/320 9600 8 1 Dis Lines on 176500
Line 4 176530/330 9600 8 1 Dis
Line 5 176540/340 9600 8 1 Dis Map Do
Line 6 176550/350 9600 8 1 Dis Factory Setting Do
Line 7 176560/360 9600 8 1 Dis Save Do
Line 8 176570/370 300 8 1 Dis
Но часики пока не тикают :) Это - следующий этап :)
- - - Добавлено - - -
Вдогонку
Код:
KDJ11-E Monitor Version 2.01 18-Aug-1998
(C) Digital Equipment Corporation 1990-1998
Memory 2048 KW
EEprom 4 KW
Time 01:02:03 01-Mar-23 Wed
Nr Device Unit Address
1
2 DL ROM 0 Default Starting System
RT-11SB (S) V05.07
.R MSCPCK
.tim
01:02:04
.dat
1-Mar-2023
.
Код:
RSX-11M-PLUS V4.6 BL87 2044.KW System:"DE10 "
>RED DL2:=SY:
>RED DL2:=LB:
>RED DL2:=SP:
>MOU DL2:"RSX11MPBL87"
>@DL2:[1,2]STARTUP
>; PLEASE NOTE
>;
>; If you have not yet read the system release notes, please do so
>; now before attempting to perform a SYSGEN or to utilize the new
>; features of this system.
>;
>;
>* Please enter time and date (Default:01-MAR-2023 01:02) [S]:
-
Тик-так, тик-так...
Код:
KDJ11-E Monitor Version 2.01 18-Aug-1998
(C) Digital Equipment Corporation 1990-1998
Memory 2048 KW Memory Intern 4MB
EEprom 4 KW Rom on 173000 Yes
Time 22:15:32 01-Mar-23 Wed Rom on 165000 Yes
Power-up Mode Dialog
Nr Device Unit Address Restart Mode Dialog
1 Do Power-on Selftests No
2 DL ROM 0 Default Do Select Selftests Edit
3 Do User Boot Edit
4 Do Alternate Boot Block No
5 Do LTC Register Yes
6 Do Force Clock Interrupt No
Clock Frequency P/S
Lines Address/Vec Baud Data Stop Par Halt on Break Yes
Line 1 176500/300 9600 8 1 Dis Trap on Halt No
Line 2 176510/310 9600 8 1 Dis Ignore Battery No
Line 3 176520/320 9600 8 1 Dis Lines on 176500
Line 4 176530/330 9600 8 1 Dis
Line 5 176540/340 9600 8 1 Dis Map Do
Line 6 176550/350 9600 8 1 Dis Factory Setting Do
Line 7 176560/360 9600 8 1 Dis Save Do
Line 8 176570/370 300 8 1 Dis
Код:
KDJ11-E Monitor Version 2.01 18-Aug-1998
(C) Digital Equipment Corporation 1990-1998
Memory 2048 KW Memory Intern 4MB
EEprom 4 KW Rom on 173000 Yes
Time 22:17:04 01-Mar-23 Wed Rom on 165000 Yes
Power-up Mode Dialog
Nr Device Unit Address Restart Mode Dialog
1 Do Power-on Selftests No
2 DL ROM 0 Default Do Select Selftests Edit
3 Do User Boot Edit
4 Do Alternate Boot Block No
5 Do LTC Register Yes
6 Do Force Clock Interrupt No
Clock Frequency P/S
Lines Address/Vec Baud Data Stop Par Halt on Break Yes
Line 1 176500/300 9600 8 1 Dis Trap on Halt No
Line 2 176510/310 9600 8 1 Dis Ignore Battery No
Line 3 176520/320 9600 8 1 Dis Lines on 176500
Line 4 176530/330 9600 8 1 Dis
Line 5 176540/340 9600 8 1 Dis Map Do
Line 6 176550/350 9600 8 1 Dis Factory Setting Do
Line 7 176560/360 9600 8 1 Dis Save Do
Line 8 176570/370 300 8 1 Dis
Из (пока) не сделанного
- часы в режиме 12 часов (AM/PM) - вроде как всё понятно, как сделать - но вот как проверить.. Попробую записать нужные данные и посмотреть, что скажет код из ПЗУ
- календарь - в том числе - переход времени через 12 ночи
Работы продолжаются :)
-
Поскольку, как выяснилось в ходе экспериментов (хотя и тут надо лезть в исходники) RT-11 при установке времени не выставляет его в TOY и поскольку я помнил, что RSX (по крайне мере Plus) это делать умеет - полез я в исходники, что бы посмотреть на код всего этого безобразия, а там...
Код:
>TIM /ROMAN
Martius II, Anno Domini MMXXIII X:XXXVI
The moon is waxing gibbous. Today is Thursday.
>
Так что сегодня у нас Martius II :D
-
Выпилил всё, относящееся именно к DS1215 (а именно эта микросхема скрывается под именем TOY) в отдельный модуль. Ну и попутно немного подумал над календарём.
- - - Добавлено - - -
Выпиливание завершил, проверки сделал, начинаю ваять дальше - календарь. Режим AM/PM позже.
-
Методом научного тыка выяснил, что RT-11 год, начиная с 72-ого (в TOY хранится 2 цифры года) до 99-ого воспринимает как 19xx, а с 00 по 71 - как 20xx.
У RSX+ 4.6 точка перехода - 90 год (то есть 90-99 - это 1990-1999)
- - - Добавлено - - -
Внезапно пришла в голову идея посмотреть на реализацию TOY в simh, но увы - ничем она не поможет - там при чтении тупо берут время из системы, а при записи - просто забивают на это дело..
-
BCD арифметика - это зло :)
Практически полностью реализован функционал DS1215, осталось сделать часы в формате АМ/ПМ и сделать два параметра настройки - запрет внешнего сброса и выключение тактового сигнала.
Из (покрайне мере пока) не предполагаемого к реализации - совместная работа с внешними ОЗУ/ПЗУ.
Код:
KDJ11-E Monitor Version 2.01 18-Aug-1998
(C) Digital Equipment Corporation 1990-1998
Memory 2048 KW Memory Intern 4MB
EEprom 4 KW Rom on 173000 Yes
Time 00:00:12 29-Feb-20 Sat Rom on 165000 Yes
Power-up Mode Dialog
Nr Device Unit Address Restart Mode Dialog
1 Do Power-on Selftests No
2 DL ROM 0 Default Do Select Selftests Edit
3 Do User Boot Edit
4 Do Alternate Boot Block No
5 Do LTC Register Yes
6 Do Force Clock Interrupt No
Clock Frequency P/S
Lines Address/Vec Baud Data Stop Par Halt on Break Yes
Line 1 176500/300 9600 8 1 Dis Trap on Halt No
Line 2 176510/310 9600 8 1 Dis Ignore Battery No
Line 3 176520/320 9600 8 1 Dis Lines on 176500
Line 4 176530/330 9600 8 1 Dis
Line 5 176540/340 9600 8 1 Dis Map Do
Line 6 176550/350 9600 8 1 Dis Factory Setting Do
Line 7 176560/360 9600 8 1 Dis Save Do
Line 8 176570/370 300 8 1 Dis
- - - Добавлено - - -
Вдогонку. Качество реализации - так себе (по моим меркам - сплошные мультиплексоры), но оно работает, а дальше будет видно - мысли, как можно попробовать оптимизировать - есть, осталось найти силы и время :)
-
Ради интереса посмотрел в RTL Viewer-е результат синтеза DS1215.. Ну как и ожидал - жудддддь.. Хорошо ещё, что работает на 100 Гц-ах (кстати - ещё одно отличие от реальной, которая на 32768 Гц-ах). Всё таки надо переделать :) Но пока цель - добить весь функционал.
- - - Добавлено - - -
Из (пока) отсутствующих вариантов - KDJ11-A и KDJ11-D. Первая - проще - там нет набортного ROM и кучки регистров, для второй надо дизассмеблировать ROM.
А ещё есть KDF11-A и KDF11B. А так же Pro 350 - но это самая сложная :)
А ещё есть Pro 380... :D
-
Навожу порядок в исходниках - а то, с экспериментами, что-то их много наплодилось.
Проходил мимо шкафа и на глаза попался VT220 - о, я его не пробовал давно подключить. Нашёл кабели, подключил и...
Скорость 115200 для VT220 как-то не очень.. :)
Поправил описание, запустил синтез..
- - - Добавлено - - -
Телефон, правда, испоганил цвет и оператора руки трясутся..
-
Малость объединил исходники. Теперь KDJ11-B и KDJ11-E имеют один исходник (с заложенной возможностью добавления кода для KDJ11-A и KDJ11-D), так же как и PDP-11/83 с PDP-11/93. Код ПЗУ анализирует - а не на PDP ли 11/84 и 11/94 мы работает и если да - то делает ещё некоторые проверки-действия. С этим пока не ковырялся - как руки доберутся.
В планах опять вернутся к единому модулю для семейства KDJ-11 и остальных PDP-11 - если модуль не будет сильно замороченным.
В целом, всё сделано так, что можно "собирать" (в некоей стандартной конфигурации периферии) любую модель PDP, просто указав - "хочу" (например) PDP-11/70. Но KDJ11 пока выбиваются из этого подхода - вот и думаю - вернуть их на генеральную линию партии :)
Ну а если захочется свой вариант периферии - то отредактировать надо один модуль - и опять - собрать можно будет под любой процессор PDP-11 :)
-
Некоторая прическа кода для следующей хотелки :) Она не то что бы новая, но как то была заброшена :)
Прическа - опять некая стандартизация в реализации протокола обмена по внутренней шине. В процессе допиливания было исследовано несколько вариантов - какие-то взлетели (и остались), какие-то нет (и их никто не помнит), но в результате - чехарда. Вот её постепенно и ликвидирую. Ну, а новые модули, понятно, делаются уже по некоему текущему внутреннему стандарту.
Из новых задумок-хотелок - есть задумка реализовать КЦГД. Насколько я помню, в коде каких-то специфических особенностей ВМ2 он не использует, так что за основу можно взять проц от PDP-11/X. Ну и учитывая наличие суперОтладчика - процесс допиливания железа под код (примерно тоже я делал для KDJ11-B/E) сильно упрощается :)