{"id":18290559,"url":"https://github.com/lpg2709/emulator-intel-4004","last_synced_at":"2025-07-23T08:08:53.241Z","repository":{"id":162610284,"uuid":"305542097","full_name":"lpg2709/emulator-Intel-4004","owner":"lpg2709","description":"Simple emulator of the Intel 4004 chip.","archived":false,"fork":false,"pushed_at":"2025-04-08T13:26:22.000Z","size":3050,"stargazers_count":55,"open_issues_count":0,"forks_count":12,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-15T07:37:10.804Z","etag":null,"topics":["4004","assambler","c","compiler","disassembler","emulator","intel"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lpg2709.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-10-20T00:00:00.000Z","updated_at":"2025-06-25T12:44:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"8fe7d6b9-cf4b-4aab-af06-123352f6fe1c","html_url":"https://github.com/lpg2709/emulator-Intel-4004","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lpg2709/emulator-Intel-4004","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpg2709%2Femulator-Intel-4004","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpg2709%2Femulator-Intel-4004/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpg2709%2Femulator-Intel-4004/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpg2709%2Femulator-Intel-4004/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lpg2709","download_url":"https://codeload.github.com/lpg2709/emulator-Intel-4004/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lpg2709%2Femulator-Intel-4004/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266640830,"owners_count":23960809,"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-07-23T02:00:09.312Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"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":["4004","assambler","c","compiler","disassembler","emulator","intel"],"created_at":"2024-11-05T14:11:26.722Z","updated_at":"2025-07-23T08:08:53.218Z","avatar_url":"https://github.com/lpg2709.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Intel 4004 emulator\n```text\n                            I/O   I/O   I/O   I/O   Vdd    CM   TEST  RESET\n                             --    --    --    --    --    --    --    --\n                            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |\n                         ---    --    --    --    --    --    --    --    ---\n                        |    16    15    14    13    12    11    10     9    |\n                        |                                                    |\n                        |           ##      ###         ###           ##     |\n                        |          ###    ##   ##     ##   ##        ###     |\n                         --       # ##   ##     ##   ##     ##      # ##     |\n                           |     #  ##   ##     ##   ##     ##     #  ##     |\n                           |    #   ##   ##     ##   ##     ##    #   ##     |\n                         --    #######   ##     ##   ##     ##   #######     |\n                        |           ##    ##   ##     ##   ##         ##     |\n                        |           ##      ###         ###           ##     |\n                        |                                                    |\n                        |     1     2     3     4     5     6     7     8    |\n                         ---    --    --    --    --    --    --    --    ---\n                            |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |\n                             --    --    --    --    --    --    --    --\n                             D0    D1    D2    D3    Vss   Ph1   Ph2  SYNC\n```\n\n\u003e Development in progress. (Check dev branch)\n\nSimple emulator of the Intel 4004 chip.\n\nThe Intel 4004 was the first computer that I made an emulator, unfortunately I\nlost the code. Since then I have been studying and assembling small emulators\nand studying the architecture of computers and embedded devices. After a long\ntime I am going back to the emulators, and the first one that I will focus on\ndevelopment is the Intel 4004, because it is a simple device with a few\ninstructions (46 instructions).\n\n\nThis program has an emulator, assembly and disassembler integrated for the\nIntel 4004. Its objective is to be faithful, as far as possible, to the original\nhardware, following the specifications of the documents of its time.\n\n## Intel 4004\n\nIntel 4004 is a 4-bit CPU released by Intel in 1971, which was the first\ncommercial programmable microprocessor.\n\n### References\n\nIf you don't know anything about intel 4004, your\n[wikipedia](https://en.wikipedia.org/wiki/Intel_4004) page is a good place to\nstart.\n\nBrief history of the Intel 4004. [Intel's First Microprocessor](https://www.intel.com/content/www/us/en/history/museum-story-of-intel-4004.html)\n\nRecommended online emulator: [Emulator - Assembler - Disassembler](http://e4004.szyc.org/)\n\n\u003e This emulator does not strictly follow the specifications of the original\n4004, having some facilities and conveniences not present in the documentation.\n\n[4004 Datasheet](./doc/4004%20Datasheet.pdf) *\n\n[MCS-4 Assembly Language Programming Manual - December 1973](./doc/MCS-4%20Assembly%20Language%20Programming%20Manual.pdf)*\n\n## Usage\n\nAfter download the executable for your system, open a terminal (or promt) and\nexecute it. You have some modes:\n\nYou can use `--help` to see the options in more detail.\n\n### Emulator -e (Default option)\n\nExecute a 4004 program instruction by instruction, view the registers and memory\non a CLI ASCII view.\n\n### Assembler -a\n\nCompile a program to Intel 4004 binary.\n\n### Disassembler -d\n\nDecompile a binary file to a text file with the assembley instruction.\n\n## Compile\n\nYou have two options to compile.\n\n## 1. Using CMake\n\nInside the root dir of the project.\n\n```sh\nmkdir build \u0026\u0026 cd build\ncmake ..\nmake\n```\n\nThat create the executable ```4004_emulator```.\n\n## 2. Using Zig\n\n\u003e Not fully suported by now\n\nInside the root dir of the project to compile for you machine.\n\n```sh\nzig build\n```\n\n\u003e Need to be Zig 0.13.0\n\nThe zig build system and C compiler is used to gennerate the release\nexecutables.\n\n\n## License\n\n[MIT](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flpg2709%2Femulator-intel-4004","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flpg2709%2Femulator-intel-4004","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flpg2709%2Femulator-intel-4004/lists"}