# MacWorks Plus

MacWorks Plus fue una implementación completa (port) de la ROM de 128K del Macintosh Plus en los sistemas informáticos Apple Lisa y Macintosh XL, e introducida en agosto de 1988. Fue desarrollado para Sun Remarketing de Cache Valley, Utah, bajo licencia de Apple Inc., por un desarrollador contratado llamado Chuck Lukaszewski, responsable de las versiones hasta 1.1(h), que admiten hasta Macintosh System 6.0.3. Dafax Processing Corp. con la ayuda de Query Engineering, Inc. luego desarrolló aún más el entorno para MacWorks Plus II, que continuó el soporte del sistema Macintosh hasta System 6.0.8 con la versión Básica, e introdujo una versión Pro para extender el soporte al máximo posible para cualquier procesador 68000: System 7.5.5. Antes de MacWorks Plus, el sistema máximo admitido por su predecesor MacWorks XL era el System 3.2.

## Historia

El objetivo de diseño de MacWorks Plus era la compatibilidad al 100% con el software que se ejecutaba en Macintosh Plus, que en ese momento era el producto estrella de Apple. Este era un objetivo técnicamente desafiante porque, a pesar de compartir el mismo procesador Motorola 68000, las arquitecturas de hardware subyacentes de los dos sistemas eran radicalmente diferentes. Para comprender cómo funcionaba el MacWorks Plus, es más fácil dividir la discusión en tres áreas: interfaz de hardware, modelo de memoria y protocolo de arranque. En ese momento, estos eran aspectos dependientes del hardware del Mac OS Classic. El método más simple de transportar Mac OS a otra máquina era emularlo por completo. Una vez logrado, el código independiente del hardware mucho más grande en la ROM de 128K podría ejecutarse sin modificaciones. Esto es lo que se hizo con MacWorks Plus.
El objetivo fue posible gracias a la existencia de una capa de abstracción de hardware en Macintosh Toolbox en la ROM original de Macintosh, y una Memory Management Unit (MMU) de hardware en Lisa. A través de un paquete completo de controladores de dispositivos que implementó completamente la Interfaz de Programación de Aplicaciones (API) de Toolbox de Macintosh, MacWorks Plus esencialmente engañó al código ROM de 128K haciéndole creer que se estaba ejecutando en un Macintosh real. También fue necesario simular completamente el espacio de direcciones de memoria de un Macintosh Plus, incluido el comportamiento de ciertas direcciones ilegales que fueron explotadas deliberadamente por ciertas aplicaciones (principalmente juegos). Afortunadamente, aunque los circuitos del administrador de memoria de Macintosh no eran programables, Lisa presentaba una MMU de hardware totalmente programable que era un legado de las raíces de las minicomputadoras de sus diseñadores. Finalmente, se escribieron cargadores de arranque para todos los modelos de disquete y disco duro disponibles que eran compatibles con Lisa.
MacWorks Plus constaba de unas 23.000 líneas de código fuente para la interfaz de hardware dependiente de Lisa y el código de arranque, además de una imagen de la ROM de 128K con licencia de Apple. También incluía un instalador independiente y un panel de control que permitía al usuario ajustar ciertas funciones específicas de Lisa desde la interfaz de usuario de Mac OS.