Курсовая работа: Розробка програмного забезпечення для визначення інформації про жорсткий диск використовуючи

Таблиця 1 – Порти ІDE контролера

Номер порта CHS LBA Read Write
1F0h (170h) Порт даних Порт даних
1F1h (171h) Порт помилок Порт властивостей
1F2h (172h) Лічильник секторів Лічильник секторів
1F3h (173h) Номер сектора Адреса 0-7
1F4h (174h) Цилиндр [0:7] Адреса 8-15
1F5h (175h) Циліндр [8:15] Адреса 16-23
1F6h (176h) Номер головки та пристрою Адреса 24-27, пристрою
1F7h (177h) Регістр стану Регістр команди
3F6h (376h) Регістр стану Керування
3F7h (377h) Не використовується --- --- ---

У кожного диска 2 поверхні (одна з них, щоправда, використовується не завжди, вона служить для так званих сервоміток, особливих областей, по яких контролер диска визначає поточне положення голівок і "націлюється" на потрібний циліндр під час позиціювання. Сервомітки можуть бути присутніми і на пластинах для запису даних - це називається вбудована сервоповерхня - embedded servo, але частіше під неї виділяють окрему пластину з метою надійності - це називається виділена сервоповерхня - dedіcated servo), для кожної своя голівка. І нарешті, циліндр розбитий на сектори.

Незважаючи на те, що теоретично вінчестер може працювати в CHS адресації, у всіх нових пристроях використовується LBA.

З реальною фізичною геометрією система CHS збігалася дуже давно, всі сучасні диски використають зонний запис (зонний запис - змінне число секторів на доріжці; це пов'язане з тим що радіус зовнішніх доріжок більше, отже й секторів там може бути розміщене більше, ніж на внутрішніх доріжках), тому використовується внутрішня система трансляції адрес.

Регістри контролера.

- Порт 1F0h (170h) є єдиним 16 - бітним портом контролера, з нього приймаються й у нього записуються дані при роботі з жорстким диском.

ScanDevices SCANDEVENTRY <1F0h,0,OFFSET szPriMaster>

SCANDEVENTRY <1F0h,1,OFFSET szPriSlave>

SCANDEVENTRY <170h,2,OFFSET szSecMaster>

SCANDEVENTRY <170h,3,OFFSET szSecSlave>

SCANDEVENTRY <1E8h,4,OFFSET szTerMaster>

SCANDEVENTRY <1E8h,5,OFFSET szTerSlave>

SCANDEVENTRY <168h,6,OFFSET szQuaMaster>

SCANDEVENTRY <168h,7,OFFSET szQuaSlave>

SCANDEVICESCOUNT = ($-ScanDevices)/SIZE SCANDEVENTRY

- Порт помилок, він же порт 1F1h містить коди помилок після виконання команди, якщо там всі нулі значить "все добре".

- Регістр 1F2h використовується в групових операціях (читається або записується група секторів за один раз), він виступає в ролі лічильника секторів, його вміст зменшується на одиницю після обробки кожного сектора із групи.

- Наступні регістри 1F3h - 1F6h зберігають адресу.

На вхід функції GetStdHandle повинне бути подане одне з наступних значень:

- STD_ІNPUT_HANDLE = -10 - дескриптор стандартного вхідного потоку;

-STD_OUTPUT_HANDLE = -11 - дескриптор стандартного вихідного потоку;

- STD_ERROR_HANDLE - -12 - дескриптор стандартного потоку помилок.

Використовуючи функції високорівневого вводу - виводу, додаток може управляти кольором тексту та фону, з яким повинні відображатися символи, записувані в екранний буфер. Додаток може змінювати наступні властивості високорівневого консольного вводу-виводу:

- контроль символів, що вводяться на екрані з активного екранного буфера;

- автоматична обробка деяких символів, що вводяться із клавіатури:

перекладу каретки, натискання клавіш Ctrl+C і т.д. ;

- автоматична обробка деяких символів, виведених на екран: перекладу рядка й каретки, повернення на один символ і т.д..

К-во Просмотров: 284
Бесплатно скачать Курсовая работа: Розробка програмного забезпечення для визначення інформації про жорсткий диск використовуючи