{"id":17597788,"url":"https://github.com/themkat/mos-mode","last_synced_at":"2025-10-17T11:55:32.461Z","repository":{"id":87206607,"uuid":"490681118","full_name":"themkat/mos-mode","owner":"themkat","description":"Emacs support for working with MOS 6502 assembly files using https://github.com/datatrash/mos. Utilizes lsp-mode and dap-mode","archived":false,"fork":false,"pushed_at":"2022-12-09T13:53:58.000Z","size":62,"stargazers_count":4,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-30T05:47:55.887Z","etag":null,"topics":["6502","c64","emacs","lsp","mos","retro","retrocomputing"],"latest_commit_sha":null,"homepage":"https://mos.datatra.sh/","language":"Emacs Lisp","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/themkat.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-10T12:12:08.000Z","updated_at":"2024-08-09T01:07:33.000Z","dependencies_parsed_at":"2023-03-10T21:15:27.945Z","dependency_job_id":null,"html_url":"https://github.com/themkat/mos-mode","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themkat%2Fmos-mode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themkat%2Fmos-mode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themkat%2Fmos-mode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themkat%2Fmos-mode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/themkat","download_url":"https://codeload.github.com/themkat/mos-mode/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251651222,"owners_count":21621702,"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":["6502","c64","emacs","lsp","mos","retro","retrocomputing"],"created_at":"2024-10-22T09:43:43.978Z","updated_at":"2025-10-17T11:55:32.369Z","avatar_url":"https://github.com/themkat.png","language":"Emacs Lisp","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![MELPA](https://melpa.org/packages/mos-mode-badge.svg)](https://melpa.org/#/mos-mode)\n# mos-mode - Emacs mode for working with MOS 6502\nEmacs support for [mos](https://github.com/datatrash/mos) using lsp-mode and dap-mode (as well as some utility functions).\n\n\nCreated as a separate project to have both all config related to it in one place. \n\n\n## Dependencies\nYou should have the follow programs installed:\n- [mos](https://github.com/datatrash/mos)\n- [Vice](https://vice-emu.sourceforge.io/) (needed if you want to debug your Commodore machine programs)\n\n\n## Installation\n### Melpa\nThe easiest way is to install through [Melpa](https://melpa.org/#/getting-started). Using package-install, you can do it like this interactively:\n\n```\nM-x package-install RET mos-mode\n```\n\nOr in your config file:\n```emacs-lisp\n(package-install 'mos-mode)\n```\n\nThe package can also be installed and configured using use-package: `(use-package mos-mode)` (add the `:load-path` option to install it from local source).\n\n\n### From source\nClone this repo locally, add the path to the load path and require mos-mode:\n```emacs-lisp\n(add-to-list 'load-path \"/path/to/mos-mode\")\n(require 'mos-mode)\n```\n\n## Usage\nIf mos is in your path, you should be able to use this package right out of the box. If not, you need to configure `mos-executable-path` to point to the location of the mos executable. \n\nIf you want to debug Commodore programs using VICE, you also need to configure `mos-vice-executable-path` if x64sc is not in your path (you can also use x64). \n\n\nTo use the extension, you simply activate `mos-mode` in an assembly language buffer. Works like any other Emacs extension using lsp-mode and dap-mode (`dap-breakpoint-toggle` to toggle breakpoints etc.). So far only code lenses are used to run/debug the programs, but utility functions for doing it without those will also be available shortly. \n\n\nInteractive functions available:\n- `mos-build`: Build the program (based on mos.toml settings)\n- `mos-run-all-tests`: Run all the unit tests in the project (depends on presense of mos.toml)\n- `mos-run-program` / `mos-debug-program`: Run or debug the program.\n\n\nBy default mos-mode will format the buffer when saving. You can toggle this behavior with `mos-format-on-save` (e.g, set it to nil to not format on save)\n\n\n[The MOS documentation](https://mos.datatra.sh/guide/ide/vscode.html#building-and-launching) also have other useful information, like the format of expressions and variables in the set-variables operation during debugging.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemkat%2Fmos-mode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthemkat%2Fmos-mode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemkat%2Fmos-mode/lists"}