Skip to content

vonsim/vonsim

Repository files navigation

VonSim logo

VonSim

https://vonsim.github.io
A 8088-like Assembly Simulator


About this project

VonSim was made entirely in TypeScript, a superset of JavaScript that adds type-checking and auto-completion. Also, the project is divided in multiple packages, each one with its own package.json (learn more about monorepos).

To get started, you'll need Node.js v20 and pnpm v8. Once you have them installed, you can run the following inside the repo:

$ pnpm install  # only the first time, install the dependencies
$ pnpm dev      # start the app dev server
$ pnpm docs:dev # start the docs dev server
$ pnpm build    # build for production

These are the packages inside the repo, all of them with their own README.md where you can learn more:

  • @vonsim/assembler: All the logic to assemble a program from plain text assembly.
  • @vonsim/simulator: All the logic run an assembled program.
  • @vonsim/app: The web app itself. It has all the UI and uses the simulator to run the program.

Also, there some support packages that are used by the packages above:

Finally, the documentation is inside @vonsim/docs.

Notes for developers

When using Visual Studio Code, you can use the recommended extensions to get the best experience. Some extensions might have trouble finding the tailwind.config.ts file for auto-completion and linting. This can be solved by creating a .vscode/settings.json file with the following content:

{
  "eslint.workingDirectories": [{ "mode": "auto" }],
  "tailwindCSS.experimental.configFile": "./app/tailwind.config.ts"
}

To-do list

  • Welcome tour (with mentions to downloadable PWA)
  • Add Printer w/CDMA
  • Add Printer w/USART
  • Add I/O modules for screen and keyboard
  • Implement indirect access with offset

License

This project is licensed under the GNU Affero General Public License v3.0 license.

© 2017-present Facundo Quiroga, Manuel Bustos Berrondo y Juan Martín Seery (III-LIDI, Facultad de Informática, UNLP).