A simple emulator for a basic computer architecture, built with TypeScript and Deno.
- 🛑 Breakpoints: Debugging made easy with breakpoints.
- ⏲️ Timeouts: Prevent infinite loops with built-in timeouts.
- 📊 Data Registers: Clean separation between data and instruction registers.
- 📤 CSV Import/Export: Import and export your programs in CSV
- Install Deno
- Clone this repository
- Install the dependencies:
deno install
- Run development server:
deno task dev
Checkout the example_program.csv, use it as a template for your own programs.
- Implement basic functionality
- Add breakpoints
- Separate Data registers from Instruction registers
- Timeout for infinite loops
-
#
labels pre-processor
- Run tests
- pre-commit hooks
- Emulator operations
- CSV import
- CSV export
- Indicate current register in the UI
- Show execution errors in the UI
- Flash register when it's value changes
- Register insert/delete
- Auto-scroll to the current register
- Register re-addressing (when moving registers around)
- Update starting address (propagates to all addresses)
- Improve editor UX
- Add syntax highlighting for operations
- Add autocomplete for
#
labels - Add autocomplete for AUX registers
- Add autocomplete for DATA registers
- Add support for using
#
labels as jump targets in the code.- Labels starting with
#
can be used to mark specific points in the code. - These labels can be referenced by jump operations.
- A pre-processor will replace these labels with actual memory addresses before execution.
- Labels starting with
- Import program from CSV
- Export program to CSV
- Allow enabling/disabling data registers
- Export program to (.xls, .xlsx, .ods) with nice formatting
- Allow enabling/disabling data registers
- Import program from (.xls, .xslx, .ods)