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

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Ответить
Alenka_kiss
Сообщения: 1
Зарегистрирован: 07 янв 2007, 09:50

Помогите, пожалуйста, написать драйвер! :confused:
Требуется реализовать программно нерезидентный драйвер экрана с видеоадаптером CGA. А также разработать прикладную программу, выполняющую вывод на экран фамилии и имени, и, возможно, другой информации, используя для вывода на экран ваш драйвер. Цвет символов белый, выводимых на экран, а также цвет фона черный. Вот хотя бы с чего начать? (Ассемблер для процессороа i8086).
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

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 стандартом, так что с алгоритмами рисования линий и точек - без проблем. Если совсем туго будет попробую скинуть пример.
It's a long way to the top if you wanna rock'n'roll
Ответить