{"id":15170503,"url":"https://github.com/micorix/webdlx","last_synced_at":"2026-01-24T00:15:24.934Z","repository":{"id":219508983,"uuid":"749225803","full_name":"micorix/webdlx","owner":"micorix","description":"DLX architecture simulator written in TypeScript \u0026 React","archived":false,"fork":false,"pushed_at":"2024-01-27T23:48:48.000Z","size":415,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-17T01:37:27.822Z","etag":null,"topics":["dlx-processor","mocha","processor-simulator","react","typescript","vite"],"latest_commit_sha":null,"homepage":"https://webdlx.micorix.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/micorix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2024-01-27T23:39:40.000Z","updated_at":"2024-01-28T11:50:26.000Z","dependencies_parsed_at":"2024-01-28T01:05:02.882Z","dependency_job_id":"f05ba45d-ed30-4627-bba7-e97bad38b509","html_url":"https://github.com/micorix/webdlx","commit_stats":null,"previous_names":["micorix/webdlx"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micorix%2Fwebdlx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micorix%2Fwebdlx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micorix%2Fwebdlx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/micorix%2Fwebdlx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/micorix","download_url":"https://codeload.github.com/micorix/webdlx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254092836,"owners_count":22013294,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dlx-processor","mocha","processor-simulator","react","typescript","vite"],"created_at":"2024-09-27T08:03:26.398Z","updated_at":"2026-01-24T00:15:19.912Z","avatar_url":"https://github.com/micorix.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WebDLX\n\n:zero::one::zero::one::zero::one::zero::one::zero::one::zero::one:\n\nProcessor simulator written in TypeScript for the DLX architecture.\nInspired by WinDLX.\n\n![Screenshot](./docs/assets/webdlx-code.png)\n[See all screenshots](#screenshots)\n\nInstructions follow WinDLX format and opcode table.\n\n\u003e Info: :safety_vest: Work in progress. Lots of features are missing. Only integer registers are supported. Forwarding is not yet implemented.\n\nDLX simulator can be used as a command line tool, library or a web application.\n\n### Motivation\n\nKinda related to the university course on computer architecture. This was not an assignment, just a fun project. Might abandon at any time or never finish.\n\nCould all of that be done in a better way, with less effort or is WinDLX enough? The answer is YES! But c'mon writing own parser, assembler, getting pipeline stalls to work properly, implementing forwarding, creating in-browser unit tests editor to assert on mem and registers values, just sounds fun!\n\n### Features:\n\n- :art: Tired of Windows XP look? New, modern UI!\n- :www: No need to install, run directly within the browser (asynchronously in a WebWorker)!\n- :capital_abcd: Support for WinDLX instructions\n- :nail_care: Syntax highlighting? Oh yeah, we've got that. No more NotePad++ within a VM.\n- :bar_chart: Real-time pipeline visualization\n- :floppy_disk: Register and memory inspection interface\n- :heavy_check_mark: Write tests in JavaScript for program correctness\n  - `chai.js` assertions on register/memory values\n  - I'm sorry, I think it's pretty cool\n- :page_with_curl: Detailed, logs\n- :one: DLX assembly language assembler, including tokenizer, lexer and parser\n- :mag: TODO: Profiler\n\n### TODO:\n\n- [ ] Implement pipeline\n  - [x] Implement basic pipeline\n  - [ ] Implement stalls (WIP)\n  - [ ] Implement forwarding\n- [x] Implement int registers\n- [x] Implement basic immediate arithmetic instructions and `sw`, `lw`\n- [ ] Implement memory preloading\n- [ ] Implement all instructions\n- [ ] Implement floating point instructions/registers\n- [ ] Implement double precision instructions/registers\n- [ ] Implement jumps\n- [ ] Implement profiler\n\n## Library\n\nLibrary is written in TypeScript. The only runtime dependency is `nanoevents` package which contains isomorphic event emitter.\n\n## Command line tool\n\n```bash\npnpm tsx repl/repl.ts -s \u003csource file\u003e\n```\n\n## Web application\n\nWeb app is a client-side React application bundled with Vite.\n\n```bash\npnpm install\npnpm run dev\n```\n\n## Screenshots\n\n\nVSCode-like Monaco Editor with syntax highlighting:\n\n![Editor screenshot](./docs/assets/webdlx-code.png)\n\nReal-time pipeline visualization:\n\n![Pipeline visualization](./docs/assets/webdlx-pipeline.png)\n\nTests:\n\n![Tests screenshot](./docs/assets/webdlx-tests.png)\n\n## References\n\n- [WinDLX instruction set](http://electro.fisica.unlp.edu.ar/arq/downloads/Software/WinDLX/DLXinst.html)\n- [DLX architecture](https://en.wikipedia.org/wiki/DLX)\n- [DLX pipeline](https://www.cs.umd.edu/~meesh/cmsc411/website/proj01/dlx/aboutDLX.html)\n- [Instruction formats](https://www.cs.utexas.edu/~pingali/CS378/2015sp/lectures/DLX.pdf)\n- [Building an interpreter in TypeScript](https://www.iamtk.co/series/building-an-interpreter)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicorix%2Fwebdlx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmicorix%2Fwebdlx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmicorix%2Fwebdlx/lists"}