MOS Technology 6502 (обычно произносится как «шестьдесят пять-о-два» или «шесть-пять-о-два») [3] представляет собой 8-разрядный микропроцессор , который был разработан небольшой группой во главе с Чаком вразнос для MOS Technology . Команда дизайнеров ранее работала в Motorola над проектом Motorola 6800 ; 6502 - это, по сути, упрощенная, менее дорогая и быстрая версия этой конструкции.
Основная информация | |
---|---|
Запущен | 1975 |
Общий производитель (и) | |
Представление | |
Максимум. Тактовая частота процессора | От 1 МГц до 3 МГц |
Ширина данных | 8 |
Ширина адреса | 16 |
Архитектура и классификация | |
Набор инструкций | MOS 6502 |
инструкции | 56 |
Физические характеристики | |
Транзисторы | |
Пакет (ы) |
|
История | |
Предшественник |
|
Преемник |
Когда он был представлен в 1975 году, 6502 был самым дешевым микропроцессором на рынке со значительным отрывом. Первоначально он продавался менее чем за одну шестую от стоимости конкурирующих разработок от более крупных компаний, таких как 6800 или Intel 8080 . Его внедрение вызвало резкое снижение цен на всем рынке процессоров. Наряду с Zilog Z80 он положил начало серии проектов, которые привели к революции домашних компьютеров в начале 1980-х годов.
Популярные игровые консоли и компьютеры, такие как Atari 2600 , семейство Atari 8-bit , Apple II , Nintendo Entertainment System , Commodore 64 , Atari Lynx , BBC Micro и другие, используют 6502 или варианты базовой конструкции. Вскоре после появления 6502 технология MOS была куплена Commodore International , которая продолжала продавать микропроцессор и лицензии другим производителям. В первые дни 6502, он был вторым-источников по Роквеллу и Synertek , а затем лицензированы для других компаний.
В своей форме CMOS ( 65C02 , которая была разработана Western Design Center ) семейство 6502 продолжает широко использоваться во встраиваемых системах , объемы производства которых оцениваются в сотни миллионов. [4]
История и использование
Истоки в Motorola
6502 был разработан многими из тех же инженеров, которые проектировали семейство микропроцессоров Motorola 6800 . [5] Motorola начала проект микропроцессора 6800 в 1971 году с Томом Беннеттом в качестве главного архитектора. Компоновка микросхемы началась в конце 1972 года, первые 6800 чипов были изготовлены в феврале 1974 года, а полное семейство было официально выпущено в ноябре 1974 года. [6] [7] Джон Бьюкенен был разработчиком чипа 6800 [8] [9] и Род Оргилл, который позже создал 6501, помог Бьюкенену с анализом схем и компоновкой микросхемы. [10] Билл Менш присоединился к Motorola в июне 1971 года после окончания Университета Аризоны (в возрасте 26 лет). [11] Его первым заданием было помочь определить периферийные ИС для семейства 6800, а позже он был главным разработчиком адаптера периферийного интерфейса 6820 (PIA). [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 было перегружено проблемами и не проявило интереса к предложению Peddle о недорогом микропроцессоре. В конце концов Педдлу было отправлено официальное письмо, в котором ему велели прекратить работу над системой. [26] Педдл ответил на приказ, сообщив Motorola, что письмо представляет собой официальное заявление об «отказе от проекта», и поэтому интеллектуальная собственность, которую он разработал к тому моменту, теперь принадлежит ему. [27] В интервью в ноябре 1975 года председатель Motorola Роберт Гэлвин в конечном итоге согласился с тем, что концепция Педдла была удачной и что подразделение упустило возможность: «Мы не выбрали правильных руководителей в подразделении полупроводниковой продукции». Подразделение было реорганизовано, сменилось руководство. Новый вице-президент группы Джон Велти сказал: «Организация по продажам полупроводников потеряла чувствительность к потребностям клиентов и не может принимать быстрые решения». [28]
Переход на технологию MOS
Педдл начал искать вне Motorola источник финансирования для этого нового проекта. Сначала он обратился к генеральному директору Mostek Л.Дж. Севину , но тот отказался. Позже Севин признался, что это произошло потому, что он боялся, что Motorola подаст на них в суд. [29]
В то время как Педдл посетил Ford Motor Company во время одной из своих торговых поездок, Боб Джонсон, позже глава подразделения автоматизации двигателей Ford, упомянул, что их бывший коллега Джон Пайвинен перешел в General Instrument и сам изучал дизайн полупроводников. С тех пор он ушел и занимался очень интересной работой над чипсетами для калькуляторов в новой компании, которую он основал в Вэлли-Фордж, штат Пенсильвания . [30]
Пайвинен основал MOS Technology в 1969 году вместе с двумя другими руководителями General Instrument, Морт Джаффе и Дон Маклафлин. Allen-Bradley , поставщик электронных компонентов и промышленных устройств управления, приобрел контрольный пакет акций в 1970 году. [31] Компания разработала и изготовила индивидуальные ИС для клиентов и разработала линейку микросхем для калькуляторов. [32]
После того, как усилия Mostek провалились, Педдл подошел к Пайвинену, который «сразу понял». [33] 19 августа 1974 года Чак Педдл, Билл Менш, Род Оргилл, Гарри Боуком, Рэй Хирт, Терри Холдт и Уил Матис покинули Motorola, чтобы присоединиться к MOS. Майк Джейнс присоединился позже. Из семнадцати разработчиков микросхем и компоновщиков в команде 6800 осталось восемь. Целью команды было разработать и произвести недорогой микропроцессор для встраиваемых приложений и охватить как можно более широкую клиентскую базу. Это было бы возможно только в том случае, если бы микропроцессор был недорогим, а группа установила целевую цену на уровне 5 долларов за объем. [34]
Чипы производятся путем печати нескольких копий дизайна чипа на поверхности «пластины» , тонкого диска из высокочистого кремния. Чипы меньшего размера можно напечатать в большем количестве на одной и той же пластине, что снизит их относительную цену. Кроме того, пластины всегда содержат некоторое количество крошечных физических дефектов, разбросанных по поверхности. Любая микросхема, напечатанная в этом месте, выйдет из строя, и ее следует выбросить. Меньшие чипы означают, что вероятность того, что одна копия будет отпечатана с дефектом, меньше. По обеим этим причинам стоимость конечного продукта сильно зависит от размера конструкции микросхемы. [35]
Оригинальные 6800 чипы были предназначены , чтобы быть 180 × 180 мил , [а] , но компоновка была завершена в 212 × 212 мил (5,4 × 5,4 мм) , или площадь 29,0 мм 2 . [36] Для нового дизайна целевые затраты требовали целевого размера 153 × 168 мил (3,9 × 4,3 мм) или площади 16,6 мм 2 . [37] Для достижения этой цели потребуется несколько новых методов.
Переход на NMOS
Когда разрабатывалась модель 6502, на рынке появилось два значительных новшества, которые обеспечили значительное снижение затрат. Первым был переход к NMOS с истощенной загрузкой . В 6800 использовался ранний процесс NMOS, который требовал трех напряжений питания, но одной из особенностей микросхемы был встроенный удвоитель напряжения, который позволял использовать один источник питания + 5 В для внутренних +5, -5 и +12, в отличие от других микросхем. эпоха, подобная Intel 8080, которая требовала трех отдельных контактов питания. [38] Хотя эта функция снизила сложность источника питания и компоновки выводов, она по-прежнему требовала отдельных шин питания для различных вентилей на кристалле, что увеличивало сложность и размер. При переходе к новой конструкции истощающей нагрузки достаточно было единственного источника питания +5, что устраняло всю эту сложность. [39]
Еще одним практическим преимуществом было то, что тактовый сигнал для более ранних процессоров должен был быть достаточно сильным, чтобы выдержать все рассеивание при прохождении через цепи, что почти всегда требовало отдельного внешнего чипа, который мог бы обеспечить достаточно сильный сигнал. При снижении требований к мощности NMOS часы можно было перенести на микросхему, что упростило общую конструкцию компьютера. Эти изменения значительно снизили сложность и стоимость внедрения полной системы. [39]
Еще одно изменение, которое имело место, - это введение маскировки проекции. Раньше чипы наносили на поверхность пластины, помещая маску на поверхность пластины и затем освещая ее ярким светом. Маски часто собирали крошечные кусочки грязи или фоторезиста, когда они поднимались с чипа, вызывая дефекты в этих местах при любой последующей маскировке. В сложных конструкциях, таких как процессоры, можно было бы использовать 5 или 6 таких шагов маскирования, и вероятность того, что хотя бы один из этих шагов привнесет дефект, очень высока. В большинстве случаев 90% таких конструкций имели дефекты, что приводило к доходности 10%. Цена рабочих примеров должна была покрывать производственные затраты на 90%, которые были выброшены. [40]
В 1973 году Perkin-Elmer представила систему Micralign , которая проецировала изображение маски на пластину вместо прямого контакта. Маски больше не собирают грязь с пластин, и их срок службы составляет порядка 100 000 использований, а не 10. Это устранило поэтапные отказы и высокий процент брака, который ранее наблюдался в сложных конструкциях. Доходность процессоров сразу же подскочила с 10% до 60 или 70%. Это означало, что цена ЦП упала примерно на такую же величину, и микропроцессор внезапно стал массовым устройством. [40]
Существующие производственные линии MOS Technology были основаны на более старой технологии PMOS, они еще не начали работать с NMOS, когда прибыла команда. Пайвинен пообещал вовремя запустить линию NMOS, чтобы начать производство нового процессора. Он выполнил обещание, новая линия была готова к июню 1975 года. [41]
Примечания к дизайну
Чак Педдл, Род Оргилл и Уил Матис разработали первоначальную архитектуру новых процессоров. Статья в журнале EDN за сентябрь 1975 г. дает следующее краткое изложение конструкции: [42]
Семейство MOS Technology 650X представляет собой сознательную попытку восьми бывших сотрудников Motorola, которые работали над разработкой системы 6800, выпустить деталь, которая заменит и превзойдет 6800, но при этом будет продавать ее дешевле. Оглядываясь назад на проект 6800, команда MOS Technology во главе с Чаком Педдлом внесла следующие архитектурные изменения в ЦП Motorola ...
Основным изменением, касающимся размера микросхемы, было устранение трех состояний на выходах адресной шины. Это было включено в 6800, чтобы позволить ему работать с другими микросхемами в ролях прямого доступа к памяти (DMA) и совместной обработки за счет значительного пространства кристалла. На практике использование такой системы требовало, чтобы другие устройства были аналогичными сложными, и разработчики вместо этого стремились использовать внешние системы для координации такого доступа. В 6502 просто убрали эту функцию, поскольку он был недорогим контроллером, который использовался для определенных задач и связи с простыми устройствами. Педдл предположил, что любой, кому действительно нужен такой стиль доступа, может реализовать его с помощью одного 74158 . [43]
Следующим важным отличием было упрощение регистров. Для начала сняли один из двух аккумуляторов . Регистры общего назначения, такие как аккумуляторы, должны быть доступны для многих частей декодера команд и, следовательно, требуют значительного количества проводных соединений для перемещения данных в их хранилище и из них. Два аккумулятора упрощают многие задачи кодирования, но значительно усложняют саму конструкцию микросхемы. [42] Дальнейшая экономия была достигнута за счет уменьшения регистра стека с 16 до 8 битов, что означает, что стек мог иметь длину только 256 байт, что было достаточно для его предполагаемой роли микроконтроллера. [42]
16-битный индексный регистр IX был разделен на две части, став X и Y. Что еще более важно, изменился стиль доступа; в 6800 IX содержал 16-битный адрес, который был смещен числом, указанным в инструкции, два были добавлены для получения окончательного адреса. В 6502 (и большинстве других конструкций) базовый адрес хранился в инструкции, и к нему добавлялись X или Y. [43]
Наконец, набор команд был упрощен, освободив место для декодера и логики управления. Из исходных 72 инструкций в 6800 осталось 56. Среди тех, что были удалены, были любые инструкции, которые перемещали данные между двумя аккумуляторами 6800, а также ряд инструкций ветвления, вдохновленных PDP-11, таких как возможность напрямую сравнивать два числовых значения. 6502 использовал более простую систему, которая обрабатывала сравнения, выполняя математические вычисления в аккумуляторе и затем проверяя флаги результатов. [43]
Высокоуровневый дизайн микросхемы пришлось превратить в чертежи транзисторов и межсоединений. В MOS Technology «макетирование» выполнялось вручную с помощью цветных карандашей и пергаментной бумаги. Макет состоял из тысяч многоугольников на шести разных рисунках; по одному на каждый уровень производственного процесса. Учитывая ограничения по размеру, необходимо было постоянно учитывать всю конструкцию микросхемы. Менш и Пайвинен работали над декодером инструкций [44], в то время как Менш, Педдл и Оргилл работали над ALU и регистрами. Еще одним достижением, разработанным на вечеринке, стал способ совместного использования части внутренней проводки, что позволило уменьшить размер ALU. [45]
Несмотря на все усилия, окончательный дизайн оказался на 5 мил больше ширины. [46] Первые 6502 чипа имели размер 168 × 183 мил (4,3 × 4,7 мм) или площадь 19,8 мм 2 . Инструкция поворота вправо (ROR) не работала в первом кремнии, поэтому инструкция была временно исключена из опубликованных документов, но следующая итерация дизайна уменьшила чип и исправила инструкцию поворота вправо, которая затем была включена в исправленную документацию. . [47]
Представляем 6501 и 6502
MOS представит два микропроцессора, основанных на той же базовой конструкции: 6501 будет подключаться к тому же разъему, что и Motorola 6800, а 6502 перестроит распиновку для поддержки встроенного тактового генератора. Оба будут работать с другими микросхемами поддержки, разработанными для 6800. Они не будут запускать программное обеспечение 6800, потому что у них другой набор инструкций, разные регистры и в основном разные режимы адресации. [48] Род Орджилл был ответственным за дизайн 6501; он помогал Джону Бьюкенену в Motorola на 6800. Билл Менш сделал 6502; он был разработчиком адаптера периферийного интерфейса 6820 (PIA) в Motorola. С макетом помогали Гарри Боуком, Майк Джейнс и Сидней-Энн Холт.
Внедрение микропроцессоров MOS Technology отличалось от традиционного выпуска продукции, продолжавшегося несколько месяцев. Первый запуск новой интегральной схемы обычно используется для внутреннего тестирования и передается избранным клиентам в качестве «инженерных образцов». Эти микросхемы часто имеют небольшие конструктивные дефекты или два, которые будут исправлены до начала производства. Целью Чака Педдла было продать первые партии чипов 6501 и 6502 участникам торговой выставки Wescon в Сан-Франциско, которая началась 16 сентября 1975 года. Педдл был очень эффективным представителем, и микропроцессоры MOS Technology широко освещались в отраслевой прессе. Одним из первых был полностраничный рассказ о микропроцессорах MCS6501 и MCS6502 в выпуске журнала Electronics от 24 июля 1975 года . [49] Истории также публиковались в EE Times (24 августа 1975 г.), [50] EDN (20 сентября 1975 г.), Electronic News (3 ноября 1975 г.), Byte (ноябрь 1975 г.) [51] и Microcomputer Digest (ноябрь 1975 г.) ). [52] Рекламы 6501 появились в нескольких публикациях в первую неделю августа 1975 года. 6501 будет продаваться в Wescon по 20 долларов за штуку. [53] В сентябре 1975 года реклама включала как микропроцессоры 6501, так и 6502. 6502 будет стоить всего 25 долларов (что эквивалентно 120 долларам в 2020 году). [54]
Когда компания MOS Technology прибыла в Вескон, они обнаружили, что экспонентам не разрешается ничего продавать в выставочном зале. Они арендовали MacArthur Suite в отеле St. Francis и предложили клиентам приобрести процессоры. В комплекте процессоры хранились в больших банках, что означало, что чипы были в производстве и были легко доступны. Покупатели не знали, что в нижней половине каждой банки находятся нефункциональные микросхемы. [55] Чипы стоили 20 и 25 долларов, а пакет документации - 10 долларов. Пользователям предлагалось делать фотокопии документов, что для MOS Technology - это недорогой способ распространения информации о продукте. В предварительных таблицах данных перечислено всего 55 инструкций, за исключением инструкции «Повернуть вправо» (ROR), которая некорректно работала на этих ранних микросхемах. В обзорах в Byte и EDN отмечалось отсутствие инструкции ROR. Следующая версия схемы устранила эту проблему, и в таблице данных за май 1976 г. было перечислено 56 инструкций. Педдл хотел, чтобы каждый заинтересованный инженер и любитель имел доступ к микросхемам и документации; другие полупроводниковые компании хотели иметь дело только с «серьезными» клиентами. Например, Signetics представила микропроцессор 2650, и ее рекламные объявления просили читателей писать информацию на фирменных бланках своей компании. [56]
Штырь | 6800 | 6501 | 6502 |
---|---|---|---|
2 | Остановка | Готовый | Готовый |
3 | ∅1 (дюйм) | ∅1 (дюйм) | ∅1 (уходит) |
5 | Действительный адрес памяти | Действительный адрес памяти | NC |
7 | Автобус доступен | Автобус доступен | СИНХРОНИЗАЦИЯ |
36 | Включить шину данных | Включить шину данных | NC |
37 | ∅2 (дюйм) | ∅2 (дюйм) | ∅0 (дюйм) |
38 | NC | NC | Установить флаг переполнения |
39 | Трехсторонний контроль | NC | ∅2 (уходит) |
Иск Motorola
Представление 6501/6502 в печати и на Wescon имело огромный успех. Обратной стороной было то, что внимание Motorola привлекло широкое освещение в прессе. В октябре 1975 года Motorola снизила цену одного микропроцессора 6800 со 175 до 69 долларов. Комплект для проектирования системы стоимостью 300 долларов был сокращен до 150 долларов, и теперь он поставлялся с печатной платой. [57] 3 ноября 1975 года Motorola обратилась в Федеральный суд с иском о запрете MOS Technology производить и продавать микропроцессорные устройства. Они также подали иск о нарушении патентных прав и незаконном присвоении коммерческой тайны. Motorola заявила, что семь бывших сотрудников присоединились к MOS Technology для создания микропроцессорных продуктов этой компании. [58]
Motorola была компанией с доходом в миллиард долларов, у нее было убедительное дело и адвокаты. 30 октября 1974 года Motorola подала множество патентных заявок на семейство микропроцессоров и получила двадцать пять патентов. Первый был в июне 1976 года, а второй - Биллу Меншу 6 июля 1976 года за схему чипа 6820 PIA. Эти патенты касались шины 6800 и того, как периферийные микросхемы взаимодействуют с микропроцессором. [59] Motorola начала производство транзисторов в 1950 году и имела портфель патентов на полупроводники. Аллен-Брэдли решил не бороться с этим делом и продал свою долю в MOS Technology обратно основателям. В иске были названы имена четырех бывших инженеров Motorola: Чака Педла, Уилла Мэтиса, Билла Менша и Род Оргилла. Все они были названы изобретателями в 6800 патентных заявках. В процессе открытия компания Motorola обнаружила, что один инженер, Майк Джейнс, проигнорировал инструкции Педдла и принес свои проектные документы 6800 в MOS Technology. [60] В марте 1976 года у теперь независимой MOS Technology заканчивались деньги, и ей пришлось уладить дело. Они согласились отказаться от процессора 6501, заплатить Motorola 200 000 долларов и вернуть документы, которые, по утверждению Motorola, были конфиденциальными. Обе компании договорились о кросс-лицензировании патентов на микропроцессоры. [61] В мае того же года Motorola снизила цену одного микропроцессора 6800 до 35 долларов. К ноябрю Commodore приобрела MOS Technology. [62] [63]
Компьютеры и игры
Несмотря на юридические проблемы, MOS все еще оставалась с проблемой заставить разработчиков опробовать свой процессор, что побудило Чака Педдла спроектировать одноплатный компьютер MDT-650 («терминал разработки микрокомпьютеров») . Другая группа внутри компании разработала KIM-1 , который продавался в неполном виде и мог быть превращен в полезную систему с добавлением компьютерного терминала стороннего производителя и компактного кассетного привода. К их большому изумлению, KIM-1 хорошо продавался любителям и мастерам, а также инженерам, для которых он был предназначен. Соответствующая система управления / обучения / развития Rockwell AIM 65 также хорошо себя зарекомендовала. Программное обеспечение AIM 65 было основано на программном обеспечении MDT. Другим примерно похожим продуктом был Synertek SYM-1 .
Одним из первых «публичных» применений этой конструкции был микрокомпьютер Apple I , представленный в 1976 году. Затем 6502 был использован в Commodore PET и Apple II , [64] оба выпущенных в 1977 году. Позже он использовался в Atari. Семейство 8-битных компьютеров и домашние компьютеры Acorn Atom , BBC Micro , [64] Commodore VIC-20 и другие разработки как для домашних компьютеров, так и для бизнеса, такие как Ohio Scientific и Oric . 6510 , прямой преемник 6502 с помощью цифрового порта ввода / вывода и тремя состояниями адресной шины, был процессор , используемый в самых продаваемых [65] [66] Коммодор 64 домашнего компьютера. 6520 и / или 6502-вариантные процессоры были использованы во все коммодоре гибких дисков дисков для всех своих 8-битных компьютеров, от линии ПЭТ (некоторые из которых имело два процессора 6502 на основе) через коммодор 128D, в том числе коммодора 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 используется версия 4 МГц чипа, в 65SC02.
В 1980-х годах популярный журнал по электронике Elektor / Elektuur использовал этот процессор в своей микропроцессорной плате для разработки Junior Computer .
Желудь Атом
Желудь Электрон
Яблоко I
Яблоко II
Apple IIe
Atari 2600
Atari 5200
Atari 7800
Atari 800
Atari Lynx
BBC Мастер
BBC Micro
Commodore PET
Коммодор ВИК-20
Коммодор 64
Коммодор 128
Семейный компьютер (Famicom)
Система развлечений Nintendo
Ohio Scientific Challenger 4P
Орао
Орик-1
Oric Atmos
Цифровой питомец тамагочи [67]
TurboGrafx-16
Техническое описание
F | E | D | C | B | А | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (битовая позиция, шестнадцатеричное) |
Основные регистры | ||||||||||||||||
А | ccumulator | |||||||||||||||
Индексные регистры | ||||||||||||||||
Икс | Индекс X | |||||||||||||||
Y | Индекс Y | |||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | S | Указатель S tack | |||||||
Счетчик команд | ||||||||||||||||
ПК | Р rogram С ounter | |||||||||||||||
Регистр статуса | ||||||||||||||||
N | V | - | B | D | я | Z | C | Флаги процессора P |
6502 - это 8-битный процессор с прямым порядком байтов и 16-битной адресной шиной . Оригинальные версии были изготовлены с использованием 8 мкм [68] техпроцесса чип с фильеры размером от 3,9 мм × 4,3 мм (рекламируется как 153 × 168 мил мил ), для общей площадью 16,6 мм 2 . [37]
Внутренняя логика работает на той же скорости, что и внешняя тактовая частота, но, несмотря на низкие тактовые частоты (обычно в районе 1-2 МГц ), производительность 6502 была конкурентоспособна с другими современными процессорами, использующими значительно более высокие тактовые частоты . Частично это связано с тем, что простой конечный автомат реализуется комбинационной (без тактовой) логикой в большей степени, чем во многих других проектах; двухфазные часы (обеспечивающие две синхронизации за цикл) могли бы, таким образом, напрямую управлять машинным циклом. Для выполнения типичных инструкций на 6502 может потребоваться вдвое меньше циклов, чем на современных моделях. Как и большинство простых процессоров того времени, динамический чип NMOS 6502 не упорядочивается ПЗУ микрокода [ требуется пояснение ], но использует PLA (который занимал около 15% площади чипа) для декодирования и упорядочивания команд. Как и в большинстве 8-битных микропроцессоров, чип выполняет некоторое ограниченное перекрытие выборки и выполнения.
Низкая тактовая частота сдерживала требования к скорости памяти и периферийных устройств, подключенных к ЦП, поскольку для доступа к памяти было доступно только около 50% тактового цикла (из-за асинхронной конструкции эта доля сильно варьировалась между версиями чипа). Это было критически важно в то время, когда доступная память имела время доступа в диапазоне 250–450 нс .
Поскольку микросхема обращалась к памяти только в течение определенных частей тактового цикла, и эти циклы были обозначены выводом вывода тактовой частоты PHI2-low, другие микросхемы в системе могли получить доступ к памяти в то время, когда 6502 был отключен от шины. Иногда это называлось «скрытым доступом». Этот метод широко использовался компьютерными системами; они использовали бы память с возможностью доступа на частоте 2 МГц, а затем запустили бы ЦП на частоте 1 МГц. Это гарантировало, что ЦП и видеооборудование могут чередовать свои обращения с общей производительностью, соответствующей устройству памяти. [69] Когда в 1980-х годах стали доступны более быстрые запоминающие устройства, новые машины могли работать с более высокими тактовыми частотами, как, например, ЦП с частотой 2 МГц в BBC Micro , и по-прежнему использовать методы разделения шины.
Регистры
Как и его предшественник 6800, 6502 имеет очень мало регистров . Регистры 6502 включают в себя один 8-битный регистр накопителя (A), два 8-битных индексных регистра (X и Y), 7 1-битных битов флага состояния процессора (P) - в частности, от бита 7 до бита 0 в P это отрицательный (N), переполнение (V), зарезервировано , прерывание (B), десятичное (D), отключение прерывания (I), ноль (Z) и флаг переноса (C) -, 8-битный указатель стека (S), и 16-битный программный счетчик (ПК). [70] Это можно сравнить с типичным дизайном той же эпохи, 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-битный буквальный операнд.
Косвенная адресация
Непрямые режимы полезны для обработки массивов и других циклов. В режиме «(косвенный), y» с циклом 5/6 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 ( коды операций ) имеют длину восемь бит и имеют общую форму AAABBBCC, где AAA и CC определяют код операции, а BBB определяет режим адресации. [71]
Например, рассмотрим ORA
инструкцию, которая выполняет поразрядное ИЛИ над битами в аккумуляторе с другим значением. Код операции команды имеет вид 000bbb01, где bbb может быть 010 для значения немедленного режима (константа), 001 для фиксированного адреса нулевой страницы, 011 для абсолютного адреса и так далее. [71]
Этот шаблон не является абсолютным, и есть ряд исключений. Однако там, где он применяется, он позволяет легко деконструировать значения кода операции обратно в мнемонику ассемблера для большинства инструкций, обрабатывая крайние случаи с помощью специального кода. [71]
Из 256 возможных кодов операций, доступных с использованием 8-битного шаблона, исходный 6502 использует 151 из них, организованных в 56 инструкций с (возможно) несколькими режимами адресации . В зависимости от инструкции и режима адресации код операции может потребовать ноль, один или два дополнительных байта для операндов. Следовательно, машинные инструкции 6502 имеют длину от одного до трех байтов. [72] [73] Операнд сохраняется в обычном для 6502 формате с прямым порядком байтов .
65C816 , 16-разрядный КМОП потомок 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 | А | C | D | E | |
0 | BRK | ORA ( ind , X) | ORA zpg | ASL zpg | PHP | ORA # | ASL A | ORA abs | ASL абс | |||
1 | BPL отн. | ORA ( инд. ), Y | ORA zpg , X | ASL zpg , X | CLC | ORA абс , Y | ORA абс , X | ASL абс , X | ||||
2 | JSR абс | И ( ind , X) | BIT zpg | И zpg | ROL zpg | PLP | А ТАКЖЕ # | ROL A | БИТ абс | И пресс | ROL абс | |
3 | ИМТ отн. | И ( инд ), Y | И zpg , X | ROL zpg , X | SEC | И абс , Y | И абс , X | ROL абс , X | ||||
4 | RTI | EOR ( инд. , X) | EOR zpg | ЛСР zpg | PHA | EOR № | ЛСР А | JMP абс | ПНП абс | ЛСР абс | ||
5 | BVC rel | EOR ( инд. ), Y | EOR zpg , X | ЛСР zpg , X | CLI | EOR абс , Y | ПНП абс , X | ЛСР абс , X | ||||
6 | РТС | АЦП ( инд. , X) | ADC zpg | ROR zpg | PLA | АЦП № | ROR A | JMP ( инд. ) | АЦП абс | ROR абс | ||
7 | BVS rel | АЦП ( инд. ), Y | АЦП zpg , X | ROR zpg , X | SEI | АЦП абс , Y | АЦП абс , X | ROR абс , X | ||||
8 | STA ( инд , X) | STY zpg | STA zpg | STX zpg | DEY | TXA | STY abs | STA абс | STX абс | |||
9 | BCC rel | STA ( инд. ), Y | STY zpg , X | STA zpg , X | STX zpg , Y | ТЯ | STA абс , Y | TXS | STA абс , X | |||
А | LDY # | LDA ( инд. , X) | LDX # | LDY zpg | LDA zpg | LDX zpg | ВРЕМЯ | LDA № | НАЛОГ | LDY абс | LDA абс | LDX абс |
B | BCS rel | LDA ( инд. ), Y | LDY zpg , X | LDA zpg , X | LDX zpg , Y | CLV | LDA абс , Y | TSX | LDY абс , X | LDA абс , X | LDX абс , Y | |
C | CPY # | CMP ( инд. , X) | CPY zpg | CMP zpg | DEC zpg | INY | CMP # | DEX | CPY абс | CMP абс | DEC абс | |
D | BNE rel | CMP ( инд. ), Y | CMP zpg , X | DEC zpg , X | CLD | CMP абс , Y | CMP абс , X | DEC абс , X | ||||
E | CPX # | SBC ( инд. , X) | CPX zpg | SBC zpg | INC zpg | INX | SBC № | NOP | CPX абс | SBC абс | INC абс | |
F | BEQ rel | SBC ( инд. ), Y | SBC zpg , X | INC zpg , X | САС | SBC абс , Y | SBC абс , X | INC абс , 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 вместо выполнения следующей инструкции на основе счетчика программ. [74] [75]
Затем инструкция BRK помещает статус процессора в стек, при этом бит флага B устанавливается в ноль. В конце выполнения инструкция BRK сбрасывает значение флага B на единицу. Это единственный способ изменить флаг B. Если инструкция, отличная от инструкции BRK, помещает флаг B в стек как часть состояния процессора [76], флаг B всегда имеет значение один.
Переход от низкого к высокому на входном выводе SO устанавливает бит состояния переполнения процессора. Это можно использовать для быстрого отклика на внешнее оборудование. Например, драйвер устройства высокоскоростного опроса может опрашивать оборудование один раз за три цикла с помощью BVC
инструкции Branch-on-oVerflow-Clear ( ), которая выполняет переход к самому себе до тех пор, пока переполнение не будет установлено нарастающим фронтом SO. Commodore 1541 и другие Commodore дискеты диски используют эту технику , чтобы определить , когда сериализатор готов передать другие байты данных диска. Аппаратное и программное обеспечение системы должно гарантировать, что SO не произойдет во время арифметической обработки и нарушит вычисления.
Вариации и производные
Существовало множество вариантов оригинальной NMOS 6502.
Компания | Модель | Описание |
---|---|---|
6502A | Чип 1,5 МГц, представленный в Asteroids Deluxe . | |
6502B | Версия 6502 способна работать на максимальной скорости 2 МГц вместо 1. Буква B использовалась в Apple III , BBC Micro и ранних 8-битных компьютерах Atari с тактовой частотой 1,79 МГц . | |
6502C | «Официальный» 6502C был версией оригинального 6502, способной работать на частоте до 4 МГц. Не путать с SALLY, нестандартным 6502, разработанным для Atari (и иногда называемым ими «6502C» [77] ), ни с одноименным 65C02 . | |
SALLY / C014806 / "6502C" | Пользовательский вариант 6502, разработанный для Atari, используемый в более поздних 8-битных компьютерах Atari, а также в консолях Atari 5200 и Atari 7800 . Имеет сигнал HALT на контакте 35 и сигнал R / W на контакте 36 (эти контакты не подключены (N / C) на стандартном 6502). При нажатии HALT на низком уровне часы фиксируются, а процессор приостанавливается. Это использовалось для обеспечения прямого доступа к памяти (DMA) видеосхемы. [78] Хотя в документации Atari иногда упоминается как «6502C», это не то же самое, что «официальный» 6502C, и сам чип никогда не помечается как таковой. [77] | |
Технология MOS | 6503 | Уменьшенная возможность адресации памяти (4 КБ) и отсутствие входа RDY в 28-контактном DIP-корпусе (также опущены контакты фазы 1 (OUT), SYNC, резервные Vss и SO 6502). [79] |
Технология MOS | 6504 | Уменьшенная возможность адресации памяти (8 КБ), без NMI и без входа RDY в 28-контактном DIP корпусе (с фазой 1 (OUT), SYNC, резервными выводами Vss и SO 6502 также опущены). [79] |
Технология MOS | 6505 | Уменьшенная возможность адресации памяти (4 КБ) и отсутствие NMI в 28-контактном DIP-корпусе (также опущены контакты фазы 1 (OUT), SYNC, резервные Vss и SO 6502). [79] |
Технология MOS | 6506 | Уменьшенная возможность адресации памяти (4 КБ), без NMI и без входа RDY, но все 3 тактовых вывода 6502 (т. Е. Двухфазный выходной тактовый сигнал) в 28-выводном DIP-корпусе (с SYNC, резервным Vss, и контакты SO 6502 также опущены). [79] |
Технология MOS | 6507 | Уменьшенная возможность адресации памяти (8 КБ) и отсутствие прерываний в 28-выводном DIP-корпусе (с опущенными выводами фазы 1 (OUT), SYNC, резервными Vss и SO 6502). [79] Этот чип использовался в игровой системе Atari 2600 . |
Технология MOS | 6508 | Имеет встроенный 8-битный порт ввода / вывода и 256 байт внутренней статической ОЗУ. |
Технология MOS | 6509 | Может адресовать до 1 МБ ОЗУ как 16 банков по 64 КБ и использовался в серии Commodore CBM-II . |
Технология MOS | 6510 | Имеет встроенный 6-битный программируемый порт ввода / вывода и использовался в Commodore 64 . 8500 фактически является версией HMOS 6510 и заменил ее в более поздних версиях C64. |
Технология MOS | 6512 6513 6514 6515 | Каждая из технологий MOS 6512, 6513, 6514 и 6515 полагается на внешние тактовые импульсы вместо использования внутреннего тактового генератора, такого как 650x (например, 6502). Это было использовано в некоторых проектах, где часы могли работать асимметрично, что увеличивало общую производительность процессора. 6512 - это модель 6502 с двухфазным тактовым входом для внешнего тактового генератора вместо встроенного тактового генератора. [79] 6513, 6514 и 6515 аналогичным образом эквивалентны (соответственно) 6503, 6504 и 6505 с тем же входом 2-фазной синхронизации. [79] 6512 использовался в BBC Micro B + 64 . |
Ricoh | 2A03 | 6502, включая блок обработки звука и не имеющий режима BCD, используемый в Nintendo Entertainment System . |
Технология MOS | 6591 6592 | Система на микросхеме включает в себя полноценный Atari 2600 в 48-контактном DIP-корпусе. [80] [81] |
WDC | 65C02 | КМОП- версия NMOS 6502, разработанная Биллом Меншем из Western Design Center (WDC), отличается сниженным энергопотреблением, поддержкой гораздо более высоких тактовых частот, новыми инструкциями, новыми режимами адресации для некоторых существующих инструкций и исправлением ошибок NMOS, например JMP ($xxFF) ошибка. |
WDC | 65SC02 | Вариант WDC 65C02 без отдельных операций манипулирования битами (RMB, SMB, BBR и BBS). [82] Это ядро, работающее на частоте 4 МГц, использовалось в основной системной ИС Atari Lynx . |
CSG (технология MOS) | 65CE02 | Производная CMOS, разработанная Commodore Semiconductor Group (CSG), ранее называвшаяся MOS Technology. |
Rockwell | R6511Q R6500 / 11, R6500 / 12, R6500 / 15 "Однокристальные микрокомпьютеры " | Усовершенствованные версии процессора на базе 6502, включая отдельные операции манипулирования битами (RMB, SMB, BBR и BBS), 192-байтовое ОЗУ на кристалле, UART и т. Д. [83] [84] |
Rockwell | R65F11 R65F12 | Rockwell R65F11 (представленный в 1983 году) и более поздний R65F12 являются улучшенными версиями процессора на базе 6502, также включающими операции индивидуальной обработки битов (RMB, SMB, BBR и BBS), внутрикристаллическое ОЗУ с нулевой страницей, на чипе Forth ПЗУ ядра, UART и т. д. [85] [86] [87] [88] [89] |
GTE | G65SC102 | Программное обеспечение совместимо с 65C02, но имеет немного другую распиновку и схему генератора. BBC Master Turbo включена версия на 4 МГц этого процессора на сопроцессор карте, которая также может быть куплена отдельно и добавляется к Master 128. |
Rockwell | R65C00 R65C21 R65C29 | R65C00, R65C21 и R65C29 имели две улучшенные CMOS 6502 в одной микросхеме, а R65C00 и R65C21 дополнительно содержали 2 КБ ПЗУ с программированием по маске. [90] [91] |
CM630 | Клон 6502 Восточного блока с частотой 1 МГц, который использовался в Pravetz 8A и 8C, болгарских клонах серии Apple // . [92] | |
Технология MOS | 7501 8501 | Варианты 6510 (сам усовершенствованный 6502), представленные в 1984 году. [93] Они увеличили количество контактов порта ввода / вывода с 6 до 7, но опускали контакты для немаскируемого прерывания и вывода часов. [94] Используется в компьютерах Commodore C-16 , C-116 и Plus / 4 . Основное различие между процессорами 7501 и 8501 заключается в том, что 7501 был изготовлен с использованием процесса HMOS-1, а 8501 - с использованием HMOS-2. [93] |
Технология MOS | 8500 | Представлен в 1985 году как HMOS- версия модели 6510 (которая, в свою очередь, основана на 6502). За исключением модификации процесса, 8500 практически идентичен версии NMOS 6510. Он заменил 6510 в более поздних версиях Commodore 64 . |
Технология MOS | 8502 | Разработан MOS Technology и используется в Commodore 128 . На основе MOS 6510, используемой в Commodore 64, 8502 мог работать с двойной тактовой частотой по сравнению с 6510. [95] Семейство 8502 также включает MOS 7501, 8500 и 8501. |
Хадсон Софт | HuC6280 | Улучшенная версия WDC 65C02 японской видеоигровой компании Hudson Soft . Изготовлено для них Seiko Epson и NEC для SuperGrafx . Наиболее заметным продуктом, использующим HuC6280, является игровая консоль NEC TurboGrafx-16. |
16-битные производные
Western Design Center разработал и в настоящее время производит процессор 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 не получил широкого распространения; новые разработки почти всегда строились вокруг 65C816, в результате чего производство 65C802 было прекращено.
Пример кода
Следующий исходный код языка ассемблера 6502 предназначен для подпрограммы с именем , которая копирует строку символов с завершающим нулем из одного места в другое, преобразуя символы верхнего регистра в буквы нижнего регистра. Копируемая строка является «источником», а строка, в которой сохраняется преобразованный источник, является «местом назначения».TOLOWER
0080 0080 00 04 0082 00 05 0600 0600 A0 00 0602 B1 80 0604 F0 11 0606 C9 41 0608 90 06 060 А C9 5 B 060 C B0 02 060 E 09 20 0610 91 82 0612 C8 0613 D0 ED 0615 38 0616 60 0617 91 82 0619 18 061 60 061 B | ; TOLOWER: ; ; Преобразование строки символов с завершающим нулем во все строчные буквы. ; Максимальная длина строки составляет 255 символов плюс нулевой термин- ; инатор. ; ; Параметры: ; ; SRC - адрес исходной строки ; DST - адрес строки назначения ; ORG $ 0080 ; SRC .WORD $ 0400 ; указатель исходной строки (40 $) DST .WORD $ 0500 ; указатель целевой строки (42 $) ; ORG $ 0600 ; начальный адрес исполнения ;TOLOWER LDY # $ 00 ; начальный индекс; LOOP LDA ( 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 было несколько ошибок и причуд, которые необходимо было учесть при программировании:
- Самые ранние версии 6502, например, поставляемые с некоторыми компьютерами KIM-1 , имели серьезную ошибку в инструкции ROR (повернуть правую память или аккумулятор). Операция ROR в этих микросхемах фактически является инструкцией ASL (арифметический сдвиг влево), которая не влияет на бит переноса в регистре состояния. MOS полностью исключила инструкции из документации по микросхемам из-за дефекта, пообещав, что ROR появится на чипах 6502, начиная с 1976 года. [96] Подавляющее большинство существующих на сегодняшний день чипов 6502 не обнаруживают этой ошибки.
- Семейство NMOS 6502 имеет множество недокументированных инструкций , которые варьируются от одного производителя микросхемы к другому. Декодирование команд 6502 реализовано в массиве аппаратной логики (подобном массиву программируемой логики ), который определен только для 151 из 256 доступных кодов операций . Остальные 105 запускают странные и иногда трудно предсказуемые действия, такие как сбой процессора, последовательное выполнение двух действительных инструкций, выполнение странных сочетаний двух инструкций или просто бездействие. Компания Eastern House Software разработала «Trap65», устройство, которое подключается между процессором и его разъемом для преобразования (перехвата) нереализованных кодов операций в инструкции BRK (программное прерывание). [ необходима цитата ] Некоторые программисты использовали эту функцию для расширения набора инструкций 6502, предоставив функциональные возможности для нереализованных кодов операций с помощью специально написанного программного обеспечения, перехваченного в векторе 0xFFFE инструкции BRK. [97] [98] Все неопределенные коды операций были заменены инструкциями NOP в 65C02 , расширенной версии CMOS 6502, хотя и с разными размерами байтов и временем выполнения. В 65C802 / 65C816 все 256 кодов операций выполняют определенные операции.
- 6502 в памяти косвенный переход инструкции,
JMP ()
, частично нарушена. Если <адрес> является шестигранной xxFF (т.е. любое слово , заканчивающееся в FF ), процессор не будет переходить к адресу , сохраненному в xxFF и ,xxFF+1
как ожидалось, а скорее один определяется xxFF и XX00 (например,JMP ($10FF)
прыгал по адресу хранится в 10FF и 1000, а не в 10FF и 1100). Этот дефект сохранялся во всей линейке NMOS, но был исправлен в производных CMOS. - Индексированная адресация NMOS 6502 через границы страниц будет выполнять дополнительное чтение недопустимого адреса. Эта характеристика может вызывать случайные проблемы из-за доступа к оборудованию, которое действует при чтении, например, сброса таймера или флагов IRQ, отправки квитирования ввода-вывода и т. Д. Этот дефект продолжался по всей строке NMOS, но был исправлен в производных CMOS, в который процессор выполняет дополнительное чтение последнего байта инструкции.
- Инструкции 6502 чтения-изменения-записи выполняют один цикл чтения и два цикла записи. Сначала считанные неизмененные данные записываются обратно, а затем записываются измененные данные. Эта характеристика может вызвать проблемы из-за двойного доступа к оборудованию, которое действует при записи. Эта аномалия продолжалась во всей линейке NMOS, но была исправлена в производных CMOS, в которых процессор выполняет два цикла чтения и один цикл записи. Практика защитного программирования обычно позволяет избежать этой проблемы, не выполняя инструкции чтения / изменения / записи в аппаратных регистрах.
- Флаги состояния N (отрицательный результат), V (переполнение знакового бита) и Z (нулевой результат) обычно не имеют смысла при выполнении арифметических операций, когда процессор находится в режиме BCD , поскольку эти флаги отражают двоичный, а не BCD результат. Это ограничение было снято в производных CMOS. Следовательно, эту функцию можно использовать для отличия процессора CMOS от версии NMOS. [99]
- Если при возникновении аппаратного прерывания 6502 находится в режиме BCD, он не вернется в двоичный режим. Эта характеристика может привести к скрытым ошибкам в подпрограмме обслуживания прерывания, если ей не удастся сбросить режим BCD перед выполнением любых арифметических операций. Например, Commodore 64 «сек Kernal не правильно обрабатывать этот процессор характеристики, требуя , чтобы IRQs быть отключен или повторно векторным во время BCD математических операций. Эта проблема также была решена в производных CMOS.
- Набор команд 6502 включает BRK (код операции $ 00), который технически является программным прерыванием (по духу аналогично мнемонике SWI процессоров Motorola 6800 и ARM ). BRK чаще всего используется для прерывания выполнения программы и запуска монитора машинного языка для тестирования и отладки во время разработки программного обеспечения. BRK можно также использовать для маршрутизации выполнения программы с помощью простой таблицы переходов (аналогично тому, как Intel 8086 и производные от них обрабатывают программные прерывания по номеру). Однако, если аппаратное прерывание происходит, когда процессор получает команду BRK, версия процессора NMOS не сможет выполнить BRK и вместо этого продолжит работу, как если бы произошло только аппаратное прерывание. Эта ошибка была исправлена в реализации CMOS процессора.
- При выполнении инструкций JSR (переход к подпрограмме) и RTS (возврат из подпрограммы) адрес возврата, помещенный в стек JSR, является адресом последнего байта операнда JSR (то есть самого старшего байта адреса подпрограммы), а не адрес следующей инструкции. Это связано с тем, что фактическое копирование (из программного счетчика в стек и затем наоборот) происходит до автоматического увеличения счетчика программы, которое происходит в конце каждой инструкции. [100] Эта характеристика останется незамеченной, если код не проверит адрес возврата, чтобы получить параметры в потоке кода (идиома программирования 6502, задокументированная в Техническом справочном руководстве ProDOS 8 ). Он и по сей день остается характерной чертой 6502 производных.
Смотрите также
- Список 6502 ассемблеров
- Домашние компьютеры на базе MOS Technology 6502
- Прерывания в процессорах 65xx
- Количество транзисторов
- Ускорители Apple II
- cc65 - 6502 макроассемблер и компилятор C
Заметки
- ^ В то время техническая литература указывала длину и ширину каждого чипа в "милах" (0,001 дюйма).
Рекомендации
Цитаты
- ^ "MOS 6502 и лучший макетчик в мире" . swtch.com. 2011-01-03 . Проверено 9 августа 2014 .
- ^ «MOnSter6502» . monster6502.com. 2017 . Проверено 1 мая 2017 .
- ^ Уильям Менш, Роб Уокер (9 октября 1995 г.). Интервью с Уильямом Меншем (веб-видео). Атертон, Калифорния: Silicon Genesis, Библиотеки Стэнфордского университета. Архивировано из оригинального 14 мая 2012 года . Проверено 4 июня 2012 года .Уильям Менш и модератор объявляют микропроцессор 6502 как «шестьдесят пять два» .
- ^ "Western Design Center (WDC) Дом микропроцессорной техники 65xx" . www.westerndesigncenter.com . Проверено 8 апреля 2019 .
- ^ «Motorola предъявляет иск к технологии MOS» (PDF) . Микрокомпьютерный дайджест . Купертино, Калифорния: Microcomputer Associates. 2 (6): 11 декабря 1975 г.[ постоянная мертвая ссылка ]
- ^ «Motorola присоединяется к гонке микропроцессоров с 8-битной записью». Электроника . Нью-Йорк: Макгроу-Хилл. 47 (5): 29–30. 7 марта 1974 г.
- ^ Motorola 6800 Устная история (2008), стр. 9
- ↑ Бьюкенен, Джон К., «Схема повышения напряжения постоянного тока MOS», патент США 3942047 , выданный 2 марта 1976 г.
- ↑ Бьюкенен, Джон К., «Топография микросхемы для микросхемы микропроцессора MOS интегральной схемы», патент США 3987418 , выданный 19 октября 1976 г.
- ^ Motorola 6800 Устная история (2008), стр. 8
- ^ Mensch Устная история (1995) Менш получил степень младшего специалиста в Университете Темпл в 1966 году, а затем работал в Philco Ford техником по электронике, прежде чем поступить в Университет Аризоны.
- ^ Менш, Уильям Д., «Топография микросхемы для схемы интерфейса MOS», патент США 3968478 , выданный 6 июля 1976 г.
- ^ Дженкинс, Фрэнсис; Lane, E .; Латтин, Вт .; Ричардсон, В. (ноябрь 1973 г.). «Моделирование МОП-устройств для компьютерной реализации». IEEE Transactions по теории цепей . IEEE. 20 (6): 649–658. DOI : 10.1109 / tct.1973.1083758 . ISSN 0018-9324 . Все авторы работали в подразделении Motorola Semiconductor Products Division.
- ^ Донохью, Джеймс Ф. (27 октября 1988 г.). «Микропроцессор первых двух десятилетий: каким он был». EDN . Cahners Publishing. 33 (22A): 18–32. ISSN 0012-7515 .Стр. 30. Беннетт уже работал над тем, что стало 6800. «Он нанял меня, - говорит Педдл о Беннетте, - чтобы я выполнял архитектурную поддержку продукта, который он уже начал». … Говорит Коробейник. «Motorola пыталась убить его несколько раз. Без Беннета 6800 не появилось бы, да и многие другие отрасли промышленности тоже не появились бы».
- ^ Хепворт, Эдвард К., Родни Дж. Минс, Чарльз И. Педдл, «Адаптер интерфейса асинхронной связи», патент 3975712 , выданный 17 августа 1976 г. Примечание: Motorola обычно перечисляла изобретателей в алфавитном порядке.
- ^ Motorola (5 августа 1976 г.). «Они остаются впереди с семейством Motorola M6800» . Электроника . Макгроу-Хилл. 49 (16): 51. В рекламе показаны три встроенных приложения от TRW, HP и RUSCO.
- ^ Motorola 6800 Устная история (2008), стр. 89
- ^ «Это все семейство продуктов» . Электроника . Нью-Йорк: Макгроу Хилл. 48 (1): 37. 9 января 1975 г.В рекламе Motorola подчеркивается полный набор периферийных микросхем и средств разработки. Это сокращает цикл разработки продукта для клиентов.
- ^ Motorola 6800 Устная история (2008) стр. 18
- ^ "Набор микропроцессоров Motorola 1 МГц n-MOS". Техника управления . 21 (11): 11 ноября 1974 г.Цена микропроцессора MC6800 составляла 360 долларов. Выпуск адаптера асинхронного интерфейса связи (ACIA) MC6850 был намечен на первый квартал 1975 года.
- ^ Корпорация Intel (1984). Кэй, Глиннис Томпсон (ред.). Революция в процессе - современная история Intel (PDF) . Корпорация Intel. п. 14. Номер для заказа: 231295. Архивировано 23 октября 2012 года (PDF) . Проверено 30 декабря 2016 . «Shima внедрила 8080 примерно через год, а новое устройство было представлено в апреле 1974 года за 360 долларов».
- ^ "Motorola устанавливает привод M6800". Электроника . Нью-Йорк: Макгроу-Хилл. 48 (8): 25. 17 апреля 1975 г. «Дистрибьюторам предлагается семейство M6800, и подразделение также предлагает вводный комплект, который включает шесть начальных частей семейства, а также приложения и руководства по программированию за 300 долларов».
- ^ Интервью 2014 , 52:30.
- ^ Интервью 2014 , 54:45.
- ↑ Bagnall (2010), стр. 11. Новое предложение Peddle пришло как раз вовремя для разработчиков 6800. «Они не хотели ехать в Остин, штат Техас, - объясняет Менш.
- ^ Интервью 2014 , 54:40.
- ^ Интервью 2014 , 55:50.
- ^ Уоллер, Ларри (13 ноября 1975 г.). «Motorola стремится положить конец заносу». Электроника . Нью-Йорк: Макгроу-Хилл. 48 (23): 96–98.Резюме: Полупроводниковые изделия делятся на две части: интегральные схемы и дискретные компоненты. Убытки полупроводников за последние четыре квартала превысили 30 миллионов долларов. Торговая организация потеряла чувствительность к потребностям клиентов: «задержки с реагированием на снижение цен означали, что клиенты покупали где-то еще». Технические проблемы преследовали производство микросхем. Проблема заключается «не в дизайне, а в выходе кристалла и кристалла». Проблемы решены. Микропроцессор MC6800 «прибыл в ноябре 1974 года».
- ^ Интервью 2014 , 56:30.
- ^ Интервью 2014 , 55:00.
- ↑ Bagnall (2010), стр. 13.
- ^ MOS Technology (14 ноября 1974 г.). "Первые массивы научных калькуляторов с одним чипом" . Электроника . Макгроу-Хилл. 47 (23): 90–91.
- ^ Интервью 2014 , 57:00.
- ^ Интервью 2014 , 58:30.
- ^ Хо, Джошуа (9 октября 2014 г.). «Введение в физику, технологию и промышленность полупроводников» . Anandtech .
- ^ Motorola 6800 Устная история (2008), стр. 10.
- ^ a b c Cushman 1975 , стр. 40.
- ^ «Микропроцессор 8080А - корпус ДИП 40» . CPU World .
- ↑ a b Cushman 1975 , p. 38.
- ^ а б "Вехи закона Мура" . IEEE .
- ↑ Bagnall (2010), стр. 19: «Пайвинен пообещал Педдлу, что он подготовит n-канальный процесс. Он сдержал свое слово».
- ^ a b c Cushman 1975 , стр. 36.
- ^ a b c Cushman 1975 , стр. 41.
- ^ Интервью 2014 , 1:01:00.
- ^ Интервью 2014 , 1:02:00.
- ^ Интервью 2014 , 1:02:30.
- ^ В даташите за август 1975 г. было 55 инструкций без ROR, в даташите за май 1976 г. были ROR и 56 инструкций. Файл: MCS650x Instruction Set.jpg
- ^ Стэнфордский университет, проект Silicon Genesis: записанное на видео интервью устной истории Уиллама Менша
- ^ «Линия микропроцессоров предлагает 4, 8, 16 бит». Электроника . Нью-Йорк: Макгроу-Хилл. 48 (15): 118. 24 июля 1975 г.В статье рассматриваются 6501 и 6502, а также 28-контактные версии, которые будут адресовать только 4 КБ памяти. Он также охватывал будущие устройства, такие как «дизайн, который Педдл называет псевдо-16».
- ^ Шугармен, Роберт (25 августа 1975 г.). «Нужен ли стране хороший микропроцессор за 20 долларов?» (PDF) . EE Times . Манхассет, Нью - Йорк: CMP Publications: 25. Архивировано из оригинала (PDF) от 3 февраля 2007 года . Проверено 5 февраля 2008 года .
- ^ Филстра, Дэниел (ноябрь 1975 г.). «Сын Motorola (или чип процессора за 20 долларов)». Байт . Питерборо, Нью-Хэмпшир: Зеленое издательство. 1 (3): 56–62.Сравнение микропроцессоров 6502 и 6800. Автор посетил MOS Technology в августе 1975 года.
- ^ «Микропроцессор 3-го поколения» (PDF) . Микрокомпьютерный дайджест . Купертино, Калифорния: Microcomputer Associates . 2 (2): 1–3. Август 1975. Архивировано из оригинального (PDF) 04.07.2009 . Проверено 27 ноября 2009 .
- ^ «Микропроцессор MOS 6501 превосходит всех». Электроника . Нью-Йорк: Макгроу-Хилл. 48 (16): 60–61. 7 августа 1975 г.
- ^ «MOS 6502 - второй из семейства недорогих высокопроизводительных микропроцессоров» . Компьютер . Компьютерное общество IEEE. 8 (9): 38–39. Сентябрь 1975 г.. Doi : 10.1109 / CM.1975.219074 .
- ↑ Bagnall (2010), стр. 33–35.
- ^ Signetics (30 октября 1975 г.). «Самый простой в использовании микропроцессор» . Электроника . Макгроу-Хилл. 48 (22): 114–115.
- ^ Motorola (30 октября 1975 г.). «Все это и разукрупненный микропроцессор за 69 долларов» . Электроника . Макгроу-Хилл. 48 (22): 11.Первоначальная цена MC6800 была снижена со 175 до 69 долларов. Предыдущая цена от 50 до 99 единиц составляла 125 долларов.
- ^ Уоллер, Ларри (13 ноября 1975 г.). «Краткие новости: Motorola стремится остановить врага микропроцессора». Электроника . Нью-Йорк: Макгроу-Хилл. 48 (23): 38.«На прошлой неделе Motorola заявила, что будет добиваться немедленного судебного запрета, чтобы запретить MOS Technology Inc., Норристаун, штат Пенсильвания, производить и продавать микропроцессорные продукты, включая MCS6500». (Этот выпуск был опубликован 7 ноября.)
- ^ Motorola была награждена следующими патентами США на семейство микропроцессоров 6800: 3962682, 3968478, 3975712, 3979730, 3979732, 3987418, 4003028, 4004281, 4004283, 4006457, 4010448, 4016546, 4020472, 4030079, 40326400, 403520, 4037 4071887, 4086627, 4087855, 4090236, 4145751, 4218740, 4263650.
- ↑ Bagnall (2010), стр. 53–54. «У него [Майка Джеймса] были все его оригинальные работы от 6800, и он скрыл их от Motorola ...
- ^ «Motorola и MOS Technology урегулировали патентный иск». Электроника . Нью-Йорк: Макгроу-Хилл. 49 (7): 39. 1 апреля 1975 г.«MOS Technology Inc. из Норристауна, штат Пенсильвания, согласилась отозвать свой микропроцессор MCS6501 с рынка и выплатить Motorola Inc. 200000 долларов ...» «MOS Technology и восемь бывших сотрудников Motorola вернули обратно в соответствии с документами судебного постановления, которые, по утверждению Motorola, конфиденциальны ". «… Обе компании договорились о перекрестной лицензии на патенты в области микропроцессоров».
- ↑ Bagnall (2010), стр. 55-56
- ^ "Слияние и поглощение". Мини-микросистемы . Каннерс. 9 (11): 19 ноября 1976 г.«Commodore International… покупает MOS Technology (Норристаун, Пенсильвания). Это спасает шестилетнюю компанию по производству полупроводников от надвигающейся катастрофы».
- ^ а б Гудвинс, Руперт (4 декабря 2010 г.). «Жертвы Intel: восемь потенциальных убийц-гигантов» . ZDNet . Проверено 7 марта 2012 года .[ постоянная мертвая ссылка ]
- ^ Реймер, Джереми. «Доля рынка персональных компьютеров: 1975-2004» . Архивировано из оригинала на 6 июня 2012 года . Проверено 17 июля 2009 .
- ^ «Сколько компьютеров Commodore 64 было продано?» . Архивировано из оригинала на 2016-03-06 . Проверено 1 февраля 2011 .
- ^ «Выполнение кода на тамагочи» . kwartzlab.ca . 7 мая 2013 г. Архивировано из оригинала на 2018-08-31 . Проверено 23 декабря 2018 .
- ^ Кордер, Майк (весна 1999 г.). «Большое в маленьких упаковках» . Прогресс пионеров с технологией picoJava . Sun Microelectronics. Архивировано из оригинала на 2006-03-12 . Проверено 23 апреля 2012 года .
Первый 6502 был изготовлен по 8-микронной технологии, работал на частоте 1 мегагерц и имел максимальный объем памяти 64 КБ.
- ^ «Как реализовать совместное использование шины / DMA в системе 6502» .
- ^ «ПРОГРАММИРОВАНИЕ МОДЕЛИ MCS650X». РУКОВОДСТВО ПО ПРОГРАММИРОВАНИЮ МИКРОКОМПЬЮТЕРОВ MOS . MOS TECHNOLOGY, INC. Январь 1976 г.
- ^ а б в Паркер, Нил. «Набор команд 6502 / 65C02 / 65C816 декодирован» . Страница Нила Паркера Apple II .
- ^ 6502 Набор инструкций .
- ^ NMOS 6502 Opcodes архивации 2016-01-14 в Wayback Machine .
- ^ "ОБРАБОТКА ПРЕРЫВАНИЯ" . ogamespec . Проверено 15 мая 2021 .
УПРАВЛЕНИЕ ФЛАГОМ B; ФЛАГ B
- ^ «6502 BRK и бит B» . VisualChips . Проверено 15 мая 2021 .
- ^ «ФЛАГИ» . ogamespec . Проверено 15 мая 2021 .
B_OUT; ВНУТРЕННЯЯ ШИНА ДАННЫХ (DB)
- ^ а б "FAQ 400 800 XL XE: Что такое SALLY, ANTIC, CTIA / GTIA / FGTIA, POKEY и FREDDIE?" . Архивировано из оригинального 19 июля 2020.
имени САЛЛИ инженерами Atari, но [вспомогательные документы называют его] "6502 (Modified)", "6502 Modified", "Пользовательские 6502", или "6502C". [..] Микросхемы SALLY 6502 никогда не помечаются "6502C", но, кроме UMC UM6502I, всегда [помечены] C014806. [..] [Other] чипы с пометкой "6502C" [..] НЕ являются Atari "6502C", но [стандарт 6502] сертифицированы для 4 МГц
- ^ «6502 (модифицированный) микропроцессор центрального процессора». ATARI 1200 XL ДОМАШНИЙ КОМПЬЮТЕР ПОЛЕВОЕ РУКОВОДСТВО ПО ОБСЛУЖИВАНИЮ . АТАРИ. Февраль 1983 г.
- ^ a b c d e f g Каталог данных по технологии MOS за 1982 год (PDF-файл, полученный с сайта bitsavers.org)
- ^ AtariAge: клон A2600, распиновка микросхемы 6591
- ^ Hackaday: teensiest Atari 2600 когда - либо
- ^ Закс, Родней. Программирование 6502 . п. 348.
- ^ «Rockwell R6511Q» . Проверено 30 апр 2020 .
- ^ «Однокристальные микрокомпьютеры Rockwell R6500 / 11, R6500 / 12 и R6500 / 15» . 7 июня 1987 . Проверено 30 апр 2020 .
- ^ Рэнди М. Дамс. «Однокристальные компьютеры Forth R65F11 и F68K». [1] [ постоянная мертвая ссылка ] [2] Архивировано 2 декабря 2014 г., Wayback Machine 1984.
- ^ Эд Шмаух. «Компьютеризированная система мониторинга коррозии» [ постоянная мертвая ссылка ] . 1986 г.
- ^ Лоуренс П. Форсли. «Встроенные системы: Рочестерская Четвертая конференция 1990 года: 12–16 июня 1990 года, Университет Рочестера» . п. 51.
- ^ Роквелл. «Руководство пользователя RSC-Forth» . 1983 г.
- ^ "Микрокомпьютеры на базе Rockwell R65F11 R65F12 Forth" (PDF) . Июнь 1987 . Проверено 28 апр 2020 .
- ^ «Архивная копия» (PDF) . Архивировано из оригинального (PDF) 15 мая 2016 года . Проверено 26 октября 2014 .CS1 maint: заархивированная копия как заголовок ( ссылка )
- ^ "rockwell :: dataBooks :: 1985 Rockwell Data Book" - через Интернет-архив.
- ^ "Восточноевропейский домашний компьютер: Болгария" . HCM: Музей домашнего компьютера . Дата обращения 3 октября 2020 .
- ^ a b http://plus4world.powweb.com/hardware/MOS_75018501 Аппаратное обеспечение - MOS 7501/8501
- ^ https://ist.uwaterloo.ca/~schepers/MJK/7501.html ЦП 7501/8501
- ^ Руководство по обслуживанию C-128 / C128D Computer , Commodore Business Machines, PN-314001-08, ноябрь 1987 г.
- ^ «Измерение ошибки ROR в раннем MOS 6502» . Проверено 8 мая 2011 года .
- ^ Мозер, Карл В. (январь 1979 г.). «Добавить вектор-ловушку для невыполненных кодов операций 6502» (PDF) . Журнал доктора Добба компьютерной гимнастики и ортодонтии . № 31. Менло-Парк, Калифорния. п. 32 . Проверено 7 января 2017 .
- ^ Харрод, Деннетт А. (октябрь 1980 г.). «6502 получает микропрограммируемые инструкции» . БАЙТ . Vol. 5 шт. 10. Питерборо, Нью-Гэмпшир. п. 282 . Проверено 7 января 2017 .
- ^ Драко (19 июня 1997 г.). «65c02, 6502, 65816 ??? CPU продает , но кто покупает ...» В архиве с оригинала на 2 января 2008 года.
- ^ Эндрюс, Марк (1984). «6» . Корни Atari - Руководство по языку ассемблера Atari . ISBN 0-88190-171-7.
Библиография
- Педл, Чак (12 июня 2014 г.). «Устная история Чака Педла» (интервью). Беседовали Дуг Фэйрберн и Стивен Даймонд.
- Багналл, Брайан (2010). Коммодор, компания на грани (2-е изд.). Виннипег, Манитоба: Variant Press. ISBN 978-0-9738649-6-0.
- Беннет, Томас; Экисс, Джон; Латтин, Уильям (Билл); Лавелл, Джефф (28 марта 2008 г.). «Панель устной истории Motorola 6800» (PDF) (Интервью). Беседовал Дэвид Лоуз.
- Кушман, Роберт Х. (20 сентября 1975 г.). «Микропроцессоры 2-1 / 2 поколения - детали за 10 долларов, которые по своим характеристикам аналогичны недорогим Mini» (PDF) . EDN . Бостон: Cahners Publishing. 20 (17): 36–42. Архивировано из оригинального (PDF) 24 апреля 2016 года.
- Интервью с Уильямом Меншем Стэнфордом и проектом «Силиконовая долина», 9 октября 1995 г. Стенограмма
дальнейшее чтение
- Даташиты и руководства
- Технический паспорт серии 6500 ; MOS Technology; 12 страниц; 1976 г.
- Руководство по аппаратному обеспечению серии 6500 ; 2-е изд; MOS Technology; 182 страницы; 1976 г.
- Руководство по программированию серии 6500 ; 2-е изд; MOS Technology; 262 страницы; 1976 г.
- Книги
- 6502 Заявочная книга ; 1-е изд; Родней Закс; Sybex; 281 страница; 1979; ISBN 978-0895880154 . (архив)
- 6502 Программирование на языке ассемблера ; 2-е изд; Лэнс Левенталь; Осборн / Макгроу-Хилл; 650 страниц; 1986; ISBN 978-0078812163 . (архив)
- 6502 подпрограммы языка ассемблера ; 1-е изд; Лэнс Левенталь и Уинтроп Сэвилл; Осборн / Макгроу-Хилл; 550 страниц; 1982; ISBN 978-0931988592 . (архив)
- 6502 игры ; 1-е изд; Родней Закс; Sybex; 292 страницы; 1980; ISBN 978-0895880222 . (архив)
- 6502 Руководство пользователя ; 1-е изд; Джозеф Карр; Отдыхай; 288 страниц; 1984; ISBN 978-0835970020 . (архив)
- Расширенное программирование 6502 ; 1-е изд; Родней Закс; Джон Уайли и сыновья; 292 страницы; 1982; ISBN 978-0895880895 . (архив)
- Машинный язык для начинающих - Программирование на машинном языке персонального компьютера для компьютеров Atari, VIC, Apple, C64 и PET ; 1-е изд; Ричард Мэнсфилд; Вычислить! Публикации; 350 страниц; 1983; ISBN 978-0942386110 . (архив)
- Программирование 6502 ; 4-е изд; Родней Закс; Sybex; 408 страниц; 1983; ISBN 978-0895881359 . (архив)
- Программирование 65816 - включая 6502, 65C02 , 65802 ; 1-е изд; Дэвид Айз и Рон Личти; Прентис Холл; 636 страниц; 1986; ISBN 978-0893037895 . (архив)
- Справочные карты
- 6502 Мгновенная справочная карта микропроцессора ; Джеймс Льюис; Micro Logic; 2 страницы; 1980г. (Архив)
Внешние ссылки
- 6502.org - ресурс микропроцессора 6502 - репозиторий
- Расцвет технологии МОП и 6502 - архив Commodore
- Информация 650x - краткое описание, фотографии микросхем MOS и второго источника; на cpu-collection.de
- mdfs.net - 6502 набор инструкций
- Умно, Эрик. «6502 - первый RISC мкП» . Архивировано из оригинального 24 -го мая 2012 года .
- Харрод, Деннетт А. (октябрь 1980 г.). «6502 получает микропрограммируемые инструкции» . БАЙТ . Vol. 5 шт. 10. Макгроу Хилл . С. 282–285. ISSN 0360-5280 . Архивировано из оригинала на 2006-05-25 . Проверено 14 мая 2006 .
- Симуляторы / Эмуляторы
- Онлайн-совместимый ассемблер и эмулятор 6502, написанный на JavaScript. Архивировано 8 февраля 2011 г. на Wayback Machine.
- Список программных эмуляторов 6502 - домен Zophar
- Симулятор 6502 для Windows - штаб-квартира Atari Gaming
- Визуальное моделирование процессора 6502 на уровне транзисторов
- Ядро процессора MCL65 6502 - код C - MicroCore Labs GitHub
- Доски
- Плата Гранта 6502 с 7/8 микросхемами
- 6502 микропроцессорная доска обучения
- Создайте свою собственную учебную доску КИМ-1 - см. КИМ-1
- 6502 домашний компьютер
- Одноплатный компьютер PE6502
- Одноплатный компьютер BE6502 - на основе видео Ben Eater
- ПЛИС
- cpu6502_tc 6502 CPU core - исходный код VHDL - OpenCores
- ag_6502 6502 CPU core - Исходный код Verilog - OpenCores
- M65C02 65C02 CPU core - исходный код Verilog - OpenCores
- Ядро процессора MCL65 6502 - Verilog - MicroCore Labs GitHub