Pascal MicroEngine es una serie de productos de microcomputadoras fabricados por Western Digital desde 1979 hasta mediados de la década de 1980, diseñados específicamente para ejecutar el UCSD p-System de manera eficiente. [1] En comparación con otras microcomputadoras, que utilizan un intérprete de código p en lenguaje de máquina , Pascal MicroEngine tiene su intérprete implementado en microcódigo ; el código p es su lenguaje de máquina. El lenguaje de programación más común utilizado en el p-System es Pascal .
MicroEngine ejecuta un sistema p especial de la versión III. Las mejoras de la versión III se incorporaron a la versión IV, que se puso a disposición del público para otras plataformas, pero no para MicroEngine.
La serie de productos MicroEngine se ofreció en varios niveles de integración:
El chipset MicroEngine se basó en el chipset MCP-1600 , que formó la base de la minicomputadora de gama baja DEC LSI-11 y del procesador WD16 utilizado por Alpha Microsystems (cada uno utilizando un microcódigo diferente).
Uno de los sistemas mejor considerados fueron las tarjetas de doble procesador basadas en bus S-100 desarrolladas por Digicomp Research de Ithaca, NY. [4] Estas tarjetas merecen una entrada por sí mismas, ya que sobrevivieron a la desaparición del sistema de placa única WD y ofrecieron un rendimiento confiable de hasta 2,5 Mhz . Una configuración típica era un conjunto de placa de procesador dual Digicomp, que contenía un Zilog Z80 y un mapeador de memoria bipolar conectado a un chipset microengine en la segunda placa, vinculado por un cable directo. La única configuración conocida que todavía se ejecuta en 2018 y documentada en la web es descrita por Marcus Wigan [5] y contiene 312 kB de memoria, soporte de disco RAM a través de un BIOS Z80 modificado (escrito por Tom Evans) que aprovecha el chip de mapeo de memoria en la placa Z80 y usa la versión UCSD Pascal III del sistema operativo ajustado específicamente para el chipset WD: una vez que el Microengine se había iniciado, el disco RAM estaba disponible. Una función de software dentro de UCSD Pascal permitió al sistema copiar todo el sistema operativo al disco RAM y transferirle el control. Esto aceleró notablemente el proceso. El uso de un BIOS Z80 para manejar todos los dispositivos permitió el uso de una variedad de disquetes , placas de E/S y controladores de disco duro .
El rendimiento de este Microengine en una serie de puntos de referencia de la era de la interfaz simple (originalmente diseñado para programas BASIC) está documentado en un artículo de la Australian Computer Society, MICSIG, presentado en la Conferencia Nacional sobre Software de Microcomputadoras, Canberra , ACT presentado en junio de 1982, [6] [7] junto con una amplia gama de otras máquinas y compiladores contemporáneos, incluidos los sistemas Z80 compatibles con el chip APU 9511 alojado en el sistema Microengine Digicomp S-100 que utilizó.
En el momento de su introducción, los únicos competidores eran los procesadores de 8 bits (principalmente los sistemas basados en Intel 8080 , Z80 y MOS Technology 6502 ). [ vago ] El MicroEngine podía compilar código fuente Pascal en una fracción del tiempo (normalmente alrededor de 1/10) requerido por los contemporáneos. La compilación rápida hizo que el MicroEngine fuera especialmente agradable como máquina de desarrollo, y la inclusión de un primitivo de semáforo en el microcódigo fue particularmente útil para las mejoras multiusuario, que se desarrollaron en Melbourne para la empresa Ortex con sede en Canberra, Australia, se ampliaron para ser un sistema multiusuario y a menudo se vendieron con un sistema de gestión de farmacia incluido, también se entregaron en las computadoras Sage IV bajo UCSD Pascal IV y se habilitaron como un sistema multiusuario utilizando el BIOS multiusuario de Sage en lugar de extender UCSD Pascal IV para agregar un semáforo. Esta ventaja de rendimiento se vio erosionada por la posterior disponibilidad del código p para los traductores de código de máquina nativos y los microprocesadores de 16 bits convencionales, como el Intel 8086 y el Motorola 68000 .
Cuando se dieron a conocer los primeros detalles del MicroEngine, el sistema acumuló una gran cantidad de pedidos anticipados (para la época). Las primeras placas enviadas estaban mal diseñadas (las pistas de alimentación y tierra tenían el mismo tamaño que las de señal , muy pocos condensadores ), requerían una gran cantidad de modificaciones e incluso entonces no funcionaban de manera confiable. [ cita requerida ] Pasarían un par de años después de su introducción antes de que estuviera disponible un MicroEngine bien diseñado. Entre una reputación dañada y la introducción del IBM PC , al final el MicroEngine solo tuvo un éxito modesto.
Otro ejemplo de un producto comercial basado en MicroEngine fue el sistema de control de iluminación AVAB Viking, que utilizaba las placas modulares MicroEngine junto con algún hardware personalizado.
Un grupo dirigido por David A. Fisher desarrolló el tercer compilador Ada validado utilizando el Modular MicroEngine para la versión 17.1 del sistema de verificación Ada que se utilizaba en ese momento. Este compilador se transfirió posteriormente a mainframes y minicomputadoras con el nombre de GenSoft Ada y se ejecutó en un emulador del Microengine bajo el sistema operativo UCSD 3 específico de MicroEngine. Se sabe que MR Wigan posee copias de la versión para computadora Prime, que también posee una licencia a precio cero para el sistema MicroEngine Ada completo y el sistema operativo UCSD 3 utilizado para el Modular Microengine, así como para los tres Modular MicroEngine utilizados para crear el Ada 17.1 y todos los disquetes de 8" de desarrollo.
Ada era el único otro lenguaje de programación completo disponible. [8] John Lloyd de la Universidad de Melbourne creó una versión temprana de su Prolog para este sistema y los compiladores Basic y Fortran 77 fueron portados desde otras implementaciones del sistema P de la UCSD en varios momentos, pero no se distribuyeron ampliamente.
Debido a la memoria limitada (62 000 palabras de 16 bits , las últimas 2 000 palabras reservadas para E/S asignadas a memoria y PROM para el código de arranque del disco duro ), solo se podían compilar programas Ada muy pequeños. En un punto de la compilación, el compilador cambió el sistema operativo al disco para ganar un poco más de espacio.
"A(da" reemplazó a "A(ssmble" en el menú de comandos principal. No había ningún ensamblador nativo disponible ni necesario. Este Ada basado en UCSD fue desarrollado posteriormente para Sage 4 por TeleSoft en San Diego.