Articulo de referencia

Tecnología MOS 6502

{{cite web |title=The MOS 6502 and the Best Layout Guy in the World |publisher=swtch.com |date=2011-01-03 |access-date=2014-08-09 |url=http://research.swtch.com/6502 |archive-da...

El MOS Technology 6502 [ 3 ] es un microprocesador de 8 bits diseñado por un pequeño equipo liderado por Chuck Peddle para MOS Technology y lanzado en septiembre de 1975. El equipo de diseño había trabajado anteriormente en Motorola en el proyecto Motorola 6800 ; el 6502 es esencialmente una versión simplificada, menos costosa y más rápida de ese diseño, que utiliza tecnología NMOS de carga por agotamiento, lo que hizo que el uso del microchip en computadoras fuera mucho más económico.

Cuando se lanzó, el 6502 era el microprocesador más económico del mercado, con una diferencia considerable. Inicialmente, se vendía a menos de una sexta parte del precio de los diseños de la competencia de compañías más grandes, como el 6800 o el Intel 8080. Su lanzamiento provocó una rápida disminución de los precios en todo el mercado de procesadores. Junto con el Zilog Z80 , impulsó una serie de proyectos que dieron lugar a la revolución de las computadoras domésticas a principios de la década de 1980.

Las consolas de videojuegos y los ordenadores domésticos de los años setenta hasta principios de los noventa, como la Atari 2600 , los ordenadores Atari de 8 bits , la Apple II , la Nintendo Entertainment System , la Commodore 64 , la Atari Lynx , la BBC Micro y otros, utilizaban el microprocesador 6502 o variaciones de su diseño básico. Poco después de su lanzamiento, MOS Technology fue adquirida por Commodore International , que continuó vendiendo el microprocesador y licencias a otros fabricantes. En sus inicios, el 6502 fue fabricado por Rockwell y Synertek , y posteriormente licenciado a otras compañías.

En 1981, el Western Design Center comenzó el desarrollo de una versión CMOS , el 65C02 . Este sigue siendo ampliamente utilizado en sistemas embebidos , con volúmenes de producción estimados en cientos de millones. [ 4 ]

Historia y uso

Génesis en Motorola

Placa de demostración del Motorola 6800 construida por Chuck Peddle y John Buchanan en 1974.

Motorola inició el proyecto del microprocesador 6800 en 1971 con Tom Bennett como arquitecto principal. Bennett contrató a Chuck Peddle en 1973 para realizar trabajos de soporte arquitectónico en los productos de la familia 6800 que ya estaban en desarrollo. [ 5 ] Bennett ya estaba trabajando en lo que se convertiría en el 6800. "Me contrató", dice Peddle sobre Bennett, "para realizar el trabajo de soporte arquitectónico para el producto que ya había comenzado". … dice Peddle. "Motorola intentó cancelarlo varias veces. Sin Bennett, el 6800 no habría existido, y gran parte de la industria tampoco". Peddle contribuyó en muchas áreas, incluido el diseño de la ACIA (interfaz serial) del 6850.

Peddle acompañaba a los vendedores de Motorola en las visitas a clientes y descubrió que a estos les desanimaba el alto costo de los chips de microprocesador. [ 6 ] Al mismo tiempo, estas visitas invariablemente resultaban en que los ingenieros a quienes presentaba el proyecto elaboraran listas de instrucciones requeridas mucho más cortas que "todas esas instrucciones sofisticadas" que se habían incluido en el 6800. [ 7 ] Peddle y otros miembros del equipo comenzaron a esbozar el diseño de un microprocesador con características mejoradas y de tamaño reducido. En ese momento, la nueva planta de fabricación de semiconductores de Motorola en Austin, Texas , tenía dificultades para producir chips MOS, y a mediados de 1974 comenzó una recesión de un año en la industria de los semiconductores. Además, muchos de los empleados de Mesa, Arizona, estaban descontentos con el próximo traslado a Austin. [ 8 ]

La dirección de la División de Productos Semiconductores de Motorola no mostró interés en la propuesta de microprocesador de bajo costo de Peddle. Finalmente, Peddle recibió una carta oficial en la que se le ordenaba dejar de trabajar en el sistema. [ 9 ] Peddle respondió a la orden informando a Motorola que la carta representaba una declaración oficial de "abandono del proyecto" y, por lo tanto, la propiedad intelectual que había desarrollado hasta ese momento le pertenecía. [ 10 ] El 6502 fue diseñado por muchos de los mismos ingenieros que habían diseñado la familia de microprocesadores Motorola 6800. [ 11 ]

En una entrevista de noviembre de 1975, el presidente de Motorola, Bob Galvin , finalmente reconoció que el concepto de Peddle era bueno y que la división había perdido una oportunidad: «No elegimos a los líderes adecuados en la división de productos semiconductores». La división se reorganizó y se reemplazó la gerencia. El nuevo vicepresidente del grupo, John Welty, declaró: «La organización de ventas de semiconductores perdió su sensibilidad a las necesidades de los clientes y no podía tomar decisiones rápidas». [ 12 ]

Tecnología MOS

Un anuncio de MOS Technology de 1973 que destacaba sus capacidades de circuitos integrados personalizados.
MOS Technology MCS6501, en encapsulado cerámico blanco, fabricado a finales de agosto de 1975.

Peddle comenzó a buscar financiación fuera de Motorola para este nuevo proyecto. Inicialmente se puso en contacto con el director ejecutivo de Mostek, LJ Sevin , pero este rechazó su solicitud. Sevin admitió posteriormente que esto se debió a que temía que Motorola los demandara. [ 13 ]

Mientras Peddle visitaba Ford Motor Company en uno de sus viajes de ventas, Bob Johnson, quien más tarde dirigiría la división de automatización de motores de Ford, mencionó que su antiguo colega John Paivinen se había trasladado a General Instrument y había aprendido por su cuenta el diseño de semiconductores. [ 14 ] Paivinen fundó entonces MOS Technology en Valley Forge, Pensilvania, en 1969 con otros dos ejecutivos de General Instrument, Mort Jaffe y Don McLaughlin. Allen-Bradley , proveedor de componentes electrónicos y controles industriales, adquirió una participación mayoritaria en 1970. [ 15 ] La empresa diseñaba y fabricaba circuitos integrados personalizados para clientes y había desarrollado una línea de chips para calculadoras. [ 16 ]

Después de que los esfuerzos de Mostek fracasaran, Peddle se acercó a Paivinen, quien "lo entendió de inmediato". [ 17 ] El 19 de agosto de 1974, Chuck Peddle, Bill Mensch, Rod Orgill, Harry Bawcom, Ray Hirt, Terry Holdt y Wil Mathys dejaron Motorola para unirse a MOS. Mike Janes se unió más tarde. De los diecisiete diseñadores de chips y personas de diseño del equipo 6800, ocho se fueron. El objetivo del equipo era diseñar y producir un microprocesador de bajo costo para aplicaciones integradas y dirigirse a la base de clientes más amplia posible. Esto solo sería posible si el microprocesador fuera de bajo costo, y el equipo estableció el precio objetivo para compras en volumen en $ 5. [ 18 ] Mensch declaró más tarde que el objetivo no era el precio del procesador en sí, sino crear un conjunto de chips que pudiera venderse a $ 20 para competir con el recientemente presentado Intel 4040 que se vendía por $ 29 en un conjunto de chips completo similar. [ 19 ]

Los chips se fabrican imprimiendo múltiples copias del diseño del chip en la superficie de una oblea , un disco delgado de silicio de alta pureza. Los chips más pequeños se pueden imprimir en mayor cantidad en la misma oblea, lo que reduce su precio relativo. Además, las obleas siempre contienen una cierta cantidad de pequeños defectos físicos dispersos por la superficie. Cualquier chip impreso en una de esas ubicaciones fallará y deberá desecharse. Los chips más pequeños implican que es menos probable que una sola copia se imprima sobre un defecto. Por ambas razones, el costo del producto final depende en gran medida del tamaño del diseño del chip. [ 20 ]

Los chips 6800 originales estaban destinados a ser de 180 por 180 mils (4,6 mm × 4,6 mm) , pero el diseño se completó a 212 por 212 mils (5,4 mm × 5,4 mm) , o un área de      29,0  mm 2 . [ 21 ] Para el nuevo diseño, el objetivo de costo exigía un objetivo de tamaño de 153 por 168 mils (3,9 mm × 4,3 mm) , o un área de   16,6  mm² , aproximadamente la mitad que el 6800. [ 22 ] Se necesitarían varias técnicas nuevas para alcanzar este objetivo.

Traslado a NMOS

Dos avances significativos llegaron al mercado justo cuando se diseñaba el 6502, lo que proporcionó importantes reducciones de costos. El primero fue el cambio a la tecnología NMOS de carga de agotamiento . El 6800 utilizaba un proceso NMOS primitivo , de modo de enriquecimiento, que requería tres voltajes de alimentación. Una de las características más destacadas del 6800 era un duplicador de voltaje  integrado que permitía usar una sola fuente de alimentación de +5 V para +5, -5 y +12  V internamente, a diferencia de otros chips de la época, como el Intel 8080, que requerían tres pines de alimentación separados. [ 23 ] Si bien esta característica redujo la complejidad de la fuente de alimentación y la disposición de los pines, aún requería líneas de alimentación separadas para las distintas compuertas del chip, lo que aumentaba la complejidad y el tamaño. Al pasar al nuevo diseño de carga de agotamiento, solo  se necesitaba una fuente de alimentación de +5 V, eliminando toda esta complejidad. [ 24 ]

Otra ventaja era que los diseños de carga por agotamiento consumían menos energía durante la conmutación, lo que permitía un funcionamiento más frío y velocidades de operación más altas. Otra consecuencia práctica es que la señal de reloj de las CPU anteriores debía ser lo suficientemente potente como para soportar toda la disipación durante su recorrido por los circuitos, lo que casi siempre requería un chip externo independiente capaz de suministrar una señal potente. Con los menores requisitos de energía del diseño de carga por agotamiento, el reloj pudo integrarse en el chip, simplificando así el diseño general del ordenador. Estos cambios redujeron considerablemente la complejidad y el coste de implementación de un sistema completo. [ 24 ]

Un cambio más amplio que se produjo en la industria fue la introducción del enmascaramiento por proyección . Anteriormente, los chips se grababan en la superficie de la oblea colocando una máscara sobre ella y luego iluminándola con una luz brillante. Las máscaras a menudo recogían pequeñas partículas de suciedad o fotorresina al retirarse del chip, lo que provocaba defectos en esas zonas en cualquier enmascaramiento posterior. En diseños complejos como las CPU, se utilizaban 5 o 6 pasos de enmascaramiento, y la probabilidad de que al menos uno de ellos introdujera un defecto era muy alta. En la mayoría de los casos, el 90 % de estos diseños presentaban defectos, lo que resultaba en un rendimiento del 10 %. El precio de los ejemplares funcionales debía cubrir el coste de producción del 90 % que se desechaba. [ 25 ]

En 1973, Perkin-Elmer presentó el sistema Micralign , que proyectaba una imagen de la máscara sobre la oblea en lugar de requerir contacto directo. Las máscaras ya no se ensuciaban con la suciedad de las obleas y duraban aproximadamente 100 000 usos en lugar de 10. Esto eliminó los fallos paso a paso y las altas tasas de defectos que antes se observaban en diseños complejos. El rendimiento de las CPU aumentó inmediatamente del 10 % al 60 % o 70 %. Esto significó que el precio de la CPU disminuyó aproximadamente en la misma proporción y el microprocesador se convirtió repentinamente en un producto básico. [ 25 ]

Las líneas de fabricación existentes de MOS Technology se basaban en la antigua tecnología PMOS ; aún no habían comenzado a trabajar con NMOS cuando llegó el equipo. Paivinen prometió tener una línea NMOS operativa a tiempo para comenzar la producción de la nueva CPU. Cumplió su promesa: la nueva línea estuvo lista en junio de 1975. [ 26 ]

Notas de diseño

Chuck Peddle, Rod Orgill y Wil Mathys diseñaron la arquitectura inicial de los nuevos procesadores. Un artículo de septiembre de 1975 en la revista EDN ofrece este resumen del diseño: [ 27 ]

La familia MOS Technology 650X representa un esfuerzo consciente de ocho exempleados de Motorola que trabajaron en el desarrollo del sistema 6800 para crear un componente que reemplazara y superara al 6800, pero a un precio inferior. Con la ventaja de la experiencia adquirida en el proyecto 6800, el equipo de MOS Technology, liderado por Chuck Peddle, realizó los siguientes cambios arquitectónicos en la CPU de Motorola…

El principal cambio en términos de tamaño del chip fue la eliminación de los controladores triestado de las salidas del bus de direcciones. Un bus triestado tiene estados para 1 , 0 y alta impedancia . El último estado se utiliza para permitir que otros dispositivos accedan al bus y se usa típicamente para multiprocesamiento o, más comúnmente en estas funciones, para acceso directo a memoria (DMA). Si bien es útil, esta característica es costosa en términos de circuitos en el chip. El 6502 simplemente eliminó esta característica, en consonancia con su diseño como un controlador económico utilizado para tareas específicas y comunicación con dispositivos simples. Peddle sugirió que cualquiera que requiriera este estilo de acceso podría implementarlo con un 74158. [ 28 ] [ a ]

La siguiente diferencia importante fue simplificar los registros. Para empezar, se eliminó uno de los dos acumuladores . Los registros de propósito general, como los acumuladores, deben ser accedidos por muchas partes del decodificador de instrucciones, lo que requiere una cantidad considerable de cableado para transferir datos desde y hacia su almacenamiento. Dos acumuladores facilitan muchas tareas de codificación, pero aumentan significativamente la complejidad del diseño del chip. [ 27 ] Se lograron ahorros adicionales al reducir el registro de pila de 16 a 8 bits, lo que significaba que la pila solo podía tener 256 bytes de longitud, suficiente para su función prevista como microcontrolador. [ 27 ]

El registro de índice IX de 16 bits se dividió en dos, convirtiéndose en X e Y. Más importante aún, cambió el estilo de acceso. En el 6800, IX almacenaba una dirección de 16 bits que se desplazaba mediante un número de 8 bits almacenado con la instrucción y se sumaba a la dirección. En el 6502 (y en la mayoría de los demás diseños contemporáneos), la dirección base de 16 bits se almacenaba en la instrucción, y a ella se le sumaba el valor de 8 bits X o Y. [ 28 ]

Finalmente, se simplificó el conjunto de instrucciones, simplificando el decodificador y la lógica de control. De las 72 instrucciones originales del 6800, se implementaron 56. Entre las eliminadas se encontraban las instrucciones que operaban entre los dos acumuladores del 6800 y varias instrucciones de salto inspiradas en el PDP-11 . [ 28 ]

El diseño de alto nivel del chip tuvo que transformarse en diagramas de transistores e interconexiones. En MOS Technology, el diseño era un proceso muy manual realizado con lápices de colores y papel vitela . El diseño constaba de miles de formas poligonales en seis dibujos diferentes; uno para cada capa del proceso de fabricación. Dadas las limitaciones de tamaño, el diseño completo del chip debía considerarse constantemente. Mensch y Paivinen trabajaron en el decodificador de instrucciones [ 30 ], mientras que Mensch, Peddle y Orgill trabajaron en la ALU y los registros. Un avance posterior, desarrollado en una reunión informal, fue una forma de compartir parte del cableado interno para permitir la reducción del tamaño de la ALU. [ 31 ]

A pesar de sus mejores esfuerzos, el diseño final terminó siendo más grande que el objetivo original. Los primeros chips 6502 eran de 168 por 183 mils (4,3 mm × 4,6 mm) , para un área de   19,8  mm² . La versión original del procesador no tenía capacidad de rotación a la derecha (ROR), por lo que la instrucción se omitió de la documentación original. La siguiente iteración del diseño redujo el tamaño del chip y añadió la capacidad de rotación a la derecha, y ROR se incluyó en la documentación revisada. [ 32 ] [ b ]

Presentamos los modelos 6501 y 6502.

Anuncio de presentación de los microprocesadores MCS6501 y MCS6502 de MOS Technology.

MOS presentaría dos microprocesadores basados ​​en el mismo diseño subyacente: el 6501 se conectaría al mismo zócalo que el Motorola 6800, mientras que el 6502 reorganizaría la distribución de pines para admitir un oscilador de reloj en el chip. Ambos funcionarían con otros chips de soporte diseñados para el 6800. No ejecutarían el software del 6800 porque tenían un conjunto de instrucciones diferente, registros diferentes y, sobre todo, modos de direccionamiento diferentes. [ 3 ] Rod Orgill fue responsable del diseño del 6501; había ayudado a John Buchanan en Motorola con el 6800. Bill Mensch diseñó el 6502; fue el diseñador del 6820 PIA en Motorola. Harry Bawcom, Mike Janes y Sydney-Anne Holt ayudaron con el diseño.

La presentación del microprocesador de MOS Technology fue diferente al lanzamiento tradicional de un producto que dura varios meses. La primera serie de un nuevo circuito integrado se suele utilizar para pruebas internas y se comparte con clientes selectos como muestras de ingeniería . Estos chips a menudo presentan pequeños defectos de diseño que se corrigen antes de que comience la producción. El objetivo de Chuck Peddle era vender la primera serie de chips 6501 y 6502 a los asistentes a la Western Electronics Show and Convention (WESCON) en San Francisco, que comenzó el 16 de septiembre de 1975. Peddle fue un portavoz muy eficaz y los microprocesadores de MOS Technology recibieron una amplia cobertura en la prensa especializada. Uno de los primeros artículos sobre ellos fue un reportaje de página completa sobre los microprocesadores MCS6501 y MCS6502 en la edición del 24 de julio de 1975 de la revista Electronics . [ 36 ] También se publicaron artículos en EE Times (24 de agosto de 1975), [ 37 ] EDN (20 de septiembre de 1975), Electronic News (3 de noviembre de 1975), Byte (noviembre de 1975) [ 38 ] y Microcomputer Digest (noviembre de 1975). [ 39 ] Los anuncios del 6501 aparecieron en varias publicaciones la primera semana de agosto de 1975. El 6501 estaría a la venta en WESCON por $20 cada uno. [ 40 ] En septiembre de 1975, los anuncios incluían tanto el microprocesador 6501 como el 6502. El 6502 costaría solo $25 ( equivalente a $150 en 2025 ). [ 41 ]

Cuando MOS Technology llegó a WESCON, descubrieron que los expositores no tenían permitido vender nada en el recinto ferial. Alquilaron la Suite MacArthur en el Hotel St. Francis y dirigieron a los clientes allí para que compraran los procesadores. En la suite, los procesadores se almacenaban en grandes frascos para dar la impresión de que los chips estaban en producción y disponibles. Los clientes desconocían que la mitad inferior de cada frasco contenía chips no funcionales. [ 42 ] Los chips costaban $20 y $25, mientras que el paquete de documentación tenía un costo adicional de $10 . Se animaba a los usuarios a hacer fotocopias de los documentos, una forma económica para que MOS Technology distribuyera información del producto. Las hojas de datos preliminares enumeraban solo 55 instrucciones y excluían la instrucción Rotate Right (ROR), que no era compatible con estos primeros chips. Las reseñas en Byte y EDN señalaron la falta de la instrucción ROR. La siguiente revisión del diseño solucionó este problema y la hoja de datos de mayo de 1976 enumeraba 56 instrucciones. Peddle quería que todos los ingenieros y aficionados interesados ​​tuvieran acceso a los chips y la documentación, mientras que otras empresas de semiconductores solo querían tratar con clientes "serios". Por ejemplo, Signetics estaba presentando el microprocesador 2650 y sus anuncios pedían a los lectores que escribieran para obtener información en el membrete de su empresa. [ 43 ]

Demanda contra Motorola

La hoja de datos de mayo de 1976 omitió el microprocesador 6501 que sí estaba presente en la versión de agosto de 1975 .

La presentación de los modelos 6501/6502 en prensa y en WESCON fue un éxito. La cobertura mediática atrajo la atención de Motorola, lo que provocó ajustes de precios y demandas. En octubre de 1975, Motorola redujo el precio de un microprocesador 6800 de 175 a 69 dólares . El kit de diseño del sistema, que costaba 300 dólares , se redujo a 150 dólares e incluía una placa de circuito impreso. [ 44 ] El 3 de noviembre de 1975, Motorola solicitó una orden judicial en un tribunal federal para impedir que MOS Technology fabricara y vendiera microprocesadores. También interpusieron una demanda por infracción de patentes y apropiación indebida de secretos comerciales. Motorola alegó que siete exempleados se unieron a MOS Technology para crear los microprocesadores de dicha empresa. [ 45 ]

Motorola era una empresa multimillonaria con un caso plausible y abogados costosos. El 30 de octubre de 1974, Motorola había presentado numerosas solicitudes de patente para la familia de microprocesadores y se le concedieron veinticinco patentes. La primera fue en junio de 1976 y la segunda a Bill Mensch el 6 de julio de 1976, para el diseño del chip PIA 6820. Estas patentes cubrían el bus 6800 y cómo los chips periféricos se interconectaban con el microprocesador. [ 46 ] Motorola comenzó a fabricar transistores en 1950 y tenía una cartera de patentes de semiconductores. Allen-Bradley decidió no litigar en este caso y vendió su participación en MOS Technology a los fundadores. Cuatro de los antiguos ingenieros de Motorola fueron nombrados en la demanda: Chuck Peddle, Will Mathys, Bill Mensch y Rod Orgill. Todos ellos figuraban como inventores en las solicitudes de patente del 6800. Durante el proceso de investigación, Motorola descubrió que un ingeniero, Mike Janes, había ignorado las instrucciones de Peddle y había entregado sus documentos de diseño del 6800 a MOS Technology. [ 47 ] En marzo de 1976, la ahora independiente MOS Technology se estaba quedando sin dinero y tuvo que llegar a un acuerdo. Acordaron abandonar el procesador 6501, pagar a Motorola 200 000 dólares y devolver los documentos que Motorola sostenía que eran confidenciales. Ambas compañías acordaron licencias cruzadas de patentes de microprocesadores. [ 48 ] En mayo de ese año, Motorola bajó el precio de un solo microprocesador 6800 a 35 dólares . En noviembre, Commodore había adquirido MOS Technology. [ 49 ] [ 50 ]

Computadoras y juegos

Con los problemas legales resueltos, MOS aún tenía el problema de conseguir desarrolladores que probaran su procesador, lo que llevó a Chuck Peddle a diseñar el sistema de desarrollo MDT650. [ 51 ] Otro grupo dentro de la empresa diseñó el KIM-1 , que se vendía semi-completo y podía convertirse en un sistema utilizable con la adición de una terminal de computadora de terceros y una unidad de casete compacta . Si bien se vendió bien en su mercado objetivo, la empresa descubrió que el KIM-1 también se vendió bien entre aficionados y manitas. El sistema de control, entrenamiento y desarrollo Rockwell AIM-65 relacionado también tuvo éxito. El software en el AIM 65 se basaba en el del MDT. Otro producto aproximadamente similar fue el Synertek SYM-1 .

Uno de los primeros usos externos del diseño fue el microordenador Apple I , presentado en 1976. El 6502 se utilizó después en el Commodore PET y el Apple II , [ 52 ] ambos lanzados en 1977. Más tarde se utilizó en los ordenadores Atari de 8 bits , Acorn Atom , BBC Micro , [ 52 ] VIC-20 y otros diseños tanto para ordenadores domésticos como comerciales, como los ordenadores Ohio Scientific y Oric . El 6510 , un sucesor directo del 6502 con un puerto de E/S digital y un bus de direcciones triestado , fue la CPU utilizada en el ordenador doméstico Commodore 64 , el más vendido [ 53 ] [ 54 ] .

Otro uso importante de la familia 6500 fue en los videojuegos. El primero en utilizar el diseño del procesador fue el Atari VCS de 1977, posteriormente renombrado Atari 2600. El VCS utilizó una variante del 6502 llamada 6507 , que tenía menos pines, por lo que solo podía direccionar 8 KB de memoria. Se vendieron millones de consolas Atari, cada una con un procesador MOS. Otro uso significativo fue por parte del Nintendo Entertainment System (NES) y Famicom . El 6502 utilizado en la NES era una segunda versión de fuente de Ricoh , un sistema parcial en un chip , que carecía del modo decimal codificado en binario pero agregaba 22 registros mapeados en memoria y hardware en el chip para la generación de sonido, lectura del mando y DMA de la lista de sprites . Llamado 2A03 en consolas NTSC y 2A07 en consolas PAL , [ c ] este procesador fue producido exclusivamente para Nintendo . 

El procesador 6502 o sus variantes se utilizaron en todas las unidades de disquete de Commodore para todos sus ordenadores de 8 bits, desde la línea PET hasta el Commodore 128D, incluyendo el Commodore 64. Las unidades PET de 8 pulgadas tenían dos procesadores 6502. Atari utilizó el mismo 6507 que el Atari 2600 para sus unidades de disquete 810 y 1050 , utilizadas en toda su línea de ordenadores de 8 bits, desde el 400/800 hasta el XEGS.

En la década de 1980, la popular revista de electrónica Elektor utilizó este procesador en su placa de desarrollo de microprocesadores Junior Computer .

El sucesor CMOS del 6502, el WDC 65C02 , también se utilizó en ordenadores domésticos y consolas de videojuegos. Apple lo utilizó en la línea Apple II, comenzando con el Apple IIc y variantes posteriores del Apple IIe , y también ofreció un kit para actualizar sistemas IIe más antiguos con el nuevo procesador. [ 55 ] El chip Hudson Soft HuC6280 utilizado en el TurboGrafx-16 se basaba en un núcleo 65C02. El Atari Lynx utilizó un chip personalizado llamado "Mikey" [ 56 ] diseñado por Epyx que incluía una celda con licencia VLSI VL65NC02. La variante G65SC12 de GTE Microcircuits (renombrada California Micro Devices) se utilizó en el BBC Master . Algunos modelos del BBC Master también incluían un coprocesador adicional G65SC102.

Modelo del programador

Chip del procesador 6502. La sección regular en la parte superior es la ROM de decodificación de instrucciones, la sección irregular en el centro es la lógica de control, y en la parte inferior se encuentran los registros (derecha) y la ALU (izquierda). Las conexiones del bus de datos están a lo largo de la parte inferior derecha, y el bus de direcciones a lo largo de la parte inferior e inferior izquierda. [ 22 ]
Configuración de pines 6502 ( DIP de 40 pines )
Registros MOS 6502

El 6502 es un procesador little-endian de 8 bits con un bus de direcciones de 16 bits . Las versiones originales se fabricaron utilizando una tecnología de proceso de 8 µm [ 57 ] con un tamaño de chip de 3,9 mm × 4,3 mm (153 por 168 mils) , para un área total de   16,6  mm 2 . [ 22 ]

La lógica interna funciona a la misma velocidad que la frecuencia del reloj externo. Presentaba una sencilla arquitectura de dos etapas; en cada ciclo, el procesador recuperaba un byte de la memoria y procesaba otro. Esto significa que cualquier instrucción puede completarse en tan solo dos ciclos, dependiendo del número de operandos que utilice. En comparación, el Zilog Z80 requería dos ciclos para recuperar memoria, y el tiempo mínimo de instrucción era de cuatro ciclos. Por lo tanto, a pesar de las velocidades de reloj más bajas en comparación con los diseños de la competencia, típicamente en el rango de 1 aCon una frecuencia de 2 MHz  , el rendimiento del 6502 era comparable al de las CPU que utilizaban relojes significativamente más rápidos. Esto se debe en parte a una máquina de estados simple implementada mediante lógica combinacional (sin reloj) en mayor medida que en muchos otros diseños; el reloj de dos fases (que proporcionaba dos sincronizaciones por ciclo) podía, por lo tanto, controlar directamente el ciclo de la máquina.

Este diseño también dio lugar a una útil nota de diseño del 6502 y del 6800 anterior. Debido a que el chip solo accedía a la memoria durante una parte determinada del ciclo de reloj, otros chips del sistema podían acceder a la memoria durante los momentos en que el 6502 no estaba en el bus. Esto se conocía a veces como acceso oculto . Esta técnica fue ampliamente utilizada por los sistemas informáticos; utilizaban memoria capaz de acceder a 2  MHz y luego ejecutaban la CPU a 1  MHz. Esto garantizaba que la CPU y el hardware de vídeo pudieran intercalar sus accesos, con un rendimiento total que coincidía con el del dispositivo de memoria. Debido a que este acceso se producía en cada dos ciclos, no era necesario indicar a la CPU que evitara usar el bus, lo que hacía que este tipo de acceso fuera fácil de implementar sin ninguna lógica de bus. [ 58 ] Cuando las memorias más rápidas estuvieron disponibles en la década de 1980, las máquinas más nuevas pudieron utilizar esta misma técnica mientras funcionaban a velocidades de reloj más altas; el BBC Micro utilizó una RAM más nueva que permitió que su CPU funcionara a 2  MHz mientras seguía utilizando las mismas técnicas de compartición de bus.

Al igual que la mayoría de las CPU sencillas de la época, el chip dinámico NMOS 6502 no se secuenciaba mediante microcódigo , sino que se decodificaba directamente utilizando una PLA dedicada . El decodificador ocupaba aproximadamente el 15 % del área del chip. Esto contrasta con diseños posteriores basados ​​en microcódigo, como el Motorola 68000 , donde la ROM de microcódigo y el motor decodificador representaban aproximadamente un tercio de las puertas lógicas del sistema.

Registros

Al igual que su predecesor, el 6800, el 6502 tiene muy pocos registros . Estos incluyen [ 59 ].

Esto se compara con un competidor contemporáneo, el Intel 8080 , que también tiene un acumulador de 8 bits y un contador de programa de 16 bits, pero tiene seis registros de propósito general de 8 bits adicionales (que se pueden combinar en tres punteros de 16 bits) y un puntero de pila de 16 bits más grande. [ 62 ]

Para compensar en cierta medida la falta de registros, el 6502 incluye un modo de direccionamiento de página cero que utiliza un byte de dirección en la instrucción en lugar de los dos necesarios para direccionar la página completa.64  KB de memoria. Esto proporciona un acceso rápido al primero.Se pueden utilizar 256  bytes de RAM mediante instrucciones más cortas. Por ejemplo, una instrucción para sumar un valor de la memoria al valor del acumulador normalmente ocuparía tres bytes: uno para la instrucción y dos para la dirección de 16 bits. El uso de la página cero reduce esto a una dirección de 8 bits, disminuyendo la longitud total de la instrucción a dos bytes y, por lo tanto, mejorando el rendimiento de la instrucción.

El espacio de direcciones de la pila está cableado a la página de memoria $01, es decir, al rango de direcciones $0100$01FF( 256511). El acceso por software a la pila se realiza mediante cuatro instrucciones de modo de direccionamiento implícito, cuyas funciones son insertar o extraer (o extraer) el acumulador o el registro de estado del procesador. La misma pila también se utiliza para las llamadas a subrutinas mediante las instrucciones JSR (salto a subrutina) y RTS (retorno de subrutina), así como para el manejo de interrupciones .

Direccionamiento

El chip utiliza eficazmente los registros de índice y pila con varios modos de direccionamiento , incluido un modo de página cero rápido , similar al del PDP-8 , que accede a las ubicaciones de memoria de las direcciones 0 a 255 con una sola dirección de 8 bits (ahorrando el ciclo que normalmente se requiere para obtener el byte de orden superior de la dirección). El código para el 6502 utiliza la página cero de forma similar a como el código para otros procesadores utilizaría los registros. En algunos microordenadores basados ​​en el 6502 con un sistema operativo, este utiliza la mayor parte de la página cero, dejando solo unas pocas ubicaciones para el usuario.

Los modos de direccionamiento también incluyen implícito (instrucciones de 1 byte); absoluto (3 bytes); absoluto indexado (3 bytes); página cero indexada (2 bytes); relativo (2 bytes); acumulador (1); indirecto,x e indirecto,y (2); e inmediato (2). Las instrucciones de salto usan un desplazamiento con signo de 8 bits relativo a la instrucción después del salto; el rango numérico −128..127 se traduce, por lo tanto, en 128 bytes hacia atrás y 127 bytes hacia adelante desde la instrucción que sigue al salto (que es 126 bytes hacia atrás y 129 bytes hacia adelante desde el inicio de la instrucción de salto). El modo acumulador opera en el registro acumulador y no necesita ningún dato de operando . El modo inmediato usa un operando literal de 8 bits .

Los modos indirectos son útiles para el procesamiento de matrices y estructuras de datos basadas en punteros. Con el modo indirecto,y de 5 o 6 ciclos , el registro Y de 8 bits se suma a una dirección base de 16 bits leída de la página cero, que se encuentra a un solo byte después del código de operación. El registro Y es, por lo tanto, un registro de índice en el sentido de que se usa para almacenar un índice real . [ e ] Incrementar el registro de índice para recorrer la matriz byte a byte toma solo dos ciclos adicionales. Con el modo indirecto,x menos utilizado , la dirección efectiva para la operación se encuentra en la dirección de la página cero formada al sumar el segundo byte de la instrucción al contenido del registro X. Usando los modos indexados, la página cero actúa efectivamente como un conjunto de hasta 128 registros de dirección adicionales (de bajo rendimiento).

BCD

El procesador 6502 es capaz de realizar sumas y restas en binario o decimal codificado en binario (BCD ). Al poner la CPU en modo BCD con la SEDinstrucción (set D flag), se realiza aritmética decimal, lo que $99 + $01resulta en $00 y la activación del indicador de acarreo (C). En modo binario, al que se accede con CLD(clear D flag), la misma operación resulta en $9A y la desactivación del indicador de acarreo. Aparte de Atari BASIC , el modo BCD se usaba raramente en aplicaciones para ordenadores domésticos.

Instrucciones y códigos de operación

Los códigos de operación de instrucción ( opcodes ) del 6502 tienen 8  bits de longitud y la forma general AAABBBCC, donde AAA y CC definen el opcode, y BBB define el modo de direccionamiento. [ 63 ] Por ejemplo, la ORAinstrucción realiza una operación OR bit a bit entre los bits del acumulador y otro valor. El opcode de la instrucción tiene la forma 000BBB01, donde BBB puede ser 010 para un valor de modo inmediato (constante), 001 para una dirección fija de página cero, 011 para una dirección absoluta, etc. [ 63 ] Este patrón no es universal, ya que existen excepciones, pero permite convertir fácilmente los valores de los opcodes a mnemónicos de ensamblador para la mayoría de las instrucciones, manejando los casos límite con código específico. [ 63 ]

De los 256 códigos de operación posibles disponibles usando un patrón de 8 bits, el 6502 original usa 151 de ellos, organizados en 56 instrucciones con (posiblemente) múltiples modos de direccionamiento . Dependiendo de la instrucción y el modo de direccionamiento, el código de operación puede requerir cero, uno o dos bytes adicionales para operandos. Por lo tanto, las instrucciones de máquina del 6502 varían en longitud de uno a tres bytes. [ 64 ] [ 65 ] El operando se almacena en el formato little-endian habitual del 6502 .

Cada instrucción de máquina de la CPU consume un cierto número de ciclos de reloj, generalmente igual al número de accesos a memoria. Por ejemplo, el modo de indexación absoluta de la instrucción ORA consume 4 ciclos de reloj: 3 para leer la instrucción y 1 para leer el valor de la dirección absoluta. Si no se accede a memoria, el número de ciclos de reloj es dos. El mínimo de ciclos de reloj para cualquier instrucción es dos. Al usar direccionamiento indexado, si el resultado cruza un límite de página, se añade un ciclo de reloj adicional. Asimismo, cuando se utiliza una dirección de página cero en modo de indexación (por ejemplo, zp,X), se añade un ciclo de reloj adicional.

El 65C816 , el descendiente CMOS de 16 bits del 6502, también admite direccionamiento de 24 bits, lo que da como resultado que las instrucciones se ensamblen con operandos de tres bytes, también dispuestos en formato little-endian.

 Los 105 códigos de operación restantes no están definidos. En el diseño original, las instrucciones donde los 4 bits de orden inferior ( nibble ) eran 3, 7, B o F no se usaban, lo que dejaba espacio para futuras expansiones. Del mismo modo, la columna $x2 tenía solo una entrada, . Las 25 ranuras vacías restantes se distribuyeron. Algunas de las ranuras vacías se usaron en el 65C02 para proporcionar tanto instrucciones nuevas como variaciones de las existentes con nuevos modos de direccionamiento. Las instrucciones $xF se dejaron inicialmente libres para permitir que proveedores externos agregaran sus propias instrucciones, pero versiones posteriores del 65C02 estandarizaron un conjunto de instrucciones de manipulación de bits desarrolladas por Rockwell Semiconductor .LDX #constant

lenguaje ensamblador

Una instrucción en lenguaje ensamblador 6502 consta de un mnemónico de instrucción de tres caracteres , seguido de cualquier operando . Las instrucciones que no toman un operando separado, sino que apuntan a un solo registro según el modo de direccionamiento, combinan el registro de destino en el mnemónico de instrucción, por lo que el ensamblador usa INXen lugar de INC Xpara incrementar el registro X.

Tabla de instrucciones

Código de ejemplo

El siguiente código fuente en lenguaje ensamblador 6502 corresponde a una subrutina llamada , que copia una cadena de caracteres terminada en nulo de una ubicación a otra, convirtiendo las letras mayúsculas a minúsculas. La cadena que se copia es la "cadena de origen" y la cadena donde se almacena la cadena de origen convertida es el "destino".TOLOWER

Diseño de hardware de circuitos integrados

Chip del procesador 6502 con transistores NMOS dibujados y etiquetas que insinúan la funcionalidad de los componentes del 6502.

La entrada de interrupción no enmascarable (NMI) del procesador es sensible al flanco , lo que significa que la interrupción se activa con el flanco descendente de la señal, en lugar de con su nivel. Por consiguiente, no es fácil implementar un circuito de interrupción OR cableado . Sin embargo, esto también impide que se produzcan interrupciones NMI anidadas hasta que el hardware de la fuente de interrupción vuelva a desactivar la entrada NMI, generalmente bajo el control del controlador de interrupciones NMI .

La activación simultánea de las líneas de interrupción de hardware NMI e IRQ (enmascarable) provoca que se ignore la IRQ. Sin embargo, si la línea IRQ permanece activa tras la gestión de la NMI, el procesador responderá casi inmediatamente a la IRQ, ya que esta es sensible al nivel . De este modo, se estableció una especie de prioridad de interrupción integrada en el diseño del 6502. (El primer código de operación del controlador de la NMI se ejecuta antes de que se detecte de nuevo la IRQ).

El indicador B se activa mediante el muestreo periódico de la salida del detector de flanco NMI y la entrada IRQ del 6502. Sin embargo, la señal IRQ que se activa a nivel bajo solo se reconoce si las IRQ no están enmascaradas por el indicador I. Si de esta manera se detecta una solicitud NMI o una IRQ (enmascarable), el indicador B se establece a cero y hace que el procesador ejecute la instrucción BRK en lugar de la siguiente instrucción según el contador de programa. [ 66 ] [ 67 ]

La instrucción BRK guarda el estado del procesador en la pila, con el bit del indicador B establecido a cero. Al finalizar su ejecución, la instrucción BRK restablece el valor del indicador B a uno. Esta es la única forma de modificar el indicador B. Si una instrucción distinta a la BRK guarda el indicador B en la pila como parte del estado del procesador [ 68 ], el indicador B siempre tendrá el valor uno.

Una transición de alto a bajo en el pin de entrada SO activará el bit de estado de desbordamiento del procesador. Esto permite una respuesta rápida al hardware externo. Por ejemplo, un controlador de dispositivo de sondeo de alta velocidad puede consultar el hardware una vez cada tres ciclos mediante una BVCinstrucción Branch-on-oVerflow-Clear ( ) que se ramifica a sí misma hasta que se activa el desbordamiento por una transición descendente SO. El Commodore 1541 y otras unidades de disquete Commodore utilizan esta técnica para detectar cuándo el serializador está listo para transferir otro byte de datos del disco. El diseño del hardware y el software del sistema debe garantizar que no se produzca un SO durante el procesamiento aritmético y que este no interrumpa los cálculos.

Variaciones y derivados

El modelo 6502 fue la variante más prolífica de la familia de la serie 65xx de MOS Technology .

Los modelos 6501 y 6502 tienen encapsulados DIP de 40 pines ; los modelos 6503, 6504, 6505 y 6507 son versiones DIP de 28 pines, para reducir el costo del chip y de la placa de circuito impreso. En todas las versiones de 28 pines, el número de pines se reduce al omitir algunos de los pines de dirección de orden superior y diversas combinaciones de pines de función, lo que hace que dichas funciones no estén disponibles.

Normalmente, los 12 pines que se omiten para reducir el número de pines de 40 a 28 son los tres pines no conectados (NC), uno de los dos pines Vss, uno de los pines de reloj, el pin SYNC, el pin de desbordamiento de conjunto (SO), la interrupción enmascarable o la interrupción no enmascarable (NMI) y las cuatro líneas de dirección más significativas (A12 A15). La omisión de cuatro pines de dirección reduce la direccionabilidad externa a 4  KB (de los 64  KB del 6502), aunque el registro PC interno y todos los cálculos de dirección efectivos siguen siendo de 16 bits .

El microcontrolador 6507 omite ambos pines de interrupción para incluir la línea de dirección A12, lo que proporciona 8 KB de direccionamiento externo pero no capacidad de interrupción. El 6507 se utilizó en la popular consola de videojuegos Atari 2600 , cuyo diseño divide el espacio de memoria de 8 KB por la mitad, asignando la mitad inferior a la RAM interna y los periféricos de la consola, y la mitad superior al cartucho del juego, por lo que los cartuchos de Atari 2600 tienen un límite de dirección de 4 KB (y el mismo límite de capacidad a menos que el cartucho contenga circuitos de conmutación de bancos ).

Un popular ordenador basado en el 6502, el Commodore 64 , utilizaba una CPU 6502 modificada, la 6510. A diferencia de las 6503 , 6505 y 6507, la 6510 es un chip de 40 pines que añade hardware interno: un puerto de E/S paralelo de 6 bits asignado a las direcciones 0000 y 0001. La 6508 es otro chip que, al igual que la 6510, añade hardware interno: 256 bytes de SRAM y un puerto de E/S de 8 bits similar al de la 6510. Aunque estos chips no tienen un número reducido de pines en comparación con la 6502, necesitan nuevos pines para el puerto de E/S paralelo añadido. En este caso, ninguna línea de dirección se encuentra entre los pines eliminados.

Derivados de 16 bits

El Western Design Center diseñó y, a partir de 2025, todavía produce el procesador WDC 65C816 S, un sucesor de 16 bits con núcleo estático del 65C02 . El W65C816S es una variante más reciente del 65C816, que es el núcleo de la computadora Apple IIGS y es la base del procesador Ricoh 5A22 que impulsa el Super Nintendo Entertainment System . El W65C816S incorpora pequeñas mejoras con respecto al 65C816 que hacen que el nuevo chip no sea un reemplazo exacto compatible con el hardware del anterior. Entre estas mejoras se encuentra la conversión a un núcleo estático, que permite detener el reloj en cualquiera de las fases sin que los registros pierdan datos. Disponible a través de distribuidores de electrónica, desde marzo de 2020, el W65C816S está oficialmente clasificado para  operar a 14 MHz.

El Western Design Center también diseñó y produjo el 65C802 , un núcleo 65C816 con un espacio de direcciones de 64 kilobytes en un encapsulado compatible con los pines del 65(C)02. El 65C802 podía adaptarse a una placa 6502 y funcionaba como un 65C02 al encenderse, operando en "modo de emulación". Al igual que con el 65C816, una secuencia de dos instrucciones cambiaba el 65C802 a "modo nativo", exponiendo su acumulador de 16 bits , sus registros de índice y otras características del 65C816. El 65C802 no tuvo una amplia difusión y su producción finalizó.

Errores y peculiaridades

El 6502 tenía varios fallos y peculiaridades que debían tenerse en cuenta al programarlo:

  • Las primeras revisiones del 6502, como las que se enviaron con algunas computadoras KIM-1 , no tenían una instrucción ROR (rotar a la derecha memoria o acumulador). En estos chips, la operación del código de operación que luego se asignó a ROR es efectivamente una instrucción ASL (desplazamiento aritmético a la izquierda) que no afecta el bit de acarreo en el registro de estado. Inicialmente, MOS excluyó intencionalmente ROR del conjunto de instrucciones, considerándolo no suficientemente valioso como para justificar sus costos. En respuesta a muchas consultas de los clientes, MOS prometió en la segunda edición del Manual de programación MCS6500 (documento n.° 6500-50A) que ROR aparecería en los chips 6502 a partir de 1976. [ 32 ] [ g ] La gran mayoría de los chips 6502 existentes hoy en día incluyen la instrucción ROR; Esto incluye todas las CPU instaladas originalmente en microordenadores populares totalmente ensamblados, como las líneas Apple II y Commodore 64, todas ellas fabricadas después de 1976.
  • La familia NMOS 6502 cuenta con diversas instrucciones no documentadas , que varían según el fabricante del chip. La decodificación de instrucciones del 6502 se implementa en una matriz lógica cableada (similar a una matriz lógica programable ) que solo está definida para 151 de los 256 códigos de operación disponibles . Los 105 restantes desencadenan acciones extrañas y, en ocasiones, difíciles de predecir, como el bloqueo del procesador, la ejecución consecutiva de dos instrucciones válidas, combinaciones inusuales de dos instrucciones o, simplemente, la inactividad. Algunos diseñadores de hardware utilizaron los códigos de operación no definidos para ampliar el conjunto de instrucciones del 6502, detectando cuándo se obtiene un código de operación no definido y realizando una operación de extensión externa al procesador, mientras sustituyen un código de operación neutro (similar a NOP) por el 6502 para que permanezca inactivo mientras el hardware externo gestiona la operación de extensión. Además, algunos programadores utilizaron esta característica para extender el conjunto de instrucciones del 6502 al proporcionar funcionalidad para los opcodes no implementados con software escrito especialmente interceptado en el vector 0xFFFE de la instrucción BRK. [ 89 ] [ 90 ] Todos los opcodes no definidos han sido reemplazados con instrucciones NOP en el 65C02 , una versión CMOS mejorada del 6502, aunque con tamaños de bytes y tiempos de ejecución variables. (Algunos de ellos en realidad realizan operaciones de lectura de memoria pero luego ignoran los datos). En el 65C802/65C816 , los 256 opcodes realizan operaciones definidas.
  • La instrucción de salto indirecto de memoria del 6502 , , tiene una limitación poco intuitiva que muchos usuarios consideran un defecto. Si es hexadecimal (es decir, cualquier palabra que termine en ), el procesador no saltará a la dirección almacenada en y como se espera, sino a la definida por y (por ejemplo, saltaría a la dirección almacenada en y , en lugar de la almacenada en y ). Esto se puede evitar simplemente no colocando ninguna dirección de destino de salto indirecto a través de un límite de página, y el Manual de Programación MCS6500 de MOS Technology da motivos para creer que esta era la intención de los diseñadores del 6502, para ahorrar espacio en el chip que se habría utilizado para implementar el comportamiento más complejo de agregar condicionalmente 1 ciclo de reloj para propagar el acarreo cuando sea necesario. Este aparente defecto continuó en toda la línea NMOS, pero se corrigió en los derivados CMOS.JMP (<address>)<address>xxFFFFxxFFxxFF+1xxFFxx00JMP($10FF)10FF100010FF1100
  • El direccionamiento indexado NMOS 6502 entre páginas realiza una lectura adicional de una dirección no válida en la página de la dirección base (a la que se añade el índice). Esta característica puede causar problemas aleatorios al acceder a hardware que actúa sobre una lectura, como borrar indicadores de temporizador o IRQ, enviar un protocolo de enlace de E/S, etc. La lectura adicional se puede predecir y gestionar para evitar estos problemas, pero solo con especial cuidado en el diseño tanto del hardware como del software. Este fallo persistió en toda la línea NMOS, pero se corrigió en las versiones CMOS, en las que el procesador realiza una lectura adicional del último byte de instrucción.
  • Las instrucciones de lectura, modificación y escritura del 6502 realizan un ciclo de lectura y dos de escritura. Primero, se reescriben los datos leídos sin modificar y, a continuación, se escriben los datos modificados. Esta característica puede causar problemas al acceder dos veces al hardware que actúa sobre una operación de escritura. Esta anomalía persistió en toda la línea NMOS, pero se corrigió en las versiones CMOS, en las que el procesador realiza dos ciclos de lectura y uno de escritura. Las buenas prácticas de programación generalmente evitan este problema al no ejecutar instrucciones de lectura, modificación y escritura en los registros de hardware.
  • Los indicadores de estado N (resultado negativo), V (desbordamiento del bit de signo) y Z (resultado cero) generalmente carecen de sentido al realizar operaciones aritméticas mientras el procesador está en modo BCD , ya que estos indicadores no están definidos en modo decimal y se ha demostrado empíricamente que reflejan el resultado binario, no el BCD. Esta limitación se eliminó en las versiones CMOS, a costa de un ciclo de reloj adicional para una instrucción ADC o SBC en modo decimal (excepto en el 65C816). Por lo tanto, esta característica puede utilizarse para distinguir un procesador CMOS de una versión NMOS (aprovechando el comportamiento no documentado de la versión NMOS). [ 91 ]
  • Si el 6502 se encuentra en modo BCD cuando se produce una interrupción de hardware, no volverá al modo binario. Esta característica podría provocar errores difíciles de detectar en la rutina de servicio de interrupción (ISR) si no se borra el modo BCD antes de realizar cualquier operación aritmética. Por lo tanto, el manual de programación del 6502 exige que cada ISR reinicie o establezca el indicador D si utiliza la instrucción ADC o SBC, pero ocasionalmente un programador humano puede omitir esto por error, causando un error. Por ejemplo, el KERNAL del Commodore 64 no gestionaba correctamente esta característica del procesador, lo que requería que las IRQ se deshabilitaran o redireccionaran durante las operaciones matemáticas BCD. Este problema también se solucionó en las versiones CMOS, haciendo que el reinicio y todas las interrupciones reiniciaran automáticamente el indicador D. (Este cambio tiene la desventaja de que hace que un programa [poco frecuente] que opera continuamente en modo decimal sea ligeramente más largo y lento, ya que ahora cada ISR debe establecer el indicador D antes de ejecutar ADC o SBC).
  • El conjunto de instrucciones del 6502 incluye BRK (código de operación $00), que técnicamente es una interrupción de software (similar al mnemónico SWI de los procesadores Motorola 6800 y ARM ). BRK se usa con mayor frecuencia para interrumpir la ejecución del programa e iniciar un monitor de lenguaje máquina para pruebas y depuración durante el desarrollo de software. BRK también podría usarse para enrutar la ejecución del programa mediante una tabla de saltos simple (análoga a la forma en que el Intel 8086 y sus derivados manejan las interrupciones de software por número). Sin embargo, si ocurre una interrupción de hardware enmascarable cuando el procesador está buscando una instrucción BRK, la versión NMOS del procesador no ejecutará BRK y, en su lugar, procederá como si solo hubiera ocurrido la interrupción de hardware. Este fallo —un error de hardware inequívoco— se corrigió en la implementación CMOS del procesador, que primero llama a la ISR para la interrupción de hardware y luego ejecuta la instrucción BRK.
  • Al ejecutar las instrucciones JSR (salto a subrutina) y RTS (retorno de subrutina), la dirección de retorno que JSR coloca en la pila es la del último byte del operando JSR (es decir, el byte más significativo de la dirección de la subrutina), en lugar de la dirección de la instrucción siguiente. Esto se debe a que la copia real (del contador de programa a la pila y viceversa) tiene lugar antes del incremento automático del contador de programa que ocurre al final de cada instrucción. [ 92 ] Esta característica pasaría desapercibida a menos que el código examinara la dirección de retorno para recuperar parámetros en el flujo de código. [ 93 ] Sigue siendo una característica de los derivados del 6502 hasta el día de hoy. El Manual de Programación MCS6500 original lo señala y explica la razón: ahorra un ciclo de reloj en JSR al no incrementar el PC antes de colocarlo, mientras que en la instrucción RET, el incremento diferido del PC recuperado se superpone con otros pasos y no añade ningún ciclo de reloj. Tal como está diseñado, una llamada a la biblioteca compartida (JSR) y una llamada a la biblioteca de retorno (RET) tardan un total de 12 ciclos de reloj; si la JSR introdujera el contador de programa (PC) incrementado, la llamada y la devolución tardarían 13 ciclos de reloj. Para realizar una bifurcación indirecta, se carga la dirección 1 desde una tabla, se coloca en la pila y, a continuación, se ejecuta la instrucción de retorno a la pila (RTS).
  • La instrucción SBC (Restar Memoria del Acumulador con Préstamo) utiliza el acarreo invertido como préstamo. Un indicador de acarreo cero señala el préstamo de la resta anterior. Si no se desea un préstamo, el bit de acarreo debe estar activado antes de la instrucción SBC. De esta forma, la lógica de resta de la ALU puede reutilizar la lógica de suma con solo la segunda entrada invertida, lo que ahorra muchas compuertas.
  • El acceso de lectura de la CPU se puede retrasar configurando temporalmente el pin RDY a nivel bajo. Sin embargo, durante el acceso de escritura, que puede tardar hasta tres ciclos de reloj consecutivos para una instrucción BRK, la CPU se detendrá solo en el siguiente ciclo de lectura. [ 94 ] Esta peculiaridad se corrigió en las versiones CMOS y también en el 6510 y sus variantes.

Véase también

Notas

  1. Un ejemplo de este diseño fueron las computadoras Atari de 8 bits , que utilizan DMA para compartir memoria entre el 6502 y el chip de video ANTIC. Esto se implementó con un solo flip-flop, que posteriormente se integró en versiones personalizadas Sally del 6502 utilizadas en estas máquinas. El flip-flop permitía que un par de controladores de bus 74LS244 aislaran el bus de direcciones del 6502 cuando se requería DMA. [ 29 ]
  2. Dado que el código OP aún hacía algo en la versión original del procesador, aunque no una instrucción ROR correcta, esto dio lugar al mito persistente de que el 6502 original tenía un error en su instrucción ROR. [ 33 ] [ 34 ] [ 35 ]
  3. La diferencia entre las partes es la relación del divisor de frecuencia del reloj y una tabla de búsqueda para las frecuencias de muestreo de audio.
  4. Este período fue indicado por el pin de salida de reloj φ2-bajo.
  5. A diferencia del registro X en el 6800, donde se almacenaba directamente una dirección base y a la que se podía agregar un desplazamiento inmediato.
  6. 1 2 Más precisamente, estos sistemas dividen internamente un cristal de ráfaga de color NTSC , lo que produce 315 / 176 MHz = 1,7897727 MHz  
  7. Eric Schlaepfer, quien construyó una réplica transistorizada del 6502 en monster6502.com, argumenta en su video de YouTube "El mito de la rotación a la derecha del 6502" (de TubeTimeUS) que, según Chuck Peddle y Bill Mensch, no existía el error de la instrucción ROR. En cambio, la instrucción no se implementó en absoluto, ya que se consideró innecesaria. Schlaepfer luego compara capturas de pantalla de la primera revisión con revisiones posteriores del 6502 y demuestra que la instrucción ROR no estaba presente ni en la decodificación de instrucciones, ni en el cableado, ni en la ejecución del chip.

Referencias

Citas

  1. "El MOS 6502 y el mejor diseñador de circuitos del mundo" . swtch.com. 3 de enero de 2011. Archivado del original el 8 de septiembre de 2014. Consultado el 9 de agosto de 2014 .
  2. "MOnSter6502 Una réplica completa y funcional de transistores discretos (es decir, no integrados en un solo chip) del clásico microprocesador MOS 6502" . monster6502.com. 2017. Archivado del original el 12 de mayo de 2017. Consultado el 1 de mayo de 2017 .
  3. 1 2 William Mensch (9 de octubre de 1995). "Entrevista con William Mensch" (vídeo web). Entrevistado por Rob Walker. Atherton, California: Silicon Genesis Project , Bibliotecas de la Universidad de Stanford. Archivado del original el 4 de marzo de 2016. Recuperado el 22 de diciembre de 2023 .William Mensch y el moderador pronuncian el microprocesador 6502 como "sesenta y cinco cero dos" .
  4. "Western Design Center (WDC), sede de la tecnología de microprocesadores 65xx" . www.westerndesigncenter.com . Archivado del original el 8 de abril de 2019. Consultado el 8 de abril de 2019 .
  5. Donohue, James F. (27 de octubre de 1988). "Las dos primeras décadas del microprocesador: cómo era". EDN . 33 (22A). Cahners Publishing: 18–32 . ISSN 0012-7515 . 
  6. Entrevista 2014 , 52:30.
  7. Entrevista 2014 , 54:45.
  8. Bagnall (2010), pág. 11. La nueva oferta de Peddle llegó en un momento oportuno para los desarrolladores de 6800. "No querían ir a Austin, Texas", explica Mensch.
  9. Entrevista 2014 , 54:40.
  10. Entrevista 2014 , 55:50.
  11. "Motorola demanda a MOS Technology" (PDF) . Microcomputer Digest . 2 (6). Cupertino, CA: Microcomputer Associates: 11. Diciembre de 1975. Archivado del original (PDF) el 4 de julio de 2009.
  12. Waller, Larry (13 de noviembre de 1975). "Motorola busca poner fin al desplome". Electronics . 48 (23). Nueva York: McGraw-Hill: 96–98 .Resumen: La división de productos semiconductores se dividió en dos partes: circuitos integrados y componentes discretos. Las pérdidas en la división de semiconductores durante los últimos cuatro trimestres superaron los 30 millones de dólares. La organización de ventas perdió sensibilidad a las necesidades de los clientes; "los retrasos en la respuesta a las reducciones de precios provocaron que los clientes compraran en otros lugares". La producción de circuitos integrados se vio afectada por problemas técnicos. Los problemas no radicaban en el diseño, sino en el rendimiento de los chips y las matrices. Los problemas se resolvieron. El microprocesador MC6800 se lanzó en noviembre de 1974.
  13. Entrevista 2014 , 56:30.
  14. Entrevista 2014 , 55:00.
  15. Bagnall (2010), pág. 13.
  16. MOS Technology (14 de noviembre de 1974). "Los primeros conjuntos de calculadoras científicas de un solo chip" . Electronics . 47 (23). McGraw-Hill: 90–91 . Archivado del original el 10 de enero de 2014. Recuperado el 4 de junio de 2012 .
  17. Entrevista 2014 , 57:00.
  18. Entrevista 2014 , 58:30.
  19. Cass, Stephen (16 de septiembre de 2021). "Preguntas y respuestas con el cocreador del procesador 6502" . IEEE Spectrum . Archivado del original el 20 de septiembre de 2021. Recuperado el 20 de septiembre de 2021 .
  20. Ho, Joshua (9 de octubre de 2014). "Introducción a la física, la tecnología y la industria de los semiconductores" . Anandtech . Archivado del original el 24 de febrero de 2020. Recuperado el 24 de febrero de 2020 .
  21. Historia oral del Motorola 6800 (2008), pág. 10.
  22. 1 2 3 Cushman 1975 , pág. 40.
  23. "Microprocesador 8080A – encapsulado DIP 40" . CPU World . Archivado del original el 15 de septiembre de 2020. Consultado el 24 de febrero de 2020 .
  24. 1 2 Cushman 1975 , pág. 38.
  25. 1 2 "Hitos de la Ley de Moore" . IEEE . 30 de abril de 2015. Archivado del original el 24 de febrero de 2020. Recuperado el 24 de febrero de 2020 .
  26. Bagnall (2010), p. 19: "Paivinen le prometió a Peddle que tendría listo el proceso de canal n. Cumplió su palabra."
  27. 1 2 3 Cushman 1975 , pág. 36.
  28. 1 2 3 Cushman 1975 , pág. 41.
  29. Purcaru, John (2014). Juegos vs. Hardware. La historia de los videojuegos para PC: Los años 80. pág. 317. 
  30. Entrevista 2014 , 1:01:00.
  31. Entrevista 2014 , 1:02:00.
  32. 1 2 Archivo:MCS650x Instruction Set.jpg
  33. "Medición del error ROR en el MOS 6502 antiguo" . pagetable.com . Archivado del original el 21 de marzo de 2023. Consultado el 25 de febrero de 2023 .
  34. "¿Cómo probar un 6502 cerámico para el error ROR? | Applefritter" . Archivado del original el 25/02/2023 . Consultado el 25/02/2023 .
  35. "El mito de que el 6502 gira a la derecha" . YouTube . 21 de febrero de 2023. Archivado del original el 25 de febrero de 2023. Consultado el 25 de febrero de 2023 .
  36. "La línea de microprocesadores ofrece 4, 8 y 16 bits". Electrónica . 48 (15). Nueva York: McGraw-Hill: 118. 24 de julio de 1975.El artículo abarca los modelos 6501 y 6502, además de las versiones de 28 pines que solo admitirían 4 KB de memoria. También trata sobre dispositivos futuros, como "un diseño que Peddle denomina un pseudo 16".
  37. Sugarman, Robert (25 de agosto de 1975). "¿Necesita el país un buen microprocesador de 20 dólares ?" (PDF) . EE Times . Manhasset, Nueva York: CMP Publications: 25. Archivado del original (PDF) el 3 de febrero de 2007. Recuperado el 5 de febrero de 2008 .
  38. Fylstra, Daniel (noviembre de 1975). "Hijo de Motorola (o el chip de CPU de 20 dólares )". Byte . 1 (3). Peterborough, NH: Green Publishing: 56– 62.Comparación de los microprocesadores 6502 y 6800. El autor visitó MOS Technology en agosto de 1975.
  39. "Microprocesador de tercera generación" (PDF) . Microcomputer Digest . 2 (2). Cupertino, CA: Microcomputer Associates : 1–3 . Agosto de 1975. Archivado del original (PDF) el 4 de julio de 2009. Consultado el 27 de noviembre de 2009 .
  40. "El microprocesador MOS 6501 los supera a todos". Electrónica . 48 (16). Nueva York: McGraw-Hill: 60–61 . 7 de agosto de 1975.
  41. "MOS 6502, el segundo de una familia de microprocesadores de bajo costo y alto rendimiento" . Computer . 8 (9). IEEE Computer Society: 38–39 . Septiembre de 1975. Bibcode : 1975Compr...8i..38. . doi : 10.1109/CM.1975.219074 . Archivado del original el 24 de febrero de 2021. Recuperado el 4 de junio de 2012 .
  42. Bagnall (2010), págs. 33–35.
  43. Signetics (30 de octubre de 1975). «El microprocesador más fácil de usar» . Electronics . 48 (22). McGraw-Hill: 114–115 . Archivado del original el 20 de noviembre de 2015. Recuperado el 20 de noviembre de 2015 .
  44. Motorola (30 de octubre de 1975). "Todo esto y un microprocesador desagrupado de 69 dólares " . Electrónica . 48 (22). McGraw-Hill: 11. Archivado del original el 15 de diciembre de 2011. Recuperado el 8 de agosto de 2010 .El precio por unidad del MC6800 se redujo de 175 $ a 69 $ . El precio anterior para entre 50 y 99 unidades era de 125 $ .
  45. Waller, Larry (13 de noviembre de 1975). "Noticias breves: Motorola busca detener a su rival en el sector de los microprocesadores". Electronics . 48 (23). Nueva York: McGraw-Hill: 38.Motorola anunció la semana pasada que solicitaría una orden judicial inmediata para impedir que MOS Technology Inc., con sede en Norristown, Pensilvania, fabrique y venda productos de microprocesadores, incluido su MCS6500. (Este número se publicó el 7 de noviembre).
  46. Motorola recibió las siguientes patentes estadounidenses sobre la familia de microprocesadores 6800: Patente estadounidense 3,962,682 , Patente estadounidense 3,968,478 , Patente estadounidense 3,975,712 , Patente estadounidense 3,979,730 , Patente estadounidense 3,979,732 , Patente estadounidense 3,987,418 , Patente estadounidense 4,003,028 , Patente estadounidense 4,004,281 , Patente estadounidense 4,004,283 , Patente estadounidense 4,006,457 , Patente estadounidense 4,010,448 , Patente estadounidense 4,016,546 , Patente estadounidense 4,020,472 , Patente estadounidense 4,030,079 , Patente estadounidense 4,032,896 , Patente estadounidense 4,037,204 , Patente estadounidense 4,040,035 , Patente estadounidense 4,069,510 , Patente estadounidense 4,071,887 , Patente estadounidense 4,086,627 , Patente estadounidense 4,087,855 , Patente estadounidense 4,090,236 , Patente estadounidense 4,145,751 , Patente estadounidense 4,218,740 , Patente estadounidense 4,263,650 .
  47. Bagnall (2010), págs. 53–54. "Él [Mike Janes] tenía todo su trabajo original del 6800 y lo ocultó de Motorola…"
  48. "Motorola y MOS Technology llegan a un acuerdo en una demanda por patentes". Electronics . 49 (7). Nueva York: McGraw-Hill: 39. 1 de abril de 1975."MOS Technology Inc., de Norristown, Pensilvania, ha acordado retirar su microprocesador MCS6501 del mercado y pagar a Motorola Inc. 200.000 dólares ..." "MOS Technology y ocho exempleados de Motorola han devuelto el dinero, según documentos judiciales que Motorola afirma que son confidenciales." "...ambas compañías han acordado una licencia cruzada relacionada con patentes en el campo de los microprocesadores."
  49. Bagnall (2010), págs. 55-56
  50. "Fusiones y adquisiciones". Mini-Micro Systems . 9 (11). Cahners: 19 de noviembre de 1976."Commodore International... está comprando MOS Technology (Norristown, Pensilvania). Esto salva a la empresa de semiconductores, con seis años de antigüedad, de un desastre inminente."
  51. MOS Microcomputers. "MDT Microcomputer Development Terminal" . The Internet Archive . Consultado el 9 de enero de 2026 .
  52. 1 2 Goodwins, Rupert (4 de diciembre de 2010). "Las víctimas de Intel: Ocho aspirantes a asesinos de gigantes" . ZDNet . Recuperado el 7 de marzo de 2012 .{{cite news}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  53. Reimer, Jeremy. "Cuota de mercado de las computadoras personales: 1975-2004" . Archivado del original el 6 de junio de 2012. Consultado el 17 de julio de 2009 .
  54. "¿Cuántas computadoras Commodore 64 se vendieron?" . Archivado del original el 6 de marzo de 2016. Consultado el 1 de febrero de 2011 .
  55. "Kit de mejora para Apple IIe - Periféricos - Historia de la informática" . www.computinghistory.org.uk . Archivado del original el 8 de agosto de 2020. Consultado el 23 de octubre de 2023 .
  56. "4. CPU/ROM" . www.monlynx.de . Archivado del original el 20 de septiembre de 2023. Consultado el 23 de octubre de 2023 .
  57. Corder, Mike (Primavera de 1999). "Grandes cosas en paquetes pequeños" . El progreso de los pioneros con la tecnología picoJava . Sun Microelectronics. Archivado del original el 12 de marzo de 2006. Recuperado el 23 de abril de 2012. El primer 6502 se fabricó con tecnología de 8 micras, funcionaba a un megahercio y tenía una memoria máxima de 64k.
  58. "Cómo implementar el uso compartido de bus / DMA en un sistema 6502" . Archivado del original el 15 de agosto de 2020. Consultado el 30 de septiembre de 2020 .
  59. "MODELO DE PROGRAMACIÓN MCS650X". MANUAL DE PROGRAMACIÓN DE MICROCOMPUTADORAS MOS . MOS TECHNOLOGY, INC. Enero de 1976.
  60. Anderson, JS (21 de agosto de 2012). Tecnología de microprocesadores . Routledge . pág. 153. ISBN  9781136078057.
  61. "Indicadores de estado" . Wiki de NESdev . Archivado del original el 11 de junio de 2024. Consultado el 11 de junio de 2024 .
  62. "Microprocesador de canal N de 8 bits 8080A/8080A-1/8080A-2" (PDF) . Intel. Archivado (PDF) del original el 15 de noviembre de 2021. Recuperado el 16 de noviembre de 2021 .
  63. 1 2 3 Parker, Neil. "El conjunto de instrucciones 6502/65C02/65C816 decodificado" . Página de Apple II de Neil Parker . Archivado del original el 16 de julio de 2019. Consultado el 16 de julio de 2019 .
  64. Conjunto de instrucciones 6502 archivado el 8 de mayo de 2018 en Wayback Machine .
  65. Códigos de operación NMOS 6502. Archivado el 14/01/2016 en Wayback Machine .
  66. Breaking NES Book – 6502 Core (PDF) ( ed. B5). 24/06/2022. págs. 61–62 . Archivado (PDF) del original el 12/04/2024 . Consultado el 24/12/2023 . La llegada de cualquier interrupción se refleja en el indicador B, cuya salida (B_OUT) obliga al procesador a ejecutar una instrucción BRK...  
  67. "6502 BRK y bit B" . VisualChips . Archivado del original el 5 de abril de 2021. Consultado el 15 de mayo de 2021 .
  68. "BLAGS" . ogamespec . Consultado el 15/05/2021 . B_OUT; BUS DE DATOS INTERNO (DB)
  69. 1 2 "FAQ 400 800 XL XE: ¿Qué son SALLY, ANTIC, CTIA/GTIA/FGTIA, POKEY y FREDDIE?" . Archivado del original el 19 de julio de 2020. Llamado SALLY por los ingenieros de Atari, pero [los documentos de soporte lo llaman] "6502 (Modificado)", "6502 Modificado", "6502 Personalizado" o "6502C". [...] Los chips SALLY 6502 nunca están marcados como "6502C", sino que, aparte del UMC UM6502I, siempre están [marcados] como C014806. [...] Otros chips marcados como "6502C" [...] NO son el Atari "6502C", sino el [6502 estándar] certificado para 4 MHz.
  70. "Microprocesador CPU 6502 (modificado)". MANUAL DE SERVICIO TÉCNICO DE CAMPO PARA COMPUTADORAS DOMÉSTICAS ATARI 1200 XL . ATARI. Febrero de 1983.
  71. 1 2 3 4 5 6 7 Catálogo de datos tecnológicos de MOS de 1982 (PDF obtenido de bitsavers.org)
  72. "AtariAge: Clon A2600, pinout del chip 6591" . 3 de agosto de 2015. Archivado del original el 5 de agosto de 2020. Consultado el 22 de julio de 2019 .
  73. "Hackaday: La Atari 2600 más pequeña de la historia" . 7 de abril de 2012. Archivado del original el 22 de julio de 2019. Consultado el 22 de julio de 2019 .
  74. "Rockwell R6511Q" . Archivado del original el 15 de septiembre de 2020. Consultado el 30 de abril de 2020 .
  75. "Microcomputadoras de un solo chip Rockwell R6500/11, R6500/12 y R6500/15" . 7 de junio de 1987. Archivado del original el 3 de septiembre de 2023. Consultado el 30 de abril de 2020 .
  76. Randy M. Dumse. "Las computadoras Forth de un solo chip R65F11 y F68K". Archivado el 2 de diciembre de 2014 en Wayback Machine 1984.
  77. Ed Schmauch. "Un sistema computarizado de monitoreo de corrosión" . 1986.
  78. Lawrence P. Forsley. "Sistemas embebidos: Cuarta Conferencia de Rochester de 1990: del 12 al 16 de junio de 1990, Universidad de Rochester". Archivado el 25 de marzo de 2015 en Wayback Machine . pág. 51.
  79. Rockwell. "Manual del usuario de RSC-Forth". Archivado el 7 de diciembre de 2013 en Wayback Machine . 1983.
  80. "Microcomputadoras Rockwell R65F11 R65F12 basadas en Forth" (PDF) . Junio ​​de 1987. Archivado (PDF) del original el 4 de agosto de 2020. Consultado el 28 de abril de 2020 .
  81. ^ Zaks, Rodnay. Programando el 6502 . pag. 348. 
  82. "Arquivo.pt" (PDF) . Archivado del original (PDF) el 15-05-2016 . Consultado el 26-10-2014 .
  83. "rockwell :: dataBooks :: 1985 Rockwell Data Book" vía Internet Archive.  
  84. "Ordenadores domésticos de Europa del Este: Bulgaria" . HCM: Museo de Ordenadores Domésticos . Archivado del original el 1 de julio de 2006. Consultado el 3 de octubre de 2020 .
  85. 1 2 http://plus4world.powweb.com/hardware/MOS_75018501 Archivado el 20 de febrero de 2020 en Wayback Machine Hardware – MOS 7501/8501
  86. https://ist.uwaterloo.ca/~schepers/MJK/7501.html Archivado el 19/07/2021 en Wayback Machine CPU 7501 / 8501
  87. Manual de servicio del ordenador C-128/C128D , Commodore Business Machines, PN-314001-08, noviembre de 1987
  88. "VL65NC02". Hoja de datos del circuito integrado: 1988 VTI ASIC . págs. 225–238 . 
  89. Moser, Carl W. (enero de 1979). "Agregar un vector trampa para los códigos de operación 6502 no implementados" (PDF) . Dr. Dobb's Journal of Computer Calisthenics and Orthodontia . N.° 31. Menlo Park, California. pág. 32. Archivado (PDF) del original el 11 de junio de 2016. Recuperado el 7 de enero de 2017 .  
  90. Harrod, Dennette A. (octubre de 1980). "El 6502 obtiene instrucciones microprogramables" . BYTE . Vol. 5, n.º 10. Peterborough, New Hampshire. pág. 282. Consultado el 7 de enero de 2017 .   
  91. Draco (19 de junio de 1997). "65c02, 6502, 65816 ??? Se venden CPU, pero ¿quién las compra...?" Archivado del original el 2 de enero de 2008. 
  92. Andrews, Mark (1984). "6" . Atari Roots – Una guía del lenguaje ensamblador de Atari . Datamost, Incorporated. ISBN 0-88190-171-7Archivado del original el 24 de abril de 2008. Consultado el 14 de junio de 2008 .
  93. Un modismo de programación 6502 documentado en el Manual de Referencia Técnica de ProDOS 8 .
  94. "1.4.1.2.8 RDY--Listo (pág. 37)". Manual de hardware de la serie 6500; 2.ª ed . MOS Technology, INC. Enero de 1976.

Bibliografía

  • Peddle, Chuck (12 de junio de 2014). «Historia oral de Chuck Peddle» (Entrevista). Entrevistado por Doug Fairbairn y Stephen Diamond. Archivado del original el 18 de noviembre de 2021.
  • Bagnall, Brian (2010). Commodore, una empresa al límite (2.ª  ed.). Winnipeg, Manitoba: Variant Press. ISBN 978-0-9738649-6-0.
  • Bennett, Thomas; Ekiss, John; Lattin, William (Bill); Lavell, Jeff (28 de marzo de 2008). "Panel de historia oral del Motorola 6800" (PDF) (Entrevista). Entrevistado por David Laws. Archivado (PDF) del original el 13 de abril de 2021. Recuperado el 30 de enero de 2021 .
  • Cushman, Robert H. (20 de septiembre de 1975). "Microprocesadores de segunda generación y media: componentes de 10 dólares con un rendimiento similar al de los miniprocesadores de gama baja" (PDF) . EDN . 20 (17). Boston: Cahners Publishing: 36–42 . Archivado del original (PDF) el 24 de abril de 2016.
  • Entrevista con William Mensch Stanford y el Proyecto Silicon Valley, 9 de octubre de 1995. Transcripción

Lecturas adicionales

Hojas de datos y manuales
  • Hoja de datos de la serie 6500 ; Tecnología MOS; 12 páginas; 1976.
  • Manual de hardware de la serie 6500 archivado el 13 de septiembre de 2011 en Wayback Machine ; 2.ª edición; MOS Technology; 182 páginas; 1976.
  • Manual de programación de la serie 6500 archivado el 13 de septiembre de 2011 en Wayback Machine ; 2.ª edición; MOS Technology; 262 páginas; 1976.
Libros
  • Zaks, Rodnay (1979). 6502 Libro de aplicaciones . Berkeley, California: Sybex . ISBN 978-0-89588-015-4.
  • Leventhal, Lance A. (1979). 6502 Programación en lenguaje ensamblador . Berkeley/California: Osborne/McGraw-Hill . ISBN 978-0-931988-27-1.
  • Leventhal, Lance A.; Saville, Winthrop (1982). 6502 Subrutinas en lenguaje ensamblador . Berkeley, California: Osborne/McGraw-Hill . ISBN 978-0-931988-59-2.
  • Zaks, Rodnay (1980). 6502 Juegos . Berkeley, California: Sybex . ISBN 978-0-89588-022-2.
  • Carr, Joseph J. (1984). Manual del usuario del modelo 6502. Reston, Virginia: Reston Publishing . ISBN 978-0-83597-002-0.
  • Zaks, Rodnay (1982). Programación avanzada del 6502 . Berkeley, California: Sybex . ISBN 978-0-89588-089-5.
  • Mansfield, Richard (1983). Machine Language for Beginners: Personal Computer Machine Language Programming For The Atari, VIC, Apple, Commodore 64, And PET/CBM Computers (PDF) . Greensboro, NC: Compute! Publications . ISBN 978-0-942386-11-0.
    • También disponible en AtariArchives.org
  • Zaks, Rodnay (1983). Programando el 6502 (4ª  ed.). Berkeley: SYBEX . ISBN 978-0-89588-135-9.
  • Eyes, David; Lichty, Ron (1986). Programación del 65816 – Incluyendo el 6502, 65C02 y 65802. Nueva York, NY: Prentice Hall . ISBN 978-0-89303-789-5.
  • Topaloğlu, Nurettin (2021). Mikroişlemciler ve Assembly Dili [ Microprocesadores y lenguaje ensamblador ] (en turco) (7ª  ed.). Çankaya: Seçkin Yayıncılık. ISBN 978-975-02-6663-8.
Fichas de referencia
  • Tarjeta de referencia instantánea del microprocesador 6502 ; James Lewis; Micro Logic; 2 páginas; 1980. (archivo) Archivado el 4 de septiembre de 2019 en Wayback Machine.
  • 6502.org – el recurso del microprocesador 6502. Archivado el 29/11/2020 en el repositorio Wayback Machine .
  • El auge de la tecnología MOS y el archivo del Commodore 6502
  • Información sobre el 650x archivada el 11/03/2020 en Wayback Machine : descripción concisa, fotos de chips MOS y de segunda fuente; en cpu-collection.de
  • mdfs.net – Conjunto de instrucciones 6502
  • Clever, Eric. "6502: el primer microprocesador RISC" . Archivado del original el 24 de mayo de 2012.
  • Harrod, Dennette A. (octubre de 1980). "El 6502 obtiene instrucciones microprogramables" . Byte . Vol.  5, n.º  10. McGraw Hill . págs. 282–285 . ISSN 0360-5280 . Archivado del original el 25 de mayo de 2006. Consultado el 14 de mayo de 2006 .  
Simuladores, emuladores
  • Ensamblador y emulador compatible con 6502 en línea, escrito en JavaScript. Archivado el 8 de febrero de 2011 en Wayback Machine.
  • Lista de 6502 emuladores de software archivados el 19/09/2020 en Wayback Machine – Dominio de Zophar
  • Simulador 6502 para Windows Archivado el 4 de diciembre de 2004 en Wayback Machine – Sede de Atari Gaming
  • Simulación visual a nivel de transistor de la CPU 6502. Archivada el 14 de marzo de 2011 en Wayback Machine.
  • Núcleo de CPU MCL65 6502, código C en GitHub – MicroCore Labs
Tableros
  • Placa 6502 de 7/8 chips de Grant. Archivada el 6 de junio de 2022 en la Wayback Machine.
  • Placa de entrenamiento del microprocesador 6502. Archivada el 14 de julio de 2019 en Wayback Machine.
  • Construye tu propio tablero de entrenamiento KIM-1. Archivado el 14/07/2019 en Wayback Machine ; consulta KIM-1.
  • Ordenador doméstico 6502 en GitHub
  • Ordenador de placa única PE6502. Archivado el 3 de mayo de 2020 en Wayback Machine.
  • Ordenador de placa única BE6502 en GitHub – basado en vídeos de Ben Eater
FPGA
  • Núcleo de CPU cpu6502_tc 6502 – Código fuente VHDL – OpenCores
  • ag_6502 Núcleo de CPU 6502 – Código fuente Verilog Archivado el 4 de agosto de 2020 en Wayback Machine – OpenCores
  • Núcleo de CPU M65C02 65C02 – Código fuente Verilog Archivado el 4 de agosto de 2020 en Wayback Machine – OpenCores
  • Núcleo de CPU MCL65 6502 en GitHub – Verilog – MicroCore Labs