fk0, легенда (09.06.2020 21:28, просмотров: 845) ответил RxTx на Интересный взгляд, но не в этом дело. Необходимо было правильно
считать время. Для этого использовали прямые аппаратные счетчики -
на 10, на 6 итд. Прямой доступ к регистрам-счетчикам принимают за
"BCD". Схематика двоично-десятичных счетчиков довольно проста.
Для "правильного подсчёта времени" достаточно единственного
бинарного счётчика секунд. Схемотехника BCD-регистров сложнее, чем
бинарный сумматор (нужный для инкремента раз в секунду): нужен не
один, а аж два сумматора на регистр (для "двоично-десятичной
коррекции") и логика вычисления (полу)переноса. 1. При сложении двоично-десятичных чисел каждый раз, когда происходит перенос бита в старший полубайт, необходимо к полубайту, от которого произошёл перенос, добавить корректирующее значение 0110 (= 610 = 1610 — 1010: разница количеств комбинаций полубайта и используемых значений).
2. При сложении двоично-десятичных чисел каждый раз, когда встречается недопустимая для полубайта комбинация (число, большее 9), необходимо к каждой недопустимой комбинации добавить корректирующее значение 0110 с разрешением переноса в старшие полубайты.
[ZX]