С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Пардон, но что-то здесь неправильно. У меня был СКБ-НП-шный (Новосибирск) контроллер RK (на полной плате, на секциях 1804), так и ВМ2 с 055-й и ВМ3 с 134-й загружали RT-11 молча и без вопросов. Набрал BRK0, и вперед. Про таймер, правда, не помню.
Да, кстати, и 055, и 134 после B ждут три символа - первые два - название контроллера и третий - номер накопителя на этом контроллере. Так вот, третий символ не анализируется вообще, просто очищают биты 15-03 регистра с этим символом, а биты 02-00 используют в качестве номера накопителя. То есть если набрать BRK и нажать Enter, то у кода Enter'а (015) будут погашены старшие разряды, останется пятерка. Таким образом, BRK<Enter> эквивалентно BRK5.
Не помню, правда, если контроллер набрать неправильно, сразу пошлют, или тоже будут ждать третьего знака...
- - - Добавлено - - -
Может зависание прошивки 134 - это просто ожидание, когда заведется RK5: ?
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Если адрес SEL исправить на 0140000 то почти попадает. Правда почему не на четный адрес?
На реальном МС1201.02.
После нажатия кнопки УСТ.Код:000002 @R0/157777 R1/147530 R2/000000 R3/073616 R4/175776 R5/000030 R6/000016 R7/000002
Код:000401 @R0/000000 R1/147530 R2/000000 R3/177752 R4/000040 R5/000030 R6/000776 R7/000401
В имеющемся варианте прошивки 055 - она передаёт в контроллер не количество слов для чтения, а количество байтов, поэтому контроллер считывает два блока вместо одного и с адреса 01000 затирает код начального загрузчика:
Такое может пройти без вылета в пульт, если в считанных после нулевого блока данных записан подходящий код ( в RT-11 это место фактически не используется ).Код:001014 [000340] MOV #-512., @#177406 ; 001016:177000 -> 177406:000000 001022 [000350] MOV #5, @#177404 ; 001024:000005 -> 177404:000200 001030 [000340] BIT #-32640., @#177404 ; 001032:100200 -> 177404:000004 001036 [000344] BEQ 001030 ^^^ Последние команды [2] выполнены раз [4833] ^^^ 001030 [000344] HALT
Сложно представить такой алгоритм работы клона контроллера RK, при котором код загрузчика из прошивки 055 не считывал бы в память с диска два блока подряд вместо одного.
- - - Добавлено - - -
Имеющийся код загрузчика RK из прошивки 134 вообще не может работать, потому что после команды BIC #255., R1 - регистр R1 перестаёт указывать на RKCS и последующие команды лишаются смысла:
- - - Добавлено - - -Код:010750 [000340] MOV #-330., 2(R1) ; 010752:177266 -> 177406 010756 [000350] MOVB (R3)+, R2 ; 011510: 005 -> R2 010760 [000340] BIC #255., R1 ; 010762:000377 -> R1 :177404 010764 [000350] BIS R2, (R1) ; R2 :000005 -> 177400:000520 010766 [000340] TSTB (R1) ; 177400: 120 010770 [000340] BPL 010766
Код загрузчика RK из прошивки 377 работает нормально и позволяет предположить, что в имеющейся копии прошивки 134 потерян один бит:
Здесь, как и в прошивке 055, с загружаемого диска тоже считываются два блока - но на этот раз ничто не затирается и загрузка проходит успешно.Код:012206 [000344] MOV #-512., 2(R1) ; 012210:177000 -> 177406 012214 [000350] MOVB (R3)+, R2 ; 012444: 005 -> R2 012216 [000340] BIC #255., (R1) ; 012220:000377 -> 177404:000200 012222 [000344] BIS R2, (R1) ; R2 :000005 -> 177404:000200 012224 [000340] TSTB (R1) ; 177404: 004 012226 [000340] BPL 012224 ^^^ Последние команды [2] выполнены раз [6181] ^^^ 012230 [000350] TST (R1) ; 177404:000204 012232 [000340] BPL 012246 012246 [000340] CLRB (R1) ; 177404: 204 012250 [000344] CLR PC ; R7 :012252
- - - Добавлено - - -
Однако бит в прошивке 134 не потерян, потому что если его исправить - перестаёт совпадать контрольная сумма прошивки, проверяемая прошивкой при загрузке.
Последний раз редактировалось Patron; 30.07.2017 в 22:16.
Ещё вариант на МС1201.02 с 1806ВМ2.
После включения.
После нажатия кнопки УСТ.Код:000000 @R0/140001 R1/147530 R2/000000 R3/000000 R4/000000 R5/000000 R6/000776 R7/000000
- - - Добавлено - - -Код:000000 @R0/140001 R1/147530 R2/000000 R3/177752 R4/000040 R5/177562 R6/000776 R7/000000
Можно предположить что контрольная сумма была подсчитана уже при потерянном бите. А RK никто не проверял, вот и выпустили битую прошивку.
Более внимательное сравнение поведения прошивок 377 и 134 при загрузке с RK1 позволяет понять, что загрузка в прошивке 134 не может работать вообще - там кроме потерянного бита ещё много других проблем:
Рабочий код из прошивки 377 :
Код:002466 [000350] MOV 014052, R0 ; 014052:000001 -> R0 002472 [000340] MOV (R4)+, R3 ; 012556:012444 -> R3 002474 [000340] MOV R0, R2 ; R0 :000001 -> R2 002476 [000340] SWAB R2 ; R2 :000001 002500 [000344] MOV #-32640., R5 ; 002502:100200 -> R5 002504 [000350] MOV #1364., @#77774 ; 002506:002524 -> 077774 002512 [000340] MOV #224., @#77776 ; 002514:000340 -> 077776 002520 [000340] RESET 002522 [000340] RTI ; 017774:002524 -> PC ; 017776:000340 -> PSW 002524 [000340] MOV #4096., SP ; 002526:010000 -> R6 002530 [000340] CALL @(R4)+ ; PC :002532 -> 007776 012402 [000340] ASH #5, R2 ; 012404:000005 -> R2 :000400 012406 [000340] MOV R2, 6(R1) ; R2 :020000 -> 177412 012412 [000340] BR 012302 012302 [000340] BR 012206 012206 [000340] MOV #-512., 2(R1) ; 012210:177000 -> 177406 012214 [000350] MOVB (R3)+, R2 ; 012444: 005 -> R2 012216 [000340] BIC #255., (R1) ; 012220:000377 -> 177404:000200 012222 [000344] BIS R2, (R1) ; R2 :000005 -> 177404:000200 012224 [000340] TSTB (R1) ; 177404: 004 012226 [000340] BPL 012224
Уродский код из прошивки 134 ( сначала номер загружаемого привода помещается в R0, но затем пропущена половина вычислений и вместо этого используется адрес возврата ) :
- - - Добавлено - - -Код:004152 [000340] MOV @#077132, R0 ; 077132:000001 -> R0 004156 [000340] MOV #-32640., R5 ; 004160:100200 -> R5 004162 [000350] MOV (R4)+, R1 ; 001750:177404 -> R1 004164 [000350] MOV (R4)+, R2 ; 001752:001714 -> R2 004166 [000340] ADD #3840., R2 ; 004170:007400 -> R2 :001714 004172 [000340] MOV (R4), R3 ; 001754:002110 -> R3 004174 [000340] ADD #3840., R3 ; 004176:007400 -> R3 :002110 004200 [000340] MOV #224., @#77776 ; 004202:000340 -> 077776 004206 [000340] MOV R2, @#77774 ; R2 :011314 -> 077774 004212 [000340] MOV @#077114, SP ; 077114:016770 -> R6 004216 [000340] RESET 004220 [000340] RTI ; 017774:011314 -> PC ; 017776:000340 -> PSW 011314 [000340] ASH #5, R2 ; 011316:000005 -> R2 :011314 011320 [000342] MOV R2, 6(R1) ; R2 :054600 -> 177412 011324 [000340] BR 011214 011214 [000340] BR 010750 010750 [000340] MOV #-330., 2(R1) ; 010752:177266 -> 177406 010756 [000350] MOVB (R3)+, R2 ; 011510: 005 -> R2 010760 [000340] BIC #255., R1 ; 010762:000377 -> R1 :177404 010764 [000350] BIS R2, (R1) ; R2 :000005 -> 177400:000520 010766 [000340] TSTB (R1) ; 177400: 120 010770 [000340] BPL 010766
Аналогичный по размеру код, работающий нормально - может выглядеть так :
Код:004152 [000340] MOV @#077132, R0 ; 077132:000001 -> R0 004156 [000340] MOV #-32640., R5 ; 004160:100200 -> R5 004162 [000350] MOV (R4)+, R1 ; 001750:177404 -> R1 004164 [000340] MOV #77774, R2 ; 004166:077774 -> R2 004170 [000340] MOV (R4)+, (R2) ; 001752:001714 -> 077774 004172 [000340] ADD #3840., (R2)+ ; 004174:007400 -> 077774:001714 004176 [000340] MOV (R4), R3 ; 001754:002110 -> R3 004200 [000340] ADD #3840., R3 ; 004202:007400 -> R3 :002110 004204 [000340] MOV #224., (R2) ; 004206:000340 -> 077776 004210 [000340] MOV R0, R2 ; R0 :000001 -> R2 004212 [000340] MOV @#077114, SP ; 077114:016770 -> R6 004216 [000340] RESET 004220 [000340] RTI ; 017774:011314 -> PC ; 017776:000340 -> PSW 011314 [000340] ASH #13., R2 ; 011316:000015 -> R2 :000001 011320 [000340] MOV R2, 6(R1) ; R2 :020000 -> 177412 011324 [000340] BR 011214 011214 [000340] BR 010750 010750 [000340] MOV #-512., 2(R1) ; 010752:177000 -> 177406 010756 [000350] MOVB (R3)+, R2 ; 011510: 005 -> R2 010760 [000340] BIC #255., (R1) ; 010762:000377 -> 177404:000200 010764 [000350] BIS R2, (R1) ; R2 :000005 -> 177404:000200 010766 [000340] TSTB (R1) ; 177404: 004 010770 [000340] BPL 010766
Если внести такой код в прошивку 134 ( 134v2.dat ) - она начинает загружать RK не хуже, чем прошивка 377 :
Код:***** ДОСТУПНОЕ ОЗУ - 256 K * @ 001000 @B $DK1 CHMDKD0 XXDP+ DK MONITOR BOOTED VIA UNIT 1 28K UNIBUS SYSTEM ENTER DATE (DD-MMM-YY):
Последний раз редактировалось Patron; 31.07.2017 в 03:12.
Чудеса! Тогда, спрашивается, как я загружал тот RK? Точно ведь работал, и с ВМ2, и с ВМ3. И альтернативных прошивок тогда еще не было, ни 279-й, ни 377-й - дело было в 89-м. Уже в 90-м мне достались КЖД и ST225, после чего RK был забыт, точнее, мы его продали, вместе с накопителями.
- - - Добавлено - - -
А как на тему эмуляции клавиатуры 7004? Когда я запускал ДИАМС, мы это довольно долго обсуждали...
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Тот самый, от СКБ НП - 248. Его явно склепали по спецификациям СМ-овского. По слухам даже диски, записанные на СМ-ке читались на нем и наоборот. А еще он, в отличие от СМ-овского, кушал как 12-секторные диски, так и 24-секторные. Там же под блином был стальной диск с секторными просечками, рядом с ним индукционный датчик. Так вот, выпускались диски как с двенадцатью секторными просечками (плюс одна из них сдвоенная, датчик начала оборота), для наших клонов PDP-11 и с 24, для СМ-1/2. Так вот, у меня, как раз, весело работали диски ИЗОТ-1370 от СМ-1, там и постоянный диск 24-секторный, и сменные были такие же.
А еще запоротые сменные кассетные диски от этих RK весело ремонтировались - идешь на "большой" ВЦ с ЕС-ками, выпрашиваешь битый пакет 29М, от ЕС-5061, разбираешь его, там пара-тройка блинов битые, остальные целые, меняешь блин в кассете, и вперед!
Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)
Эту тему просматривают: 3 (пользователей: 0 , гостей: 3)