El KIM-1 , abreviatura de Keyboard Input Monitor , es un pequeño ordenador de placa única basado en 6502 desarrollado y producido por MOS Technology, Inc. y lanzado en 1976. Tuvo mucho éxito en ese período, debido a su bajo precio (gracias al económico microprocesador 6502) y su capacidad de expansión de fácil acceso.
El primer procesador de MOS Technology, el 6501 , podía conectarse a placas base existentes que utilizaban el Motorola 6800 , lo que permitía a los usuarios potenciales (es decir, ingenieros y aficionados) poner en marcha un sistema de desarrollo muy fácilmente utilizando el hardware existente. Motorola presentó una demanda de inmediato, lo que obligó a MOS a retirar el 6501 del mercado. El cambio de la disposición de los pines produjo el 6502 , "fácil de demandar" . Aunque en otros aspectos era idéntico al 6501, tenía la desventaja de no tener una máquina en la que los nuevos usuarios pudieran empezar a utilizar rápidamente la CPU .
Chuck Peddle , líder del grupo 650x en MOS (y antiguo miembro del equipo 6800 de Motorola), diseñó el KIM-1 para satisfacer esta necesidad. El KIM-1 llegó al mercado en 1976. Si bien la máquina estaba pensada originalmente para que la utilizaran ingenieros, rápidamente encontró una gran audiencia entre los aficionados. Se podía construir un sistema completo por menos de 500 dólares estadounidenses con la compra del propio ordenador por sólo 245 dólares estadounidenses , y luego añadir una fuente de alimentación, un terminal de segunda mano y una unidad de cinta de casete .
Había muchos libros disponibles que demostraban pequeños programas en lenguaje ensamblador para el KIM, incluido The First Book of KIM de Jim Butterfield et al . [1] Un programa de demostración convirtió al KIM en una caja de música al alternar un bit de salida controlable por software conectado a un pequeño altavoz . El programador canadiense Peter R. Jennings produjo lo que probablemente fue el primer juego para microcomputadoras que se vendió comercialmente, Microchess , originalmente para el KIM-1.
A medida que el sistema se hizo más popular, una de las adiciones más comunes fue el lenguaje de programación Tiny BASIC . Esto requería una expansión de memoria fácil; "toda la decodificación de los primeros 4 K se proporciona directamente en la placa KIM. Todo lo que necesitas proporcionar son 4 K más de chips de RAM y algunos buffers". [2] La parte difícil fue cargar el BASIC desde la cinta de casete , una prueba de 15 minutos propensa a errores.
Rockwell International , que fue el segundo fabricante del 6502 junto con Synertek, lanzó su propio microordenador en una sola placa en 1978, el AIM-65 . El AIM incluía un teclado ASCII completo, una pantalla LED alfanumérica de 14 segmentos y 20 caracteres y una pequeña impresora similar a una caja registradora . Se proporcionaba un monitor de depuración como firmware estándar para el AIM, y los usuarios también podían comprar chips ROM opcionales con un ensamblador y un intérprete Microsoft BASIC para elegir.
Por último, estaba la variante Synertek SYM-1 , que podría decirse que era una máquina a medio camino entre el KIM y el AIM; tenía la pequeña pantalla del KIM y un teclado de membrana simple de 29 teclas (solo dígitos hexadecimales y teclas de control), pero proporcionaba interfaces de expansión estándar AIM y verdadero RS-232 (soportaba tanto nivel de voltaje como modo de bucle de corriente).
El KIM-1 consistía en una única placa de circuito impreso con todos los componentes en un lado. Incluía tres circuitos integrados principales : la CPU MCS6502 y dos dispositivos de memoria/interfaz periférica MCS6530 . Cada MCS6530 consta de una ROM programable de 1024 x 8, una RAM de 64 x 8, dos puertos bidireccionales de ocho bits y un temporizador de intervalo programable. [3] El folleto del KIM-1 decía "RAM de 1 K BYTE", pero en realidad tenía 1152 bytes. La memoria estaba compuesta por ocho RAM estáticas de 6102 (1024 x 1 bits) y las dos RAM de 64 bytes de los MCS6530. En la década de 1970, los tamaños de memoria se expresaban de varias formas. Los fabricantes de semiconductores utilizaban un tamaño de memoria preciso, como 2048 por 8, y a veces indicaban el número de bits (16384). Las computadoras mini y mainframe tenían distintos anchos de memoria (de 8 bits a más de 36 bits), por lo que los fabricantes usaban el término "palabras", como 4K palabras. Los primeros anuncios de computadoras para aficionados usaban tanto "palabras" como "bytes". Era común ver "4096 palabras", "4K (4096) palabras" y "4 K bytes". El término KB no se usaba o era muy poco común. El KIM-1 se presentó en la edición de abril de 1976 de BYTE y el anuncio decía "1 K BYTE RAM" y "2048 ROM BYTES". [4]
También se incluyeron seis LED de 7 segmentos (similares a los de una calculadora de bolsillo ) y un teclado numérico de 24 teclas tipo calculadora. Muchos de los pines de las secciones de E/S de las 6530 estaban conectados a dos conectores en el borde de la placa, donde podían usarse como un sistema serial para controlar un ASR de teletipo modelo 33 y un lector y perforador de cintas de papel .
Uno de estos conectores también funcionaba como conector de fuente de alimentación e incluía líneas analógicas que podían conectarse a una grabadora de casetes .
Los sistemas de microcomputadoras anteriores, como el MITS Altair, utilizaban una serie de interruptores en la parte frontal de la máquina para introducir datos. Para hacer algo útil, el usuario tenía que introducir en la máquina un pequeño programa conocido como "cargador de arranque" mediante estos interruptores, un proceso conocido como arranque . Una vez cargado, el cargador se utilizaba para cargar un programa más grande desde un dispositivo de almacenamiento, como un lector de cinta de papel . A menudo se tardaba más de cinco minutos en cargar el pequeño programa en la memoria, y un solo error al accionar los interruptores significaba que el cargador de arranque bloqueaba la máquina. Esto podía hacer que parte del código de arranque quedara ilegible, en cuyo caso el programador tenía que volver a introducirlo todo y empezar de nuevo.
El KIM-1 incluía un software de monitorización de interfaz de terminal integrado algo más complejo llamado TIM que estaba "contenido en 2048 bytes de ROM en dos matrices de 6530 ROM/RAM/IO". [5] Este software de monitorización incluía la capacidad de ejecutar una cinta de casete para almacenamiento, controlar la pantalla LED y ejecutar el teclado. Tan pronto como se encendía la máquina, el monitor se ejecutaba y el usuario podía comenzar a interactuar inmediatamente con la máquina a través del teclado. El KIM-1 fue uno de los primeros ordenadores de placa única , que solo necesitaba una fuente de alimentación externa para permitir su uso como un ordenador experimental independiente. Este hecho, más el costo relativamente bajo de comenzar, lo hizo bastante popular entre los aficionados hasta fines de la década de 1970.
El diseñador de la TV Typewriter , Don Lancaster , desarrolló una pantalla de vídeo de bajo coste para la KIM-1. La placa adicional podía mostrar hasta 4000 caracteres en un televisor o monitor. Una configuración típica sería de 16 líneas de 32 caracteres en mayúsculas. La placa tenía sólo 10 circuitos integrados de bajo coste y utilizaba la memoria de la KIM para el almacenamiento de la pantalla.
El proyecto TVT-6 apareció en la portada de Popular Electronics en julio de 1977. [6] El kit completo se podía pedir a PAiA Electronics por US$34,95 .
Lancaster amplió este diseño para incluir color y gráficos simples en The Cheap Video Cookbook . [7]
Cada bit está representado por tres tonos de 2,484 ms de duración. El primero siempre es de 3700 Hz, el del medio es de 3700 Hz para "0" o de 2400 Hz para "1", y el último siempre es de 2400 Hz. Esto da una tasa de bits efectiva de 134,2 bit/s. La detección se realiza a través de un PLL utilizando LM565. [8]
El formato de los datos en la cinta es: 100 bytes con el valor 0x16 (SYN, Synchronous Idle), un byte con el valor 0x2A (*), el número de identificación del registro, la dirección de inicio (dos caracteres para el byte bajo de la dirección, dos caracteres para el byte alto), la dirección final (en el mismo formato), los datos reales, un byte con el valor 0x2F (carácter "/"), una suma de comprobación de dos bytes y dos bytes con el valor 0x04 (EOT, End Of Transmission). [8]
Cada byte de memoria se almacena como dos caracteres ASCII secuenciales en la cinta, por ejemplo, el B5 hexadecimal en la memoria (181 decimal) se almacenaría como dos caracteres ASCII secuenciales "B" y "5" (42 y 35 hexadecimales). [8]