| イデドス | |
|---|---|
| 開発者 | ヨゼフ・ソウチェク、トマーシュ・プシビル、ヤン・ヴォルリーチェク、ヤン・フラヴァーチェク、カイタル・ゾルト |
| 記述言語 | 6502 / 65816 アセンブリ言語 |
| 初回リリース | 1996年 (1996年) |
| 最新リリース | 0.90 |
| 最新プレビュー | 0.91ベータ版 |
| 利用可能 | 英語 |
| 対応プラットフォーム | コモドール64、128 、 SuperCPU |
| デフォルトの ユーザーインターフェース | コマンドラインインターフェース |
| ライセンス | GPLv2 |
| 公式ウェブサイト | idedos.ide64.org |
IDEDOSは、コモドール64、128、およびSuperCPU向けに6502/65816アセンブリ言語で書かれたROMベースのディスクオペレーティングシステムです。主な目的は、 IDE64カートリッジに接続されたATA(PI)デバイスを制御し、通常のコモドールドライブのように表示することです。さらに、ネットワークドライブ(PCLink)をサポートし、マシンコードモニターとファイルマネージャーを 内蔵しています
アーキテクチャ
C64カーネルは、 3ページ目のベクターテーブルを使用して、一般的なカーネルファイル処理と基本関数のリダイレクトを可能にします。この機能は、IDEDOSがC64カーネルにフックするために使用されます
オペレーティングシステム自体は16KiBの4つのページに分割されており、必要 に応じてマッピングされます。割り込み実行中は互換性向上のため、マッピングは一時的にオフになりますが、これにより約40μsのレイテンシが発生します 。
バッファと内部データ用の追加RAMも、 IDE64カートリッジ(28KiB)またはSuperCPUの追加RAMからマッピングされます。ページ0とページ2の標準KERNALメモリ位置は、KERNAL互換の方法で処理されます。一時的に使用されたメモリは、ルーチンの終了後に復元されます。
KERNAL テーブル以外にも、IDEDOS にはバルク データ処理 (読み取り/書き込み) 用の 2 つの新しい呼び出しがあり、文字ベースのI/Oよりもはるかに高速なデータ転送速度を実現します。
ネイティブファイルシステムは、 16MiBを超える パーティションを可能にするため、低レベルではCBMスタイルではありません。16文字のファイル名やファイルタイプといった高レベル機能は保持されます。複雑さとメモリ要件のため、CBM DOSやCMD DOSとは異なり、ファイルシステムの作成と整合性チェックはオペレーティングシステムの一部ではありません。
ISO 9660やFATなどの追加のファイルシステムは内部的に抽象化されており、処理にはほとんど同じルーチンが使用されるため、一部の機能が完全に実装されていない場合を除き、ユーザー プログラムで目立つ違いはほとんどありません。
デバイスの処理は、新しいデバイスに割り当てられる追加のデバイス番号によって行われます。IDEDOSデバイスのデバイス番号は設定可能で、通常は10~14の範囲です。長年にわたり、多くのプログラムはデバイス番号が8のみであると想定し、それ以外のデバイスを選択できないようにしてきました。この問題は、IDEDOSデバイス番号を一時的に8に変更することで回避できます。
標準デバイスではオリジナルのKERNALルーチンが使用されますが、IDEDOSデバイスではフロッピーデバイス用のKERNAL呼び出しの結果と動作を厳密に模倣したカスタムルーチンが使用されます。ベクターテーブルを経由しないKERNAL呼び出し(特にIECバス固有の呼び出し)は、それらを使用するプログラムとの互換性の問題を引き起こします。
特別な機能 ( CD-ROMオーディオ処理など) は新しいチャネル 15 コマンドによって実装され、フロッピー ドライブにはない機能は CMD スタイルのコマンドに従って実行されるため、プログラムはより広範囲のデバイスを簡単にサポートできます。
独立したプロセッサを持つインテリジェントな外部デバイス(CBM DOS搭載の1541など)とは異なり、IDEDOSはホストコンピュータ上で実行されるため、すべてのディスクルーチンは完了するまでブロックされます。そのため、シリアルバス周辺機器の動作を高速化するために一般的に使用される「 IRQローダー」は使用できません。
IDEDOS の実行中は割り込みが通常許可されます (まれに時間的にクリティカルな操作では無効になります)。ただし、システムは元の KERNAL と同様に非再入可能として作成されています。
略歴
1996年、IDE64 1.1カードを実行するシステムの必要性から、IDEDOSが誕生しました。Josef Souček(メインコード)とTomáš Přibyl(ファイルマネージャ、Finalカートリッジモニタの適応)によって開発されました。追加コードはJan Vorlíček(BASIC拡張)、Jan Hlaváček(Duart PCLink)によって提供されました
2000年、カイタル・ゾルトはCD-ROMサポート、新しいセットアップコード、そして多くの修正を追加しました。設計上の制約のため、カイタル・ゾルトは完全に書き直されたバージョン(0.90)の開発を開始しましたが、2005年まで一般公開には至りませんでした。一方、旧バージョンは2004年6月に0.898bに達しました。
2009 年にシステムの 64 KiB 制限が厳しくなり始めたため、より多くのスペースと内部の柔軟性を得るためにコードをリファクタリングする IDEDOS 0.91ベータ版が開始されました。
IDEDOS 0.898b
これは旧IDEDOSシリーズの最終バージョンでした。
デバイスサポート
- 2つのATA(PI)デバイス:ハードディスク、コンパクトフラッシュ、CD-ROM、DVD
- PCLink用Duart RS-232カード
- スーパーCPU v1/v2
ファイルシステム
- OFS 0.02と呼ばれるカスタムファイルシステム
- 最大 8 GiB、CHSアドレスのみ、ディスク全体をカバー
- 16文字のファイル名。
- SEQ、PRG、USRの固定ファイルタイプ。
- ディレクトリがサポートされています
- タイムスタンプに対応しています。
- 最大4GiBのファイル、シーケンシャルアクセスのみ
- ISO 9660ファイルシステムのサポート
ファストロード
高速ローダー搭載デバイス:
- 1541をデバイス8として
互換性がない場合(デバイス8が1541以外)は、セットアップで高速読み込みをオフにできます。最小インターリーブは7です。高速セーバーはマネージャーでのみサポートされ、インターリーブは8です。タイミングはPAL / NTSC互換です。
PCLink
カスタムプロトコル、シーケンシャルアクセスのみ。対応デバイス:
- PC64パラレルケーブル
- Duart RS-232
セットアップ画面
カレンダー付き時計、ドライブ番号の設定機能、画面の色、自動起動、フロッピー高速ローダー、基本時計(TI$)、電源管理、書き込み再試行、先読みおよび書き込みキャッシュドライブ設定、CD-ROM速度低下オプションが含まれています
BASIC拡張
BASIC拡張には、ディスク処理コマンド(IDEDOSデバイスに限定)が含まれており、いくつかの新しいエラーメッセージが追加されています。コマンド:
CD– 作業ディレクトリを変更するCDOPEN– CD-ROMトレイを開くCDCLOSE– CD-ROMトレイを閉じるCHANGE– HDDデバイス番号を変更するDATE– 日付と時刻を印刷DIR– 通常のディレクトリ一覧HDINIT– IDEデバイスを再検出します。INIT– メモリを初期化するKILL– カートリッジを無効にするLL– タイムスタンプとファイルサイズ(バイト単位)を含む長いディレクトリリスト。MAN– ファイルマネージャーを起動MKDIR– ディレクトリを作成するRM– ファイルまたはディレクトリを削除する
ファイルマネージャー
ディレクトリ間の移動、プログラムの起動、ファイルのコピー/名前変更/削除、ディレクトリの作成、ファイル操作のためのプラグインの実行に使用できます。再帰的なファイルコピーは0.898bで追加されたばかりで、まれに動作しない場合があります
モニター
このモニターはIDEDOS 0.89のFinalカートリッジモニターとほぼ同じです。標準の6502オペコードのみが利用可能です。コマンドは以下のとおりです
A– 組み立て説明書B–銀行スイッチC– メモリ領域を比較するD– アドレスから逆アセンブルEC– 文字を編集ES–スプライトを編集するF– メモリ領域を埋めるG– アドレスで実行を開始H– 検索パターンI–アドレスからのPETSCII表示L– メモリ領域のロードM– メモリリストO– 銀行スイッチP– 印刷R–レジスタを表示S– メモリ領域を保存T– 転送メモリ領域X– 出口モニター@– ディスクコマンド#– 16進数に変換する$– 小数点に変換する*r– フロッピードライブからブロックを読み取る*w– フロッピードライブにブロックを書き込む
その他の機能
- 自動起動 - リセット時または電源投入時にファイルを読み込んで起動できます
- カスタム画面カラー - デフォルトのブルースクリーンカラーを変更できます。
TI$リセット時に BASIC 変数を正しい時刻に設定します。- ロードの開始アドレスと終了アドレスを表示します。
- ファイルデータの一括読み取りと書き込みのための特別な拡張機能
IDEDOS 0.90
これは現在の安定版で、最新バージョンは20100509(パッチ45)です。0.89との最も顕著な違いは次のとおりです
- CFS 0.11 ファイルシステムでは、シーク可能なファイルと相対ファイル、LBAサポート、パーティション分割が可能です。
- パス処理とチャネル15コマンドのCMD互換構文
- イーサネットとUSBの使用を可能にする改良されたPCLinkプロトコル
- 冷凍庫のように動作し、はるかに高速なモニター
- CMDデバイスをサポートするより強力なファイルマネージャー
- DOSウェッジコマンド
- プログラム可能なファンクションキー
- 非IDEDOSデバイス向けのBASIC拡張サポート
- 最大4台のATA(PI)ドライブ、ZIPおよびLS-120のサポートまでの追加デバイスサポート
- V4.1カートリッジのサポート、リニア読み取り/書き込み転送による速度向上
- IDE64 カートリッジのバッテリーをスーパーキャップに交換できるようになりました。
デバイスサポート
- 4つのATA(PI)デバイス:ハードディスク、コンパクトフラッシュ、CD-ROM、DVD、LS-120、ZIPドライブ
- Duart/SwiftLink/Turbo232/SilverSurfer RS-232、RR-Net/ETFE/ETH64 Ethernet、PCLink用FT245 USBカード
- SuperCPU v2
- JiffyDOS / DolphinDOSドライブの追加サポート
ファイルシステム
- CFS 0.11と呼ばれるカスタムファイルシステム
- 最大128GiB、CHS/LBAアドレス指定、最大16パーティション
- 16 文字のファイル名。
- カスタマイズ可能な 3 文字のファイル タイプ。
- ディレクトリとソフト リンクがサポートされています。
- 相対ファイルに対応しています。
- タイムスタンプに対応しています。
- 最大4GiBのファイル、シーク可能
- ISO 9660ファイルシステム、OFS 0.02 の部分的なサポート
- FAT12/16/32 低速読み取り専用ショートファイル名サポート(DOS スタイルのパーティション テーブルを使用)
ファストロード
対応デバイス:
- CBM 1541 / 1571 / 1581
- JiffyDOS プロトコル ( CMD FD )を備えた任意のドライブ
- DolphinDOS の追加サポート
デバイスのサポートは自動的に検出されますが、必要に応じて手動で無効にすることができます。PAL/NTSC互換のタイミング。高速保存はファイルマネージャーでのみ可能です。
PCLink
カスタムプロトコル、シーケンシャルアクセスのみ。対応デバイス:
- IECシリアルバス
- PC64パラレルケーブル
- Duart、SwiftLink、Turbo232 RS-232
- RR-Net、ETFE、ETH64イーサネット
- FT245 USB
セットアップ画面
- カレンダー付き時計
- デバイス番号の設定と再マッピング
- 画面、マネージャー、モニターの色
- その他の設定(自動起動、フロッピー高速ローダー、基本クロック(
TI$)) - ATA(PI) デバイス設定 (電源管理、書き込み再試行、先読みおよび書き込みキャッシュ、最大線形読み取り/書き込み)
BASIC拡張
ほとんどが、よく知られている標準的なDOSウェッジコマンドです
@– DOSコマンド@$– ディレクトリ@#– デバイスの選択/– BASICプログラムのロード%– アセンブリプログラムのロード'– アセンブリプログラムの検証↑– BASICプログラムをロードして実行する←– BASICプログラムを保存£– アセンブリプログラムをロードして実行する.– ディレクトリを変更する#– シェルを実行する
BASIC拡張
BASIC拡張機能はディスク処理コマンドを追加します。これは CMD スタイルのコマンドを使用するため、どのデバイスでも使用できます。
CD– 作業ディレクトリを変更するCDOPEN– CD-ROMトレイを開くCDCLOSE– CD-ROMトレイを閉じるCHANGE– デバイス番号を変更するDATE– 日付と時刻を印刷DEF– ファンクションキーを再定義するDIR– 通常のディレクトリ一覧HDINIT– IDE デバイスを再検出します。INIT– メモリを初期化するKILL– カートリッジを無効にするKILLNEW– 更新LL– タイムスタンプとファイルサイズ(バイト単位)を含む長いディレクトリリスト。MAN– ファイルマネージャーを起動MKDIR– ディレクトリを作成するRM– ファイルを削除RMDIR– ディレクトリを削除
ファイルマネージャー
ファイルマネージャーは0.89から着想を得ていますが、ゼロから書き直しました。IDEDOSデバイスをサポートするだけでなく、CMDやその他のドライブでも問題なく動作するファイルマネージャーを実現することが目標でした
モニター
モニターはゼロから書き直されました。主なインスピレーションはCCS64エミュレータのモニターですが、いくつかのコマンドのアイデアはFC3/AR7/Viceモニターから来ています。目標は、フリーザースタイル(I/Oを含むすべてのレジスタが編集可能)と、不正な6502およびSuperCPUエミュレーションモードのオペコードを サポートする高速マシンコードモニターを実現することでした
コマンド:
@– ディスクコマンド、ステータス、ディレクトリA– アセンブルB– メモリ構成、RAM/ROMの選択BT– バックトレースC– メモリを比較D– 逆アセンブル,– 16進データをメモリに書き込み、逆アセンブルするEC– 文字編集(バイナリ)[– バイナリデータをメモリに書き込むES– スプライト編集(バイナリ)]– バイナリスプライトデータをメモリに書き込むF– メモリをバイトで埋めるG– アドレスで実行H– 16進数/任意/テキストを検索I– PETSCIIでメモリをダンプする'– PETSCIIデータをメモリに書き込むIO– I/Oレジスタのダンプ-– 16進データをI/Oメモリに書き込むIV– I/Oベクトルを復元するJ– 画面コード内のメモリをダンプする.– 画面コードデータをメモリに書き込むK– メモリを解凍するL– プログラムをロードするLB– バイナリをロードするM– メモリを16進数とPETSCIIでダンプする:– 16進数またはPETSCIIデータをメモリに書き込むN– 数値変換と計算機O– 仕事用ドライブを選択R– レジスターを表示;– 変更記録S– メモリをフリーズ/プログラムを保存SB– バイナリを保存T– メモリをコピーV– プログラムの検証VB– バイナリを検証するX– プログラムを継続するQ– BASICウォームスタートへ戻る←/↑– アドレスをスタックにプッシュおよびポップします。
その他の機能
- 自動起動 - リセット時または電源投入時にファイルを読み込んで起動できます
- 画面、モニター、マネージャーの色をカスタマイズ - デフォルトの色を変更できます。
TI$リセット時に BASIC 変数を正しい時刻に設定します。- ロード/保存の開始アドレスと終了アドレスを表示します。
- ファイルデータの一括読み取りと書き込みのための特別な拡張機能
- C64モードでのC128キーボードのサポート
- CD-ROMドライブを操作するための特別なコマンド
- ディレクトリの生の読み取り
- タイムスタンプ付きのCMDスタイルの長いディレクトリリスト
IDEDOS 0.91ベータ版
まだ開発中です。0.90との最も顕著な違いは以下のとおりです。
- OFS 0.02のサポートが削除されました
- 保護されたBASIC、シリアル、PCLinkルーチン
- Fキーは割り込みで動作します
- 読み取りは
$DEF4I/O以下で動作します - 自動起動プログラムがIECデバイスから動作するようになりました
- PCLink 負荷が I/O 未満
- SilverSurfer PCLinkサポート、PCLinkはオプション
- FATファイルシステムの読み取り
$DEF4とロード - CFS と FAT パーティションの組み合わせ、パーティションごとのファイルシステムのサポート
- FATおよびISO9660のパーティションリスト
- ダイナミックドライブ列挙、PCLink検出
- 変更可能なファイルの読み取り
$DEF4と書き込みの$DEF1サポート - 変更された場合のみタイムスタンプを更新
- PCLink でファイルを検索、変更、追加可能
- PCLinkプロトコルの変更
- PCLinkアクティビティLED
- 相対ファイルのサポートは失われました[1]
参考文献
- ^ 「IDEDOS 0.91ベータ版プロジェクトページ」
- IDEDOS 0.91ベータ版 http://singularcrew.hu/idedos/beta/
- IDEDOS 0.90 http://singularcrew.hu/idedos/IDE64_users_guide.pdf
- IDEDOS 0.89 http://www.volny.cz/dundera/manual.html
外部リンク
- IDEDOSのウェブページ
- IDE64カートリッジのウェブページ