Skip to content
PRoX2011Public

About

Simple 16 bit (real mode) operating system writen in NASM from scratch

Topics

Resources

Contributing

Stars

748 stars

Watchers

20 watching

Forks

Repository files navigation

x16-PRos Operating System

License Version

GitHub stars Last commit Contributions Welcome

A minimalistic 16-bit operating system written in NASM for x86 architecture


Overview

x16-PRos is a lightweight real-mode multitasking operating system designed for the x86 architecture and written entirely in NASM. It features CLI, TUI and GUI interfaces, supports the FAT12 file system, and includes a large standard software suite.

Also it`s a platform for low-level programming enthusiasts to explore development for x86 operating systems.

  • API - x16-PRos system calls
  • Programs package - every bundled program, with screenshots
  • Configuration - config files and what each of them changes
  • Contributing - coding standards, program templates and how to send changes



Key Features

  • MS-DOS Compatibility: Native support for running standard MS-DOS .COM and .EXE executables - Windows 3.11, DOOM and Turbo C 2.0 runs on x16-PRos
  • Multitasking: Cooperative multitasking support for .PLE programs
  • GUI: Customizable graphical user interface for windowed .PLE programs
  • Native assembler: Intel syntax assembler with which you can create programs directly in the operating system
  • User Authentication: Login system with configurable user account using XOR-encrypted password
  • Customization: 10+ color themes and fully customizable THEME.CFG, command prompt, username, timezone, and font settings
  • Over 40 bundled programs: Games, file utilities, players, BMP viewer with upscale, paint program, and more
  • First-Boot Setup: A setup wizard that installs the OS on your PC and helps you to customize everything for yourself
  • Auto-Execution: AUTOEXEC.BIN support
  • Mouse Driver: Mouse support for .BIN and .PLE programs and MS-DOS compatibility layer
  • Multiple disk support: Detect/list available drives, switch drives, install x16-PRos on any of theese
  • cp866 support: Russian-language text documents reading in cp866 encoding
  • Sound: PC speaker, Sound Blaster WAV playback and AdLib/OPL2 IMF music
  • AND MUCH MORE

Building and Running

Dependencies

Distro Command
Debian / Ubuntu sudo apt install nasm mtools dosfstools qemu-system-x86
Arch / Manjaro sudo pacman -Syu nasm mtools dosfstools qemu-system-x86
Fedora / CentOS sudo dnf install nasm mtools dosfstools qemu-system-x86

Only NASM, mtools and dosfstools are needed to build the x16-PRos and QEMU for running.

Building

  1. Clone the repository:
git clone https://github.com/PRoX2011/x16-PRos.git
cd x16-PRos
  1. Make build script executable:
chmod +x build-linux.sh
  1. Build the project:
./build-linux.sh

The build writes disk_img/x16pros.img (bootable 1.44 MB image), disk_img/HDD.img (10 MB hard disk image) and the separate binaries in bin/.

Note

FOR ADVANSED USERS build-linux have special flags:

-quiet            - disable all script messages, but not disable nasm's warnings and errors
-no-music         - do not add music files in system build
-no-txt           - do not add text files in system build
-no-boot-recomp   - do not compiling bootloader, in system build using old compiled bootloader from bin/ directory
-no-kernel-recomp - do not compiling kernel, in system build using old compiled kernel from bin/ directory
-dtm              - disable setup on first boot. dev testing mode.

Running

./run-linux.sh

The script starts QEMU with both floppies, the hard disk, PC speaker and AdLib sound.

OR

By hand, with the floppy alone:

qemu-system-x86_64 -display gtk -fda disk_img/x16pros.img -machine pcspk-audiodev=snd0 -device adlib,audiodev=snd0 -audiodev pa,id=snd0

On real hardware: write the image to a USB stick (or floppy) and boot in BIOS mode. On a UEFI machine turn on CSM or Legacy Boot first.


Contributing

How to Contribute

  1. Report Bugs: Open an issue on GitHub Issues
  2. Submit Code: Fork, develop, and create pull requests
  3. Write Programs: Develop applications using the PRos API
  4. Improve Docs: Email suggestions to prox.dev.code@gmail.com

More about contributing: contributing guide


Made with ❤️ by PRoX

About

Simple 16 bit (real mode) operating system writen in NASM from scratch

Topics

Resources

Contributing

Stars

748 stars

Watchers

20 watching

Forks

Releases

Packages

Contributors

Languages