イデドス

オペレーティングシステム
イデドス
開発者ヨゼフ・ソウチェク、トマーシュ・プシビル、ヤン・ヴォルリーチェク、ヤン・フラヴァーチェク、カイタル・ゾルト
記述言語6502 / 65816 アセンブリ言語
初回リリース1996年、30年前 (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 9660FATなどの追加のファイルシステムは内部的に抽象化されており、処理にはほとんど同じルーチンが使用されるため、一部の機能が完全に実装されていない場合を除き、ユーザー プログラムで目立つ違いはほとんどありません。

デバイスの処理は、新しいデバイスに割り当てられる追加のデバイス番号によって行われます。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シリーズの最終バージョンでした。

デバイスサポート

ファイルシステム

  • OFS 0.02と呼ばれるカスタムファイルシステム
  • 最大 8  GiBCHSアドレスのみ、ディスク全体をカバー
  • 16文字のファイル名。
  • SEQ、PRG、USRの固定ファイルタイプ。
  • ディレクトリがサポートされています
  • タイムスタンプに対応しています。
  • 最大4GiBのファイル、シーケンシャルアクセスのみ
  • ISO 9660ファイルシステムのサポート

ファストロード

高速ローダー搭載デバイス:

  • 1541をデバイス8として

互換性がない場合(デバイス8が1541以外)は、セットアップで高速読み込みをオフにできます。最小インターリーブは7です。高速セーバーはマネージャーでのみサポートされ、インターリーブは8です。タイミングはPAL / NTSC互換です。

カスタムプロトコル、シーケンシャルアクセスのみ。対応デバイス:

セットアップ画面

カレンダー付き時計、ドライブ番号の設定機能、画面の色、自動起動、フロッピー高速ローダー、基本時計(TI$)、電源管理、書き込み再試行、先読みおよび書き込みキャッシュドライブ設定、CD-ROM速度低下オプションが含まれています

BASIC拡張

BASIC拡張には、ディスク処理コマンド(IDEDOSデバイスに限定)が含まれており、いくつかの新しいエラーメッセージが追加されています。コマンド:

  • CD– 作業ディレクトリを変更する
  • CDOPEN– CD-ROMトレイを開く
  • CDCLOSE– CD-ROMトレイを閉じる
  • CHANGE– HDDデバイス番号を変更する
  • DATE– 日付と時刻を印刷
  • DIR– 通常のディレクトリ一覧
  • HDINITIDEデバイスを再検出します。
  • 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 スタイルのパーティション テーブルを使用)

ファストロード

対応デバイス:

デバイスのサポートは自動的に検出されますが、必要に応じて手動で無効にすることができます。PAL/NTSC互換のタイミング。高速保存はファイルマネージャーでのみ可能です。

カスタムプロトコル、シーケンシャルアクセスのみ。対応デバイス:

  • 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]

参考文献

  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カートリッジのウェブページ
「https://en.wikipedia.org/w/index.php?title=IDEDOS&oldid=1279430578」より取得