![]() | |
Información general | |
---|---|
Lanzado | 1975 ; Hace 46 años ( 1975) |
Fabricante (s) común (es) | |
Rendimiento | |
Max. Frecuencia de reloj de la CPU | 1 MHz a 3 MHz |
Ancho de datos | 8 |
Ancho de la dirección | dieciséis |
Arquitectura y clasificación | |
Conjunto de instrucciones | MOS 6502 |
Instrucciones | 56 |
Especificaciones físicas | |
Transistores |
|
Paquete (s) |
|
Historia | |
Predecesor |
|
Sucesor |
El MOS Technology 6502 (generalmente pronunciado "sesenta y cinco-oh-dos" o "seis-cinco-oh-dos") es un microprocesador de 8 bits que fue diseñado por un pequeño equipo dirigido por Chuck Peddle para MOS Technology. 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.
Cuando se introdujo en 1975, el 6502 era el microprocesador menos costoso del mercado por un margen considerable. Inicialmente se vendió por menos de una sexta parte del costo de los diseños de la competencia de compañías más grandes, como el 6800 o Intel 8080. Su introducción provocó una rápida disminución de los precios en todo el mercado de procesadores. Junto con el Zilog Z80, desató una serie de proyectos que dieron como resultado la revolución de las computadoras domésticas de principios de la década de 1980.
Las consolas de videojuegos y computadoras populares, como la Atari 2600, la familia Atari de 8 bits, Apple II, Nintendo Entertainment System, Commodore 64, Atari Lynx, BBC Micro y otras, usan la 6502 o variaciones del diseño básico. Poco después de la introducción del 6502, Commodore International compró directamente MOS Technology y continuó vendiendo el microprocesador y las licencias a otros fabricantes. En los primeros días del 6502, fue la segunda proviene de Rockwell y Synertek, y más tarde licencia a otras compañías.
En su forma CMOS (el 65C02, que fue desarrollado por el Western Design Center ), la familia 6502 continúa siendo ampliamente utilizada en sistemas integrados, con volúmenes de producción estimados en cientos de millones.
El 6502 fue diseñado por muchos de los mismos ingenieros que habían diseñado la familia de microprocesadores Motorola 6800. Motorola inició el proyecto del microprocesador 6800 en 1971 con Tom Bennett como arquitecto principal. El diseño del chip comenzó a finales de 1972, los primeros 6800 chips se fabricaron en febrero de 1974 y la familia completa se lanzó oficialmente en noviembre de 1974. John Buchanan fue el diseñador del chip 6800 y Rod Orgill, que más tarde hizo el 6501, ayudó a Buchanan con análisis de circuitos y disposición de chips. Bill Mensch se incorporó a Motorola en junio de 1971 después de graduarse de la Universidad de Arizona (a los 26 años). Su primera tarea fue ayudar a definir los circuitos integrados de periféricos para la familia 6800 y más tarde fue el diseñador principal del Adaptador de interfaz de periféricos (PIA) 6820. Los ingenieros de Motorola podían ejecutar simulaciones analógicas y digitales en una computadora central IBM 370-165. 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 proceso. Contribuyó en muchas áreas, incluido el diseño del 6850 ACIA (interfaz en serie).
Los clientes objetivo de Motorola eran empresas de electrónica establecidas como Hewlett-Packard, Tektronix, TRW y Chrysler. En mayo de 1972, los ingenieros de Motorola comenzaron a visitar clientes selectos y a compartir los detalles de su sistema de microprocesador de 8 bits propuesto con ROM, RAM, interfaces paralelas y seriales. A principios de 1974, proporcionaron muestras de ingeniería de los chips para que los clientes pudieran crear prototipos de sus diseños. La estrategia de "familia total de productos" de Motorola no se centró en el precio del microprocesador, sino en reducir el costo total de diseño del cliente. Ofrecieron software de desarrollo en una computadora de tiempo compartido, el sistema de depuración "EXORciser", capacitación en el sitio y soporte técnico de aplicaciones de campo. Tanto Intel como Motorola habían anunciado inicialmente un precio de 360 dólares por un solo microprocesador. El precio real de las cantidades de producción fue mucho menor. Motorola ofreció un kit de diseño que contenía el 6800 con seis chips de soporte por $ 300.
Peddle, que acompañaba a los vendedores en las visitas de los clientes, descubrió que los clientes se sentían desanimados por el alto costo de los chips de microprocesador. Al mismo tiempo, estas visitas invariablemente dieron como resultado que los ingenieros que presentaba produjeran listas de instrucciones requeridas que eran mucho más pequeñas que "todas estas instrucciones sofisticadas" que se habían incluido en el 6800. Peddle y otros miembros del equipo comenzaron a esbozar el diseño de un característica mejorada, microprocesador 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 mediados de 1974 fue el comienzo de 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, Texas.
La gerencia de la División de Productos Semiconductores de Motorola estaba abrumada por los problemas y no mostró interés en la propuesta de microprocesador de bajo costo de Peddle. Finalmente, Peddle recibió una carta oficial que le decía que dejara de trabajar en el sistema. Peddle respondió a la orden informando a Motorola que la carta representaba una declaración oficial de "abandono del proyecto" y, como tal, la propiedad intelectual que había desarrollado hasta ese momento era ahora suya. En una entrevista de noviembre de 1975, el presidente de Motorola, Robert Galvin, finalmente acordó que el concepto de Peddle era bueno y que la división perdió una oportunidad: "No elegimos a los líderes adecuados en la división de productos semiconductores". Se reorganizó la división y se reemplazó la dirección. El nuevo vicepresidente del grupo, John Welty, dijo: "La organización de ventas de semiconductores perdió su sensibilidad a las necesidades de los clientes y no pudo tomar decisiones rápidas".
Peddle comenzó a buscar fuera de Motorola una fuente de financiamiento para este nuevo proyecto. Inicialmente se acercó al director ejecutivo de Mostek, LJ Sevin, pero se negó. Más tarde, Sevin admitió que esto se debía a que temía que Motorola los demandara.
Mientras Peddle visitaba Ford Motor Company en uno de sus viajes de ventas, Bob Johnson, más tarde jefe de 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 aprendió por sí mismo el diseño de semiconductores. Desde entonces había seguido adelante y estaba haciendo un trabajo muy interesante en conjuntos de chips de calculadoras en una nueva empresa que formó en Valley Forge, Pensilvania.
Paivinen había formado MOS Technology en 1969 con otros dos ejecutivos de General Instrument, Mort Jaffe y Don McLaughlin. Allen-Bradley, un proveedor de componentes electrónicos y controles industriales, adquirió una participación mayoritaria en 1970. La compañía diseñó y fabricó circuitos integrados personalizados para los clientes y había desarrollado una línea de chips para calculadoras.
Después de que los esfuerzos de Mostek fracasaron, Peddle se acercó a Paivinen, quien "lo entendió de inmediato". 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 apuntar a una base de clientes lo más amplia posible. Esto sería posible solo si el microprocesador fuera de bajo costo y el equipo estableciera el precio objetivo en $ 5 en volumen. Mensch declaró más tarde que el objetivo no era el precio del procesador en sí, sino crear un conjunto de chips que pudieran venderse a 20 dólares para competir con el Intel 4040 presentado recientemente que se vendía por 29 dólares en un conjunto de chips completo similar.
Los chips se producen imprimiendo múltiples copias del diseño del chip en la superficie de una "oblea", un disco delgado de silicio de alta pureza. Se pueden imprimir chips más pequeños en mayor número en la misma oblea, disminuyendo su precio relativo. Además, las obleas siempre incluyen una serie de pequeños defectos físicos que se encuentran esparcidos por la superficie. Cualquier chip impreso en esa ubicación fallará y deberá desecharse. Los chips más pequeños significan que es menos probable que una sola copia se imprima en un defecto. Por ambas razones, el costo del producto final depende en gran medida del tamaño del diseño del chip.
Los chips 6800 originales estaban destinados a ser de 180 × 180 mils (4,6 × 4,6 mm), pero el diseño se completó en 212 × 212 mils (5,4 × 5,4 mm), o un área de 29,0 mm 2. Para el nuevo diseño, el objetivo de costo exigía un tamaño objetivo de 153 × 168 mils (3,9 × 4,3 mm), o un área de 16,6 mm 2. Se necesitarían varias técnicas nuevas para alcanzar este objetivo.
Hubo dos avances significativos que llegaron al mercado justo cuando se estaba diseñando el 6502 que proporcionaron importantes reducciones de costos. El primero fue el paso a NMOS con carga de agotamiento. El 6800 usó un proceso NMOS temprano que requería tres voltajes de suministro, pero una de las características del chip era un duplicador de voltaje incorporado que permitía usar un solo suministro de + 5V para +5, -5 y +12 internamente, a diferencia de otros chips de la era como la Intel 8080 que requería tres pines de suministro separados. Si bien esta característica redujo la complejidad de la fuente de alimentación y el diseño de los pines, aún requería rieles de alimentación separados para las diversas puertas del chip, aumentando la complejidad y el tamaño. Al pasar al nuevo diseño de carga de agotamiento, un solo suministro de +5 era todo lo que se necesitaba, eliminando toda esta complejidad.
Otra ventaja práctica era que la señal de reloj de las CPU anteriores tenía que ser lo suficientemente fuerte para sobrevivir a toda la disipación a medida que viajaba a través de los circuitos, lo que casi siempre requería un chip externo separado que pudiera suministrar una señal lo suficientemente fuerte. Con los requisitos de potencia reducidos de NMOS, el reloj podría trasladarse al chip, simplificando el diseño general de la computadora. Estos cambios redujeron en gran medida la complejidad y el costo de implementar un sistema completo.
Otro cambio que se estaba produciendo fue la introducción del enmascaramiento de proyección. Anteriormente, los chips se modelaban en la superficie de la oblea colocando una máscara en la superficie de la oblea y luego iluminando con una luz brillante. Las máscaras a menudo recogían pequeños trozos de suciedad o fotorresistente a medida que se despegaban del chip, lo que provocaba fallas en esas ubicaciones en cualquier enmascaramiento posterior. Con diseños complejos como CPU, se usarían 5 o 6 pasos de enmascaramiento, y la posibilidad de que al menos uno de estos pasos introdujera un defecto era muy alta. En la mayoría de los casos, el 90% de dichos diseños tenían fallas, lo que resultó en un rendimiento del 10%. El precio de los ejemplos de trabajo tenía que cubrir el coste de producción del 90% que se tiraba.
En 1973, Perkin-Elmer introdujo el sistema Micralign, que proyectaba una imagen de la máscara en la oblea en lugar de requerir contacto directo. Las máscaras ya no recogían suciedad de las obleas y duraban del orden de 100.000 usos en lugar de 10. Esto eliminó las fallas paso a paso y las altas tasas de fallas que antes se veían en diseños complejos. Los rendimientos de las CPU aumentaron inmediatamente del 10% al 60 o 70%. Esto significó que el precio de la CPU disminuyó aproximadamente en la misma cantidad y el microprocesador de repente se convirtió en un dispositivo básico.
Las líneas de fabricación existentes de MOS Technology se basaban en la tecnología PMOS más antigua, aún no habían comenzado a trabajar con NMOS cuando llegó el equipo. Paivinen prometió tener una línea NMOS en funcionamiento a tiempo para comenzar la producción de la nueva CPU. Cumplió la promesa, la nueva línea estaba lista en junio de 1975.
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:
La familia MOS Technology 650X representa un intento consciente de ocho ex empleados de Motorola que trabajaron en el desarrollo del sistema 6800 para sacar una pieza que reemplazaría y superaría al 6800, pero que no se vendiera bien. Con el beneficio de la retrospectiva obtenida en el proyecto 6800, el equipo de MOS Technology encabezado por Chuck Peddle, realizó los siguientes cambios arquitectónicos en la CPU de Motorola...
El principal cambio en términos de tamaño de chip fue la eliminación de los controladores de tres estados de las salidas del bus de direcciones. Esto se había incluido en el 6800 para permitirle trabajar con otros chips en el acceso directo a la memoria (DMA) y funciones de coprocesamiento, a costa de un importante espacio de troquel. En la práctica, el uso de un sistema de este tipo requería que los otros dispositivos fueran igualmente complejos y, en cambio, los diseñadores tendían a usar sistemas fuera de chip para coordinar dicho acceso. El 6502 simplemente eliminó esta característica, de acuerdo con su diseño como un controlador económico que se usa para tareas específicas y se comunica con dispositivos simples. Peddle sugirió que cualquiera que realmente requiriera este estilo de acceso podría implementarlo con un solo 74158.
La siguiente gran diferencia fue simplificar los registros. Para empezar, se retiró uno de los dos acumuladores. Muchas partes del decodificador de instrucciones tienen que acceder a registros de propósito general como los acumuladores y, por lo tanto, requieren una cantidad significativa de cableado para mover datos hacia y desde su almacenamiento. Dos acumuladores facilitan muchas tareas de codificación, pero cuestan al diseño del chip una complejidad significativa. Se lograron ahorros adicionales al reducir el registro de la pila de 16 a 8 bits, lo que significa que la pila solo podía tener 256 bytes de longitud, lo que era suficiente para su función prevista como microcontrolador.
El registro de índice IX de 16 bits se dividió en dos, convirtiéndose en X e Y. Más importante aún, el estilo de acceso cambió; en el 6800, IX tenía una dirección de 16 bits, que fue compensada por un número proporcionado con la instrucción, los dos se agregaron para producir la dirección final. En el 6502 (y en la mayoría de los otros diseños), la dirección base se almacenó en la instrucción y se le agregó la X o la Y.
Finalmente, se simplificó el conjunto de instrucciones, liberando espacio en el decodificador y la lógica de control. De las 72 instrucciones originales del 6800, quedaron 56. Entre las que se eliminaron se encontraba cualquier instrucción que moviera datos entre los dos acumuladores del 6800, así como una serie de instrucciones de bifurcación inspiradas en el PDP-11, como la capacidad de comparar directamente dos valores numéricos. El 6502 utilizó un sistema más simple que manejaba las comparaciones realizando operaciones matemáticas en el acumulador y luego examinando los indicadores de resultados.
El diseño de alto nivel del chip tuvo que convertirse en dibujos de transistores e interconexiones. En MOS Technology, el "diseño" fue 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. Dados los límites de tamaño, el diseño completo del chip debía considerarse constantemente. Mensch y Paivinen trabajaron en el decodificador de instrucciones, mientras que Mensch, Peddle y Orgill trabajaron en la ALU y los registros. Un avance adicional, desarrollado en una fiesta, fue una forma de compartir parte del cableado interno para permitir que la ALU se redujera en tamaño.
A pesar de sus mejores esfuerzos, el diseño final terminó siendo 5 milésimas de pulgada demasiado ancho. Los primeros 6502 chips tenían 168 × 183 mils (4,3 × 4,7 mm), o un área de 19,8 mm 2. La instrucción de rotación a la derecha (ROR) no funcionó en el primer silicio, por lo que la instrucción se omitió temporalmente de los documentos publicados, pero la siguiente iteración del diseño redujo el chip y corrigió la instrucción de rotación a la derecha, que luego se incluyó en la documentación revisada..
MOS introducirí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 reorganizó el pinout 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 6800 porque tenían un conjunto de instrucciones diferente, registros diferentes y, en su mayoría, modos de direccionamiento diferentes. Rod Orgill fue responsable del diseño del 6501; había ayudado a John Buchanan en Motorola en el 6800. Bill Mensch hizo el 6502; fue el diseñador del Adaptador de Interfaz Periférica (PIA) 6820 en Motorola. Harry Bawcom, Mike Janes y Sydney-Anne Holt ayudaron con el diseño.
La introducción del microprocesador de MOS Technology fue diferente del lanzamiento tradicional del producto de meses de duración. La primera ejecución de un nuevo circuito integrado se utiliza normalmente para pruebas internas y se comparte con clientes selectos como "muestras de ingeniería". Estos chips a menudo tienen un defecto de diseño menor o dos que se corregirán antes de que comience la producción. El objetivo de Chuck Peddle era vender la primera tirada de chips 6501 y 6502 a los asistentes a la feria comercial Wescon en San Francisco a partir del 16 de septiembre de 1975. Peddle fue un portavoz muy eficaz y los microprocesadores de MOS Technology fueron ampliamente cubiertos en la prensa especializada. Uno de los primeros fue una historia de página completa sobre los microprocesadores MCS6501 y MCS6502 en la edición del 24 de julio de 1975 de la revista Electronics. Las historias también se publicaron en EE Times (24 de agosto de 1975), EDN (20 de septiembre de 1975), Electronic News (3 de noviembre de 1975), Byte (noviembre de 1975) y Microcomputer Digest (noviembre de 1975). 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. En septiembre de 1975, los anuncios incluían los microprocesadores 6501 y 6502. El 6502 costaría solo $ 25 (equivalente a $ 120 en 2020).
Cuando MOS Technology llegó a Wescon, descubrieron que a los expositores no se les permitía vender nada en el piso de exhibición. Alquilaron la suite MacArthur en el hotel St. Francis y ordenaron a los clientes que compraran los procesadores. En la suite, los procesadores se almacenaron en frascos grandes para dar a entender que los chips estaban en producción y fácilmente disponibles. Los clientes no sabían que la mitad inferior de cada frasco contenía chips no funcionales. Los chips costaban $ 20 y $ 25, mientras que el paquete de documentación costaba $ 10 adicionales. Se alentó a los usuarios a hacer fotocopias de los documentos, una forma económica para que MOS Technology distribuya la información del producto. Las hojas de datos preliminares enumeraron solo 55 instrucciones, excluyendo la instrucción Girar a la derecha (ROR), que no funcionó correctamente en estos primeros chips. Las revisiones 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 enumeró 56 instrucciones. Peddle quería que todos los ingenieros y aficionados interesados tuvieran acceso a los chips y la documentación; otras empresas de semiconductores solo querían tratar con clientes "serios". Por ejemplo, Signetics estaba introduciendo el microprocesador 2650 y sus anuncios pedían a los lectores que escribieran para obtener información en el membrete de su empresa.
Alfiler | 6800 | 6501 | 6502 |
---|---|---|---|
2 | Detener | Listo | Listo |
3 | ∅1 (pulg) | ∅1 (pulg) | ∅1 (fuera) |
5 | Dirección de memoria válida | Dirección de memoria válida | CAROLINA DEL NORTE |
7 | Bus disponible | Bus disponible | SINCRONIZAR |
36 | Habilitación del bus de datos | Habilitación del bus de datos | CAROLINA DEL NORTE |
37 | ∅2 (pulg) | ∅2 (pulg) | ∅0 (pulg) |
38 | CAROLINA DEL NORTE | CAROLINA DEL NORTE | Establecer bandera de desbordamiento |
39 | Control de tres estados | CAROLINA DEL NORTE | ∅2 (fuera) |
La introducción de 6501/6502 impresa y en Wescon fue un gran éxito. La desventaja fue que la extensa cobertura de prensa llamó la atención de Motorola. En octubre de 1975, Motorola redujo el precio de un solo microprocesador 6800 de $ 175 a $ 69. El kit de diseño del sistema de $ 300 se redujo a $ 150 y ahora venía con una placa de circuito impreso. El 3 de noviembre de 1975, Motorola solicitó una orden judicial en el Tribunal Federal para impedir que MOS Technology fabricara y vendiera productos con microprocesadores. También presentaron una demanda alegando infracción de patente y apropiación indebida de secretos comerciales. Motorola afirmó que siete ex empleados se unieron a MOS Technology para crear los productos de microprocesador de esa empresa.
Motorola era una empresa de miles de millones de dólares con un caso plausible y abogados. El 30 de octubre de 1974, Motorola había presentado numerosas solicitudes de patente sobre la familia de microprocesadores y se le concedieron veinticinco patentes. El primero fue en junio de 1976 y el segundo fue para Bill Mensch el 6 de julio de 1976, para el diseño de chips 6820 PIA. Estas patentes cubrían el bus 6800 y cómo los chips periféricos interactuaban con el microprocesador. Motorola comenzó a fabricar transistores en 1950 y tenía una cartera de patentes de semiconductores. Allen-Bradley decidió no pelear este caso y vendió su interés en MOS Technology a los fundadores. Cuatro de los ex ingenieros de Motorola fueron nombrados en la demanda: Chuck Peddle, Will Mathys, Bill Mensch y Rod Orgill. Todos fueron nombrados inventores en las 6800 solicitudes de patente. Durante el proceso de descubrimiento, Motorola descubrió que un ingeniero, Mike Janes, había ignorado las instrucciones de Peddle y había llevado sus documentos de diseño 6800 a MOS Technology. En marzo de 1976, la ahora independiente MOS Technology se estaba quedando sin dinero y tuvo que resolver el caso. Acordaron dejar el procesador 6501, pagar a Motorola $ 200,000 y devolver los documentos que Motorola alegaba eran confidenciales. Ambas empresas acordaron licenciar patentes de microprocesadores. Ese mes de mayo, Motorola redujo el precio de un solo microprocesador 6800 a 35 dólares. En noviembre, Commodore había adquirido MOS Technology.
Con problemas legales detrás de ellos, MOS todavía se quedó con el problema de hacer que los desarrolladores probaran su procesador, lo que llevó a Chuck Peddle a diseñar la computadora de placa única MDT-650 ("terminal de desarrollo de microcomputadoras"). Otro grupo dentro de la compañía diseñó el KIM-1, que se vendió semi-completo y podría convertirse en un sistema utilizable con la adición de una terminal de computadora de terceros y una unidad de casete compacta. Para su asombro, el KIM-1 se vendió bien a los aficionados y aficionados, así como a los ingenieros a los que se había dirigido. El sistema relacionado de control / entrenamiento / desarrollo Rockwell AIM 65 también funcionó bien. El software del AIM 65 se basó en el del MDT. Otro producto más o menos similar fue el Synertek SYM-1.
Uno de los primeros usos "públicos" para el diseño fue el microordenador Apple I, introducido en 1976. El 6502 se utilizó a continuación en el Commodore PET y el Apple II, ambos lanzados en 1977. Más tarde se utilizó en el Atari de 8 bits. familia y Acorn Atom ordenadores domésticos, el micrófono de la BBC, Commodore VIC-20 y otros diseños tanto para ordenadores personales y de negocios, como Ohio Científico y Oric. El 6510, un sucesor directo del 6502 con un puerto de E / S digital y un bus de direcciones de tres estados, fue la CPU utilizada en la computadora doméstica Commodore 64 más vendida. 6520 y / o 6502-variantes CPU se utilizaron en todos los de Commodore de disco duros para todos sus ordenadores de 8 bits, desde la línea de PET (algunos de los cuales tenía dos CPUs basadas en 6502) a través de la Commodore 128, incluyendo el Commodore 64 y en todas las unidades de disco de Atari para toda su línea de computadoras de 8 bits, desde 400/800 hasta XEGS.
Otro uso importante de la familia 6500 fue en videojuegos. El primero en hacer uso del diseño del procesador fue el Atari VCS, más tarde rebautizado como Atari 2600. El VCS usó una variante del 6502 llamada 6507, que tenía menos pines y, como resultado, solo podía direccionar 8 KB de memoria. Se venderían millones de consolas Atari, cada una con un procesador MOS. Otro uso significativo fue el de Nintendo Entertainment System y Famicom. El 6502 utilizado en la NES era una versión de segunda 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 integrado para la generación de sonido, lectura del joypad. y lista de sprites DMA. Llamado 2A03 en consolas NTSC y 2A07 en consolas PAL (la diferencia es la relación del divisor de memoria y una tabla de búsqueda para frecuencias de muestreo de audio), este procesador fue producido exclusivamente para Nintendo. El Atari Lynx usó una versión de 4 MHz del chip, el 65SC02.
En la década de 1980, una popular revista de electrónica Elektor / Elektuur usó el procesador en su placa de desarrollo de microprocesadores Junior Computer.
15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | (posición de bit) |
Registros principales | ||||||||||||||||
A | Un acumulador | |||||||||||||||
Registros de índice | ||||||||||||||||
X | Índice X | |||||||||||||||
Y | Índice Y | |||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | S | S Pointer tachuela | |||||||
Contador de programa | ||||||||||||||||
ordenador personal | P ROGRAMA C ounter | |||||||||||||||
Registro de estado | ||||||||||||||||
norte | V | - | B | D | I | Z | C | P rocessor F GAL |
El 6502 es un procesador little-endian de 8 bits con un bus de direcciones de 16 bits. Las versiones originales se fabricaron utilizando un chip de tecnología de proceso de 8 µm con un tamaño de matriz de 3,9 mm × 4,3 mm (anunciado como 153 mils × 168 mils), para un área total de 16,6 mm 2.
La lógica interna funciona a la misma velocidad que la frecuencia de reloj externa, pero a pesar de las bajas velocidades de reloj (generalmente en el vecindario de 1 a 2 MHz ), el rendimiento del 6502 era competitivo con otras CPU contemporáneas que usaban relojes significativamente más rápidos. Esto se debe en parte a una máquina de estado simple implementada por lógica combinacional (sin reloj) en mayor medida que en muchos otros diseños; el reloj de dos fases (que proporciona dos sincronizaciones por ciclo) podría controlar así el ciclo de la máquina directamente. Las instrucciones típicas pueden tardar la mitad de ciclos en completarse en el 6502 que en los diseños contemporáneos. Como la mayoría de las CPU simples de la época, el chip NMOS 6502 dinámico no está secuenciado por una ROM de microcódigo, sino que utiliza un PLA (que ocupaba aproximadamente el 15% del área del chip) para la decodificación y secuenciación de instrucciones. Como en la mayoría de los microprocesadores de 8 bits, el chip realiza una superposición limitada de búsqueda y ejecución.
La baja frecuencia de reloj moderó el requisito de velocidad de la memoria y los periféricos conectados a la CPU, ya que solo alrededor del 50% del ciclo del reloj estaba disponible para el acceso a la memoria (debido al diseño asíncrono, esta fracción variaba mucho entre las versiones de chip). Esto era fundamental en un momento en que la memoria asequible tenía tiempos de acceso en el rango de 250 a 450 ns.
Debido a que el chip solo accedió a la memoria durante ciertas partes del ciclo del reloj, y esos ciclos fueron indicados por el pin de salida de reloj bajo PHI2, otros chips en un sistema podían acceder a la memoria durante esos momentos en los que el 6502 estaba fuera del bus. Esto a veces se conocía como "acceso oculto". Esta técnica fue ampliamente utilizada por los sistemas informáticos; usarían memoria capaz de acceder a 2 MHz y luego ejecutarían la CPU a 1 MHz. Esto garantizaba que la CPU y el hardware de video pudieran intercalar sus accesos, con un rendimiento total que igualaba al del dispositivo de memoria. Cuando las memorias más rápidas estuvieron disponibles en la década de 1980, las máquinas más nuevas podían funcionar a velocidades de reloj más altas, como la CPU de 2 MHz en el BBC Micro, y aún usar las técnicas de intercambio de bus.
Como su precursor, el 6800, el 6502 tiene muy pocos registros. Los registros del 6502 incluyen un registro acumulador de 8 bits (A), dos registros de índice de 8 bits (X e Y), 7 bits de indicador de estado del procesador de 1 bit (P), específicamente del bit 7 al bit 0 en P, estos son los negativo (N), desbordamiento (V), reservado, ruptura (B), decimal (D), desactivación de interrupciones (I), cero (Z) y bandera de acarreo (C) -, un puntero de pila de 8 bits (S), y un contador de programas (PC) de 16 bits. Esto se compara con un diseño típico de la misma época, el Z80, que tiene ocho registros de 8 bits de uso general, que se pueden combinar en cuatro de 16 bits. El Z80 también tenía un conjunto completo de registros alternativos que sumaban un total de dieciséis registros de propósito general.
Para compensar en parte la falta de registros, el 6502 incluyó un modo de direccionamiento de página cero que usa un byte de dirección en la instrucción en lugar de los dos necesarios para direccionar los 64 KB completos de memoria. Esto proporciona un acceso rápido a los primeros 256 bytes de RAM mediante instrucciones más breves. Chuck Peddle ha dicho en entrevistas que la intención específica era permitir que estos primeros 256 bytes de RAM se utilizaran como registros.
El espacio de direcciones de la pila está cableado a la página de memoria $ 01, es decir, el rango de direcciones $ 0100 - $ 01FF ( 256 - 511). El acceso del software a la pila se realiza a través de cuatro instrucciones de modo de direccionamiento implícito, cuyas funciones son empujar o hacer saltar (tirar) el acumulador o el registro de estado del procesador. La misma pila también se utiliza para llamadas a subrutinas a través de las instrucciones JSR (salto a subrutina) y RTS (retorno de subrutina) y para el manejo de interrupciones.
El chip utiliza el índice y los registros de pila de manera efectiva con varios modos de direccionamiento, incluido un modo rápido de "página directa" o "página cero", similar al que se encuentra en el PDP-8, que accede a las ubicaciones de memoria desde las direcciones 0 a 255 con un solo Dirección de 8 bits (guardando el ciclo que normalmente se requiere para obtener el byte de orden superior de la dirección): el código del 6502 usa la página cero de la misma manera que el código de otros procesadores usaría registros. En algunas microcomputadoras basadas en 6502 con un sistema operativo, el sistema operativo usa la mayor parte de la página cero, dejando solo un puñado de 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). El modo absoluto es un modo de uso general. Las instrucciones de bifurcación utilizan un desplazamiento de 8 bits con signo relativo a la instrucción después de la bifurcación; el rango numérico −128..127 por lo tanto se traduce en 128 bytes hacia atrás y 127 bytes hacia adelante desde la instrucción que sigue a la bifurcación (que es 126 bytes hacia atrás y 129 bytes hacia adelante desde el inicio de la instrucción de bifurcación). El modo acumulador utiliza el acumulador como una dirección efectiva y no necesita ningún dato de operando. El modo inmediato utiliza un operando literal de 8 bits.
Los modos indirectos son útiles para el procesamiento de matrices y otros bucles. Con el modo de ciclo 5/6 "(indirecto), y", el registro Y de 8 bits se agrega a una dirección base de 16 bits leída desde la página cero, que se ubica en un solo byte después del código de operación. Por lo tanto, el registro Y es un registro de índice en el sentido de que se usa para contener un índice real (a diferencia del registro X en el 6800, donde se almacenó directamente una dirección base y al que se podría agregar un desplazamiento inmediato). Incrementar el registro de índice para recorrer la matriz por bytes solo requiere dos ciclos adicionales. Con el modo "(indirecto, x)" usado con menos frecuencia, la dirección efectiva para la operación se encuentra en la dirección de página cero formada al agregar 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 direcciones adicionales (aunque muy lentos).
El 6502 es capaz de realizar sumas y restas en binario o decimal codificado en binario. Colocar la CPU en modo BCD con la SED
instrucción (establecer el indicador D) da como resultado una aritmética decimal, lo que $99 + $01
daría como resultado que se establezca $ 00 y el indicador de acarreo (C). En el modo binario ( CLD
, borrar la bandera D), la misma operación daría como resultado que $ 9A y la bandera de acarreo se borren. Aparte de Atari BASIC, el modo BCD rara vez se usaba en aplicaciones de computadora doméstica.
¡Vea el Hola mundo! artículo para un ejemplo simple pero característico del lenguaje ensamblador 6502.
6502 instrucción códigos de operación ( opcodes) son ocho bits de longitud y tienen la forma AAABBBCC general, cuando AAA y CC definen el código de operación, y la acreditación define el modo de direccionamiento.
Por ejemplo, considere la ORA
instrucción, que realiza un OR bit a bit en los bits del acumulador con otro valor. El código de operación de la instrucción tiene el formato 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.
Este patrón no es absoluto y hay una serie de excepciones. Sin embargo, donde se aplica, permite deconstruir fácilmente los valores del código de operación de nuevo a los mnemónicos de ensamblaje para la mayoría de las instrucciones, manejando los casos extremos con código de propósito especial.
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. Según la instrucción y el modo de direccionamiento, el código de operación puede requerir cero, uno o dos bytes adicionales para los operandos. Por lo tanto, las instrucciones de la máquina 6502 varían en longitud de uno a tres bytes. El operando se almacena en el formato little-endian habitual del 6502.
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 organizados 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 bajo orden ( nibble) eran 3, 7, B o F no se usaban, lo que dejaba espacio para futuras expansiones. Del mismo modo, la columna de $ 2x sólo tenía una sola entrada,. Se distribuyeron las 25 ranuras vacías restantes. Algunas de las ranuras vacías se utilizaron en el 65C02 para proporcionar tanto nuevas instrucciones como variaciones de las existentes con nuevos modos de direccionamiento. Las instrucciones de $ Fx se dejaron inicialmente libres para permitir que los proveedores externos agregaran sus propias instrucciones, pero las versiones posteriores del 65C02 estandarizaron un conjunto de instrucciones de manipulación de bits desarrolladas por Rockwell Semiconductor. LDX #constant
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 tienen como objetivo 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 INX
en lugar INC X
de incrementar el registro X.
Matriz de código de operación para el conjunto de instrucciones 6502 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Modos de direccionamiento: A - acumulador, # - inmediato, zpg - página cero, abs - absoluto, ind - indirecto, X - indexado por el registro X, Y - indexado por el registro Y, rel - relativo | ||||||||||||
Mordisco alto | Mordisco bajo | |||||||||||
0 | 1 | 2 | 4 | 5 | 6 | 8 | 9 | A | C | D | mi | |
0 | BRK | ORA ( ind, X) | Zpg de ORA | ASL zpg | PHP | ORA # | ASL A | ORA abs | ASL abs | |||
1 | BPL rel | ORA ( ind), Y | ORA zpg, X | ASL zpg, X | CVX | ABS ORA, Y | ORA abs, X | ASL abs, X | ||||
2 | ABS JSR | Y ( ind, X) | BIT zpg | Y zpg | ROL zpg | PLP | Y # | ROL A | BIT abdominales | Y abdominales | ROL abs | |
3 | IMC rel | Y ( ind), Y | Y zpg, X | ROL zpg, X | SEGUNDO | Y abdominales, Y | Y abdominales, X | ROL abs, X | ||||
4 | RTI | EOR ( ind, X) | EOR zpg | LSR zpg | PHA | EOR # | LSR A | JMP abs | EOR abs | LSR abs | ||
5 | BVC rel | EOR ( ind), Y | EOR zpg, X | LSR zpg, X | CLI | EOR abs, Y | EOR abs, X | LSR abs, X | ||||
6 | RTS | ADC ( ind, X) | ADC zpg | ROR zpg | PLA | ADC # | ROR A | JMP ( ind) | ABS ADC | ROR abs | ||
7 | BVS rel | ADC ( ind), Y | ADC zpg, X | ROR zpg, X | SEI | ADC abs, Y | ADC abs, X | ROR abs, X | ||||
8 | STA ( ind, X) | STY zpg | STA zpg | STX zpg | DEY | TXA | STY abdominales | STA abs | STX abs | |||
9 | BCC rel | STA ( ind), Y | STY zpg, X | STA zpg, X | STX zpg, Y | TYA | STA abs, Y | TXS | STA abs, X | |||
A | LDY # | LDA ( ind, X) | LDX # | LDY zpg | LDA zpg | LDX zpg | TAY | LDA # | IMPUESTO | LDY abs | ABS LDA | LDX abs |
B | BCS rel | LDA ( ind), Y | LDY zpg, X | LDA zpg, X | LDX zpg, Y | CLV | LDA abs, Y | TSX | LDY abs, X | LDA abs, X | LDX abs, Y | |
C | CPY # | CMP ( ind, X) | CPY zpg | CMP zpg | DEC zpg | INY | CMP # | DEX | CPY abs | CMP abs | DEC abs | |
D | BNE rel | CMP ( ind), Y | CMP zpg, X | DEC zpg, X | CLD | CMP abs, Y | CMP abs, X | DEC abs, X | ||||
mi | CPX # | SBC ( ind, X) | CPX zpg | SBC zpg | INC zpg | INX | SBC # | NOP | CPX abs | SBC abs | INC abs | |
F | BEQ rel | SBC ( ind), Y | SBC zpg, X | INC zpg, X | SED | ABS SBC, Y | SBC abs, X | INC abs, X | ||||
Los códigos de operación en blanco (por ejemplo, F2) y todos los códigos de operación cuyos nibbles bajos son 3, 7, B y F no están definidos en el conjunto de instrucciones 6502. |
La entrada de interrupción no enmascarable (NMI) del procesador es sensible al borde, lo que significa que la interrupción se activa por el borde descendente de la señal en lugar de su nivel. La implicación de esta función es que no se admite fácilmente un circuito de interrupción OR cableado. Sin embargo, esto también evita que se produzcan interrupciones NMI anidadas hasta que el hardware vuelva a desactivar la entrada NMI, a menudo bajo el control del controlador de interrupciones NMI.
La afirmación simultánea de las líneas de interrupción de hardware NMI e IRQ (enmascarable) hace que se ignore la IRQ. Sin embargo, si la línea IRQ permanece activa después del servicio del NMI, el procesador responderá inmediatamente a la IRQ, ya que la IRQ es sensible al nivel. Por lo tanto, se estableció una especie de prioridad de interrupción incorporada en el diseño 6502.
La bandera B se establece mediante el muestreo periódico del 6502 de la salida de su detector de borde NMI y su entrada IRQ. Sin embargo, la señal de IRQ que se está bajando solo se reconoce si la bandera I permite las IRQ. Si de esta manera se detecta una solicitud NMI o IRQ (enmascarable), la bandera B se pone a cero y hace que el procesador ejecute la siguiente instrucción BRK en lugar de ejecutar la siguiente instrucción basada en el contador del programa.
La instrucción BRK luego empuja el estado del procesador a la pila, con el bit indicador B puesto a cero. Al final de su ejecución, la instrucción BRK restablece el valor de la bandera B a uno. Esta es la única forma en que se puede modificar la bandera B. Si una instrucción diferente a la instrucción BRK empuja el indicador B a la pila como parte del estado del procesador, el indicador B siempre tiene el valor uno.
Un borde de bajo a alto en el pin de entrada SO establecerá el bit de estado de desbordamiento del procesador. Esto se puede utilizar para una respuesta rápida a hardware externo. Por ejemplo, un controlador de dispositivo de sondeo de alta velocidad puede sondear el hardware una vez en solo tres ciclos usando una BVC
instrucción Branch-on-oVerflow-Clear () que se bifurca a sí mismo hasta que el desbordamiento se establece mediante un flanco ascendente SO. El Commodore 1541 y otras unidades de disquete Commodore utilizan esta técnica para detectar cuando el serializador está listo para transferir otro byte de datos del disco. El diseño de hardware y software del sistema debe garantizar que no se produzca un SO durante el procesamiento aritmético y los cálculos de interrupción.
Hubo numerosas variantes del NMOS 6502 original.
Empresa | Modelo | Descripción |
---|---|---|
6502A | Un chip de 1,5 MHz incluido en Asteroids Deluxe. | |
6502B | Versión del 6502 capaz de funcionar a una velocidad máxima de 2 MHz en lugar de 1. La B se utilizó en Apple III, BBC Micro y, con frecuencia de reloj de 1,79 MHz, en las primeras computadoras Atari de 8 bits. | |
6502C | El 6502C “oficial” era una versión del 6502 original capaz de funcionar hasta a 4 MHz. No debe confundirse con SALLY, un 6502 personalizado diseñado para Atari (y a veces denominado por ellos como "6502C") ni con el 65C02 de nombre similar. | |
SALLY / C014806 / "6502C" | Variante 6502 personalizada diseñada para Atari, utilizada en computadoras Atari de 8 bits posteriores, así como en las consolas Atari 5200 y Atari 7800. Cuenta con una señal HALT en el pin 35 y la señal R / W en el pin 36 (estos pines no están conectados (N / C) en un 6502 estándar). Al tirar de HALT bajo, se cierra el reloj y se detiene el procesador. Esto se utilizó para permitir el acceso directo a la memoria (DMA) de los circuitos de video. Aunque a veces se lo denomina "6502C" en la documentación de Atari, no es lo mismo que el 6502C "oficial" y el chip en sí nunca está marcado como tal. | |
Tecnología MOS | 6503 | Capacidad de direccionamiento de memoria reducida (4 KB) y sin entrada RDY, en un paquete DIP de 28 pines (con los pines de fase 1 (OUT), SYNC, Vss redundante y SO del 6502 también omitidos). |
Tecnología MOS | 6504 | Capacidad de direccionamiento de memoria reducida (8 KB), sin NMI y sin entrada RDY, en un paquete DIP de 28 pines (con los pines de fase 1 (OUT), SYNC, Vss redundante y SO del 6502 también omitidos). |
Tecnología MOS | 6505 | Capacidad de direccionamiento de memoria reducida (4 KB) y sin NMI, en un paquete DIP de 28 pines (con los pines de fase 1 (OUT), SYNC, Vss redundante y SO del 6502 también omitidos). |
Tecnología MOS | 6506 | Capacidad de direccionamiento de memoria reducida (4 KB), sin NMI y sin entrada RDY, pero los 3 pines de reloj del 6502 (es decir, un reloj de salida de 2 fases), en un paquete DIP de 28 pines (con SYNC, Vss redundante, y los pines SO del 6502 también se omiten). |
Tecnología MOS | 6507 | Capacidad de direccionamiento de memoria reducida (8 KB) y sin interrupciones, en un paquete DIP de 28 pines (con los pines de fase 1 (OUT), SYNC, Vss redundante y SO del 6502 también omitidos). Este chip se utilizó en el sistema de videojuegos Atari 2600. |
Tecnología MOS | 6508 | Tiene un puerto de entrada / salida integrado de 8 bits y 256 bytes de RAM estática interna. |
Tecnología MOS | 6509 | Puede direccionar hasta 1 MB de RAM como 16 bancos de 64 KB y se utilizó en la serie Commodore CBM-II. |
Tecnología MOS | 6510 | Tiene un puerto de entrada / salida programable de 6 bits incorporado y se usó en el Commodore 64. El 8500 es efectivamente una versión HMOS del 6510 y lo reemplazó en versiones posteriores del C64. |
Tecnología MOS | 6512 6513 6514 6515 | Las tecnologías MOS 6512, 6513, 6514 y 6515 dependen cada una de un reloj externo, en lugar de utilizar un generador de reloj interno como el 650x (por ejemplo, 6502). Esto se utilizó con ventaja en algunos diseños en los que los relojes se podían ejecutar de forma asimétrica, lo que aumentaba el rendimiento general de la CPU. El 6512 es un 6502 con una entrada de reloj de 2 fases para un oscilador de reloj externo, en lugar de un oscilador de reloj integrado. El 6513, 6514 y 6515 son igualmente equivalentes a (respectivamente) un 6503, 6504 y 6505 con la misma entrada de reloj de 2 fases. El 6512 se utilizó en el BBC Micro B + 64. |
Ricoh | 2A03 | Variante 6502 que incluye una unidad de procesamiento de audio y que carece del modo BCD, utilizada en el Nintendo Entertainment System. |
Tecnología MOS | 6591 6592 | Diseños de sistema en un chip que utilizan un Atari 2600 completo en un paquete DIP de 48 pines. |
WDC | 65C02 | Versión CMOS de NMOS 6502 que fue diseñada por Bill Mensch del Western Design Center (WDC), que presenta un consumo de energía reducido, soporte para velocidades de reloj mucho más altas, nuevas instrucciones, nuevos modos de direccionamiento para algunas instrucciones existentes y corrección de erratas de NMOS. como el JMP ($xxFF) error. |
WDC | 65SC02 | Variante del WDC 65C02 sin operaciones de manipulación de bits individuales (RMB, SMB, BBR y BBS). Este núcleo, que funciona a 4 MHz, se utilizó en el IC del sistema principal de Atari Lynx. |
CSG (tecnología MOS) | 65CE02 | Derivado de CMOS desarrollado por Commodore Semiconductor Group (CSG), anteriormente MOS Technology. |
Rockwell | R6511Q R6500 / 11, R6500 / 12, R6500 / 15 " Microcomputadoras de un chip " | Versiones mejoradas del procesador basado en 6502, que también incluyen operaciones de manipulación de bits individuales (RMB, SMB, BBR y BBS), RAM de página cero de 192 bytes en el chip, UART, etc. |
Rockwell | R65F11 R65F12 | El Rockwell R65F11 (introducido en 1983) y el posterior R65F12 son versiones mejoradas del procesador basado en 6502, que también incluyen operaciones de manipulación de bits individuales (RMB, SMB, BBR y BBS), RAM de página cero en el chip, en el chip Forth kernel ROM, un UART, etc. |
GTE | G65SC102 | Software compatible con el 65C02, pero tiene una distribución de pines y un circuito de oscilador ligeramente diferentes. El BBC Master Turbo incluía la versión de 4 MHz de esta CPU en una tarjeta de coprocesador, que también se podía comprar por separado y agregar al Master 128. |
Rockwell | R65C00 R65C21 R65C29 | El R65C00, R65C21 y R65C29 presentaban dos CMOS 6502 mejorados en un solo chip, y el R65C00 y R65C21 contenían además 2 kB de ROM programable por máscara. |
CM630 | Un clon de bloque del este de 1 MHz del 6502 y se usó en Pravetz 8A y 8C, clones búlgaros de la serie Apple //. | |
Tecnología MOS | 7501 8501 | Variantes del 6510 (en sí mismo un 6502 mejorado), introducido en 1984. Extendieron el número de pines del puerto de E / S de 6 a 7, pero omitieron los pines para interrupción no enmascarable y salida de reloj. Se utiliza en las computadoras C-16, C-116 y Plus / 4 de Commodore. La principal diferencia entre las CPU 7501 y 8501 es que la 7501 se fabricó con el proceso HMOS-1 y la 8501 con HMOS-2. |
Tecnología MOS | 8500 | Introducido en 1985 como una versión HMOS del 6510 (que a su vez se basa en el 6502). Aparte de la modificación del proceso, el 8500 es prácticamente idéntico a la versión NMOS del 6510. Reemplazó al 6510 en versiones posteriores del Commodore 64. |
Tecnología MOS | 8502 | Diseñado por MOS Technology y utilizado en el Commodore 128. Basado en el MOS 6510 utilizado en el Commodore 64, el 8502 pudo funcionar al doble de frecuencia que el 6510. La familia 8502 también incluye el MOS 7501, 8500 y 8501. |
Hudson suave | HuC6280 | La versión mejorada de la empresa japonesa de videojuegos Hudson Soft del WDC 65C02. Fabricado para ellos por Seiko Epson y NEC para SuperGrafx. El producto más notable que utiliza la HuC6280 es la consola de videojuegos TurboGrafx-16 de NEC. |
El Western Design Center diseñó y produce actualmente el procesador W65C816S, un sucesor de núcleo estático de 16 bits del 65C02, con características muy mejoradas. El W65C816S es una variante más nueva del 65C816, que es el núcleo de la computadora Apple II GS y es la base del procesador Ricoh 5A22 que alimenta el Super Nintendo Entertainment System. El W65C816S incorpora mejoras menores sobre el 65C816 que hacen que el chip más nuevo 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 cualquier fase sin que los registros pierdan datos. Disponible a través de distribuidores de electrónica, a partir de marzo de 2020, el W65C816S está clasificado oficialmente para funcionamiento a 14 MHz.
El Western Design Center también diseñó y produjo el 65C802, que era un núcleo 65C816 con un espacio de direcciones de 64 kilobytes en un paquete compatible con pines 65 (C) 02. El 65C802 podría adaptarse a una placa 6502 y funcionaría como un 65C02 al encenderse, operando en "modo de emulación". Al igual que con el 65C816, una secuencia de dos instrucciones cambiaría el 65C802 al funcionamiento en "modo nativo", exponiendo sus registros de índice y acumulador de 16 bits, así como otras características mejoradas del 65C816. El 65C802 no se utilizó mucho; los nuevos diseños casi siempre se construyeron alrededor del 65C816, lo que resultó en la interrupción de la producción del 65C802.
El siguiente código fuente del lenguaje ensamblador 6502 es para una subrutina nombrada, que copia una cadena de caracteres terminada en nulo de una ubicación a otra, convirtiendo las letras mayúsculas en minúsculas. La cadena que se copia es la "fuente" y la cadena en la que se almacena la fuente convertida es el "destino". TOLOWER
0080 0080 00 04 0082 00 05 0600 0600 A0 00 0602 B1 80 0604 F0 11 0606 C9 41 0608 90 06 060A C9 5B 060C B0 02 060E 09 20 0610 91 82 0612 C8 0613 D0 ED 0615 38 0616 60 0617 91 82 0619 18 061A 60 061B | ; TOLOWER: ; ; Convert a null-terminated character string to all lower case. ; Maximum string length is 255 characters, plus the null term- ; inator. ; ; Parameters: ; ; SRC - Source string address ; DST - Destination string address ; ORG $0080 ; SRC. WORD $0400 ;source string pointer DST. WORD $0500 ;destination string pointer ; ORG $0600 ;execution start address ; TOLOWER LDY #$00 ;starting index ; LOOP LDA (SRC),Y ;get from source string BEQ DONE ;end of string ; CMP #'A' ;if lower than UC alphabet... BCC SKIP ;copy unchanged ; CMP #'Z'+1 ;if greater than UC alphabet... BCS SKIP ;copy unchanged ; ORA #%00100000 ;convert to lower case ; SKIP STA (DST),Y ;store to destination string INY ;bump index BNE LOOP ;next character ; ; NOTE: If Y wraps the destination string will be left in an undefined ; state. We set carry to indicate this to the calling function. ; SEC ;report string too long error amp;... RTS ;return to caller ; DONE STA (DST),Y ;terminate destination string CLC ;report conversion completed amp;... RTS ;return to caller ;.END |
El 6502 tenía varios errores y peculiaridades, que debían tenerse en cuenta al programarlo:
JMP (lt;addressgt;)
, está parcialmente rota. Si lt;direccióngt; es xxFF hexadecimal (es decir, cualquier palabra que termine en FF), el procesador no saltará a la dirección almacenada en xxFF y como se esperaba, sino a la definida por xxFF y xx00 (por ejemplo, saltará a la dirección almacenado en 10FF y 1000, en lugar del almacenado en 10FF y 1100). Este defecto continuó a lo largo de toda la línea NMOS, pero se corrigió en los derivados CMOS.xxFF+1
JMP ($10FF)
![]() | Wikilibros tiene un libro sobre el tema: 6502 Assembly |
![]() | Wikimedia Commons tiene medios relacionados con el microprocesador 6502. |