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