Los KC 85 [5] (KC significa "Kleincomputer" o "pequeña computadora") fueron modelos de microcomputadoras ( KC 85/2 , KC 85/3 y KC 85/4 ) construidas en Alemania del Este por VEB Mikroelektronik " Wilhelm Pieck " Mühlhausen . El primer modelo de la serie, el HC 900 , originalmente diseñado como una computadora doméstica y presentado en 1984, fue renombrado como KC 85/2 en 1985 para restarle importancia a su uso como bien de consumo. [6] [7] [8]
A pesar de los nombres similares, las computadoras KC 85 no estaban directamente relacionadas con la serie KC 87 producida por VEB Robotron -Meßelektronik "Otto Schön" Dresden . [9] [10]
La disponibilidad de la serie KC 85 para clientes privados era muy limitada. Los ordenadores se utilizaban principalmente en instituciones educativas, organizaciones y empresas.
Se basaron en la CPU U880 (un clon de Alemania del Este del Z80 ), con velocidades de reloj de 1,75 MHz (KC 85/2, KC 85/3) y 1,77 MHz (KC 85/4).
A diferencia de las computadoras personales de la serie Pravetz 8 , fabricadas en Bulgaria , que estaban equipadas con pantallas dedicadas, disquetes y teclados de calidad, toda la serie KC utilizaba televisores para fines de visualización. Los conectores provistos eran salida de TV a través de cable coaxial , video compuesto , video RGB . Se utilizaron grabadoras de cinta genéricas para el almacenamiento de datos. El KC 85 usaba un teclado separado controlado por un IC de control remoto.
El KC 85/2 fue el primer ordenador fabricado en Mühlhausen y sólo tenía ROM de fuentes para letras mayúsculas, y no BASIC en ROM. Más tarde, se introdujo el KC 85/3 y este tenía un intérprete KC-BASIC [de] en ROM , liberando al usuario de tener que cargarlo desde un casete cada vez. Ambos sistemas tenían típicamente 16 KB de RAM libre, pero podían expandirse con módulos adicionales. Los zócalos de los módulos ocupan un lugar destacado en las fotos, ya que ocupan el 50% superior de la carcasa. El KC 85/4 tenía 64 KB de RAM, sin contar la RAM de vídeo de más de 40 KB, y mejores capacidades gráficas. De hecho, el KC 85/2 y el KC 85/3 eran prácticamente indistinguibles en el diseño de la placa, excepto por una ROM diferente y un altavoz piezoeléctrico interno. La placa KC 85/4 fue rediseñada, pero presentaba la misma PCB de vídeo digital a analógico que la generación anterior.
Todas las computadoras de la serie KC de Mühlhausen eran capaces de mostrar gráficos con una resolución de 320x256 píxeles. El diseño de la memoria RAM de video se dividió de manera extraña en una porción de 256x256 y una porción de 64x256 para evitar una multiplicación que consume mucho tiempo con 40 al direccionar la memoria de video. En el KC85/4, el diseño de la memoria RAM de video se cambió de manera incompatible con versiones anteriores a 40 columnas de 256 bytes y los bytes de una columna se colocaron en direcciones de memoria consecutivas. Por supuesto, la interfaz del núcleo se mantuvo tal como estaba y el software que dependía de ella podía seguir ejecutándose sin cambios. Las posibilidades de color estaban limitadas al estilo típico de las celdas de color: cada celda de 4x8 píxeles tenía un solo color de primer plano (de 16) y de fondo (de 8, ligeramente más oscuro que los equivalentes de primer plano). Esta limitación se redujo a 1x8 en el KC 85/4 (las celdas de color tanto en el KC85/3 como en el KC85/4 eran bastante pequeñas en comparación con los sistemas contemporáneos). El KC85/4 también presentaba un modo especial de 4 colores (negro, blanco, rojo, cian) que podía colorear cada píxel de forma independiente. Los colores no estaban paletizados. No había un "modo de texto", todo tenía que ser pintado; esto combinado con el diseño de la RAM de video descrito anteriormente y el código ROM hizo que el KC 85/2-3 fuera bastante lento en la impresión y el desplazamiento (mejorado mucho en el KC 85/4). No había blitters , sprites o desplazamiento de hardware, ni un solo registro de hardware con el que influir en el proceso de dibujo de la pantalla, la única excepción era el atributo de parpadeo, cuya frecuencia se podía ajustar programando el registro CTC dedicado y que no requería asistencia de la CPU. El KC85/4 agregó un bit para seleccionar cuál de los dos buffers mostrar y un bit para cambiar entre color alto (usando celdas de color) y modo de alta resolución de color (usando la RAM de color como un segundo plano de bits ). El subsistema de video fue desarrollado internamente e implementado completamente con unas pocas docenas de circuitos integrados de la serie 7400. Con el KC 85/2 y el KC 85/3, el acceso de la CPU a la memoria de video interferiría con el rediseño de la pantalla y causaría distorsiones visuales ya que los datos de píxeles no se podían leer desde la VRAM y la tira de 8 píxeles cargada previamente simplemente se dibujaba nuevamente. Este problema también se solucionó en el KC 85/4: un período de video de 8 píxeles horizontales se divide uniformemente en 3 fases: (1) un acceso de CPU de 8 bits de ancho (r/w), (2) obtener 8 bits de datos de píxeles y (3) obtener 8 bits de datos de color. El KC 85/4 también fue el primero capaz de cambiar entre 2 ubicaciones independientes en la RAM de video, lo que permite el doble almacenamiento en búfer.
La salida de sonido y cinta se implementó mediante un CI CTC que impulsaba flip-flops para generar ondas cuadradas . Un cero se representaba con un período de un tono de 2400 Hz, un uno con un tono de 1200 Hz. También había un tono de sincronización de 600 Hz prefijando cada byte. La señal de la cinta se leía de nuevo, se pasaba a través de un filtro de paso de banda y se generaba una interrupción cada vez que la señal de audio cruzaba la línea base de 0 V.
Los datos se almacenaban en cinta en bloques de 128 bytes. Cada bloque estaba precedido por un breve silencio y una serie de 1 bits. Aproximadamente 8000 (oficialmente 7 segundos, pero podía ser más corto) para el primer bloque y 160 (133 ms) para cada bloque posterior. A continuación se encontraba el número de bloque de 1 byte, 128 bytes de datos y 1 byte de suma de comprobación . La cinta podía rebobinarse en caso de que un bloque no se leyera correctamente y la carga continuaría en ese desplazamiento de bloque. El primer bloque del archivo contenía metadatos : nombre de archivo, tipo de archivo, dirección de carga, dirección del punto de entrada, etc.
La conmutación de bancos de memoria era algo habitual, ya que el espacio total de direcciones era de tan solo 64 KB. Al ejecutar el BASIC de Mühlhausen, la RAM de vídeo (en 0x8000) se almacenaba únicamente durante las operaciones de vídeo, por lo que la RAM libre máxima del BASIC era de unos 47 KB en lugar de 32 KB. El sistema de extensión de módulos también utilizaba la conmutación de bancos y, en teoría, hacía posible ampliar la RAM a megabytes (se podían utilizar incluso más módulos añadiendo dispositivos de expansión, lo que daba lugar a una especie de torre), pero ni el BASIC ni la mayoría de las aplicaciones estaban preparadas para utilizar este espacio libre.
El teclado del KC 85/2-4 se basaba en el U807D, un clon del Mullard SAB3021 utilizado en los mandos a distancia por infrarrojos de los televisores. El U807D escaneaba las 63 teclas regulares con sus 8 + 8 pines de accionamiento/detección y producía una señal modulada por ancho de pulso de 7 bits (0:5 ms, 1:7 ms). El ordenador principal detectaría la presencia de ráfagas de delineación de pulsos (150 us) y generaría interrupciones . La CPU principal se interrumpiría así 7 veces por cada pulsación de tecla y podría medir el tiempo entre las interrupciones para recuperar la palabra de datos en serie . Una tecla especial de cambio hacía que el U807D produjera los códigos de tecla 64-127. Para el ordenador el teclado aparecía como un dispositivo con 126 teclas. La transmisión se producía a través del mismo cable que proporcionaba energía al teclado. Dado que el teclado estaba conectado al riel de voltaje de 12 V a través de una resistencia , se podía medir un aumento en el consumo de corriente entre la resistencia y el cable como una caída de voltaje, dentro de la computadora principal. El teclado solo tenía que establecer una salida digital baja y derivar algo de corriente adicional a tierra. Mientras tanto, el voltaje de suministro del teclado se mantuvo estable mediante un simple diodo Zener de 9 V , con el que el IC del controlador estaba conectado en paralelo y, si permanecía dentro de una cierta ventana de uso de corriente, 9 V era lo que vería.
Había un solo cristal de 8867 kHz oscilando al doble de la frecuencia de crominancia PAL y se utilizó un bucle de enganche de fase de división por 10, multiplicación por 16 para derivar un reloj de 14,2 MHz del que se derivaron el reloj de píxeles (7,1 MHz) y el reloj del procesador (1,77 MHz) por división por 2 y 8, respectivamente (KC85/2, KC85/3 y KC85/4 utilizaron el mismo circuito para este propósito, ya que la PCB de conversión de video digital a analógico donde se encontraba la generación del reloj no cambió entre revisiones). Todavía había una ligera diferencia en la velocidad de reloj efectiva, el KC85/2 y el KC85/3 se saltaban algunos ciclos de CPU al final de cada línea de exploración , para proporcionar de manera sencilla a todo el sistema la ilusión de una resolución horizontal (incluido el borrado) divisible por 8, el KC85/4 no lo hizo. Ninguna de las revisiones tenía disposiciones para interrupciones de borrado verticales ni interrupciones de borrado horizontales .
Los diagramas de cableado están disponibles gratuitamente y también había muchos esquemas y piezas de hardware diferentes (a menudo hechos en casa). Varias revistas publicaron programas y diagramas de hardware y también instrucciones sobre cómo construirlos.
El KC 85 podía programarse en lenguaje ensamblador y BASIC (el KC 85/2 tenía que cargar BASIC desde cinta), pero era posible utilizar varios módulos (vendidos por VEB Mikroelektronik Mühlhausen) o cargar software desde cinta, permitiendo así programar en Forth y Pascal . El sistema operativo era CAOS ("Cassette Aided Operating System"). Se trataba de un simple monitor donde se podían ejecutar diferentes "servicios del sistema" como LOAD (cargar un programa), JUMP (en la ROM del módulo de extensión), MODIFY (celdas de memoria) o BASIC (si había sido integrado en la ROM o se había cargado desde cinta). Se podían añadir nuevos comandos al menú mediante números mágicos (estándar: 7F 7F 'commandname' 01
) en cualquier lugar del espacio de memoria.
En los últimos años de la RDA se fabricó un dispositivo de disquete (también de tipo "torre") que incluía una CPU de 4 MHz y una unidad de disquete de 5¼" (podía tener hasta cuatro). Estos (literalmente: el U 880 A del dispositivo lo hacía) podían ejecutar CP/M , que se llamaba MicroDOS (había que SALTAR del sistema base al sistema de disquetes y arrancar desde un disquete, otro CAOS o MicroDOS). También había un modo de extensión de disco para CAOS.
Hubo muchos proyectos diferentes para el KC 85: