So-net無料ブログ作成
メッセージを送る

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

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 用アセンブラ」が無いんだぁ?

nice!(0)  コメント(3)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 3

apaslothy

某アセンブラとは,ひょっとして"The Macroassembler AS"でしょうか。
歴史があって十分に枯れていそうなソフトでも,あまり使われない機能だと思わぬ不具合が残っていたりするものなのですねぇ。
by apaslothy (2010-05-06 02:52) 

Thunderbolt

apaslothyさん、コメントありがとうございます。

>ひょっとして"The Macroassembler AS"でしょうか。
ひょっとして"The Macroassembler AS"です(笑)

改変履歴とか、バージョン毎のリリース日とかの情報があれば嬉しいんですが、その手の情報が全く無いのが痛いところです。
知らないうちに Win32 版が出来てたり…。

>歴史があって十分に枯れていそうなソフトでも,あまり使われない機能だと思わぬ不具合が残っていたりするものなのですねぇ。
途中で開発言語が変わったりしてますし、いろんなプラットフォームへの対応も追加されてますから、詳細な検証はできていないのでしょうね。
アセンブル機能自体にバグが無いのが唯一の救いです。
by Thunderbolt (2010-05-06 04:30) 

jh

こんんちは、

z-80逆アッセンブラー今どこでも有りますが

MS-DOS上での逆クロスです、

実機があればz-80、8080はどこでも有ります

ICMにいた時開発支援ツールとして素晴らしい

アッセンッブラーとリンカーもありました

設計者の先生のツールですが若い私たちは裏で

コピーをさせて貰ってあらゆる行為に使用していました

PASSが5有ってどれでも選べてアッセンブルファイル

またはリスト又は両方を一度に取り込んでいました。

またリロケータブルオブジェクトファイルなので

リンク時にCOMでなくROBファイルを生成して100h
でなく自在にロードアンドゴーアドレスをコンソール

コマンドでしていできました。

by jh (2012-02-10 02:48) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

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

×

この広告は1年以上新しい記事の更新がないブログに表示されております。