{"id":29950776,"url":"https://github.com/mlund/mega65-adventure","last_synced_at":"2025-08-03T11:19:29.857Z","repository":{"id":37537382,"uuid":"497677902","full_name":"mlund/mega65-adventure","owner":"mlund","description":"Playground for MEGA65 programming","archived":false,"fork":false,"pushed_at":"2023-04-04T15:06:34.000Z","size":131,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2023-04-05T22:10:56.706Z","etag":null,"topics":["6502-assembly","c64","mega65","retrocomputing"],"latest_commit_sha":null,"homepage":"","language":"C","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/mlund.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}},"created_at":"2022-05-29T18:37:49.000Z","updated_at":"2023-04-05T22:10:56.707Z","dependencies_parsed_at":"2022-07-16T23:30:29.158Z","dependency_job_id":null,"html_url":"https://github.com/mlund/mega65-adventure","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/mlund/mega65-adventure","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlund%2Fmega65-adventure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlund%2Fmega65-adventure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlund%2Fmega65-adventure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlund%2Fmega65-adventure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlund","download_url":"https://codeload.github.com/mlund/mega65-adventure/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlund%2Fmega65-adventure/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268531933,"owners_count":24265257,"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","status":"online","status_checked_at":"2025-08-03T02:00:12.545Z","response_time":2577,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-assembly","c64","mega65","retrocomputing"],"created_at":"2025-08-03T11:19:16.635Z","updated_at":"2025-08-03T11:19:29.841Z","avatar_url":"https://github.com/mlund.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MEGA65 Programming Playground\n\nThis is a playground for testing programming on the [MEGA65](https://mega65.org) 8-bit computer.\n\n## Rust using llvm-mos\n\n**Update**: _See the [`mos-hardware`](https://github.com/mlund/mos-hardware) crate for using Rust on C64 inspired computers!_\n\nAmazingly, most core Rust features (`no_std` only) seem to work, including iterators and functional style\nprogramming.\nThe `hello_rust` directory contains a simple example that compiles to a C64 `.prg` using\n[llvm-mos](https://llvm-mos.org) from wrapped Rust code. It requires a working\nRust installation and the [llvm-mos-sdk](https://github.com/llvm-mos/llvm-mos-sdk#getting-started).\nCompile and run on MEGA65 in c64 mode with:\n\n~~~ bash\ncd hello_rust\nmake\nmake run # emulate in xemu\n~~~\n\n\u003cimg src=\"images/hello_rust.png\" width=\"400\"\u003e\n\n\n### Things to do:\n\n- [x] Added convenience `peek` and `poke`\n- [x] Begin mega66 rust module with hardware registers (see e.g. KickC headers)\n- [ ] Inline assembler? `core::arch::asm` seem to work but unknown upcodes\n- [ ] Start in MEGA65 mode\n- [ ] Wrap [mega65-libc](https://github.com/MEGA65/mega65-libc) to Rust?\n- Build\n  - [ ] Use cargo\n  - [ ] Avoid c wrapper\n\n### Useful links\n\n- https://github.com/mlund/mos-hardware\n- http://forum.6502.org/viewtopic.php?p=84048#p84048\n- https://gergo.erdi.hu/blog/2021-09-18-rust_on_the_mos_6502__beyond_fibonacci/\n- [Atari rust example](https://github.com/mrk-its/llvm-mos-ferris-demo)\n\n### Why?\n\nBecause I like MEGA65 and I like Rust.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlund%2Fmega65-adventure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlund%2Fmega65-adventure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlund%2Fmega65-adventure/lists"}