В последнее время я пишу (или пробую) эмулятор для процессора 6502 NES.
Я узнаю много много вещей, некоторые из них меня действительно удивляют, и мне было интересно, как это объяснить, в частности, мне пришли в голову две вещи
- Наличие багов, в частности у 6502 похоже баг в режиме косвенной адресации, по крайней мере для первых процессоров (затрагивает используемый в NES)
- Неофициальные коды операций: Опять же, действительно удивительно, что существуют неофициальные коды, которые можно использовать, некоторые из них кажутся совершенно бесполезными (например, DOP и TOP, которые являются вариациями NOP), а некоторые из них кажутся композицией других кодов операций ( такой SAX или DCP).
Вопрос в том, как возможно, что при производстве миллионов этих процессоров они оказались с ошибками (такими как режим косвенной адресации), а также, с какой стати вы, как производитель, включаете неофициальные коды операций, которые могут быть удалены в следующих версиях? ? Это происходит и с более новыми процессорами?