Skip to content

Latest commit

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Lisa Emulator

Web demo: https://experiments.frontierslab.ai/lisa-emulator

A Rust-based Apple Lisa emulator focused on booting Lisa Office System from ROM, ProFile hard disk images, and floppy media.

About this project

Lisa Emulator is an independent software archaeology and systems-emulation experiment by Adam Jesionkiewicz at Frontiers Lab.

The project started from a practical question: can a single developer, working with modern AI-assisted engineering tools, reconstruct enough of a historically important workstation to boot the real ROM, install Lisa Office System from floppy images, persist a ProFile hard disk image, and use the original desktop as an interactive environment?

This is not just a nostalgia project. It is a hands-on attempt to understand how early personal computing systems actually worked: the boot ROM, 68000 execution model, MMU behavior, COPS keyboard/mouse controller, floppy media, ProFile protocol, desktop persistence, and the operating-system installation flow. The goal is to learn by making the machine run, then using the running system to expose what still has to be made more accurate.

The broader experiment is about development velocity. With AI agents participating in research, debugging, test generation, and refactoring, one person can explore a hardware/software stack that would normally require a much larger effort. The interesting question is not whether AI can write code in isolation, but whether it can help compress the feedback loop between hypothesis, emulator behavior, observed failure, and a working fix.

Goals

  • Boot real Apple Lisa ROM images and Lisa Office System media supplied by the user.
  • Emulate enough of the hardware path to make the original OS usable, not just display a boot screen.
  • Preserve disk changes through ProFile writeback and controlled shutdown.
  • Support the complete install workflow from floppy media, including application disks.
  • Keep the project readable and hackable for people interested in retrocomputing, emulation, and operating-system internals.
  • Build a foundation that can later support a browser-based version without distributing Apple ROMs or OS images.

Status

  • Boots from split high/low Lisa ROM images.
  • Boots Lisa Office System from a ProFile image.
  • Supports DC42 floppy media for operating-system and application installation workflows.
  • Provides a native window with mouse and keyboard input.
  • Supports ProFile writeback and controlled shutdown/save hotkeys.

ROM images, ProFile images, Lisa Office System images, application disk images, and other Apple software are not included.

Legal status of ROMs, Lisa Office System, and disk images

This repository contains emulator code only. It does not include, sublicense, or grant rights to Apple ROMs, Lisa Office System, Lisa applications, ProFile images, floppy images, or any other third-party software.

Important practical points:

  • Apple Lisa ROMs are copyrighted firmware. Use ROM images only if you have the legal right to use them, for example from your own hardware.
  • Lisa Office System and Lisa application disks are Apple software. Do not redistribute them with this emulator unless you have explicit permission to do so.
  • A ProFile hard disk image containing Lisa Office System or Lisa applications is also an Apple-software image. Treat it like the original software media.
  • For web builds, do not host ROMs or ready-to-boot OS images on a public server. Use a bring-your-own-files flow where the user loads local ROM/disk files in the browser.
  • This project license applies only to this repository's original emulator code. It does not change the license or copyright status of Apple software or any other external media.

This is not legal advice. If you plan to publish a hosted service, redistribute media, or use Apple software commercially, verify the rights with qualified counsel.

Obtaining ROMs and Lisa Office System media

The project does not provide download links to unauthorized ROM or operating-system dumps. Rights-conscious options are:

  • Dump ROMs from Apple Lisa hardware that you own or are otherwise licensed to use.
  • Use original Lisa Office System floppy media that you own and convert it to a supported disk-image format.
  • Use original Apple service/archive media only if your copy and license permit that use.
  • The Computer History Museum provides Apple Lisa source code under Apple's Academic License. That release is useful for research, but it is not a blanket permission to redistribute boot ROMs, binary OS images, or ready-to-run disk images.

Relevant references:

Third-party archival note:

  • Some independent archival sites, for example Macintosh Repository, list Lisa Office System 3.1 disk images: https://www.macintoshrepository.org/23274-lisa-office-system-3-1
  • This link is provided only as an example of a third-party archival listing. This project does not host, mirror, endorse, sublicense, or verify the legal status of those files. You are responsible for confirming that you have the right to download, possess, and use any ROM, operating-system, application, floppy, or hard-disk image.

Build

cargo build --release

Run

cargo run --release -- \
--rom-hi path/to/3410175H.BIN \
--rom-lo path/to/3410176H.BIN \
--profile path/to/profile.image \
--profile-writeback \
--auto-continue \
--window \
--window-scale 2 \
--window-fps 60 \
--window-steps-per-frame 100000

ROMless ProFile boot

A bootable ProFile image can also be started without Apple Lisa ROM files:

cargo run --release -- \
--profile path/to/profile.image \
--boot-profile \
--auto-continue \
--window \
--window-scale 2 \
--window-fps 60 \
--window-steps-per-frame 100000

Use this mode when you already have a Lisa Office System installation on a ProFile image and want to launch it directly. The emulator loads the ProFile boot block and seeds the minimal machine state needed for the operating system to continue booting, instead of executing the original Apple Lisa boot ROM and startup-device selection flow.

How it differs from real-ROM boot:

  • No Apple Lisa ROM file is required.
  • The ROM diagnostics and normal ROM startup UI are skipped.
  • The installed Lisa Office System still runs from the ProFile image.
  • It is best for day-to-day launching, demos, and browser-based use.
  • Real-ROM boot remains the better path for validating low-level hardware behavior and ROM compatibility.

This is a major practical milestone for the project: it separates emulator usability from ROM availability. Users can run an already-installed Lisa environment without distributing or loading Apple ROM firmware. For a web version, this makes a cleaner bring-your-own-disk workflow possible, although any Lisa Office System image is still Apple software and must be handled under its own legal restrictions.

Window controls

  • F6: send the Lisa on/off button event and save the ProFile after the system completes shutdown.
  • F7: request a delayed ProFile writeback after disk activity settles.
  • F8: insert the boot floppy when available in the queued media list.
  • F9: insert the next floppy from the queued media list.
  • F10: eject the current floppy.
  • F12: toggle fault/activity tracing when enabled.

Installing Lisa Office System 3.1

The helper scripts in scripts/ automate media ordering and emulator launch for a floppy-based installation workflow. They expect local ROM files and DC42 floppy images supplied by the user.

./scripts/install-los31-from-floppies.sh \
--rom-hi path/to/3410175H.BIN \
--rom-lo path/to/3410176H.BIN \
--floppy-dir path/to/dc42 \
--fresh-profile \
--profile /tmp/los31.image \
--auto-continue

After the base system is installed and bootable, application disks can be inserted with the application helper:

./scripts/install-los31-apps-from-floppies.sh \
--rom-hi path/to/3410175H.BIN \
--rom-lo path/to/3410176H.BIN \
--floppy-dir path/to/dc42 \
--profile /tmp/los31.image \
--auto-continue

Use the Lisa desktop to copy applications and stationery from inserted floppy media to the ProFile disk. Use F6 for a controlled shutdown and wait for the ProFile save message before closing the emulator.

Author

Created by Adam Jesionkiewicz at Frontiers Lab.

Frontiers Lab is an independent studio for ambitious technical experiments, AI-assisted research, and product prototypes at the edge of software, science, and creativity.

License

This repository's original emulator code is released under the GNU General Public License version 3 (GPL-3.0-only). See LICENSE.

The GPLv3 license permits use, copying, modification, and redistribution, including commercial redistribution, but distributed modified versions must remain under GPLv3 and provide the corresponding source code. The license applies only to this repository's own code and not to Apple ROMs, Lisa Office System, Lisa applications, disk images, or other third-party materials.

About

No description, website, or topics provided.

Resources

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages