Страница 1 из 1

Программирование драйвера экрана

Добавлено: 07 янв 2007, 10:00
Alenka_kiss
Помогите, пожалуйста, написать драйвер! :confused:
Требуется реализовать программно нерезидентный драйвер экрана с видеоадаптером CGA. А также разработать прикладную программу, выполняющую вывод на экран фамилии и имени, и, возможно, другой информации, используя для вывода на экран ваш драйвер. Цвет символов белый, выводимых на экран, а также цвет фона черный. Вот хотя бы с чего начать? (Ассемблер для процессороа i8086).

Re: Программирование драйвера экрана

Добавлено: 07 янв 2007, 21:08
somewhere
1. Для начала нужно определиться, какие функции будут возлагаться на этот драйвер, т.е. что он будет уметь делать. Основные функции видеоадаптеров это - установка видеорежима, рисование точек и линий, печать текста, вывод изображений.
2. Раз драйвер нерезидентный, то он видимо будет грузиться из файла. Т.е. компиляцию кода желательно производить в формат *.COM, а потом уже можно переименовать в *.DRV к примеру. Программа использующая драйвер загрузит его из файла в память, затем взяв адрес основной функции работы из памяти по заранее заданному смещению будет вызывать нужную функцию с параметрами. Например:

Код: Выделить всё

@Function table:
dw CGA_DriverFunction
dw CGA_PutImage
dw CGA_PutPixel
...
...
; ax - function number
; bx, cx, dx - params
CGA_DriverFunction proc near
add ax, ax
add ax, offset @FunctionTable
call ax
retn
CGA_DriverFunction endp

CGA_PutImage proc near
....
CGA_PutImage endp

CGA_PutPixel proc near
....
CGA_PutPixel endp
Я писал драйвер для работы c VESA стандартом, так что с алгоритмами рисования линий и точек - без проблем. Если совсем туго будет попробую скинуть пример.