В общем смысл этой "зогатки" стал для меня яснее, пока
я писал программу под 6502.
Обычный
6502 стартует в состоянии с включенной десятичной BCD-арифметикой.
Это априори очень удобно, если устройство работает с выводом на 7-сегментные индикаторы.
Индикация в этом случае аппаратно предельно проста, но нужно не забывать про это!
Когда
я писал программу под К580ВМ80, счетчик ходов у меня был реализован очень просто:
Это потому как я априори знал, что есть системная процедура вывода на экран слова в десятичном виде.
Но когда я начал ту же программу писать под
6502, такой подпрограммы у меня не было,
поэтому счетчик ходов я написал в BCD-арифметике:
А на экран выводил BCD-числа как НЕХ числа:
И всё было хорошо, только не надо забывать, что если не сделать
CLD на старте, то какой-нибудь
длинный счётчик в программе
6502 будет считать в
BCD-арифметике и это приведёт к ошибкам!
Поэтому в начале программы
CLD я выполнял, чтобы считать обычным образом:
А BCD-счетчик обрамлён включением и выключением BCD-арифметики:
Так что, несмотря на то, что у аналога
6502 -
Ricoh 2A03 - BCD-арифметики нет вовсе,
программы под него пишут (и писали) кросс-средствами разработки для
6502, которые просто
не поймут, что BCD-арифметики нет как факт! Именно для этого вносится ясность:
CLD;------- BCD-арифметика выключена! Навечно... навсегда!