initial commit

This commit is contained in:
Frater 2026-01-08 10:26:52 +01:00
commit 08f66b73e1
10 changed files with 783 additions and 0 deletions

123
readme.md Normal file
View file

@ -0,0 +1,123 @@
# Custom BIOS / ROM Project
## Projet BIOS / ROM personnalisé
---
## 🇬🇧 English
### Overview
This project aims to design and implement a **PC-compatible BIOS/ROM from scratch**, primarily targeted for **QEMU emulation**, with a strong focus on **low-level PC architecture** and **x86 real-mode assembly programming**.
Rather than booting an operating system from disk, the PC starts **directly from the ROM** into a **minimalist graphical interface**, using **CGA High-Resolution Monochrome (640×200)** mode.
The project is intentionally educational, experimental, and minimalist.
---
### Objectives
- **Write a PC-compatible BIOS from scratch**
- No reuse of existing BIOS code
- Minimal but functional implementation
- Compatible with QEMU
- Target architecture: **8086 → 80486**
- **Boot directly from ROM**
- No DOS, no bootloader, no disk dependency
- Execution starts at reset vector (F000:FFF0)
- ROM is responsible for full system initialization
- **Provide a minimalist graphical interface**
- Graphics mode: **CGA High-Resolution Monochrome (640×200)**
- Direct video memory access
- Custom cursor and basic UI primitives
- **Deep understanding of PC architecture**
- CPU reset behavior
- Memory map (RAM, ROM, EBDA, IVT, BDA)
- Interrupt Vector Table
- Hardware initialization (PIC, PIT, keyboard, video)
- Real-mode execution constraints
- **Improve mastery of x86 assembly**
- Real-mode x86 assembly (8086-compatible)
- Performance-oriented routines
- Hardware-near programming
- Clear separation between hardware-specific drivers and core logic
---
### Non-Goals
- Full IBM BIOS compatibility
- Protected mode or modern CPUs
- Advanced OS services
- DOS or legacy OS support
This is a **learning and exploration project**, not a drop-in BIOS replacement.
---
## 🇫🇷 Français
### Présentation
Ce projet consiste à concevoir et développer un **BIOS/ROM PC compatible entièrement écrit “from scratch”**, destiné principalement à lémulation **QEMU**, avec pour objectif principal l**apprentissage approfondi de larchitecture PC** et de la **programmation assembleur x86 en mode réel**.
Au lieu de charger un système dexploitation depuis un disque, le PC **démarre directement depuis la ROM** vers une **interface graphique minimaliste**, utilisant le mode **CGA Haute Résolution Monochrome (640×200)**.
Le projet est volontairement **éducatif, expérimental et minimaliste**.
---
### Objectifs
- **Écrire un BIOS PC depuis zéro**
- Aucun code BIOS existant réutilisé
- Implémentation minimale mais fonctionnelle
- Compatible avec QEMU
- Architecture ciblée : **8086 jusquau 486**
- **Démarrer directement depuis la ROM**
- Sans DOS, sans bootloader, sans disque
- Exécution depuis le vecteur de reset (F000:FFF0)
- La ROM initialise entièrement la machine
- **Fournir une interface graphique minimaliste**
- Mode graphique : **CGA Hi-Res Monochrome (640×200)**
- Accès direct à la mémoire vidéo
- Curseur personnalisé et primitives graphiques simples
- **Approfondir la compréhension de larchitecture PC**
- Séquence de reset CPU
- Cartographie mémoire (RAM, ROM, EBDA, IVT, BDA)
- Table des vecteurs dinterruptions
- Initialisation matérielle (PIC, PIT, clavier, vidéo)
- Contraintes du mode réel
- **Perfectionner la maîtrise de lassembleur**
- Assembleur x86 en mode réel (compatible 8086)
- Routines optimisées pour la performance
- Programmation proche du matériel
- Séparation claire entre cœur du BIOS et drivers matériels
---
### Hors périmètre
- Compatibilité BIOS IBM complète
- Mode protégé ou CPU modernes
- Services système avancés
- Support DOS ou OS legacy
Ce projet est avant tout un **laboratoire dapprentissage et dexploration**, et non un BIOS de production.
---
### Status
🚧 **Work in progress**
Designed for experimentation, learning, and documentation.
---