>>32
さっと見た感じ読みやすいコードだと思います。
気になった点としては、
1. せっかくtypedef unsigned char _UBYTEとかで型を隠してるのに使われてない
2. #define hoge 0とか1とかは可能な限りenumを使いたい
3. そのファイル内でしか使われない関数はstaticを付けてスコープを制限したい
4. 3の結果グローバルな関数のプロトタイプ宣言は.hに移す
5. main()とか若干長いのでもうちょっと短くしたい(冒頭の処理をhoge_init()にまとめるとか)
あまり細かく見てないけどこんな感じです。