Вопрос хороший, как раз таким как я начинающим разбираться. С “цирком” , конечно, перебор.
В Proteus всё правильно выводится. Код из первого сообщения