概要
- os8088 のデスクトップ環境における多重プログラム実行の様子
- 各ウィンドウやアプリの 動作仕様 と リソース管理 の詳細
- メモリ管理 や スケジューラ の仕組み
- 代表的な アプリケーション の特徴と挙動
- ユーザーインターフェース の操作感や設計思想
os8088 デスクトップ環境の多重プログラム動作
- 5つのプログラム 同時実行:Note Pad、Clock、Bounce、Control Panel、Task Manager
- 各アプリは 独立したインスタンス として動作し、 個別のDockタイル を持つ設計
- Task Managerによる CPU使用率70%、 RAM使用量147K のレポート
- 起動直後 のデスクトップ:512バイトのブートセクタがカーネルをロードし実行
- BIOS経由で認識したドライブごとに フロッピーアイコン を表示
- Dockは初期状態で空 :os8088は自動起動アプリなし
ユーザーインターフェースとウィンドウ管理
- メニューバー操作 :ボタンを押している間だけメニューが開く方式
- プルダウン表示時、 裏のピクセルをヒープから確保した領域に一時保存 し、メニューが閉じると復元
- ウィンドウのドラッグ :XORモードで1ピクセル枠を描画し、移動中は元の位置を反転表示
- 同一アプリの複数インスタンス :例としてDiskウィンドウ、2つのClock、2つのBounce
- 各インスタンスは インスタンステーブル で管理され、Dockタイルの位置も対応
- キーストロークは最前面ウィンドウのみ に入力
- Note Padの各インスタンスは 512文字バッファ を個別保持、ヒープ容量次第で複数同時オープン可能
システム情報とスケジューラ
- Aboutボックス はカーネルのライブ状態を表示
- スケジューラの状態 (pre-emptive/cooperative)はカーネルのバイト値を直接参照し、全ての情報表示が一致
- Task Managerの 履歴グラフ :80秒分の履歴、160カラムリングバッファ
- ウィンドウコールバックのタイミング計測 とリソース割り当て
- スケジューラ設定 はカーネルから直接読み出し、設定変更は即時反映
ウィンドウの最小化とタスク管理
- 最小化 されたClockとBounce:Dockタイルが反転表示、動作は継続し描画のみ停止
- Minimized状態 でもプログラムは実行中
ファイルマネージャとプログラムロード
- ファイルマネージャ :ソフトウェアフロッピーの内容を表示
- 各ファイルの 名前・サイズ・アイコン 表示、アイコンはファイル先頭セクタから直接取得(16x16ビットマップ)
- 複数プログラムの同時ロード :MINESとHELLOは独立したセグメントにロード
- 各プログラムは 独立セグメント・オフセット0 で実行、パッチ不要
- Minesweeper:1,510バイト、独自セグメントにロード後、カーネルが組込アプリと同様に呼び出し
主要アプリケーションの特徴
- ArtfulType :Markdownライター、クラシック68k Mac用アプリの8086移植版、フルスクリーン対応、Markdownファイル互換
- Tracker :4チャンネルMODプレイヤー、Amiga .MOD再生、再生中もデスクトップ操作可
- Paint :ビットマップエディタ、16色対応、BMP/GIF入出力、各種描画ツール・クリップボード・アンドゥ機能
- Fractal :Mandelbrot探索、ズーム・配色選択・3パス描画、バックグラウンド処理で他作業と両立
- Piano :2オクターブキーボード、マウス/キー操作、譜面表示・再生、FM音源/PCスピーカー対応
- Recorder :サウンド録音・再生、波形表示、Sound Blaster/PCスピーカー自動判別
- Solitaire (Klondike):カードドラッグはウィンドウ同様XORアウトライン、7列・4ファウンデーション
- Arkanoid :ブロック崩し、ボールは独立タイマーで安定速度、スコア継続
- Minesweeper :9x9盤面・10地雷、初回クリック安全、空白領域は一括オープン、Fでフラグ、Nで新規ゲーム
- Note Pad :プレーンテキストエディタ、ワードラップ・キャレット・FAT12書き込みで他PCとの互換
- Hello :2行テキストのみの最小サンプル、唯一アイコンなしで汎用アイコン表示
システム設計の特徴
- 全体として省メモリ・省リソース設計
- リアルタイムなカーネル状態参照 による一貫性
- ユーザーインターフェース は即時反応・最小限の冗長性
- 複数アプリの同時実行 と 直感的なウィンドウ管理