.В этой теме обсуждали, что из программ не будет работать без команды DAA. Большинство игр Специалиста точно будет работать (т.к команда DAA там обычно не нужна). Но часть системных программ, может быть даже большинство, не будет работать.
Это зависит ещё и от того какое ПЗУ стоит. В отличие от иностранных программ в отечественных самодельных ЭВМ (т.е МИКРО-80, РК86, Специалист и ОРИОН) программисты-любители, увы, не догадались как сделать самую короткую реализацию печати HEX-числа. Потому в МИКРО-80 и во всех последующих самоделках подпрограмма HEX_A (F815) в ROM-BIOS содержала вот такую цепочку:
Это чисто отечественное изобрЕтение, в импортных программах такого не найдешь. Очевидно эту процедуру последовательно заимствовали из МИКРО-80, не пытаясь написать что-то лучше. А в некоторых играх РК86 я встречал совсем неудачный алгоритм HEX_A размером ещё раза в 3-4 больше. В некоторых отечественных программах встречается и другой, еще более неоптимальный вариант (аж 12 байтов):
А вот в иностранных CP/M-программах написанных, естественно, профессионалами применяются два других, намного более оптимальных варианта:
Первый из этих вариантов стал чуть-чуть известен в СССР после публикации (примерно в 1987) в болгарском журнале "Компьютер за Вас" статьи "Шесть байтов HEXPRINT", где он был приведён. Но увы, стал известен лишь немногим, т.к выписывали журнал единицы (в том числе и я). Второй вариант впервые применён в DDT в 1977 и часто встречается в других программах CP/M.
Как видите, если не считать маскирование ниббла и команду для вывода, то вражеские варианты занимают всего по 6 байтов, а два неоптимальных отечественных - по 9 и по 12 байтов, т.е они соответственно аж в 1.5 и 2 раза длиннее. Очевидно это получилось из-за того, что неизвестный отечественный автор, кто писал монитор МИКРО-80 в 1981 году, ещё не знал, как с пользой использовать команду DAA.
Естественно, когда я модернизировал ПЗУ РК86, Специалиста и ОРИОНА, я выигрывал 3 байта применяя короткую импортную процедуру HEX_A. Подпрограмма HEX_A часто используется и при реализации подпрограммы десятичной печати (например в бейсике). Отечественный Бейсик (что производный от бейсика Билла), кстати, тоже использует DAA.
Но если не считать такой пользы от DAA, то вообще-то десятичная арифметика совсем низачем не нужна и без DAA вполне можно обойтись. Хотя есть некоторые антикварные процессоры, где арифметические команды, поставив десятичный флаг, можно заставить считать в двоично-десятичном виде. А в Intel сделали умнее, ограничились командой DAA и флагом нибблового переноса.
P.S. Подпрограмма SCOUTA (Saved ConOUT from A) в случае РК86, где подпрограмма CONOUT (F809) не портит регистры, имеет вид:
А полная подпрограмма HEX_A имеет вид: