В результате дело оказалось не в памяти. Если точнее - в памяти, но в моей, а не компьютернойЯ забыл, что Z80 при использовании прерывания /INT для считывания вектора недостаточно управлять буфером данных только по /RD, нужно ещё учитывать низкий уровень /M1 и /IORQ. А вот это у меня, как раз, и не было сделано и при приёме символа SIO и срабатывании прерывания, процессор вместо вектора хватал то, что было на шине данных с отключённым буфером, т.е. что попало
А я грешил на память, так как уже не знал, в чём ещё может быть дело. К счастью, я вспомнил про "какую-то хитрость при прерывании" и полез в документацию. Посмотрел диаграммы, обругал себя нехорошим словом, добавил к управлению буфером пару мелких микросхем и облегчённо выдохнул
Но, в любом случае, большое спасибо за ответы, если и не мне, то кому-нибудь они помогут.




Я забыл, что Z80 при использовании прерывания /INT для считывания вектора недостаточно управлять буфером данных только по /RD, нужно ещё учитывать низкий уровень /M1 и /IORQ. А вот это у меня, как раз, и не было сделано и при приёме символа SIO и срабатывании прерывания, процессор вместо вектора хватал то, что было на шине данных с отключённым буфером, т.е. что попало
Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
