SSブログ

解析の日々 [近況報告]

先日の apaslothy さんのコメントに触発されたので、Dash-80 のバージョンアップを一時的に棚上げして N80SR-BASIC の解析を進めています。

N80SR-BASIC は Microsoft ではなく NEC が独自に拡張したものらしく、PC-8001mkIISR で拡張された部分のコードは、Z80 で拡張された裏レジスタやインデックスレジスタをガンガンと使用して書いてあります。
N-BASIC / N80-BASIC がブロック転送命令以外は殆ど i8080 のコードで書かれていたことを考えると格段の進歩ですね。

N80SR-BASIC ディスアセンブルリスト
N80SR-BASIC ディスアセンブルリスト


N80-BASIC は 24KiB サイズの N-BASIC を8 KiB 分追加する形で拡張されていたので解析は容易でしたが、N80SR-BASIC は全くルーチンレイアウトが異なっているので骨が折れます。

元は N-BASIC なので何をするルーチンなのか見当がついたら、N-BASIC の解析済みディスアセンブルリストと見比べれば芋づる式に段々と分かってくるので楽なのですが、問題は SR で拡張された「VOICE」「SOUND」等の拡張命令・・・
いやぁ、「LD (IX),H」や「LD A,(IX+12H)」なんてのがゾロゾロと登場するので、もうウンザリです(笑)
「LD (E654H),A」だと、どこがワークエリアなのかちゃんと分かるからホント楽なんですがね。

Dash-80 を mkIISR に移植するには、ワークエリア内の未使用エリアがちゃんと分かっていないと無理なので、なんとか頑張ります^^;


タグ:NEC PC-8001 Dash-80
nice!(0)  コメント(2)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 2

apaslothy

おおっ,80SRの解析を始められましたか。
80/mkIIはシステムソフトのTechknowシリーズが出ていましたがSRは解析本が全然出ていなかったので,ソフトを作成しようにも情報が少なくて大変でした。
Z80をバリバリに使いこなしているというのはすごいと思う反面,空きエリアがほとんど見つからないのではないかと心配になってしまいます。
by apaslothy (2009-05-25 00:56) 

Thunderbolt

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

まさしくご指摘のとおり、空きエリアがほとんど見つかりません。
今のところ 72Bytes + 76Bytes が見つかっていますが、Dash-80 には 400Bytes ほど必要なので全く足りない状態です。
もしかしたらこれも拡張された機能で使用されているエリアかもしれませんし・・・
手元にある資料はTechKnow8001と秀和のマシン語活用ハンドブック初級/中級編だけなので、力技で解析する以外の方法はなさそうです。
by Thunderbolt (2009-05-25 21:47) 

コメントを書く

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

トラックバック 0

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