{"id":50358662,"url":"https://github.com/dagrigorev/microdos","last_synced_at":"2026-05-30T00:01:31.493Z","repository":{"id":354889813,"uuid":"1225829634","full_name":"dagrigorev/microdos","owner":"dagrigorev","description":"A modern C++ foundation for a UEFI-native DOS-compatible micro-OS inspired by MS-DOS 1.x architecture","archived":false,"fork":false,"pushed_at":"2026-05-11T11:26:20.000Z","size":50,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T13:32:15.620Z","etag":null,"topics":["4fun","dos","fun","low-level","microdos","operating-system","os","porting"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","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/dagrigorev.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-30T17:26:24.000Z","updated_at":"2026-05-11T11:26:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dagrigorev/microdos","commit_stats":null,"previous_names":["dagrigorev/microdos"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dagrigorev/microdos","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dagrigorev%2Fmicrodos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dagrigorev%2Fmicrodos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dagrigorev%2Fmicrodos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dagrigorev%2Fmicrodos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dagrigorev","download_url":"https://codeload.github.com/dagrigorev/microdos/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dagrigorev%2Fmicrodos/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33675019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"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":["4fun","dos","fun","low-level","microdos","operating-system","os","porting"],"created_at":"2026-05-30T00:01:31.417Z","updated_at":"2026-05-30T00:01:31.482Z","avatar_url":"https://github.com/dagrigorev.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MicroDOS Standalone Boot\n\nThis branch removes the EDK2 dependency from the MicroDOS bring-up path.\n\nThe first milestone is intentionally monolithic:\n\n```text\nBOOTX64.EFI = MicroBoot loader + MicroDOS kernel\n```\n\nThe loader is written against a tiny local UEFI ABI header, not EDK2. It initializes GOP framebuffer, captures a memory map, exits boot services, then calls `KernelMain(BootInfo*)`.\n\n## Build on Windows\n\nRequirements:\n\n- LLVM with `clang++.exe` and `lld-link.exe`\n- QEMU for fast testing\n- OVMF firmware if your QEMU build does not include UEFI firmware\n\nBuild:\n\n```powershell\n.\\scripts\\build-standalone-uefi.ps1\n```\n\nClean rebuild:\n\n```powershell\n.\\scripts\\build-standalone-uefi.ps1 -Clean\n```\n\nOutput:\n\n```text\ndist/BOOTX64.EFI\ndist/esp/EFI/BOOT/BOOTX64.EFI\n```\n\n## Run in QEMU\n\n```powershell\n.\\scripts\\run-qemu.ps1 -Build\n```\n\nIf QEMU needs explicit OVMF:\n\n```powershell\n.\\scripts\\run-qemu.ps1 -Build -OvmfCode C:\\path\\to\\OVMF_CODE.fd\n```\n\n## Host compile-check\n\n```powershell\n.\\scripts\\build-host-check.ps1\n```\n\n## Architecture\n\n```text\nboot/microboot/efi_min.hpp      minimal UEFI ABI definitions\nboot/microboot/main.cpp         standalone UEFI entry, GOP, memory map\nkernel/boot/boot_info.hpp       boot protocol between loader and kernel\nkernel/kernel.cpp               KernelMain\nkernel/platform/framebuffer     framebuffer backend\nkernel/platform/console         text console on framebuffer\n```\n\n## Why no EDK2\n\nThe previous EDK2 path was blocked by unstable environment mixing VS2019, VS2022, VS2026, EDK2 BaseTools, NASM_PREFIX, and C++ type conflicts. This standalone path makes the boot chain deterministic and easier to debug.\n\n\n## Notes\n\nPowerShell scripts use argument arrays instead of Unix-style `\\` line continuations. This keeps them valid in Windows PowerShell and PowerShell 7.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdagrigorev%2Fmicrodos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdagrigorev%2Fmicrodos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdagrigorev%2Fmicrodos/lists"}