Articulo de referencia

Comodoro 128

{{cite web | url=https://www.giantbomb.com/commodore-128/3045-58/ | title=Commodore 128 (Platform) }} "},"cpu":{"wt":"{{nowrap|[[MOS Technology 8502|MOS 8502]] @ 1–2 MHz}} ...

El Commodore 128 , también conocido como C128 , es el último ordenador doméstico de 8 bits lanzado comercialmente por 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 unidades del C128 durante sus cuatro años de producción.

El C128 es un sucesor significativamente mejorado del C64, con compatibilidad casi total. Está alojado en una carcasa rediseñada con un teclado mejorado que incluye 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 proporcionaba salida de vídeo en color de 80 columnas, además de los modos originales del C64. También incluía una CPU Zilog Z80 que permitía al C128 ejecutar CP/M , como alternativa al entorno BASIC habitual de Commodore . La enorme biblioteca de software de CP/M, junto con la del C64, le otorgó al C128 una de las gamas de software más amplias disponibles entre sus competidores.  

El principal diseñador 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 diseño de los circuitos integrados corrió a cargo de Dave DiOrio. El software principal del sistema Commodore fue desarrollado por Fred Bowen y Terry Ryan, y el subsistema CP/M por Von Ertwine.

El C128 se lanzó en el Reino Unido el 25 de julio de 1985. [ 2 ]

Diseño

El indicador BASIC para el Commodore 128 en modo de 40 columnas, ejecutando Commodore BASIC V7.0.

La compleja arquitectura del C128 [ 3 ] [ 4 ] incluye cuatro tipos de RAM de acceso diferente (  RAM principal de 128 KB,  RAM de vídeo VDC de 16 a 64 KB,  RAM de color VIC-II de 2 kNibbles, RAM de disquete de 2 KB en los C128D, RAM REU de  0, 128 o 512 KB ) , 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. [ 5 ] [ 6 ]

El C128 no realiza una prueba de memoria RAM al encenderse, a diferencia de las máquinas Commodore anteriores. 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 funcionar a 2 MHz . La segunda CPU es una Zilog Z80 que se utiliza para ejecutar el software CP/M, así como para seleccionar el modo de funcionamiento al arrancar. 

El teclado del C128 incluye cuatro teclas de cursor , Alt, , y teclas y un teclado numérico. Ninguna de estas 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 a la izquierda. Esta disposición alternativa se mantuvo en el 128, para su uso en el modo C64. [ 7 ] La falta de un teclado numérico, , y en el C64 fue un problema con algunos programas de productividad CP/M cuando se usaban con el cartucho Z80 del C64. Muchos propietarios de C64 que pasaban largas horas escribiendo programas en lenguaje máquina solicitaron un teclado . [ 8 ] Muchas de las teclas añadidas coincidían con las presentes en el teclado del IBM PC y hacían que el nuevo ordenador fuera más atractivo para los desarrolladores de software empresarial. [ 9 ] Si bien el modo de 40 columnas del 128 duplica fielmente 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.HelpEscTab ↹⇧ ShiftAltEsc

El diseño de la fuente de alimentación del C128 es diferente al utilizado en el C64. Aunque es mucho más grande, la nueva fuente de alimentación está equipada con rejillas de ventilación y un fusible reemplazable.

Las primeras versiones del C128 presentaban ocasionalmente problemas de fiabilidad relacionados con la temperatura debido al uso de un blindaje de RF sobre la placa de circuito principal. Este blindaje estaba equipado con contactos que llegaban a la parte superior de los chips principales, lo que, en teoría, hacía que actuara como un gran disipador de calor . La combinación de un contacto deficiente entre el blindaje y los chips, la conductividad térmica inherentemente limitada de los encapsulados de plástico y la conductividad térmica relativamente baja del propio blindaje, provocaba sobrecalentamiento y fallos en algunos casos. El chip de sonido SID era particularmente vulnerable a este problema. La solución más común era retirar el blindaje, que Commodore había añadido al final del desarrollo para cumplir con las normativas de radiofrecuencia de la FCC .

Modos

El C128 tiene tres modos de funcionamiento . El modo C128 ( modo nativo ) funciona a 1 o 2  MHz con la CPU 8502 y dispone de modos de texto de 40 y 80 columnas . El modo CP/M utiliza tanto el Z80 como el 8502, [ 10 ] y puede funcionar en ambos modos de texto de 40 y 80 columnas. El modo C64 es casi 100% compatible con el ordenador anterior. La selección de estos modos se implementa mediante el chip Z80. El Z80 controla el bus en el arranque inicial y comprueba si hay un disco CP/M en la unidad, si hay cartuchos C64/C128 presentes o si se está pulsando la tecla Commodore (que sirve como selector del modo C64) durante el arranque. En función de estas condiciones, cambiará al modo de funcionamiento apropiado.

C128

Placa base C128

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 ni los requisitos de formación de los primeros compatibles con IBM PC, la prensa especializada en Commodore lo percibió como una continuación del 64 y se esperaba que mejorara las capacidades de ese modelo. Si bien las capacidades gráficas y de sonido del C64 se consideraban generalmente excelentes, la respuesta al Plus/4 fue de decepción. Tras su lanzamiento, la prensa especializada en Commodore recomendó repetidamente un nuevo ordenador llamado "C-128" con mayor capacidad de RAM, una pantalla de 80 columnas como era habitual en los ordenadores empresariales, un nuevo lenguaje de programación BASIC que facilitara a los programadores el uso de los gráficos y el sonido del ordenador sin recurrir a PEEK y POKE , una nueva unidad de disquete que mejorara la notoriamente lenta velocidad de transferencia predeterminada del 1541 (sin cargador rápido), así como compatibilidad total con el C64. [ 11 ] [ 12 ]

Los diseñadores del C128 lograron abordar la mayoría de estas preocupaciones. Un nuevo chip, el VDC , proporciona al C128 una pantalla compatible con CGA a color de 80 columnas (también llamada RGBI por rojo-verde-azul más intensidad ). El entonces nuevo microprocesador 8502 es completamente retrocompatible 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 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 accedía mediante combinaciones de teclas ESC, así como una función de ventana rudimentaria, y se reubicó en una ROM separada . El chip VIC-II que controla la pantalla de 40 columnas solo puede operar a 1  MHz, por lo que la pantalla de 40 columnas aparece desordenada en FASTel modo. En el modo de 80 columnas, el editor aprovecha las características del VDC para proporcionar texto parpadeante y subrayado, activado mediante códigos de escape , además del texto invertido estándar de Commodore. [ 13 ] 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. [ 14 ] 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 "bloc de notas" o para soporte rudimentario de múltiples búferes. La pantalla activa se puede cambiar con + . [ 15 ] Se añadió un botón de reinicio de hardware al sistema. Sin embargo, el teclado no se cambió al diseño Selectric que se había convertido en estándar, sino que conservó el mismo diseño derivado del ADM-3A que en los modelos anteriores de Commodore.ESCX

La parte trasera del Commodore 128

Los monitores 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 requieren una  frecuencia de actualización de 60 Hz.

Se introdujeron dos nuevas unidades de disco junto con el C128: la efímera 1570 de una sola cara y la 1571 de doble cara . Se anunció un modelo de doble disco 1572 , pero nunca se produjo. Más tarde, se introdujo la 1581 de 3,5 pulgadas . La unidad 1581 también tiene más RAM integrada que sus predecesoras, lo que permite abrir un mayor número de archivos a la vez. BASIC 7.0 incluye comandos para admitir la carga y el guardado en disco sin usar el u otro número de dispositivo, y también un 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 . BASIC también agregó un comando para eliminar archivos "splat" (archivos que no se cerraron correctamente y se truncaron a longitud cero). [ 16 ]DLOADDSAVE,8DIRECTORYLOAD"*",8,1COLLECT

Todas las unidades 1571 normalmente se inician en modo nativo en el C128. Si el usuario cambia al modo C64 pulsando GO 64, la unidad permanece en modo nativo. Pero si el modo C64 se activa manteniendo pulsada la tecla Commodore al encender el equipo, la unidad 1571 pasa al modo 1541. Esta rutina es necesaria para el software que realiza acceso de bajo nivel a la unidad.

El C128 tiene el doble de RAM que el C64, una proporción mucho mayor de la cual está disponible para la programación en BASIC, debido al nuevo chip de conmutación de bancos MMU . Esto permite que el código del programa BASIC se almacene por separado de las variables, lo que mejora enormemente la capacidad de la máquina para manejar programas complejos, acelera la recolección de basura y facilita la depuración para el programador. Un programa en ejecución puede ser STOPped, su código editado, los valores de las variables inspeccionados o alterados en modo directo , y la ejecución del programa reanudada con la tabla de variables intacta usando el comando de BASIC GOTO. [ 17 ] Aunque otros BASIC admiten el CONTcomando para reiniciar la ejecución sin borrar las variables, editar cualquier código hace que se borren. [ 18 ] Se pueden cargar diferentes configuraciones de memoria usando BANKel comando de BASIC. [ 19 ]

BASIC 7.0 tiene un conjunto completo de comandos para gráficos y manejo de 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...WHILEy .WHILE...WEND

Como desventaja, 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 % con respecto a 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 este último tenía una longitud superior a 16k).

La ROM del 128 contiene un huevo de Pascua : al ingresar el comando SYS 32800,123,45,6en modo nativo, se revela una pantalla con una lista de los principales desarrolladores de la máquina seguida del mensaje Link arms, don't make them."Además, al ingresar las palabras clave QUITo OFFse 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 programas sensibles, respectivamente.

Las mayores capacidades de hardware del C128, especialmente el aumento de la memoria RAM, la resolución de la pantalla y la velocidad del bus serie, lo convirtieron en una plataforma más capaz que el C64 para ejecutar el sistema operativo gráfico GEOS .

CP/M

Para usar el modo CP/M se requiere un disquete de arranque. El disquete venía incluido con el ordenador, que no tenía unidad de disquete.

El segundo de los dos procesadores del C128 es el Zilog Z80, que permite al C128 ejecutar CP/M. El C128 se envió con CP/M 3.0 (también conocido como CP/M Plus, que es retrocompatible con CP/M 2.2) y emulación de terminal ADM31/3A . Había un cartucho de CP/M disponible para el C64, pero era caro y de utilidad limitada 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 con el esquema de codificación GCR . Commodore puso a disposición versiones de PerfectCalc y PerfectWriter , derivado de EMACS , [ 20 ] y los grupos de usuarios de Commodore a veces tenían una selección de disquetes de CP/M, pero la limitada disponibilidad de software anuló uno de los principales atractivos de CP/M: su enorme biblioteca de software. Además, los cartuchos solo funcionan en los primeros modelos de C64 de 1982 y son incompatibles con las unidades posteriores. Dado que también eran incompatibles con el C128, el equipo de diseño decidió dar soporte a CP/M integrando el Z80 en la placa base.

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 debía a que el bus del sistema del C128 estaba diseñado para las CPU 65xx. Estas CPU gestionan el direccionamiento de datos y memoria de forma muy diferente a la Z80. CP/M también funcionaba más lentamente por varias razones, como la necesidad de ceder el control al 8502 para cualquier operación de E/S o procesamiento de interrupciones. Por estos motivos, pocos usuarios ejecutaban software CP/M en el C128.

Cuando se enciende el C128, el Z80 se activa primero y ejecuta una pequeña ROM de arranque en la dirección $0-$FFF para comprobar la presencia de un disco CP/M. Si no se detecta ninguno, el control pasa al 8502 y se inicia el modo nativo del C128.

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 admite el modo ráfaga del C128. No obstante, los discos de arranque CP/M deben estar en el formato GCR nativo de la unidad; los discos MFM no se pueden usar para arrancar, solo se pueden leer 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 en modo CP/M, por lo que el software deberá configurarse para ello. Además de los comandos estándar del terminal ADM-3A, hay varios comandos adicionales disponibles para usar las funciones del VIC-II y el VDC, incluyendo la configuración del color del texto y del fondo. El intérprete de comandos de CP/M (aunque no es una aplicación) incluye una medida de seguridad para evitar que el usuario introduzca un código de control que haga 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 el equipo. Si esto ocurre, se mostrará por defecto un fondo gris con texto marrón.

El modo CP/M es muy diferente de los entornos operativos a los que están acostumbrados los usuarios de Commodore. Mientras que Commodore DOS está integrado en la ROM de las unidades de disco de Commodore y se suele acceder a él mediante BASIC, 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 facilidad de uso de la mayoría de las aplicaciones de Commodore.

En el modo CP/M, es posible ejecutar MBASIC , la versión de Microsoft de BASIC-80 para CP/M. Comparado con el BASIC 7.0 nativo, MBASIC es conciso y limitado en sus capacidades, requiriendo el uso de combinaciones de teclas al estilo de la 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 coma flotante de 40 bits, lo que representa un punto intermedio entre la coma flotante de 32 bits de MBASIC y las variables de doble precisión de 64 bits. MBASIC también ofrece solo 34 KB de espacio libre para el programa, frente a los aproximadamente 90 KB de BASIC 7.0.

El CBIOS de CP/M (la parte de 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 cambio, llama a las rutinas del kernel para el manejo de interrupciones y E/S. Cuando se necesita usar el kernel, el Z80 usa las 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 kernel termina de ejecutarse, el control se devuelve al Z80. Se informó que el programador encargado de portar CP/M al C128 tenía la intención de que el CBIOS interactuara con el hardware directamente en lenguaje máquina Z80, pero tuvo grandes dificultades con los chips VDU, ya que eran propensos al sobrecalentamiento y la autodestrucción. La VDU también sufrió numerosas revisiones de hardware mientras el C128 estaba en desarrollo y el programador de CP/M no pudo hacer que su código funcionara correctamente, por lo que el equipo de ingeniería del C128 solicitó en su lugar que simplemente reescribiera el CBIOS para pasar llamadas de función al 8502. [ 21 ] [ 22 ]

C64

Fotografía de la década de 1980 que muestra una configuración C128 con dos unidades de disco y dos monitores que muestran pantallas independientes de 40 y 80 columnas. Muchos usuarios continuaron utilizando la unidad 1541 heredada de su sistema C64 como segunda unidad.

Al incorporar las ROMs originales de BASIC y Kernel de 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:

  1. Mantén pulsada la tecla con el logotipo de Commodore durante el arranque.
  2. Introducir el GO 64comando y luego responder Ya la ARE YOU SURE?solicitud, en BASIC 7.0. [ 23 ]
  3. Arrancando con un cartucho de C64 conectado.

Al conectar a tierra las líneas /EXROM y/o /GAME del puerto de cartuchos, el ordenador se iniciará automáticamente en modo C64. Esta función reproduce fielmente el comportamiento del C64 cuando se conecta un cartucho (como BASIC de Simons ) al puerto y activa cualquiera de estas líneas. Sin embargo, 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 consulta estas líneas al encenderse y cambia de modo según sea necesario. Los cartuchos en modo nativo del C128 son reconocidos e iniciados por el kernel mediante la consulta de ubicaciones definidas en el mapa de memoria.

El modo C64 reproduce casi a la perfección las características de un C64 físico. La MMU, el Z80 y el modo ráfaga IEC están desactivados en el modo C64; sin embargo, todas las demás características del hardware C128, incluyendo la VDU y  el modo de 2 MHz, siguen estando disponibles. Las teclas extendidas del teclado C128 pueden leerse mediante lenguaje máquina, aunque las rutinas del kernel solo reconocen las teclas que existen en el C64. Algunos juegos son capaces de detectar si se está ejecutando un C128 y cambiar al  modo de 2 MHz durante el retroceso vertical para un rendimiento más rápido.

En los C128 norteamericanos, cuando están 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 sola ROM, con un conjunto de caracteres ligeramente mejorado respecto al del C64. Pero algunos programas del C64 leen la ROM de caracteres como datos y fallan de diversas maneras en un C128. Por lo tanto, al C128 se le dotó de una ROM de caracteres de doble tamaño, que proporciona la fuente del C128 en modo C128 y la fuente del C64 en modo C64. Los modelos internacionales del C128 utilizan la fuente del C64 sin modificar en ambos modos, ya que la segunda mitad de la ROM de caracteres está dedicada a la fuente internacional (que contiene, por ejemplo, caracteres acentuados o diéresis alemanas ).

Algunos de los pocos programas de C64 que fallan en un C128 se ejecutan correctamente al presionar la tecla (o la tecla ASCII/National en los modelos internacionales de C128). Esto se debe al puerto de E/S integrado de mayor tamaño de la CPU del C128. Mientras que la tecla presente 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 de C64 se confunden con este bit de E/S adicional; al mantener la tecla presionada, la línea de E/S se pone en nivel bajo, lo que coincide con la configuración del C64 y resuelve el problema.⇪ Caps LockSHIFT LOCK⇧ Shift⇪ Caps Lock⇪ Caps Lock

Algunos programas de C64 escriben en $D030 (53296), a menudo como parte de un bucle que inicializa los registros del chip VIC-II . Este registro mapeado en memoria, no utilizado en el C64, determina la frecuencia del reloj del sistema. Dado que este registro es completamente funcional en modo C64, una escritura inadvertida puede alterar la visualización de 40 columnas al cambiar la CPU a 2 MHz, frecuencia a la cual el procesador de vídeo VIC-II no puede producir una visualización coherente. Afortunadamente, pocos programas sufren este fallo. En julio de 1986, la Gazette de COMPUTE! publicó un programa que explotaba esta diferencia utilizando una interrupción de trama para habilitar el modo rápido cuando se alcanzaba la parte inferior de la pantalla visible y luego deshabilitarlo cuando la renderización de la pantalla comenzaba de nuevo en la parte superior. Al utilizar la frecuencia de reloj más alta durante el período de borrado vertical , se mantiene la visualización de vídeo estándar a la vez que se aumenta la velocidad de ejecución general en aproximadamente un 20 por ciento. [ 24 ] [ 25 ]

Algunos programas de C64 carecían de efectos de sonido y música porque en un C64 la página de memoria $D4xx del chip SID también se reflejaba en las páginas $D5xx, $D6xx y $D7xx, mientras que en un C128 solo se podía acceder a ella a través de la página $D4xx. Esto no es un problema común, ya que la guía de referencia del C64 solo describe los registros en $D4xx con 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, reproduzcan el sonido correctamente en un C128.

Una forma sencilla de diferenciar entre un C64 de hardware y un C128 que opera en modo C64, normalmente utilizado desde dentro de un programa en ejecución, es escribir un valor distinto en $FF (255)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 $FFsin importar lo que se escriba en ella, pero en un C128 en modo C64 el valor de la ubicación —un registro mapeado en memoria— puede cambiar. Por lo tanto, comprobar el valor de la ubicación después de escribir en ella revelará la plataforma de hardware real.

Configuración de RAM

Para manejar las cantidades relativamente grandes de ROM y RAM (diez veces el tamaño de la 8502)(espacio de direcciones de 64  KB ) el C128 utiliza el chip MMU 8722 para crear diferentes mapas de memoria, en los que aparecerían diferentes combinaciones de RAM y ROM según 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 .

Aunque el C128 teóricamente admite 256 KB de RAM en cuatro bloques, la placa de circuito impreso no dispone de ninguna disposición para añadir esta RAM adicional, ni la MMU puede acceder a más de 128 KB. Por lo tanto, si la MMU se programa para acceder a los bloques 2 o 3, lo único que se consigue es una copia de la RAM de los bloques 0 y 1.

Dado que los registros de E/S y las ROM del sistema se pueden deshabilitar o habilitar libremente, además de estar ubicados en cualquiera de los bancos de RAM y el VIC-II configurado para usar cualquiera de los bancos para su 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 kernel 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 disposiciones más útiles, siendo el Banco 15 el predeterminado al encender. Este predeterminado coloca las ROM del sistema, los registros de E/S y el texto del programa BASIC en el bloque 0, mientras que el bloque 1 es utilizado por las variables del programa BASIC. El texto del programa BASIC y las variables pueden extenderse hasta $FFEF . Pero como el bloque 0 contiene las ROM y los registros de E/S desde $4000 en adelante, BASIC utiliza una rutina de conmutación interna para leer el texto del programa por encima de $3FFF .

Los 1k superior e inferior de RAM ( $0$3FF y $FF00 - $FFFF ) son RAM "compartida", visibles desde ambos bloques. La MMU permite que cualquiera de ellos se expanda 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á usando actualmente la CPU, por lo tanto, 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 usar cualquiera de los bancos de RAM y, a partir de ahí, su ventana normal de 16k. Mientras que en el C64, el VIC-II solo 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, existen dos conjuntos de memoria RAM de color: uno visible para la CPU y el otro para el VIC-II, y el usuario puede seleccionar qué chip ve cuál.

En el modo CP/M, el prefijo del segmento de programa y el área de programa transitoria residen en el banco 1, y los registros de E/S y el código del sistema CP/M en el banco 0.

La RAM del C128 se puede ampliar desde los 128  KB estándar hasta 256, 512 o incluso 1024  KB, ya sea utilizando módulos de expansión de memoria comerciales o fabricando uno a partir de esquemas disponibles en internet. [ 26 ]

Las unidades de expansión de RAM de Commodore utilizan un controlador DMA externo 8726 para transferir datos entre la RAM del C128 y la RAM de la unidad de expansión.

C128D

El Commodore 128D en exhibición en el Musée Bolo , EPFL , Suiza.
Fuente de alimentación conmutada Commodore 128DCR , equipada con un  ventilador de refrigeración de 60 mm.

A finales de 1985, Commodore lanzó una nueva versión del C128 con un chasis rediseñado similar al del Amiga 1000. Este nuevo modelo europeo, llamado Commodore 128D, presentaba un chasis de plástico con un asa de transporte lateral, incorporaba una unidad de disquete 1571 en el chasis principal, sustituía el teclado integrado por uno desmontable y añadía un ventilador de refrigeración . El teclado también contaba con dos patas plegables para ajustar el ángulo de escritura. [ 27 ]

Si bien el Commodore 128D ya se había lanzado a finales de 1985, el Commodore 128DCR no pudo haber aparecido antes del 24 de abril de 1987, según el registro FCC ID BR98YV128DCR.

Según Bil Herd, jefe del equipo de hardware (también conocido como los "Animales C128"), el C128D estaba listo para la producción al mismo tiempo que la versión estándar. Trabajar para lanzar dos modelos simultáneamente aumentó el riesgo de retrasos en la entrega, lo cual se evidenció en que la placa de circuito impreso principal tiene grandes orificios en secciones críticas para soportar la carcasa del C128D y la carcasa normal al mismo tiempo.

A finales de 1986, Commodore lanzó en Norteamérica y algunas partes de Europa una versión del C128D denominada C128DCR, donde CR significa "coste reducido". El modelo DCR presenta un chasis de acero estampado en lugar del de plástico del C128D (sin asa de transporte), una fuente de alimentación modular conmutada similar a la del C128D, conservando el teclado desmontable y la unidad de disquete interna 1571 de dicho modelo. Se consolidaron varios componentes de la placa base para reducir los costes de producción y, como medida adicional de ahorro, se eliminó el ventilador de refrigeración de la fuente de alimentación del modelo D. Sin embargo, se mantuvieron los soportes de montaje en el subchasis de la fuente de alimentación, así como los dos puntos de conexión de 12 voltios CC en la placa de circuito impreso de la fuente de alimentación para alimentar el ventilador. El soporte de montaje del C128DCR es para un  ventilador de 60 mm.

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 , más avanzado técnicamente , y su dotación de 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 con respecto a la instalada en el C128 "plano" permitió, entre otras cosas, mantener múltiples pantallas de texto para un verdadero sistema de ventanas, o generar gráficos de mayor resolución con una paleta de colores más flexible. Pocos programas comerciales aprovecharon estas posibilidades.

El C128DCR está equipado con nuevas ROM denominadas "ROM de 1986", llamadas así por la fecha de copyright que se muestra en la pantalla de inicio. Las nuevas ROM corrigen varios errores presentes en las ROM originales, incluido un conocido error de desfase de uno 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 ejecutan en el DCR, debido a las dependencias de las funciones de hardware mejoradas del ordenador y las ROM revisadas. [ 28 ]Q⇪ Caps Lock

A pesar de las capacidades mejoradas de vídeo RGB del DCR, Commodore no mejoró BASIC 7.0 con la capacidad de manipular gráficos RGB. El control del VDC en modo gráfico sigue requiriendo el uso de llamadas a primitivas ROM del editor de pantalla o sus equivalentes en lenguaje ensamblador , [ 29 ] o mediante el uso de extensiones de lenguaje BASIC de terceros, como " BASIC 8 " de Free Spirit Software, que añade comandos gráficos VDC de alta resolución a BASIC 7.0 .

Rendimiento del mercado

En enero de 1987, Info informó que "Todos esos rumores sobre la inminente desaparición del C128 podrían tener cierta base". Afirmando que Commodore quería desviar recursos para aumentar la producción del 64C y sus clones de PC, la revista declaró que "Según las últimas noticias en línea, el último C128 saldrá de la línea de producción en diciembre de 1987". [ 30 ] Compute! declaró en 1989: "Si compraste tu 128 con la idea de que el software específico para el 128 sería abundante y estaría disponible rápidamente, probablemente te hayas llevado una gran decepción. Uno de los principales puntos fuertes del 128 es su total compatibilidad con el 64, un punto que ha jugado más en su contra que a su favor". [ 28 ] Debido a que el 128 podía ejecutar prácticamente todo el software de 64 bits, y debido a que las computadoras domésticas de 32/16 bits de próxima generación —principalmente la Commodore Amiga y la 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 parte habitual de programas de dominio público y de revistas para escribir ), lo que llevó a algunos usuarios a lamentar su compra. [ 31 ] 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. [ 32 ] Algunas aventuras de texto de Infocom aprovechaban la pantalla de 80 columnas y la mayor capacidad de memoria. Algunos juegos de C64 se portaron 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 utilizaba 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 del 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. [ 33 ]

Por el contrario, muchos títulos de software de productividad de C64 fueron portados al C128, incluyendo las populares series PaperClip y Paperback Writer. [ 34 ] Este software usó 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. [ 35 ] Con su avanzado lenguaje de programación BASIC, 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 etiquetar el C128 como una "Computadora Personal" en la carcasa. [ 36 ] [ 37 ] Significativamente, el C128 fue la primera computadora Commodore en anunciar su uso de Microsoft BASIC , donde el nombre de Microsoft habría sido un activo competitivo.

BASIC 7.0, junto con la mayor capacidad de memoria, el almacenamiento más rápido y un teclado más estándar, hicieron del C128 una mejor máquina para negocios que el C64, pero las limitaciones impuestas por la compatibilidad con el C64 impidieron que fuera una mejor máquina para juegos. Los entusiastas de los juegos continuaron comprando el 64 más barato, y quienes buscaban máquinas para negocios compraban clones de IBM PC casi exclusivamente para cuando se lanzó el C128. La disponibilidad de compatibles de IBM de bajo costo como el Leading Edge Model D y el Tandy 1000 que, en algunos casos, se vendían por menos que un sistema C128 completo, descarriló la estrategia de Commodore para computadoras de pequeñas empresas . Existía un programa CAD de nivel profesional , Home Designer de BRiWALL, [ 38 ] pero, nuevamente, la mayor parte de este trabajo se realizaba en PC en la época del C128. La principal razón por la que el C128 se siguió vendiendo bastante bien fue probablemente que era una máquina mucho mejor para la programación amateur que el C64, además de ser un modelo sucesor natural para los propietarios con importantes inversiones en periféricos y software para el C64.

Pero, en última instancia, el C128 no pudo competir con los nuevos sistemas de 16/32 bits, que lo superaron 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 tanto como 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 gama alta del Amiga.

Bil Herd afirmó que los objetivos de diseño del C128 no incluían inicialmente una compatibilidad total con el C64. Siempre se contempló algún tipo de compatibilidad, después de que una mujer, decepcionada porque el paquete de software educativo que había escrito para el C64 no funcionaba en el nuevo ordenador de Commodore, se pusiera en contacto con Herd durante la presentación del Plus/4. Sin embargo, cuando el departamento de marketing de Commodore se enteró de esto, anunciaron de forma independiente la compatibilidad total. Herd explicó que la inclusión del procesador Z80 en el C128 garantizaba esta supuesta "compatibilidad total", ya que para admitir el cartucho Z80 del C64, el C128 habría necesitado suministrar energía adicional al puerto del cartucho. También afirmó que el chip de vídeo VDC y el Z80 fueron motivo de problemas durante el diseño del ordenador. Herd añadió: "Solo esperaba que el C128 se vendiera durante un año aproximadamente; pensábamos que un par de millones estarían bien y, por supuesto, no competiría con Amiga ni con el C64". [ 33 ] Después de que Commodore aumentara el precio del 64 por primera vez al introducir el 64C rediseñado en 1986, su ganancia por cada 64C vendido fue, según se informa, mucho mayor que la del C128. [ 39 ]

Presupuesto

  • CPU: [ 40 ]
    • Tecnología MOS 8502 a 2 MHz (1 MHz seleccionable para el modo de compatibilidad con C64 o el modo de 40 columnas de C128)  
    • Zilog Z80 a 4 MHz (funcionando a una frecuencia efectiva de 2 MHz debido a los estados de espera que permiten que el chip de vídeo VIC-II acceda al bus del sistema).    
    • (C128D(CR)): MOS Technology 6502 para el controlador de disquete integrado
  • MMU: La unidad de gestión de memoria MOS Technology 8722 controla la selección del procesador 8502/Z80; la gestión de ROM/RAM; las áreas de RAM comunes; la reubicación de la página cero y la pila.
  • RAM: 128 KB de RAM del sistema, 2  KB de RAM de color dedicada de 4 bits (para el VIC-II E), 16  KB o 64  KB de RAM de vídeo dedicada (para el VDC), hasta 512  KB de RAM de expansión REU.
  • ROM: 72 KB
    • BASIC 7.0 de 28 KB
    • Monitor de código de máquina MLM de 4 KB
    • 8 KB C128 NÚCLEO
    • Editor de pantalla de 4 KB
    • BIOS Z80 de 4 KB
    • ROM de C64 de 16 KB: ≈9  KB BASIC 2.0 de C64 + ≈7  KB KERNAL de C64
    • Generador de caracteres de 4 KB para C64 (o internacional)
    • Generador de caracteres C128 (o nacional) de 4 KB
    • ROM de funciones internas de 32 KB (opcional: para su colocación en el zócalo de la placa base)
    • ROM de función externa de 32 KB (opcional: para su colocación en el zócalo REU)
  • Video:
    • MOS 8564/8566 VIC-II E (NTSC/PAL) para vídeo compuesto de 40 columnas ( si se desea, se puede utilizar un televisor en lugar de un monitor).
      • Acceso directo a registros mediante E/S mapeadas en memoria
      • Modo texto: 40×25, 16 colores
      • Modos gráficos: 160×200, 320×200
      • 8 sprites de hardware
      • 2 KB de RAM de color de 4 bits dedicada; de lo contrario, utiliza la memoria principal como RAM de vídeo.
    • MOS 8563 VDC (o, en C128DCR, el 8568 ) para vídeo digital RGB I de 80 columnas , compatible con monitores IBM PC CGA ; también es posible la visualización monocromática en monitores de vídeo compuesto. Solo se puede usar con televisores que tengan tomas SCART y/o de entrada de vídeo de banda base, además del conector de antena. Es posible obtener color a través de SCART, y solo monocromo a través de la entrada de vídeo de banda base.
      • Acceso indirecto a registros (registro de direcciones, registro de datos en memoria mapeada)
      • Modo texto: Totalmente programable, normalmente 80×25 o 80x50, 16  colores RGBI (no es la misma paleta que la del VIC-II).
      • Modos gráficos: Totalmente programables, los modos típicos son 320x200, 640×200 y 640×400 (entrelazado).
      • 16 KB de RAM de vídeo dedicada (64  KB estándar en C128DCR, C128/C128D se puede actualizar a 64  KB), accesible a la CPU solo mediante un método doblemente indirecto (registro de direcciones, registro de datos en VDC, que a su vez se direccionan a través del registro de direcciones, registro de datos en la memoria mapeada).
      • Funcionalidad de blitter limitada
  • Sonido:
  • Puertos de E/S:
    • Todos los puertos de Commodore 64 con compatibilidad del 100%, además de lo siguiente:
    • Mayor velocidad en modo ráfaga posible en el bus serie
    • Puerto de expansión programable de forma más flexible
    • La salida de vídeo RGBI ( conector DE9 ) es lógicamente similar al conector CGA del IBM PC , pero con una señal compuesta monocromática adicional . Esta señal adicional provoca una pequeña incompatibilidad con ciertos monitores CGA, que se puede solucionar retirando el pin 7 del conector en un extremo del cable.
    • Entrada de teclado externo ( conector DB25 ) (solo C128D(CR))

Véase también

Referencias

  1. "Commodore 128 (Plataforma)" .
  2. "Artículo especial: ¡Feliz cumpleaños!" . Popular Computing Weekly . 1 de mayo de 1987. pp. 14–18 (18). 
  3. Matthews, Ian (11 de julio de 2003). "The Commodore 128: The Most Versatile 8-Bit Computer Ever Made" . commodore.ca . Archivado del original el 26 de julio de 2003. Consultado el 28 de diciembre de 2020 .
  4. Bennett, Chris. "Nuevos ordenadores en la feria CES" (PDF) . Archivado del original (PDF) el 22 de octubre de 2012. Consultado el 13 de julio de 2011 .
  5. "Computadora Commodore 128D" . www.oldcomputers.net . 8 de mayo de 2016. Consultado el 28 de diciembre de 2020 .
  6. "Commodore 128D" . Archivado del original el 24 de julio de 2011. Consultado el 16 de febrero de 2011 .
  7. "Guía del sistema C128 – 9.5 MOVER EL CURSOR EN MODO C64" . commodore.ca . Consultado el 8 de agosto de 2016 .
  8. Waite, Mitchell; Lafore, Robert W.; Volpe, Jerry (1982). El libro oficial del Commodore 128. HW Sams. ISBN 9780672224560Un teclado numérico ( con las teclas numéricas agrupadas como en una calculadora) resulta útil para quienes introducen grandes cantidades de datos numéricos, pero esta función no estaba presente en el Commodore 64. Dado que muchos usuarios del Commodore 64 pasaban horas introduciendo programas en lenguaje máquina mediante largas listas de números, esta función era muy solicitada.
  9. Waite, Lafore y Volpe 1982 : "...hacen que el C128 sea más atractivo para aquellos desarrolladores de software empresarial establecidos que están acostumbrados a trabajar con configuraciones de teclado más tradicionales."
  10. Código fuente y manual del programador de Commodore CP/M.
  11. "Plus/4 y C-16: Decepcionantemente mediocres" (PDF) .
  12. "Portada de Commodore; vista previa de las impresoras Plus 4, Amiga y Alphacom" .
  13. "Guía del sistema C128 Apéndice I" . Commodore.ca. Archivado del original el 31 de mayo de 2012. Consultado el 18 de abril de 2012 . 
  14. ^ Waite, Lafore y Volpe 1982
  15. "Se descubre el eslabón perdido" . RUN . Número especial 2. 1986. págs. 66–68 .  
  16. "Guía del sistema C128 - Sección 2" . www.commodore.ca . Consultado el 4 de noviembre de 2025 .
  17. Simmonds y Borden 1986 , pág. 84.
  18. "Guía del usuario de GW-BASIC" .
  19. "Guía del sistema C128 - Sección 17" . www.commodore.ca . Consultado el 4 de noviembre de 2025 .
  20. ↑ ¡ Calcula! Abril de 1985
  21. "¿Por qué el Commodore C128 tiene un rendimiento deficiente al ejecutar CP/M?" . Stack Exchange .
  22. "Potenciando CP/M" . Los programadores de CP/M C128 que deseen agregar o modificar características del sistema operativo deberían intentar realizar cambios en la BIOS. Por un lado, el código fuente de la BIOS está disponible, pero no lo está el de BDOS ni el de CCP.
  23. "Guía del sistema C128 – 2.2.1 TABLA DE CAMBIO DE MODO" . commodore.ca . Consultado el 8 de agosto de 2016 .
  24. jul86-64 ModoVelocidad (A)
  25. jul86-64 ModoVelocidad (B)
  26. Expansiones de memoria para el Commodore 128
  27. "Commodore 128D" . Historia de la informática . 9 de enero de 2024. Consultado el 9 de enero de 2024 .
  28. 1 2 Randall, Neil (junio de 1989). "Solo 128" . Compute! Vol. 11, n.º 6 #109. pág. 54. Consultado el 11 de noviembre de 2013 .   
  29. Wallace, Louis R; Darus, David P (febrero de 1986). "Gráficos de ultra alta resolución: un avance en su C-128" . RUN . Vol. 3, n.º 2, n.º 26, págs. 34-39 .   
  30. "The Rumor Mill" . Info . N.° 13. Enero-febrero de 1987. pág. 52.  
  31. "The Mail Run" . RUN . Vol. 3, n.º 11, n.º 35. Noviembre de 1986. págs. 132–133 .   
  32. Randall, Neil (octubre de 1988). "Más juegos" . Compute!. Vol. 10, n.º 10, n.º 101, pág. 47. Consultado el 10 de noviembre de 2013 .   
  33. 1 2 En memoria del comodoro C128 Archivado el 29 de noviembre de 2014 en Wayback Machine
  34. "Digital Solutions Inc" . Revista Commodore (Publicidad). Vol. 8, n.º 7. Julio de 1987. pág. 2.   
  35. Guerra, Bob (marzo de 1986). "Productividad Plus para el C-128" . RUN . Vol. 3, n.º 3, n.º 27, págs. 24-36 .   
  36. Kevelson, Morton (agosto de 1985). "Ceremonia de inauguración del Commodore 128" . Ahoy! N.° 20, págs. 29-34 .  
  37. "The New Commodore PC" . RUN . Vol. 2, n.º 3, n.º 15. Marzo de 1985. pág. 6.   
  38. "Briwall" . RUN (Publicidad). Vol. 6, n.º 4, n.º 64, pág. 46.   
  39. Leemon, Sheldon (febrero de 1987). "Microscopio" . Compute!. Vol. 9, n.º 2, n.º 81, pág. 24. Consultado el 9 de noviembre de 2013 .   
  40. Wiese, William Jr. (julio de 1986). "El sistema informático personal Commodore 128" . BYTE . Vol. 11, n.º 7. McGraw-Hill . págs. 269-278 . El CP/M del C-128 utiliza los procesadores Z80 y 8502. El Z80 ejecuta la mayoría de las funciones del BIOS del CP/M.   

Bibliografía

  • Greenley, Larry, et al. (1986). Guía de referencia del programador de Commodore 128. Bantam Computer Books/Commodore Publications. ISBN 0-553-34378-5.
  • Gerits, K.; Schieb, J.; Thrun, F. (1986). Commodore 128 Internals . 2.ª ed. Grand Rapids, Michigan: Abacus Software, Inc. ISBN 0-916439-42-9Edición original en alemán (1985), Düsseldorf, Alemania Occidental: Data Becker GmbH & Co. KG.
  • Simmonds, Thomas Jr.; Borden, Jim (septiembre de 1986). "Instant Data Statements" . Run . N.°  33. págs. 82–84 . 
  • Guía del usuario de Commodore 128 CP/M. Archivada el 5 de marzo de 2016 en Wayback Machine.
  • VICE: Emulador versátil de Commodore
  • Z64K: Emuladores de C128, C64, VIC20 y Atari 2600
  • Revista RUN, número 18, junio de 1985
  • hackaday.com: Artículo invitado: La verdadera historia de cómo se modificó el Commodore C128, por Bil Herd (fecha: 09/12/2013)
  • ¡Commodore 128 sigue vivo!: Foros de C128