{"id":20596838,"url":"https://github.com/alexander-akhmetov/apple1","last_synced_at":"2025-08-16T17:08:15.617Z","repository":{"id":37829737,"uuid":"186133685","full_name":"alexander-akhmetov/apple1","owner":"alexander-akhmetov","description":"Apple-1 emulator","archived":false,"fork":false,"pushed_at":"2025-07-10T03:51:10.000Z","size":1561,"stargazers_count":13,"open_issues_count":3,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-29T20:40:46.610Z","etag":null,"topics":["apple-1","apple1","emulator","mos6502"],"latest_commit_sha":null,"homepage":null,"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/alexander-akhmetov.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,"zenodo":null}},"created_at":"2019-05-11T13:02:34.000Z","updated_at":"2025-03-28T21:12:27.000Z","dependencies_parsed_at":"2024-06-29T20:45:36.958Z","dependency_job_id":"e48bab3f-cd11-4422-802f-31aaac3e9af2","html_url":"https://github.com/alexander-akhmetov/apple1","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/alexander-akhmetov/apple1","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexander-akhmetov%2Fapple1","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexander-akhmetov%2Fapple1/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexander-akhmetov%2Fapple1/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexander-akhmetov%2Fapple1/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexander-akhmetov","download_url":"https://codeload.github.com/alexander-akhmetov/apple1/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexander-akhmetov%2Fapple1/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270742043,"owners_count":24637504,"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-16T02:00:11.002Z","response_time":91,"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":["apple-1","apple1","emulator","mos6502"],"created_at":"2024-11-16T08:18:58.827Z","updated_at":"2025-08-16T17:08:15.591Z","avatar_url":"https://github.com/alexander-akhmetov.png","language":"Assembly","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Apple1 emulator\n\nThe CPU emulator is in the separate repository:\n\n* [CPU MOS 6502 emulator](https://github.com/alexander-akhmetov/mos6502).\n* [Docker Hub](https://hub.docker.com/repository/docker/akhmetov/apple1)\n\n\u003cimg src=\"https://github.com/alexander-akhmetov/apple1/raw/master/apple1-30.gif\" alt=\"drawing\" width=\"300\"/\u003e\n\n## How to use\n\nRun:\n\n```\nmake run\n\n# or you can use Docker:\nmake docker/run\n```\n\nThe command above starts the Apple-1 emulator with Woz Monitor at the address `0xFF00`. You should see the screen and the command line prompt:\n\n```\n\\\n\u003ccursor\u003e\n```\n\nWith optional flag `-p` you can load an additional program to the memory:\n\n```\ncargo run --features binary -- -p asm/apple1hello.asm\n```\n\nIt will be loaded to the memory with starting address `0x7000`. To run it using Woz Monitor type `7000R` and press enter.\n\nYou should see this:\n\n```\n^?\\\n7000R\n\n7000: A9\nHELLO WORLD!\n\n█\n```\n\nTo see the hex content of the program: `7000.\u003cEND ADDR\u003e`, for example: `7000.700F`:\n\n```\n7000.700F\n\n7000: A9 8D 20 EF FF A9 C8 20\n7008: EF FF A9 C5 20 EF FF A9\n```\n\n## Basic\n\nYou can type `E000R` to start basic (run program at `E000`).\n\nHello world:\n\n```basic\nPRINT \"HELLO WORLD!\"\n```\n\nAnother simple BASIC program to try:\n\n```basic\n10 FOR I = 1 TO 5\n20 PRINT \"HELLO, WORLD!\"\n30 NEXT I\n40 END\n\nRUN\n```\n\n## Debug\n\nYou can disable the screen (`-s`) and enable debug logging:\n\n```\nRUST_LOG=debug cargo run --features binary -- -s -p asm/apple1hello.asm\n```\n\n## Apple 1 Basic\n\n* [BASIC source code listing](https://github.com/jefftranter/6502/blob/master/asm/a1basic/a1basic.s)\n* [Disassembled BASIC](http://www.brouhaha.com/~eric/retrocomputing/apple/apple1/basic/)\n\n\nThere are two different ROMs, one of them is from Replica1 (`sys/replica1.bin`) and another one, `roms/apple1basic.bin`. Seems like it has `0xD0F2` instead of `0xD012`.\nBoth seems to be working well, though I did not test everything.\n\nYou can inspect them if you load them to memory and print hex data at location `E3D5.E3DF` with Woz Monitor.\n\n\tnote: http://www.brielcomputers.com/phpBB3/viewtopic.php?f=10\u0026t=404\n\tdiscussion about the same problem\n\napple1basic.bin:\n\n```\nE3D5.E3DF\n\nE3D5: 2C F2 D0\n...\n```\n\nReplica1 basic content:\n\n```\nE3D5.E3DF\n\nE3D5: 2C 12 D0\n...\n```\n\n### Start Basic\n\n```\nmake run\n```\n\nand then type `E000R`.\n\n\n## Resources\n\n* [6502 instruction set](https://www.masswerk.at/6502/6502_instruction_set.html#BIT)\n* [Apple1 BASIC manual](https://archive.org/stream/apple1_basic_manual/apple1_basic_manual_djvu.txt)\n* [www.applefritter.com](https://www.applefritter.com)\n* [6502 memory test](http://www.willegal.net/appleii/6502mem.htm)\n* [apple1 programs](http://hoop-la.ca/apple2/2008/retrochallenge.net.html)\n* [apple1 programs 2](http://www.willegal.net/appleii/apple1-software.htm)\n* [Woz Monitor description](https://www.sbprojects.net/projects/apple1/wozmon.php)\n* [6502 instructions description with undocumented commands](http://www.zimmers.net/anonftp/pub/cbm/documents/chipdata/64doc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexander-akhmetov%2Fapple1","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexander-akhmetov%2Fapple1","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexander-akhmetov%2Fapple1/lists"}