As de Júpiter
El Jupiter Ace de Jupiter Cantab fue un ordenador doméstico británico de principios de la década de 1980. Ace se diferenciaba de otras microcomputadoras de la época en que su entorno de programación usaba Forth en lugar del BASIC más popular.
Después de que Jupiter Cantab dejara de comercializarse, la marca fue adquirida por Boldfield Computing Ltd en 1984, antes de ser finalmente vendida a la empresa de Paul Andrews, Andrews UK Limited, en 2015.
Historia
Jupiter Cantab fue formado por Richard Altwasser y Steven Vickers. Ambos habían estado en el equipo de diseño del Sinclair ZX Spectrum: Altwasser trabajó en el desarrollo del ZX-81 y en el diseño del hardware del Spectrum. Vickers adaptó y amplió la ROM 4K ZX-80 a la ROM 8K ZX-81 y escribió la mayor parte de la ROM para Spectrum.
El Jupiter Ace lleva el nombre de una de las primeras computadoras británicas, el Pilot ACE.
Las ventas al público en general fueron lentas. Inicialmente, la computadora solo estaba disponible por pedido por correo, y Jupiter Cantab informó que había dificultades de producción, pero estas se habían superado en enero de 1983 y las unidades estaban llegando a las tiendas. El uso de Forth en lugar de la opción más habitual de BASIC, y la disponibilidad y el éxito del ZX Spectrum, así como el software publicado limitado, la carcasa deficiente y la memoria inicial pequeña, todo ello pesaba en contra de una mayor aceptación en el mercado.
Ventas
Las ventas de la máquina nunca fueron muy grandes; el número informado de Ace's vendidos antes de que Jupiter Cantab cerrara sus puertas fue de alrededor de 5.000. A principios de la década de 2000, las máquinas sobrevivientes son poco comunes y, a menudo, alcanzan precios altos como artículos de colección.
Forth, aunque estructurado y potente, se consideraba difícil de aprender, y el conocimiento de BASIC adquirido a partir de la familiaridad con otras computadoras domésticas no era de ayuda práctica para aprenderlo. Una revisión de 1982 indicó que "El éxito de Jupiter Ace dependerá de la aceptación de otro lenguaje de microcomputadoras por parte del público comprador de máquinas".
Además, solo había una gama muy limitada de software publicado (ya fueran programas comerciales o programas de escritura impresos en revistas de pasatiempos) para la máquina, y estos estaban restringidos por la pequeña cantidad de RAM del modelo base.
Los intentos de promover Ace en el mercado educativo también fracasaron; las dudas sobre si Forth sería relevante para los programas de examen y la falta de apoyo para Forth por parte del personal docente fueron cuestiones clave. Los alumnos estaban más interesados en aprender el BASIC ampliamente utilizado que un lenguaje utilizado por una sola máquina (poco común) con una sintaxis RPN peculiar.
Por último, los gráficos basados en mosaicos se compararon mal con los gráficos basados en píxeles de otras máquinas, que también eran de color en lugar de monocromáticos de Ace. Esto restringió las ventas en gran medida a un nicho de mercado de entusiastas de la programación técnica.
Diseño
El Jupiter Ace a menudo se compara con el ZX81 debido a su tamaño similar, bajo costo y factor de forma similar. Internamente, su diseño es más similar al ZX Spectrum, aunque Ace también tenía una memoria de video dedicada de 2 KB, evitando en parte la ralentización cuando los programas accedían al mismo banco (los mismos chips) que la memoria de video. Al igual que el Spectrum, el Ace usaba teclas de goma conductora negra.
Las capacidades de audio estaban controladas por la CPU con frecuencia y duración programables. La salida de sonido era a través de un pequeño altavoz incorporado.
Como era común en ese momento, usaba una grabadora de cinta común en lugar de unidades de disco/cinta. Del mismo modo, se necesitaba un televisor como pantalla, pero solo en blanco y negro, en lugar del color que admiten los modelos de la competencia, como el Spectrum.
El Jupiter Ace se basó en el Zilog Z80, en el que los diseñadores tenían experiencia previa trabajando en el Sinclair ZX81 y el ZX Spectrum.
Tanto los gráficos como el texto podrían mostrarse al mismo tiempo: (1) la redefinición de los mosaicos de caracteres proporcionó gráficos estándar de 256 × 192 limitados a los 128 caracteres disponibles (definibles) de 8 × 8, simultáneamente con el trazado de gráficos de 64 × 48.
Altavoz interno controlado directamente por la CPU en modo de tarea única, con control de frecuencia y duración del sonido en ms.
El almacenamiento se realizó a través de una interfaz de cinta de casete a 1500 baudios. Los archivos se pueden usar para el almacenamiento de programas Forth (código compilado) o volcados de memoria sin procesar.
Memoria
El Ace tenía una ROM de 8 KB que contenía el núcleo y el sistema operativo de Forth, y el diccionario predefinido de palabras de Forth en unos 5 KB. Los 3 KB restantes de ROM admitían varias funcionalidades: biblioteca de números de punto flotante y tabla de definiciones de caracteres, acceso a grabadoras, descompilación y redefinición de 'palabras' (es decir, rutinas). Parte de la ROM se escribió en código de máquina Z80, pero otra parte también se codificó en Forth.
Los siguientes 8 KB se construyeron en RAM que solo se decodificó parcialmente, con 2 KB de RAM de video repetidos dos veces y 1 KB de RAM de usuario repetidos 4 veces (con la misma memoria apareciendo en varias direcciones de memoria diferentes).
Usar el espejo de dirección inferior de la RAM de video seleccionaría la prioridad de la CPU, lo que generaría algunos píxeles aleatorios momentáneos en la pantalla cuando el subsistema de video y la CPU accedieran a la RAM de video en el mismo ciclo de reloj. El uso de la dirección más alta pausaría brevemente la CPU en la interferencia, lo que afectaría la sincronización del programa y haría que este modo no sea adecuado para las operaciones de E/S. Dado que la RAM de video estaba parcialmente separada de la dirección principal y los buses de datos, en su mayor parte, el subsistema de video y la CPU podían operar en paralelo.
Los primeros 16 KB del mapa de memoria se usaron para ROM, video y RAM disponible para el usuario, dejando los segundos 16 KB del mapa de memoria libres para la extensión de RAM y los 32 KB superiores sin definir.
Un banco de 1K permitió la redefinición de la mayoría de sus 128 caracteres basados en ASCII en formato de mapa de bits de 8 × 8 píxeles. El otro banco de 1K almacenó la visualización de pantalla completa de 24 filas × 32 columnas de caracteres en blanco y negro. Se pretendía que el color se lograra como expansión, pero aunque se diseñó una placa de gráficos en color, nunca se produjo comercialmente.
1 KB de RAM con la opción de un paquete de RAM de 16 KB, y luego uno de 32 KB. Boldfield Computing también comercializó una PCB que convirtió el conector de borde en compatibilidad eléctrica con un Sinclair ZX81, lo que permitió el uso del paquete ZX81 16K RAM.
Especificaciones
Características | Valor |
---|---|
Procesador | Zilog Z80A reloj a 3,25 MHz. |
Sistema operativo | FORTH (como lenguaje de programación y interfaz de línea de comando). |
Memoria | 2KB para Video + 1 base KB ampliable hasta 49 KB (excluido el video). |
Video | Subsistema independiente con 2 dedicados Bancos SRAM: Pantalla (1 KB) + Azulejos Char (1 KB). |
Sonido | Altavoz interno, impulsado por la CPU (no dedicado). |
Ampliación | 2 conectores: Principal (CPU) + Video(Screen + AV señal). |
Teclado y Charset | 40 teclas Qwerty Keyboard (acceso de símbolos con llave extra).
All chars in Charset (based on ASCII-1967) being redefinable. |
Conjunto de caracteres | Basado en ASCII-1967 con extensiones de caracteres ZX Spectrum que incluyen ↑, £ y ©. |
Las referencias a Ace RAM a veces incluyen la memoria de video separada de 2 KB, que no estaba disponible para la programación, lo que genera cierta confusión. Del mismo modo, a veces se argumenta que, debido a la eficiencia de Forth, la memoria RAM estándar de 1 KB era comparable con al menos 2 KB en un sistema BASIC.
Programación
Su característica más distintiva fue la elección de Forth, un lenguaje estructurado. La compilación en subprocesos permitió que los programas escritos se ejecutaran casi tan rápido como muchos lenguajes compilados nativos cargados por computadoras más caras. Forth se consideró bien adaptado a las microcomputadoras con su pequeña memoria y procesadores de rendimiento relativamente bajo. Los programas de Forth son eficientes en memoria; a medida que crecen, reutilizan más código previamente definido. Las estructuras de control se pueden anidar en cualquier nivel, limitadas solo por la memoria disponible. Esto permitió implementar programas complejos, permitiendo incluso la programación recursiva. Se afirmó que Ace's Forth era 'diez veces más rápido que Basic'. y usó menos de la mitad de la memoria (un porcentaje de costo significativo de las computadoras de gama baja de la época) de un programa equivalente escrito en BASIC interpretado. También permitió una fácil implementación de rutinas de código de máquina si era necesario.
Ace's Forth se basó principalmente en Forth-79, con algunas diferencias relevantes, en particular, agregó verificación de sintaxis para controlar las estructuras y las construcciones definidoras y se agregaron algunas palabras adicionales basadas en sonido, video y cinta BASIC comunes comandos La implementación carecía de algunas palabras Forth de uso menos frecuente, que se implementan fácilmente si es necesario. La comprobación de errores en tiempo de ejecución se puede desactivar para aumentar la velocidad entre un 25 % y un 50 %.
Descompilación
Su Forth se adaptó al hardware de la computadora doméstica que usa cinta sin disco al poder guardar/cargar los 'vocabularios compilados' del usuario, en lugar de los bloques de programación numerados habituales que se usan en los sistemas de disquete.
La descompilación evitó desperdiciar RAM al simular un sistema de bloques ausente, utilizado tanto con controladores de disco como de cinta (estos últimos no deben confundirse con las grabadoras de cinta). Como reemplazo, incluía un archivo de datos adicional, para datos binarios sin procesar. Estas soluciones eran exclusivas del Jupiter Ace.
DEFINITOR vs COMPILADOR
Para permitir la descompilación, distinguió la creación habitual de palabras definidoras y compiladoras de Forth, reemplazando el par de creación CREATE.. DOES> con:
- DEFINER... - Sí. Crear nuevas palabras Definitivas, generalmente usadas para definir y construir estructuras de datos. Similar a CREATE. hace uso en la norma FORTH. (Ejemplo: Agregar estructuras de datos como Arrays, Records,...).
- Competidor.. Crear nuevas palabras Compiling, menos frecuentemente utilizadas para ampliar el idioma con palabras compiladoras donde CREATE.DOES confía en la implementación FORTH. (Ejemplo: Nuevas estructuras de control de compiladores como caso, bucle infinito,...).
Estos 2 pares definidores, en lugar de uno solo, permitieron que Ace descompilara sus programas, a diferencia de los sistemas habituales de Forth. Esta capacidad de descompilación fue una solución a la ausencia del sistema de disco más flexible utilizado por Forth. Al no almacenar el código fuente de un programa Forth, sino compilar el código después de editarlo, evitó por completo la emulación de una unidad de disco/cinta en la memoria RAM de la computadora. También ahorró tiempo en la lectura y escritura de programas desde cintas de casete. Esta solución compatible con cintas y que ahorra RAM era exclusiva de Jupiter Ace Forth.
Los nombres pueden ser equívocos fuera de un contexto Forth, ya que todas las palabras se compilan cuando se declaran. DEFINER define una nueva clase (como una matriz) que construirá (compilará) un objeto de matriz. Estos están activos en 'Intérprete'. Al emparejar este modo de interacción, el COMPILADOR define una estructura de programación (generalmente un par o un triplete) como IF-ELSE-THEN. Estos programas de 'Programación estructurada' están activos en 'Compilar' modo (que es simplemente construir una nueva Forth Word). En resumen, el "modo de interpretación" significa Etapa de ejecución, mientras que "Modo de compilación" se refiere a una etapa de Edición.
Desarrollo
Evitar las fuentes se compensó almacenando los comentarios ingresados en el código con la salida compilada, la compilación tradicional descartaría dichos comentarios. Luego, los comentarios se recuperaron al descompilar. Como resultado de "el código es la fuente", las palabras modificadas (editadas) exigirían la actualización de todo el código usando el recién editado. Esto se hizo con el comando REDEFINE no estándar.
Aunque no está diseñado explícitamente para tal propósito, el Forth compilado podría utilizarse para extensiones de ROM en el sistema integrado. Las ROM externas se desarrollaron con Ace Forth para ser utilizadas como aplicaciones de control.
Complementos
La máquina pudo usar algunos complementos ZX-81 debido a las ubicaciones similares de RAM y la ranura de expansión externa. Jupiter Cantab hizo un paquete de RAM de 16 KB y empresas externas hicieron paquetes de RAM similares, así como otros periféricos e interfaces.
- Paquetes de RAM
- 16 KB por Júpiter Cantab.
- 16 KB y 32 KB por Stonechip Electronics.
- 16 KB de Sinclair, con tabla de adaptador de Júpiter Cantab para compatibilidad eléctrica.
- 48 KB por Boldfield (nuevo dueño de Júpiter Ace después de Júpiter Cantab).
- Teclado
- Memotech Keyboard, de Memotech.
- Sonido
- SoundBoard (1983) de Essex Micro Electronics,
- Almacenamiento
- Jet-Disc Disc Drive System (1983) por MPE (control hasta cuatro 3", 5 o 8" unidades).
- "Pensamiento profundo" Interfaz de disco con un AceDOS 4K en un EPROM (1986) de J Shepherd & S Leask.
- Adaptadores para impresoras
- ADS Centronics Interface Machine (1983), por Advanced Digital Systems,
- RS232 & Centronics PrinterCard (1984) de Essex Micro Electronics.
- Tarjeta gráfica
- Tarjeta Gray Scale - 4 tonos de gris por S Leask (1986)
Modelos
1982 - Original Jupiter Ace en una caja estirada al vacío - Informes de 5000 unidades construidas.
1983 - Jupiter Ace 4000 en una caja moldeada por inyección más fuerte - Informes de 800 unidades construidas.
Contenido relacionado
Cassini–Huygens
Transporte en Bielorrusia
Algoritmos (diario)