# Commodore 128

La Commodore 128, también conocida como C128, C-128, C= 128, es la última computadora personal doméstica de ocho bits que Commodore Business Machines (CBM) lanzó al mercado. Presentada en enero de 1985 en el CES de Las Vegas, apareció tres años después que la Commodore 64, computadora más vendida de la década de 1980.
La C128 es una versión significativamente mejorada de la C64, con una compatibilidad casi total. La nueva máquina tiene 128 KB de RAM en dos bancos de 64 KB y una salida de video en color de ochenta columnas. Tiene una carcasa y un teclado rediseñados, lleva una CPU Zilog Z80 que le permite ejecutar CP/M, como alternativa al entorno Commodore BASIC habitual de Commodore. La presencia de la Z80 y la enorme biblioteca de software CP/M que aporta, sumada a la biblioteca de la C64, le dieron a la C128 una de las gamas más amplias de juegos y aplicaciones disponible entre sus competidores.
El diseñador principal de hardware del C128 fue Bil Herd, quien había trabajado en el Plus/4. Otros ingenieros de hardware fueron Dave Haynie y Frank Palaia, mientras que el trabajo de diseño de circuitos integrados estuvo a cargo de Dave DiOrio. El software principal del sistema Commodore fue desarrollado por Fred Bowen y Terry Ryan, mientras que el subsistema CP/M fue desarrollado por Von Ertwine.

## Descripción técnica

El C128 es un sucesor significativamente expandido del C64 y, a diferencia del anterior Plus/4, casi completamente compatible con el C64. Incluye 128 KB de RAM, en dos bancos de 64 KB y una salida de vídeo RGBI de 80 columnas (gestionada por el chip 8563 VDC con 16 KB de RAM de vídeo dedicado), al igual que una caja y un teclado sustancialmente rediseñados, el cual incluía cuatro teclas de cursores (los Commodore anteriores tenían dos, requiriendo pulsar mayúsculas para mover el cursor hacia arriba o a la izquierda), además de las teclas Alt, ayuda, escape, tabulador (no presente en los modelos anteriores) y un teclado numérico. La falta de teclado numérico, tecla Alt y tecla escape en el C64 era un problema con algunas programas de productividad en CP/M cuando se usaban con el cartucho Z80 del C64. Algunas de las teclas añadidas equivalen a las presentes en el teclado de la IBM PC. Mientras que el modo de 40 columnas del C128 duplica el del C64, 1 KB extra de RAM de color está disponible para los programadores, ya que está multiplexada en la dirección de memoria 1. La fuente de alimentación representa una gran mejora con respecto al diseño poco fiable de la fuente del C64, siendo más grande y equipada con un ventilador de refrigeración y un fusible reemplazable. En lugar de un solo microprocesador 6510 como en el C64, el C128 incorpora un diseño de doble CPU. La primaria, una 8502, es una versión ligeramente mejorada de la 6510, capaz de subir el reloj hasta 2 MHz. La segunda CPU es un Zilog Z80, que se usa para hacer funcionar software CP/M, al igual que para iniciar el modo de selección de sistema operativo durante el arranque. Los dos procesadores no pueden trabajar de manera simultánea, por lo que el C128 no es un sistema multiproceso. El C128 tiene tres modos operativos: modo C128 (modo nativo), en el que funciona a 1 o 2 MHz con la CPU 8502 y dispone de los modos de texto de 40 y 80 columnas; modo CP/M, que usa el Z80 en modo texto tanto de 40 como de 80 columnas y el modo C64, que es prácticamente compatible al 100 % con el anterior ordenador. La selección de estos modos está implementada a través del chip Z80, el cual controla el bus en el arranque inicial y comprueba si está presente algún cartucho C64/C128 y si la tecla Commodore (selector de modo C64) está activa durante el arranque. Basado en lo que encuentra, cambiará al modo de operación apropiado.
El C128D es considerado único debido a que su placa madre soporta cuatro tipos diferentes de RAM:
* 128 KB de RAM principal;
* 64 KB de video RAM VDC;
* 2 Knibbles de RAM de color para el VIC-II;
* 2 KB de RAM de la disquetera;
* entre 128 y 512 KB de RAM REU.
Además de 3 procesadores (8502 como principal, Z80 para CP/M y un 6502 para la disquetera) y dos chips de vídeo diferentes (VIC-IIe y VDC).

### Modo C128

Mientras las capacidades gráficas y de sonido del C64 eran consideradas generalmente excelentes, los operativos de marketing en la dirección de Commodore estaban preocupados por sostener (si no prolongar) el atractivo de los ordenadores caseros entre los no-programadores. Estos operativos sintieron que el la pantalla de 40 columnas del VIC-II, aunque excelente para juegos, podía ser inadecuada para aplicaciones de productividad como tratamiento de textos. Además, sentían que las nuevas capacidades de sonido y gráficos tendrían un manejo pesado si se controlaban exclusivamente a través de las instrucciones estándar POKE y PEEK, así que se embarcaron en reescribir el BASIC 2.0 para que tuviera instrucciones que reflejaran con más precisión sus capacidades. Además, el aumento de la capacidad de las unidades de disco en los mercados competidores (como las dedicadas a los compatibles PC y los Apple) llevó a los oficiales de alto rango de Commodore a preocuparse por el siguiente paso. Los diseñadores de la C128 tuvieron éxito en resolver la mayoría de esas preocupaciones. Un nuevo chip, el VDC, provee al C128 con una pantalla de 80 columnas compatible con la norma CGA (también llamada RGBI por Red-Green-Blue-Intensity, rojo-verde-azul-intensidad). El nuevo microprocesador 8502 es completamente retrocompatible con el 6510 del C64, pero puede funcionar al doble de velocidad si se desea. Aun así, el chip VIC-II que controla la pantalla de 40 columnas no puede operar a la mayor velocidad de reloj, así que la pantalla de 40 columnas aparece distorsionada en modo FAST. En el modo 80 columnas, el editor toma ventaja de las características del VDC para permitir texto parpadeante y subrayado, activado mediante códigos de escape. Los modos de 40 y 80 columnas son independientes y pueden estar activos a la vez. Un programador con una pantalla de vídeo compuesto y otra RGB podría usar una de las pantallas como "bloc de notas". La pantalla activa puede ser intercambiada con ESC-X. Se añadió un botón de reset al sistema. El BASIC 2.0 del C64 fue reemplazado por el BASIC 7.0, que incluye instrucciones diseñadas específicamente para usar las ventajas de la máquina. Un editor de sprites y un monitor de código máquina fueron añadidos posteriormente para beneficio de los programadores . La parte del editor de pantalla del kernel fue mejorada aún más para soportar un sistema de ventanas rudimentario y fue relocalizada en una ROM separada. En modo 80 columnas el editor hace uso de las mejoras del VDC para permitir el parpadeo y subrayado de texto, activado mediante códigos de escape. Un botón de reinicio fue añadido al sistema. Dos nuevas unidades de disco fueron presentadas junto con la C128: la efímera 1570 y la 1571. Más adelante, se presentó la unidad 1581 de 3'5 pulgadas. Todas estas unidades son más fiables que la 1541 y prometían unas mejores prestaciones mediante un modo ráfaga. La unidad 1581 también tiene más RAM en placa que sus predecesores, haciendo posible abrir un mayor número de ficheros simultáneamente. El C128 también tiene el doble de RAM que el C64 y una mayor proporción está disponible para la programación en BASIC, debido al chip MMU con cambio de bancos. Esto permite que el código de los programas BASIC sean almacenado por separado de las variables, mejorando mucho la habilidad de la máquina para manejar programas complejos, acelerando la recolección de basura y facilitando el despulgamiento para los programadores. Un programa en ejecución puede recibir un STOP, inspeccionar la variables o alterarlas en modo directo y la ejecución se continúa usando la instrucción BASIC GOTO. La ROM del C128 contiene un huevo de Pascua: Introduciendo el comando "SYS 32800,123,45,6" en modo nativo, revela una pantalla de 40 columnas con un listado y un mensaje de los desarrolladores principales de la máquina. También escribiendo las instrucciones QUIT u OFF, produce un "?UNIMPLEMENTED COMMAND ERROR". Estas instrucciones existen en previsión de un ordenador portátil con pantalla LCD nunca producido y están pensados para salir del intérprete BASIC e ignorar el teclado durante la ejecución de programas sensibles, respectivamente. Las mayores capacidades del hardware del C128, especialmente el incremento de la RAM, la resolución de pantalla y la velocidad del bus serial, la convirtieron en la plataforma preferida para usar el sistema operativo gráfico GEOS.

### Modo CP/M

El segundo de los dos procesadores es el Zilog Z80, el cual permite al C128 funcionar en CP/M. El C128 fue vendido con CP/M 3.0 (también conocido como CP/M Plus, retrocompatible con CP/M 2.2) y el emulador del terminal ADM31/3A. Un cartucho con el CP/M ya estaba disponible para el C64, pero era caro y está limitado a los programas en discos con formato Commodore. Para tener disponible una gran biblioteca de aplicaciones instantáneamente en su lanzamiento, el CP/M del C128 y su unidad de disquetes 1571 fueron diseñadas para leer casi todos los programas en CP/M específicos de Kaypro sin modificaciones. Desafortunadamente, el C128 era notablemente más lento trabajando en CP/M que la mayoría de sistemas CP/M dedicados, ya que el procesador Z80 funcionaba a una velocidad efectiva de solo 2 MHz (en lugar de los más comunes 4 MHz) y a su uso de CP/M 3.0, cuya complejidad lo hace inherentemente más lento que el anterior y más extendido sistema CP/M 2.2. A partir del código fuente de la implementación de CP/M para el C128, queda claro que los ingenieros planearon originalmente que fuera posible hacer funcionar a CP/M también en el modo "rápido", con la salida de 40 columnas desconectada y el Z80 funcionando a una velocidad efectiva de 4 MHz. A pesar de ello, esta característica no funcionó correctamente en la primera generación del C128. Una característica inusual del C128 entre los sistemas CP/M es que algunos de los servicios de bajo nivel de la BIOS son ejecutados por el 8502 en lugar de por el Z80. Este le transfiere el control al 8502 después de situar los parámetros pertinentes en las posiciones de memoria designadas. El Z80 se apaga entonces, siendo despertado por el 8502 al completar la rutina de la BIOS, con el/los valor/es de estado disponibles en la RAM para su inspección. El CP/M fue posiblemente el menos usado de los tres posibles modos de operación. Pensado para darle al nuevo ordenador una gran librería de programas de grado profesional, los cuales no tenía Commodore, el CP/M ya había pasado hacía tiempo su mejor momento cuando se presentó el C128. Además, CP/M es muy diferente del Commodore DOS incluido en la ROM de las unidades de disco.

### Modo C64

Incorporando completamente el BASIC original del C64 y el kernel, el C128 consigue prácticamente el 100 % de compatibilidad con el Commodore 64. El modo 64 puede ser accedido de tres maneras:
* Manteniendo pulsada la tecla con el logo Commodore cuando arranca el sistema;
* Entrar el comando GO64 en el BASIC 7.0.;
* Arrancar con un cartucho C64 conectado.
Poner a tierra las líneas /EXROM y/o /GAME del puerto del cartucho hacer que el ordenador automáticamente inicie en el modo C64. Esta característica duplica fielmente el comportamiento del C64 cuando un cartucho (como el BASIC de Simons) es enchufado en el puerto y activa esas dos líneas; pero, a diferencia del C64, donde el cambio del mapeado de memoria de estas líneas se realiza directamente en hardware, el firmware de arranque del Z80 del C128 comprueba las líneas al arrancar y entonces cambia de modo según sea necesario. Los cartuchos de modo nativo C128 son reconocidos e iniciados por la comprobación del kernel en las posiciones definidas en el mapa de memoria. El modo C64 casi duplica exactamente las características del hardware del C64. Muchas de las características adicionales del C128 están desactivadas o no disponibles en este modo. La pantalla de 80 columnas, el modo rápido, la MMU y el BASIC 7.0 no están disponible en este modo. Las 4 teclas de cursor en la parte superior del teclado no se reconocen, obligando al usuario a usar la incómoda disposición mediante mayúsculas del C64, que están incluidas en la parte inferior del teclado. También se ignoran el teclado numérico y la fila superior de teclas, excluyendo las teclas F1 a F8. Algunas de estas características pueden ser reactivadas mediante programas, pero los programas comerciales las ignorarían. Algunos de los pocos programas del C64 que fallan en un C128 funcionan correctamente cuando se pulsa la tecla CAPS LOCK (o la tecla ASCII/Nacional en los modelos internacionales del C128). Esto tiene que ver con el mayor puerto E/S de la CPU del C128. Donde la tecla SHIFT LOCK presente en ambas máquinas es simplemente una parte mecánica que bloquea la tecla SHIFT izquierda, la tecla CAPS LOCK en el C128 puede ser leída mediante el puerto E/S incluido en el 8502. Algunos programas del C64 se confunden con este bit de E/S extra, manteniendo la tecla CAPS LOCK pulsada se fuerza la línea de E/S, igualando la configuración del C64 y resolviendo el problema. Un puñado de programas del C64 que escriben en $D030 (53296), a menudo como parte del bucle de inicio de los registros del chip VIC-II. Este registro de mapeo de memoria, no usado en el C64, determinado por la velocidad del reloj del sistema. Debido a que este registro ya es completamente funcional en el modo C64, una escritura inadvertida podría contaminar la pantalla de 40 columnas al cambiar la CPU a 2 MHz, en la cual la velocidad del reloj del procesador de vídeo VIC-II no puede producir una pantalla coherente. Afortunadamente, muchos programas sufren este fallo. En julio de 1986, COMPUTE!'s Gazette publicó un programa escrito que explotaba esta diferencia usando una matriz de interrupciones para permitir el modo rápido cuando se alcanza la parte inferior de la pantalla visible y entonces desactivarlo cuando el retrazado de la pantalla vuelve a empezar en la parte superior. Usando el reloj más alto durante el periodo de retorno vertical, la pantalla de vídeo estándar se mantiene mientras se aumenta la velocidad de ejecución en un 20 %. Un modo de diferenciar entre un C64 y un C128 operando en modo C64, típicamente usado desde dentro de un programa en funcionamiento, es escribir un valor diferente a $FF (255) en la dirección $D02F, un registro que es usado para decodificar las teclas extra del C128 (el teclado numérico y algunas otras teclas). En el C64 esta localización de memoria siempre contiene el valor $FF, sin importar lo que se escriba en él, pero en un C128 en modo C64, el valor de la localización (un registro de mapeo de memoria) puede ser cambiado. Así, comprobar el valor de la posición después de escribir en él revelará la verdadera plataforma de hardware.

### Ajustes de la RAM

Para manejar la relativamente grande cantidad de ROM y RAM, diez veces el espacio de direcciones de 64 KB del 8502, el C128 usa la MMU 8722 para crear diferentes mapas de memoria, en los que diferentes combinaciones de RAM y ROM son mostradas dependiendo del patrón de bits escrito en el registro de configuración de la MMU en la dirección de memoria $FF00. Las unidades de expansión de RAM de Commodore utilizan un controlador DMA externo para escribir y leer uno o más bytes (hasta rangos completos de bytes) entre la memoria RAM del C128 y la RAM de la unidad de expansión. Otra característica de la MMU es que permite relocalizar la página cero y la pila, gracias al registro de Página Directa.
La compleja arquitectura del C128 incluye cuatro tipos de acceso diferente a la RAM (128 kB de RAM principal, 64 kB VDC de Video RAM, 2 kNibbles de la RAM del VIC-II Color, 2 kB de RAM de la disquetera, 128 o 512 kB de RAM de la REU), dos CPUs (la 8502 principal, la Z80 para el CP/M; el 128D también incorpora un 6502 en la unidad de disco) y dos chips de vídeo diferentes (VIC-IIe y VDC) para sus variados modos de operación.

## Commodore 128D

A finales de 1985 Commodore lanzó al mercado europeo una nueva versión del C128 con un chasis rediseñado. Llamado Commodore 128D, este nuevo modelo europeo presenta un chasis de plástico con un asa de transporte en un costado, incorporando una unidad de disco 1571 en el chasis principal, reemplaza el teclado integrado por uno separable y añade un ventilador de refrigeración. El teclado incluye dos patas plegables para cambiar el ángulo de escritura. En la última parte de 1986, Commodore lanzó una versión del C128D en Estados Unidos y Europa llamada C128DCR (cost reduced, coste reducido). El modelo DCR incluye un chasis de acero estampado en lugar de la versión de plástico del C128D (sin asa de transporte), una fuente de alimentación modular similar a la incluida con el C128D, al igual que un teclado separado y una disquetera 1571. En la placa madre, Commodore consolidó algunos de los componentes para ahorrar costes de producción y reemplazó el controlador de vídeo 8563 con el técnicamente más avanzado MOS Technology 8568 (también incluido en los algunos modelos posteriores de C128D). Como medida de ahorro, el ventilador de refrigeración que integraba el modelo D fue eliminado, aunque los enganches en la fuente de alimentación se mantuvieron. Internamente, la ROM del C128CDR, llamada "ROM 1986" por la fecha de copyright mostrada en la pantalla de inicio, contiene muchas correcciones de errores, incluyendo el famoso donde el carácter 'Q' se mantiene como minúscula cuando CAPS LOCK está activo y el 8568 VDC está equipado con 64KB de RAM de vídeo, el máximo direccionable, igual a cuatro veces lo que el C128 original. El incremento en RAM de vídeo hizo posible, entre otras cosas, generar gráficos de alta resolución con una paleta de color más flexible, aunque poco software comercial saco ventaja de esta capacidad. A pesar de las mejoras en las capacidades de vídeo RGB, Commodore no actualizó el BASIC 7.0 con la posibilidad de manipular gráficos RGB. Manejar el VDC en modo gráfico continuó requiriendo el uso de llamadas a primitivas del editor de pantalla en ROM (o sus equivalentes en ensamblador), o usando extensiones de terceros del BASIC. La extensión más popular fue el "BASIC 8" de Free Spirit Software, que añadió comandos para gráficos VDC de alta resolución al BASIC 7.0. BASIC 8 estaba disponible en dos discos (disco de editor y disco de runtime) y con un chip ROM para instalación en el zócalo de ROM de funciones interno del C128.

## Resultado en el mercado

Debido a que el C128 puede hacer funcionar virtualmente todo el software del C64 y con la siguiente generación, los ordenadores caseros de 16 y 32 bits, principalmente el Commodore Amiga y el Atari ST, ganando terreno, se creó relativamente poco software para el modo nativo del C128 (probablemente del orden de 100 a 200 títulos comerciales, más los programas en dominio público y escritos en las revistas) Mientras el C128 vendió 4 millones de unidades entre 1985 y 1989, su popularidad palidece en comparación con la de su predecesor. De esto se culpó a la falta de software nativo y al marketing menos agresivo de Commodore, enfocado mayormente en el Amiga en ese tiempo. Una explicación adicional puede encontrarse en el hecho de que el C64 vendió muchas unidades a la gente interesada principalmente en videojuegos, a los que la cara C128 no les daba demasiado valor como para actualizar. Unas pocas aventuras de Infocom tomaron ventaja de la pantalla de 80 columnas e incrementaron la capacidad de memoria y unos cuantos juegos del C64 fueron portados de manera nativa, como Kickstart 2 y The Last V8 de Mastertonic y Ultima V de Origin Systems, pero la mayoría de juegos funcionaban en modo 64. El C128 fue ciertamente una mejor máquina de negocios que el C64, pero no mucho mejor como máquina de juegos y la gente que quería una máquina para negocios compraba los compatibles IBM PC casi en exclusiva durante el tiempo en que el C128 fue vendido. Con su lenguaje de programación BASIC avanzado, su compatibilidad con CP/M y sus paquetes de software nativo "amistosos con el usuario" como Jane, Commodore intentó crear un mercado para negocios pequeños para el C128, incluso marcando "Personal Computer" en la caja, pero esta estrategia no tuvo éxito frente a sus contemporáneas compatibles IBM PC de bajo coste, como la Leading Edge Model D y la Tandy 1000 que, en algunos casos, se vendían por menos que un sistema C128 completo. Hubo un programa CAD profesional, Home Designer de BRiWALL, pero de nuevo, la mayor parte de ese trabajo se hacía en PC durante la vida comercial del C128. La principal razón por la que se mantuvieron las ventas del C128 bastante bien fue probablemente porque era una máquina mejor para los aficionados a la programación que el C64. También, cuando el C128(D/DCR) paró su producción en 1989, se informó que los costes de manufacturarlo igualaban los del Amiga 500, aunque el C128D tenía que venderse por cientos de dólares menos para dejar la imagen del Amiga como tope de gama intacta. Bil Herd ha indicado que los objetivos de diseño del 128 no incluían inicialmente la compatibilidad al 100 % con el C64. Alguna forma de compatibilidad se intentó después de que Herd fuera contactado durante la presentación del Plus/4 por una mujer decepcionada porque los paquetes de software educativo que había escrito para el C64 no fueran a funcionar en el nuevo ordenador de Commodore. Más tarde, el departamento de marketing de Commodore demandó una compatibilidad total. Herd dio como razón para incluir un procesador Z80 en el C128 para asegurar la compatibilidad al 100 %, debido a que el soporte para el cartucho del Z80 del C64 hubiera significado que el C128 tendría que haber suministrado energía adicional al puerto de cartuchos. También indicó que el chip de vídeo VDC y el Z80 eran fuentes de problemas durante el diseño de la máquina. Herd añadió que "sólo esperaba que el C128 se vendiera durante un año, nos imaginamos que un par de millones estarían bien y, por supuesto, no minaría al Amiga o incluso al C64".

### Problemas de fiabilidad

Las primeras versiones del C128 ocasionalmente experimentaban problemas de fiabilidad causados por la temperatura, debido al uso de una protección electromagnética sobre la placa principal. La protección está equipada con apoyos que tocan la parte superior de los chips principales, causando que la protección actúe como un gran disipador térmico. Una combinación de falta de contacto entre la protección y los chips, la limitada conductividad térmica inherente a los empaquetados plásticos de los chips, al igual que la relativamente pobre conductividad térmica de la protección misma (que está hecha de mu-metal), daba como resultado un sobrecalentamiento y en algunos casos fallos. El chip de sonido SID es particularmente vulnerable a este problema. El remedio más común es quitar la protección, la cual Commodore solo añadió para cumplir con las regulaciones de radiofrecuencia de la FCC. El BASIC 7.0 del Commodore 128, el lenguaje de programación que viene incluido en el ordenador, puede colgarse o provocar un reinicio ejecutando PRINT""+-0. Este bug está presente en todas las máquinas Commodore de 8 bits.

## Especificaciones

* CPUs:
** MOS Technology 8502 @ 2 MHz (1 MHz seleccionable para el modo compatibilidad con la C64)
** Zilog Z80 @ 4 MHz (funcionando efectivamente a 2 MHz debido al estado de espera para permitir al chip de vídeo VIC-II acceder al bus del sistema)
** (C128D(CR)): MOS Technology 6502 para el controlador de disquetera integrado
* MMU: La unidad de gestión de memoria controla la selección del procesador 8502/Z80, los bancos de ROM/RAM, las áreas comunes de RAM, la relocalización de la página cero y la pila
* RAM: 128 KB de RAM de sistema, 2 KB de 4 bits de RAM de color dedicada (para el VIC-II E), 16 KB o 64 KB de RAM de vídeo dedicada (para el VDC), hasta 512 KB de expansión de RAM REU.
* ROM: 72 KB
** 28 KB para el BASIC 7.0
** 4 KB para el MLM
** 8 KB del KERNAL de la C128
** 4 KB para el editor de pantalla
** 4 KB para el BIOS del Z80
** 16 KB para la RAM del modo C64: ≈9 KB C64 BASIC 2.0 + ≈7 KB C64 KERNAL
** 4 KB para el generador de caracteres del modo C64 (o international)
** 4 KB para el generador de caracteres del modo C128 (o nacional) — expandible mediante 32 KB de ROM de funciones internas (opcional; para inserción en zócalo de la placa madre) y/o 32 KB de ROM de función externa (opcional; para inserción en el zócalo REU).
* Vídeo:
** MOS 8564/8566 VIC-II E (NTSC/PAL) para vídeo compuesto de 40 columnas (se puede usar una TV en lugar de un monitor)
*** Acceso directo a los registro mediante memoria de E/S mapeada
*** Modo texto: 40×25, 16 colores
*** Modos gráficos modes: 160×200, 320×200
*** 8 sprites por hardware
*** 2 KB de RAM de color dedicada de 4 bits, en otro caso usa memoria principal como RAM de vídeo
** MOS 8563 VDC (o, en la C128DCR, the 8568) para vídeo por componentes RGBI digital de 80 columnas, compatible con los monitores CGA de las IBM PC, la pantalla monocroma también está disponible en monitores con vídeo compuesto; utilizable con una TV solo si esta tiene un conector SCART y/o conexiones de TV por cable, además de por antena. El color es posible a través del SCART, solo el monocromo va por la conexión por cable
*** Acceso indirecto a los registros (registro de direcciones, registro de datos en memoria mapeada)
*** Modo texto: Completamente programable, típicamente 80×25 u 80x50, 16 colores RGBI (no la misma paleta que el VIC-II)
*** Modos gráficos: Completamente programable, modos típicos son 320x200, 640×200, and 640×400 (entrelazados)
*** 16 KB de RAM de vídeo dedicada (64 KB en la C128DCR, la C128/C128D puede ser actualizada a 64 KB), accesible a la CPU solo en un método indirecto doble (registro de dirección, registro de datos en el VDC, que a su vez son direccionados a través del registro de dirección, registro de datos en memoria mapeada)
*** Funcionalidad de blitter limitada
* Sonido:
** Chip sintetizador MOS 6581 SID (o, en la C128DCR, el MOS 8580 SID)
*** 3 voces con ADSR controlable
*** Formas de onda estándar del SID (triángulo, sierra, pulso variable, ruido y algunos modos combinados)
*** Filtro de audio multimodo
*** 3 moduladores en anillo
*** Versión de coste y ruido reducidos del MOS 6581 de la C64; algunas C128 iniciales tenían en realidad el 6581
* Puertos de E/S:
** Todas los puertos de la Commodore 64 con 100 % de compatibilidad, más los siguientes:
** Mayor velocidad en el modo ráfaga en el bus serie
** Puerto de expansión programable más flexible
** Salida de vídeo RGBI (conector DE9) lógicamente similar al conector CGA de la IBM PC, pero con una señal compuesta monocroma añadida. Esta señal añadida causa una pequeña incompatibilidad con ciertos monitores CGA que puede ser rectificada eliminando la patilla 7 del conector en un extremo del cable de conexión
** Entrada de teclado externa DB25 (solo en la C128D(CR))