Zebra est un système d'exploitation multitâche pour les ordinateurs Z80, implémentés principalement en C avec un assembleur.
Ce logiciel est sous licence GPLV3. Pour les conditions de licence complète, voir ici.
Si vous êtes intéressé à installer le système d'exploitation pour votre propre système, veuillez nous contacter!
Le système d'exploitation cible mon ordinateur modulaire Z80 personnalisé.
Le noyau est destiné à fonctionner avec 32 Ko de RAM et fournit une interaction utilisateur via une interface série. Les programmes utilisateur reçoivent chacun une page de 32 Ko de RAM en banque, permettant aux programmes multiples d'être exécutés simultanément.
Ce référentiel contient également certains programmes utilitaires intégrés, tels qu'un interprète de base.
Chargeur de démarrage en deux étapes permettant le chargement des images du système d'exploitation à partir du système de fichiers
rst instruction Z80dir pour afficher les fichiers Au démarrage, l'ordinateur modulaire a 8k de ROM à 0x0000 et 32k de RAM à 0x8000 . Un chargeur de démarrage réside dans ROM et dispose de pilotes CF-cartes de base capables de lire les secteurs individuels du disque.
Un chargeur de démarrage secondaire réside sur les 9 premiers secteurs de la carte CF. Ce chargeur de deuxième étape a les mêmes routines CF-Card mais a en outre un pilote FAT-16 capable de lire des fichiers du disque, qui est formaté au format FAT16.
Ce chargeur de démarrage secondaire est chargé dans RAM à 0x8000 puis exécuté. Il change d'abord la banque inférieure ( 0x0000 à 0x7fff ) de la ROM à la RAM et écrit l'image du noyau, située sur le système de fichiers de la carte CF sous le nom de kernel.bin , à RAM à 0x0000 . Le chargeur secondaire réinitialise ensuite 0x0000 pour démarrer dans le noyau.
Le noyau initialise un pilote complet du système de fichiers et d'autres composants du système d'exploitation, puis charge le processeur de commande ( command.exe ) à partir du disque et commence à l'exécuter.
À ce stade, le contrôle est remis à l'utilisateur, qui est en mesure d'interagir avec le système via la ligne de commande pour exécuter des programmes.
Low RAM High RAM
0x0000┌────────────────────────┐ 0x8000┌────────────────────────┐
│ Kernel │ │ User Program Area │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ 0xe000├────────────────────────┤
│ │ │ Stack │
│ │ │ │
│ │ │ │
│ │ 0xF800├────────────────────────┤
│ │ │ User Program Args │
└────────────────────────┘ └────────────────────────┘
0xF7FF au démarrage du programme et se développe.argv et argc ).