So-net無料ブログ作成

Dash-8X 進行状況、その他 [近況報告]

Dash-8X のリリースに向けてバリバリとコーディング中。

Dash-8X のネーミングはもう既にお察しのとおり、日本語系/漢字系を除く NEC の8ビット系の BASIC 全てで動作する Dash システムです。

PC-8001 用にリリースした Dash-80 は N-BASIC の構想もわりと単純だったのであまり苦労もなくインプリメントできたのですが、Dash-88 パートに苦戦…

N-BASIC だと 'LOAD', 'RUN' 等は Disk-BASIC 専用命令なのでフックを書き換えるだけで済んでしまうところが、N88-BASIC だと他のデバイス("SCRN:","CAS:","KYBD:")との絡みで、フックの書き換えだけという訳にはいかないのですが、まあ、その辺りは Disk-BASIC がやっているのと同じような拡張のやり方で済むので問題はありません。

Dash が売り物にしている「フリーエリアを圧迫しない」点も、 Dash-80 では必要でなかったデバイスディスクリプタ処理を 8000H から 83FFH にあるテキストウィンドウの裏RAMを使用する事であっさり解決♪

問題は N-BASIC ではサポートされていなかった DMA方式のドライブの存在…
Dash は5インチインテリジェントドライブ専用なので、8インチドライブは無用というか邪魔者でしかありません。
ドライブ番号は、8インチDMA→5インチDMA→5インチINT の順で振られるのですが、IPL が読み込まれる時点では既にシステムに接続されているドライブのリストが作成されてしまっています。
このリストをそのまま使用すると、サポートされていないドライブに番号が振られている「みっともない状態」になってしまいますので、これは何とか避けたいところです。 「フリーエリアを圧迫しない」というポリシーにも反しますしね。

もうひとつの問題は、起動時に ”How many files (0-15) ?” と質問される DCB(?)、 FCB とファイルバッファの存在…
N-BASIC では FCB とファイルバッファは Disk BASIC でしか使われなかったため、Dash-80 では全く使用しない方法で組んでいました。
Dash-88 パートを組むにあたっては、他のデバイスで使用される FCB とファイルバッファを無視する訳にはいかないので、あれこれと試行錯誤中です。
ドライブのステータスを管理する DCB は、N88-BASIC のドライブ管理機能自体を使っていないので、全く無視しても良いかな(笑)




Dash-80mkII パートは、まだ手付かず状態なのですが、こっちの方が楽に行けそうな感じ♪
Dash-80 が PC-8001mkII で N80-BASIC から起動した場合でも N-BASIC で起動してしまうのは、N80-BASIC で拡張された 4th ROM をチェックしていないのが原因なので、チェックを追加すればOKのはず。
Dash-88 パートで手詰まり状態になったらこっちを先にやるかもです。




Dash-80SR パートは全くの未着手 orz
N80SR-BASIC の解析は進んでいるのですが、どうしてもフリーエリアを使用しなくてはならないようなので、メモリレイアウトをあれこれ模索中です。




N-BASIC / N80-BASIC / N80SR-BASIC / N88-BASIC と、4つの Dash システムを1枚のメディアに収める件は、実証実験も終わってOKなので問題なし。
元々はシステムを4つリリースすると管理が大変だという訳で「面倒だからまとめてしまえ」と始めた Dash-8X ですが、色々と要望も野望も出てきそうなので、もう少し(…まだまだの間違いかも^^;)時間が掛かりそうです。
個別のシステムがある程度フィックスした時点で「えいやっ」とひとつにまとめてリリースします。




ここからは、使っているアセンブラ「Macro assembler AS」の話。

これまでも、他のアセンブラでできる事ができないとか、マニュアルが不親切で分かりにくいとか、色々と泣かされて来ましたが、またまた大きなバグを発見 OTL

コードの途中に構造体( STRUCT )を配置すると、アセンブルリストを見る限りでは問題なくちゃんとアセンブルされているのですが、出力された HEX ファイルには構造体の領域が確保されていないという…もう顎が外れそうです。

まぁ、データ領域は大抵コード領域の後ろに配置するのが常ですけど、ヘッダーとかに構造体を使わないんでしょうかねぇ…。
アセンブルリストは正常なので、コードジェネレータのバグなのでしょうか…。
使い込めば使い込むほど「ドツボ」に嵌り込んでゆく気がするのは、気のせいなんでしょうか…

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