Давно повелось ругать процессор i8080 за "баг" с командой DAA, мол она не работает с вычитанием. А вот на Z80 ее "пофиксили".
Наткнулся тут на официальный гайд от Интел. И о чудо! DAA и не должна работать с вычитанием!
http://www.tramm.li/i8080/Intel%208080- ... 0Intel.pdf
Читаем "DECIMAL SUBTRACTION" на стр. 6-14 с описанием остроумного алгоритма вычитания.
В Z80 расширили регистр флагов для поддержки вычитания в DAA. А вот в прямом потомке - 8086 пошли другим путем, введя команду DAS, аналог DAA для вычитания.
Так что все глюки при портировании с 8080 на Z80 не из-за Интела, а из-за ленивых программистов, которые не курят мануалы, и используют DAA, как попало.