Skip to content

🧮 A simple emulator for a basic computer architecture, built with Vue on Deno.

License

Notifications You must be signed in to change notification settings

tcorzo/abacus-emulator

Repository files navigation

Abacus Emulator 🧮

A simple emulator for a basic computer architecture, built with TypeScript and Deno.

Features 🎉

  • 🛑 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

Setup Development Environment 🛠️

  1. Install Deno
  2. Clone this repository
  3. Install the dependencies:
deno install
  1. Run development server:
deno task dev

Usage 🚀

Checkout the example_program.csv, use it as a template for your own programs.

Roadmap 🗺️

Emulator

  • Implement basic functionality
  • Add breakpoints
  • Separate Data registers from Instruction registers
  • Timeout for infinite loops
  • # labels pre-processor

CI

  • Run tests
  • pre-commit hooks

Tests

  • Emulator operations
  • CSV import
  • CSV export

UI

  • 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.

Import/Export

  • 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)

About

🧮 A simple emulator for a basic computer architecture, built with Vue on Deno.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages