SSブログ

開発の 悩みの種は アセンブラ [雑記]

PC-8001 や PC-8801 のユーティリティ開発に利用している、ドイツ製の某アセンブラ。

フリーソフトなので無料で使えて、しかも様々な古い CPU に対応しているので、Dash-80 の開発にも使用していますが、 難点はマニュアルが分かりにくい事。

アセンブラ擬似命令の書式を確認するために、ソースコードを書いては直し、書いては直し…。
ちゃんと使えるようになるにはずいぶん時間が掛かりましたが、機能的には申し分ないです。




通常、アセンブラやコンパイラには、ソースコードを書き換えなくても条件を変えてアセンブル/コンパイルできるように、コマンドラインでシンボルを定義したり値を設定できるオプションが設けられています。

しかし、このアセンブラでは、そのオプションがうまく働かないという致命的な欠点を発見。

これまではひとつの機種だけしか対応していなかったので条件アセンブルをする必要はなかったのですが、今回は寄り道をして Dash-80 を PC-8001mkII と PC-8001mkIISR に移植しようと試みているので、これが正常動作しないのは非常に痛い…。

マニュアルどおりに、'-D' オプションに複数のシンボルを設定しようとして makefile に "-D $(MACHINE),$(DBG)" と書くと "invalid option: -D" なんてエラーになるし、値を設定しようと "-D MACHINE=$(MCODE)" と書くと、またもや "invalid option: -D"。

初登場から10年も経つのに、まだこんなバグがあるのかい!
しかし、他に"使える”アセンブラが無いのが実情… OTL




頭にきたので、ソースファイルを改造しようと DL してみたら、あらら… Pascalian なのね。
C のソースなのにパスカル風の書式と関数の使い方… OTL


ソースが汚くなるのは嫌なんですが、うまくバグを回避して使うしかないですね。

…って、なぜ世の中には「フリーの使える Z80 用アセンブラ」が無いんだぁ?

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。