✨ https://vonsim.github.io ✨
A 8088-like Assembly Simulator
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 v18 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:
@vonsim/common
: Some common utilities.eslint-config-vonsim
: ESLint configuration for this project.@vonsim/scripts
: Scripts for development and building.@vonsim/tsconfig
: The TypeScript configuration for this project.
Finally, the documentation is inside @vonsim/docs
.
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"
}
- 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
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).