# TRS-80 Color Computer

El TRS-80 Color Computer de Radio Shack, también llamado Tandy Color Computer, o CoCo, fue un ordenador doméstico basado en el microprocesador Motorola 6809E y parte de la línea TRS-80 de computadores.

## Origen e historia

El TRS-80 Color Computer, frecuentemente referido por sus usuarios como CoCo, comenzó como una empresa de riesgo compartido en 1977, entre Tandy Corporation de Fort Worth y Motorola Semiconductor, Inc., entonces de Austin, para desarrollar un computador casero de bajo costo.
La meta inicial de este proyecto, llamado "Green Thumb" (Pulgar Verde), era crear un terminal Videotex de bajo costo para granjeros, hacendados, y otros en la industria agrícola. Este terminal se conectaría a una línea telefónica y a un televisor en color ordinario y permitiría al usuario tener acceso, casi en tiempo real, a información útil para sus operaciones cotidianas en la granja.
Alrededor del mismo tiempo, fue lanzado el chip Motorola 6847 Video Display Generator (VDG) (Generador de Imagen de Video), y se ha especulado que el VDG fue diseñado realmente para este proyecto. El prototipo del terminal "Green Thumb" se hizo realidad cerca de 1978, teniendo como partes principales, el VDG MC6847, junto con el microcontrolador MC6808. Desafortunadamente el prototipo contenía demasiados chips para ser comercialmente viable. Motorola solucionó este problema integrando todas las funciones de muchos chips pequeños en un solo chip, el MC6883 Synchronous Address Multiplexer (SAM) (Multiplexor de Dirección Síncrono). Para ese momento, a finales de 1979, fue lanzado el nuevo y poderoso procesador Motorola 6809, y fue combinado junto con el SAM, y el VDG para crear el terminal AgVision.
El terminal AgVision fue vendido también en los almacenes de Radio Shack, como el terminal Videotex, alrededor de 1980. Diferencias internas, si las hubo, son confusas pues no muchos terminales AgVision sobreviven al día de hoy.
Con su diseño probado, el terminal Videotex contenía todos los componentes básicos para un computador casero de propósitos generales. Fue removido el módem interno, y fueron añadidos puertos de Entrada/Salida para almacenamiento en casete, un puerto serial y un joystick. Un conector de expansión fue agregado en el lado derecho de la carcasa para tener la capacidad de futuras mejoras y para cartuchos de programas ("Programs Paks"). Una insignia indicando la cantidad de memoria instalada en la máquina cubrió el agujero donde antes estaba el indicador led de "DATOS" del módem. El 31 de julio de 1981, Tandy anunció el TRS-80 Color Computer. Compartiendo la misma carcasa, teclado, y forma que los terminales AgVision y Videotex. Sería difícil diferenciar, a primera vista, el TRS-80 Color Computer de sus predecesores.
El modelo inicial, que en el catálogo de Radio Shack apareció con el número 26-3001, se despachaba con 4K de Memoria Dinámica de Acceso Aleatorio (DRAM) y un intérprete Microsoft BASIC contenido en una ROM interna de 8K. Su precio fue de $399. En pocos meses, los almacenes de Radio Shack a través de USA y Canadá comenzaron a recibir y a vender la nueva computadora.

## Diferencias con los primeros modelos TRS-80

Con su procesador Motorola MC6809E, el Color Computer era una salida radical de los anteriores computadores TRS-80 modelos I, II, III, 4 y 4p, todos basados en el Zilog Z80, de hecho, el "80" en "TRS-80" se refería al procesador "Z-80". Por un tiempo, el CoCo fue reseñado internamente como el TRS-90 en referencia al "9" en el "6809". Sin embargo esto fue descartado, y a pesar del cambio del procesador, todos los computadores CoCos vendidos por Radio Shack fueron llamados TRS-80.
Como sus predecesores basados en el Z-80, el CoCo venía con BASIC, pero en este caso fue el Microsoft BASIC. Mientras que las máquinas Z-80 fueron conectadas a un monitor en blanco y negro externo o tenían el monitor incluido dentro de su carcasa, el CoCo fue diseñado para ser conectado a un televisor en color.
El CoCo también ofreció un conector de expansión para cartuchos de programas, en su mayoría juegos, como también otros dispositivos de expansión, como controladores de disqueteras. De esta manera compartió una cierta semejanza con los Atari 2600, Atari 400 y Atari 800, y otras consolas de juego y computadoras que tenían capacidad para cartuchos.
Al igual que los sistemas Z-80, había múltiples "niveles" de BASIC. En el caso del CoCo eran el Color BASIC estándar, y el Extended Color BASIC. Más allá de ese, el Disk Extended Color BASIC venía con el controlador de disquetera, y en el CoCo 3, el "Super" Extended Color BASIC fue agregado por Microware.
Tanto el CoCo, como los primeros TRS-80s basados en el microprocesador Zilog Z80 eventualmente ofrecieron disqueteras. Ambos compartieron los controladores de disquetera de la serie de WD17xx y las disqueteras estándar de la industria con 35 y posteriormente 40 pistas. El CoCo no tenía un DOS verdadero hasta que estuvieron disponibles sistemas operativos como el TSC FLEX, distribuido para el CoCo por Frank Hogg, y el OS-9, un sistema operativo multiusuario y multitarea desarrollado por Microware. Sin embargo un CoCo basado en disco contenía el Disk Extended Color BASIC en una ROM interna del cartucho controlador que daba al usuario del BASIC la capacidad de guardar y cargar programas y datos de y hacia el disco de diversas maneras sin necesidad de un sistema operativo.
Tandy también lanzó una interfaz Multi-Pak que permitía que hasta 4 cartuchos fueran montados al mismo tiempo. Esto fue similar en concepto a la Interfaz de Expansión del TRS-80 Model I.
Algunos cartuchos de extensión incluyeron: un sintetizador de sonido y de voz, un módem Pack de 300 baudios, un pack con una interfaz serial RS232, un controlador de disco duro, un adaptador de música estéreo, un controlador de disquetera, una Tableta digitalizadora, y otros accesorios.
El CoCo fue la primera computadora de Tandy en tener un ratón disponible para ella.

## Descripción de las diferentes versiones

Había tres versiones del Color Computer:
* Color Computer 1
* Color Computer 2
* Color Computer 3

### Color Computer 1 - (1980-1983)

La versión original del Color Computer tenía una gran carcasa de color gris plateado con un teclado tipo chiclet. Estaba disponible con tamaños de memoria de 4K (26-3001), 16K (26-3002), o 32K (26-3003). Se despachaban versiones con Microsoft Color Basic como estándar y opcionalmente, si por lo menos hubiera habido 16K de memoria instalados, con Extended Color Basic. Utilizó un televisor regular como pantalla.
El teclado de las primeras versiones del CoCo 1 estaba circundado con un área de color negro, la placa de identificación TRS-80 estaba sobre el teclado al lado izquierdo, y una insignia indicaba el monto de RAM fue puesta en el lado derecho superior de la carcasa. Versiones más recientes quitaron el borde negro que rodeaba el teclado y la insignia de RAM, y movieron la placa de identificación TRS-80 a la parte central de la carcasa.
Las versiones iniciales del CoCo fueron ampliadas a 32K por medio de dos bancos de chips de memoria de 16K montados unos sobre los otros en pares (piggybacking) y agregando algunos jumpers y cableado. Una versión posterior de la tarjeta madre quitó la opción de 4K RAM y fue aumentada a 32K con chips de memoria de 64K "medio malos". Estas tarjetas tenían jumpers marcados HIGH/LOW (Alto/Bajo) para determinar cual mitad de los chips de memoria estaba buena. Esta medida inicial de reducción de los costos era transparente al programador de BASIC puesto que de todos modos solamente 32K de memoria RAM estaba disponible. A medida que mejoró el porcentaje de chip de memoria buenos y los costos bajaron, muchas, quizás la mayoría, de los chips de memoria de 32K de los CoCos 1 realmente eran chips de memoria de 64K perfectamente buenos. Muchas utilidades y programas comenzaron a aprovecharse de los 32K "ocultos".
Incluso versiones posteriores del CoCo 1 abandonaron completamente la opción de 32K de memoria y estaban disponibles en versiones 16K o 64K. Todas las versiones que se despacharon con el Color BASIC estándar se podían mejorar al Extended BASIC simplemente enchufando un ROM en un zócalo vacío proporcionado en la tarjeta madre.
Hacia el final de la producción del CoCo 1, algunos modelos fueron despachados en una carcasa blanca con un teclado modificado, llamado a menudo como el teclado "derretido", con teclas más grandes pero una sensación parecida a la goma. Más o menos al mismo tiempo, otro CoCo con carcasa blanca, el TDP-100, fue mercadeado por Tandy Data Products (TDP) y vendido a través de un diferente canal de distribución. A excepción de la placa de identificación y de la carcasa, el TDP-100 era totalmente idéntico al CoCo 1. El TDP-100 tenía ranuras de la ventilación que corrían por la longitud total de la carcasa, en lugar de solamente a los lados. Este esquema de ventilación fue posteriormente trasladado al CoCo 2.
Un número de periféricos estaban disponibles: almacenamiento en cinta de casete, impresoras seriales, una disquetera de 5,25 pulgadas, una Tableta digitalizadora llamada el "X-Pad", generadores de voz y sonidos, y joysticks.

### Color Computer 2 - (1983-1986)

Durante la producción del CoCo 1, mucho de los circuitos discretos del soporte fueron rediseñados y se desarrollaron un puñado de circuitos integrados por encargo, dejando al final mucha área de la tarjeta de circuitos del CoCo 1 vacía. Para bajar costos de producción, la carcasa fue acortada por cerca de un 25% y fue diseñada nuevas y más pequeñas fuente de alimentación y tarjeta madre. Fueron usados, un teclado "derretido" y unas ranuras de ventilación al estilo del TDP-100. Aparte de la nueva apariencia y de la eliminación de la fuente de alimentación de 12 V para el conector de extensión, el computador era esencialmente 100% compatible con la generación anterior. La eliminación de la fuente de alimentación de 12 V lisió algunos periféricos, tales como el controlador de disquetera original, que entonces necesitó ser actualizado, instalado en una interfaz Multi-Pak, o ser provisto, de alguna manera, con una fuente de poder externa.
Durante el tiempo de vida en la producción del CoCo 2, la fabricación fue parcialmente movida a Corea. Muchos dueños de los sistemas construidos en Corea se referían a ellos como los "KoKos". Para agregar a la confusión, la producción de los Estados Unidos y de Corea ocurrió en paralelo usando los mismos números de parte. Muy pocas diferencias, si alguna, existían entre las máquinas CoCo 2 estadounidenses y las coreanas.
Estaban disponibles actualizaciones ROM del BASIC para agregar algunas características de menor importancia y corregían algunos errores (bugs). También fue introducido un controlador de disco rediseñado para usar solamente 5 V, con un nuevo Disk BASIC ROM (v 1.1) que agregaba el comando "DOS", que fue usado para cargar el sistema operativo OS-9 de Microware, el cual requería 64K de memoria.
Más adelante en la producción, el teclado "derretido" fue eliminado y un nuevo teclado estilo máquina de escribir normal finalmente estaba disponible. Muchos doloridos dedos se regocijaron.
El cambio significativo final en la vida del CoCo 2 fue en los modelos 26-3134B, 26-3136B, y 26-3127B, con 16K estándar, 16K extendido y 64K extendido respectivamente. Internamente estos modelos fueron rediseñados para utilizar el MC6847T1, un VDG mejorado. Este VDG permitió el uso de caracteres en minúsculas y la habilidad de cambiar el color del borde de la pantalla de texto. Desafortunadamente, ambas características no se usaron por razones de compatibilidad y no estaban activadas en el BASIC. A mitad del camino durante la producción de estos últimos CoCo 2, la placa de identificación fue cambiada. En vez de leerse"Radio Shack TRS-80 Color Computer 2" apareció entonces "TANDY Color Computer 2". Los cuadritos rojo, verde, y azul fueron sustituidos por paralelogramos rojo, verde, y azul.

### Color Computer 3 - (1986-1991)

A mediados de los años ochenta, llegó a ser obvio que el CoCo se estaba quedando atrás de la competencia. El 30 de julio de 1986, Tandy anunció el Color Computer 3. Este nuevo modelo de la línea del Color Computer tenía la intención de competir mejor con los sistemas del Commodore Amiga y el Atari ST. Venía con 128K de RAM, y podía ser ampliado a 512K. El color alrededor del teclado y en la puerta plástica del cartucho fue cambiado de negro a gris. La disposición de teclado fue revisada, poniendo las teclas de flecha de navegación en una configuración de diamante y agregando las teclas CTRL, ALT, F1 y F2. Se vendió por $219.95 en los almacenes Radio Shack y los Tandy Computer Centers, aunque poco después de su lanzamiento podían ser comprados por $169 en Computer Plus en el Princeton RAINBOWfest (17-19 de octubre).
El CoCo 3 era compatible con la mayoría de los periféricos del CoCo 2. La mayoría del software viejo corrió en él. Tenía un chip ASIC llamado "GIME" (Graphics Interrupt Memory Enhancement) que sustituyó los gráficos y el hardware de memoria del CoCo 1 y 2. Este chip añadió varios modos de vídeo nuevos a los modos anteriores basados en el VDG del CoCo:
* Texto con minúsculas reales, con 32, 40, 64, ú 80 caracteres por línea y entre 16 y 24 líneas por pantalla.
* Los atributos de los caracteres de texto incluyen 8 colores del texto y 8 colores de fondo, además, subrayado y parpadeo.
* Nuevas resoluciones gráficas de 160, 256, 320 o 640 píxels de ancho por 192 a 225 píxels de alto.
* Hasta 16 colores simultáneos de una paleta de 64 colores posibles (a menos que fueron empleados trucos de programa para exhibir más de los mencionados 16 colores).
Adicionalmente de permitir salida para un televisor, como los CoCos anteriores,, el GIME permitía la conexión un monitor de vídeo compuesto, o un monitor análogo RGB. Esto hizo mucho para mejorar la claridad de su salida. El GIME también tenía un Memory Management Unit que dividió el espacio de dirección de 64K del 6809 en pedazos 8x8K, considerados por algunos programadores como demasiado grandes para ser realmente efectivos.
Fueron suprimidos del GIME los poco usados semigráficos creados por el SAM, modos 8, 12 y 24. Se ha hablado de un modo de 256 colores, detallado en la especificación original de Tandy para el GIME, que nunca se ha sido encontrado.
Las versiones previas del ROM del CoCo habían sido licenciada a Microsoft. Por este tiempo Microsoft no estaba muy interesado en extender el código más. En su lugar, Microware proporcionó extensiones al Extended Color BASIC para soportar los nuevos modos de pantalla. Para no violar el espíritu del acuerdo de licencia entre Microsoft y Tandy, el software sin modificar del BASIC de Microsoft fue cargado en la ROM del CoCo 3. Al arrancar, la ROM se copiaba a RAM y después se remendaba por el código de Microware.
Microware también proporcionó una versión del sistema operativo OS-9 Level 2 poco después del lanzamiento. Este OS ofrecía mapeo de memoria, de tal manera que cada proceso tenía su propio espacio de memoria de hasta 64K, una GUI donde se podían mostrar varias ventanas, y un más extenso ambiente de desarrollo que incluyó una copia de BASIC09 que venía con el sistema operativo. Compiladores de C y PASCAL también estaban disponibles. Varios miembros de la comunidad del OS-9 de CoCo 3 mejoraron el OS-9 Level 2 para el CoCo 3 en petición de Tandy, pero Tandy paró la producción del CoCo 3 antes de que la mejora fuera lanzada oficialmente. La mayoría de las mejoras que se hicieron en el NitrOS-9, una reescritura importante del OS-9/6809 Level 2 para el CoCo 3, para tomar ventaja de las características añadidas y la velocidad del Hitachi 6309, (en las unidades que tuvieran instalado el CPU de Hitachi).
El 6809 en el CoCo 1 y 2 corría a 0.895 MHz. El CoCo 3 corría por defecto a esa frecuencia, pero era controlable por software para correr a dos veces esa velocidad. El OS-9 se aprovecha de esa capacidad. Algunos modelos del CoCo 1 y 2 eran también capaces de correr a esta más alta velocidad, pero esto no fue soportado ni garantizado.
Un accesorio popular fue un adaptador de joystick de alta resolución, diseñado por el mago del software Steve Bjork. Mientras que aumentó la resolución de la interfaz del joystick/ratón por un factor de diez, lo hizo a expensas de (otra vez) de tiempo del CPU. ¡De hecho, tanto es así, que a menudo era deseable dejar el puntero del ratón en la esquina superior izquierda de la pantalla para acelerar las cosas!
Una versión modificada de esta interfaz fue incluida con una paquete de software por Colorware de Dave Stamp llamado CoCo-Max 3. Este fue una virtual copia de MacPaint pero agregaba soporte para gráficos de color. Era un producto muy deseable para los dueños del CoCo y combinado con un procesador de palabras similar al MacWrite llamado a MAX-10, también por Dave Stamp, e internamente llamado "MaxWrite", proporcionó mucha de la funcionalidad de un Apple Macintosh, pero con gráficos de color y en una fracción del costo.
Mientras que el CoCo 3 ofreció muchas mejoras y fue bien recibido, no estaba sin problemas y decepciones. Según lo concebido inicialmente, el CoCo 3 tenía mucha aceleración de hardware y sonido mejorado. Sin embargo, políticas internas lisiaron el diseño para que no fuera percibido como una amenaza para el Tandy 1000, otra vez limitado el potencial de la plataforma como una consola del juego. Las primeras versiones del GIME tenían problemas de sincronización con la DRAM que causaron que el sistema se congelara al azar. Debido a los errores en el GIME algunas características que eran problemáticas fueron marcadas en los manuales de programación y reparación, como "reservada" o "no utilizar".
La fuente de alimentación era marginal, y algunas se recalentaban cuando era agregada la carga adicional de todos los chips de 512K de DRAM. Algunos dueños del CoCo 3 optaron por agregar un pequeño ventilador dentro de la carcasa para mantenerlo fresco, entonces, muchas unidades funcionaron perfectamente por muchos años.

## Prototipos y versiones raras

Varios prototipos para el CoCo han surgido en los últimos años. En la década de 1980, en las tiendas Radio Shack se estaba vendiendo un teclado que se conectaba directamente a un CoCo 2, aunque no estaba marcado como tal. Este teclado fue parte de un proceso de producción para el nunca producido Deluxe Color Computer. El CoCo Deluxe se hacía referencia en manuales y se mencionaba específicamente que tenía teclas especiales, vídeo con caracteres en minúsculas, y la capacidad para aceptar comandos en minúsculas. Las versiones posteriores del CoCo 2, etiquetados como Tandy en lugar TRS-80, tuvieron la posibilidad de mostrar las minúsculas, pero no aceptaban comandos en minúsculas, aunque después esta capacidad estará disponible a través de A-DOS, una ROM de reemplazo de terceros para el disco de controlador.
El modelo de producción CoCo 3 se encuentra en diferentes diseños de tarjetas de circuitos y chips con bases. En 2005, un prototipo raro de CoCo 3 apareció en el CoCoFEST Chicago, con un controlador de unidad de disco integrado y otros elementos todavía no identificados. Asimismo, no hizo uso de un chip de régimen. En su lugar, toda la funcionalidad de la GIME se creó usando chips separados. Hay un esfuerzo por aficionados para tratar de hacer ingeniería inversa de estos chips para que una GIME moderna, finalmente se puede producir.
También hay un prototipo de interfaz Ethernet para Color Computer, mostrando una fecha de diseño de la placa de 1984, y unos cuantos tableros misteriosos que aún tienen que ser examinados. Hay alguna evidencia de que Tandy quitó la interfaz Ethernet en el último minuto: un anuncio menciona las opciones de red para algunas computadoras Tandy basados en Z80 y afirmó que el Color Computer pronto tendría capacidades de red, y el manual impreso para una versión de actualización del sistema operativo OS-9 Nivel Uno listaba "networking" (redes), en la tabla de contenido, pero no tenía el texto correspondiente en el cuerpo del manual.

## Clones y primos del CoCo

* El Dragon 32/64/200 fue un clon británico del CoCo. Una compañía americana, Tano, intentó importar estas unidades a Estados Unidos, pero no tuvo éxito. El Dragon era una unidad muy mejorada con salida de video además de la salida del televisor proporcionada por el CoCo y el CoCo 2, (muy parecido al CoCo 3), un puerto paralelo de impresora (ausente en todos los CoCos), un integrado 6551A UART serial (en el Dragon 64), y un mejor teclado. Tras la quiebra de Dragon Data su fabricación se trasladó a Extremadura, donde se fabricaron los Dragon 100 y Dragon 200.
* En 1983, una versión del Dragon fue licenciada la fabricación para el mercado estadounidense por Tano Corporation de New Orleans, Luisiana.
* En Brasil existen por lo menos dos clones del CoCo, incluyendo el Prológica CP 400 y el Codimex 6809.
* Sampo, una compañía basada en Taiwán, también hizo un clon del CoCo, el Sampo Color Computer. Es incierto si alguna vez estuvo disponible fuera de Taiwán.
* Un primo del CoCo, el MC-10 o Micro Color Computer, fue vendido en los almacenes de Radio Shack como computadora de nivel de entrada de bajo costo. Lanzado en 1983, era similar en aspecto al Timex Sinclair. También utilizó el MC6847 VDG y el Microsoft BASIC, pero llevaba el microprocesador MC6803.
* A su vez un clon del MC-10 se vendió en Francia como el Matra Alice, alcanzando bastante popularidad.

## Diseño del hardware y Circuitos Integrados

Internamente los modelos CoCo 1 y CoCo 2 eran funcionalmente idénticos. La base del sistema era virtualmente idéntica al diseño de referencia incluido en la hoja de datos del Motorola MC6883 y consistió en 5 chips de larga escala de integración (LSI):
* El microprocesador MC6809E (MPU)
* El Multiplexor de Dirección Síncrono MC6883/SN74LS783/SN74LS785 (SAM)
* El Generador de Exhibición de Video MC6847 (VDG)
* Dos Adaptadores de Interfaz de Periféricos (PIA), chips MC6821 o MC6822

### El SAM

El SAM es un dispositivo de múltiples funciones que realiza las siguientes tareas:
* Generación y sincronización de reloj para la CPU 6809E y el VDG 6847.
* Control y refrescamiento de memoria de hasta 64 KiB de DRAM.
* Selección de dispositivos basada en la dirección de memoria de la CPU para determinar si el acceso de la CPU es a DRAM, ROM, PIA, etc.
* Duplicación del contador de dirección del VDG para "alimentar" al VDG con los datos que está esperando
El SAM fue diseñado para sustituir, en un solo paquete integrado, numerosos chips pequeños tipo LS/TTL. Su propósito principal era controlar el DRAM pero, como se describió arriba, también integraba algunas otras funciones. Generalmente estaba conectado con un cristal a 4 veces la frecuencia de la Salva de color del televisor (14.31818 MHz para los países NTSC). Esto era internamente dividido por 4 y era alimentado al VDG para su propia sincronización interna (3.579545 MHz para NTSC). El SAM también dividía el reloj principal en 16 (8 en ciertos casos) para el reloj de dos fases de la CPU, esto era 0.89 MHz en NTSC (o 1.8 MHz si era dividido por 8).
Cambiar el SAM para operar a 1.8 MHz daba al CPU el tiempo usado ordinariamente por el VDG y el refrescamiento, haciendo como efecto colateral que la pantalla mostrara basura. Este modo fue raramente usado. Sin embargo, había un inusual modo disponible en el SAM llamado modo Dependiente de la Dirección, en donde la lectura de la ROM, puesto que no usaba la DRAM, ocurría a 1.8 MHz pero el acceso regular de la RAM ocurría a 0.89 MHz. En efecto, puesto que el intérprete BASIC corría desde la ROM, poniendo la máquina en este modo doblaba aproximadamente el desempeño de los programas escritos en BASIC mientras que mantenía la exhibición de video y el refrescamiento de la DRAM. Por supuesto, esto destrozaba los ciclos de sincronización del software y las operaciones de Entrada/Salida eran afectadas. Sin embargo, a pesar de estos problemas, la instrucción "poke de alta velocidad" fue usada por muchos programas BASIC del CoCo aunque "sobre-clockeaba" el hardware en el CoCo que estaba solamente clasificado para operación a 1 MHz.
El SAM no tenía ninguna conexión al bus de datos del microprocesador. Debido a esto, estaba programado de una manera curiosa, su registro de configuración de 16 bits está distribuido a través de 32 direcciones de memoria (FFC0-FFDF). Escribir a bytes pares, ponían el registro correspondiente a 0, y escribir a bytes impares lo ponían a 1.
Debido a las limitaciones en el empaquetado de 40 pines, el SAM contenía un duplicado del contador interno de dirección de 12 bits del VDG. Normalmente los ajustes del contador estaban dispuestos para duplicar el modo de exhibición de video del VDG. Sin embargo esto no era requerido y resultaba en la creación de algunos nuevos modos de exhibición de video no posibles cuando era usado solamente el VDG en un sistema. En vez de que el VDG leyera por sí mismo datos de la memoria RAM, éste era "alimentado" con datos por la copia interna en el SAM del contador de dirección del VDG. Este proceso era llamado por Motorola como "Interleaved Direct Memory Access" (IDMA) (Acceso Directo de Memoria Intercalado), y aseguraba que el procesador y el VDG siempre tuvieran acceso completo, sin estados de espera o contención, a este recurso de memoria compartido.
Había dos versiones del SAM. El primero fue etiquetado MC6883 o SN74LS783, la versión posterior fue etiquetada SN74LS785. Había, entre estas dos versiones, algunas pequeñas diferencias en la sincronización, pero la diferencia principal era el soporte de un contador de refresco de 8 bits en la versión 785. Esto permitió el uso de DRAMs económicas de 16K por 4 bits y ciertas de 64K por 1 bit. Algunas actualizaciones de terceros, que usaban DRAMs de 256K mediante conmutación de bancos de memoria (bank switching en inglés), necesitaban para funcionar este contador de 8 bits de refresco de memoria.

### El VDG

El MC6847 era un generador de pantalla relativamente simple comparado con los chips de pantalla de algunos de los rivales de 8 bits del CoCo. El MC6847 era capaz de exhibir texto y gráficos contenidos en una matriz aproximadamente cuadrada de exhibición de 256 pixel de ancho por 192 píxeles de alto. Era capaz de desplegar 9 colores: negro, verde, amarillo, azul, rojo, marrón-amarillento claro (casi pero no absolutamente blanco), cian, magenta, y naranja. La baja resolución de la pantalla era una necesidad al usar televisiones como monitores de pantalla. Hacer la exhibición de la imagen más ancha se corría el riesgo de cortar caracteres debido al overscan del televisor. Comprimir más puntos en la ventana de la imagen podía exceder fácilmente la resolución del televisor y hubiera sido inútil.

#### Exhibición Alfanumérica y Semigráfica

El CoCo estaba configurado físicamente para que su pantalla inicial por defecto fuera el modo "Semigráfico 4".
En modo alfanumérico, cada carácter era 5 puntos de ancho por 7 puntos de alto en una caja de 8 puntos de ancho por 12 puntos de alto. Este modo de exhibición conconsumía 512 bytes de memoria y tenía 32 caracteres de ancho por 16 caracteres de alto (16 líneas de 32 caracteres). El ROM interno del generador de caracteres solamente alojaba solamente 64 caracteres, así que no se proporcionaban caracteres en minúsculas. Las letras minúsculas se "simulaban" invirtiendo el color de los caracteres.
El semigráfico era un modo de exhibición híbrido donde caracteres alfanuméicos y rudimentarios gráficos de gruesos bloques se podía mezclar en la misma pantalla. Si el octavo bit del carácter estaba encendido, entonces era un carácter semigráfico, y si estaba apagado, era un carácter alfanumérico. Cuando el octavo bit, estaba encendido, los tres bits siguientes determinaban el color y los últimos 4 bits determinaban cuales "cuadrantes" de la caja del carácter eran del color seleccionado o de color negro. El modo semigráfico era el único modo donde era posible, sin trucos disimulados, exhibir en la pantalla los 9 colores simultáneamente. Si se usaba solamente para exhibir semigráficos, la pantalla se convertía en un modo "gráfico" de 64x32 con 9 colores. El CoCo ofrecía varios comandos de BASIC para manejar esta pantalla como una pantalla gráfica de baja resolución.
La exhibición alfanumérica tenía dos conjuntos de colores (colorset). El utilizado por defecto en el CoCo tenía caracteres negros en un fondo verde. El alterno tenía caracteres negros en un fondo anaranjado. La selección del conjunto de colores no afectaba los caracteres semigráficos. El borde en este modo era siempre negro.
Otro modo de exhibición del 6847 fue el Semigráficos 6, donde dos bits seleccionaban un color y 6 bits determinaban cuales de los 6 bloques del carácter semigráfico se encendían. En este modo, solamente 4 colores eran posibles, pero el bit del conjunto de colores del VDG podía seleccionar uno de dos diferentes grupos de 4 colores. Este modo no fue implementado en el CoCo.

#### Modos semigráficos adicionales

Ajustando el SAM de tal manera que creyera que estaba exhibiendo un modo de gráfico completo, pero dejando al VDG en modo de Alfanumerico/semigráficos 4, era posible subdividir la caja del carácter en bloques más pequeños. Esto creaba los modos Semigráficos "virtuales" 8, 12, y 24. En estos modos era posible mezclar bits y piezas de diferentes caracteres de texto así como caracteres Semigráficos 4. Estos modos eran una interesante curiosidad pero no se usaron extensamente, pues la pantalla de Semigráficos 24 consumía 6144 bytes de memoria. Estos modos no fueron implementados en el CoCo 3.

#### Exhibición gráfica

Había varios modos gráficos completos, que fueron divididos en dos categorías: gráficos "de resolución" y gráficos "de color".
En los modos de resolución, cada pixel era direccionable como encendido o apagado. Había dos conjuntos de colores disponibles, el primero eran puntos negros en un fondo verde y el borde verde. Los gráficos de resolución tenían 8 píxeles por byte y estaban disponibles en densidades de 128x64, 128x96, 128x192, y 256x192.
En los modos de color, usados más comúnmente, se tenían puntos blancos en un fondo negro con un borde blanco. En modos de color, cada pixel estaba representado por dos bits, seleccionando uno de cuatro colores. Otra vez, la entrada del conjunto de colores al VDG determinaba qué colores eran usados. El primer conjunto de colores tenía un borde verde, y estaban disponible los colores verde, amarillo, rojo, y azul. El segundo conjunto de colores tenía un borde blanco y estaban disponibles los colores blanco, cian, magenta y naranja. Los gráficos de color tenían 4 píxeles por byte y estaban disponibles en densidades de 64x64, 128x64, 128x96, y 128x192.
El tamaño máximo de una pantalla de gráficos era 6.144 bytes.

#### Colores de artefacto

Había una curiosa nota al pie de página sobre el modo gráfico de 256x192 píxeles de dos colores. Debido a las limitaciones de la señal NTSC y de la relación de fase entre el reloj del VDG y la frecuencia del colorburst, no era realmente posible exhibir confiablemente 256 puntos a través de la pantalla. En el primer conjunto de colores, donde estaban disponibles los puntos verdes y negros, al alternar columnas de color verde y negro no se distinguían como colores separados y se fundían como un solo color verde fangoso. Sin embargo cuando uno cambia al conjunto de colores blanco y negro, en vez de un gris fangoso como uno esperaría, se conseguían los colores rojo o azul. Invirtiendo el orden de los puntos alternativos daría el color opuesto.
En efecto este modo, debido al efecto de los colores de artefacto, se convertía en un modo gráfico de 128x192 píxeles con 4 colores en donde estaban disponibles los colores negro, rojo, azul, y blanco. La mayoría de los juegos del CoCo usaron este modo porque los colores disponibles eran más útiles que los proporcionados en los modos de hardware de 4 colores. Desafortunadamente, internamente el VDG podía encenderse en el lado ascendente o descendente de la señal del reloj, así que los patrones de bits que representan el rojo y el azul no era predecible. ¡La mayoría de los juegos del CoCo comenzarían con una pantalla de título e invitaban al usuario que presionara el botón de reseteo hasta que los colores estuvieran correctos! El CoCo 3 arregló el problema del borde de la señal del reloj de tal manera que fuera siempre igual (al sostener F1 durante el reseteo se elegiría el otro). En un CoCo 3 con un monitor análogo RGB, los patrones de puntos negros y blancos no producían artefactos, se necesitaba usar un televisor o un monitor de video compuesto.

#### Las letras minúsculas y el 6847T1

El 6847 era capaz de usar un generador de caracteres externo. Varios tarjetas de terceros estaban disponibles como ampliaciones que permitirían al CoCo mostrar caracteres en minúsculas reales.
Muy tarde en la producción del CoCo 2, estaba disponible un VDG mejorado, llamado 6847T1. incluyó un generador de caracteres en minúsculas y la capacidad de exhibir un borde verde o naranja en la pantalla de texto. Sus otros cambios eran principalmente para reducir el número de piezas al incorporar un latch de datos interno. Desafortunadamente la capacidad de letras minúsculas de este VDG no estaba activada por defecto en este sistema e incluso no se mencionaba en el manual. Solamente con cierta experimentación e investigación fue descubierta esta característica por los intrépidos usuarios del CoCo.
El 6847T1 podía tener también el número de parte XC80652P (¿partes prelanzamiento?)

### Los PIAs

Había dos chips PIA en todos los modelos del CoCo. Los PIAs estaban principalmente dedicados a operaciones de Entrada/Salida tales como controlar el convertidor digital/análogo (DAC) de 6 bits interno, leyendo el estado del comparador de voltaje del DAC, controlando el relé para el motor del casete, leyendo la matriz del teclado, controlando los pines de control de modos del VDG, leyendo y escribiendo al puerto serie RS-232, controlando los multiplexores análogos internos, y cosas similares.
Los primeros modelos del CoCo tenían dos chips 6821 estándar. Más adelante, debido a cambios en el diseño del teclado, se encontró que el 6822 IIA (Industrial Interface Adapter) (Adaptador de Interfaz Industrial) estaba mejor ajustado a la impedancia del teclado. Luego, el 6822 fue descontinuado por Motorola pero fue producido más adelante para Tandy como un ASIC con un especial número de parte, Tandy SC67331P. Funcionalmente el 6821 y el 6822 eran idénticos y uno podía poner un 6821 en lugar del 6822 si esa parte hubiera estado mala. Algunas resistencias pull-up externas pudieron ser necesarias al usar un 6821 para reemplazar un 6822 en un CoCo y así poder tener una operación normal del teclado.

### Interfaz para periféricos externos

Debido al diseño del CoCo, la CPU no encuentra ningún estado de espera en la operación normal. Esto significaba que eran fácilmente implementados ciclos de sincronización precisos controlados por software. Esto era importante, puesto que el CoCo no tenía hardware especializado de Entrada/Salida. Todas las operaciones de Entrada/Salida, como la lectura y escritura del casete, Entrada/Salida serial, la exploración el teclado, y la lectura de la posición de los joysticks debían hacerse enteramente en software. Esto reducía el costo del hardware, pero también reducía el desempeño del sistema puesto que la CPU era inaccesible durante estas operaciones.
Como un ejemplo, la interfaz de casete del CoCo era quizás una de las más rápidas disponible (1500 bits/segundo) pero esto era así por, literalmente, producir ondas sinusoidales generadas por software a través del DAC interno de 6 bits. Mientras que esto estaba sucediendo, el CoCo no podía hacer nada porque estaba usando todo el tiempo del CPU. Similarmente, al leer datos del casete, el CoCo debía contar cruces de ondas y por lo tanto no podía hacer nada hasta que ocurriera un error o la operación hubiera terminado.

## Cambios del hardware en el CoCo 3

El hardware en los modelos del CoCo 1 y del CoCo 2 eran funcionalmente el mismo. Las únicas diferencias estaban en el empaquetado y una cierta integración de algunas funciones en un pequeño ASIC. El CoCo 3 cambió radicalmente esto. Un nuevo VLSI ASIC, llamado oficialmente, Advanced Color Video Chip (ACVC) (Chip de Video de Color Avanzado), y no oficialmente, Graphics Interrupt Memory Enhancer (GIME) (Mejorador de Memoria de Interrupción de Gráficos), que integró las funciones del SAM y del VDG mientras mejoraba las capacidades de ambos. Aparte de las mejoras gráficas mencionadas, el CoCo 3 ofrecía letras minúsculas verdaderas, capacidad de texto de 40 y 80 columnas en la pantalla, y la habilidad de correr a 1.8 MHz sin pérdida del video de la pantalla. El procesador fue cambiado al 68B09E y el PIA fue cambiado al 68B21, que eran partes clasificadas para 2 MHz.

## El CoCo y la competencia

La competencia principal del CoCo eran los Commodore VIC-20 y Commodore 64 de Commodore International, y los Atari 400 y Atari 800 (y sucesores) de Atari. El Apple II podía considerarse como competencia pero era un sistema más costoso y de más alto nivel que cualesquiera de éstos, y no era realmente un competidor directo en el mercado de bajo nivel de 8 bits "listo para conectarse al TV".
Mientras que el CoCo quizás soportó el procesador de 8 bits más avanzado, esa potencia de procesamiento vino a un significativo precio. Para ser vendido a un precio competitivo, el costoso procesador del CoCo no estaba vinculado a ningún hardware especializado de video o sonido. En comparación, el procesador, derivado del 6502, en los sistemas Commodore y Atari eran mucho más económicos. Commodore y Atari habían invertido en gráficos avanzados y en el diseño del chip de sonido para ser usados en juegos de arcade y consolas de videojuego caseras. Usando estos circuitos especializados con un procesador barato, los sistemas de Atari y Commodore estaban capacitados para ejecutar juegos sofisticados con gráficos y sonido de alta calidad. Hay una compensación aquí: Un CPU costoso que hace mucho trabajo o un CPU barato que es suficiente para controlar los registros de su hardware de sonido y video.
Debemos recordar que el hardware de video del CoCo fue derivado de un chip diseñado para generar la exhibición de pantalla para un terminal basado en caracteres, y era un dispositivo completamente tonto. Similarmente el hardware de sonido era poco más que un DAC de 6 bits bajo control de software, e igualmente tonto. Todos los gráficos y sonidos requerían intervención directa del CPU, y mientras esto podía ser muy flexible, su desempeño era mucho más lento que hardware dedicado.
Los juegos condujeron ventas entonces como ahora, y con su desempeño pobre en juegos, el CoCo atrajo poco interés en traducciones oficialmente licenciadas de juegos populares. El CoCo 3 mejoró la capacidad gráfica y dobló el desempeño del CPU, pero todavía no tenía ninguna aceleración real de hardware. El hardware de sonido no fue cambiado en absoluto. Demasiado poco e inadecuada solución que vino demasiado tarde.
Cada plataforma de computador es un compromiso, y a pesar de la significativa desventaja de los gráficos y sonido que el CoCo pudo haber tenido, todavía tenía, debajo del capó, un sofisticado CPU con un rendimiento extremadamente alto. Había disponibles clones independiente de muchos juegos populares, pero mucho más importante fueron algunas de las "aplicaciones asesinas" para el CoCo.
Por ejemplo, el CoCo Max y el Max-10 eran clones del MacPaint y del MacWrite, respectivamente.
El sistema operativo OS-9 estaba también disponible, proporcionando al usuario un ambiente multitarea y multiuso similar a Unix.
Incluso el intérprete BASIC era uno de más poderosos disponibles, y proporcionó al usuario un rico conjunto de comandos fáciles de usar para manipular gráficos en la pantalla y reproducir sonidos. Uno pudiera argumentar que los usuarios del BASIC del Commodore y del Atari tenían dos comandos para gráficos y sonidos disponible para ellos: ¡PEEK y POKE!
Algunas de las limitaciones del hardware fueron superadas con Add-ons externos, particularmente cartuchos de expansión. Algunos fueron hechos por Tandy y algunos por otros fabricantes.
Como ejemplos tenemos:
* RS232 program pak, que proporcionó un UART RS-232 real mediante el MOS Technology 6551A
* El speech & sound pak, que proporcionó un sintetizador de voz y un chip generador de sonidos
* Adaptador de video de 80 columnas, que se conectaba a un monitor monocromático externo (no necesario para el CoCo 3)
* 200 baud MODEM pak, que proporcionaba un módem en un paquete integrado
* Advanced floppy and hard drive controllers, controladores para disquete y disco duro (sobre todo para el OS-9)
* y por supuesto, la interfaz Multi-Pak, que permitía que 4 dispositivos tales como éstos fueran unidos al sistema al mismo tiempo.

## La división del OS-9

Había una división importante, en dos grupos, de los usuarios del CoCo: los que usaban el sistema operativo OS-9 y los que "usaban" el Disk Extended Color BASIC (DECB) (Color BASIC Extendido de Disco). Las comillas están presentes porque muchas, si no la mayoría, de los programas para el CoCo que usaron el DECB en vez del OS-9, lo solamente usaron como un cargador y para la entrada/salida del disco, manejando directamente el hardware para todo lo demás, lo cual era muy malo porque hacía a los programas muy dependiente del hardware. Eso significó que no continuar con cada imperfección y atajo en el diseño original del CoCo rompería las aplicaciones que no fueran basadas en el OS-9, mientras que con OS-9 solamente se necesitaría rescribir los controladores de dispositivo. Este requisito percibido de compatibilidad total hacia atrás, para mantener compatibilidad con programas que tocaban directamente el hardware, destruyó casi totalmente por lo menos un intento de mejorar el CoCo. El "Tomcat" TC-9 de Frank Hogg se convirtió en un fracaso mientras Chris Burke estaba procurando hacer que simulara todos los detalles del hardware del CoCo, y probablemente los mató todos. Si hubiera un archivo de los mensajes del SIG OS-9 de CompuServe, cri de coeur de Kevin Darling, dirigido a los usuarios del DECB con la línea de sujeto "¡usted está matando al CoCo!" sería un enlace útil.
Tandy desperdició una oportunidad significativa, se debe recordar que el procesador 6809 de 1.8 MHz superaba fácilmente el 8088 de 4.77 MHz en la IBM PC original, y al Hitachi 6309 a 5 MHz.

## El fin del camino para el CoCo

El 26 de octubre de 1990, Ed Juge de Tandy anunció que el CoCo 3 sería retirado de su línea de computadores. Sin un sucesor aparente, el aviso desanimó a muchos aficionados leales del CoCo. Un dueño del CoCo fue tan lejos como escribir una carta al entonces presidente de Radio Shack, Bernie Appel. Para su sorpresa, el Sr. Appel lo llamó un día por teléfono para explicarle detalladamente el razonamiento para discontinuar el CoCo 3.
Incluso hoy en día, los dueños actuales y anteriores del CoCo están de acuerdo en que Tandy no tomó muy seriamente el CoCo, a pesar de haber sido su computador mejor vendida por varios años. Ellos fallaron en mercadear el CoCo como la máquina poderosa y útil que era, y no ofrecieron a los clientes ninguna indicación del mercado masivo de software/hardware de terceros que creció para llenar el vacío.
El lanzamiento del CoCo 3 fue particularmente deslustrado, a pesar de sus capacidades de gráficos grandemente mejoradas y del soporte para monitores RGB. Los folletos y los almacenes de Radio Shack por igual típicamente presentaron al CoCo 3 corriendo juegos del CoCo 2, y ofrecieron una muy limitada selección de software específico para aprovechar las nuevas habilidades del CoCo 3. Había una demostración oficial de Radio Shack para el CoCo3, pero pocos almacenes se molestaron en correrla.
Adicionalmente, cuando el CoCo 3 fue lanzado los precios de la DRAM se elevaron súbitamente, ¡haciendo la actualización de la memoria a 512K considerablemente más costosa que el CoCo 3 de 128K en sí mismo! Muy pocos almacenes exhibieron una máquina con 512K o un CoCo 3 corriendo juegos tales como Kings Quest o Leisure Suit Larry.

## Sucesores del CoCo (CoCo 4)

A pesar de la carencia evidente de preocupación de Tandy por el mercado del CoCo, había rumores de la existencia de un prototipo del CoCo 4 en los cuarteles de Fort Worth de Tandy. Varias historias de primera mano del prototipo vinieron de gente como Mark Siegel de Tandy y Ken Kaplan de Microware, con todo, no existe ninguna evidencia física conocida de tal máquina.
Algunas compañías independientes procuraron llevar la antorcha del CoCo, pero la carencia de una decente compatibilidad hacia atrás al CoCo 3 no permitió para atraer a gran parte de la comunidad del CoCo hacia estas nuevas plataformas independientes. Muchas de estas plataformas independientes corrieron el sistema operativo OS9/68k, que era muy similar al OS-9. Sin embargo la mayor parte de la comunidad del CoCo se trasladó hacia plataformas más corrientes. Algunos usuarios del CoCo juraron lealtad a Motorola y se trasladaron hacia el Commodore Amiga, el Atari ST, o aun al Macintosh, basados en el procesador de Motorola Motorola 68000. Otros saltaron al vagón de los Compatibles IBM PC.

### Tomcat

Los laboratorios Frank Hogg introdujeron el Tomcat TC-09 en junio de 1990, que fue algo compatible con el CoCo 3, pero principalmente solamente estaba capacitado para correr software para el OS-9. Una versión posterior, el TC-70, corriendo con un Signetics 68070, tenía fuerte compatibilidad con el MM/1, y también corrió el sistema operativo OS-9/68K.

### MM/1

El Multi-Media One fue introducido en julio de 1990, corrió el sistema operativo OS-9/68K en un procesador Signetics 68070 de 15 MHz con 3 MB de RAM. Tenía una resolución gráfica de 640x208 así como el soporte para un modo entrelazado de 640x416. Incluyó una interfaz SCSI, convertidor A/D y D/A estéreo, una interfaz opcional MIDI, y, más adelante, una tarjeta opcional para actualizar el CPU a un Motorola 68340 que corría hasta 25 MHz. Se estima que cerca de 200 unidades fueron vendidas.

### AT306

El AT306, también conocido como el MM/1B, fue un sucesor del MM/1 que tenía un CPU Motorola 68306 y fue diseñado para permitir el uso de tarjetas de bus ISA.

### Delmar System IV y Peripheral Technology PT68K-4

Peripheral Technology produjo un sistema Motorola 68000 de 16 MHz llamado PTK68K-4, que fue vendido como un kit o como tarjeta madre completa. Delmar vendió sistemas completos basados en el PT68K-4 y los llamó Delmar System IV. El PT68K-4 tenía el tamaño de la tarjeta madre de un IBM PC, así que cabía en una carcasa normal de PC, y además tenía siete ranuras ISA de 8 bits iguales a las de los computadores personales de IBM. El video fue proporcionado por monitores y tarjetas de video estándar de IBM como la monocromática, CGA, EGA o VGA, pero para gráficos de alta resolución, el software solo soportaba ciertas tarjetas de video ET4000. Parece que la mayoría de los usuarios de este sistema usó, o usa, el sistema operativo OS-9, pero hubo varios sistemas operativos para él, incluyendo el REX, un sistema operativo similar al FLEX, y el SK*DOS. Dan Farnsworth escribió el REX y un intérprete BASIC que era bastante compatible con el DECB, pero fue inadecuado y demasiado tarde para ser de interés a muchos usuarios del CoCo. También hubo disponible una tarjeta llamada ALT86, que era básicamente una computadora compatible con el IBM XT en una sola tarjeta, permitiendo que el usuario corriera programas de DOS sobre ella. De hecho, se podían correr programas para el 68000 y la tarjeta ALT86 al mismo tiempo, siempre y cuando no se necesitase acceso al bus ISA desde el 68000.

## Reflexiones y el CoCo en el siglo XXI

El CoCo tiene todavía una comunidad de usuarios pequeña pero activa.
La mayoría de los aficionados del CoCo se quejaban, y todavía se quejan, en voz alta de la carencia de soporte de Tandy.
De hecho, encontrar cualquier persona en un almacén de Radio Shack que supiera algo más que el precio de la computadora era una cuestión de suerte.
Sin embargo, también debemos recordar que los departamentos y las tiendas de juguetes que vendieron los Commodores y Ataris, probablemente, no eran mejores ni peores.
A pesar de (y de hecho, quizás debido a) la carencia de soporte corporativo para el sistema, se desarrolló una muy activa comunidad de terceros, apoyados principalmente por publicaciones relacionadas con el CoCo.
De éstas, la más popular y más duradera fue la revista The Rainbow, que ofreció productos de hardware de compañías tales como DISTO, del gurú del CoCo Tony DiStefano.
Muchos productos y mejoras que Tandy implementó pobremente o no implementó en absoluto estuvieron disponibles fácilmente. Quizás reconociendo la importancia de la base de lectores de la revista The Rainbow, muchos sistemas CoCo, incluyendo todos los CoCo3, se distribuían con información sobre la revista en sus cajas.
Incluso hoy en día, algunos individuos y pequeñas compañías todavía soportan el CoCo y están activamente desarrollando hardware y software para él. Compañías como Cloud-9 han llevado al CoCo 3 más allá de lo que muchos hubieran pensado posible, con cosas como controladores para discos duros IDE y SCSI, y actualizaciones de memoria hasta 2 megabytes.