Re: [問題] BIOS Interrupt

作者: sj1973 (史考特)   2020-03-25 03:24:09
看你要寫的bootloader用途
以x86為例, 我的觀念至少已經22年前的事了,現在可能不一樣了.
底下是以legacy mode 為主
從 bios 開始 POST 會直接 mapping interrupt table . 這些資料應該google都找得到
反正最主要還是透過 int19h 去 load storage 的 mbr 取得第一個boot device的
first sector 到 memory, 最後 jump 0000:7C00, 另外一種就是利用 Boot ROM 方式
你的boot loader 起始點就從這邊開始,之後你就要開始做你的用途
通常os在這邊就會開始掛上driver 自己寫的driver
最主要利用
int13h 去架構 file system
int10h (graphics card support), 畫畫面
用你寫的中斷取代原本的某些中斷,最主要是HW 會利用IRQ 產生對應的 int
例如 LAN card
所以認真來說你只要知道 int3h, int8h int9h int10h, int13h, int16h int19h
其實就夠了 這些關鍵字應該都可以查到
如果你是x86則要切到protection mode, 在做這件,沒經驗的很容易就crash了
至於規格書我認真沒看過,intel寫的白皮書還是黃皮書(忘了)上面有提到
但這些都是看 BIOS source code 才知道他們怎麼幹的
有一些老書都有介紹一些,但後來覺得那些書都是騙錢(當時15歲 asm都是自學的)
你提到的embeded BIOS user's Manual 我看的一下,
前面部分是BIOS standard interrupt, 但後面指令集應該是他那套eBIOS loader
透過console 做debug用, 感覺很像VIA寫的那一套
※ 引述《adsl9527 (申裝adsl的小為)》之銘言:
: 最近想自己寫看看 bootloader
: 想請問 bios interrupt table
: 是有規格書的嗎
: 網路上是有查到一個 pdf
: Embedded BIOS User's Manual
: 但我不知道這是不是所有 BIOS 的規格書
: (類似C99規格書)
: 我不熟悉這個領域 如果這問題不清楚請再説個 感謝
作者: adsl9527 (申裝adsl的小為)   2020-05-02 14:06:00
謝謝回文 很有幫助

Links booklink

Contact Us: admin [ a t ] ucptt.com