Z80逆アセンブラhoja for Javaを、手作業でいちから移植しなおしている。

昨日からふと、Z80逆アセンブラhojaのJava版を手作業でいちからC言語からJavaに移植作業を始めました。
Java版は既に公開しているんですが、それは半自動で移植したものです。
NovosoftのC2Jというトランスレーターを使ってC言語からJavaに変換したソースがベースで、GPLらしいランタイムライブラリを使わないと動かないし、変換にも実行にもバグがあって実行時にエラーが出ることがある。
とにかくいろいろ問題があって理想ではないのです。
完全自動変換できればよかったが、変換にバグがあって自動変換したJavaソースのコンパイルができなかったことと、全角文字を通さなかったので手作業もかなり入って半自動になったのです。
手作業で自力で移植したらどの程度の難易度になるか興味があったので実験も兼ねてやっているところです。
まだコンパイルが通るところまで行っていませんがほとんどJavaに書き換えました。
Javaだと、int a; if(a){} とか、int(!a){} がエラーになるとか、unsigned がないなどでC言語からの移植は厳しいのですが、それでも結構似ていてソースはいちから作り直しではなく全体的に少しずつ部分変更するような感じです。
しかし、なんでもうちょっと互換性を持たせないのかとつくづく思う。