Можно через элемент или.Так Вы же написали, любой выход коммутирует с любым входом, что тут может быть непонятным(так правильнее, чем наоборот, т. к. на выходе не может быть значения сразу с двух входов)?!
Так если всё так просто, сделайте ваш вариант коммутатора.А насчет макросов, так средняя часть, где всё сохраняется, запоминается и не понадобится в нашем случае, в макросах проекта есть отдельные макросы для вставки-чтения бита!