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