前の5件 | -
近況報告 [近況報告]
なんだか、TwitterのRetroComPeopleアカウントが凍結された。
朝、数回つぶやいただけなのに1日の投稿制限を越えました。…とか洒落にならんわw
なので、別アカのnekotsukai10を凍結解除まで使用します。
新しい記事が投稿されたのかと喜ばれた方にはお詫び申し上げます。
朝、数回つぶやいただけなのに1日の投稿制限を越えました。…とか洒落にならんわw
なので、別アカのnekotsukai10を凍結解除まで使用します。
新しい記事が投稿されたのかと喜ばれた方にはお詫び申し上げます。
2011-03-11 [お知らせ]
3月11日に発生した東北地方太平洋沖地震の被害に遭われた皆様に謹んでお見舞い申し上げます。
Dash-8X 暫定仕様公開 [近況報告]
N-BASIC 専用の Dash-80 をパワーアップし、かつ、NEC の PC-8001/8801 シリーズ全てで動作するようにするという構想で始めた Dash-8X ですが、この辺でちょっとだけ、現時点でまとまっている仕様を公開します。
知らない方のために、ちょいと Dash-80 を紹介しておきます。
Dash-8X の元になっているのは上でも書いたとおり Dash-80 なのですが、これは PC-8001 の Disk BASIC とファイルシステムに互換性のあるプログラムローダーです。
一番のウリである「フリーアリアを消費しない」事を実現するため、Disk BASIC で拡張される「ファイル入出力機能」は付いていません。
セーブ機能が付いていないのは、優先順位を低く考えているのと作者の怠慢のせいです^^;
肝心のロード機能ですが、これは BASIC コードのファイルだけではなく N80/N80SR/N88-BASIC でサポートされているバイナリファイルのロードもサポートしています。 ただ、残念ながら ASCII セーブされたファイルのロード機能はありません。
あ、「FILES」コマンドはありますよ^^ カーソルを移動して「load "」と打てばファイル名を打ち直さなくてもロードできるように Disk BASIC とは表示形式が変えてあります。
Dash-80 の機能をまとめると、以下のようになります。
(Dash-80 Readme.txt からの転載)
Dash-8X では、上記の Dash-80 の機能に加えて以下の機能を装備しようと目論んでいます。
…と、まぁ、やりたい事は盛り沢山ですが、全てを一気にインプリメントはできないので、機能を追加する度にマイナーバージョンアップという形でリリースする事になると思います。
とりあえずは、ベータ版リリースに向けて頑張る事にします^^
★
知らない方のために、ちょいと Dash-80 を紹介しておきます。
Dash-8X の元になっているのは上でも書いたとおり Dash-80 なのですが、これは PC-8001 の Disk BASIC とファイルシステムに互換性のあるプログラムローダーです。
一番のウリである「フリーアリアを消費しない」事を実現するため、Disk BASIC で拡張される「ファイル入出力機能」は付いていません。
セーブ機能が付いていないのは、優先順位を低く考えているのと作者の怠慢のせいです^^;
肝心のロード機能ですが、これは BASIC コードのファイルだけではなく N80/N80SR/N88-BASIC でサポートされているバイナリファイルのロードもサポートしています。 ただ、残念ながら ASCII セーブされたファイルのロード機能はありません。
あ、「FILES」コマンドはありますよ^^ カーソルを移動して「load "」と打てばファイル名を打ち直さなくてもロードできるように Disk BASIC とは表示形式が変えてあります。
Dash-80 の機能をまとめると、以下のようになります。
(Dash-80 Readme.txt からの転載)
- NEC PC-8001 / 8801 シリーズ用のプログラムローダーです
- N-BASIC モードで動作します
- 起動時以外はフリーエリアを使用しません
- Disk BASIC とファイルシステム互換です
- N-BASIC で書かれた BASIC プログラム/ N80/N80SR/N88-Disk BASIC 互換のバイナリデータをロード/実行できます
- Disk BASIC 互換のオートスタート機能付です
- Disk BASIC と同等のエラーメッセージが表示されます
- Disk BASIC の難点であった MOUNT / REMOVE 命令をなくしました
- FILES / LFILES 命令の書式が Disk BASIC と異なります
- FILES / LFILES 命令で表示/印刷される内容が Disk BASIC と異なります
★
Dash-8X では、上記の Dash-80 の機能に加えて以下の機能を装備しようと目論んでいます。
- N/N80/N80SR/N88-BASIC モードで動作
- 当たり前ですが、PC-8001/8801 シリーズ全てでの動作が目標です。
- ASCII 形式ファイルの読み込み機能
- これは現在試行錯誤中です。
- セーブ機能の実装
- これはぜひとも実現したい機能です。
- 外部コマンド機能
- ファイル転送やディスクフォーマット等の処理をメインメモリを使用せず、サブシステム内で処理できれば…。
- グラフィックデータの読み込み機能
- コマンド一発で読み込めれば…\(^_^)/
セーブ機能を付ける場合はグラフィックデータも可能なようにしないといけませんね。 - システム初期化部分をモジュール化
- モジュール化し、かつ拡張可能にすることで汎用性を向上させます。
PC-8001mkIISR / PC-8801mkIISR 両対応のミュージックディスクとかに流用が可能になるかも!?
★
…と、まぁ、やりたい事は盛り沢山ですが、全てを一気にインプリメントはできないので、機能を追加する度にマイナーバージョンアップという形でリリースする事になると思います。
とりあえずは、ベータ版リリースに向けて頑張る事にします^^
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 ファイルには構造体の領域が確保されていないという…もう顎が外れそうです。
まぁ、データ領域は大抵コード領域の後ろに配置するのが常ですけど、ヘッダーとかに構造体を使わないんでしょうかねぇ…。
アセンブルリストは正常なので、コードジェネレータのバグなのでしょうか…。
使い込めば使い込むほど「ドツボ」に嵌り込んでゆく気がするのは、気のせいなんでしょうか…
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 ファイルには構造体の領域が確保されていないという…もう顎が外れそうです。
まぁ、データ領域は大抵コード領域の後ろに配置するのが常ですけど、ヘッダーとかに構造体を使わないんでしょうかねぇ…。
アセンブルリストは正常なので、コードジェネレータのバグなのでしょうか…。
使い込めば使い込むほど「ドツボ」に嵌り込んでゆく気がするのは、気のせいなんでしょうか…
I/O マップです [お知らせ]
久々の更新です。
〔本館〕サイトの PC-8801 カテゴリに I/O マップのページを新設しました。
最初に作り始めたのは PC-8001 シリーズの I/O マップだった筈なんですが、出来上がったものは PC-8801 だったという罠です。
色々と飼料を漁った(もとい、資料を漁った)のですが、PC-8801mkIISR の I/O 関係資料はなかなか見つからなかったので、先に PC-8801 を作りました。
まだまだ不完全だと思いますが、とりあえず完成版として公開します。
これにデータを追加するとすれば、拡張ボード付属のマニュアルを見て初期設定以外のポートを調べるか、実機に拡張ボードを差し込んで調べるしか方法は残っていないのではないかと思います。
でも、拡張ボードって手元に一つも無いんですOTL
もし、データの誤りに気付かれた方がおられましたら、ご連絡頂ければ有り難いです。
〔本館〕サイトの PC-8801 カテゴリに I/O マップのページを新設しました。
最初に作り始めたのは PC-8001 シリーズの I/O マップだった筈なんですが、出来上がったものは PC-8801 だったという罠です。
色々と飼料を漁った(もとい、資料を漁った)のですが、PC-8801mkIISR の I/O 関係資料はなかなか見つからなかったので、先に PC-8801 を作りました。
まだまだ不完全だと思いますが、とりあえず完成版として公開します。
これにデータを追加するとすれば、拡張ボード付属のマニュアルを見て初期設定以外のポートを調べるか、実機に拡張ボードを差し込んで調べるしか方法は残っていないのではないかと思います。
でも、拡張ボードって手元に一つも無いんですOTL
もし、データの誤りに気付かれた方がおられましたら、ご連絡頂ければ有り難いです。
前の5件 | -