Похоже на работу процессора в пошаговом режиме. Если при нажатии <P> выполнится следующая команда загрузчика и опять будет останов - это так и есть.
Вид для печати
гы гы.. это что mode halt стоит? как его отрубить?
и вот еще обнаружил такой код:
Код:173000: reset [000005]
173002: mov #177404,r1 [012701 177404]
173004: ldcfd f4,f0 [177404]
173006: bit #000200,177774(r1) [032761 000200 177774]
173010: rts r0 [000200]
173012: ldcfd @001774(r4),f3 [177774 001774]
173014: beq 173006 [001774]
173016: mov #177400,000002(r1) [012761 177400 000002]
173020: ldcfd f0,f0 [177400]
173022: rti [000002]
173024: mov #000005,(r1) [012711 000005]
173026: reset [000005]
173030: tstb (r1) [105711]
173032: bpl 173030 [100376]
173034: clr pc [005007]
Ну вот прикрутил halt (правда как-то странно пашет, нажимаешь кнопку HALT и лампа на панели горит красная и сигнал halt = +5v, но процессор спокойно работает, еще раз нажмешь - погаснет и сигнала нету 0v процессор стоит и когда набирать "P" то пошагово идет и временно зажигает лампу "RUN")
вот теперь картина такая же как была с KDJ-11-AA:
Код:HX: Готов к работе.
HX: READ : Unit: 0 | Block: 2 | ByteCount: 2048
HX: READ : Unit: 0 | Block: 6 | ByteCount: 1024
HX: READ : Unit: 0 | Block: 379 | ByteCount: 188
HX: READ : Unit: 0 | Block: 343 | ByteCount: 512
HX: READ : Unit: 0 | Block: 343 | ByteCount: 1374
HX: READ : Unit: 0 | Block: 378 | ByteCount: 430
HX: READ : Unit: 0 | Block: 382 | ByteCount: 16790
HX: READ : Unit: 0 | Block: 381 | ByteCount: 262
HX: READ : Unit: 0 | Block: 380 | ByteCount: 150
HX: READ : Unit: 0 | Block: 45 | ByteCount: 512
HX: READ : Unit: 0 | Block: 47 | ByteCount: 512
---------- Post added at 23:05 ---------- Previous post was at 21:41 ----------
Увидел в схеме M8043 DLV11-J что pin 4 таки может как-то влиять на передачу данных из pdp11 наружу, это явно не квитирование но что это?
вот тут: http://www.hardwarebook.info/DEC_DLV11-J_Serial мутная строчка по этому поводу есть: Transmit data - (0V for RS-232, Reader enable for 20mA)
Не исключено, что проблема в отсутствии прерываний от порта терминала. Все надписи, которые выводятся без прерываний - проходят, а все, которые должны выводиться по прерываниям - остаются в выходном терминальном буфере RMON. Когда выходной терминальный буфер RMON переполняется - система зависает.
Это подозрение легко проверить, введя с пульта и запустив программу, которая устанавливает обработчик, просто считающий прерывания передатчика, разрешает прерывания и выводит на экран в режиме опроса несколько символов. Если прерывания работают - значение счётчика после завершения программы должно на 1 превышать число выведенных символов.
Код:.=60
202
0
176 ; Адрес обработчика прерывания передатчика
0
.=100
202
0
.=176
INC (PC)+
0 ; По адресу 200 == Счётчик прерываний
RTI
.=1000
MOV #700, SP
MTPS #0
MOV #100, @#177564 ; Включить прерывания передатчика
MOV #5, R1
MOV #100, R0
1$:
INC R0
MOV R0, @#177566
2$:
TSTB @#177564
BPL 2$
SOB R1, 1$
HALT
В эмуляторе это выглядит так:
Код:@000060/000000 000202
@000064/000000 000176
@000100/000000 000202
@000176/000000 005227
@000200/000000 000000
@000202/000000 000002
@001000/000000 012706
@001002/000000 000700
@001004/000000 106427
@001006/000000 000000
@001010/000000 012737
@001012/000000 000100
@001014/000000 177564
@001016/000000 012701
@001020/000000 000005
@001022/000000 012700
@001024/000000 000100
@001026/000000 005200
@001030/000000 010037
@001032/000000 177566
@001034/000000 105737
@001036/000000 177564
@001040/000000 100375
@001042/000000 077107
@001044/000000 000000
@200/000000
@1000GABCDE
001046
@200/000006
мда сегодня до утра сидел, по всякому пробовал, результат 1 - виснет шото и все, причем пошагово доходит до опроса TSTB @#177564 и там вечный цикл, еще меня удивляет то что MOV R0, @#177566 НЕ ВЫВОДИТ символ !!! если просто брать 777566/ 00000 66 то 6-рка печатается всегда только если на numpad "+" нажать а если <ENTER> то раз на 10 можно такое дождаться...
вот такое виснет без сообщений в эмуле пашетКод:@/000000 622 <enter>
@/000000 63 <enter>
@/000000 64 <enter>
@/000000 65 <enter>
@/000000 66 <enter>
@/000000 677 <enter>
@/000000 70 <enter>
@/000000 71 <enter>
@/000000 72 <enter>
@/000000 73 <enter>
@/000000 74 <enter>
@/000000 75= <enter>
@/000000 76 <enter>
@/000000 77 <enter>
@/000000 100@ <enter>
@/000000 101A <enter>
@/000000 102 <enter>
@/000000 103C - вот тут нажал <+ на num pad>
777570/?
@777566/000000 104D <+ на num pad>
777570/?
@777566/000000 105E <+ на num pad>
777570/?
@
Код:1 .asect
2 000000 .=0
3 000000 000000 halt
4
5 000060 .=60
6 000060 001000 1000
7 000062 000000 0
8
9 000064 .=64
10 000064 001000 1000
11 000066 000000 0
12
13 000100 .=100
14 000100 000000 0
15 000102 000000 0
16
17 000300 .=300
18 000300 001000 1000
19 000302 000000 0
20
21 000304 .=304
22 000304 001000 1000
23 000306 000000 0
24
25 001000 .=1000
26 001000 005227 INC (PC)+
27 001002 000000 0
28 001004 000002 RTI
29
30
31 002000 .=2000
32 002000 012706 005000 MOV #5000, SP
33 002004 106427 000000 MTPS #0
34 002010 012737 000100 177564 MOV #100, @#177564
35 002016 012701 000005 MOV #5, R1
36 002022 012700 000060 MOV #60, R0
37 1$:
38 002026 005200 INC R0
39 002030 010037 177566 MOV R0, @#177566
40 2$:
41 002034 105737 177564 TSTB @#177564
42 002040 100375 BPL 2$
43 002042 077107 SOB R1, 1$
44
45 002044 000000 HALT
45
Код:@0/001625 0
@60/177777 1000
@62/000000 1000
@62/001000 0
@64/177777 0
@64/000000 1000
@66/000000 1000
@66/001000 0
@70/177777 0
@100/177777 0
@102/000000 0
@102/000000 0
@104/177777 0
@300/177777 1000
@302/000000 1000
@302/001000 0
@304/177777 0
@304/000000 1000
@306/000000 1000
@306/001000 0
@310/177777 0
@1000/041704 5227
@1002/000000 0
@1004/177777 0
@1004/000000 2
@2000/101764 12706
@2002/000000 5000
@2004/177777 106427
@2006/000000 0
@2010/177777 12737
@2012/000000 100
@2014/177777 177564
@2016/000000 12701
@2020/177777 5
@2022/000000 12700
@2024/177777 60
@2026/000000 5200
@2030/177777 10037
@2032/000000 177566
@2034/177777 105737
@2036/000000 177564
@2040/177777 100375
@2042/000000 77107
@2044/177777 0
@2000G - halt = 0
002000
@R7/002000 2000
@P - halt = 1
<ЗАВИС> (при этом halt = 0 уже не поможет, нужно halt=0 + DCOK=0 импульс и станет на 173000)
Тогда запросы протокола HX вообще не проходили бы.
Предлагаю запустить простую программу, которая выводит содержимое R0 по адресу 177566:
Результат запуска в эмуляторе:Код:@01000/...... 10037
001002/...... 177566
001004/...... 775
@R0/...... 101
@1000G
Код:@01000/000000 10037
001002/000000 177566
001004/000000 775
@R0/000113 101
@1000GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Отключил в эмуляторе прохождение прерываний.
Лог загрузки HX стал выглядеть так:
Код:HX: Готов к работе.
HX: READ : Unit: 0 | Block: 0 | ByteCount: 512
HX: READ : Unit: 0 | Block: 2 | ByteCount: 2048
HX: READ : Unit: 0 | Block: 6 | ByteCount: 1024
HX: READ : Unit: 0 | Block: 20 | ByteCount: 188
HX: READ : Unit: 0 | Block: 122 | ByteCount: 512
HX: READ : Unit: 0 | Block: 122 | ByteCount: 1374
HX: READ : Unit: 0 | Block: 19 | ByteCount: 430
HX: READ : Unit: 0 | Block: 23 | ByteCount: 16790
HX: READ : Unit: 0 | Block: 22 | ByteCount: 262
HX: READ : Unit: 0 | Block: 21 | ByteCount: 150
HX: READ : Unit: 0 | Block: 128 | ByteCount: 512
HX: READ : Unit: 0 | Block: 130 | ByteCount: 512
Экран терминала стал выглядеть так:
Код:010064/177777 100375
010066/000000 112537
010070/177777 177566
010072/000000 5304
010074/177777 1371
010076/000000 12700
010100/177777 5
010102/000000 4715
010104/177777 5300
010106/000000 1375
010110/177777 12700
010112/000000 1000
010114/177777 4715
010116/000000 110324
010120/177777 5300
010122/000000 1374
010124/177777 4715
010126/000000 4715
010130/177777 5007
@10000G
HX 2.2 - Cold boot..
HX DSK/TTY multiplexer v3.1 2014
буквы А печатает, а откуда такой новый драйвер есть DSK где-нибудь этот чтоб скачнуть?
у меня подозрение что вектор сконфигурирован нестандартно на этом slu, вопрос к гуру: такое может быть? зачем? как узнать этот вектор если оно так?