вівторок, 7 червня 2011 р.

Уроки захищеного режиму x86. Урок 5

П'ятий урок захищеного режиму. 

Попередні : 

Базою для цих матеріалів служать уроки уроки захищеного режиму Алексея Фрунзе
Ліцензія на код -- GPL2+, ліцензія на тексти -- GFDL.
Довідкова інформація взята з відкритих джерел на просторах Інтернету, зокрема з офіційних мануалів Intel.
Традиційне і очевидне -- жодних гарантій.

Урок номер 5
Та ж GDT що і й раніше. Майже та сама IDT, що і в 4-му уроці, лише додано два обробника: IRQ0, таймер та IRQ1, клавіатура. Перепрограмовуємо PIC щоб призначити правильні обробники захищеного режиму для IRQ. Програма завершує свою роботу після натиснення ESC. З клавіатурою працює напряму, через контролер.

Описано:
  • Огляд - що таке IRQ (Interrupt ReQuest) і як з ними боротися.
  • Програмування PIC (Programmable Interrupt Controller).
  • Робота з клавіатурою: контролер клавіатури, скан-коди, трішки про роль BIOS.
  • З приводу контролера клавіатури - керування лінією A20 та кілька слів про програмні затримки при вводі-виводі. 
Нових елементів захищеного режиму не вводилося, хіба практично показано як можна обробляти IRQ. Реалізація поки тільки змішана, C-asm. Якщо буде зацікавленість, можна написати і чисто асемблерну.
 
Архів з файлами уроку: pm_05.zip.
Незначні зміни, доповнення та виправлення будуть вноситися прямо в цей файл, про що я старатимуся повідомляти.

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

Якщо є запитання, виправлення, пропозиції - пишіть! Багато часу цьому приділяти, на жаль, не можу, але якщо з того буде комусь користь - спробуємо щось придумати.