An Apple 1 Emulator in Javascript
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
dependabot[bot] 7c12ff15db
Bump webpack from 5.64.4 to 5.76.0
Bumps [webpack]( from 5.64.4 to 5.76.0.
- [Release notes](
- [Commits](

- dependency-name: webpack
  dependency-type: direct:development

Signed-off-by: dependabot[bot] <>
2 weeks ago
.github/workflows Add test files. 3 years ago
asm automaton 2 years ago
css Fix padding. 4 years ago
js Upgrade eslint 1 year ago
tapes automaton 2 years ago
test Skip heavy CPU test by default. 3 years ago
.editorconfig automaton 2 years ago
.eslintrc.json Make tape global in config 3 years ago
.gitignore First commit to github. 4 years ago
LICENSE First commit to github. 4 years ago Merge about and README. 3 years ago
apple1js.html automaton 2 years ago
babel.config.js First commit to github. 4 years ago
package-lock.json Bump webpack from 5.64.4 to 5.76.0 2 weeks ago
package.json Bump webpack from 5.64.4 to 5.76.0 2 weeks ago
webpack.config.js Upgrade webpack 1 year ago


What is this?

An Apple 1 emulator written in Javascript and HTML5

Things are still a little rough around the edges right now, hopefully I will have more time to clean things up.


npm install

To run a development server

npm run dev

Then open http://localhost:8080/apple1js.html

To build a static distribution into dist

npm run build


A Browser with HTML5 Support

The most recent versions of Google Chrome, Safari, Firefox, and Opera all seem to work reasonably well these days, although variations in HTML5 support pop up, and occasionally a major release will move things around out from under me. IEs prior to 9 lacks canvas tag support and are unsupported. IE 9+ renders nicely on a modern machine.

Basic Knowledge of the Apple 1

If you don't know how to use an Apple 1, this won't be much fun for you. A good place to start is the Apple I Owners Club.

Known Limitations

Limited Accuracy

Unlike the Apple ][ I wrote an emulator for, I don't own an Apple 1. My emulation is based on all the reference materials I was able to dig up, and by comparison to the behavior of other emulators.


I heavily referenced:

And special thanks to:

  • Mike for an eclectic collection of useful information. Someday I will work up the nerve to try building a replica.
  • And of course Woz, for launching my 30+ years of both silly and practical computer projects.



  • ACI Emulation

    Programs are now loaded via ACI emulation off of virtual tapes. This is slower than just slamming them into memory, faster than emulated typing. Actually loading programs from audio files is on my radar, but quite a bit more work.


  • More Accurater

    I've scraped the Internet for more information. For instance Cameron's Closet had some nice info on character display.

  • Krusader off by default

    Krusader seems to cause some output weirdness outside of the Krusader shell, so I'm not using it by default anymore. Use #krusader to turn it back on.


  • Less Limited Input

    Pasting into the load window is now the same as typing. For now it is not any faster, though.


  • Krusader

    I've decided to use Krusader as the default ROM for now. I'm just starting to find my way around it, but other Apple 1 people might find it useful.