Этим вопросом я задавался не раз, когда сталкивался с кривой эмуляцией. Недавно на недопц увидел заметку о запуске линупса на компе на базе i4004. Глянул на исходник:
case 0xf8: { //DAC
uint8_t t = mCPU.A - 1;
mCPU.A = t;
mCPU.C = 1 ^ (t >> 4);
break;
подобная мешанина найдется и в других исходных текстах эмуляции. Дело в том, что опкод DAC описан как AC=AC-1, но в руководстве описан подробнее: AC=AC+15, что для 4бит это то же самое. Только вот флаг переноса меняется иначе, и в каждом исходнике используются не пойми какие конструкции. Оставлю описание.
Комментарии
Отправить комментарий