PCjs: Simulaciones de IBM PC

El Proyecto PCjs es una colección de simulaciones de computadora escritas en JavaScript. Es un proyecto de código abierto mantenido en GitHub y alojado en pcjs.org.

Los objetivos del proyecto son crear simulaciones rápidas y completas de hardware informático clásico, ayudar a las personas a comprender cómo funcionaban estas primeras máquinas, facilitar la experimentación con diferentes configuraciones de máquinas y proporcionar una plataforma para ejecutar y analizar los primeros programas informáticos.

Las simulaciones están escritas completamente en JavaScript y se ejecutan bien en una variedad de navegadores web, tanto en dispositivos de escritorio como móviles. Las máquinas se crean con archivos XML simples que definen un conjunto de componentes de la máquina, junto con las características que debe habilitar cada componente.

PCjs intenta recrear la experiencia de las IBM PC, usando ROM originales, CPU funcionando a sus velocidades originales y las primeras tarjetas de video y monitores de IBM, incluido el monitor monocromático verde clásico y el monitor CGA «parpadeante». Con el tiempo, las emulaciones de PCjs se han expandido para incluir máquinas compatibles con PC y máquinas más clásicas, como miniordenadores, calculadoras programables, terminales y juegos de arcade.

Un emulador online de CP/M

CP/M (Control Program for Microcomputers) era un sistema operativo monousuario y monotarea desarrollado por Gary Kildall circa 1974, para el microprocesador Intel 8080 (los Intel 8085 y Zilog Z80 podían ejecutar directamente el código del 8080, aunque lo normal era que se entregara el código recompilado para el microprocesador de la máquina).

Se trataba del sistema operativo más popular entre las computadoras personales en los años 1970. Aunque fue modificado para ejecutarse en un IBM PC, el hecho de que IBM eligiera MS-DOS, al fracasar las negociaciones con Digital Research, hizo que el uso de CP/M disminuyera hasta hacerlo desaparecer. CP/M originalmente significaba Control Program/Monitor y más tarde se cambió su nombre por Control Program for Microcomputers (en la época, la barra inclinada «/» tenía el significado de «diseñado para»; no obstante, Gary Kildall redefinió el significado del acrónimo poco después). CP/M se convirtió en un estándar de industria para los primeros microcomputadores.

En este sitio web hay un emulador de CP/M realizado por Stefan Tramm en 2010. Por ejemplo, ejecutar estos comandos:

r
r basic.hex
g 0

let n = 20
print n
exit

Los detalles están publicados en esta otra página.