El microprocesador Western Design Center (WDC) 65C02 es una versión CMOS mejorada de la popular tecnología MOS 6502 de 8 bits basada en nMOS . El 65C02 solucionó varios problemas en el 6502 original y agregó algunas instrucciones nuevas, pero su característica principal fue un uso de energía muy reducido, del orden de 10 a 20 veces menos que el 6502 original funcionando a la misma velocidad. [1] El reducido consumo de energía hizo que el 65C02 fuera útil en funciones de computadoras portátiles y sistemas de microcontroladores en entornos industriales. Se ha utilizado en algunos ordenadores domésticos , así como en sistemas integrados. aplicaciones, incluidos los dispositivos implantados de grado médico.
Información general | |
---|---|
Lanzado | 1981 | ¿ ?
Fabricante (s) común (es) | |
Actuación | |
Max. Frecuencia de reloj de la CPU | 1 MHz a 14 MHz |
Historia | |
Predecesor | Tecnología MOS 6502 |
El desarrollo comenzó en 1981 [a] y las muestras se lanzaron a principios de 1983. [b] WDC autorizó el diseño a Synertek , NCR , GTE y Rockwell Semiconductor . El interés principal de Rockwell estaba en el mercado integrado y solicitó que se agregaran varios comandos nuevos para ayudar en esta función. Más tarde, estos se copiaron de nuevo a la versión de referencia, momento en el que WDC agregó dos nuevos comandos propios para crear el W65C02 . Más tarde, Sanyo también obtuvo la licencia del diseño, y Seiko Epson produjo una versión más modificada como la HuC6280 .
Las primeras versiones usaban empaquetamiento DIP de 40 pines y estaban disponibles en versiones de 1, 2 y 4 MHz. Las versiones posteriores se produjeron en paquetes PLCC y QFP , así como en PDIP, y con índices de velocidad de reloj mucho más altos. La versión actual de WDC, el W65C02S-14 tiene un núcleo completamente estático y funciona oficialmente a velocidades de hasta 14 MHz cuando se alimenta a 5 voltios.
Introducción y características
El 65C02 es un bajo costo, de uso general 8-bit microprocesador (8 bits registros y bus de datos ) con un 16-bit contador de programa y bus de direcciones . El conjunto de registros es pequeño, con un solo acumulador de 8 bits (A), dos registros de índice de 8 bits (X e Y), un registro de estado de 8 bits (P) y un contador de programa de 16 bits (PC). Además del acumulador único, los primeros 256 bytes de RAM, la "página cero" ( $0000
a $00FF
), permiten un acceso más rápido a través de modos de direccionamiento que utilizan una dirección de memoria de 8 bits en lugar de una dirección de 16 bits. La pila se encuentra en los siguientes 256 bytes, página uno ($ 0100 a $ 01FF) y no se puede mover ni extender. La pila crece al revés con el puntero de pila (S) comenzando en $ 01FF y decrementando a medida que crece la pila. [2] Tiene un conjunto de instrucciones de longitud variable, que varía entre uno y tres bytes por instrucción. [1]
La arquitectura básica del 65C02 es idéntica a la del 6502 original y puede considerarse una implementación de bajo consumo de ese diseño. A 1 MHz, la velocidad más popular para el 6502 original, el 65C02 requiere solo 20 mW, mientras que el original usa 450 mW, una reducción de más de veinte veces. [3] El núcleo optimizado manualmente y el uso de baja potencia están destinados a hacer que el 65C02 sea adecuado para diseños de sistema en chip (SoC) de baja potencia . [1]
Hay disponible un modelo de descripción de hardware Verilog para diseñar el núcleo W65C02S en un circuito integrado específico de la aplicación (ASIC) o una matriz de puertas programables en campo (FPGA). [4] Como es común en la industria de los semiconductores, WDC ofrece un sistema de desarrollo, que incluye una placa de desarrollo , un emulador en circuito (ICE) y un sistema de desarrollo de software. [5]
El W65C02S – 14 es la versión de producción a partir de 2020[actualizar]y está disponible en paquetes PDIP , PLCC y QFP . La máxima velocidad de reloj de Ø2 (primaria) admitida oficialmente es de 14 MHz cuando se opera a 5 voltios, indicada por el sufijo de número de pieza –14 (los aficionados han desarrollado sistemas caseros 65C02 que funcionan más rápido que la clasificación oficial). La designación "S" indica que la pieza tiene un núcleo completamente estático , una característica que permite que Ø2 se desacelere o se detenga por completo en el estado alto o bajo sin pérdida de datos. [6] Los microprocesadores típicos no implementados en CMOS tienen núcleos dinámicos y perderán su contenido de registro interno (y por lo tanto colapsarán) si no se sincronizan continuamente a una velocidad entre algunos valores mínimos y máximos especificados.
|
Características lógicas generales
- Bus de datos de 8 bits
- Bus de direcciones de 16 bits (que proporciona un espacio de direcciones de 64 kB)
- Unidad lógica aritmética de 8 bits (ALU)
- Registros del procesador de 8 bits :
- acumulador
- puntero de pila
- registros de índice
- registro de estado
- Contador de programa de 16 bits
- 69 instrucciones , implementadas por 212 códigos de operación
- 16 modos de direccionamiento , incluido el direccionamiento de página cero
Características lógicas
- La
VPB
salida de vector pull ( ) indica cuándo se están direccionando los vectores de interrupción - La
MLB
salida de bloqueo de memoria ( ) indica a otros maestros de bus cuando se está procesando una instrucción de lectura-modificación-escritura - Las instrucciones WA it-for- I nterrupt (
WAI
) y ST o P (STP
) reducen el consumo de energía, disminuyen la latencia de interrupción y permiten la sincronización con eventos externos
Caracteristicas electricas
- Voltaje de suministro especificado de 1,71 V a 5,25 V
- Consumo de corriente (núcleo) de 0,15 y 1,5 mA por MHz a 1,89 V y 5,25 V respectivamente
- El conjunto de instrucciones de longitud variable, que permite la optimización del tamaño del código en procesadores de conjuntos de instrucciones de longitud fija, genera ahorros de energía
- Los circuitos completamente estáticos permiten detener el reloj para ahorrar energía
Funciones de reloj
El W65C02S puede funcionar con cualquier voltaje de suministro conveniente (V DD ) entre 1.8 y 5 voltios (± 5%). La tabla de características de CA de la hoja de datos enumera las características de funcionamiento a 5 V a 14 MHz, 3,3 V o 3 V a 8 MHz, 2,5 V a 4 MHz y 1,8 V a 2 MHz. Esta información puede ser un artefacto de una hoja de datos anterior, ya que un gráfico indica que los dispositivos típicos son capaces de operar a velocidades más altas que las sugeridas por la tabla de características de CA, y que la operación confiable a 20 MHz debería ser fácilmente alcanzable con V DD a 5 voltios, asumiendo que el hardware de soporte lo permita.
El soporte del W65C02S para velocidades de reloj arbitrarias le permite utilizar un reloj que funciona a una velocidad ideal para alguna otra parte del sistema, como 13,5 MHz (frecuencia de muestreo de luma de SDTV digital), 14,31818 MHz (frecuencia de portadora de color NTSC × 4), 14,75 MHz (píxeles cuadrados PAL), 14,7456 (cristal de velocidad en baudios), etc., siempre que V DD sea suficiente para soportar la frecuencia. El diseñador Bill Mensch ha señalado que F MAX se ve afectado por factores fuera del chip, como la carga capacitiva en los pines del microprocesador. Minimizar la carga mediante el uso de pistas de señal cortas y la menor cantidad de dispositivos ayuda a aumentar F MAX . Los paquetes PLCC y QFP tienen menos capacitancia pin a pin que el paquete PDIP y son más económicos en el uso del espacio de la placa de circuito impreso .
WDC ha informado que las realizaciones FPGA del W65C02S se han operado con éxito a 200 MHz.
Comparación con NMOS 6502
Arquitectura básica
Aunque el 65C02 se puede considerar principalmente como un 6502 de bajo consumo, también corrige varios errores encontrados en el original y agrega nuevas instrucciones, modos de direccionamiento y características que pueden ayudar al programador a escribir programas más pequeños y de ejecución más rápida. Se estima que el programa de lenguaje ensamblador 6502 promedio se puede hacer entre un 10 y un 15 por ciento más pequeño en el 65C02 y ver una mejora similar en el rendimiento, en gran parte a través de accesos a la memoria evitados mediante el uso de menos instrucciones para realizar una tarea determinada. [1]
Se quitaron las instrucciones sin documentar
El original 6502 tenía 56 instrucciones, que, cuando se combina con diferentes modos de direccionamiento, produjo un total de 151 códigos de operación de los posibles 256 patrones de 8 bits de código de operación. Los 105 códigos de operación restantes no utilizados estaban indefinidos, y el conjunto de códigos con 4 bits de orden bajo con 3, 7, B o F quedaron completamente sin usar, y el código con 2 de orden bajo solo tenía un código de operación único. [7]
El 6502 era famoso por la forma en que algunos de estos códigos sobrantes realizaban acciones. Debido a la forma en que funcionaba el decodificador de instrucciones del 6502, simplemente establecer ciertos bits en el código de operación haría que se llevaran a cabo partes del procesamiento de instrucciones. Algunos de estos códigos de operación colapsarían inmediatamente el procesador, mientras que otros realizaban funciones útiles e incluso los usuarios les daban mnemónicos de ensamblador no oficiales. [8]
El 65C02 agregó varios códigos de operación nuevos que consumieron varias de estas ranuras de "instrucción no documentada", por ejemplo, $ FF ahora se usaba para la nueva BBS
instrucción (ver más abajo). Aquellos que quedaron realmente sin usar estaban listos para realizar NOP
s. Los programas que aprovecharon estos códigos no funcionarán en el 65C02, pero estos códigos siempre se documentaron como no operativos y no deberían haberse utilizado. [1]
Corrección de errores
El 6502 original tenía varias erratas cuando se lanzó inicialmente. Las primeras versiones del procesador tenían una ROR
instrucción defectuosa (girar a la derecha), lo que solucionó el problema de la tecnología MOS al no documentar la instrucción. ROR
se corrigió muy temprano en la producción y no fue un problema para la gran mayoría de las máquinas que usaban el procesador. [9]
En contraste, un error notorio que está presente en todas las variantes NMOS del 6502 involucra la instrucción de salto ( JMP
) cuando se usa direccionamiento indirecto . En este modo de direccionamiento, la dirección de destino de la JMP
instrucción se obtiene de la memoria (el vector de salto), en lugar de ser un operando de la JMP
instrucción. Por ejemplo, JMP ($1234)
buscaría el valor en las ubicaciones de memoria $ 1234 (byte menos significativo) y $ 1235 (byte más significativo) y cargaría esos valores en el contador del programa , lo que haría que el procesador continuara la ejecución en la dirección almacenada en el vector de salto.
El error aparece cuando la dirección del vector termina en $ FF, que es el límite de una página de memoria . En este caso, JMP
obtendrá el byte más significativo de la dirección de destino de $ 00 de la página original en lugar de $ 00 de la nueva página. Por JMP ($12FF)
lo tanto , obtendría el byte menos significativo de la dirección de destino en $ 12FF y el byte más significativo de la dirección de destino de $ 1200 en lugar de $ 1300. El 65C02 corrigió este problema. [1]
Más un descuido que un error, el estado de la bandera (D) ecimal en el registro de estado del NMOS 6502 no está definido después de un reinicio o una interrupción . Esto significa que los programadores deben establecer la bandera en un valor conocido para evitar errores relacionados con las operaciones aritméticas. Como resultado, se encuentra una CLD
instrucción (CLear Decimal) en casi todos los manejadores de interrupciones 6502 , así como al principio del código de reinicio. El 65C02 borra automáticamente esta bandera después de empujar el registro de estado a la pila en respuesta a cualquier interrupción o en respuesta a un reinicio del hardware, colocando así el procesador nuevamente en modo aritmético binario. [10]
Durante la aritmética en modo decimal , el NMOS 6502 actualizará los indicadores (N) egative, o (V) erflow y (Z) ero para reflejar el resultado de la aritmética binaria subyacente, es decir, los indicadores reflejan un resultado calculado antes del procesador. realizar la corrección decimal. Por el contrario, el 65C02 establece estos indicadores de acuerdo con el resultado de la aritmética decimal, a costa de un ciclo de reloj adicional por instrucción aritmética. [10]
Al ejecutar una instrucción de lectura-modificación-escritura (RMW), por ejemplo , todas las variantes de NMOS realizarán una escritura doble en addr , primero reescribiendo el valor actual encontrado en addr y luego escribiendo el valor modificado. Este comportamiento puede resultar en errores difíciles de resolver si addr es un registro de hardware. En cambio, el 65C02 realiza una lectura doble de addr , seguida de una sola escritura.INC addr
Al realizar el direccionamiento indexado, si la indexación cruza el límite de una página, todas las variantes de NMOS leerán desde una dirección no válida antes de acceder a la dirección correcta. Al igual que con una instrucción RMW, este comportamiento puede causar problemas al acceder a los registros de hardware a través de la indexación. El 65C02 solucionó este problema realizando una lectura ficticia del código de operación de la instrucción cuando la indexación cruza el límite de una página. Sin embargo, esta corrección introdujo un nuevo error que ocurre cuando la dirección base está en un límite de página uniforme (lo que significa que la indexación nunca pasará a la página siguiente). Con el nuevo error, se realiza una lectura ficticia en la dirección base antes de la indexación, de modo que LDA $1200,X
hará una lectura ficticia en $ 1200 antes de que el valor de X se agregue a $ 1200. Nuevamente, si se indexa en direcciones de registro de hardware, este error puede resultar en un comportamiento indefinido.
Si un NMOS 6502 está obteniendo un código de operación BRK (interrupción de software) al mismo tiempo que ocurre una interrupción de hardware, BRK será ignorado mientras el procesador reacciona a la interrupción. El 65C02 maneja correctamente esta situación dando servicio a la interrupción y luego ejecutando BRK.
Nuevos modos de direccionamiento
El 6502 tiene dos modos de direccionamiento indirecto que eliminan la referencia a través de direcciones de 16 bits almacenadas en la página cero:
- Indicado indirecto, por ejemplo
LDA ($10,X)
, agrega el registro X a la dirección cero de la página dada antes de leer el vector de 16 bits. Por ejemplo, si X es 5, lee la dirección de 16 bits de la ubicación $ 15 / $ 16. Esto es útil cuando hay una matriz de punteros en la página cero. - Indirect indexado
LDA ($10),Y
agrega el registro Y al vector de 16 bits leído desde la dirección cero de la página dada. Por ejemplo, si Y es 5 y $ 10 / $ 11 contiene el vector $ 1000, esto lee el valor de $ 1005. Esto realiza el direccionamiento con desplazamiento de puntero.
Una desventaja de este modelo es que si no se necesita indexación, uno de los registros de índice aún debe establecerse en cero y usarse en una de estas instrucciones. El 65C02 agregó un modo de direccionamiento indirecto no indexado LDA ($10)
a todas las instrucciones que usaban modos indexados indirectos e indirectos indexados, liberando los registros de índice. [11]
La JMP
instrucción del 6502 tenía un modo de direccionamiento único (entre 6502 instrucciones) conocido como "indirecto absoluto" que leía un valor de 16 bits de una dirección de memoria dada y luego saltaba a la dirección en ese valor de 16 bits. Por ejemplo, si la ubicación de memoria $ A000 contiene $ 34 y $ A001 tiene $ 12, JMP ($A000)
leería esos dos bytes, construiría el valor $ 1234 y luego saltaría a esa ubicación.
Un uso común del direccionamiento indirecto es crear tablas de rama , una lista de puntos de entrada para subrutinas a las que se puede acceder mediante un índice. Por ejemplo, un controlador de dispositivo podría enumerar los puntos de entrada para OPEN
, CLOSE
, READ
, etc en una mesa en $ A000. READ
es la tercera entrada, indexada a cero, y cada dirección requiere 16 bits, por lo que para llamar a READ
una se usaría algo similar a JMP ($A004)
. Si el controlador se actualiza y el código de la subrutina se mueve en la memoria, cualquier código existente seguirá funcionando siempre que la tabla de punteros permanezca en $ A000.
El 65C02 agregó el nuevo modo "indirecto absoluto indexado" que facilitó el uso de tablas de rama. Este modo agregó el valor del registro X a la dirección absoluta y tomó la dirección de 16 bits de la ubicación resultante. Por ejemplo, para acceder a la READ
función de la tabla anterior, se almacenarían 4 en X, luego JMP ($A000,X)
. Este estilo de acceso simplifica el acceso a las tablas de sucursales, ya que se utiliza una única dirección base junto con un desplazamiento de 8 bits. [11]
Instrucciones nuevas y modificadas
Además de los nuevos modos de direccionamiento, el "modelo base" 65C02 también agregó un conjunto de nuevas instrucciones. [12]
INC
yDEC
sin parámetros ahora incrementa o decrementa el acumulador. Este fue un descuido extraño en el conjunto de instrucciones original, que solo incluíaINX
/DEX
,INY
/DEY
y / . Algunos ensambladores usan las formas alternativas / o / . [12]INC addr
DEC addr
INA
DEA
INC A
DEC A
STZ addr
, STore Zero en addr . Reemplaza la necesidad y no requiere cambiar el valor del acumulador. Como esta tarea es común en la mayoría de los programas, el uso de STZ puede reducir el tamaño del código, tanto al eliminar el LDA como cualquier código necesario para guardar el valor del acumulador, generalmente un par. [13]LDA #0;STA addr
PHA
PLA
PHX
,PLX
,PHY
,PLY
, Empuje y tire de la X y registros Y a / de la pila. Anteriormente, solo el acumulador y el registro de estado tenían instrucciones de empujar y tirar. X e Y solo se pueden apilar moviéndolos al acumulador primero conTXA
oTYA
, cambiando así el contenido del acumulador, luego usandoPHA
. [14]BRA
, rama siempre. Funciona como unJMP
pero usa una dirección relativa de 1 byte como otras ramas, ahorrando un byte. La velocidad es a menudo la misma que la absoluta de 3 ciclos, aJMP
menos que se cruce una página, lo que haría que elBRA
ciclo de la versión 1 sea más largo (4 ciclos). [15] Como la dirección es relativa, también es útil cuando se escribe código reubicable, [13] una tarea común en la era anterior a las unidades de gestión de memoria .
Instrucciones de manipulación de bits
Tanto WDC como Rockwell contribuyeron con mejoras a las funciones de prueba y manipulación de bits en el 65C02. WDC agregó nuevos modos de direccionamiento a la instrucción BIT que estaba presente en el 6502, así como dos nuevas instrucciones para la manipulación conveniente de campos de bits, una actividad común en los controladores de dispositivos.
BIT en el 65C02 agrega modo inmediato, página cero indexada por X y absoluta indexada por direccionamiento X. [12] El direccionamiento en modo inmediato es particularmente conveniente porque es completamente no destructivo. Por ejemplo:
- LDA
- BIT #% 00010000
puede usarse en lugar de:
- LDA
- Y #% 00010000
El primero conserva el valor cargado desde
Además de las mejoras de la instrucción BIT, WDC agregó dos instrucciones diseñadas para manipular convenientemente los campos de bits:
TSB addr
y , T est y S et B its y T est y R eset B its.TRB addr
- Una máscara en el acumulador (
.A
) es un AND lógico con memoria en addr , cuya ubicación puede ser página cero o absoluta. La bandera Z en el registro de estado está condicionada de acuerdo con el resultado del Y lógico; ningún otro indicador de registro de estado se ve afectado. Además, los bits en addr se establecen (TSB) o se borran (TRB) de acuerdo con la máscara en.A
. De manera sucinta, TSB realiza un OR lógico después del AND lógico y almacena el resultado del OR lógico en addr , mientras que TRB almacena los resultados del AND lógico en addr . En ambos casos, la bandera Z en el registro de estado indica el resultado de antes de que el contenido del addr se cambia. Por lo tanto, TRB y TSB reemplazan una secuencia de instrucciones, esencialmente combinando la instrucción BIT con pasos adicionales para guardar los cambios computacionales, pero de una manera que informa el estado del valor afectado antes de que se cambie. [1].A AND addr
Los cambios de Rockwell agregaron más instrucciones de manipulación de bits para configurar y probar directamente cualquier bit, y combinar la prueba, borrar y bifurcar en un solo código de operación. Las nuevas instrucciones estaban disponibles desde el principio en la familia R65C00 de Rockwell, [16] pero no formaban parte de la especificación 65C02 original y no se encuentran en las versiones fabricadas por WDC o sus otros licenciatarios. Posteriormente se copiaron de nuevo en el diseño de línea de base y estuvieron disponibles en versiones posteriores de WDC.
Las instrucciones específicas de Rockwell son:
SMBbit# zp
/ . Establecer o restablecer (borrar) el número de bit bit # en el byte de página cero zp .RMBbit# zp
- RMB y SMB se utilizan para borrar (RMB) o establecer (SMB) bits individuales en un campo de bits, cada uno reemplazando una secuencia de tres instrucciones. Como RMB y SMB son solo direccionamiento de página cero, estas instrucciones tienen una utilidad limitada y son principalmente valiosas en sistemas en los que los registros de dispositivos están presentes en la página cero. El componente de bit # de la instrucción a menudo se escribe como parte del mnemónico, como el
SMB1 $12
que establece el bit 1 en la dirección de página cero $ 12. Algunos ensambladores tratan el bit # como parte del operando de la instrucción, por ejemplo, que tiene la ventaja de permitir que sea reemplazado por un nombre de variable o un número calculado. [13]SMB 1,$12
BBR bit#,offset,addr
y bifurcación en el ajuste / reinicio de bits.BBS bit#,offset,addr
- El mismo direccionamiento de página cero y limitaciones que RMB y SMB, pero se ramifica a addr si el bit seleccionado está limpio (BBR) o establecido (BBS). Como es el caso de RMB y SMB, BBR y BBS reemplazan una secuencia de tres instrucciones. [13]
Modos de bajo consumo
Además de los nuevos comandos anteriores, WDC también agregó las instrucciones STP
y WAI
para admitir modos de bajo consumo.
STP
, DETENGA el procesador, detuvo todo el procesamiento hasta que se emitió un reinicio de hardware. Esto podría usarse para poner un sistema en "suspensión" y luego reactivarlo rápidamente con un reinicio. Normalmente, esto requeriría algún sistema externo para mantener la memoria principal y no se usaba ampliamente.
WAI
Tuvo un efecto similar, ingresando al modo de bajo consumo, pero esta instrucción despertó al procesador nuevamente al recibir una interrupción. Anteriormente, manejar una interrupción generalmente implicaba ejecutar un bucle para verificar si se había recibido una interrupción, a veces conocida como " girar ", verificar el tipo cuando se recibe una y luego saltar al código de procesamiento. Esto significó que el procesador estuvo funcionando durante todo el proceso.
Por el contrario, en el 65C02, el código de interrupción podría escribirse teniendo a WAI
seguido inmediatamente por a JSR
o JMP
al controlador. Cuando WAI
se encontró el, el procesamiento se detuvo y el procesador pasó al modo de bajo consumo. Cuando se recibió la interrupción, inmediatamente procesó JSR
y manejó la solicitud.
Esto tenía la ventaja adicional de mejorar ligeramente el rendimiento. En el caso de giro, la interrupción puede llegar en medio de una de las instrucciones del bucle, y para permitir que se reinicie después de regresar del controlador, el procesador pasa un ciclo para guardar su ubicación. Con WAI
, el procesador ingresa al estado de bajo consumo de energía en una ubicación conocida donde se garantiza que todas las instrucciones están completas, por lo que cuando llega la interrupción no puede interrumpir una instrucción y el procesador puede continuar de manera segura sin pasar un estado de ahorro de ciclo.
65SC02
El 65 SC 02 es una variante del WDC 65C02 sin instrucciones de bit. [17]
Usos notables del 65C02
Ordenadores domésticos
- Apple IIc portátil de Apple Computer (NCR 1.023 MHz)
- Apple IIe mejorado por Apple Computer (1.023 MHz)
- Computadora doméstica / educativa BBC Master , de Acorn Computers Ltd (2 MHz 65SC12 más un segundo procesador opcional de 4 MHz 65C102)
- Réplica 1 de Briel Computers, una réplica del ordenador aficionado Apple I (1 MHz)
- Clones láser de la serie 128 de Apple II
- KIM-1 Réplica moderna del MOS / CBM KIM-1 de Briel Computing
Juegos de consolas
- Computadora de mano Atari Lynx (65SC02 @ ~ 4 MHz)
- Motor NEC PC también conocido como TurboGrafx-16 ( HuC6280 @ 7.16 MHz) [18]
- Computadoras de mano GameKing (6 MHz) de Timetop
- Computadoras de mano Watara Supervision (65SC02 a 4 MHz)
Otros productos
- Cartucho acelerador TurboMaster para la computadora doméstica Commodore 64 (65C02 a 4.09 MHz)
- Segundo procesador conectado a tubo para la computadora doméstica Acorn BBC Micro (65C02 a 3 MHz)
- muchas computadoras dedicadas al ajedrez, es decir: Mephisto MMV , Novag Super Constellation, Fidelity Elite y muchas más (4-20 MHz)
Ver también
- Interrupciones en procesadores 65xx
- CSG 65CE02 , una versión mejorada del 65C02
Notas
- ^ Algunas fuentes, incluidas las versiones anteriores de este artículo, afirman 1978. Esta fue la fecha en que Bill Mench, el diseñador principal, formó WDC. Mench afirma específicamente 1981 cuando habla del diseño en 1984.
- ^ El artículo de Wagner de junio de 1983 menciona que estará disponible durante "varios meses". Dados los retrasos típicos de publicación en ese momento, esto puede datarlo a finales de 1982. Otra fuente apunta a 1980, ver página de discusión.
Referencias
Citas
- ↑ a b c d e f g Wagner , 1983 , pág. 204.
- ^ Koehn, Philipp (2 de marzo de 2018). "Pila 6502" (PDF) .
- ^ Taylor y Watford 1984 , p. 174.
- ^ "6502 Proyectos de CPU en HDL (para FPGA)" .
- ^ "Placa de desarrollo W65C02DB" .
- ^ "W65C02S-14" .
- ^ Parker, Neil. "El conjunto de instrucciones 6502 / 65C02 / 65C816 decodificado" . Página de Apple II de Neil Parker .
- ^ Vardy, Adam (22 de agosto de 1995). "Instrucciones adicionales de la CPU de la serie 65XX" .
- ^ Steil, Michael (28 de septiembre de 2010). "Midiendo el error ROR en los primeros MOS 6502" .
- ^ a b "Diferencias entre NMOS 6502 y CMOS 65c02" . Consultado el 27 de febrero de 2018 .
Los indicadores N, V y Z eran incorrectos después de la operación decimal (pero C estaba bien).
- ^ a b Clark, Bruce. "65C02 Opcodes" .
- ↑ a b c Wagner , 1983 , p. 200.
- ↑ a b c d Wagner , 1983 , p. 203.
- ^ Wagner 1983 , págs. 200-201.
- ^ "Hoja de datos de W65C02S" (PDF) .
- ^ Wagner 1983 , p. 199.
- ^ Zaks, Rodnay. Programando el 6502 . pag. 348.
- ^ http://archaicpixels.com/HuC6280
Bibliografía
- Wagner, Robert (junio de 1983). "Líneas de montaje" . Softtalk . págs. 199–204.
- Taylor, Simon; Watford, Bob (julio de 1984). "6502 avivamiento". Mundo de la computadora personal . págs. 174-175.
Otras lecturas
- 65C02 Hoja de datos ; Centro de Diseño Occidental; 32 páginas; 2018.
- 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)
enlaces externos
- Página web 65C02 - Western Design Center
- Diferencias 65xx / 65Cxx / 65SCxx - CPU World
- 6502 / 65C02 / 65C816 Conjunto de instrucciones decodificado - De la página Apple II de Neil Parker