{"id":21197669,"url":"https://github.com/stianeklund/z80-rs","last_synced_at":"2026-05-17T20:33:40.575Z","repository":{"id":91455053,"uuid":"273184485","full_name":"stianeklund/z80-rs","owner":"stianeklund","description":"A Zilog Z80 CPU emulator intended for emulating the Pacman arcade cabinet","archived":false,"fork":false,"pushed_at":"2020-08-10T21:24:56.000Z","size":266,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-01-02T00:57:25.665Z","etag":null,"topics":["cpu","cpu-emulator","emu","emulation","emulator","rust","rustlang","z80","zilog"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/stianeklund.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":"2020-06-18T08:33:34.000Z","updated_at":"2024-01-28T22:00:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"03acfad9-0961-400e-bc76-3ca8146ee956","html_url":"https://github.com/stianeklund/z80-rs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stianeklund/z80-rs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stianeklund%2Fz80-rs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stianeklund%2Fz80-rs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stianeklund%2Fz80-rs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stianeklund%2Fz80-rs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stianeklund","download_url":"https://codeload.github.com/stianeklund/z80-rs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stianeklund%2Fz80-rs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33153815,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-17T09:28:26.183Z","status":"ssl_error","status_checked_at":"2026-05-17T09:27:52.702Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cpu","cpu-emulator","emu","emulation","emulator","rust","rustlang","z80","zilog"],"created_at":"2024-11-20T19:45:55.107Z","updated_at":"2026-05-17T20:33:40.559Z","avatar_url":"https://github.com/stianeklund.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# z80-rs\n\n[![Build Status](https://travis-ci.com/stianeklund/z80-rs.svg?branch-master)](https://travis-ci.com/stianeklund/z80-rs)\n\nA WIP Zilog Z80 CPU Emulator\n\nCompatible with Windows, Linux, \u0026 Mac OS\n\n## Emulator compatibility\n\n* This is a work in progress project ported from [eighty-eighty](https://github.com/stianeklund/eighty-eighty) and does not run any games, yet.\n* Interrupts not implemented.\n* Passes the preliminary z80 tests \u0026 CPUTEST by SuperSoft Associates.\n\n\n\n### CPU Tests\n\n#### Diagnostics II v1.2 by by Supersoft Associates (1981):\n\n```\nTest loaded: \"CPUTEST.COM\" Bytes: 19200\n\nDIAGNOSTICS II V1.2 - CPU TEST\nCOPYRIGHT (C) 1981 - SUPERSOFT ASSOCIATES\n\nABCDEFGHIJKLMNOPQRSTUVWXYZ\nCPU IS Z80\nBEGIN TIMING TEST\nEND TIMING TEST\nCPU TESTS OK\n```\n\n#### Preliminary z80 Exerciser (by Frank D. Cringle):\n\n```\nTest loaded: \"tests/prelim.com\" Bytes: 1280\nPreliminary tests complete Jump to 0 from 0447\n```\n\n#### Preliminary 8080 / z80 Exerciser (by Frank D. Cringle, modified by Ian Bartholemew for the 8080*):\n``` \nTest loaded: \"8080PRE.COM\" Bytes: 1024\n8080 Preliminary tests complete\nJump to 0 from 032F\n```\n\n#### Zexall\n\n```\n*Does not pass.\n\n* See Zexdoc\n```\n#### Zexdoc\n\n```\n\nTest loaded: \"tests/zexdoc.com\" Bytes: 8588\n\nZ80doc instruction exerciser\n\u003cadc,sbc\u003e hl,\u003cbc,de,hl,sp\u003e....  OK\nadd hl,\u003cbc,de,hl,sp\u003e..........  OK\nadd ix,\u003cbc,de,ix,sp\u003e..........  OK\nadd iy,\u003cbc,de,iy,sp\u003e..........  OK\naluop a,nn....................  OK\naluop a,\u003cb,c,d,e,h,l,(hl),a\u003e..  ERROR **** crc expected:fe43b016 found:80744231\naluop a,\u003cixh,ixl,iyh,iyl\u003e.....  ERROR **** crc expected:a4026d5a found:18e22f28\naluop a,(\u003cix,iy\u003e+1)...........  ERROR **** crc expected:e849676e found:b2b3f5cf\nbit n,(\u003cix,iy\u003e+1).............  ERROR **** crc expected:a8ee0867 found:efb20fe7\nbit n,\u003cb,c,d,e,h,l,(hl),a\u003e....  OK\ncpd\u003cr\u003e........................  ERROR **** crc expected:a87e6cfa found:8a2154a8\ncpi\u003cr\u003e........................  ERROR **** crc expected:06deb356 found:06b932a1\n\u003cdaa,cpl,scf,ccf\u003e.............  ERROR **** crc expected:9b4ba675 found:89ad31f7\n\u003cinc,dec\u003e a...................  OK\n\u003cinc,dec\u003e b...................  OK\n\u003cinc,dec\u003e bc..................  OK\n\u003cinc,dec\u003e c...................  OK\n\u003cinc,dec\u003e d...................  OK\n\u003cinc,dec\u003e de..................  OK\n\u003cinc,dec\u003e e...................  OK\n\u003cinc,dec\u003e h...................  OK\n\u003cinc,dec\u003e hl..................  OK\n\u003cinc,dec\u003e ix..................  OK\n\u003cinc,dec\u003e iy..................  OK\n\u003cinc,dec\u003e l...................  OK\n\u003cinc,dec\u003e (hl)................  OK\n\u003cinc,dec\u003e sp..................  OK\n\u003cinc,dec\u003e (\u003cix,iy\u003e+1).........  OK\n\u003cinc,dec\u003e ixh.................  OK\n\u003cinc,dec\u003e ixl.................  OK\n\u003cinc,dec\u003e iyh.................  OK\n\u003cinc,dec\u003e iyl.................  OK\nld \u003cbc,de\u003e,(nnnn).............  OK\nld hl,(nnnn)..................  OK\nld sp,(nnnn)..................  OK\nld \u003cix,iy\u003e,(nnnn).............  OK\nld (nnnn),\u003cbc,de\u003e.............  OK\nld (nnnn),hl..................  OK\nld (nnnn),sp..................  OK\nld (nnnn),\u003cix,iy\u003e.............  OK\nld \u003cbc,de,hl,sp\u003e,nnnn.........  OK\nld \u003cix,iy\u003e,nnnn...............  OK\nld a,\u003c(bc),(de)\u003e..............  OK\nld \u003cb,c,d,e,h,l,(hl),a\u003e,nn....  OK\nld (\u003cix,iy\u003e+1),nn.............  OK\nld \u003cb,c,d,e\u003e,(\u003cix,iy\u003e+1)......  OK\nld \u003ch,l\u003e,(\u003cix,iy\u003e+1)..........  OK\nld a,(\u003cix,iy\u003e+1)..............  OK\nld \u003cixh,ixl,iyh,iyl\u003e,nn.......  OK\nld \u003cbcdehla\u003e,\u003cbcdehla\u003e........  OK\nld \u003cbcdexya\u003e,\u003cbcdexya\u003e........  OK\nld a,(nnnn) / ld (nnnn),a.....  OK\nldd\u003cr\u003e (1)....................  ERROR **** crc expected:94f42769 found:b94a393d\nldd\u003cr\u003e (2)....................  ERROR **** crc expected:5a907ed4 found:772e6080\nldi\u003cr\u003e (1)....................  ERROR **** crc expected:9abdf6b5 found:b703e8e1\nldi\u003cr\u003e (2)....................  ERROR **** crc expected:eb59891b found:1c991b87\nneg...........................  ERROR **** crc expected:6a3c3bbd found:dfbcf11d\n\u003crrd,rld\u003e.....................  ERROR **** crc expected:955ba326 found:2c05f8a4\n\u003crlca,rrca,rla,rra\u003e...........  ERROR **** crc expected:251330ae found:34b41bec\nshf/rot (\u003cix,iy\u003e+1)...........  ERROR **** crc expected:713acd81 found:c5ed15c5\nshf/rot \u003cb,c,d,e,h,l,(hl),a\u003e..  ERROR **** crc expected:eb604d58 found:772bdc9b\n\u003cset,res\u003e n,\u003cbcdehl(hl)a\u003e.....  ERROR **** crc expected:8b57f008 found:36d25f63\n\u003cset,res\u003e n,(\u003cix,iy\u003e+1).......  ERROR **** crc expected:cc63f98a found:fe27dcf9\nld (\u003cix,iy\u003e+1),\u003cb,c,d,e\u003e......  OK\nld (\u003cix,iy\u003e+1),\u003ch,l\u003e..........  OK\nld (\u003cix,iy\u003e+1),a..............  OK\nld (\u003cbc,de\u003e),a................  OK\nTests complete\n```\n--- \n\n### Arcade game support\n\nPlease see [pacman-rs](https://github.com/stianeklund/pacman-rs)\n\n---\n\n#### Running CPU tests:\n\nWith Rust \u0026 cargo installed:\n\nRun tests from the terminal you can use `cargo test` or, for `stdout` output:\nRun all tests: `cargo test -- --nocapture`\n\n\n---\n\n### References used:\n\n* https://z80.info\n* http://www.z80.info/#BASICS_INST\n* http://z80.info/zip/z80-documented.pdf\n* [Z80 test roms](http://mdfs.net/Software/Z80/Exerciser/)\n* https://old.reddit.com/r/emudev \u0026 the emudev community on Discord.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstianeklund%2Fz80-rs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstianeklund%2Fz80-rs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstianeklund%2Fz80-rs/lists"}