z80 os
1.0.0
Zebra是针对Z80计算机的多任务操作系统,主要在C中使用一些汇编器实现。
该软件已根据GPLV3许可。有关完整的许可条款,请参见此处。
如果您有兴趣为自己的系统设置操作系统,请联系!
操作系统针对我的自定义Z80模块化计算机。
内核旨在使用32KB的RAM运行,并通过串行接口提供用户交互。用户程序分别分配了一个32KB的银行RAM页面,从而可以同时执行多个程序。
该存储库还包含一些内置的实用程序程序,例如基本解释器。
两阶段引导加载程序允许从文件系统加载OS图像
rst指令实现硬件抽象的SYSCALLSdir在启动时,模块化计算机在0x0000时具有8K ROM,在0x8000时具有32K RAM。引导加载程序位于ROM中,并且具有基本的CF-Card驱动程序能够从磁盘读取各个扇区。
辅助引导程序位于CF卡的前9个扇区上。该第二阶段加载程序具有相同的CF卡例程,但还有一个FAT-16驱动程序能够从磁盘上读取文件,该文件以FAT16格式格式化。
该辅助引导加载程序以0x8000加载到RAM中,然后执行。它首先将下银行( 0x0000至0x7fff )从ROM切换到RAM,并将位于CF-Card文件系统上的kernel.bin上的内核图像写入0x0000的RAM。然后,辅助加载器将重置为0x0000以引导到内核。
内核初始化了一个完整的文件系统驱动程序和其他操作系统组件,然后从磁盘上加载命令处理器( command.exe )并开始执行它。
此时,控制权交给了用户,用户能够通过运行程序的命令行与系统进行交互。
Low RAM High RAM
0x0000┌────────────────────────┐ 0x8000┌────────────────────────┐
│ Kernel │ │ User Program Area │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ 0xe000├────────────────────────┤
│ │ │ Stack │
│ │ │ │
│ │ │ │
│ │ 0xF800├────────────────────────┤
│ │ │ User Program Args │
└────────────────────────┘ └────────────────────────┘
0xF7FF ,然后成长。argv和argc )。