SSブログ

ブツブツ… [近況報告]

タイトルだけ見ると、何かに文句を言っているように思われるかもしれませんが、twitter 始めました。

ユーザー名は「RetroComPeople」ですので、フォローしたい方は検索してみてください。

新プロダクト進行中 [近況報告]

前回、アセンブラのバグのせいで苦労している話を書きましたが、バグを回避するために試行錯誤している中で新たなプランを思いつきました。


元々は、機種毎に Dash-80 / Dash-80mk2 / Dash-80SR / Dash-88… と、複数のプロダクトを開発しようと計画していました。 しかし、機種毎のバージョン管理が煩雑になる事と、アセンブラのバグのせいで開発が思うように進まない事から、「Dash-80 補完計画」で書いたように、一旦ディスク版の開発を停止して ROM 版の開発に移行しようと決意しました。




ところが、ROM 版作成のためにヘッダーファイルを書き直していた時に、あるアイディアが…
「おっ、これなら複数のプロダクトを管理しなくても良いじゃん!」
急遽ディスク版の IPL を作ってみると…うまく動いてる!!!

という訳で ROM 版の製作は後回しにして、先にワンプロダクトで複数の機種に対応できる「Dash-8X(仮称)」(どこかのエミュレータでも似たようなネーミングのモノがありましたが^^;)を製作することに決めました。
方針がころころ変わってスミマセンm(_~_)m
なぜこのアイディアを早く思いつかなかったんだろ…反省。

NEC の PC-8001 / PC-8801 シリーズ(PC-88VA シリーズに関しては未定)で「Dash-8X」をドライブに挿入して起動すれば、「Dash-80」と同じ機能がどの機種でも使用できる…。
これが実現すれば、みんなハッピーになれる…かもね^^




Dash の機能は、ほとんどの部分がインテリジェント型のディスクシステム側で動いてます。
PC-8001 / PC-8801 シリーズを通じてディスクシステムは、後期に 2HD がサポートされたことを除いては幸いなことにほとんど変更されていません。
そのため、ディスクシステム側がメインとなるような DOS システムを作成すれば、機種毎の差異を吸収する部分を用意するだけで、PC-8001 でも PC-8801 でも PC-8001mk2SR 動いてしまうのです。
まあ、本体側ルーチンは Dash システムの BIOS みたいなものですね。

ディスクシステム側に DOS の機能の大半を置いてしまう方法のもうひとつの利点は、BIOS 部分さえ用意すれば Disk-BASIC 下位互換の「Dash-80」に限らず、様々な DOS が一度に複数の機種に対応できるという事です。
まあ、そんなシステムを新たに構築しようなんて奇特な方はおられないでしょうが。




BIOS 部分の役割は BASIC の命令文を解析してディスクシステム側へリクエストを送る機能と、ディスクシステム側から送られてきたコマンドに従ってメッセージの表示やデータの転送を行う機能だけと言っても過言ではありません。
極端なことを言えば、PC-8001 / PC-8801 シリーズ用のインテリジェント型のディスクシステムを繋げる事ができるなら、どんな機種でも対応可能なはずです。

Z80 以外の CPU を使用している機種だと BIOS 部分を新たに書き起こさないといけませんがね(笑)

Dash-80 補完計画 [近況報告]

2010/04/12 ちょいと修正と追加

このブログを読んで頂いている皆さんにはお馴染み「PC-8001 用として鋭意開発中のフリーエリアを圧迫しないプログラムローダー Dash-80」。

修正版のリリース前は、3回も暴走モードに突入させてしまい申し訳ありませんでした ペコm(_ _;m)三(m;_ _)mペコ


元々の開発コンセプトは、
ROM-BASIC 並みのフリーエリアを確保できるように、DOS としての機能はディスクユニット内のサブシステム側のメモリ上に置いてしまおう。 (このコンセプトは、Dash-80 の元になった PC-DOS から受け継いだものですが…)
ということでした。

そうすれば本体側の処理は、ディスクコマンド(LOAD/SAVE/FILES 等)の解析/サブシステムとのハンドシェーク/ユーティリティルーチン(転送/メッセージ表示等)だけなので、ワークエリア内の未使用領域に収まってしまうのです。
ただ、Disk-BASIC と同等のコマンド書式を処理できるだけの未使用領域がないため、Disk-BASIC とは互換性のないコマンド書式での運用をしなければなりません。
今後、機能を拡張しようとすると、書式に互換性のないコマンドが量産されることになり、当初考えていた Disk-BASIC を Dash-80 で置換するという大目標からは益々遠ざかってしまうような状況にあります(笑)

また、PC-8001 以外の mkII / SR や PC-8801 シリーズへの移植等を考慮に入れると、Dash-80 / Dash-80mkII / Dash-80SR / Dash-88 等と機種毎に違う未使用領域の複雑なメモリレイアウトに応じて別のシステムを用意する事になり、機能拡張よりもレイアウト調整にコストが掛かってしまう危険が大きいです。
(現在試作中のバージョン 2.0β がまさしくこの状態です。)



なので、この度、Dash-80 のディスク版の開発は停止(終了ではない)し、拡張 ROM 版を開発することにしました。



ROM にすることで、少ない未使用領域/互換性のないコマンド拡張/レイアウト調整コストといった問題がクリアできるのが一番の要因です。
目指すは「Disk-BASIC 完全互換」(大笑)

実機だと、独自に開発した拡張 ROM を装着するのは大変ハードルが高い事でしたが、現在はエミュレータも良いものが提供されている為、簡単に機能拡張が実現できます。
ただ、ROM の拡張はエミュレータによっては、容易なものとそうではないものがあるというのが現実ですが…

まだまだ試作段階ですので、この先どういう風に展開するか…
生暖かい目で見守っていただければありがたいです。

思考の迷宮 [近況報告]

Dash-80 の修正版のテスト中なんですが、ここのところ10日間ほど悩んでます。

PC-8801 mkII FR & SONY のマルチスキャンモニタはお亡くなりになっちゃいましたので、現在ウチで使用できる実機環境は PC-8001 + PC-8031 (どちらも無印)だけで、2D のシステムはテストできません(T_T)
なので、エミュレータ環境でのテストしかできないのですが…

実は、なぜか「無印 PC-8001」ではうまく動きません。

8001 の N-BASIC Ver 1.1 だとディスクサブシステムと通信する BASIC コマンドを実行すると、コマンド自体は終了するのですがサブシステム側のプログラムがハンドシェークルーチンから抜け出せなくなってしまいます。

FR に搭載されている N-BASIC Ver 1.8 だとうまく動作するんですがね…
サブシステム側の BIOS 部分って 80018031 も FR も同じはずなんですけど…

何か「思考の迷宮」にはまり込んじゃってます(T_T)

こうなったら、トレースログを取って Ver 1.8 と Ver 1.1 の処理の差を手作業で追っていかないとダメかなぁ。

あー、またやってしまった [近況報告]

またやってしまいました(T_T)

一昨日の夜「My Documents」のバックアップを取ったつもりが、間違ってバックアップから書き戻していたため、せっかく編集した「Dash-80」のバグ修正バージョンが旧版に戻ってしまいました。
バグの場所は判明しているのでソース類はもう一度修正すれば済むのですが、大幅に加筆したドキュメントが「先祖がえり」したのは痛すぎます。
しかも、その時に気付かなくて、今になって気付くとは…(苦笑)

こういうミスって、やってる本人は操作が間違ってるって思ってないんですよね。
ウチの開発システムってヒューマンファクタのエラー多すぎ(大笑)

うーむ、時間の余裕がないときに無理やり作業すると、注意力が散漫になるのかなぁ(反省)
バッチ処理の警告表示は、バックアップ/リストアの色を分けて画面上でもっと目立つように修正せねば…。

早く試したい方は、「RCP Demo」のディスクバージョンが「Dash-80 v1.0a RC-1」を使用してますので、そちらをダウンロードしてみてください。

正式な修正版を待っておられる皆さんには申し訳ないですが、「Dash-80 v1.0a」のリリースはもう少し遅れますm(_ _)m

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