Re: [問題] ATA COMMAND問題

看板ASM (組合語言)作者 (Tankan)時間17年前 (2007/05/18 22:30), 編輯推噓3(300)
留言3則, 3人參與, 最新討論串1/2 (看更多)
※ 引述《CuckooBoy (阿書)》之銘言: : 有沒有人懂ATA COMMAND : 我手上有COMMAND表 : 但是不知道怎麼傳這些COMMAND : 有沒有人寫過類似的程式 : 可以舉個例子…嗎? : 譬如20H的 READ SECTOR 1.請先找出 ATA device 的 address. 在 IDE controller 的 PCI configuration Space 某個 Offset 有儲存 address. 傳統的 IDE mode 是以 I/O port 的方式來存取 ATA Device. AHCI mode 和 RAID mode 是以 memory address 來存取. 但是, 有向前相容之前的 ATAPI command. 2.假設某個 Primary IDE Controller 的 I/O address 是 1F0h. 則對照你手邊的 Command 表, 每個 Register 的 address 如下. 都是以 Byte 為單位存取. 1F0 (Read and Write): Data Register 1F1 (Read): Error Register 1F1 (Write): Features Register 1F2 (Read and Write): Sector Count Register 1F3 (Read and Write): LBA Low Register 1F4 (Read and Write): LBA Mid Register 1F5 (Read and Write): LBA High Register 1F6 (Read and Write): Drive/Head Register 1F7 (Read): Status Register 1F7 (Write): Command Register 3F6 (Read): Alternate Status Register 3F6 (Write): Device Control Register Status register (1F7h) 所讀出來的 1-Byte value, 每個 Bit 所代表的意義由 左至右分別: BIT7: BSY (busy) BIT6: DRDY (device ready) BIT5: DF (Device Fault) BIT4: DSC (seek complete) BIT3: DRQ (Data Transfer Requested) BIT2: CORR (data corrected) BIT1: IDX (index mark) BIT0: ERR (error) Error register 和其他 register 依此類推. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.64.195.232

05/19 04:23, , 1F
請問這個應該收在哪個分類?
05/19 04:23, 1F

05/19 05:53, , 2F
bios 吧
05/19 05:53, 2F

05/19 11:53, , 3F
實用的指南 THX
05/19 11:53, 3F
文章代碼(AID): #16JRXupe (ASM)
討論串 (同標題文章)
以下文章回應了本文
完整討論串 (本文為第 1 之 2 篇):
文章代碼(AID): #16JRXupe (ASM)