И зачем так сложно?
Но в случае с PICом все должно быть проще: в программном цикле (для быстроты реакции) ждем M1 = 0, затем сразу же читаем D0-D7 и сравниваем на DI/EI. И в зависимости от результата дергать ногой BEEP. Но тут есть одна засада: обе схемы будут некорректно реагировать на команды #CB+#F3 и #CB+#FB. Но в варианте с PICом это можно предусмотреть, т.к. преффикс - это такой же опкод в цикле М1.