Skip to content

Commit

Permalink
docs(README): update
Browse files Browse the repository at this point in the history
  • Loading branch information
exuanbo committed Dec 4, 2023
1 parent 4fcc516 commit b33ef54
Showing 1 changed file with 27 additions and 25 deletions.
52 changes: 27 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,39 @@
![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/exuanbo/assembler-simulator/gh-pages.yml.svg)
[![libera manifesto](https://img.shields.io/badge/libera-manifesto-lightgrey.svg)](https://liberamanifesto.com)

Assembler Simulator of 8-bit CPU using the "Samphire" sms32v50 [Microprocessor Simulator](https://nbest.co.uk/Softwareforeducation/sms32v50/sms32v50_manual/index.htm) instruction set (similar to the Intel 8086 chip). "Samphire" is used for teaching CS1111 Systems Organisation at University College Cork, but it is restricted to Windows operating system.
The Assembler Simulator is an 8-bit CPU simulation tool that utilizes the "Samphire" sms32v50 [Microprocessor Simulator](https://nbest.co.uk/Softwareforeducation/sms32v50/sms32v50_manual/index.htm) 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.

This project aims to recreate as much of the "Samphire" application as possible and provide a better learning experience using modern front-end web technologies:
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](https://codemirror.net/6/)
- [React](https://reactjs.org/)
- [Redux](https://redux.js.org/)
- [RxJS](https://rxjs.dev/)
- [Vite](https://vitejs.dev/)
- [TypeScript](https://www.typescriptlang.org/)
- [CodeMirror 6](https://codemirror.net/6/) for code editing with syntax highlighting
- [React](https://reactjs.org/) for building user interfaces
- [Redux](https://redux.js.org/) for state management
- [RxJS](https://rxjs.dev/) for reactive programming
- [Vite](https://vitejs.dev/) for fast development and build tooling
- [TypeScript](https://www.typescriptlang.org/) for static type checking

You can try it online [here](https://exuanbo.xyz/assembler-simulator/).
Experience the Assembler Simulator online [here](https://exuanbo.xyz/assembler-simulator/).

## Features

- 8-bit CPU with 4 general purpose registers
- 256 bytes of RAM
- Procedures / Subroutines
- Software and hardware interrupts
- Input from keyboard
- Output devices:
- Memory mapped Visual Display Unit
- Traffic lights
- Seven-segment display
- (More to come)
- Breakpoints and step-by-step execution
- Editor with syntax highlighting

## Inspired by

- [osslate/babassu](https://github.com/osslate/babassu) - special thanks 😀
- 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:

- [osslate/babassu](https://github.com/osslate/babassu) - A heartfelt thank you! 😀
- [Schweigi/assembler-simulator](https://github.com/Schweigi/assembler-simulator)
- [parraman/asm-simulator](https://github.com/parraman/asm-simulator)

Expand Down

0 comments on commit b33ef54

Please sign in to comment.