{"id":27400085,"url":"https://github.com/arikatsu/teto","last_synced_at":"2025-08-17T19:38:08.334Z","repository":{"id":279213426,"uuid":"937519166","full_name":"Arikatsu/Teto","owner":"Arikatsu","description":"A 32-bit CPU implementation in C#","archived":false,"fork":false,"pushed_at":"2025-03-13T15:58:39.000Z","size":56,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T16:42:18.910Z","etag":null,"topics":["32-bit","cpu","cpu-emulator","csharp","emulator"],"latest_commit_sha":null,"homepage":"","language":"C#","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/Arikatsu.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":"2025-02-23T08:56:44.000Z","updated_at":"2025-03-13T15:58:42.000Z","dependencies_parsed_at":"2025-02-24T12:33:50.591Z","dependency_job_id":"3d5dde48-6d90-4f33-a1dc-8f9490f347fc","html_url":"https://github.com/Arikatsu/Teto","commit_stats":null,"previous_names":["arikatsu/teto"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arikatsu%2FTeto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arikatsu%2FTeto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arikatsu%2FTeto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Arikatsu%2FTeto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Arikatsu","download_url":"https://codeload.github.com/Arikatsu/Teto/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248814846,"owners_count":21165840,"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","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":["32-bit","cpu","cpu-emulator","csharp","emulator"],"created_at":"2025-04-14T03:26:20.232Z","updated_at":"2025-04-14T03:26:20.755Z","avatar_url":"https://github.com/Arikatsu.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Teto\n\nA minimal 32-bit CPU emulator that implements a simplified fixed-width x86-like instruction set.\n\n## Architecture (currently)\n\n- **Memory**: 64KB addressable memory space\n- **Registers**: 8 general-purpose 32-bit registers (similar to x86):\n    - eax, ebx, ecx, edx, esi, edi, esp, ebp\n- **Memory Segments**:\n    - Text Segment: 16KB\n    - Data Segment: 16KB\n    - Heap Segment: 16KB\n    - Stack Segment: 16KB\n- **Program Counter**: Starts at 0x0000\n- **Stack**: Grows downwards from 0xFFFF\n- **Heap**: Grows upwards from 0x8000\n\n## Instruction Format\n\nEach instruction is 32 bits (4 bytes) with the following layout:\n\n```\n0            8       12     16                32 (BIT)\n+------------+-------+------+--------------------+\n|   Opcode   |  Reg  | Mode |      Operand       |\n+------------+-------+------+--------------------+\n\nOpcode  = 8 bits  (Operation to execute)  \nReg     = 4 bits  (Target register)  \nMode    = 4 bits  (Addressing mode)\nOperand = 16 bits (Immediate value or register address)\n```\n\n#### Addressing Modes\n\n| Binary    | Decimal | Mode Name         | Description                                  |\n|-----------|---------|-------------------|----------------------------------------------|\n| 0000      | 0       | Immediate         | Operand is an immediate 16-bit WORD          |\n| 0001      | 1       | Memory Direct     | Operand is a 16-bit address in memory        |\n| 0010      | 2       | Register Direct   | Operand is a register (EAX, EBX, etc.)       |\n| 0011      | 3       | Heap Relative     | Operand is an offset from the heap base      |\n| 0100-1011 | 4-11    | Register Relative | Operand is an offset from the register value |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farikatsu%2Fteto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farikatsu%2Fteto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farikatsu%2Fteto/lists"}