Zebra-это многозадачная операционная система для компьютеров Z80, реализованной в основном в C с некоторым ассемблером.
Это программное обеспечение лицензировано в GPLV3. Для получения полной лицензии см. Здесь.
Если вы заинтересованы в создании ОС для собственной системы, пожалуйста, свяжитесь с нами!
Операционная система нацелена на мой пользовательский модульный компьютер Z80.
Ядро предназначено для запуска с 32 КБ оперативной памяти и обеспечивает взаимодействие пользователя через последовательный интерфейс. Пользовательским программам выделяется 32 -килограммовая страница банковской оперативной памяти, что позволяет одновременно выполнять несколько программ.
Этот репозиторий также содержит некоторые встроенные коммунальные программы, такие как базовый переводчик.
Двухэтапный загрузчик, позволяющий загружать изображения ОС из файловой системы
rst Trancedir для просмотра файлов При запуске модульный компьютер имеет 8 тыс. ПЗУ на 0x0000 и 32K оперативной памяти при 0x8000 . Сгрупчик проживает в ПЗУ и имеет основные драйверы CF-карт, способные читать отдельные сектора с диска.
Вторичный загрузчик проживает в первых 9 секторах CF-карты. Этот загрузчик второй стадии имеет одинаковые процедуры CF-карт, но дополнительно имеет драйвер FAT-16, способный читать файлы с диска, который отформатируется в формате FAT16.
Этот вторичный загрузчик загружается в ОЗУ на 0x8000 , а затем выполняется. 0x0000 он переключает нижний банк ( 0x0000 на 0x7fff ) с ПЗУ на ОЗУ и записывает изображение ядра, расположенное на файловой системе CF-карты как kernel.bin . Затем вторичный погрузчик сбрасывается до 0x0000 для загрузки в ядро.
Ядро инициализирует полный драйвер файловой системы и другие компоненты операционной системы, затем загружает командный процессор ( command.exe ) с диска и начинает его выполнять.
На этом этапе управление передается пользователю, который может взаимодействовать с системой через командную линию для запуска программ.
Low RAM High RAM
0x0000┌────────────────────────┐ 0x8000┌────────────────────────┐
│ Kernel │ │ User Program Area │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ 0xe000├────────────────────────┤
│ │ │ Stack │
│ │ │ │
│ │ │ │
│ │ 0xF800├────────────────────────┤
│ │ │ User Program Args │
└────────────────────────┘ └────────────────────────┘
0xF7FF при запуске программы и растет.argv и argc ).