Patron, Нормалёк, давайте вариант Б.
Patron, Нормалёк, давайте вариант Б.
Нет, загружается нормально, выдаёт приглашение ".".
---------- Post added at 21:03 ---------- Previous post was at 20:54 ----------
Кстати тест SPEED виснет.
form, Ему тоже LTC нужен?
Нужен. Причем тест искренне уверен, что он один на компе, даже операционной системы нету, а LTC есть всегда, а если не слышно, то дело в клавише блока питания :)
---------- Post added at 00:17 ---------- Previous post was at 00:06 ----------
Лучше для начала выпустить код в котором в ISR первы словом идет "патч" RTI и посмотреть что будет. А там смотреть дальше последовательно.
Ну так слдить за приоритетами - это единственная гарантия от прерываний раньше времени. А что до прерываний до того как - я не особо силен в этой PC-образной тряхомудии прошника, но подозреваю, что контроллер прерываний может быть злопамятным и припомнить что-то старое, там можно почистить биты запросов сначала...
Сделал без загрузки ОС.
163152
@230/125252
@232/125252
@17773024/000037 45
@17773024/000045
@17773202/000307 37
@17773202/000307
530 топик смотрели?
form, А нечего что "37" не пишется?
Нет смысла включать таймер, пока в системе не установлен вектор.
Очень любопытно.
В описании Pro350 указано, что при включении питания - Pro350 инитит регистр 17773024 значением 40 ( так как там на входе таймера стоит кварц на 32.768 КГц ), но если у Эл.85 на входе таймера стоит кварц на 1 МГц - можно инитить только значениями от 20 до 37, а значения с делителем 40 недопустимы.
Это регистр устройства, читается из него не обязательно то, что записано.
---------- Post added at 00:40 ---------- Previous post was at 00:39 ----------
Там читается далеко не то, что пишется...
---------- Post added at 00:43 ---------- Previous post was at 00:40 ----------
Точнее надо по описанию сверяться... CSR в частности на чтение и на запись - это разные регистры.
Если у Эл.85 другая частота кварца на входе таймера - родной PI.SYS там вообще не сможет работать, потому что в PI.SYS используется делитель 40 :
Код:MOV #173024,R1 ;R1 -> Clock CSR0
MOV #2*20!12,(R1)+ ;Set divider control and 64Hz
После загрузки ОС.
@230/152710
@232/000340
@17773024/000065 45
@17773024/000045
@17773202/000307 37
@17773202/000307
Не, там все проиничино и RESET все это не сбрасывает.
Пока не проиничен и BREAK не сработает - так что попасть раньше времени в пульт не получится...
---------- Post added at 00:53 ---------- Previous post was at 00:50 ----------
Я конечно допускаю наличие "улучшенной" советской прошивки - чего стоит только советский TA11 и драйвер с "многочисленными исправленными ошибками DEC" где ошибки заключались в том, что DECовский драйвер ну никак не ожидал, что железка не отличает байт от слова :)
Но в данном случае врядли...
По кварцевым микросборкам.
1)32,768к
2)5.0688м
3)26,666м
Очередная тестовая версия - устанавливается такое же значение частоты таймера, как в PI.SYS, и до установки вектора запрещаются прерывания: Pro350_HX_SP2b
Загрузился.
.SH ALL
RT-11SP (Y) V05.04 G (02)
Booted from HX0:RT11SP
USR is set NOSWAP
EXIT is set NOSWAP
KMON is set NOIND
TT is set NOQUIET
ERROR is set ERROR
SL is set ON
EDIT is set KED
KMON nesting depth is 3
PDP 11/23 Processor
512KB of memory
FP11 Hardware Floating Point Unit
Extended Instruction Set (EIS)
Memory Management Unit
50 Cycle System Clock
NO Terminal Interrupts
No SYSGEN options enabled
Device Status CSR Vector(s)
------ ------ --- ---------
TT Installed 000000 000
SL 141032 000000 000
LD Installed 000000 000
HX Resident 177560 000
DZ Not installed 000000
HD Not installed 177720 000
VM Installed 177572 250
TT
HX (Resident)
HX0 = DK , SY
SL (Loaded)
LD
VM
19 free slots
Job Name Console Level State Low High Impure
--- ---- ------- ----- ----- --- ---- ------
0 RESORC 0 0 Run 000000 140760 N/A
No multi-terminal support
Address Module Words
------- ------ -----
160000 IOPAGE 4096.
156242 HX 431.
145342 RMON 2272.
141024 SL 1127.
130760 USR 2066.
001000 ..BG.. 22520.
No LD units mounted
.
В том варианте часы RT-11 должны идти со скоростью около 2 сек/мин.
Вот "итоговый" вариант, где вместо частоты 64 Гц таймер Pro350 запускается на частоте 2048 Гц: Pro350_HX_SP2.DSK
Загрузился. Только тест SPEED всё равно не проходит.
Сделал
141304
@230/152710
@152710/005737
@152712/173030
@152714/005327
@152716/000051
@152718?
@152720/003401
Patron, Так может таймер без батарейки не идет?
Не было вообще ни одного прерывания по вектору 230.
Теперь можно проверить то же самое у предыдущей версии ( SP2b ), где частота прерываний устанавливалась в то же значение, что и у PI.SYS
Это вряд ли. У большинства Эл.85 батареи нет, а время в RT-11 идёт.
Загрузил SP2b
При команде TIME показывает тоже самое время.
Ячейки памяти показывают тоже самое.
---------- Post added at 13:48 ---------- Previous post was at 13:33 ----------
Попробовал вариант "А" нажав BREAK (без выключения ПВК) там время идет но как то очень медленно. Похоже что перепутаны секунды с минутами.
Новая версия ( Pro350_HX_SP2c ) вообще не использует RESET и точно копирует весь код таймера из PI.SYS ( кроме частоты прерываний, которая вместо 64 Гц устанавливается в 2048 Гц ).
ДА!Patron. Победа!!! :v2_dizzy_champagne:
.SPEED
ТЕСТ БЫСТРОДЕЙСТВИЯ
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 528
КОМАНДА СЛОЖЕНИЯ РЕГИСТР-ПАМЯТЬ
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 312
КОМАНДА УМНОЖЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 40
КОМАНДА ДЕЛЕНИЯ РЕГИСТР-РЕГИСТР
БЫСТРОДЕЙСТВИЕ (ТЫС.ОП./СЕК) 136
.
---------- Post added at 15:08 ---------- Previous post was at 14:54 ----------
Patron, А какой фактор в PDPCLK ставить?
Итоговая версия ( Pro350_HX_SP2 ) содержит в загрузчике следующий код:
Код:CALL @#T4SEC ;Set carry if we trap
MOV #173700, R0 ;R0 -> PRO300 system CSR
MOV (R0), (R0)
MOV @#54, R2 ;<< T11NOP >>;
BCS No.CSR ;If C-bit set, CSR not there
MOV #230, R1 ;Protect vector 230
CALL @#PROTEC
ADD #<ProINT-$RMON>, R2
MOV R2, (R1)+ ;Set vector 230 to ProINT
MOV #340, (R1)
MOV #173024, R1 ;R1 -> Clock CSR0
MOV #2*20!5,(R1)+ ;Set divider control and 2048Hz
BIS #100, (R1)+ ;Set PERIODIC INTERRUPT ENABLE
MOV #37,@#173202 ;Enable clock
TST (R1) ;Prime clock to interrupt
No.CSR:
CALL @(SP)+ ;Restore traps
---------- Post added at 14:15 ---------- Previous post was at 14:13 ----------
Скорее всего 4 ( 3 только у ВМ3 ).
После выбора фактора молчёк.
.RUN PDPCLK
PDPCLK - Calculate CPU clocks - v1.0
Memory Top: 131032
BUF words: 21297
Factor : 4 > 4
Factor : 4
Даже в монитор не выходит.
Там ( и во всех линейных тестах ) для калибровки используется прерывание терминала.
Выходит, что работать будут только "табличные" тесты таймингов ( OP1.SAV, MOV.SAV, MOVB.SAV, CMP.SAV, CMPB.SAV, ADD.SAV, BIS.SAV, BISB.SAV ).
---------- Post added at 15:29 ---------- Previous post was at 15:20 ----------
Также должны работать IRQ.SAV, MOVPC.SAV, MOVPC1.SAV, MOVPCX.SAV и MOVPCY.SAV ).