La Commodore 128, también conocida como C128, C-128, C= 128,«C=» representa la parte gráfica del logo. 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 KB 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 en 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 right|thumb|Usar el modo CP/M requiere el uso de un disquete de arranque 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.