мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
asm:second2 [17/02/2011 16:42] arabusovasm:second2 [10/03/2011 21:53] (текущий) arabusov
Строка 1: Строка 1:
 ===== Вывод на экран ===== ===== Вывод на экран =====
 +[[http://www.wasm.ru/article.php?article=lfbdos|Работа с LFB в DOS /05.10.2006/]] - хорошая статья о программировании в SVGA режимах (позволяет использовать режимы до 1600x1200x16 бит)
 +
 ==== Режимы адаптеров ====  ==== Режимы адаптеров ==== 
-^ Режим ^ Разрешение ^ Количество цветов ^ Тип^((устарели, но до сих пор поддерживаются))+((устарели, но до сих пор поддерживаются)) 
 +^ Режим ^ Разрешение ^ Количество цветов ^ Тип^
 | 00h   | 40x20      | 16                | Text| | 00h   | 40x20      | 16                | Text|
 | 01h   | 40x25      | 16                | Text| | 01h   | 40x25      | 16                | Text|
 | 02h   | 80x25      | 16                | Text| | 02h   | 80x25      | 16                | Text|
 | 03h   | 40x20      | 16                | Text| | 03h   | 40x20      | 16                | Text|
-| 04h   | 320x200    | 4                 Text+| 04h   | 320x200    | 4                 Graph
-| 05h   | 320x200    | 4                 Text+| 05h   | 320x200    | 4                 Graph
-| 06h   | 640x200    | 2                 Text|+| 06h   | 640x200    | 2                 Graph|
 | 07h   | 80x25      | 2                 | Text| | 07h   | 80x25      | 2                 | Text|
-| 08h   | 160x200    | 16                | Text+| 08h   | 160x200    | 16                | Graph
-| 09h   | 320x200    | 16                | Text+| 09h   | 320x200    | 16                | Graph
-| 0ah   | 640x200    | 4                 Text|+| 0ah   | 640x200    | 4                 Graph|
 | 0bh   | Reserved|||| | 0bh   | Reserved||||
 | 0bh   | Reserved|||| | 0bh   | Reserved||||
-| 0dh   | 320x200    | 16                | Text+| 0dh   | 320x200    | 16                | Graph
-| 0eh   | 640x200    | 16                | Text+| 0eh   | 640x200    | 16                | Graph
-| 0fh   | 640x350    | 2                 Text+| 0fh   | 640x350    | 2                 Graph
-| 10h   | 640x350    | 4                 Text+| 10h   | 640x350    | 4                 Graph
-| 10h   | 640x350    | 16                | Text+| 10h   | 640x350    | 16                | Graph
-| 11h   | 640x480    | 2                 Text+| 11h   | 640x480    | 2                 Graph
-| 12h   | 640x480    | 16                | Text+| 12h   | 640x480    | 16                | Graph
-| 13h   | 320x240    | 256               Text|+| 13h   | 320x240    | 256               Graph| 
 +==== Функции BIOS для работы с текстовым режимом ==== 
 +=== Установка режима === 
 +<code asm>mov ah,00h 
 +mov al,номер режима 
 +int 10h 
 +</code> 
 +=== Получение режима === 
 +<code asm>mov ah,0fh 
 +int 10h 
 +</code> 
 +При возврате: 
 +<code asm>ah=число столбцов символов на экране 
 +al=режим 
 +bh=активная страница 
 +</code> 
 +=== Установка позиции курсора === 
 +<code asm>mov ah,02h 
 +mov bh,страница 
 +mov dh,y-координата 
 +mov dl,x-координата 
 +int 10h 
 +</code> 
 +// Примечания // 
 + 
 +(0,0) - верхний левый край экрана 
 +=== Запись символа и атрибута в позицию курсора === 
 +<code asm>mov ah,09h 
 +mov al,символ 
 +mov bh,страница 
 +mov bl,атрибут 
 +mov cx,число повторений 
 +int 10h 
 +</code> 
 +// Примечания // 
 + 
 +  * В //al// специальные символы не распознаются 
 +  * Переноса курсора не происходит 
 +=== Рисование пикселя === 
 +<code asm>mov ah,0ch 
 +mov al,цвет 
 +mov bh,страница 
 +mov cx,x-координата 
 +mov dx,y-координата 
 +int 10h 
 +</code> 
 + 
 +=== Запись символа в режиме телетайпа === 
 +<code asm>mov ah,0eh 
 +mov al,символ 
 +mov bh,страница 
 +mov bl,цвет (в графических режимах) 
 +int 10h 
 +</code> 
 +=== Запись строки в режиме телетайпа === 
 +<code asm>mov ax,seg буфер строки 
 +mov es,ax 
 +mov bp,offset буфера строки 
 +mov ah,13h 
 +mov al,режим записи 
 +mov bh,страница 
 +mov bl,атрибут, если al = 01 или 00 
 +mov cx,длина строки 
 +mov dh,y-координата 
 +mov dl,x-координата 
 +int 10h 
 +</code> 
 + 
 +==== Задание ==== 
 +Написать функцию сохранения и установки режима терминала, функцию вывода строки на экран. Объединить с программой на Си