# 🚀 QuintalOS

> **A 16-bit Real Mode Operating System & Retro Game Engine written entirely in x86 Assembly.**

![QuintalOS Banner](https://img.shields.io/badge/Architecture-x86_16--bit_(Real_Mode)-blue?style=for-the-badge&logo=assembly)
![License](https://img.shields.io/badge/License-AGPL_3.0-blue?style=for-the-badge)
![Built With](https://img.shields.io/badge/Assembler-NASM-orange?style=for-the-badge)

---

## 💻 Sobre o Projeto

O **QuintalOS** é um sistema operacional *bare-metal* desenvolvido em Assembly 16-bit (Modo Real x86). Diferente dos sistemas operacionais modernos, o QuintalOS foi projetado para rodar sem abstrações, interagindo diretamente com os registradores do processador, interrupções da BIOS e escrita manual no buffer de memória de vídeo VGA (`0xB800`).

O projeto conta com uma **Interface Visual de Dashboard (TUI)**, um ecossistema próprio de compiladores/interpretadores integrados (**QDK**) e uma engine gráfica 2D dedicada para o desenvolvimento de jogos retro (**GASM**).

---

## ✨ Principais Funcionalidades

### 🖥️ Interface TUI (Text User Interface)
* **Dashboard Dividido ($80 \times 25$):** Painel lateral de navegação, *workspace* central dinâmico e painel de status em tempo real.
* **Renderização VRAM Direta:** Escrita instantânea na memória de vídeo VGA sem *flicker*.
* **Relógio RTC Integrado:** Leitura contínua do relógio de tempo real da placa-mãe (`INT 1Ah`).

### 🎮 GASM (Game Assembly API)
A **GASM** é a engine gráfica 2D interna do QuintalOS. Permite a criação de jogos direto em Assembly pura de 16 bits.
* Rotinas otimizadas de desenho de pixels (`gasm_draw_pixel`).
* Suporte a renderização de Sprites com controle de dimensões, cores e caracteres (`gasm_draw_sprite`).
* Gerenciamento de buffers de entrada de teclado em tempo real.

### 🛠️ QDK (QuintalOS DevKit)
O QuintalOS possui um ecossistema multinível que suporta chamadas e runtimes de diversas linguagens lendárias:
* **Linguagem Q:** Linguagem proprietária com sintaxe moderna baseada em blocos (`class main ()`), condicionais e interpolação de variáveis.
* **Pascal:** Layer de execução focada em estruturas `BEGIN ... END` e `WRITELN`.
* **FORTRAN:** Engine para rotinas numéricas e processamento matemático.
* **BASIC:** Interpretador para scripts rápidos (`PRINT`).
* **COBOL:** Camada de compatibilidade para instruções `DISPLAY`.

---

## 🕹️ A Linguagem Q em Ação

A **Linguagem Q** permite escrever programas estruturados diretamente no ecossistema do QuintalOS:

```q
class main () {
    var idade is int = 13;

    if (idade) = 13 {
        return("Ele tem %idade% anos de idade");
    } else {
        return("Ele não tem %idade% anos de idade");
    }
    end 0;
}