Skip to content

RetroHackLab/ArduinoDOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ’» ArduinoDOS v1.5.0

An educational, lightweight micro-operating system engine written in C++ for the Arduino Uno (ATmega328P). It emulates a 32-bit execution environment and provides a multi-mode command-line interface (CLI) to interact directly with hardware registers and persistent EEPROM storage. πŸš€

🌟 Features

  • βš™οΈ Multi-Mode Engine: Toggle between MODE_CONSOLE (standard user space), MODE_SETUP (system configuration), and Root Access.
  • πŸ’Ύ Persistent Storage: Native integration with hardware EEPROM to save localization and environment variables.
  • 🧠 Optimized Memory Footprint: String literals are strictly mapped to Flash Memory using the F() macro to preserve the ATmega328P's limited 2KB SRAM.
  • 🎨 ANSI Color Support: Built-in support for terminal escape sequences (Green/White themes).

πŸ› οΈ Project Structure

To ensure proper compilation without toolchain conflicts, organize your project workspace as follows:

πŸ“ ArduinoDOS/
β”œβ”€β”€ πŸ“„ System.ino         # 🧠 Main core execution script
β”œβ”€β”€ πŸ“„ System.h           # βš™οΈ Global OS state headers and enums
β”œβ”€β”€ πŸ“„ EEPROM.h           # πŸ’Ύ High-level Arduino EEPROM class mapping
β”œβ”€β”€ πŸ“„ stdint.h           # πŸ”’ Exact-width integer definitions (32-bit engine)
β”œβ”€β”€ πŸ“„ System.json        # πŸ“‹ Project metadata and configuration manifest
└── πŸ“ avr/
    β”œβ”€β”€ πŸ“„ .io            # 🌐 Deployment anchor file
    β”œβ”€β”€ πŸ“„ eeprom.h       # ⚑ Low-level builtin hardware macros
    └── πŸ“„ stddef.h       # πŸ“ Standard size types and definitions
---
## ℹ️ Additional Documentation
Need help or troubleshooting? Check out the [HELP.md](HELP.md) guide for more details.

About

ArduinoDOS v1.5.0: An educational 32-bit emulated micro-operating system engine for Arduino Uno (ATmega328P), featuring multi-mode CLI, hardware register access, and persistent EEPROM management. πŸš€

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors