{"id":20777330,"url":"https://github.com/georgjz/msx-cart-project-template","last_synced_at":"2025-09-01T08:51:15.858Z","repository":{"id":129682662,"uuid":"232107210","full_name":"georgjz/msx-cart-project-template","owner":"georgjz","description":"A simple project template for creating a MSX cartridge programmed in Z80 assembly","archived":false,"fork":false,"pushed_at":"2021-08-07T12:43:59.000Z","size":18,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-18T08:24:55.370Z","etag":null,"topics":["assembly-language","msx","msx2","msx2plus","z80"],"latest_commit_sha":null,"homepage":null,"language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/georgjz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2020-01-06T13:30:11.000Z","updated_at":"2022-05-18T05:29:27.000Z","dependencies_parsed_at":"2023-04-08T23:18:07.672Z","dependency_job_id":null,"html_url":"https://github.com/georgjz/msx-cart-project-template","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgjz%2Fmsx-cart-project-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgjz%2Fmsx-cart-project-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgjz%2Fmsx-cart-project-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/georgjz%2Fmsx-cart-project-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/georgjz","download_url":"https://codeload.github.com/georgjz/msx-cart-project-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243119662,"owners_count":20239319,"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":["assembly-language","msx","msx2","msx2plus","z80"],"created_at":"2024-11-17T13:14:56.169Z","updated_at":"2025-03-11T21:45:49.427Z","avatar_url":"https://github.com/georgjz.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MSX/MSX2/MSX2+ Project Template for Assembly Programming\n\n**NOTE**: This repository is no longer actively maintained; it is here for people who prefer to work with [wla-dx][wladx]. I have created [a new template](https://github.com/georgjz/msx-cartridge-project-template) that uses [ASxxxx](https://shop-pdp.net/ashtml/asxxxx.php) instead. I think ASxxxx is the superior assembler/linker to wla-dx, so YMMV.\n\nThis is a simple project template for creating a program on a [MSX][msxwiki] cartridge.\n\nFind more informations about MSX cartridges on the [MSX Wiki][cartwiki].\n\nHere is the list of tools you need to use this repository:\n\n* [CMake][cmake]\n* [make][make]\n* [wla-dx][wladx]\n* [Glasgow Haskell Compiler][ghc]\n\n## Usage\n\nSimple use `git` to clone this repository:\n\n```Bash\ngit clone https://github.com/georgjz/msx-cart-project-template.git msxcart\ncd msxcart\ncmake -S . -Bbuild\ncmake --build build\n```\n\nThis will create a ROM file called `msx-cartridge-template` in the `build/` directory. You can load this ROM into a MSX emulator. You can change the ROM file name by modifying line 6 of the Makefile.\n\nThe resulting ROM file will be a simple 16KB ROM. To change this, modify `src/include/MemoryMap.inc` to fit your needs.\n\nRefer to `CMakeLists.txt` and `src/CMakeLists.txt` to see how to add additional sources and include directories.\n\nAfter all source files are assembled by wla-z80, a simple Haskell script found in `tools/generatelinkfile.hs` will generate the necessary link file to link the final ROM.\n\n## Example Code\n\nThe example code is very simple at the moment. I plan to add something a bit more complex in the future. The code in `src/Main.s` will simply call the `BEEP` (`$00c0`) function from the [MSX BIOS][msxbios].\n\nYou can test it with [OpenMSX][openmsx]:\n\n```Bash\nopenmsx -cart build/msx-cartridge-template\n```\n\nAfter the loading screen, you should hear a short beep sound. After that, the machine will continue with it's normal start up routine.\n\n## Contribution\n\nI'm a total newbie when it comes to MSX development, so any kind of feedback, bug reports, pull requests, etc. is highly appreciated and encouraged!\n\n## Resources and Links\n\nHere's a list of useful links to resources about MSX programming:\n\n* The [MSX Wiki][msxwiki] has tons of informations, down to the memory maps of individual MSX machines.\n* [Néstor Soriano aka Konamiman][konamiman] has several repositories relating to MSX and Z80 programming, including this [excellent MSX2 Technical Handbook][msxoverview] how the MSX works.\n* A complete list of all the [functions in the MSX BIOS][msxbios].\n\n[msxwiki]: https://www.msx.org/wiki/\n[cartwiki]: https://www.msx.org/wiki/Develop_a_program_in_cartridge_ROM\n[msxbios]: http://map.grauw.nl/resources/msxbios.php\n[konamiman]: https://github.com/Konamiman\n[msxoverview]: https://github.com/Konamiman/MSX2-Technical-Handbook\n[make]: https://www.gnu.org/software/make/\n[cmake]: https://cmake.org\n[wladx]: http://www.villehelin.com/wla.html\n[ghc]: https://www.haskell.org/ghc/\n[openmsx]: http://openmsx.org","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgjz%2Fmsx-cart-project-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeorgjz%2Fmsx-cart-project-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeorgjz%2Fmsx-cart-project-template/lists"}