{"id":15060181,"url":"https://github.com/andymccall/neo6502-development","last_synced_at":"2026-01-02T20:03:47.712Z","repository":{"id":253408062,"uuid":"843414785","full_name":"andymccall/neo6502-development","owner":"andymccall","description":"Coding examples in 6502 assembler and C for the NEO6502 neoretro computer","archived":false,"fork":false,"pushed_at":"2025-06-17T22:09:17.000Z","size":479,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-17T23:21:06.037Z","etag":null,"topics":["6502","6502-assembly","assembler","c","neo6502","retrocomputing"],"latest_commit_sha":null,"homepage":"https://andymccall.co.uk/","language":"Assembly","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/andymccall.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,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-16T13:14:09.000Z","updated_at":"2025-06-17T22:09:20.000Z","dependencies_parsed_at":"2024-08-23T11:48:01.900Z","dependency_job_id":"9737700b-4885-49f1-9cef-b719edabc9db","html_url":"https://github.com/andymccall/neo6502-development","commit_stats":null,"previous_names":["andymccall/neo6502-development"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andymccall/neo6502-development","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andymccall%2Fneo6502-development","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andymccall%2Fneo6502-development/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andymccall%2Fneo6502-development/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andymccall%2Fneo6502-development/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andymccall","download_url":"https://codeload.github.com/andymccall/neo6502-development/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andymccall%2Fneo6502-development/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28178245,"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":"2026-01-02T02:00:06.235Z","response_time":54,"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","6502-assembly","assembler","c","neo6502","retrocomputing"],"created_at":"2024-09-24T22:54:12.672Z","updated_at":"2026-01-02T20:03:47.672Z","avatar_url":"https://github.com/andymccall.png","language":"Assembly","funding_links":["https://ko-fi.com/andymccall"],"categories":[],"sub_categories":[],"readme":"# NEO6502 Development Environment Setup\n\n## Intro\n\n![Neo6502 Header](https://github.com/andymccall/neo6502-development/blob/main/assets/header.jpg?raw=true)\n\nW65C02S lives in The Matrix and thinks there is real RAM and other interfaces around it, but the truth is that all this is emulation of the real life. The RP2040 emulates the RAM memory, video, IO and even clock the W65C02S by PWM.\n\n## Features\n\nNeo6502 has these features:\n\n* W65C02S processor\n* RP2040 SOC with 2MB Flash\n* DVI video on HDMI connector\n* USB host for keyboard\n* Audio 3.5mm output\n* Speaker with enable jumper\n* USB-C for power supply\n* UEXT connector with I2C, UART and SPI\n* 40 pin 6502 bus connector with all W65C02 signals\n* Dimensions 80x55mm\n* 4 mount holes\n\nThe Neo6502 is available as a bare single board computer:\n\n![Neo6502 Single Board Computer](https://github.com/andymccall/neo6502-development/blob/main/assets/neo6502.jpg?raw=true)\n\nBoxed in a nice case:\n\n![Neo6502 Boxed](https://github.com/andymccall/neo6502-development/blob/main/assets/neo6502-boxed.jpg?raw=true)\n\nOr as a standalone PC variant with a built in screen:\n\n![Neo6502pc](https://github.com/andymccall/neo6502-development/blob/main/assets/neo6502pc.jpg?raw=true)\n\nAll these variants can be purchased from [Olimex.com](https://www.olimex.com/).\n\n## This Document\n\nThis README.md and repository will assist you in setting up a development environment for the Neo6502 using the following tools:\n\n- VSCode as an Integrated Development Environment\n- cc65 for programming in assembly language\n- LLVM-MOS for programming in C\n- Neo6502 emulator for testing\n\nThe repository has examples using both 6502 assembly and C. Each example has a README.md file that explains how to compile and run the example.\n\n### Install VSCode\n\nInstall VSCode and the following extensions:\n\n- cc65 for 6502/65816 machines : https://marketplace.visualstudio.com/items?itemName=SharpNinja.cc65\n- Makefile Tools : https://marketplace.visualstudio.com/items?itemName=ms-vscode.makefile-tools\n\n\n### Install cc65\n\n```\nusername@host:~$ cd ~\nusername@host:~$ mkdir development\nusername@host:~$ cd development\nusername@host:~$ git clone git@github.com:cc65/cc65.git\nusername@host:~$ make install PREFIX=~/development/tools/cc65\n```\n\nAdd cc65 bin to the path and add CC65_HOME environment variable:\n\n```\nusername@host:~$ vi ~/.profile\n```\n\nAdd the following at the bottom of the file:\n\n```\n# set PATH so it includes cc65 if it exists\nif [ -d \"$HOME/development/tools/cc65/bin\" ] ; then\n   PATH=\"$HOME/development/tools/cc65/bin:$PATH\"\nfi\n\n# Add CC65_HOME\nif [ -d \"$HOME/development/tools/cc65/share/cc65\" ] ; then\n   CC65_HOME=$HOME/development/tools/cc65/share/cc65\nfi\n```\n\nTest:\n\n```\nusername@host:~$ source ~/.profile\nusername@host:~$ cc65 --version\ncc65 V2.19 - Git 0541b65aa\n```\n\n### Install LLVM-MOS\n\nInstall the LLVM-MOS SDK.\n\n```\nusername@host:~$ wget https://github.com/llvm-mos/llvm-mos-sdk/releases/download/v19.1.0/llvm-mos-linux.tar.xz\nusername@host:~$ unxz llvm-mos-linux.tar.xz\nusername@host:~$ tar xpvf llvm-mos-linux.tar\nusername@host:~$ rm llvm-mos-llvm.tar\n```\nAdd llvm-mos bin to the path:\n\n```\nusername@host:~$ vi ~/.profile\n```\n\nAdd the following at the bottom of the file:\n\n```\n# set PATH so it includes llvm-mos if it exists\nif [ -d \"$HOME/development/tools/llvm-mos/bin\" ] ; then\n   PATH=\"$HOME/development/tools/llvm-mos/bin:$PATH\"\nfi\n```\n\nTest:\n\n```\nusername@host:~/development/neo6502-development/01-helloworld/c$ mos-neo6502-clang --version\nclang version 19.0.0git (https://github.com/llvm-mos/llvm-mos 0ec5fec611e127124170707224715983cd45d889)\nTarget: mos-neo6502\nThread model: posix\nInstalledDir: /home/username/development/tools/llvm-mos/bin\nConfiguration file: /home/username/development/tools/llvm-mos/bin/mos-neo6502.cfg\n```\n\n### Install NEO6502 Emulator\n\n```\nusername@host:~$ mkdir neo6502\nusername@host:~$ cd neo6502\nusername@host:~$ wget https://github.com/paulscottrobson/neo6502-firmware/releases/download/v0.99.0/neo6502.zip\nusername@host:~$ unzip neo6502.zip\nusername@host:~$ rm neo6502.zip\n```\n\nAdd the NEO6502 emulator to the path:\n\n```\nusername@host:~$ vi ~/.profile\n```\n\nAdd the following at the bottom of the file:\n\n```\n# set PATH so it includes neo6502 if it exists\nif [ -d \"$HOME/development/tools/neo6502\" ] ; then\n   PATH=\"$HOME/development/tools/neo6502:$PATH\"\nfi\n```\n\nTest:\n\n```\nusername@host:~$ source ~/.profile\nusername@host:~$ neo\n```\n\n### Where to get help\n\nYou can ask for help in the Neo6502 Community Discord channel, which can be found [here](https://discord.gg/cvhcCpPbbs).\n\nMore information on programming the Neo6502 can be found in the community documentation [here](https://neo6502.com/).\n\n### Found this guide useful?\n\n[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/andymccall)\n\nI don't write code, documents or software for profit, I do it for enjoyment and to help others. If you get anything useful from this guide, and only if you can afford it, please let me know by buying me a coffee using my Ko-fi tip page [here](https://ko-fi.com/andymccall).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandymccall%2Fneo6502-development","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandymccall%2Fneo6502-development","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandymccall%2Fneo6502-development/lists"}