えー,ブログでも書いているけれど,組込みOS自作本を執筆中です.
で,書籍用にKOZOS/H8のソースコードを整理しなおしたので,参考までに公開してみます.これからKOZOS/H8のソースを読むというのならば,こっちのほうがいいかもしれません.書籍用ということで,かなりばっさりと機能限定して,あと無駄を省いてシンプル・コンパクトにしています.
また,全体的に見直して,きれいに整理しなおしました.かなりごっそりと書き換えています.単語の意味とかも整理・統一化しています.
あと,従来はシリアルの送信割込みを見ていなかったのですが(文字列送信時は,1文字ずつ文字出力がはけるのをポーリングで監視していた),きちんと割込みを見て1文字ずつ送信するように書き換えました.これでよーやくまともに割込み処理をやっているということができるでしょう.
現状で,リンカスクリプトやアセンブラやMakefileもすべてぜんぶ含めて,ブートローダーが945行,アプリケーション含めたOS全体が1828行です.うーん,いい感じにまとまった.
ただ以下のような部分があり,削ろうと思えばまだまだ削れそうです.たぶん本気で削れば,ブートローダーは800行程度,OSはアプリ含めて1500行を切るくらいにはできるでしょう.
- 初心者用ということで,やたらとふんだんにコメントを入れてある.(普段なら「そーいうことはコメントでなくソースコードで伝えるべき」として,絶対に入れないような内容のコメントも敢えてガシガシ入れてある)
- 初心者用ということで,わかりやすくするためにわざと冗長に書いている部分がいくつかある.
- ブートローダーとOSで,ライブラリ関数などの共通コードは極力そのままにしてある(変更あると,書籍で説明しなければならなくなるので,OS側では使わない関数もそのまま残してある).このため,OS側では使わないライブラリ関数とかがいくつか残っている.
うーん,自分で言うのもなんだけど,これ,結構いいかも.自分がOS勉強し始めたころにこーいうのがあったらホント良かったのにとしみじみ思う.