{"id":21816166,"url":"https://github.com/megatokio/z80emuf","last_synced_at":"2026-05-16T11:05:12.162Z","repository":{"id":165083713,"uuid":"218489044","full_name":"Megatokio/Z80EMUF","owner":"Megatokio","description":"emulation of a simple Z80 micro computer for testing or starting own project","archived":false,"fork":false,"pushed_at":"2020-09-05T10:58:03.000Z","size":666,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-11T02:03:41.900Z","etag":null,"topics":["cpp","emulation","qt","z80"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-2-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Megatokio.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":"2019-10-30T09:22:03.000Z","updated_at":"2023-08-31T18:24:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"bee0f115-772f-47e9-8595-233cc6bf9c76","html_url":"https://github.com/Megatokio/Z80EMUF","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Megatokio/Z80EMUF","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megatokio%2FZ80EMUF","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megatokio%2FZ80EMUF/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megatokio%2FZ80EMUF/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megatokio%2FZ80EMUF/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Megatokio","download_url":"https://codeload.github.com/Megatokio/Z80EMUF/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Megatokio%2FZ80EMUF/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33100321,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["cpp","emulation","qt","z80"],"created_at":"2024-11-27T15:31:47.437Z","updated_at":"2026-05-16T11:05:12.134Z","avatar_url":"https://github.com/Megatokio.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Z80EMUF\n\nThis is a Z80 Project Template\n\nstarted 2015-05-31\nand it is work in progress.\n\nGoal:\n\nSimple Z80 system to serve as a project template.\nAs my Z80 emulation got fatter and fatter it was no longer suited for starting a new project.\nSo i removed everything optional and started anew.\n\nThis provides a working system and you can start adding and modifying it.\nThe Project is based on Qt, thus the GUI stuff is Qt, and it is maintained on Mac OSX.\nInternally the project uses POSIX files, threads and more.\n\nThis project requires my [Libraries](https://github.com/Megatokio/Libraries.git) project side-by-side with this project in the same folder.\n\n### Z80 System\n\n  Z80 CPU\n  32k Ram         $0000 - $7FFF\n  32k Rom         $8000 - $FFFF\n  Timer interrupt\n  Mini SIO\n\n\n### Z80\nconfigurable with #defines\n  minimum configuration:\n  - 8 bit core bytes =\u003e no per-byte options\n  - no cycle counting (and no wait states)\n  - running full speed except for HALT\n\n  typical configuration:\n  - 8 bit core bytes or 8+8 bit core bytes with options (to be defined)\n  - cycle counting\n  - no wait states\n  - speed limited to an adjustable clock frequency\n\n\n### Memory\n  $0000 - $7FFF   32k Ram\n  $8000 - $FFFF   32k Rom/NVRam (evtl. Flash Rom emulation)\n\n  After reset the Rom is visible in the upper and in the lower bank.\n  - The emulator just copies the first 3 bytes from upper Rom to Ram.\n  In a real system there might be a flip flop which is set on reset\n  and cleared after a certain i/o or memory read or write condition.\n\n\n### Timer\n  Emulation of a 50 Hz system timer interrupt.\n\n\n### Mini SIO\n  Emulation of a minimalistic 2 channel serial interface.\n  It assumes HW handshake (e.g. can't overrun on the emulated serial line)\n  and a preconfigured baud rate without any setup.\n  In the simplest setup probably no speed limiter is emulated.\n  In a more complex setup later, 9600, 19200 (default) and 38400 are likely.\n\n  I/O address:    $FF\n  3 registers:\n    $FCFF  port A TXD and RXD\n    $FDFF  port B TXD and RXD\n    $FEFF  port C control port and status register\n\n    read bits in status register:\n    0 port A: 1 = out buffer empty (and interrupt pending)\n    1 port B: 1 = out buffer empty (and interrupt pending)\n    2 port A: 1 = input data available (and interrupt pending)\n    3 port B: 1 = input data available (and interrupt pending)\n    4-7 unused\n\n    write bits in control port:\n    0 port A: 1 = enable interrupt for \"out buffer empty\"\n    1 port B: 1 = enable interrupt for \"out buffer empty\"\n    2 port A: 1 = enable interrupt for \"input data available\"\n    3 port B: 1 = enable interrupt for \"input data available\"\n    4-7 unused\n\n    reading RXD or writing TXD clears the interrupt,\n    or it can be disabled by writing '0' into it's control bit of port C.\n\n  Port A is connected to a virtual character terminal (for output)\n  and the keyboard (for input).\n\n  Port B may be connected to a pipe or file.\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegatokio%2Fz80emuf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmegatokio%2Fz80emuf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmegatokio%2Fz80emuf/lists"}