Emulator for the Hack CPU. (from nand2tetris)
https://abhaynayar.github.io/n2t-wasm/
Tested on Ubuntu 20.04 LTS.
Tools setup:
- Install rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Install wasm-pack:
curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh
- Install node through nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
nvm install node
Clone this repository:
$ git clone https://github.com/abhaynayar/n2t-wasm
Build the emulator:
- Run
wasm-pack build
in the root directory. This will create a new pkg/ directory for the wasm modules. - Run
npm init wasm-app www
in the root directory. This will generate a web page in a new www/ directory. - Run
npm install
in www directory to install the node modules. - Run
npm run start
in thewww
directory to start a local testing instance. - Run
npm run build
in thewww
directory to publish the results todist
.
- Feature: Add keyboard support.
- Bug: Fix the render loop in wasm.
- Bug: Sanitize RAM and ROM inputs in wasm.
- Feature: Transfer words instead of pixels from wasm to js.
- Feature: Show sample ROMs and a file picker on the web page.