Анализ "методом детей капитана Гранта" показывает, что у oracleua неправильно считаны D12 и D46 - не контачит/поврежден разряд A2 адреса(всегда в 1):
D12_my.BIN
0000000000: 46 66 64 6C 68 48 04 04 | 00 20 22 66 46 46 66 64
0000000010: 6C 68 48 04 04 00 00 02 | 77 74 74 FC F8 D8 42 46
D12_roms2.bin
0000000000: ?? ?? ?? ?? 68 48 04 04 | ?? ?? ?? ?? 46 46 66 64
0000000010: ?? ?? ?? ?? 04 00 00 02 | ?? ?? ?? ?? F8 D8 42 46
Здесь вместо знаков вопроса дублирование ячеек с установленным A2=HIGH
D42_mem.bin
0000000000: ?? ?? ?? ?? A0 A1 38 3B | ?? ?? ?? ?? A0 A1 38 39
0000000010: ?? ?? ?? ?? A1 A5 A5 A5 | ?? ?? ?? ?? 24 25 26 27
D42_my_2.BIN
0000000000: A0 A1(A0) A2 A3(A2) A0 A1 38 3B | A0 A1 60(?A2) 63 A0 A1 38 39
0000000010: 80 3A A2 A3(A2) A1 A5 A5 A5 | A0(?80) A1 A2 38(?21) 24 25 26 27
Ячейки с A2=1 совпадают у oracleua и второй версии Mx_Serg.
В скобках указаны значения из первой версии. В скобках без знака(в левой части) - гарантированно неправильные(приведены для справки).
В скобках со знаком вопроса - вообще не понятно как так могло прочитаться сначала одно, потом другое.
Вот разница:
60=01100000
A2=10100010
A0=10100000
80=10000000
63=01100011 - содержимое ячейки по адресу 11
38=00111000
21=00100001
Предположение, что осевший металл создал емкости на входе выходных буферов и они медленно переключаются? Попробовать задержку сделать между сменой адресов побольше у программатора?
D42_my.BIN
0000000000: A0 A0 A2 A2 A0 A0 38 3A | A0 A1 A2 63 A0 A1 38 39
0000000010: 80 3A A2 A2 A0 A4 A4 A4 | 80 A1 A2 21 21(24) 25 25(26) 27
Это первая версия у Mx_Serg. В скобках указаны скорее всего правильные значения.
Итого D42 выглядит как-то так:
0000000000: A0 A1 A2 A3 A0 A1 38 3B | A0 A1 (60 или A2) 63 A0 A1 38 39
0000000010: 80 3A A2 A3 A1 A5 A5 A5 | (A0 или 80) A1 A2 (38 или 21) 24 25 26 27
Разница в шесть битов.