Как оказалось поздее, мне малость не повезло - это были кастомизированные платы (видимо, поэтому их дёшево и продавали) - причём, не только содержимым набортного ПЗУ, но и дешифратором адресного пространства на основе PLS100N (ака 556РТ2). Про PLS я понял не сразу, а когда понял - прилично огорчился, ибо - под рукой такого не было, а замена на что то типа 64кб ПЗУ - несовпадение по ногами. В общем, платы были отложены в сторону.
С полгода назад в руки попала плата - M8063 - их младший (если судить по функционалу) или старший (если судить по возрасту) брат. После некоторого количества приключений (особенно вставляют перемычки на этих платах - прямо форт Баярд) с этой платой я таки её запустил и даже начал рисовать свой вариант прошивки - с загрузкой с HX.
И вот как, почитывая тему (я уже не помню, как я в очередной раз на неё налетел) про прошивку 556РТ2 и похожих на неё микросхем (и веселье, сей процесс сопровождающий) в голове вдруг засияло озарение - что PLS100N - это таки АКА 556РТ2 А их у меня некоторое количество было. Так же вспомнилось, что в процессе разборки с M7676 я натыкался в доках не то на исходные прошивки, не то на описание процесса - как создать свою. Поиск показали, что я был прав оба раза.
Так начался второй сезон приключений с M7676. Первой серией которого была серия - "Всё о прошивке 556РТ2 на Стерх-007 и мифы, сей процесс сопровождающие". Поскольку тема немножко не об этом, если в кратце - нормально они шьются Стерхом (ну, по крайне мере - МОИМ). Нужно только помнить две вещи -
1) процент брака (особенно после отлёжки) у микросхем приличный, причём для некоторых (очень некоторых) у Стерха срабатывает защита по току
2) они плохо контачат с колодкой Стерха.
По второму пункту - сначала я облуживал ножки, а потом нашёл лайфхак - кладешь микросхему в панельку, потом слегка - примерно на миллиметр приподнимаешь - и зажимаешь. Посмотреть, в чём там дело - сложно, но предполагаю, что из за длинности широкого участка ножки микросхемы (тот, который в корпус уходит) - чё-то где-то в ZIF плохо зажимается, а если прпиоднять - зажимается (и уже нормально) узкий участок микросхему (тот, который уйдёт в плату или панельку_ Ну, это предположение, на котором я не настаиваю, но - метОда работает. Если микросхема опозналась как чистая (по моим прикидкам - больше 90 процентов), то шанс, что она прошьёся - тоже где то процентом 90. К сожалению, к моменту, когда я нащупал - КАК надо работать с микросхемами при прошивке - порядка 20-25 корпусов были так или иначе запороты именно по моей вине - сначала я решил, что только три микросхемы оказались рабочими и чистым, а все остальные - на помойку Оказалось - показалось
Далее были разборки с прошивкой - как же её правильно описать. Пока - в редакторе Стерха. Попутно нарисован скрипт, который прошивку в формату jedec или в формате, как её показывет Стерх, преобразует в более понятный вид (на очереди скрипт для обратного процесса)
Потом - попытка понять - у кого и что не работает.
И вот сегодня утром решил пойти немного по другому пути - нарисовал прошивку, которая использует только набортное ОЗУ (вот где кастомность пригодилась - на плате стоят две микрухи по 32 кб) и...
Код: Выделить всё
@HX0
HX 2.2 RT-11 Cold boot..
HX DSK/TTY multiplexer v3.3 2016
RT-11SB (S) V05.07
.R MSCPCK
.BOO ZB1:RT11SB
RT-11SB (S) V05.07
.R MSCPCK
.SHO CONF
RT-11SB (S) V05.07
Booted from ZB1:RT11SB
USR is set SWAP
EXIT is set SWAP
KMON is set NOIND
MODE is set NOSJ
TT is set NOQUIET
ERROR is set ERROR
SL is set OFF
EDIT is set KED
FORTRAN is set FORTRA
KMON nesting depth is 3
Global .SCCA flag is disabled
CLI is set DCL, CCL, UCL, NO UCF
SBC 11/21 (T11) Processor
56KB of memory
50 Hertz System Clock
Memory parity support
SB timer support
Global .SCCA support
FPU support
Extended unit support
.RUN SPEED3
Тест быстродействия (кэш, если он есть, выключен)
R1+R0 classic 408 499 оп./сек
R0(23456.)+R0(12345.) empty 136 143 оп./сек
R1(23456.)+R0(12345.) 102 518 оп./сек -> 415 081 оп./сек
R1+@R0 classic 272 352 оп./сек
R1(23456.)+@R0(M-12345.) empty 136 141 оп./сек
R1(23456.)+@R0(M-12345.) 90 768 оп./сек -> 272 348 оп./сек
11.*12. - команда не реализована
R2-R3(34567.)/R1(321.) - команда не реализована
34567./321. (FPU) empty - команда не реализована
34567./321. (FPU) - команда не реализована
MOV 8 word 1 empty 90 874 оп./сек
MOV 8 word 1 11 843 оп./сек -> 13 617 оп./сек
MOV 8 word 2 empty 90 760 оп./сек
MOV 8 word 2 14 555 оп./сек -> 17 334 оп./сек
R1 := M(word) 205 529 оп./сек
R1 := M(even byte) 204 249 оп./сек
R1 := M(odd byte) 204 249 оп./сек
#4+R0(2000) empty 272 297 оп./сек
#4+R0(2000) 136 148 оп./сек -> 272 295 оп./сек
CMP (R0)+,(R0)+ empty 272 297 оп./сек
CMP (R0)+,(R0)+ 116 720 оп./сек -> 204 287 оп./сек
#2+R0(2000) empty 272 297 оп./сек
#2+R0(2000) 136 148 оп./сек -> 272 295 оп./сек
INC R0 INC R0 empty 272 297 оп./сек
INC R0 INC R0 117 215 оп./сек -> 205 809 оп./сек
TST (R0)+ empty 272 282 оп./сек
TST (R0)+ 136 158 оп./сек -> 272 350 оп./сек
CLR R0 - SOB R0, . empty 408 476 оп./сек
CLR R0 - SOB R0, . 4 оп./сек -> 4 оп./сек
.
В ПЗУ ещё нет загрузчика с Zx, только с HX, так что пришлось пойти таким путём.
Кстати, плату мультиконтроллера с M8063 в текущем варианте использовать нельзя - из за особенностей распределения адресного пространства в/в, а вот с M7676 - без проблем.