
Сообщение от
ivagor
НР можно починить малой кровью
Спасибо! Я чуть подправил:
Код:
elif vv55a_mode == 0x82:
if not (addr % 4):
return 0xff - kb_mem[0]
elif addr % 4 == 1:
if kb_ports[0] & kb_mem[0] or (kb_ports[2] & kb_mem[2]) % 0x10:
return 0xff - kb_ports[1]
else:
return 0xff - (kb_ports[1] & 2)
elif addr % 4 == 2:
return 0xff - kb_mem[2]

Сообщение от
ivagor
чтобы диагональ не превращалась в квадрат нужно сильно переделывать.
А в чём суть переделки?

Сообщение от
svofski
А если как сейчас, то в принципе ок с учетом того, что я там сделано 1 ^ во всех адресациях регистров, но получается вот этот затык с перепутанным AF.
Бог с ним, с монитором - регистровую пару легко перевернуть в итоге при выводе. Просто я не совсем понял почему перемена местами A и F при их задании в начале файла всё крашит. Не стал разбираться и бросил. А вот 1 ^ меня реально не очень порадовало - это же дополнительная медленная логическая операция, которая будет замедлять эмуляцию инструкций. Но опять же всё оставил так, как ты сделал.