Zebraは、Z80コンピューター向けのマルチタスクオペレーティングシステムであり、主にいくつかのアセンブラーでCで実装されています。
このソフトウェアはGPLV3の下でライセンスされています。完全なライセンス条件については、こちらをご覧ください。
OSを独自のシステムに設定することに興味がある場合は、ご連絡ください!
オペレーティングシステムは、カスタムZ80モジュラーコンピューターをターゲットにします。
カーネルは、32kbのRAMで実行することを目的としており、シリアルインターフェイスを介してユーザーインタラクションを提供します。ユーザープログラムにはそれぞれ、バンク付きRAMの32kbページが割り当てられ、複数のプログラムが同時に実行できるようになります。
このリポジトリには、基本的なインタープリターなどのいくつかのビルトインユーティリティプログラムも含まれています。
ファイルシステムからOS画像をロードできる2段階のブートローダー
rst命令を使用して実装されたハードウェア抽象化のためのsyscallsdir起動時には、モジュラーコンピューターには0x0000で8kのROM、 0x8000で32KのRAMがあります。ブートローダーはROMに存在し、ディスクから個々のセクターを読むことができる基本的なCFカードドライバーがあります。
セカンダリブートローダーは、CFカードの最初の9セクターに存在します。この2段階のローダーには同じCFカードルーチンがありますが、DISKからファイルを読み取ることができる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 )のために予約されています。