Цитата Сообщение от Lisitsin Посмотреть сообщение
TRACE_ADC16_SBC16_PART1.zip
Попались на строке 66048. Вместо

87ac 80ff 8000 fe91
имеем

87ac 80ff 8000 fe91
то есть ошибочно взведен PF.

PF в ADC16/SBC16 считается так. Считается значение PF как для всех прочих арифметических операций, но только для старших половин результата, прежнего значения HL и операнда.

Далее делается следующее. Если сумма второго операнда (то, что добавляется) и CF вызывает переполнение (то есть, CF взведен и операнд был равен #FFFF или стал равен #0000 после сложения с CF), тогда результирующее значение PF меняется на обратное, то есть взводится если сброшен и наоборот.

Мы уже знаем, что ADC8 считается верно, значит правильно работающее вычисление PF для арифметических инструкций есть, и нужно только правильно применить его к ADC16/SBC16.