то он мог вполне считать и длительность нажатия кнопки, или же кол-во нажатых кнопок, а не обязательно длину импульса
ну универсального способа помоему нет, программа ведь может только для вида читать порт и анализировать бит магнитофона так, как-будто на самом деле читает магнитофон, а на самом деле просто ожидает нажатие кнопки