Commodore C128
La Commodore 128 fue la última máquina de 8 bits comercializada por Commodore Business Machines (CBM). Presentada en enero de 1985 en el CES de Las Vegas, apareció tres años después de su predecesor, el exitoso Commodore C64. El diseñador principal del hardware de la C128 fue Bil Herd. Sus ventas rondaron alrededor de los 4 millones de unidades pero con escaso software propio y la aparición de los equipos de 16 bits como las Amiga y Atari ST, y con un marketing poco agresivo no consiguieron hacer de este ordenador un equipo realmente popular como su predecesor, la Commodore C64.
Diseño
En lugar de un solo microprocesador, la Commodore C128 incorpora un diseño de doble CPU. La primaria, un 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, para utilizar software del sistema operativo CP/M. Los dos procesadores no trabajan de manera simultánea. La 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
Commodore C64
, que es prácticamente compatible al 100% con la anterior HC.
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
Commodore C128DCR
(la versión desktop de la C128) es considerado único debido a que su placa madre soporta cuatro tipos diferentes de RAM: 128kB de RAM principal, 64kB de video RAM VDC, 1kB de RAM de color para el VIC-II, 2kB de RAM de la disquetera y entre 128kB y 512kB 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
Modo C128
Respecto a las capacidades gráficas de su predecesora este modo agrega el modo de 80 columnas, ya que si bien la pantalla de 40 columnas del VIC-II era excelente para juegos, podía ser inadecuada para aplicaciones de productividad como tratamiento de textos.
Se incorporó al BASIC 2.0 ya 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, por lo que un nuevo set de instrucciones reflejan con más precisión sus capacidades.
Además, el aumento de la capacidad de las unidades de disco en los mercados competidores, por lo que la diskettera
Commodore C1571
agregó un segundo cabezal para manejar el modo doble faz sin tener que voltear el diskette.
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
Commodore C1581
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 debuging 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
Modo CP/M
El segundo procesador 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
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. 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.
Fuente Wikipedia