A web implementation of ase100. View the live demo here.
This is not actually a port of ase100, but rather an emulator of the E100 built from scratch in JavaScript. The CPU was reverse engineered from the description of the E100 opcodes in Lab 5 and the hardware drivers were reverse engineered from the description of the driver protocols in Lab 7.
Originally, the project was implemented in pure JavaScript, but this version is using WebAssembly and Emscripten to achieve near-native speed, similar to ase100. Assembly is still done in JavaScript, the CPU is now emulated in C++, and the hardware components are implemented with a mix of both.
- Assembly
- Memory
- CPU
- Memory
- VGA monitor
- DE2 board switches
- Hex displays
- LEDs
- Clock
- SDRAM
- SD card
- Serial console send
- Touchscreen
- Speaker
- PS/2 keyboard
- Serial receive
- USB mouse
- LCD display
- Camera
- Microphone
- Fast Fourier Transform
- Fix speaker output