Главная Информация | |
---|---|
Запущен | 1975 |
Общий производитель (и) | |
Производительность | |
Максимум. Тактовая частота процессора | от 1 МГц до 3 МГц |
Ширина данных | 8 |
Ширина адреса | 16 |
Архитектура и классификация | |
Набор инструкций | МОС 6502 |
инструкции | 56 |
Физические характеристики | |
Транзисторы | |
Пакет(ы) |
|
История | |
Предшественник |
|
Преемник |
MOS Technology 6502 (обычно произносится как « шестьдесят пять-но-два» или «шесть-пять-но-два») [3] представляет собой 8-битный микропроцессор , разработанный небольшой группой под руководством Чака Педдла для MOS Technology . . Команда дизайнеров ранее работала в Motorola над проектом Motorola 6800 ; 6502 по сути является упрощенной, менее дорогой и быстрой версией этой конструкции.
Когда он был представлен в 1975 году, 6502 был самым дешевым микропроцессором на рынке со значительным отрывом. Первоначально он продавался менее чем за одну шестую стоимости конкурирующих разработок более крупных компаний, таких как 6800 или Intel 8080 . Его введение вызвало быстрое снижение цен на всем рынке процессоров. Наряду с Zilog Z80 он положил начало серии проектов, которые привели к революции домашних компьютеров в начале 1980-х годов.
Популярные игровые приставки и компьютеры, такие как Atari 2600 , 8-битное семейство Atari , Apple II , Nintendo Entertainment System , Commodore 64 , Atari Lynx , BBC Micro и другие, используют 6502 или варианты базовой конструкции. Вскоре после появления 6502 компания MOS Technology была полностью куплена Commodore International , которая продолжала продавать микропроцессор и лицензии другим производителям. В первые дни 6502 он был вторичным поставщиком Rockwell и Synertek , а позже лицензирован другим компаниям.
В 1981 году Western Design Center начал разработку версии CMOS 65C02 . Это по-прежнему широко используется во встроенных системах с предполагаемыми объемами производства в сотни миллионов. [4]
6502 был разработан многими из тех же инженеров, которые разработали семейство микропроцессоров Motorola 6800 . [5] Motorola начала проект микропроцессора 6800 в 1971 году с Томом Беннеттом в качестве главного архитектора. Компоновка микросхемы началась в конце 1972 г., первые микросхемы 6800 были изготовлены в феврале 1974 г., а полное семейство было официально выпущено в ноябре 1974 г. [6] [7] Джон Бьюкенен был разработчиком микросхемы 6800 [8] [9] и Род Оргилл, который позже сделал 6501, помогал Бьюкенену с анализом схемы и компоновкой микросхемы. [10] Билл Менш присоединился к Motorola в июне 1971 года после окончания Университета Аризоны (в возрасте 26 лет). [11]Его первым заданием была помощь в определении периферийных ИС для семейства 6800, а позже он был главным разработчиком адаптера периферийного интерфейса (PIA) 6820. [12] Инженеры Motorola могли выполнять аналоговое и цифровое моделирование на мейнфрейме IBM 370-165 . [13] Беннетт нанял Чака Педдла в 1973 году для поддержки архитектуры продуктов семейства 6800, которые уже находились в разработке. [14] Он участвовал во многих областях, включая разработку 6850 ACIA (последовательный интерфейс). [15]
Целевыми клиентами Motorola были признанные производители электроники, такие как Hewlett-Packard , Tektronix , TRW и Chrysler . [16] В мае 1972 года инженеры Motorola начали посещать избранных клиентов и делиться подробностями о предложенной ими 8-битной микропроцессорной системе с ПЗУ, ОЗУ, параллельным и последовательным интерфейсами. [17]В начале 1974 года они предоставили инженерные образцы микросхем, чтобы клиенты могли создавать прототипы своих конструкций. Стратегия Motorola «полное семейство продуктов» была сосредоточена не на цене микропроцессора, а на снижении общей стоимости проектирования для клиента. Они предложили программное обеспечение для разработки на компьютере с разделением времени, систему отладки «EXORciser», обучение на месте и поддержку инженера по применению на месте. [18] [19] И Intel, и Motorola первоначально объявили цену в 360 долларов за один микропроцессор. [20] [21] Фактическая цена за объемы производства была намного меньше. Motorola предложила дизайнерский комплект, содержащий 6800 с шестью чипами поддержки, за 300 долларов. [22]
Педдл, который сопровождал продавцов при посещении клиентов, обнаружил, что клиентов отталкивала высокая стоимость микропроцессорных чипов. [23] В то же время эти визиты неизменно приводили к тому, что инженеры, которых он представлял, составляли списки необходимых инструкций, которые были намного меньше, чем «все эти причудливые инструкции», которые были включены в 6800. [24] Педдл и другие члены команды начал обрисовывать в общих чертах конструкцию микропроцессора с улучшенными характеристиками и уменьшенного размера. В то время новое предприятие Motorola по производству полупроводников в Остине, штат Техас, испытывало трудности с производством МОП-микросхем, и середина 1974 года стала началом годичного спада в полупроводниковой промышленности. Кроме того, многие из Месы, Аризонасотрудники были недовольны предстоящим переездом в Остин, штат Техас . [25]
Руководство подразделения полупроводниковых продуктов Motorola было перегружено проблемами и не проявило интереса к предложению Педдла по недорогому микропроцессору. В конце концов Педдл получил официальное письмо с просьбой прекратить работу над системой. [26] Педдл ответил на приказ, сообщив Motorola, что письмо представляет собой официальное заявление о «прекращении проекта», и поэтому интеллектуальная собственность, которую он разработал к тому моменту, теперь принадлежит ему. [27]В интервью в ноябре 1975 года председатель Motorola Роберт Гэлвин в конечном итоге согласился с тем, что концепция Педдла была хорошей и что подразделение упустило возможность: «Мы выбрали неправильных руководителей в подразделении полупроводниковых продуктов». Дивизия была реорганизована, сменилось руководство. Новый вице-президент группы Джон Уэлти сказал: «Организация по продажам полупроводников потеряла чувствительность к потребностям клиентов и не могла принимать быстрые решения». [28]
Педдл начал искать источник финансирования этого нового проекта за пределами Motorola. Сначала он обратился к генеральному директору Mostek Л.Дж. Севину , но тот отказался. Позже Севин признался, что это произошло потому, что он боялся, что Motorola подаст на них в суд. [29]
Когда Педдл посещал Ford Motor Company во время одной из своих поездок по продажам, Боб Джонсон, впоследствии глава подразделения автоматизации двигателей Ford, упомянул, что их бывший коллега Джон Пайвинен перешел в General Instrument и сам изучал дизайн полупроводников. [30] Затем Пайвинен вместе с двумя другими руководителями General Instrument, Мортом Джаффе и Доном Маклафлином, основал компанию MOS Technology в Вэлли-Фордж, штат Пенсильвания, в 1969 году. Allen-Bradley , поставщик электронных компонентов и промышленных средств управления, приобрела контрольный пакет акций в 1970 году. [31] Компания разработала и изготовила индивидуальные ИС для клиентов и разработала линейку микросхем калькуляторов. [32]
После того, как усилия Мостека провалились, Педдл подошел к Пайвинен, который «сразу понял». [33] 19 августа 1974 года Чак Педдл, Билл Менш, Род Оргилл, Гарри Боуком, Рэй Херт, Терри Холдт и Уил Матис покинули Motorola и присоединились к MOS. Майк Джейнс присоединился позже. Из семнадцати дизайнеров микросхем и специалистов по компоновке в команде 6800 осталось восемь. Целью группы было разработать и произвести недорогой микропроцессор для встраиваемых приложений и охватить как можно более широкую клиентскую базу. Это было бы возможно только в том случае, если бы микропроцессор был недорогим, а команда установила целевую цену на уровне 5 долларов за объем. [34] Позже Менш заявил, что целью была не цена самого процессора, а создание набора микросхем, которые можно было бы продавать по 20 долларов.чтобы конкурировать с недавно представленным Intel 4040 , который продавался за 29 долларов в аналогичном полном наборе микросхем. [35]
Чипы производятся путем печати нескольких копий дизайна чипа на поверхности «пластины» , тонкого диска из особо чистого кремния. Чипы меньшего размера можно печатать в большем количестве на одной и той же пластине, что снижает их относительную цену. Кроме того, пластины всегда содержат некоторое количество крошечных физических дефектов, разбросанных по поверхности. Любой чип, напечатанный в этом месте, выйдет из строя и должен быть утилизирован. Чипы меньшего размера означают, что любая отдельная копия с меньшей вероятностью будет напечатана с дефектом. По обеим этим причинам стоимость конечного продукта сильно зависит от размера конструкции чипа. [36]
Первоначальные чипы 6800 предназначались для180 мил × 180 мил [а] (4,6 мм × 4,6 мм) , но макет был завершен в212 мил × 212 мил (5,4 мм × 5,4 мм) или площадью 29,0 мм 2 . [37] Для нового дизайна цель по затратам требовала153 мил × 168 мил (3,9 мм × 4,3 мм) или площадь16,6 мм 2 . [38] Для достижения этой цели потребуется несколько новых методов.
Во время разработки модели 6502 на рынке появилось два значительных новшества, которые обеспечили значительное снижение затрат. Первым был переход на NMOS с истощающей нагрузкой . В 6800 использовался ранний процесс NMOS, который требовал трех напряжений питания, но одной из особенностей чипа был встроенный удвоитель напряжения , который позволял использовать один источник питания +5 В для внутренних +5, -5 и +12 В, в отличие от других . чипы той эпохи, такие как Intel 8080 , для которых требовалось три отдельных контакта питания. [39]Хотя эта функция упростила блок питания и расположение контактов, она по-прежнему требовала отдельных шин питания для различных вентилей на микросхеме, что увеличивало сложность и размер. При переходе к новой конструкции с истощающей нагрузкой все, что было необходимо, — это один источник питания +5 В, что устраняло всю эту сложность. [40]
Еще одним практическим преимуществом было то, что тактовый сигнал для более ранних процессоров должен был быть достаточно сильным, чтобы выдержать все рассеивание при прохождении через схемы, что почти всегда требовало отдельного внешнего чипа, который мог подавать мощный сигнал. При снижении энергопотребления NMOS часы можно было перенести на микросхему, что упростило общую конструкцию компьютера. Эти изменения значительно снизили сложность и стоимость внедрения полной системы. [40]
Еще одним изменением, которое имело место, было введение маскирования проекций. Раньше чипы наносились на поверхность пластины, помещая маску на поверхность пластины, а затем освещая ее ярким светом. Маски часто собирали крошечные частицы грязи или фоторезиста , когда они снимались с чипа, вызывая дефекты в этих местах при любой последующей маскировке. В сложных конструкциях, таких как процессоры, использовалось бы 5 или 6 таких шагов маскирования, и вероятность того, что хотя бы один из этих шагов приведет к дефекту, была очень высока. В большинстве случаев 90% таких проектов имели недостатки, что приводило к 10% доходности. Цена рабочих образцов должна была покрывать производственные затраты на 90%, которые были выброшены. [41]
В 1973 году Perkin-Elmer представила систему Micralign , которая проецировала изображение маски на пластину вместо прямого контакта. Маски больше не собирали грязь с пластин и прослужили порядка 100 000 использований, а не 10. Это устранило поэтапные сбои и высокий уровень дефектов, которые раньше наблюдались в сложных конструкциях. Доходность процессоров сразу подскочила с 10% до 60 или 70%. Это означало, что цена ЦП снизилась примерно на такую же величину, и микропроцессор внезапно стал массовым устройством. [41]
Существующие производственные линии MOS Technology были основаны на более старой технологии PMOS, они еще не начали работать с NMOS, когда прибыла команда. Пайвинен пообещал собрать и запустить линейку NMOS вовремя, чтобы начать производство нового процессора. Он выполнил обещание, новая линия была готова к июню 1975 г. [42]
Чак Педдл, Род Оргилл и Уил Мэтис разработали первоначальную архитектуру новых процессоров. Статья в журнале EDN за сентябрь 1975 г. дает следующее краткое описание конструкции: [43]
Семейство MOS Technology 650X представляет собой сознательную попытку восьми бывших сотрудников Motorola, которые работали над разработкой системы 6800, выпустить часть, которая заменит и превзойдет 6800, но будет продаваться дешевле. Оглядываясь назад на проект 6800, команда MOS Technology, возглавляемая Чаком Педдлом, внесла следующие архитектурные изменения в ЦП Motorola…
Основное изменение с точки зрения размера микросхемы заключалось в исключении драйверов с тремя состояниями из выходов адресной шины. Это было включено в 6800, чтобы позволить ему работать с другими микросхемами в ролях прямого доступа к памяти (DMA) и совместной обработки за счет значительного пространства на кристалле. На практике использование такой системы требовало, чтобы другие устройства были такими же сложными, и вместо этого разработчики, как правило, использовали внешние системы для координации такого доступа. В 6502 просто убрана эта функция, в соответствии с его конструкцией недорогого контроллера, используемого для конкретных задач и взаимодействующего с простыми устройствами. Педдл предположил, что любой, кому действительно нужен этот стиль доступа, может реализовать его с помощью одного 74158 . [44] [б]
Следующим важным отличием было упрощение регистров. Для начала был снят один из двух аккумуляторов . К регистрам общего назначения, таким как аккумуляторы, должны обращаться многие части декодера команд, и, следовательно, требуется значительное количество проводов для перемещения данных в их хранилище и из них. Два аккумулятора упрощают многие задачи кодирования, но требуют значительной сложности самой конструкции микросхемы. [43] Дальнейшая экономия была достигнута за счет уменьшения регистра стека с 16 до 8 бит, а это означало, что стек мог иметь длину только 256 байт, что было достаточно для предполагаемой роли микроконтроллера. [43]
16-битный индексный регистр IX был разделен на две части, став X и Y. Что еще более важно, изменился стиль доступа; в 6800 IX содержал 16-битный адрес, который был смещен на 8-битное число, указанное в инструкции, два были добавлены для получения окончательного адреса. В 6502 (и большинстве других конструкций) 16-битный базовый адрес сохранялся в инструкции, и к нему добавлялись X или Y. [44]
Наконец, набор инструкций был упрощен, освободив место в декодере и логике управления. Из исходных 72 инструкций в 6800 осталось 56. Среди удаленных были любые инструкции, которые перемещали данные между двумя аккумуляторами 6800, а также ряд инструкций ветвления, вдохновленных PDP-11 , например, возможность прямого сравнения двух числовых значений. В 6502 использовалась более простая система, которая обрабатывала сравнения, выполняя математические операции с аккумулятором, а затем проверяя флаги результата. [44]
Высокоуровневый дизайн чипа пришлось превратить в чертежи транзисторов и межсоединений. В MOS Technology «макет» был очень ручным процессом, выполняемым цветными карандашами и пергаментной бумагой . Макет состоял из тысяч многоугольников на шести разных рисунках; по одному для каждого слоя производственного процесса. Учитывая ограничения по размеру, приходилось постоянно учитывать всю конструкцию микросхемы. Менш и Пайвинен работали над декодером инструкций [46] , а Менш, Педдл и Оргилл работали над АЛУ и регистрами. Еще одним усовершенствованием, разработанным на вечеринке, стал способ совместного использования части внутренней проводки, что позволило уменьшить размер ALU. [47]
Несмотря на все их усилия, окончательная конструкция оказалась на 5 милов шире. [48] Первые 6502 чипа имели размер 168 × 183 мил (4,3 × 4,7 мм) или площадь 19,8 мм 2 . Инструкция повернуть вправо (ROR) не работала в первом кремнии, поэтому инструкция была временно исключена из опубликованных документов, но следующая итерация проекта уменьшила размер чипа и исправила инструкцию повернуть вправо, которая затем была включена в пересмотренную документацию. . [49]
MOS представит два микропроцессора, основанных на той же базовой конструкции: 6501 будет подключаться к тому же разъему, что и Motorola 6800, а 6502 переделает распиновку для поддержки встроенного тактового генератора. Оба будут работать с другими микросхемами поддержки, разработанными для 6800. Они не будут запускать программное обеспечение 6800, потому что у них другой набор инструкций, другие регистры и, в основном, разные режимы адресации. [50] Род Оргилл отвечал за дизайн 6501; он помогал Джону Бьюкенену в Motorola с 6800. Билл Менш сделал 6502; он был разработчиком адаптера периферийного интерфейса 6820 (PIA) в Motorola. Гарри Боуком, Майк Джейнс и Сидни-Энн Холт помогли с макетом.
Представление микропроцессора MOS Technology отличалось от традиционного запуска продукта, который длился несколько месяцев. Первый запуск новой интегральной схемы обычно используется для внутреннего тестирования и предоставляется избранным клиентам в качестве «технических образцов». Эти чипы часто имеют один или два незначительных конструктивных дефекта, которые будут исправлены до начала производства. Цель Чака Педдла состояла в том, чтобы продать первые партии чипов 6501 и 6502 посетителям торговой выставки Wescon в Сан-Франциско, начавшейся 16 сентября 1975 года. Педдл был очень эффективным представителем, и микропроцессоры MOS Technology широко освещались в отраслевой прессе. Одним из первых был полностраничный рассказ о микропроцессорах MCS6501 и MCS6502 в выпуске журнала Electronics от 24 июля 1975 года .EE Times (24 августа 1975 г.), [52] EDN (20 сентября 1975 г.), Electronic News (3 ноября 1975 г.), Byte (ноябрь 1975 г.) [53] и Microcomputer Digest (ноябрь 1975 г.). [54] Реклама 6501 появилась в нескольких публикациях в первую неделю августа 1975 года. 6501 будет продаваться на Wescon по 20 долларов за штуку . [55] В сентябре 1975 года реклама включала микропроцессоры 6501 и 6502. 6502 будет стоить всего 25 долларов (что эквивалентно 126 долларам в 2021 году). [56]
Когда MOS Technology прибыла на Вескон, они обнаружили, что экспонентам не разрешается ничего продавать на выставочной площадке. Они арендовали MacArthur Suite в отеле St. Francis и направили туда клиентов для покупки процессоров. В комплексе процессоры хранились в больших банках, что означало, что чипы находятся в производстве и легко доступны. Покупатели не знали, что нижняя половина каждой банки содержит нефункциональные чипсы. [57] Чипы стоили 20 и 25 долларов , а пакет документации — еще 10 долларов . Пользователям было предложено сделать ксерокопиидокументов — недорогой способ для MOS Technology распространять информацию о продуктах. В предварительных таблицах данных было указано всего 55 инструкций, за исключением инструкции Rotate Right (ROR), которая не работала правильно на этих ранних чипах. Обзоры в Byte и EDN отметили отсутствие инструкции ROR. Следующая версия макета устранила эту проблему, и в таблице данных за май 1976 г. было указано 56 инструкций. Педдл хотел, чтобы каждый заинтересованный инженер и любитель имел доступ к чипам и документации; другие полупроводниковые компании хотели иметь дело только с «серьезными» клиентами. Например, компания Signetics представляла микропроцессор 2650 , и в ее рекламе читателям предлагалось писать для получения информации на фирменном бланке своей компании.[58]
Штырь | 6800 | 6501 | 6502 |
---|---|---|---|
2 | Остановить | Готовый | Готовый |
3 | ∅1 (дюйм) | ∅1 (дюйм) | ∅1 (выход) |
5 | Действительный адрес памяти | Действительный адрес памяти | Северная Каролина |
7 | Автобус доступен | Автобус доступен | СИНХРОНИЗАЦИЯ |
36 | Включение шины данных | Включение шины данных | Северная Каролина |
37 | ∅2 (дюйм) | ∅2 (дюйм) | ∅0 (дюйм) |
38 | Северная Каролина | Северная Каролина | Установить флаг переполнения |
39 | Трехуровневое управление | Северная Каролина | ∅2 (выход) |
Представление 6501/6502 в печати и на Wescon имело огромный успех. Обратной стороной было то, что широкое освещение в прессе привлекло внимание Motorola. В октябре 1975 года Motorola снизила цену одного микропроцессора 6800 со 175 до 69 долларов . Комплект для проектирования системы за 300 долларов был уменьшен до 150 долларов , и теперь он поставлялся с печатной платой. [59] 3 ноября 1975 г. Motorola обратилась в Федеральный суд с требованием запретить компании MOS Technology производить и продавать микропроцессорные продукты. Они также подали иск о нарушении патентных прав и незаконном присвоении коммерческой тайны. Motorola заявила, что семь бывших сотрудников присоединились к MOS Technology для создания микропроцессорных продуктов этой компании. [60]
Motorola была миллиардной компанией с правдоподобным делом и юристами. 30 октября 1974 года Motorola подала многочисленные патентные заявки на семейство микропроцессоров и получила двадцать пять патентов. Первый был в июне 1976 года, а второй был передан Биллу Меншу 6 июля 1976 года для макета микросхемы 6820 PIA. Эти патенты касались шины 6800 и того, как периферийные микросхемы взаимодействовали с микропроцессором. [61]Motorola начала производить транзисторы в 1950 году и имела портфель патентов на полупроводники. Allen-Bradley решила не бороться с этим делом и продала свою долю в MOS Technology обратно основателям. В иске фигурировали имена четырех бывших инженеров Motorola: Чак Педдл, Уилл Мэтис, Билл Менш и Род Оргилл. Все они были названы изобретателями в 6800 патентных заявках. В процессе обнаружения Motorola обнаружила, что один инженер, Майк Джейнс, проигнорировал инструкции Педдла и передал свои 6800 проектных документов в MOS Technology. [62] В марте 1976 года у теперь уже независимой MOS Technology заканчивались деньги, и ей пришлось урегулировать дело. Они согласились отказаться от процессора 6501, заплатив Motorola 200 долларов.000 и вернуть документы, которые Motorola утверждала как конфиденциальные. Обе компании согласились на перекрестное лицензирование патентов на микропроцессоры. [63] В мае того же года Motorola снизила цену на один микропроцессор 6800 до 35 долларов . К ноябрю Commodore приобрела MOS Technology. [64] [65]
Несмотря на проблемы с законом, перед MOS все еще оставалась проблема заставить разработчиков опробовать свой процессор, что побудило Чака Педдла разработать одноплатный компьютер MDT-650 («терминал для разработки микрокомпьютеров») . Другая группа внутри компании разработала KIM-1 , который продавался полукомплектным и мог быть превращен в пригодную для использования систему с добавлением компьютерного терминала стороннего производителя и компакт-кассетного привода. К их большому удивлению, КИМ-1 хорошо продавался любителям и ремонтникам, а также инженерам, для которых он предназначался. Родственный Rockwell AIM 65система контроля/обучения/развития также преуспела. Программное обеспечение AIM 65 было основано на программном обеспечении MDT. Другим примерно подобным продуктом был Synertek SYM-1 .
Одним из первых «публичных» применений этого дизайна был микрокомпьютер Apple I , представленный в 1976 году. Затем 6502 использовался в Commodore PET и Apple II , [66] выпущенных в 1977 году. Позже он был использован в Atari . 8-битное семейство и домашние компьютеры Acorn Atom , BBC Micro , [66] Commodore VIC-20 и другие проекты как для домашних компьютеров, так и для бизнеса, такие как Ohio Scientific и Oric . 6510 , прямой преемник 6502 с цифровым портом ввода-вывода и адресной шиной с тремя состояниями , был ЦП . используется в самом популярном [67] [68] домашнем компьютере Commodore 64 . ЦП 6502 или 6502 использовались во всех дисководах гибких дисков Commodore для всех их 8-битных компьютеров, от линейки PET (некоторые из которых имели два ЦП на базе 6502) до Commodore 128D, включая Commodore 64, и во всех дисководах Atari для всей линейки их 8-битных компьютеров, от 400/800 до XEGS.
Еще одним важным применением семейства 6500 были видеоигры. Первым, кто использовал дизайн процессора, была Atari VCS, позже переименованная в Atari 2600 . В VCS использовался вариант 6502 под названием 6507 , который имел меньше контактов и, как следствие, мог адресовать только 8 КБ памяти. Будут проданы миллионы консолей Atari, каждая с процессором MOS. Другое значительное использование было Nintendo Entertainment System и Famicom . 6502, использовавшаяся в NES, была второй исходной версией Ricoh , частичной системой на кристалле , в которой отсутствовал двоично-десятичный код .режиме, но добавлены 22 регистра с отображением памяти и аппаратное обеспечение на кристалле для генерации звука, чтения с джойстика и DMA списка спрайтов . Этот процессор, получивший название 2A03 в консолях NTSC и 2A07 в консолях PAL (разница в коэффициенте деления памяти и таблице поиска частот дискретизации звука), производился исключительно для Nintendo . В Atari Lynx использовалась версия чипа 65SC02 с частотой 4 МГц .
В 1980-х годах популярный журнал по электронике Elektor/Elektuur использовал процессор в своей плате для разработки микропроцессоров Junior Computer .
Желудь Атом
Желудь Электрон
Яблоко I
Яблоко 2
Apple IIe
Атари 2600
Атари 5200
Атари 7800
Атари 800
Атари Рысь
Мастер BBC
Би-би-си микро
Коммодор ПЭТ
Коммодор ВИК-20
Коммодор 64
Коммодор 128
Семейный компьютер (Famicom)
Развлекательная система Нинтендо
Огайо Научный Челленджер 4P
Орао
Орик-1
Орик Атмос
Тамагочи цифровой питомец [69]
ТурбоГрафкс-16
1 5 | 1 4 | 1 3 | 1 2 | 1 1 | 1 0 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (битовая позиция) |
Основные регистры | ||||||||||||||||
А | Аккумулятор _ | |||||||||||||||
Индексные регистры | ||||||||||||||||
Икс | индекс Х | |||||||||||||||
Д | Индекс Y | |||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | СП | Указатель стека _ _ | |||||||
Счетчик команд | ||||||||||||||||
ПК | Счетчик программ _ _ | |||||||||||||||
Регистр статуса | ||||||||||||||||
Н | В | - | Б | Д | я | Z | С | Флаги процессора _ _ |
6502 — это 8-разрядный процессор с прямым порядком байтов и 16-разрядной адресной шиной . Первоначальные версии были изготовлены с использованием 8-микронного [70] технологического чипа с размером кристалла 3,9 мм × 4,3 мм (рекламируется как 153 mils × 168 mils ) общей площадью 16,6 мм 2 . [38]
Внутренняя логика работает с той же частотой, что и внешняя тактовая частота, но, несмотря на низкую тактовую частоту (обычно в районе 1–2 МГц ), производительность 6502 была конкурентоспособной с другими современными процессорами, использующими значительно более быстрые часы. Отчасти это связано с тем, что простой конечный автомат реализован комбинационной (бестактовой) логикой в большей степени, чем во многих других конструкциях; двухфазные часы (обеспечивающие две синхронизации за цикл) могли бы, таким образом, напрямую управлять машинным циклом. Для выполнения типичных инструкций на 6502 может потребоваться вдвое меньше циклов, чем на современных конструкциях. Как и большинство простых процессоров той эпохи, динамический чип NMOS 6502 не содержит ПЗУ с микрокодом .требуется разъяснение ]но используетPLA(который занимал около 15% площади чипа) для декодирования и упорядочивания инструкций. Как и в большинстве 8-разрядных микропроцессоров, чип в некоторой степени частично перекрывает выборку и выполнение.
Низкая тактовая частота снижала требования к скорости памяти и периферийных устройств, подключенных к ЦП, поскольку для доступа к памяти было доступно только около 50% тактового цикла (из-за асинхронной конструкции эта доля сильно различалась в зависимости от версии чипа). Это было критически важно в то время, когда доступная память имела время доступа в диапазоне 250–450 нс .
Поскольку микросхема обращалась к памяти только в определенные части тактового цикла, и эти циклы обозначались выводом тактовой частоты PHI2-low, другие микросхемы в системе могли обращаться к памяти в то время, когда 6502 был отключен от шины. Иногда это называли «скрытым доступом». Этот метод широко использовался компьютерными системами; они будут использовать память с доступом на частоте 2 МГц, а затем запускать процессор на частоте 1 МГц. Это гарантировало, что ЦП и видеооборудование могут чередовать свои обращения с общей производительностью, соответствующей производительности устройства памяти. [71] Когда в 1980-х годах стала доступна более быстрая память, новые машины могли работать на более высоких тактовых частотах, таких как ЦП 2 МГц в BBC Micro , и по-прежнему использовать методы совместного использования шины.
Как и его предшественник 6800, 6502 имеет очень мало регистров . Регистры 6502 включают один 8-битный накопительный регистр (A), два 8-битных индексных регистра (X и Y), 7 битов флага состояния процессора (P; от бита 7 до бита 0 это отрицательный (N), переполнение ( V), зарезервировано , прерывание (B), десятичное число (D), отключение прерывания (I), ноль (Z) и флаг переноса (C)), 8-битный указатель стека (S) и 16-битный программный счетчик (ПК). [72] Это можно сравнить с типичным дизайном той же эпохи, Z80 ., который имеет восемь 8-битных регистров общего назначения, которые можно объединить в четыре 16-битных. Z80 также имел полный набор альтернативных регистров, всего шестнадцать регистров общего назначения.
Чтобы компенсировать нехватку регистров, в процессоре 6502 реализован режим адресации с нулевой страницей , в котором в инструкции используется один адресный байт вместо двух, необходимых для полной адресации.64 КБ памяти. Это обеспечивает быстрый доступ к первому256 байт ОЗУ с использованием более коротких инструкций. Чак Педдл сказал в интервью, что конкретное намерение состояло в том, чтобы позволить этим первым256 байт оперативной памяти для использования в качестве регистров. [ нужна ссылка ]
Адресное пространство стека жестко привязано к странице памяти $01
, т.е. диапазон адресов $0100
– $01FF
( 256
– 511
). Программный доступ к стеку осуществляется с помощью четырех подразумеваемых инструкций режима адресации, функции которых заключаются в том, чтобы поместить или вытолкнуть (вытащить) аккумулятор или регистр состояния процессора. Тот же стек также используется для вызовов подпрограмм с помощью инструкций JSR (переход к подпрограмме) и RTS (возврат из подпрограммы), а также для обработки прерываний .
Микросхема эффективно использует регистры индекса и стека с несколькими режимами адресации , включая быстрый режим «прямая страница» или «нулевая страница», аналогичный тому, который используется в PDP-8 , который обращается к ячейкам памяти с адресами от 0 до 255 с помощью одного 8-битный адрес (сохранение цикла, обычно необходимого для выборки старшего байта адреса) — код для 6502 использует нулевую страницу так же, как код для других процессоров использует регистры. На некоторых микрокомпьютерах на базе 6502 с операционной системой операционная система использует большую часть нулевой страницы, оставляя пользователю лишь несколько мест.
Режимы адресации также включают неявные (1-байтовые инструкции); абсолютный (3 байта); индексированный абсолютный (3 байта); индексированная нулевая страница (2 байта); относительный (2 байта); аккумулятор (1); непрямой,x и непрямой,y (2); и немедленно(2). Абсолютный режим является режимом общего назначения. Инструкции перехода используют 8-битное смещение со знаком относительно инструкции после перехода; поэтому числовой диапазон -128..127 преобразуется в 128 байтов назад и 127 байтов вперед от инструкции, следующей за переходом (что составляет 126 байтов назад и 129 байтов вперед от начала инструкции перехода). Режим аккумулятора использует аккумулятор в качестве эффективного адреса и не требует никаких данных операнда . Немедленный режим использует 8-битный литеральный операнд.
Непрямые режимы полезны для обработки массивов и других циклов. В режиме 5/6 циклов «(косвенный), y» 8-битный регистр Y добавляется к 16-битному базовому адресу, считываемому с нулевой страницы, который расположен одним байтом после кода операции. Таким образом, регистр Y является регистром индекса в том смысле, что он используется для хранения фактического индекса .(в отличие от регистра X в 6800, где непосредственно сохранялся базовый адрес и к которому можно было добавить немедленное смещение). Увеличение индексного регистра для обхода массива побайтно занимает всего два дополнительных цикла. В менее часто используемом режиме «(косвенный, x)» эффективный адрес для операции находится по адресу нулевой страницы, образованному путем добавления второго байта инструкции к содержимому регистра X. При использовании индексированных режимов нулевая страница эффективно действует как набор до 128 дополнительных (хотя и очень медленных) адресных регистров.
6502 может выполнять сложение и вычитание в двоичном или двоично-десятичном коде . Перевод ЦП в режим BCD с помощью SED
инструкции (установить флаг D) приводит к десятичной арифметике, в $99 + $01
результате чего устанавливается значение $00 и флаг переноса (C). В двоичном режиме ( CLD
, сброс флага D) та же операция приведет к сбросу $9A и флага переноса. Помимо Atari BASIC , режим BCD редко использовался в приложениях для домашних компьютеров.
Смотрите Привет, мир! статья на простом, но характерном примере языка ассемблера 6502 .
Коды операций инструкций 6502 ( коды операций ) имеют длину 8 бит и имеют общую форму AAABBBCC, где AAA и CC определяют код операции, а BBB определяет режим адресации. [73]
Например, рассмотрим ORA
инструкцию, которая выполняет побитовое ИЛИ над битами в аккумуляторе с другим значением. Код операции инструкции имеет форму 000bbb01, где bbb может быть 010 для значения непосредственного режима (константа), 001 для фиксированного адреса с нулевой страницей, 011 для абсолютного адреса и так далее. [73]
Эта закономерность не абсолютна, и есть ряд исключений. Однако там, где это применимо, это позволяет легко деконструировать значения кода операции обратно в мнемонику ассемблера для большинства инструкций, обрабатывая крайние случаи с помощью кода специального назначения. [73]
Из 256 возможных кодов операций, доступных с использованием 8-битного шаблона, исходный 6502 использует 151 из них, организованных в 56 инструкций с (возможно) несколькими режимами адресации . В зависимости от инструкции и режима адресации код операции может потребовать ноль, один или два дополнительных байта для операндов. Следовательно, машинные инструкции 6502 различаются по длине от одного до трех байтов. [74] [75] Операнд хранится в обычном для 6502 формате с прямым порядком байтов .
65C816 , 16 - битный CMOS - потомок 6502, также поддерживает 24-битную адресацию, в результате чего инструкции собираются с трехбайтовыми операндами, также расположенными в формате с прямым порядком байтов.
Остальные 105 кодов операций не определены. В первоначальном дизайне инструкции, в которых младшие 4 бита ( полубайта ) были 3, 7, B или F, не использовались, оставляя место для будущего расширения. Аналогично, в столбце $2x была только одна запись, . Оставшиеся 25 пустых слотов были распределены. Некоторые из пустых слотов использовались в 65C02 для предоставления как новых инструкций, так и вариаций существующих с новыми режимами адресации. Инструкции $Fx изначально были оставлены свободными, чтобы сторонние поставщики могли добавлять свои собственные инструкции, но более поздние версии 65C02 стандартизировали набор инструкций по работе с битами , разработанный Rockwell Semiconductor .LDX #constant
Оператор языка ассемблера 6502 состоит из трехсимвольной мнемоники инструкции , за которой следуют любые операнды . Инструкции, которые не принимают отдельный операнд, но нацелены на один регистр на основе режима адресации, объединяют целевой регистр в мнемонике инструкции, поэтому ассемблер использует INX
вместо INC X
увеличения регистра X.
Матрица кодов операций для набора инструкций 6502 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Режимы адресации: A – накопительный, # – немедленный, zpg – нулевая страница, abs – абсолютный, ind – косвенный, X – индексируется по регистру X, Y – индексируется по регистру Y, rel – относительный | ||||||||||||
Высокий откус | Низкий откус | |||||||||||
0 | 1 | 2 | 4 | 5 | 6 | 8 | 9 | А | С | Д | Е | |
0 | БРК | ОРА ( инд. , X) | ОРА зпг | АСЛ ЗПГ | PHP | ОРА # | АСЯ А | ОРА пресс | АСЛ пресс | |||
1 | BPL отн. | ОРА ( инд. ), Y | ОРА zpg ,X | АСЛ зпг ,Х | CLC | ОРА абс , Y | ОРА абс , Х | ASL абс , X | ||||
2 | абс JSR | И ( инд , X) | БИТ зпг | И ЗПГ | РОЛ зпг | ПЛП | А ТАКЖЕ # | РОЛЬ А | БИТ абс | И пресс | РОЛ абс | |
3 | ИМТ отн. | И ( инд. ), Y | И zpg ,X | РОЛ зпг ,Х | СЕК | И абс , Y | И абс , X | РОЛ абс , X | ||||
4 | РТИ | EOR ( инд. , X) | МУН зпг | ЛСР ЗПГ | ПОА | МУН # | ЛСР А | ПДМ пресс | МУН абс | ЛСР абс | ||
5 | BVC отн. | EOR ( инд. ), Y | EOR zpg ,X | ЛСР зпг ,Х | CLI | МУН абс , Y | МУН абс , X | ЛСР абс ,Х | ||||
6 | РТС | АЦП ( инд. , X) | АЦП зпг | РОР зпг | НОАК | АЦП # | РОР А | JMP ( инд. ) | АЦП абс | ROR абс | ||
7 | BVS отн. | АЦП ( инд. ), Y | АЦП zpg ,X | ROR zpg ,X | СЭИ | АЦП абс , Y | АЦП абс. , X | ROR абс , X | ||||
8 | STA ( инд ,X) | СТИ зпг | СТА зпг | СТХ зпг | ДЭЙ | ТХА | СТИ абс | СТА абс | СТХ абс | |||
9 | ОЦК отн. | STA ( инд. ), Y | СТИ зпг , Х | СТА зпг ,Х | STX zpg , Y | ТЯ | СТА абс , Y | TXS | СТА абс , X | |||
А | LDY # | LDA ( инд. , X) | LDX # | LDY ЗПГ | ЛДА ЗПГ | LDX зпг | ТАЙ | ЛДА # | НАЛОГ | LDY абс | ЛДА абс | LDX пресс |
Б | отн. БКС | LDA ( инд. ), Y | LDY zpg ,X | LDA zpg ,X | LDX зпг , Y | CLV | ЛДА абс , Y | ТСХ | LDY абс , X | ЛДА абс , Х | LDX абс , Y | |
С | Цена за год – # | CMP ( инд ,X) | CPY zpg | CMP зпг | ДЭК зпг | ИНИ | CMP # | ДЕКС | CPY абс. | CMP абс. | декабрь абс | |
Д | BNE отн . | CMP ( инд. ), Y | CMP zpg ,X | DEC zpg ,X | ХЛД | CMP абс , Y | CMP абс , X | DEC абс , X | ||||
Е | СРХ # | SBC ( инд. , X) | СРХ ЗПГ | СБК ЗПГ | ИНК зпг | ИНКС | ИПК # | НЕТ | CPX абс | СБК пресс | МНК абс | |
Ф | BEQ отн . | SBC ( инд. ), Y | СБК зпг ,Х | INC zpg ,X | СЭД | SBC абс , Y | СБК абс , Х | ВКЛ абс , X | ||||
Пустые коды операций (например, F2 ) и все коды операций, чьи младшие полубайты равны 3 , 7 , B и F , не определены в наборе инструкций 6502. |
Вход немаскируемого прерывания процессора (NMI) чувствителен к фронту , что означает, что прерывание запускается по заднему фронту сигнала, а не по его уровню. Следствием этой функции является то, что схема прерывания проводного ИЛИ не всегда поддерживается. Однако это также предотвращает возникновение вложенных прерываний NMI до тех пор, пока аппаратное обеспечение снова не сделает вход NMI неактивным, часто под управлением обработчика прерывания NMI .
Одновременная активация линий аппаратного прерывания NMI и IRQ (маскируемого) приводит к игнорированию IRQ. Однако, если линия IRQ остается активной после обслуживания NMI, процессор немедленно ответит на IRQ, поскольку IRQ чувствителен к уровню . Таким образом, в конструкции 6502 был установлен своего рода встроенный приоритет прерывания.
Флаг B устанавливается 6502, периодически опрашивающим выход своего детектора фронта NMI и его вход IRQ. Низкий уровень сигнала IRQ распознается только в том случае, если IRQ разрешены флагом I. Если таким образом обнаруживается запрос NMI или (маскируемый) IRQ, флаг B устанавливается в ноль и заставляет процессор выполнять следующую инструкцию BRK вместо выполнения следующей инструкции на основе счетчика команд. [76] [77]
Затем инструкция BRK помещает состояние процессора в стек, при этом бит флага B устанавливается в ноль. В конце своего выполнения инструкция BRK сбрасывает значение флага B в единицу. Это единственный способ изменить флаг B. Если инструкция, отличная от инструкции BRK, помещает флаг B в стек как часть состояния процессора [78] , флаг B всегда имеет значение 1.
Переход с высокого на низкий уровень на входном контакте SO установит бит состояния переполнения процессора. Это можно использовать для быстрого реагирования на внешнее оборудование. Например, драйвер высокоскоростного опрашивающегоBVC
устройства может опрашивать аппаратное обеспечение только один раз за три цикла, используя инструкцию Branch-on-oVerflow-Clear(), которая переходит к самой себе до тех пор, пока не будет установлено переполнение переходом SO. Commodore 1541 и другие дисководы Commodore используют эту технику, чтобы определить, когда сериализатор готов передать еще один байт данных с диска. Аппаратное и программное обеспечение системы должно гарантировать, что SO не произойдет во время арифметической обработки и не нарушит расчеты.
Было множество вариантов оригинального NMOS 6502.
Компания | Модель | Описание |
---|---|---|
6502А | Чип 1,5 МГц, используемый в Asteroids Deluxe . | |
6502Б | Версия 6502, способная работать с максимальной скоростью 2 МГц вместо 1. B использовался в Apple III , BBC Micro и ранних 8-битных компьютерах Atari с тактовой частотой 1,79 МГц . | |
6502С | «Официальный» 6502C был версией оригинального 6502, способной работать на частоте до 4 МГц. Не путать ни с SALLY, специальной 6502, разработанной для Atari (и иногда называемой ими как «6502C» [79] ), ни с одноименной 65C02 . | |
САЛЛИ / C014806 / "6502C" | Пользовательский вариант 6502, разработанный для Atari, использовался в более поздних 8-битных компьютерах Atari, а также в консолях Atari 5200 и Atari 7800 . Имеет сигнал HALT на контакте 35 и сигнал R/W на контакте 36 (эти контакты не соединены (N/C) в стандартном 6502). Установка HALT на низкий уровень фиксирует часы, приостанавливая работу процессора. Это использовалось для обеспечения прямого доступа к памяти (DMA) видеосхемы. [80] Хотя в документации Atari его иногда называют «6502C», это не то же самое, что «официальный» 6502C, и сам чип никогда не маркируется как таковой. [79] | |
МОС | 6503 | Уменьшенная возможность адресации памяти (4 КБ) и отсутствие ввода RDY в 28-контактном корпусе DIP (с фазами 1 (OUT), SYNC, резервным Vss и выводами SO 6502 также опущены). [81] |
МОС | 6504 | Уменьшенная возможность адресации памяти (8 КБ), отсутствие NMI и ввода RDY в 28-контактном корпусе DIP (с фазами 1 (OUT), SYNC, резервным Vss и выводами SO 6502 также опущены). [81] |
МОС | 6505 | Уменьшенная возможность адресации памяти (4 КБ) и отсутствие NMI в 28-контактном DIP-корпусе (с отсутствующими выводами фазы 1 (OUT), SYNC, резервного Vss и SO 6502). [81] |
МОС | 6506 | Ограниченная возможность адресации памяти (4 КБ), отсутствие NMI и ввода RDY, но все 3 тактовых контакта 6502 (т. е. 2-фазный выходной тактовый сигнал) в 28-контактном DIP-корпусе (с SYNC, резервным Vss, и контакты SO 6502 также опущены). [81] |
МОС | 6507 | Уменьшенная возможность адресации памяти (8 КБ) и отсутствие прерываний в 28-контактном корпусе DIP (с фазами 1 (OUT), SYNC, резервным Vss и выводами SO 6502 также опущены). [81] Этот чип использовался в игровой системе Atari 2600 . |
МОС | 6508 | Имеет встроенный 8-битный порт ввода/вывода и 256 байт внутренней статической оперативной памяти. |
МОС | 6509 | Может адресовать до 1 МБ ОЗУ как 16 банков по 64 КБ и использовался в серии Commodore CBM-II . |
МОС | 6510 | Имеет встроенный 6-битный программируемый порт ввода/вывода и использовался в Commodore 64 . 8500 фактически является HMOS-версией 6510 и заменил его в более поздних версиях C64. |
МОС | 6512 6513 6514 6515 | Каждая из MOS Technology 6512, 6513, 6514 и 6515 использует внешний тактовый генератор вместо использования внутреннего тактового генератора, такого как 650x (например, 6502). Это было выгодно использовано в некоторых конструкциях, где часы могли работать асимметрично, повышая общую производительность ЦП. 6512 - это 6502 с двухфазным входом тактового сигнала для внешнего тактового генератора вместо встроенного тактового генератора. [81] Модели 6513, 6514 и 6515 аналогичны (соответственно) моделям 6503, 6504 и 6505 с тем же двухфазным тактовым входом. [81] 6512 использовался в BBC Micro B+64 . |
Рико | 2А03 | Вариант 6502, включающий блок обработки звука и лишенный режима BCD, который используется в Nintendo Entertainment System . |
МОС | 6591 6592 | Система на чипе , в которой используется полный Atari 2600 в 48-контактном DIP-корпусе. [82] [83] |
МЦД | 65C02 | КМОП -версия NMOS 6502, разработанная Биллом Меншем из Western Design Center (WDC), отличается пониженным энергопотреблением, поддержкой гораздо более высоких тактовых частот, новыми инструкциями, новыми режимами адресации для некоторых существующих инструкций и исправлением опечаток NMOS. например JMP ($xxFF) ошибка. |
МЦД | 65SC02 | Вариант WDC 65C02 без операций над отдельными битами (RMB, SMB, BBR и BBS). [84] Это ядро, работающее на частоте 4 МГц, использовалось в основной системной микросхеме Atari Lynx . |
КСГ/МОС | 65CE02 | Производная КМОП, разработанная Commodore Semiconductor Group (CSG), ранее известная как MOS Technology. |
Роквелл | R6511Q R6500/11, R6500/12, R6500/15 "Одночиповые микрокомпьютеры " | Усовершенствованные версии процессора на базе 6502, в том числе отдельные операции по манипуляциям с битами (RMB, SMB, BBR и BBS), встроенная 192-байтовая ОЗУ с нулевой страницей, UART и т. д. [85] [86] |
Роквелл | Р65Ф11 Р65Ф12 | Rockwell R65F11 (представленный в 1983 г.) и более поздний R65F12 представляют собой усовершенствованные версии процессора на базе 6502, также включающие операции по обработке отдельных битов (RMB, SMB, BBR и BBS), встроенную ОЗУ с нулевой страницей, встроенную память Forth. ПЗУ ядра, UART и т. д. [87] [88] [89] [90] [91] |
ГТД | G65SC102 | Программное обеспечение совместимо с 65C02, но имеет немного другую распиновку и схему генератора. BBC Master Turbo включал 4 - мегагерцовую версию этого процессора на плате сопроцессора, которую также можно было купить отдельно и добавить к Master 128. |
Роквелл | Р65С00 Р65С21 Р65С29 | R65C00, R65C21 и R65C29 имеют две усовершенствованные CMOS 6502 на одном кристалле, а R65C00 и R65C21 дополнительно содержат 2 КБ программируемого по маске ПЗУ. [92] [93] |
СМ630 | Клон модели 6502 из Восточного блока с частотой 1 МГц , который использовался в Pravetz 8A и 8C, болгарских клонах серии Apple // . [94] | |
МОС | 7501 8501 | Варианты 6510 (который сам является улучшенным 6502), представленный в 1984 году. [95] Они увеличили количество контактов порта ввода-вывода с 6 до 7, но опустили контакты для немаскируемых прерываний и вывода часов. [96] Используется в компьютерах Commodore C-16 , C-116 и Plus/4 . Основное различие между ЦП 7501 и 8501 заключается в том, что 7501 был изготовлен с использованием процесса HMOS-1 , а 8501 - с использованием HMOS-2. [95] |
МОС | 8500 | Представлен в 1985 году как HMOS -версия 6510 (которая, в свою очередь, основана на 6502). За исключением модификации процесса, 8500 практически идентичен NMOS - версии 6510. Он заменил 6510 в более поздних версиях Commodore 64 . |
МОС | 8502 | Разработан компанией MOS Technology и используется в Commodore 128 . Основанный на MOS 6510, используемом в Commodore 64, 8502 мог работать с удвоенной тактовой частотой по сравнению с 6510. Семейство 8502 также включает MOS 7501, 8500 и 8501. |
Хадсон Софт | HuC6280 | Улучшенная версия WDC 65C02 от японской компании по производству видеоигр Hudson Soft . Изготовлено для них Seiko Epson и NEC для SuperGrafx . Наиболее заметным продуктом, использующим HuC6280, является игровая консоль NEC TurboGrafx-16. |
Западный дизайн-центр разработал и в настоящее время производит процессор W65C816S , 16-разрядный преемник 65C02 со статическим ядром . W65C816S — это более новый вариант 65C816, который является ядром компьютера Apple II GS и основой процессора Ricoh 5A22 , на котором работает Super Nintendo Entertainment System .. W65C816S включает в себя незначительные улучшения по сравнению с 65C816, которые делают новый чип не точной аппаратно-совместимой заменой более раннего. Среди этих улучшений было преобразование в статическое ядро, которое позволяет останавливать часы в любой фазе без потери данных регистрами. W65C816S, доступный через дистрибьюторов электроники, по состоянию на март 2020 года официально рассчитан на работу на частоте 14 МГц.
Western Design Center также разработал и произвел 65C802 , который представлял собой ядро 65C816 с 64-килобайтным адресным пространством в корпусе, совместимом по выводам 65 (C) 02. 65C802 может быть модернизирован до платы 6502 и будет функционировать как 65C02 при включении питания, работая в «режиме эмуляции». Как и в случае с 65C816, последовательность из двух инструкций переключает 65C802 в «основной режим», открывая его 16-битный аккумулятор и индексные регистры , а также другие функции 65C816. 65C802 не получил широкого распространения, и его производство было прекращено.
Следующий исходный код на языке ассемблера 6502 предназначен для подпрограммы с именем , которая копирует строку символов , заканчивающуюся нулем, из одного места в другое, преобразуя буквы верхнего регистра в буквы нижнего регистра. Копируемая строка является «источником», а строка, в которой сохраняется преобразованный источник, является «назначением».TOLOWER
0080 0080 00 04 0082 00 05 06:00 0600 А0 00 0602 В1 80 0604 Ф0 11 0606 С9 41 0608 90 06 060 А С9 5 В 060 С В0 02 060 Э 09 20 0610 91 82 0612 C8 0613 D0 ЭД 0615 38 0616 60 0617 91 82 0619 18 061 А 60 061 Б | ; ТОЛУЭР: ; ; Преобразование строки символов с завершающим нулем во все строчные буквы. ; Максимальная длина строки составляет 255 символов плюс нулевой термин- ; инатор. ; ; Параметры: ; ; SRC{{snd}} Адрес исходной строки ; DST{{snd}} Адрес строки назначения ; ОРГ $0080 ; SRC .WORD $0400 ;указатель исходной строки DST .WORD $0500 ;указатель целевой строки ; ORG $0600 ;начальный адрес выполнения ; TOLOWER LDY # $00 ;начальный индекс ; ПЕТЛЯ ЛДА ( SRC ), Y ;получить из исходной строки BEQ DONE ;конец строки ; CMP # 'A' ;если ниже алфавита UC... BCC SKIP ;копировать без изменений ; CMP # 'Z' + 1 ;если больше алфавита UC... BCS SKIP ;копировать без изменений ; ORA # %00100000 ;перевести в нижний регистр ; SKIP STA ( DST ), Y ; сохранить в строку назначения INY ; изменить индекс BNE LOOP ; следующий символ; ; ПРИМЕЧАНИЕ. Если Y перенесет строку назначения, она останется в неопределенном ; государство. Мы устанавливаем перенос, чтобы указать это вызывающей функции. ; SEC ;ошибка слишком длинной строки отчета &... RTS ;возврат к вызывающему абоненту ; DONE STA ( DST ), Y ;завершение строки назначения CLC ;отчет о завершении преобразования &... RTS ;возврат к вызывающей стороне ; .КОНЕЦ |
У 6502 было несколько ошибок и особенностей, которые нужно было учитывать при его программировании:
JMP (<address>)
частично нарушена. Если <address> имеет шестнадцатеричное значение xxFF (т. е. любое слово, оканчивающееся на FF ), процессор не перейдет к адресу, хранящемуся в xxFF , xxFF+1
как и ожидалось, а скорее к адресу, определенному xxFF и xx00 (например, JMP ($10FF)
перейдет к адресу хранится в 10FF и 1000, а не в 10FF и 1100). Этот дефект сохранялся во всей линейке NMOS, но был исправлен в производных CMOS.Первый 6502 был изготовлен по 8-микронной технологии, работал на частоте 1 мегагерц и имел максимальную память 64 КБ.
ФЛАГ B УПРАВЛЕНИЕ;
ФЛАГ Б
Б_ВЫХОД;
ВНУТРЕННЯЯ ШИНА ДАННЫХ (БД)
Инженеры Atari назвали SALLY, но [документы поддержки называют это] «6502 (модифицированный)», «6502 Modified», «Custom 6502» или «6502C».
[..] Чипы SALLY 6502 никогда не имеют маркировки «6502C», но, кроме UMC UM6502I, всегда [маркируются] C014806.
[..] [Другие] чипы с пометкой "6502C" [..] НЕ являются чипами Atari "6502C", а [стандартные 6502] сертифицированы для работы на частоте 4 МГц
{{cite web}}
: CS1 maint: заархивированная копия как заголовок ( ссылка )В Викиучебнике есть книга на тему: Сборка 6502 . |
Викискладе есть медиафайлы, связанные с микропроцессором 6502 . |