El Commodore 128 , también conocido como C128 , C-128 o C= 128 (la "C=" representa la parte gráfica del logotipo), es el último ordenador doméstico de 8 bits que lanzó comercialmente Commodore Business Machines (CBM). Presentado en enero de 1985 en el CES de Las Vegas , apareció tres años después de su predecesor, el Commodore 64 , el ordenador más vendido de la década de 1980. Se vendieron aproximadamente 2,5 millones de C128 durante sus cuatro años de producción.
El C128 es un sucesor significativamente ampliado del C64, con una compatibilidad casi total. Está alojado en una carcasa rediseñada con un teclado mejorado que incluye un teclado numérico y teclas de función . La memoria se amplió a 128 KB de RAM en dos bancos de 64 KB. Un chip gráfico independiente proporcionó una salida de video en color de 80 columnas además de los modos originales del C64. También incluía una CPU Zilog Z80 que permite al C128 ejecutar CP/M , como una alternativa al entorno habitual de Commodore BASIC . La enorme biblioteca de software CP/M, junto con la biblioteca de software del C64, le dio al C128 una de las gamas más amplias de software disponibles entre sus competidores.
El diseñador principal del hardware del C128 fue Bil Herd , que 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 fue realizado por 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.
La compleja arquitectura del C128 [2] [3] incluye cuatro tipos de RAM a los que se accede de forma diferente (128 KB de RAM principal, 16–64 KB de RAM de vídeo VDC, 2 kNibbles de RAM VIC-II Color, 2 KB de RAM de disquete en los C128D, 0, 128 o 512 KB de RAM REU ) [ verificación fallida ] , dos o tres CPU (principal: 8502, Z80 para 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 diversos modos operativos. [4] [5]
El C128 no realiza una prueba de RAM del sistema al encenderse como las máquinas Commodore anteriores. [ cita requerida ] En lugar del único microprocesador 6510 del C64, el C128 incorpora un diseño de dos CPU. La CPU principal, la 8502 , es una versión ligeramente mejorada de la 6510, capaz de alcanzar una velocidad de reloj de 2 MHz . La segunda CPU es una Zilog Z80 que se utiliza para ejecutar el software CP/M, así como para iniciar la selección del modo operativo en el momento del arranque.
El teclado del C128 incluye cuatro teclas de cursor , Alt, , y y un teclado numérico. Ninguna de estas teclas estaba presente en el C64, que solo tenía dos teclas de cursor, lo que requería el uso de la tecla para mover el cursor hacia arriba o hacia la izquierda. Esta disposición alternativa se mantuvo en el 128, para su uso en el modo C64. [6] La falta de un teclado numérico, , y en el C64 era un problema con algunos programas de productividad CP/M cuando se usaban con el cartucho Z80 del C64. Muchos propietarios de C64 solicitaban un teclado numérico que pasaban largas horas ingresando programas de escritura en lenguaje de máquina . [7] Muchas de las teclas agregadas coincidían con las contrapartes presentes en el teclado del IBM PC y hacían que la nueva computadora fuera más atractiva para los desarrolladores de software empresarial. [8] Si bien el modo de 40 columnas del 128 duplica de cerca el del C64, se pone a disposición del programador 1K adicional de RAM de color, ya que se multiplexa a través de la dirección de memoria 1. [ cita requerida ]HelpEscTab ↹⇧ ShiftAltEsc
El diseño de la fuente de alimentación del C128 es diferente al del C64. Aunque es mucho más grande, la nueva fuente de alimentación está equipada con rejillas de ventilación y un fusible reemplazable. [ cita requerida ]
Las primeras versiones del C128 ocasionalmente experimentan problemas de confiabilidad relacionados con la temperatura debido al uso de un protector de RF sobre la placa de circuito principal. El protector estaba equipado con dedos que contactaban con las partes superiores de los chips principales, lo que aparentemente hacía que el protector actuara como un gran disipador de calor . Una combinación de mal contacto entre el protector y los chips, la conductividad térmica inherentemente limitada de los paquetes de chips de plástico, así como la conductividad térmica relativamente pobre del propio protector, resultó en sobrecalentamiento y falla en algunos casos. El chip de sonido SID es particularmente vulnerable a este respecto. El remedio más común es quitar el protector, que Commodore había agregado tarde en el desarrollo para cumplir con las regulaciones de radiofrecuencia de la FCC . [ investigación original? ]
El C128 tiene tres modos de funcionamiento . El modo C128 ( modo nativo ) funciona a 1 o 2 MHz con la CPU 8502 y tiene disponibles modos de texto de 40 y 80 columnas . El modo CP/M utiliza tanto el Z80 como el 8502, [9] y puede funcionar en modo de texto de 40 y 80 columnas. El modo C64 es casi 100 por ciento compatible con la computadora anterior. La selección de estos modos se implementa a través del chip Z80. El Z80 controla el bus en el arranque inicial y verifica si hay un disco CP/M en la unidad, si hay cartuchos C64/C128 presentes o si se presiona la tecla Commodore (que sirve como selector de modo C64) en el arranque. Según estas condiciones, cambiará al modo de operación apropiado. [ cita requerida ]
En 1984, un año antes del lanzamiento del Commodore 128, Commodore lanzó el Plus/4. Aunque estaba dirigido a un mercado empresarial de gama baja que no podía permitirse el coste relativamente alto y los requisitos de formación de los primeros IBM PC compatibles, la prensa de Commodore lo percibió como una continuación del 64 y se esperaba que mejorara las capacidades de ese modelo. Aunque las capacidades gráficas y de sonido del C64 se consideraron excelentes en general, la respuesta al Plus/4 fue de decepción. Tras la introducción del Plus/4, la prensa de Commodore hizo repetidas recomendaciones para un nuevo ordenador llamado "C-128" con mayor capacidad de RAM, una pantalla de 80 columnas como era estándar en los ordenadores empresariales, un nuevo lenguaje de programación BASIC que facilitaba a los programadores el uso de los gráficos y el sonido del ordenador sin recurrir a PEEK y POKEs , una nueva unidad de disco que mejoraba la pésima velocidad de transferencia del 1541 , así como una compatibilidad total con el C64. [10] [11]
Un nuevo chip, el VDC , proporciona al C128 una pantalla de 80 columnas compatible con CGA (también llamada RGBI para rojo-verde-azul más intensidad ). El entonces nuevo microprocesador 8502 es completamente compatible con el 6510 del C64, pero puede funcionar al doble de velocidad si se desea. El Commodore BASIC 2.0 del C64 fue reemplazado por BASIC 7.0, que incluye comandos de programación estructurada del BASIC 3.5 del Plus/4, así como palabras clave diseñadas específicamente para aprovechar las capacidades de la máquina. Se agregaron un editor de sprites y un monitor de lenguaje de máquina . La parte del editor de pantalla del Kernal se mejoró aún más para admitir un modo de inserción y otras funciones a las que se accede mediante combinaciones de teclas ESC, así como una función de ventanas rudimentaria, y se reubicó en una ROM separada . El chip VIC-II que controla la pantalla de 40 columnas solo puede funcionar a 1 MHz, por lo que la pantalla de 40 columnas aparece desordenada en FAST
el modo. En el modo de 80 columnas, el editor aprovecha las características de VDC para proporcionar texto parpadeante y subrayado, activado a través de códigos de escape , además del texto inverso estándar de Commodore. [12] El modo de 80 columnas del C128 puede mostrar caracteres en minúscula junto con caracteres gráficos PETSCII ; el modo de 40 columnas está sujeto a la misma restricción de "mayúsculas y minúsculas" o "mayúsculas más gráficos" que los Commodores anteriores. [13] Los modos de 40 y 80 columnas son independientes y ambos pueden estar activos al mismo tiempo. Un programador con una pantalla compuesta y RGB puede usar una de las pantallas como un "bloc de notas" o para un soporte rudimentario de múltiples búferes. La pantalla activa se puede cambiar con ESC-X. [14] Se agregó un botón de reinicio de hardware al sistema. Sin embargo, el teclado no se modificó al diseño Selectric como se había vuelto estándar, sino que mantuvo el mismo diseño derivado del ADM-3A que tenían los modelos anteriores de Commodore.
Los modelos NTSC C128 funcionan con cualquier monitor tipo CGA (TTL RGB a 15 kHz/60 Hz), como el IBM 5153. Sin embargo, los modelos PAL del C128 funcionan a 50 Hz y no son compatibles con la mayoría de los monitores CGA, que esperan una frecuencia de actualización de 60 Hz.
Junto con el C128 se introdujeron dos nuevas unidades de disco: la efímera 1570 de un solo lado y la 1571 de dos lados . Se anunció un modelo 1572 de dos discos, pero nunca se fabricó. Más tarde, se introdujo la 1581 de 3,5 pulgadas. [ cita requerida ] La unidad 1581 también tiene más RAM integrada que sus predecesoras, lo que permite abrir una mayor cantidad de archivos a la vez. BASIC 7.0 incluye comandos DLOAD
y DSAVE
para soportar la carga y el guardado en disco sin usar el ,8
u otro número de dispositivo, y también un DIRECTORY
comando que lee la información del catálogo de un disco directamente en la memoria de pantalla sin sobrescribir la memoria BASIC como en BASIC 2.0. Además, el C128 introduce el arranque automático del software de disco, una característica estándar en la mayoría de las computadoras personales, pero ausente en las máquinas Commodore hasta ese momento. Los usuarios ya no tienen que escribir LOAD"*",8,1
. BASIC también agregó un COLLECT
comando para eliminar archivos "splat" (archivos que no se cerraron correctamente y se truncaron a longitud cero). [ cita requerida ]
Normalmente, todas las unidades 1571 se iniciarán en modo nativo en el C128. Si el usuario cambia al modo C64 escribiendo GO 64
, la unidad permanece en modo nativo. Pero si se activa el modo C64 manteniendo presionada la tecla Commodore al encender, el 1571 pasa al modo 1541. Esta rutina es necesaria para el software que realiza acceso de bajo nivel a la unidad. [ cita requerida ]
El C128 tiene el doble de RAM que el C64, una proporción mucho mayor de la cual está disponible para programación BASIC, debido al nuevo chip de conmutación de bancos MMU . Esto permite que el código de programa BASIC se almacene por separado de las variables, mejorando en gran medida la capacidad de la máquina para manejar programas complejos, acelerando la recolección de basura y facilitando la depuración para el programador. Se puede STOP
ejecutar un programa en ejecución, editar su código, inspeccionar o alterar los valores de las variables en modo directo y reanudar la ejecución del programa con la tabla de variables intacta utilizando el comando BASIC GOTO
. [15] Aunque otros BASIC admiten el CONT
comando para reiniciar la ejecución sin borrar las variables, editar cualquier código hace que se borren. [16] Se pueden cargar diferentes configuraciones de memoria utilizando el comando BASIC BANK
. [ cita requerida ]
BASIC 7.0 tiene un conjunto completo de comandos de manejo de gráficos y sonido, así como los comandos de disco de BASIC 4.0 y una limpieza de basura mejorada, y soporte para programación estructurada a través de bucles IF...THEN...ELSE, DO...WHILE
, y . [ cita requerida ]WHILE...WEND
En el lado negativo, BASIC 7.0 funcionaba considerablemente más lento que BASIC 2.0 a menos que se utilizara el modo de 2 MHz debido a su tamaño de 28 KB (un aumento del 250% sobre BASIC 2.0) y a la necesidad de cambiar de banco para acceder a las variables del programa y al texto del programa BASIC (si tenía una longitud mayor a 16k). [ cita requerida ]
La ROM del 128 contiene un huevo de Pascua : al introducir el comando SYS 32800,123,45,6
en modo nativo se muestra una pantalla con una lista de los desarrolladores principales de la máquina seguida del mensaje Link arms, don't make them."
Además, al introducir las palabras clave QUIT
o OFF
se producirá un ?UNIMPLEMENTED COMMAND ERROR
. Estos comandos son remanentes del intérprete BASIC destinado a una computadora portátil LCD planificada pero nunca producida y estaban destinados a salir del intérprete BASIC e ignorar la entrada del teclado durante la ejecución de un programa sensible, respectivamente. [ cita requerida ]
Las mayores capacidades de hardware del C128, especialmente la mayor memoria RAM, resolución de pantalla y velocidad del bus serial, lo convirtieron en una plataforma más capaz que el C64 para ejecutar el sistema operativo gráfico GEOS . [ cita requerida ]
La segunda de las dos CPU del C128 es la Zilog Z80, que permite al C128 ejecutar CP/M. El C128 se entregaba con CP/M 3.0 (también conocido como CP/M Plus, que es compatible con CP/M 2.2) y emulación de terminal ADM31/3A . Había un cartucho CP/M disponible para el C64, pero era caro y de uso limitado ya que la unidad 1541 no puede leer los discos con formato MFM en los que se distribuía el software CP/M. El software tenía que estar disponible en discos específicos de Commodore formateados utilizando el esquema de codificación GCR . [ cita requerida ] Commodore puso a disposición versiones de PerfectCalc y PerfectWriter derivado de EMACS , [17] y los grupos de usuarios de Commodore a veces tenían una selección de disquetes CP/M, pero la disponibilidad limitada de software anuló uno de los principales atractivos de CP/M: su enorme biblioteca de software. Además, los cartuchos sólo funcionan en los primeros modelos C64 de 1982 y son incompatibles con unidades posteriores. Como también eran incompatibles con el C128, el equipo de diseño decidió dar soporte a CP/M colocando el Z80 en la placa base del sistema. [ cita requerida ]
El C128 ejecuta CP/M notablemente más lento que la mayoría de los sistemas CP/M dedicados, ya que el procesador Z80 funciona a una velocidad efectiva de solo2 MHz . Esto se debió a que el bus del sistema del C128 estaba diseñado en torno a las CPU 65xx. Estas CPU manejan el direccionamiento de datos y memoria de manera muy diferente a la del Z80. CP/M también funcionaba más lentamente por varias razones, como la necesidad de pasar el control al 8502 para cualquier procesamiento de E/S o interrupción. Por estas razones, pocos usuarios ejecutaban el software CP/M en el C128. [ ¿Investigación original? ]
Cuando se enciende el C128, el Z80 se activa primero y ejecuta una pequeña ROM del cargador de arranque en $0-$FFF para verificar la presencia de un disco CP/M. Si no se detecta ninguno, el control se transfiere al 8502 y se inicia el modo nativo del C128. [ cita requerida ]
En la práctica, el modo CP/M requiere una unidad 1571 o 1581 para ser útil, ya que una 1541 no puede leer discos MFM y funcionará mucho más lento debido a que no es compatible con el modo de ráfaga del C128. No obstante, los discos de arranque CP/M deben estar en el formato GCR nativo de la unidad; no se puede arrancar desde los discos MFM, solo leerlos una vez que el usuario ya está en CP/M. Esto se debe a que el código necesario para operar la unidad en modo MFM se carga como parte del proceso de arranque. Además, generalmente se requiere el modo de 80 columnas, ya que la mayoría del software CP/M espera una pantalla de 80 columnas. El C128 emula un terminal ADM-3A [ cita requerida ] en modo CP/M, por lo que se deberá configurar el software para eso. Además de los comandos de terminal ADM-3A estándar, hay varios comandos adicionales disponibles para usar las funciones de VIC-II y VDC, incluida la configuración del texto y el color de fondo. El intérprete de comandos CP/M (aunque no es un software de aplicación) incluye una protección para evitar que el usuario emita un código de control para que el texto y el fondo tengan el mismo color, lo que haría que el texto fuera invisible y obligaría al usuario a reiniciar la computadora. Si esto sucede, se establecerá de manera predeterminada un fondo gris con texto marrón. [ cita requerida ]
En el modo CP/M, es posible ejecutar MBASIC , la versión de Microsoft de BASIC-80 para CP/M. Comparado con el modo nativo BASIC 7.0, MBASIC es conciso y limitado en sus capacidades, requiriendo el uso de combinaciones de teclas de estilo terminal para editar líneas de programa o mover el cursor de texto y carece de funciones de sonido o gráficos. Además, Commodore BASIC tiene un punto flotante de 40 bits que sirve como punto intermedio entre el punto flotante de 32 bits de MBASIC y las variables de doble precisión de 64 bits. MBASIC también ofrece solo 34k de espacio libre para programas contra los aproximadamente 90k de BASIC 7.0. [ cita requerida ]
El CP/M CBIOS (la parte del CP/M que interactúa con el hardware) no interactúa directamente con el hardware como en la mayoría de las implementaciones de CP/M; en lugar de eso, llama a las rutinas del núcleo para el manejo de interrupciones y E/S; cuando es necesario utilizar el núcleo, el Z80 utiliza rutinas en $FFD0 - $FFEF para pasar datos de parámetros al 8502, que luego se activa y el Z80 se desactiva. Una vez que la rutina del núcleo termina de ejecutarse, el control se devuelve al Z80. [ cita requerida ] Se informó que el programador a cargo de portar CP/M al C128 tenía la intención de que el CBIOS interactuara con el hardware directamente en lenguaje de máquina Z80, pero tuvo grandes dificultades con los chips VDU, ya que eran propensos a sobrecalentarse y autodestruirse. El VDU también sufrió numerosas revisiones de hardware mientras el C128 estaba en desarrollo y el programador de CP/M no pudo lograr que su código funcionara correctamente, por lo que el equipo de ingeniería del C128 solicitó en cambio que simplemente reescribiera el CBIOS para pasar llamadas de función al 8502. [18] [19]
El modo CP/M es muy diferente de los entornos operativos que conocen los usuarios de Commodore. Mientras que el DOS de Commodore está integrado en la ROM de las unidades de disco de Commodore y se accede a él normalmente a través de BASIC, el CP/M requiere el uso de un disquete de arranque y la introducción de comandos concisos heredados de las plataformas de minicomputadoras . Los programas CP/M tienden a carecer de la naturaleza fácil de usar de la mayoría de las aplicaciones de Commodore.
Al incorporar las ROMs BASIC y Kernal originales del C64 en su totalidad (16 KB en total), el C128 logra una compatibilidad de casi el 100 por ciento con el Commodore 64. Se puede acceder al modo C64 de tres maneras:
GO 64
comando y luego responder Y
al ARE YOU SURE?
mensaje en BASIC 7.0. [20]La conexión a tierra de las líneas /EXROM y/o /GAME del puerto de cartuchos hará que la computadora se inicie automáticamente en modo C64. Esta característica duplica fielmente el comportamiento del C64 cuando se conecta un cartucho (como el BASIC de Simons ) al puerto y activa cualquiera de estas líneas pero, a diferencia de un C64 real, donde la acción de cambio de mapa de memoria de estas líneas se implementa directamente en el hardware, el código de inicio del firmware Z80 del C128 sondea estas líneas al encenderse y luego cambia de modo según sea necesario. Los cartuchos de modo nativo del C128 son reconocidos e iniciados por el núcleo que sondea las ubicaciones definidas en el mapa de memoria. [ cita requerida ]
El modo C64 duplica casi exactamente las características de un C64 de hardware. El modo de ráfaga MMU, Z80 e IEC están deshabilitados en el modo C64, sin embargo, todas las demás características de hardware del C128, incluyendo el VDU y el modo de 2 MHz, siguen siendo accesibles. Las teclas extendidas del teclado del C128 se pueden leer desde el lenguaje de máquina, aunque las rutinas del núcleo solo reconocen las teclas que existen en el C64. Algunos juegos son capaces de detectar si un C128 está en funcionamiento y cambiar al modo de 2 MHz durante el retroceso vertical para un rendimiento más rápido. [ cita requerida ]
En los C128 norteamericanos, cuando se está en modo C64, incluso la ROM de caracteres (fuente) cambia con respecto a la del modo C128. Los primeros prototipos del C128 tenían una única ROM, con un conjunto de caracteres ligeramente mejorado con respecto al del C64. Pero algunos programas del C64 leen la ROM de caracteres como datos y fallan de varias maneras en un C128. Por lo tanto, al C128 se le proporcionó una ROM de caracteres de tamaño doble, que ofrece la fuente C128 en modo C128 y la fuente C64 en modo C64. Los modelos internacionales del C128 utilizan la fuente C64 sin modificar en ambos modos, ya que la segunda mitad de la ROM de caracteres está dedicada a la fuente internacional (que contiene elementos como caracteres acentuados o diéresis alemanas ). [ cita requerida ]
Algunos de los pocos programas C64 que fallan en un C128 se ejecutarán correctamente cuando se presione la tecla (o la tecla ASCII/National en los modelos C128 internacionales). Esto tiene que ver con el puerto de E/S integrado más grande de la CPU del C128. Mientras que la tecla que se encuentra tanto en el C64 como en el C128 es simplemente un pestillo mecánico para la tecla izquierda, la tecla del C128 se puede leer a través del puerto de E/S integrado del 8502. Algunos programas C64 se confunden con este bit de E/S adicional; mantener la tecla en la posición hacia abajo forzará la línea de E/S a un nivel bajo, coincidiendo con la configuración del C64 y resolviendo el problema. [ cita requerida ]⇪ Caps LockSHIFT LOCK⇧ Shift⇪ Caps Lock⇪ Caps Lock
Un puñado de programas C64 escriben en $D030 (53296)
, a menudo como parte de un bucle que inicializa los registros del chip VIC-II . Este registro asignado a la memoria, que no se utiliza en el C64, determina la frecuencia de reloj del sistema. Dado que este registro es completamente funcional en el modo C64, una escritura inadvertida puede alterar la pantalla de 40 columnas al cambiar la CPU a 2 MHz, frecuencia de reloj a la que el procesador de vídeo VIC-II no puede producir una pantalla coherente. Afortunadamente, pocos programas sufren esta falla. En julio de 1986, la Gaceta de COMPUTE! publicó un programa de escritura que explotaba esta diferencia al utilizar una interrupción de trama para habilitar el modo rápido cuando se alcanzaba la parte inferior de la pantalla visible y luego deshabilitarla cuando la representación de la pantalla comenzaba nuevamente en la parte superior. Al utilizar la frecuencia de reloj más alta durante el período en blanco vertical , se mantiene la visualización de vídeo estándar mientras se aumenta la velocidad de ejecución general en aproximadamente un 20 por ciento. [21] [22]
Algunos programas de C64 carecerían de efectos de sonido y música porque en un C64 la página de memoria del chip SID $D4xx también se reflejaba en las páginas $D5xx, $D6xx y $D7xx, mientras que en un C128 solo era accesible a través de la página $D4xx. Este no es un problema común, ya que la guía de referencia de C64 solo describe los registros en $D4xx en detalle mientras que describe $D5xx-$D8xx simplemente como "IMÁGENES SID", lo que hace que la mayoría de los programas accedan a ellos a través de la página $D4xx y, por lo tanto, el sonido se reproduzca como se esperaba en un C128. [ cita requerida ]
Una forma sencilla de diferenciar entre un C64 de hardware y un C128 que funciona en modo C64, que se utiliza normalmente desde dentro de un programa en ejecución, es escribir un valor diferente de $FF (255)
en la dirección de memoria $D02F (53295)
, un registro que se utiliza para decodificar las teclas adicionales del C128 (el teclado numérico y algunas otras teclas). En el C64, esta ubicación de memoria siempre contendrá el valor $FF
sin importar lo que se escriba en ella, pero en un C128 en modo C64, el valor de la ubicación (un registro asignado a la memoria) se puede cambiar. Por lo tanto, comprobar el valor de la ubicación después de escribir en ella revelará la plataforma de hardware real. [ cita requerida ]
Para manejar cantidades relativamente grandes de ROM y RAM (diez veces el tamaño del 8502)El C128 utiliza el chip MMU 8722 para crear diferentes mapas de memoria, en los que aparecen diferentes combinaciones de RAM y ROM según los patrones de bits escritos en el registro de configuración de la MMU en la dirección de memoria $FF00 . Otra característica de la unidad de gestión de memoria es permitir la reubicación de la página cero y la pila . [ cita requerida ]
Aunque el C128 puede soportar teóricamente 256k de RAM en cuatro bloques, la PCB no tiene provisiones para agregar esta RAM adicional, ni la MMU puede acceder realmente a más de 128k. Por lo tanto, si la MMU está programada para acceder a los bloques 2 o 3, todo lo que se obtiene es un espejo de la RAM en los bloques 0 y 1. [ cita requerida ]
Como los registros de E/S y las ROM del sistema se pueden deshabilitar o habilitar libremente, además de poder ubicarse en cualquiera de los bancos de RAM y el VIC-II puede configurarse para usar cualquiera de los bancos como espacio de memoria, son posibles hasta 256 configuraciones de memoria, aunque la gran mayoría de ellas son inútiles (por ejemplo, son posibles combinaciones inviables como la ROM del núcleo en el banco 0 y los registros de E/S en el banco 1). Debido a esto, la instrucción BANK de BASIC permite al usuario seleccionar 15 de las configuraciones más útiles, siendo el Banco 15 el valor predeterminado al encender el sistema. Este valor predeterminado coloca las ROM del sistema, los registros de E/S y el texto del programa BASIC en el bloque 0, y las variables del programa BASIC usan el bloque 1. El texto y las variables del programa BASIC pueden extenderse hasta $FFEF . Pero como el bloque 0 contiene las ROM y los registros de E/S desde $4000 en adelante, BASIC usa una rutina de conmutación interna para leer el texto del programa por encima de $3FFF . [ cita requerida ]
Los 1k superiores e inferiores de RAM ( $0 – $3FF y $FF00 - $FFFF ) son RAM "compartida", visibles desde ambos bloques. La MMU permite que cualquiera de ellas se amplíe en incrementos de hasta 16k. El rango $0 – $3FF contiene la página cero y la pila, mientras que $FF00 - $FFFF contiene los registros de la MMU y los vectores de reinicio. Estas áreas siempre son compartidas y no se pueden cambiar a RAM no compartida. La RAM compartida siempre es el banco opuesto al que está utilizando actualmente la CPU, por lo que si se selecciona el banco 0, cualquier lectura o escritura en la RAM compartida se referirá a las ubicaciones correspondientes en el banco 1 y viceversa. El VIC-II se puede configurar para utilizar cualquiera de los bancos de RAM y, a partir de ahí, su ventana normal de 16k. Mientras que en el C64, el VIC-II sólo puede ver la ROM de caracteres en los bancos 2 y 4 de su espacio de memoria, el C128, por otro lado, permite habilitar o deshabilitar la ROM de caracteres para cualquier banco del VIC-II a través del registro en $1 . Además, hay dos conjuntos de RAM de color: uno visible para la CPU, el otro para el VIC-II y el usuario puede seleccionar qué chip ve qué. [ cita requerida ]
En el modo CP/M, el prefijo del segmento de programa y el área de programa transitorio residen en el banco 1 y los registros de E/S y el código del sistema CP/M en el banco 0. [ cita requerida ]
La RAM del C128 se puede ampliar desde los 128 KB estándar a 256, 512 o incluso 1.024 KB, ya sea utilizando módulos de expansión de memoria comerciales o fabricando uno basándose en esquemas disponibles en Internet. [23]
Las unidades de expansión de RAM de Commodore utilizan un controlador DMA 8726 externo para transferir datos entre la RAM del C128 y la RAM de la unidad de expansión. [ cita requerida ]
A finales de 1985, Commodore lanzó una nueva versión del C128 con un chasis rediseñado que se parecía al Amiga 1000. Llamado Commodore 128D, este nuevo modelo europeo presentaba un chasis de plástico con un asa de transporte en el lateral, incorporaba una unidad de disco 1571 en el chasis principal, reemplazaba el teclado incorporado por uno desmontable y añadía un ventilador de refrigeración . El teclado también presentaba dos patas plegables para cambiar el ángulo de escritura. [24]
El C128 se lanzó en el Reino Unido el 25 de julio de 1985, [25] y en América del Norte en noviembre de 1985. [26]
Según Bil Herd, jefe del equipo de hardware (también conocido como "C128 Animals"), el C128D estuvo listo para producción al mismo tiempo que la versión normal. Trabajar para lanzar dos modelos al mismo tiempo había aumentado el riesgo de una entrega a tiempo y era evidente en que la placa de circuito impreso principal tiene grandes agujeros en secciones críticas para soportar la carcasa del C128D y la carcasa normal al mismo tiempo. [ cita requerida ]
A finales de 1986, Commodore lanzó una versión del C128D en Norteamérica y algunas partes de Europa, conocida como C128DCR, CR significa "de costo reducido". El modelo DCR presenta 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 conmutada modular similar a la del C128D, conservando el teclado desmontable de ese modelo y la unidad de disquete interna 1571. Se consolidaron varios componentes de la placa base para reducir los costos de producción y, como medida adicional de reducción de costos, se eliminó el ventilador de enfriamiento que estaba instalado en la fuente de alimentación del modelo D. Sin embargo, se conservaron las disposiciones de montaje en el subchasis de la fuente de alimentación, así como los dos puntos de conexión de CC de 12 voltios en la placa de circuito impreso de la fuente de alimentación para alimentar el ventilador. La disposición de montaje del C128DCR es para un ventilador de 60 mm. [ cita requerida ]
Una mejora significativa introducida con el modelo DCR fue la sustitución del controlador de pantalla de vídeo (VDC) 8563 por el VDC 8568, técnicamente más avanzado , y su equipamiento con 64 KB de RAM de vídeo (la cantidad máxima direccionable por el dispositivo). El aumento de cuatro veces en la RAM de vídeo respecto de la instalada en el C128 "plano" hizo posible, entre otras cosas, mantener múltiples pantallas de texto en apoyo de un verdadero sistema de ventanas o generar gráficos de mayor resolución con una paleta de colores más flexible. Poco software comercial aprovechó estas posibilidades. [ cita requerida ]
El C128DCR está equipado con nuevas ROM denominadas "ROM 1986", llamadas así por la fecha de copyright que aparece en la pantalla de encendido. Las nuevas ROM solucionan una serie de errores que estaban presentes en las ROM originales, incluido un infame error de un dígito en la tabla de decodificación del teclado, en el que el carácter permanecía en minúscula cuando estaba activo. Algunos programas solo se ejecutarán en el DCR, debido a las dependencias de las características mejoradas del hardware de la computadora y las ROM revisadas. [27]Q⇪ Caps Lock
A pesar de las capacidades mejoradas de video RGB del DCR, Commodore no mejoró BASIC 7.0 con la capacidad de manipular gráficos RGB. Para manejar el VDC en modo gráfico se sigue requiriendo el uso de llamadas a primitivas de ROM del editor de pantalla o sus equivalentes en lenguaje ensamblador , [28] o mediante el uso de extensiones de lenguaje BASIC de terceros, como " BASIC 8 " de Free Spirit Software, que agrega comandos gráficos VDC de alta resolución a BASIC 7.0 . [ cita requerida ]
En enero de 1987, Info informó que "todos esos rumores sobre la muerte inminente del C128 pueden tener alguna base en la realidad". Al afirmar que Commodore quería desviar recursos para aumentar la producción del 64C y sus clones para PC, la revista afirmó que "lo último que se dice en Internet es que el último C128 saldrá de las líneas de producción en diciembre de 1987". [29] Compute! declaró en 1989: "si compró su 128 con la impresión de que el software específico para el 128 sería abundante y llegaría rápidamente, probablemente se haya sentido bastante decepcionado. Uno de los principales puntos de venta del 128 es su compatibilidad total con el 64, un punto que ha funcionado más en contra del 128 que a su favor". [27] Debido a que el 128 ejecutaría virtualmente todo el software de 64 bits, y debido a que las computadoras hogareñas de 32/16 bits de próxima generación (principalmente el Commodore Amiga y el Atari ST) representaban la última tecnología, apareció relativamente poco software para el modo nativo del C128 (probablemente del orden de 100 a 200 títulos comerciales, más la cuota habitual de programas de dominio público y de mecanografiado en revistas ), lo que llevó a algunos usuarios a arrepentirse de su compra. [30] Si bien el C128 vendió un total de 4 millones de unidades entre 1985 y 1989, su popularidad palideció en comparación con la de su predecesor.
Algunos programas de C64 como Bard's Tale III y Kid Niki se ejecutaban en modo 128 sin indicarlo en la documentación, utilizando el arranque automático y el acceso al disco más rápido del 1571. [31] Algunas aventuras de texto de Infocom aprovecharon la pantalla de 80 columnas y aumentaron la capacidad de memoria. Algunos juegos de C64 fueron portados al modo nativo como Kikstart 2 y The Last V8 de Mastertronic , que tenían versiones separadas para C128, y Ultima V: Warriors of Destiny de Origin Systems , que usaba RAM adicional para la música si se ejecutaba en el C128. Star Fleet I: The War Begins de Interstel tenía versiones separadas y aprovechaba la pantalla de 80 columnas en el C128. Sin embargo, la gran mayoría de los juegos simplemente se ejecutaban en modo C64, ya que pocos desarrolladores aprovechaban el rendimiento nativo del C128. [32]
Por el contrario, muchos títulos de software de productividad C64 fueron portados al C128, incluyendo las populares series PaperClip y Paperback Writer. [33] Este software utilizó la memoria adicional, la pantalla de 80 columnas, el teclado mejorado y las unidades de disco de gran capacidad para proporcionar características que se consideraban esenciales para el uso comercial. [34] Con su lenguaje de programación BASIC avanzado, compatibilidad con CP/M y paquetes de software nativos " fáciles de usar " como Jane , Commodore intentó crear un mercado comercial de gama baja para el C128 similar a su estrategia con el Plus/4 , incluso distanciándose de la etiqueta de computadora doméstica al marcar el C128 como "Computadora personal" en la carcasa. [35] [36] Significativamente, el C128 fue la primera computadora Commodore en publicitar su uso de Microsoft BASIC , donde el nombre Microsoft habría sido un activo competitivo. [ cita requerida ]
Las personas que querían máquinas de negocios compraron clones de IBM PC casi exclusivamente cuando se lanzó el C128. La disponibilidad de IBM compatibles de bajo costo como el Leading Edge Model D y Tandy 1000 que, en algunos casos, se vendían por menos de un sistema C128 completo descarriló la estrategia de computadoras para pequeñas empresas de Commodore . [ cita requerida ] Había un programa de CAD de nivel profesional , Home Designer de BRiWALL, [37] pero nuevamente, la mayor parte de este trabajo se hacía en PC en la era del C128. La razón principal por la que el C128 todavía se vendía bastante bien probablemente fue que era una máquina mucho mejor para la programación de aficionados que el C64, además de ser un modelo de continuación natural para los propietarios con inversiones significativas en periféricos y software C64. [ investigación original? ]
Pero, en última instancia, el C128 no pudo competir con los nuevos sistemas de 16/32 bits, que lo superaban a él y al resto de su generación de 8 bits en casi todos los aspectos. Cuando se dejó de fabricar el C128(D/DCR) en 1989, se informó que su fabricación costaba casi lo mismo que la del Amiga 500 , a pesar de que el C128D tuvo que venderse por varios cientos de dólares menos para mantener intacta la imagen de marketing de alta gama del Amiga. [ cita requerida ]
Bil Herd ha declarado que los objetivos de diseño del C128 no incluían inicialmente una compatibilidad del 100% con el C64. Siempre se pensó en algún tipo de compatibilidad después de que Herd fuera contactado en la presentación del Plus/4 por una mujer que estaba decepcionada de que el paquete de software educativo que había escrito para el C64 no funcionara en el nuevo ordenador de Commodore, pero cuando el departamento de marketing de Commodore se enteró de esto, anunciaron de forma independiente la compatibilidad total. Herd dio la razón para la inclusión del procesador Z80 en el 128 como garantía de esta afirmación de "compatibilidad del 100%", ya que el soporte del cartucho Z80 del C64 habría significado que el C128 suministrara energía adicional al puerto del cartucho. También declaró que el chip de vídeo VDC y el Z80 fueron 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 aproximadamente, pensamos que un par de millones estaría bien y, por supuesto, no socavaría el precio del Amiga o incluso del C64". [32] Después de que Commodore aumentara el precio del 64 por primera vez al introducir el rediseñado 64C en 1986, sus ganancias por cada 64C vendido fueron, según se informa, mucho mayores que las del C128. [38]
(las teclas numéricas agrupadas como en una calculadora) es útil para cualquiera que ingrese grandes cantidades de datos numéricos, pero esta característica faltaba en el Commodore 64. Dado que muchos propietarios de Commodore 64 pasaban horas ingresando programas en lenguaje de máquina en forma de largas listas de números, esta característica se solicitaba a menudo.
Los programadores de CP/M C128 que quieran agregar o cambiar características del sistema operativo deberían intentar hacer cambios en el BIOS. Por un lado, el código fuente del BIOS está disponible, pero no está disponible para BDOS o CCP.
El CP/M C-128 utiliza tanto el procesador Z80 como el 8502. El Z80 ejecuta la mayoría de las funciones del BIOS del CP/M.