M68K Interpreter š§
š§ Overview
A fully-featured Motorola 68000 (m68k) assembly emulator that runs entirely in your browser. Built with modern tools (React 18, TypeScript, Vite 5), this project replaces the dated Windows-only Easy68K tool with a zero-setup, free alternative for learning CPU architecture and assembly programming.
This project was originally part of my bachelor's thesis (2021) and has been modernized, rewritten, and completed with comprehensive instruction support in 2026.
š Live Demo
Experience the interpreter firsthand: M68K Interpreter Live Demo
𦾠Repository
See the code: m68k-interpreter Repository
š ļø Features
ā 50+ M68K Instructions ā Comprehensive instruction set covering most common operations ā Interactive Code Editor ā Write m68k assembly with syntax highlighting powered by Ace Editor ā Step-by-Step Execution ā Configurable execution delay to watch code run in real-time ā±ļø ā Full Undo/Redo ā Complete execution history lets you rewind and replay your code ā Register Viewer ā Monitor all CPU registers, flags, and condition codes ā Memory Inspector ā View and analyze memory contents during execution ā Detailed Error Reporting ā Contextual error messages with line numbers and descriptions ā GitHub Star Button ā One-click starring directly from the app š ā Data Export ā Download registers and memory state to file ā Responsive UI ā Desktop and tablet friendly ā Vercel Analytics ā Usage tracking to improve the tool ā Zero Setup ā Runs entirely in the browser, no installation needed
šļø Tech Stack
Frontend:
- āReact 18.3 (UI Framework)
- āTypeScript 5.3 (Type Safety)
- āZustand 4.4 (State Management)
- āAce Editor (Code Editing)
Build & Development:
- āVite 5 (Fast Bundler)
- āESLint 8 (Linting)
- āPrettier 3 (Formatting)
Testing & Quality:
- āVitest (Unit Tests)
- āCodeQL (Static Analysis)
- āGitHub Actions (CI/CD)
Deployment:
- āVercel (Hosting & Analytics)
āļø Supported Instructions (50+)
Data Movement ā MOVE, MOVEA, MOVEQ, MOVEM, MOVEP, LEA, PEA, CLR, EXG, SWAP
Integer Arithmetic ā ADD, ADDA, ADDI, ADDQ, ADDX, SUB, SUBA, SUBI, SUBQ, SUBX, MULS, MULU, DIVS, DIVU, NEG, NEGX, EXT, CMP, CMPA, CMPI, CMPM, TST
Logical Operations ā AND, ANDI, OR, ORI, EOR, EORI, NOT
Shift & Rotate ā ASL, ASR, LSL, LSR, ROL, ROR, ROXL, ROXR
Bit Manipulation ā BTST, BSET, BCLR, BCHG
Control Flow ā JMP, JSR, RTS, BRA, BSR, BEQ, BNE, BCC, BCS, BPL, BMI, BGE, BGT, BLE, BLT, BVC, BVS, BHI, BLS
System Control ā NOP, RESET, RTE, TRAP, TRAPV, CHK, LINK, UNLK, TAS, STOP
CCR Operations ā ANDI to CCR, ORI to CCR, EORI to CCR, MOVE to CCR, MOVE from CCR
š Getting Started
Requirements: Node.js 16+ and npm 8+
# Clone repository
git clone https://github.com/gianlucarea/m68k-interpreter.git
cd m68k-interpreter
# Install dependencies
npm install
# Start development server
npm run dev
# Open http://localhost:5173
# Or build for production
npm run build
npm run test # Run tests
npm run lint:fix # Lint and format code
šØāš« For Educators
If you teach a course using Easy68K, this works as a drop-in browser-based alternative with zero student setup required. Students can start writing and running m68k code immediately in any modern web browser.
š Learn More
Read the full story of the modernization sprint: Building a Motorola 68000 Emulator in the Browser
For complete documentation and examples, visit the project repository.
š Acknowledgments
Built with guidance from Claude and GitHub Copilot. Special thanks to MarkeyJester's Motorola 68000 Beginner's Tutorial for instruction reference material.