Zebra ist ein Multitasking-Betriebssystem für Z80-Computer, das hauptsächlich in C mit einigen Assembler implementiert wird.
Diese Software ist unter GPLV3 lizenziert. Die vollständigen Lizenzbedingungen finden Sie hier.
Wenn Sie daran interessiert sind, das Betriebssystem für Ihr eigenes System einzurichten, wenden Sie sich bitte an uns!
Das Betriebssystem zielt auf meinen benutzerdefinierten Z80 -Modularcomputer ab.
Der Kernel soll mit 32 KB RAM ausgeführt werden und bietet Benutzerinteraktion über eine serielle Schnittstelle. Benutzerprogramme werden jeweils eine 32 -KB -Seite mit Banked -RAM zugewiesen, sodass die mehreren Programme gleichzeitig ausgeführt werden können.
Dieses Repository enthält auch einige integrierte Dienstprogramme wie einen grundlegenden Dolmetscher.
Zweistufiger Bootloader ermöglicht das Laden von Betriebssystembildern aus dem Dateisystem
rst -Anweisungdir zum Anzeigen von Dateien Beim Start hat der modulare Computer 8K ROM bei 0x0000 und 32.000 RAM bei 0x8000 . Ein Bootloader lebt in ROM und verfügt über grundlegende CF-Karten-Treiber, die einzelne Sektoren von der Festplatte lesen können.
Ein sekundärer Bootloader befindet sich in den ersten 9 Sektoren der CF-Karte. Dieser Loader im zweiten Stadium verfügt über die gleichen CF-Kartenroutinen, aber zusätzlich einen FAT-16-Treiber, der Dateien von der Festplatte lesen kann, die im FAT16-Format formatiert ist.
Dieser sekundäre Bootloader wird bei 0x8000 in RAM geladen und dann ausgeführt. Es wechselt zunächst die untere Bank ( 0x0000 bis 0x7fff ) von ROM zu RAM und schreibt das Kernel-Bild, das sich auf dem Dateisystem der CF-Card als kernel.bin befindet, um 0x0000 . Der Sekundärlader setzt dann auf 0x0000 zurück, um in den Kernel zu starten.
Der Kernel initialisiert einen vollständigen Dateisystem-Treiber und andere Betriebssystemkomponenten, lädt dann den Befehlsprozessor ( command.exe ) von der Festplatte und beginnt mit der Ausführung.
Zu diesem Zeitpunkt wird die Steuerung dem Benutzer übergeben, der über die Befehlszeile mit dem System interagieren kann, um Programme auszuführen.
Low RAM High RAM
0x0000┌────────────────────────┐ 0x8000┌────────────────────────┐
│ Kernel │ │ User Program Area │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ 0xe000├────────────────────────┤
│ │ │ Stack │
│ │ │ │
│ │ │ │
│ │ 0xF800├────────────────────────┤
│ │ │ User Program Args │
└────────────────────────┘ └────────────────────────┘
0xF7FF initialisiert und wächst ab.argv und argc ).