Zebra adalah sistem operasi multi-tasking untuk komputer Z80, sebagian besar diimplementasikan di C dengan beberapa assembler.
Perangkat lunak ini dilisensikan di bawah GPLV3. Untuk persyaratan lisensi lengkap, lihat di sini.
Jika Anda tertarik untuk mengatur OS untuk sistem Anda sendiri, silakan hubungi!
Sistem operasi menargetkan komputer modular Z80 khusus saya.
Kernel dimaksudkan untuk berjalan dengan 32kb RAM dan memberikan interaksi pengguna melalui antarmuka serial. Program pengguna masing -masing dialokasikan halaman 32kb dari RAM yang dibelokkan, yang memungkinkan banyak program untuk dieksekusi secara bersamaan.
Repositori ini juga berisi beberapa program utilitas bawaan, seperti penerjemah dasar.
Bootloader dua tahap yang memungkinkan pemuatan gambar OS dari sistem file
rst Z80dir untuk melihat file Pada startup komputer modular memiliki 8K ROM di 0x0000 , dan 32k RAM pada 0x8000 . Bootloader berada di ROM dan memiliki driver kartu CF dasar yang dapat membaca sektor individual dari disk.
Bootloader sekunder berada di 9 sektor CF-card pertama. Loader tahap kedua ini memiliki rutinitas kartu CF yang sama tetapi juga memiliki driver FAT-16 yang dapat membaca file dari disk, yang diformat dalam format FAT16.
Bootloader sekunder ini dimuat ke RAM pada 0x8000 dan kemudian dieksekusi. Pertama-tama beralih bank bawah ( 0x0000 ke 0x7fff ) dari ROM ke RAM dan menulis gambar kernel, yang terletak di sistem file CF-Card sebagai kernel.bin , ke RAM di 0x0000 . Loader sekunder kemudian diatur ulang ke 0x0000 untuk mem -boot ke kernel.
Kernel menginisialisasi driver sistem file lengkap dan komponen sistem operasi lainnya, kemudian memuat perintah-prosesor ( command.exe ) dari disk dan mulai mengeksekusi.
Pada titik ini kontrol diserahkan kepada pengguna, yang dapat berinteraksi dengan sistem melalui baris perintah untuk menjalankan program.
Low RAM High RAM
0x0000┌────────────────────────┐ 0x8000┌────────────────────────┐
│ Kernel │ │ User Program Area │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ 0xe000├────────────────────────┤
│ │ │ Stack │
│ │ │ │
│ │ │ │
│ │ 0xF800├────────────────────────┤
│ │ │ User Program Args │
└────────────────────────┘ └────────────────────────┘
0xF7FF pada startup program dan tumbuh.argv dan argc ).