{"id":23954298,"url":"https://github.com/leoncinardo/MascOS","last_synced_at":"2025-09-12T13:31:13.926Z","repository":{"id":61558366,"uuid":"526357496","full_name":"leoncinardo/MascOS","owner":"leoncinardo","description":"16-bit Real Mode operating system made entirely in Assembly","archived":false,"fork":false,"pushed_at":"2025-05-10T15:10:00.000Z","size":592,"stargazers_count":60,"open_issues_count":0,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-05-15T12:22:21.603Z","etag":null,"topics":["16-bit","assembly","computer-science","dos","hobby-os","operating-system","os","os-development","x86"],"latest_commit_sha":null,"homepage":"","language":"Assembly","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/leoncinardo.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,"zenodo":null}},"created_at":"2022-08-18T20:04:20.000Z","updated_at":"2025-05-10T15:10:03.000Z","dependencies_parsed_at":"2025-05-10T16:21:12.998Z","dependency_job_id":null,"html_url":"https://github.com/leoncinardo/MascOS","commit_stats":null,"previous_names":["leo007er1/mascos"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/leoncinardo/MascOS","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoncinardo%2FMascOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoncinardo%2FMascOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoncinardo%2FMascOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoncinardo%2FMascOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/leoncinardo","download_url":"https://codeload.github.com/leoncinardo/MascOS/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/leoncinardo%2FMascOS/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274821183,"owners_count":25356229,"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-09-12T02:00:09.324Z","response_time":60,"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":["16-bit","assembly","computer-science","dos","hobby-os","operating-system","os","os-development","x86"],"created_at":"2025-01-06T15:00:41.134Z","updated_at":"2025-09-12T13:31:13.914Z","avatar_url":"https://github.com/leoncinardo.png","language":"Assembly","funding_links":[],"categories":["Assembly"],"sub_categories":[],"readme":"# MascOS\n16-bit Real Mode operating system made entirely in Assembly.\n\n![MascOS logo](./Showcase/MascOSLogo.png)\n![MascOS shell with the ls and fetch command](./Showcase/MascOSShell.jpeg)\n![Floppy Bird running on MascOS](./Showcase/MascOSFloppyBird.jpeg)\n\n## Current situation of the project\nThe latest version shouldn't have bugs but I did fix every one of those I have found. I tried to run these 2 DOS games: [DOS Defender](https://github.com/skeeto/dosdefender-ld31), an Asteroids clone, and [Floppy Bird](https://github.com/icebreaker/floppybird), a Flappy Bird clone. They work but I can't fully test DOS Defender because I don't have a joystick. Other MS DOS programs can *theoretically* run on this not so good operating system, but keep in mind I haven't tested every program and I haven't implemented everything needed for those programs to behave without issues. The \"stable\" version doesn't have FAT12 and it's there for no reason, other than boosting my energy when I see how much progress I have made since I began this project.\n\nI have tried to boot MascOS with a floppy disk(3.5 inch, 1.44MB) from an external usb floppy drive, and it worked almost flawlessly. It was tested on a Toshiba NB250 laptop.\n\nIf you want to learn how to create program for MascOS check [the documentation](ProgramsDocumentation.md).\n\n## Why MascOS\nIt's a learning project. I thought creating an operating system that targets old hardware would be a fun experiment to deal with.\n\n## Running the operating system\nYou can use the .flp image provided in the latest release or compile yourself the operating system. For the last one refer to the `Compiling` section.\nIt's very simple, but first you need to install Qemu (you need `qemu-system-i386`).\n\nArch\n```sh\nsudo pacman -S qemu-base\n```\n\nUbuntu/Linux Mint\n```sh\nsudo apt install qemu\n```\n\nAfter installing Qemu:\n```sh\nmake run\n```\n\nIt uses PulseAudio to emulate the pc speaker, so if you're having troubles to run the operating system use this command instead:\n```sh\nqemu-system-i386 -fda Build/MascOS.flp -M smm=off -no-shutdown -no-reboot \\\n\t-cpu 486 -rtc base=localtime,clock=host\n```\n\nIf you want to run this on real hardware you need a computer with **legacy BIOS** and *not* a modern UEFI system, since MascOS aims to run on old hardware, and it will hopefully. To get the operating system image you can head to the Releases page, choose the latest release and download the .flp image, alternatively you can compile the os.\n\n## Compiling\nTo compile MascOS you need these packages:\n - Nasm\n\nTo compile the latest version run this command. You need sudo permissions because the Makefile mounts an image to /dev/loop7.\n```sh\nsudo make\n```\n\nYou can also choose to compile one of the oldest versions, v0.1.2. There's no purpose for this code to be there other than see how far I have come since I started the project. Note that after compiling it will automatically run the os with Qemu, so you need that installed.\n```sh\nmake stable\n```\n\nAlso if you want to remove the compiled files and the os image run:\n```sh\nmake clean\n```\n\n\n## Troubleshooting\n#### OS\n**1. Why does the text in the edit program blink?**\n\nThe VGA driver disables bliking to allow to use all 16 colors for background on real VGA hardware. Unfortunately on simulated VGA this doesn't work, and the text blinks.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoncinardo%2FMascOS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleoncinardo%2FMascOS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleoncinardo%2FMascOS/lists"}