サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
CES 2025
community.osdev.info
2010-01-04 ECC 2009-12-25 RecentDeleted 2009-12-20 links 2009-12-03 maintenance 2009-12-02 impressions 2009-09-12 (PIC)8259A 2009-09-05 NOS 2009-09-04 projects 2009-08-30 (AT)keyboard 2009-07-29 K 2009-07-27 SitePolicy 2009-05-13 GO/nask 2009-04-15 APM 2009-04-03 Kohのページ 2009-02-23 (PCI)class 2009-02-11 pekon 2009-02-05 KOZOS 2008-12-26 M59 2008-12-05 imp_log_0000 2008-12-04 GO 2008-10-06 PCI 2008
基礎知識 † 属性メモリ空間のアドレス0から記述されている 偶数番地にのみ書かれている CISタプルという構造体が連なっている CISを読むときは、PCカードをI/Oモードではなくメモリカードモードにすること! これがなかなか分からなくて泣かされました。 -- K 最初メモリカードモードで起動し、後でI/Oモードにすれば良い。 ↑ CISタプルの基本構造 † [タプル番号(1byte)] [タプルパラメータ長(1byte)] [タプルパラメータ(nbytes)] [次のタプル番号] ... (例) [01 04 df 72 01 ff] [1c 04 03 d9 01 ff] [18 02 df 01] ... なお、パラメータ長0xffはCISタプル構造体の終端を表わす ↑ いろいろなCISタプル † 00:Empty tuple このタプルは特別で、タプルパラメータ長フィールドやタプ
コンパクトフラッシュ † 名刺の半分以下のサイズのカードのインターフェース規格。 PCMCIAと電気的な互換性を多く持ち、500円程度のアダプタをつければ、PCカードになる。 → CardAdapter コンパクトフラッシュメモリカードをUSB接続するための外付けアダプタも999円で買えました(秋葉原で。しかもスマートメディアも対応のやつ)。-- K したがって多くのパソコンで安価に利用できる。Kのイチオシデバイス。 その安価ぶりはこちらをどうぞ。→ memcard なお、CompactFlashという名前からフラッシュメモリカードと思うかもしれないが、れっきとした一般カード規格であり、I/Oカードも存在している。 ↑ 基礎知識 † PCMCIAからアドレス線を14本削って、サイズを小さくしただけのもの したがってコモンメモリ空間、属性メモリ空間とも2KBしかない フラッシュメモリが入って
一番古い形式のFAT12/FAT16用BPB † 最初の11バイト: AT/98の場合: +0x00 - +0x02 : jmp命令用の空き +0x03 - +0x0a : 名前(たいていはファイルシステムの名前か、もしくはOSの名前が入る。ATでBIOSを使ってこの部分を読みこむと、たいていごみデータに置換される。) TOWNSの形式1の場合: +0x00 - +0x03 : ブート可能であることを示すシグネチャ「IPL4」 +0x04 - +0x0a : jmp命令用の空き(あまりには名前を書いてもよい) TOWNSの形式2の場合: +0x00 - +0x02 : jmp命令用の空き +0x03 - +0x06 : ブート可能であることを示すシグネチャ「IPL4」 +0x07 - +0x0a : 名前 +0x0b - +0x0c : セクタサイズ(一般的には512か1024) +0x0
Video Graphic Array † (by K) 640x480という解像度を指すこともある ビデオカード全般をVGAと書くときは、Video Graphic Adapter, Video Graphic Acceralatorの略と解釈するのが普通 ここではそのどちらについても興味はなく、AT互換機上でBIOSを全く使わないで640x480x16色の描画をやるために必要な技術資料をまとめたい 一番お手軽な方法はBIOSを使って320x200x256色に切り替えてパレットを設定して、あとはVRAMを直接アクセスする方法である。→(AT)BIOS この解像度に飽きたら、次はVESAのリニアアクセスに進むことをおすすめする(ウィンドウアクセスはウィンドウ切り替えが面倒)。 しかし、VESAのリニアアクセスは32bitモードを使いこなす必要があるし、VESAが使えないカードもまあまあある
(註)転送速度の単位はメガバイト毎秒 SW-DMA:シングルワードDMA MW-DMA:マルチワードDMA U-DMA:ウルトラDMA ○:仕様上で定義されており、サポートの可能性あり △:一部のデバイスはサポートしている ×:この仕様では廃止されたモード 空欄:仕様上にないので多分サポートされてない ATAでは必ずLBAアクセスがサポートされている。IDEではサポートされていないものがある。 ↑ レジスタ † 括弧内は、AT互換機でのプライマリの場合のアドレスです(参考) 全てのレジスタの全てのbitにおいて、原則としては制御の流れで意味が変わる。ここに挙がっているのは代表例、くらいに思ってほしい。 Dataレジスタ (16bit, R/W, 0x01f0) bit0-15:主にPIO転送時のデータ受け渡しに利用 Error/Featuresとアクセスがかぶっているように見えるかもしれな
簡単なx86のCPUのモードの説明 † (by K, 2004.08.20) このページの説明では64bitモードに関する説明は省略しています。 64bit関係はsakkyさんが詳しいです。もしおれんじぺこをOS-Wikiに誘致できたら、64bit関係のページもそろえたいと思います。 ↑ 基礎 † IA-32には4つのCPUモードがあり、モードが違えば同じ実行バイナリでも動作が異なる。 リアルモード use16のプロテクトモード(286の16bitプロテクトモード) use32のプロテクトモード(386以降の32bitプロテクトモード) 仮想86モード(これもプロテクトモードのうちの一つ) ヨタ: なお組み込み向け386である80376は、use32のプロテクトモードしかない。他の3つのモードはないし、ページングも使えない。 註:プロテクトモードでのセグメント属性のbit.D、bit.B、
PIT 8254のページ † PITは「Programmable Interval Timer」の略 AT互換機に1個、TOWNSには2個(ただし8253)、PC-9801には1個(ただし8253) 8253にはリードバックコマンドがない(それ以外は同じ) AT互換機ではPITに1.19318MHzのクロックが与えられている。 TOWNSではPITに307.2KHz(ch0-2)と1.2288MHz(ch4)のクロックが与えられている。 さらに上位機種には1.00MHzのインターバルタイマ2がある(註:これは8254系ではない) PC-9801はPITに2.4576MHz(システムクロック5MHz系時)もしくは1.9968MHz(システムクロック8MHz系時)のクロックが与えられている。 ↑ AT互換機 † 0x0040 (8bit, R/W):カウンタ0 (IRQ0用) DOSではモード
キーのリピート リピートは、ブレイクすることなくメイクが送られてくることで表現される BreakとPauseはリピートが発生しない LEDの制御など NumLockやCapsLockなどのLEDの制御には、次の方法でキーボードにコマンドやデータを送る。 1.ステータスレジスタを読んで、bit1が0になるのを待つ。 2.データ出力(0060のこと)に、送りたい1バイトを書く。 3.キーボードから1バイト通知が来るのを待つ。これはキー入力を待つのと同じ方法になる(IRQで待ってもいいし、ステータスレジスタのbit0が1になるのをループで見張ってもいい)。 4.その通知が0xfaであれば、その1バイトは正しくキーボードに送られたことを意味する。0xfeであれば送信ミスなので、1.に戻ってもう一回送る。 LED制御の場合は、上記の手法を2回やって、 ED xx というデータを送ればよい。ここで、x
概要 † IRR:インタラプトリクエストレジスタ IRQピンの状態を表す。ポートを読んだときに、IRRになるかISRになるかは、OCW3で選択する。 1になっているビットは、現在要求が来ている(もしくは処理中の)割り込み。 ISR:インサービスレジスタ 現在処理中の割り込みがどれであるかを示す。ポートを読んだときに、IRRになるかISRになるかは、OCW3で選択する。 1になっているビットは、現在処理中の割り込み。処理中というのは、CPUに対してINT命令を発行したが、EOI(割り込み終了命令)を受け取ってはいない割り込み。 IMR:インタラプトマスクレジスタ これが1になっている割り込みは、IRRが1になっていても、反応しない。 スペシャルマスクモード(OCW3参照)になっているときは、IMRの設定はIRRに対するマスクにはならない。つまり割り込みをマスクできない。 OCW1:動作コマン
OSを作るときによく使うBIOSファンクション (AT互換機) † まあOSの完成度が上がってきて32bitモードになったらもはや不要なものが大半になってしまうと思いますが、ブートセクタやOS作り始めのときは使うかなあというものを。 ↑ INT(0x10); ビデオ関係 † ビデオモード設定 AH = 0x00; AL = モード: (マイナーな画面モードは省略しています) 0x03:16色テキスト、80x25 0x12:VGAグラフィックス、640x480x4bitカラー、独自プレーンアクセス 0x13:VGAグラフィックス、320x200x8bitカラー、パックドピクセル 0x6a:拡張VGAグラフィックス、800x600x4bitカラー、独自プレーンアクセス(ビデオカードによってはサポートされない) 戻り値:なし カーソル形状設定 AH = 0x01; CH = 開始ライン; CL
AT互換機でのメモリマップ † PCIデバイスとかPCカードとかを使うときに、空いている空間を確認したいこともあるだろうということで・・・ 0x00000000 - 0x0009ffff : RAM AT互換機では、この部分がフル実装されていないものはない? -- ATになったのって、286マシンからでしたっけ?(こめんと欄参照) 0x000a0000 - 0x000bffff : ビデオアクセス用アドレス空間 0x000c0000 - 0x000c7fff : ビデオBIOS? 0x000c8000 - 0x000dffff : 各種カードのROMがあったりなかったり? 0x000d0000 - 0x000dffffはたいてい空いている 0x000e0000 - 0x000effff : 拡張BIOS(ここが空いている場合もある?) 0x000f0000 - 0x000fffff : B
OS Wiki † OS開発系Wikiのひとつです。 スクリプト対策の為コメント記入に幾つか制限を設けています。正常に書き込めない事があれば管理者までご連絡ください。 尚spam削除は随時予告無く行います。 introduction:このサイトの紹介(ルールの説明) projects:プロジェクト紹介 members:自己紹介 hardwares:ハードウェア情報-softwares:ソフトウェア情報 others:その他のコンテンツ (OSの作り方とか) impressions:感想ページ-links:リンク (osdev-jなど) osdev-jとの役割の違いについてはintroductionをご覧ください。
コメント † microkernelのページは是非消さないで欲しいのです。 -- ひげぽん 2003-11-16 (日) 22:19:43 はーい。OS-Wikiにようこそ! -- K 2003-11-17 (月) 01:25:04 ルールにのっとってページを追加したつもりですが、もし無作法がございましたら御指摘ください。すぐに対応いたします。 -- ひげぽん 2003-11-17 (月) 20:53:25
PCIコンフィグレーションに関するページ † 自作OSでPCIデバイスをコントロールしたくなる事はあるでしょう。そのための情報をまとめました。 今じゃほとんどのデバイスがPCIデバイスですしね・・・。 それぞれのPCIデバイスは最低でも64バイト、最大では256バイトのコンフィグレーションレジスタを持ちます。ここにデバイスを特定するための情報が書いてあります。また、どのI/Oポートアドレス、どのメモリアドレス、どのIRQを使用してデバイスをコントロールするのかを設定するのもこのレジスタを使います(PnPってやつですね)。 ↑ コンフィグレーションレジスタにアクセスする方法 (AT互換機の場合) † 利用するI/Oポート CONFIG_ADDRESSレジスタ(0x0cf8、32bit、Read/Write可) bit0-1:0に固定 bit2-7:レジスタアドレス bit8-10:機能番号
このページを最初にブックマークしてみませんか?
『FrontPage - OS-Wiki』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く