/assembler-simulator

The Assembler Simulator is an 8-bit CPU simulation tool that utilizes the "Samphire" sms32v50 Microprocessor Simulator instruction set.

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

Assembler Simulator

GitHub tag (latest SemVer) GitHub Workflow Status (with event) libera manifesto

The Assembler Simulator is an 8-bit CPU simulation tool that utilizes the "Samphire" sms32v50 Microprocessor Simulator instruction set, which is analogous to the Intel 8086 architecture. Originally, a native desktop application based on this instruction set was employed at University College Cork to facilitate the teaching of the CS1111 Systems Organisation module. However, it was limited to the Windows operating system.

Our project endeavors to replicate the functionality of the "Samphire" application as closely as possible, while enhancing the learning experience by leveraging state-of-the-art web technologies:

  • CodeMirror 6 for code editing with syntax highlighting
  • React for building user interfaces
  • Redux for state management
  • RxJS for reactive programming
  • Vite for fast development and build tooling
  • TypeScript for static type checking

Experience the Assembler Simulator online here.

Features

  • An 8-bit CPU simulation with four general-purpose registers
  • A memory model with 256 bytes of RAM
  • Support for procedures and subroutines
  • Implementation of software and hardware interrupts
  • Keyboard input handling
  • A suite of output devices, including:
    • A memory-mapped Visual Display Unit
    • Simulated traffic lights
    • A seven-segment display
    • Additional devices planned for future updates
  • Debugging features like breakpoints and step-by-step execution
  • An integrated editor equipped with syntax highlighting for a seamless coding experience

Acknowledgements

This project draws inspiration from and extends gratitude to the following works:

License

GPL-3.0 License © 2022-Present Exuanbo