mirror of
https://github.com/MPSU/APS.git
synced 2025-09-15 17:20:10 +00:00
Исправление пунктуации (#126)
* Исправление пунктуации --------- Co-authored-by: Andrei Solodovnikov <VoultBoy@yandex.ru>
This commit is contained in:
@@ -647,7 +647,7 @@ _Таблица 7. Адресное пространство передатчи
|
||||
|
||||
### Видеоадаптер
|
||||
|
||||
Видеоадаптер позволяет выводить информацию на экран через интерфейс **VGA**. Предоставляемый в данной лабораторной работе vga-модуль способен выводить `80х30` символов (разрешение символа `8x16`). Таким образом, итоговое разрешение экрана, поддерживаемого vga-модулем будет `80*8 x 30*16 = 640x480`. VGA-модуль поддерживает управление цветовой схемой для каждого поля символа в сетке `80х30`. Это значит, что каждый символ (и фон символа) может быть отрисован отдельным цветом из диапазона 16-ти цветов.
|
||||
Видеоадаптер позволяет выводить информацию на экран через интерфейс **VGA**. Предоставляемый в данной лабораторной работе vga-модуль способен выводить `80×30` символов (разрешение символа `8×16`). Таким образом, итоговое разрешение экрана, поддерживаемого vga-модулем будет `80*8 × 30*16 = 640×480`. VGA-модуль поддерживает управление цветовой схемой для каждого поля символа в сетке `80×30`. Это значит, что каждый символ (и фон символа) может быть отрисован отдельным цветом из диапазона 16-ти цветов.
|
||||
|
||||

|
||||
|
||||
@@ -659,7 +659,7 @@ _Рисунок 2. Пример игры с использованием сим
|
||||
|
||||
_Таблица 8. Адресное пространство контроллера VGA._
|
||||
|
||||
Для того, чтобы вывести символ на экран, необходимо использовать адрес этого символа на сетке `80x30` (диапазон адресов `char_map`). К примеру, мы хотим вывести символ в верхнем левом углу (т.е. нулевой символ нулевой строки). Эта позиция расположена по адресу "0" в диапазоне адресов `char_map`. Поскольку данный диапазон начинается с адреса `0x0000_0000`, запись по этому адресу приведёт к отображению символа, соответствующего [ASCII-коду](https://www.asciitable.com/), пришедшему на `write_data_i`.
|
||||
Для того, чтобы вывести символ на экран, необходимо использовать адрес этого символа на сетке `80×30` (диапазон адресов `char_map`). К примеру, мы хотим вывести символ в верхнем левом углу (т.е. нулевой символ нулевой строки). Эта позиция расположена по адресу "0" в диапазоне адресов `char_map`. Поскольку данный диапазон начинается с адреса `0x0000_0000`, запись по этому адресу приведёт к отображению символа, соответствующего [ASCII-коду](https://www.asciitable.com/), пришедшему на `write_data_i`.
|
||||
|
||||
Если мы хотим вывести нулевой (левый) символ в первой строке (счёт ведётся с нуля), то необходимо произвести запись по адресу `1*80 + 0 = 80 = 0x0000_0050`.
|
||||
|
||||
@@ -687,7 +687,7 @@ _Рисунок 3. Цветовая палитра vga-модуля._
|
||||
|
||||
К примеру, мы хотим установить черный фоновый цвет и белый цвет в качестве цвета символа для верхней левой позиции. В этом случае, мы должны записать значение `f0` (f(15) — код белого цвета, 0 — код черного цвета) по адресу `0x0000_1000` (нулевой адрес в диапазоне `color_map`).
|
||||
|
||||
Для отрисовки символов, мы условно поделили экран на сетку `80х30`, и для каждой позиции в этой сетке определили фоновый и активный цвет. Чтобы модуль мог отрисовать символ на очередной позиции (которая занимает `16х8` пикселей), ему необходимо знать какой пиксель в этой позиции для заданного ASCII-кода является пикселем фона, а какой — пикселем символа. Для этого используется память шрифтов.
|
||||
Для отрисовки символов мы условно поделили экран на сетку `80×30`, и для каждой позиции в этой сетке определили фоновый и активный цвет. Чтобы модуль мог отрисовать символ на очередной позиции (которая занимает `16×8` пикселей), ему необходимо знать какой пиксель в этой позиции для заданного ASCII-кода является пикселем фона, а какой — пикселем символа. Для этого используется память шрифтов.
|
||||
|
||||
Допустим, нам необходимо отрисовать символ `F` (ascii-код `0x46`).
|
||||
|
||||
@@ -699,7 +699,7 @@ _Рисунок 4. Отрисовка символа `F` в разрешении
|
||||
|
||||
Данный модуль поддерживает 256 символов. Следовательно, для хранения шрифта под каждый из 256 символов требуется 16 * 256 = 4 KiB памяти.
|
||||
|
||||
Для хранения шрифтов в модуле отведён диапазон адресов `0x00002000-0x00002FFF`. В отличие от предыдущих диапазонов адресов, где каждый адрес был закреплён за соответствующей позицией символа в сетке `80x30`, адреса данного диапазона распределены следующим образом:
|
||||
Для хранения шрифтов в модуле отведён диапазон адресов `0x00002000-0x00002FFF`. В отличие от предыдущих диапазонов адресов, где каждый адрес был закреплён за соответствующей позицией символа в сетке `80×30`, адреса данного диапазона распределены следующим образом:
|
||||
|
||||
- 0-ой байт — нулевая (верхняя) строчка символа с кодом 0;
|
||||
- 1-ый байт — первая строчка символа с кодом 0;
|
||||
|
Reference in New Issue
Block a user