La tecnología MOS 6502 (generalmente pronunciada "sesenta y cinco-oh-dos" o "seis-cinco-oh-dos") [3] 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.
Información general | |
---|---|
Lanzado | 1975 |
Fabricante (s) común (es) | |
Actuación | |
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 |
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. [4]
Historia y uso
Orígenes en Motorola
El 6502 fue diseñado por muchos de los mismos ingenieros que habían diseñado la familia de microprocesadores Motorola 6800 . [5] 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. [6] [7] John Buchanan fue el diseñador del chip 6800 [8] [9] y Rod Orgill, que más tarde hizo el 6501, ayudó a Buchanan con análisis de circuitos y diseño de chips. [10] Bill Mensch se unió a Motorola en junio de 1971 después de graduarse de la Universidad de Arizona (a los 26 años). [11] 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 . [12] Los ingenieros de Motorola podían ejecutar simulaciones analógicas y digitales en una computadora central IBM 370-165 . [13] 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. [14] Contribuyó en muchas áreas, incluido el diseño de la 6850 ACIA (interfaz en serie). [15]
Los clientes objetivo de Motorola eran empresas de electrónica establecidas como Hewlett-Packard , Tektronix , TRW y Chrysler . [16] 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. [17] 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. [18] [19] Tanto Intel como Motorola habían anunciado inicialmente un precio de 360 dólares por un solo microprocesador. [20] [21] 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. [22]
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. [23] 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. [24] Peddle y otros miembros del equipo comenzó a esbozar el diseño de una función mejorada, un 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 . [25]
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. [26] 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. [27] 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". [28]
Pasar a la tecnología MOS
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. [29]
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 . [30]
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. [31] La empresa diseñó y fabricó circuitos integrados personalizados para los clientes y había desarrollado una línea de chips para calculadoras. [32]
Después de que los esfuerzos de Mostek fracasaron, Peddle se acercó a Paivinen, quien "lo entendió de inmediato". [33] 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. [34]
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. [35]
Se pretendía que las astillas 6800 originales fueran de 180 × 180 mils [a] (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 . [36] Para el nuevo diseño, la meta de costo exigía una meta de tamaño de 153 × 168 mils (3,9 × 4,3 mm) , o un área de 16,6 mm 2 . [37] Se necesitarían varias técnicas nuevas para alcanzar este objetivo.
Mudarse a NMOS
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. [38] 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 distintas 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. [39]
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. [39]
Otro cambio que se estaba produciendo era la introducción del enmascaramiento de proyección. Anteriormente, se modelaban chips 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 defectos 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. [40]
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. [40]
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. [41]
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: [42]
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 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 . [43]
La siguiente gran diferencia fue simplificar los registros. Para empezar, se retiró uno de los dos acumuladores . Los registros de propósito general, como los acumuladores, tienen que ser accedidos por muchas partes del decodificador de instrucciones 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. [42] 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. [42]
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. [43]
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. [43]
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 [44] 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. [45]
A pesar de sus mejores esfuerzos, el diseño final terminó siendo 5 milésimas de pulgada de ancho. [46] Las primeras 6502 astillas tenían 168 × 183 milésimas de pulgada (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. . [47]
Presentamos el 6501 y el 6502
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. [48] 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 seleccionados 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 . [49] Las historias también se publicaron en EE Times (24 de agosto de 1975), [50] EDN (20 de septiembre de 1975), Electronic News (3 de noviembre de 1975), Byte (noviembre de 1975) [51] y Microcomputer Digest (noviembre de 1975). ). [52] 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. [53] En septiembre de 1975, los anuncios incluían los microprocesadores 6501 y 6502. El 6502 costaría solo $ 25 (equivalente a $ 120 en 2020). [54]
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. [55] 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 con el membrete de su empresa. [56]
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) |
Demanda de Motorola
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. [57] 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. [58]
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. [59] 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 6800 documentos de diseño a MOS Technology. [60] 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 licencias cruzadas de patentes de microprocesadores. [61] 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. [62] [63]
Computadoras y juegos
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 empresa diseñó el KIM-1 , que se vendió semi-completo y podría convertirse en un sistema utilizable con la adición de un 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 de control / entrenamiento / desarrollo relacionado de 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" del 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 , [64] ambos lanzados en 1977. Posteriormente se utilizó en el Atari Familia de 8 bits y computadoras domésticas Acorn Atom , BBC Micro , [64] Commodore VIC-20 y otros diseños tanto para computadoras domésticas como para empresas, como Ohio Scientific 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 [65] [66] . 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 .
Átomo de bellota
Electrón de bellota
Apple I
Manzana II
Apple IIe
Atari 2600
Atari 5200
Atari 7800
Atari 800
Atari Lynx
Maestro de la BBC
BBC Micro
Mascota Commodore
Comodoro VIC-20
Comodoro 64
Comodoro 128
Computadora familiar (Famicom)
Sistema de entretenimiento de Nintendo
Ohio Scientific Challenger 4P
Orao
Oric-1
Oric Atmos
Mascota digital Tamagotchi [67]
TurboGrafx-16
Descripción técnica
1 5 | 1 4 | 1 3 | 1 2 | 1 1 | 1 0 | 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 | Indicadores del procesador P |
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 [68] 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 . [37]
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 suministra 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 [se necesita aclaración ] sino que usa 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. [69] 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.
Registros
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 . [70] Esto se compara con un diseño típico de la misma época, el Z80 , que tiene ocho registros de 8 bits de propósito 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. [ cita requerida ]
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 usa 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 .
Direccionamiento
El chip utiliza los registros de índice y 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 .
Direccionamiento indirecto
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)" utilizado 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 .
Instrucciones y códigos de operación
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. [71]
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. [71]
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. [71]
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. [72] [73] 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 inicialmente se dejaron 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
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 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.
Tabla de instrucciones
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 abdominales | 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 ) | ADC abs | 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. |
Comportamiento detallado
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. [74] [75]
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 [76], 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 del hardware y software del sistema debe garantizar que no se produzca un SO durante el procesamiento aritmético y los cálculos interrumpidos.
Variaciones y derivadas
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. El B se usó 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 a hasta 4 MHz. No debe confundirse con SALLY, un 6502 personalizado diseñado para Atari (y a veces denominado por ellos como "6502C" [77] ) 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. [78] 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. [77] | |
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). [79] |
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). [79] |
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). [79] |
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). [79] |
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). [79] 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 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. [79] El 6513, 6514 y 6515 son igualmente equivalentes a (respectivamente) un 6503, 6504 y 6505 con la misma entrada de reloj de 2 fases. [79] 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. [80] [81] |
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). [82] 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. [83] [84] |
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. [85] [86] [87] [88] [89] |
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. [90] [91] |
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 // . [92] | |
Tecnología MOS | 7501 8501 | Variantes del 6510 (en sí mismo un 6502 mejorado), introducido en 1984. [93] Ampliaron el número de pines del puerto de E / S de 6 a 7, pero omitieron los pines para interrupciones no enmascarables y salida de reloj. [94] 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. [93] |
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. [95] La familia 8502 también incluye el MOS 7501, 8500 y 8501. |
Hudson Soft | 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. |
Derivados de 16 bits
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 era el núcleo de la computadora Apple II GS y era la base del procesador Ricoh 5A22 que impulsaba el popular 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 65 (C) 02 pines. 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.
Código de ejemplo
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 060 A C9 5 B 060 C B0 02 060 E 09 20 0610 91 82 0612 C8 0613 D0 ED 0615 38 0616 60 0617 91 82 0619 18 061 A 60 061 B | ; TOLOWER: ; ; Convierta una cadena de caracteres terminada en nulo a minúsculas. ; La longitud máxima de la cadena es de 255 caracteres, más el término nulo- ; inator. ; ; Parámetros: ; ; SRC: dirección de la cadena de origen ; DST: dirección de la cadena de destino ; ORG $ 0080 ; SRC .WORD $ 0400 ; puntero de cadena de origen ($ 40) DST .WORD $ 0500 ; puntero de cadena de destino ($ 42) ; ORG $ 0600 ; dirección de inicio de ejecución ;TOLOWER LDY # $ 00 ; índice inicial; LOOP LDA ( SRC ), Y ; obtener de la cadena fuente BEQ DONE ; final de la cadena ; CMP # 'A' ; si es menor que el alfabeto UC ... BCC SKIP ; copiar sin cambios ; CMP # 'Z' + 1 ; si es mayor que el alfabeto UC ... BCS SKIP ; copiar sin cambios ; ORA # % 00100000 ; convertir a minúsculas ; SALTAR STA ( DST ), Y ; almacenar en la cadena de destino INY ; índice de salto BNE LOOP ; siguiente carácter ; ; NOTA: Si Y se ajusta, la cadena de destino se dejará sin definir ; Expresar. Configuramos carry para indicar esto a la función de llamada. ; SEC ; reportar error de cadena demasiado larga & ... RTS ; regresar al llamador ; HECHO STA ( DST ), Y ; termina la cadena de destino CLC ; reporta conversión completada & ... RTS ; regresa a la persona que llama ; .FINAL |
Errores y peculiaridades
El 6502 tenía varios errores y peculiaridades, que debían tenerse en cuenta al programarlo:
- Las primeras revisiones del 6502, como las enviadas con algunas computadoras KIM-1 , tenían un error severo en la instrucción ROR (rotar memoria derecha o acumulador). La operación de ROR en estos chips es efectivamente una instrucción ASL (desplazamiento aritmético a la izquierda) que no afecta el bit de acarreo en el registro de estado. MOS dejó la instrucción fuera de la documentación del chip por completo debido al defecto, prometiendo que ROR aparecería en 6502 chips a partir de 1976. [96] La gran mayoría de los 6502 chips que existen hoy en día no presentan este error.
- La familia NMOS 6502 tiene una variedad de instrucciones indocumentadas , que varían de un fabricante de chips a otro. La decodificación de instrucciones 6502 se implementa en una matriz lógica cableada (similar a una matriz lógica programable ) que solo se define 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 bloquear el procesador, ejecutar dos instrucciones válidas consecutivamente, realizar mezclas extrañas de dos instrucciones o simplemente no hacer nada en absoluto. Eastern House Software desarrolló el "Trap65", un dispositivo que se conectaba entre el procesador y su zócalo para convertir (capturar) códigos de operación no implementados en instrucciones BRK (interrupción de software). [ cita requerida ] Algunos programadores utilizaron esta función para extender el conjunto de instrucciones 6502 proporcionando funcionalidad para los códigos de operación no implementados con software especialmente escrito interceptado en el vector 0xFFFE de la instrucción BRK. [97] [98] Todos los códigos de operación indefinidos han sido reemplazados por instrucciones NOP en el 65C02 , una versión CMOS mejorada del 6502, aunque con tamaños de bytes y tiempos de ejecución variables. En el 65C802 / 65C816 , los 256 códigos de operación realizan operaciones definidas.
- La instrucción de salto indirecto de memoria del 6502
JMP ()
, está parcialmente rota. Sión> 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)
- El direccionamiento indexado NMOS 6502 a través de los límites de la página hará una lectura adicional de una dirección no válida. Esta característica puede causar problemas aleatorios al acceder al hardware que actúa en una lectura, como borrar el temporizador o los indicadores de IRQ, enviar un protocolo de enlace de E / S, etc. Este defecto continuó a lo largo de toda la línea NMOS, pero se corrigió en las derivadas de CMOS, en que el procesador hace una lectura adicional del último byte de instrucción.
- Las instrucciones de lectura-modificación-escritura del 6502 realizan un ciclo de lectura y dos de escritura. Primero, se vuelven a escribir los datos no modificados que se leyeron y, a continuación, se escriben los datos modificados. Esta característica puede causar problemas al acceder dos veces al hardware que actúa en una escritura. Esta anomalía continuó a lo largo de toda la línea NMOS, pero se corrigió en las derivadas CMOS, en las que el procesador hará dos lecturas y un ciclo de escritura. La práctica de programación defensiva generalmente evitará este problema al no ejecutar instrucciones de lectura / modificación / escritura en los registros de hardware.
- Los indicadores de estado N (resultado negativo), V (desbordamiento de bit de signo) y Z (resultado cero) generalmente no tienen sentido cuando se realizan operaciones aritméticas mientras el procesador está en modo BCD , ya que estos indicadores reflejan el resultado binario, no BCD. Esta limitación se eliminó en los derivados de CMOS. Por lo tanto, esta función se puede utilizar para distinguir un procesador CMOS de una versión NMOS. [99]
- Si el 6502 está en modo BCD cuando ocurre una interrupción de hardware, no volverá al modo binario. Esta característica podría resultar en errores oscuros en la rutina del servicio de interrupción si no logra borrar el modo BCD antes de realizar cualquier operación aritmética. Por ejemplo, el Commodore 64 's meollo no manejar correctamente esta característica procesador, que exige que las IRQ ser re-vectorialmente a personas con discapacidad o durante las operaciones matemáticas BCD. Este problema también se abordó en los derivados de CMOS.
- El conjunto de instrucciones 6502 incluye BRK (código de operación $ 00), que técnicamente es una interrupción de software (similar en espíritu 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 de máquina para probar y depurar durante el desarrollo de software. BRK también podría usarse para enrutar la ejecución del programa usando una tabla de salto simple (análoga a la forma en que Intel 8086 y sus derivados manejan las interrupciones de software por número). Sin embargo, si se produce una interrupción de hardware cuando el procesador está obteniendo una instrucción BRK, la versión NMOS del procesador no podrá ejecutar BRK y, en su lugar, procederá como si solo hubiera ocurrido una interrupción de hardware. Esta falla se corrigió en la implementación CMOS del procesador.
- Al ejecutar instrucciones JSR (salto a subrutina) y RTS (retorno de subrutina), la dirección de retorno empujada a la pila por JSR es la del último byte del operando JSR (es decir, el byte más significativo de la dirección de subrutina), en lugar de la dirección de la siguiente instrucción. Esto se debe a que la copia real (del contador del programa a la pila y luego a la inversa) tiene lugar antes del incremento automático del contador del programa que se produce al final de cada instrucción. [100] 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 (un lenguaje de programación 6502 documentado en el Manual de referencia técnica de ProDOS 8 ). Sigue siendo una característica de 6502 derivados hasta el día de hoy.
Ver también
- Lista de ensambladores 6502
- Ordenadores domésticos basados en MOS Technology 6502
- Interrupciones en procesadores 65xx
- Recuento de transistores
- Aceleradores Apple II
- cc65 - Ensamblador de macros 6502 y compilador de C
Notas
- ^ En ese momento, la literatura técnica indicaría la longitud y el ancho de cada chip en "milésimas de pulgada" (0,001 pulgadas).
Referencias
Citas
- ^ "El MOS 6502 y el mejor tipo de diseño del mundo" . swtch.com. 2011-01-03 . Consultado el 9 de agosto de 2014 .
- ^ "MOnSter6502" . monster6502.com. 2017 . Consultado el 1 de mayo de 2017 .
- ^ William Mensch, Rob Walker (9 de octubre de 1995). Entrevista a William Mensch (video web). Atherton, California: Silicon Genesis, Bibliotecas de la Universidad de Stanford. Archivado desde el original el 14 de mayo de 2012 . Consultado el 4 de junio de 2012 .William Mensch y el moderador pronuncian el microprocesador 6502 como "sesenta y cinco cero dos" .
- ^ "Centro de diseño occidental (WDC) Inicio de tecnología de microprocesador 65xx" . www.westerndesigncenter.com . Consultado el 8 de abril de 2019 .
- ^ "Tecnología Motorola Sues MOS" (PDF) . Compendio de microordenador . Cupertino CA: Microcomputer Associates. 2 (6): 11. Diciembre de 1975.[ enlace muerto permanente ]
- ^ "Motorola se une a la carrera de microprocesadores con entrada de 8 bits". Electrónica . Nueva York: McGraw-Hill. 47 (5): 29-30. 7 de marzo de 1974.
- ^ Historia oral de Motorola 6800 (2008), p. 9
- ^ Buchanan, John K., "Circuito de refuerzo de voltaje CC MOS", patente estadounidense 3942047 , emitida el 2 de marzo de 1976.
- ^ Buchanan, John K., "Topografía de chip para chip de microprocesador de circuitos integrados MOS", Patente de Estados Unidos 3987418 , publicada el 19 de octubre de 1976.
- ^ Historia oral de Motorola 6800 (2008), p. 8
- ^ Historia oral de Mensch (1995) Mensch obtuvo un título de asociado de la Universidad de Temple en 1966 y luego trabajó en Philco Ford como técnico en electrónica antes de asistir a la Universidad de Arizona.
- ^ Mensch, William D., "Topografía de chip para circuito de interfaz MOS", patente estadounidense 3968478 , publicada el 6 de julio de 1976.
- ^ Jenkins, Francis; Lane, E .; Lattin, W .; Richardson, W. (noviembre de 1973). "Modelado de dispositivos MOS para implementación informática". Transacciones IEEE sobre teoría de circuitos . IEEE. 20 (6): 649–658. doi : 10.1109 / tct.1973.1083758 . ISSN 0018-9324 . Todos los autores estaban en la División de Productos Semiconductores de Motorola.
- ^ Donohue, James F. (27 de octubre de 1988). "El microprocesador dos primeras décadas: la forma en que era". EDN . Editorial Cahners. 33 (22A): 18–32. ISSN 0012-7515 .Página 30. Bennett ya estaba trabajando en lo que se convirtió en el 6800. "Me contrató", dice Peddle de Bennett, "para hacer el trabajo de soporte arquitectónico para el producto que ya había comenzado". … Dice Peddle. "Motorola intentó matarlo varias veces. Sin Bennett, el 6800 no habría sucedido, y gran parte de la industria tampoco habría sucedido".
- ^ Hepworth, Edward C., Rodney J. Means, Charles I. Peddle, "Adaptador de interfaz de comunicación asincrónica", patente 3975712 , emitida el 17 de agosto de 1976. Nota: Motorola normalmente enumera los inventores en orden alfabético.
- ^ Motorola (5 de agosto de 1976). "Se mantienen al frente con la familia M6800 de Motorola" . Electrónica . McGraw-Hill. 49 (16): 51. Anuncio que muestra tres aplicaciones integradas de TRW, HP y RUSCO.
- ^ Historia oral de Motorola 6800 (2008), p. 89
- ^ "Es la familia de productos total" . Electrónica . Nueva York: McGraw Hill. 48 (1): 37. 9 de enero de 1975.Anuncio de Motorola enfatizando su conjunto completo de chips periféricos y herramientas de desarrollo. Esto acorta el ciclo de diseño de productos de los clientes.
- ^ Historia oral de Motorola 6800 (2008) p. 18
- ^ "El conjunto de microprocesadores de Motorola es n-MOS de 1 MHz". Ingeniería de control . 21 (11): 11. noviembre de 1974.El precio del microprocesador MC6800 era de $ 360. El adaptador de interfaz de comunicaciones asíncronas MC6850 (ACIA) estaba programado para su introducción en el primer trimestre de 1975.
- ^ Corporación Intel (1984). Kaye, Glynnis Thompson (ed.). Una revolución en progreso: una historia hasta la fecha de Intel (PDF) . Corporación Intel. pag. 14. Número de pedido: 231295. Archivado (PDF) desde el original el 23 de octubre de 2012 . Consultado el 30 de diciembre de 2016 . "Shima implementó el 8080 en aproximadamente un año y el nuevo dispositivo se presentó en abril de 1974 por 360 dólares".
- ^ "Motorola monta la unidad M6800". Electrónica . Nueva York: McGraw-Hill. 48 (8): 25. 17 de abril de 1975. "Los distribuidores cuentan con la familia M6800, y la división también ofrece un kit de introducción que incluye las seis piezas iniciales de la familia, además de aplicaciones y manuales de programación, por $ 300".
- ^ Entrevista de 2014 , 52:30.
- ^ Entrevista de 2014 , 54:45.
- ^ Bagnall (2010), p. 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.
- ^ Entrevista de 2014 , 54:40.
- ^ Entrevista de 2014 , 55:50.
- ^ Waller, Larry (13 de noviembre de 1975). Motorola busca acabar con el patinazo ”. Electrónica . Nueva York: McGraw-Hill. 48 (23): 96–98.Resumen: Los productos semiconductores se dividen en dos partes, circuitos integrados y componentes discretos. Las pérdidas de semiconductores de los últimos cuatro trimestres superaron los 30 millones de dólares. La organización de ventas perdió su sensibilidad a las necesidades de los clientes, "las demoras en responder a los recortes de precios significaron que los clientes compraron en otra parte". Los problemas técnicos plagaron la producción de circuitos integrados. Los problemas "no están en el diseño, sino en el rendimiento de la viruta y el troquel". Se han resuelto los problemas. El microprocesador MC6800 "llegó en noviembre de 1974."
- ^ Entrevista de 2014 , 56:30.
- ^ Entrevista de 2014 , 55:00.
- ^ Bagnall (2010), p. 13.
- ^ MOS Technology (14 de noviembre de 1974). "Las primeras matrices de calculadora científica de un solo chip" . Electrónica . McGraw-Hill. 47 (23): 90–91.
- ^ Entrevista de 2014 , 57:00.
- ^ Entrevista de 2014 , 58:30.
- ^ Ho, Joshua (9 de octubre de 2014). "Introducción a la física, la tecnología y la industria de semiconductores" . Anandtech .
- ^ Historia oral de Motorola 6800 (2008), p. 10.
- ↑ a b c Cushman , 1975 , p. 40.
- ^ "Microprocesador 8080A - Paquete DIP 40" . CPU World .
- ↑ a b Cushman , 1975 , p. 38.
- ^ a b "Hitos de la ley de Moore" . IEEE .
- ^ Bagnall (2010), p. 19: "Paivinen le prometió a Peddle que tendría listo el proceso del canal n. Fue fiel a su palabra".
- ↑ a b c Cushman , 1975 , p. 36.
- ↑ a b c Cushman , 1975 , p. 41.
- ^ Entrevista de 2014 , 1:01:00.
- ^ Entrevista de 2014 , 1:02:00.
- ^ Entrevista de 2014 , 1:02:30.
- ^ La hoja de datos de agosto de 1975 tenía 55 instrucciones sin ROR, la hoja de datos de mayo de 1976 tenía el ROR y 56 instrucciones. Archivo: MCS650x Instruction Set.jpg
- ^ Universidad de Stanford, proyecto Silicon Genesis: entrevista de historia oral grabada en video de Willam Mensch
- ^ "La línea de microprocesadores ofrece 4, 8, 16 bits". Electrónica . Nueva York: McGraw-Hill. 48 (15): 118. 24 de julio de 1975.El artículo cubre el 6501 y 6502 más las versiones de 28 pines que solo abordarían 4K de memoria. También cubrió dispositivos futuros como "un diseño que Peddle llama un pseudo 16".
- ^ 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 desde el original (PDF) el 3 de febrero de 2007 . Consultado el 5 de febrero de 2008 .
- ^ Fylstra, Daniel (noviembre de 1975). "Hijo de Motorola (o el chip de CPU de $ 20)". Byte . Peterborough, NH: Green Publishing. 1 (3): 56–62.Comparación de los microprocesadores 6502 y 6800. El autor visitó MOS Technology en agosto de 1975.
- ^ "Microprocesador de 3ª generación" (PDF) . Compendio de microordenador . Cupertino, CA: Microcomputer Associates . 2 (2): 1–3. Agosto de 1975. Archivado desde el original (PDF) el 4 de julio de 2009 . Consultado el 27 de noviembre de 2009 .
- ^ "El microprocesador MOS 6501 les gana a todos". Electrónica . Nueva York: McGraw-Hill. 48 (16): 60–61. 7 de agosto de 1975.
- ^ "MOS 6502 el segundo de una familia de microprocesadores de alto rendimiento y bajo costo" . Computadora . Sociedad de Informática IEEE. 8 (9): 38–39. Septiembre de 1975. doi : 10.1109 / CM.1975.219074 .
- ^ Bagnall (2010), págs. 33–35.
- ^ Signetics (30 de octubre de 1975). "Microprocesador más fácil de usar" . Electrónica . McGraw-Hill. 48 (22): 114-115.
- ^ Motorola (30 de octubre de 1975). "Todo esto y microprocesador desagregado de $ 69" . Electrónica . McGraw-Hill. 48 (22): 11.El precio de la cantidad uno para el MC6800 se redujo de $ 175 a $ 69. El precio anterior de 50 a 99 unidades era de 125 dólares.
- ^ Waller, Larry (13 de noviembre de 1975). "Noticias breves: Motorola busca detener al enemigo del microprocesador". Electrónica . Nueva York: McGraw-Hill. 48 (23): 38."Motorola dijo la semana pasada que buscaría una orden judicial inmediata para impedir que MOS Technology Inc., Norristown, Pa., Fabrique y venda productos con microprocesadores, incluido su MCS6500". (Este número se publicó el 7 de noviembre).
- ^ Motorola recibió las siguientes patentes estadounidenses sobre la familia de microprocesadores 6800: 3962682, 3968478, 3975712, 3979730, 3979732, 3987418, 4003028, 4004281, 4004283, 4006457, 4010448, 4016546, 4020472, 4030079, 4032896400, 4037204 4071887, 4086627, 4087855, 4090236, 4145751, 4218740, 4263650.
- ^ Bagnall (2010), p. 53–54. "Él [Mike James] tenía todo su trabajo original del 6800 y se lo ocultó a Motorola ...
- ^ "Motorola, MOS Technology resolver la demanda de patentes". Electrónica . Nueva York: McGraw-Hill. 49 (7): 39. 1 de abril de 1975."MOS Technology Inc. de Norristown, Pensilvania acordó retirar su microprocesador MCS6501 del mercado y pagar a Motorola Inc. $ 200000 ..." "MOS Technology y ocho ex empleados de Motorola han devuelto, en virtud de documentos de orden judicial que Motorola sostiene son confidenciales ". "... ambas empresas han acordado una licencia cruzada relacionada con las patentes en el campo de los microprocesadores".
- ^ Bagnall (2010), págs. 55-56
- ^ "Fusiones y adquisiciones". Mini-Micro Sistemas . Cahners. 9 (11): 19. noviembre de 1976."Commodore International ... está comprando MOS Technology (Norristown, PA). Esto salva a la casa de semiconductores de seis años de un desastre inminente".
- ^ a b Goodwins, Rupert (4 de diciembre de 2010). "Víctimas de Intel: ocho posibles asesinos gigantes" . ZDNet . Consultado el 7 de marzo de 2012 .[ enlace muerto permanente ]
- ^ Reimer, Jeremy. "Cuota de mercado de ordenadores personales: 1975-2004" . Archivado desde el original el 6 de junio de 2012 . Consultado el 17 de julio de 2009 .
- ^ "¿Cuántas computadoras Commodore 64 se vendieron?" . Archivado desde el original el 6 de marzo de 2016 . Consultado el 1 de febrero de 2011 .
- ^ "Ejecución de código en un Tamagotchi" . kwartzlab.ca . 7 de mayo de 2013. Archivado desde el original el 31 de agosto de 2018 . Consultado el 23 de diciembre de 2018 .
- ^ Corder, Mike (primavera de 1999). "Grandes cosas en pequeños paquetes" . Progreso de los pioneros con la tecnología picoJava . Sun Microelectronics. Archivado desde el original el 12 de marzo de 2006 . Consultado el 23 de abril de 2012 .
El primer 6502 se fabricó con tecnología de 8 micrones, corrió a un megahercio y tenía una memoria máxima de 64k.
- ^ "Cómo implementar bus compartido / DMA en un sistema 6502" .
- ^ "PROGRAMACIÓN MODELO MCS650X". MANUAL DE PROGRAMACIÓN DE MICROCOMPUTADORAS MOS . MOS TECHNOLOGY, INC. Enero de 1976.
- ^ a b c Parker, Neil. "El conjunto de instrucciones 6502 / 65C02 / 65C816 decodificado" . Página de Apple II de Neil Parker .
- ^ 6502 Conjunto de instrucciones .
- ^ NMOS 6502 Opcodes Archivado el 14 de enero de 2016 en la Wayback Machine .
- ^ "MANEJO DE INTERRUPCIONES" . ogamespec . Consultado el 15 de mayo de 2021 .
CONTROL BANDERA B; BANDERA B
- ^ "6502 BRK y B bit" . VisualChips . Consultado el 15 de mayo de 2021 .
- ^ "BANDERAS" . ogamespec . Consultado el 15 de mayo de 2021 .
COMBATE; BUS DE DATOS INTERNOS (DB)
- ^ a b "FAQ 400800 XL XE: ¿Qué son SALLY, ANTIC, CTIA / GTIA / FGTIA, POKEY y FREDDIE?" . Archivado desde el original el 19 de julio de 2020.
nombrado SALLY por los ingenieros de Atari, pero [los documentos de soporte lo llaman] "6502 (Modificado)", "6502 Modificado", "Personalizado 6502" o "6502C". [..] Los chips SALLY 6502 nunca están marcados como "6502C" pero, a excepción del UMC UM6502I, siempre [marcados] C014806. [..] [Otros] chips marcados "6502C" [..] NO son el Atari "6502C" pero [6502 estándar] certificado para 4MHz
- ^ "6502 (modificado) CPU Microprocesador". MANUAL DE SERVICIO DE CAMPO DE LA COMPUTADORA DOMÉSTICA ATARI 1200 XL . ATARI. Febrero de 1983.
- ^ a b c d e f g Catálogo de datos de tecnología MOS de 1982 (PDF obtenido de bitsavers.org)
- ^ AtariAge: clon A2600, pinout de chip 6591
- ^ Hackaday: el Atari 2600 más pequeño de todos los tiempos
- ^ Zaks, Rodnay. Programando el 6502 . pag. 348.
- ^ "Rockwell R6511Q" . Consultado el 30 de abril de 2020 .
- ^ "Microcomputadoras de un chip Rockwell R6500 / 11, R6500 / 12 y R6500 / 15" . 7 de junio de 1987 . Consultado el 30 de abril de 2020 .
- ^ Randy M. Dumse. "Las computadoras Forth de un solo chip R65F11 y F68K". [1] [ enlace muerto permanente ] [2] Archivado el 2 de diciembre de 2014 en la Wayback Machine 1984.
- ^ Ed Schmauch. "Un sistema de monitoreo de corrosión computarizado" [ enlace muerto permanente ] . 1986.
- ^ Lawrence P. Forsley. "Sistemas integrados: 1990 Conferencia de Rochester Forth: 12 al 16 de junio de 1990 Universidad de Rochester" . pag. 51.
- ^ Rockwell. "Manual del usuario de RSC-Forth" . 1983.
- ^ "Microcomputadoras basadas en Rockwell R65F11 R65F12 Forth" (PDF) . Junio de 1987 . Consultado el 28 de abril de 2020 .
- ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 15 de mayo de 2016 . Consultado el 26 de octubre de 2014 .CS1 maint: copia archivada como título ( enlace )
- ^ "rockwell :: dataBooks :: 1985 Rockwell Data Book" - vía Internet Archive.
- ^ "Computadora doméstica de Europa del Este: Bulgaria" . HCM: Museo de la Computación en Casa . Consultado el 3 de octubre de 2020 .
- ^ a b http://plus4world.powweb.com/hardware/MOS_75018501 Hardware - MOS 7501/8501
- ^ https://ist.uwaterloo.ca/~schepers/MJK/7501.html CPU 7501/8501
- ^ Manual de servicio C-128 / C128D Computer , Commodore Business Machines, PN-314001-08, noviembre de 1987
- ^ "Midiendo el error ROR en los primeros MOS 6502" . Consultado el 8 de mayo de 2011 .
- ^ Moser, Carl W. (enero de 1979). "Agregar un vector de trampa para códigos de operación 6502 no implementados" (PDF) . Revista de Calistenia y Ortodoncia por Computadora del Dr. Dobb . No. 31. Menlo Park, California. pag. 32 . Consultado el 7 de enero de 2017 .
- ^ Harrod, Dennette A. (octubre de 1980). "El 6502 obtiene instrucciones microprogramables" . BYTE . Vol. 5 no. 10. Peterborough, Nueva Hampshire. pag. 282 . Consultado el 7 de enero de 2017 .
- ^ Draco (19 de junio de 1997). "65c02, 6502, 65816 ??? La CPU se vende pero quién compra ..." Archivado desde el original el 2 de enero de 2008.
- ^ Andrews, Mark (1984). "6" . Raíces de Atari: una guía para el lenguaje ensamblador de Atari . ISBN 0-88190-171-7.
Bibliografía
- Peddle, Chuck (12 de junio de 2014). "Historia oral de Chuck Peddle" (Entrevista). Entrevistado por Doug Fairbairn y Stephen Diamond.
- 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 Motorola 6800" (PDF) (Entrevista). Entrevistado por David Laws.
- Cushman, Robert H. (20 de septiembre de 1975). "ΜP de 2-1 / 2 Generación - $ 10 piezas que funcionan como las Mini de gama baja" (PDF) . EDN . Boston: Cahners Publishing. 20 (17): 36–42. Archivado desde el 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
Otras lecturas
- 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 ; 2nd Ed; Tecnología MOS; 182 páginas; 1976.
- Manual de programación de la serie 6500 ; 2nd Ed; Tecnología MOS; 262 páginas; 1976.
- Libros
- 6502 Libro de aplicaciones ; 1ª Ed; Rodnay Zaks; Sybex; 281 páginas; 1979; ISBN 978-0895880154 . (archivo)
- 6502 Programación en lenguaje ensamblador ; 2nd Ed; Lance Leventhal; Osborne / McGraw-Hill; 650 páginas; 1986; ISBN 978-0078812163 . (archivo)
- 6502 Subrutinas de lenguaje ensamblador ; 1ª Ed; Lance Leventhal y Winthrop Saville; Osborne / McGraw-Hill; 550 páginas; mil novecientos ochenta y dos; ISBN 978-0931988592 . (archivo)
- 6502 juegos ; 1ª Ed; Rodnay Zaks; Sybex; 292 páginas; 1980; ISBN 978-0895880222 . (archivo)
- 6502 Manual del usuario ; 1ª Ed; Joseph Carr; Descansa en; 288 páginas; 1984; ISBN 978-0835970020 . (archivo)
- Programación avanzada 6502 ; 1ª Ed; Rodnay Zaks; John Wiley & Sons; 292 páginas; mil novecientos ochenta y dos; ISBN 978-0895880895 . (archivo)
- Lenguaje de máquina para principiantes - Programación de lenguaje de máquina de computadora personal para computadoras Atari, VIC, Apple, C64 y PET ; 1ª Ed; Richard Mansfield; ¡Calcular! Publicaciones; 350 páginas; 1983; ISBN 978-0942386110 . (archivo)
- Programando el 6502 ; 4th Ed; Rodnay Zaks; Sybex; 408 páginas; 1983; ISBN 978-0895881359 . (archivo)
- Programación del 65816 , incluido el 6502, 65C02 , 65802 ; 1ª Ed; David Eyes y Ron Lichty; Prentice Hall; 636 páginas; 1986; ISBN 978-0893037895 . (archivo)
- Tarjetas de referencia
- 6502 Tarjeta de referencia instantánea del microprocesador ; James Lewis; Micro Logic; 2 páginas; 1980. (archivo)
enlaces externos
- 6502.org - el recurso del microprocesador 6502 - repositorio
- El auge de la tecnología MOS y el 6502 - archivo Commodore
- Información de 650x : descripción concisa, fotos de MOS y chips de segunda fuente; en cpu-collection.de
- mdfs.net - 6502 conjunto de instrucciones
- Listo, Eric. "6502 - el primer RISC µP" . Archivado desde el original el 24 de mayo de 2012.
- Harrod, Dennette A. (octubre de 1980). "6502 obtiene instrucciones microprogramables" . BYTE . Vol. 5 no. 10. McGraw Hill . págs. 282-285. ISSN 0360-5280 . Archivado desde el 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 2011-02-08 en Wayback Machine
- Lista de emuladores de software 6502 - Dominio de Zophar
- Simulador 6502 para Windows - Sede de Atari Gaming
- Simulación visual a nivel de transistor de la CPU 6502
- Núcleo de CPU MCL65 6502 - código C - MicroCore Labs GitHub
- Tableros
- Tarjeta 6502 de 7/8 chips de Grant
- 6502 placa de entrenamiento con microprocesador
- Construya su propia placa de entrenamiento KIM-1 - vea KIM-1
- 6502 computadora de casa
- Computadora de placa única PE6502
- Computadora de placa única BE6502 : basada en videos de Ben Eater
- FPGA
- cpu6502_tc 6502 CPU core - código fuente VHDL - OpenCores
- ag_6502 6502 CPU core - código fuente de Verilog - OpenCores
- Núcleo de CPU M65C02 65C02 - código fuente de Verilog - OpenCores
- Núcleo de CPU MCL65 6502 - Verilog - MicroCore Labs GitHub