- •Управление оп компьютера.
- •Использование оперативной памяти под ms-dos. Высвобождение стандартной оперативной памяти.
- •Состав файла config.Sys
- •Emm386.Exe ram размер_памяти
- •Файл autoexec.Bat
- •Программирование операций с оп. Использование указателей.
- •Структура сегменту пам’яті
- •Адресация far
- •Адресация huge.
- •15.10Можно отнимать указатели huge один от другого, сравнивать их, чего не сделаешь с far. (Также можно отнимать и сравнивать указатели near).
- •Обращение к отдельным ячейкам оп.
- •Int *nPtr; - отведено место под указатель;
- •Непосредственная инициализация указателей. Обращение к ячейкам оп в пределах 1мб.
- •Программирование видеоадаптеров програмування відеоадаптерів Архітектура відеоадаптера
- •20.10Режимы работы видеоадаптеров
- •Vga (Video Graphic Array) – видеографический массив.
- •Видеоадаптеры svga (SuperVga)
- •Режимы работы видеоадаптеров svga по стандарту vesa
- •Int 10h ; прерывание для работы с видеосистемой.
- •Текстовый режим работы видеоадаптера.
- •Формат байтов символа
- •Мерцающий зеленый символ на красном фоне. Программирование непосредственной записи в видеобуфер.
- •2 4.10Видеоконтроллер в графическом режиме (например, cga № 4).
- •Т ехнология изменения цвета пиксела. П оследовательность действий.
Int *nPtr; - отведено место под указатель;
nPtr=&nValue; - указатель получает значение номера ячейки, например, nPtr==4F9A;
тогда *nPtr==0x1234; - разадресация.
Непосредственная инициализация указателей. Обращение к ячейкам оп в пределах 1мб.
Один из способов формирования указателей без привязки к данным – прямая адресация.
char _far *cPtr=0xf00000feL; – неправильно;
char _huge *cPtr=(char _huge*) 0xf00000feL; – правильно; (F000:00FE, физический адрес F00FE);
если ранее было бы объявлено: char сCh; то для того, чтобы узнать содержимое ячейки памяти, необходимо записать:
сCh=*cPtr; (переменной cCh присвоено значение содержимого ячейки, на которую указывает cPtr).
Способ формирования указателя при помощи макроса MAKE_FP.
#define MAKE_FP(seg,off) ((void far *) ((((unsigned \
long)(unsigned)(seg))<<16) | \
((unsigned long)(unsigned) \
(off))))
Комментарий:
значок «\» – «склеивание» строк.
Предположим, seg = 0xF000;
seg << 16 (получается F0000000h)
off = 0х0fe; (т.е., 000000FEh)
seg | off = = F00000FEh; ( значок | – логическое сложение)
модификаторы void, far, unsigned, long делают явное приведение к соответствующим типам.
Далее объявляется указатель:
char unsigned _far *сРtr;
……..
… и где-то в программе ему
присваивается значение:
сРtr=MAKE_FP(0xf000, 0x00fe);
Программирование видеоадаптеров програмування відеоадаптерів Архітектура відеоадаптера
Видеопамять состоит как бы из нескольких слоёв. Ниже приведена её структура:
-
Количество цветов
Количество бит для кодировки пиксела
256
8
65 536
16
16 777 216
24
4 294 967 296
32
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 бит 8 бит 8 бит
3 байта – ~16 млн цветов
4 байта – ~ 4 млрд цветов
20.10Режимы работы видеоадаптеров
Видеорежим |
Тип режима |
Количество цветов |
Разрешение, знакомест | пиксел |
|
0, 1 |
Текстовый цветовой (CGA) |
16 |
40x25 |
|
2, 3 |
–«– |
16 |
80x25 |
|
4, 5 |
Графический цветовой (CGA) |
4 |
|
320x200 |
0Dh |
–«– |
16 |
|
320x200 |
10h |
Графический цветовой (EGA) |
16 из 64 |
|
640x350 |
12h |
Графический цветовой (VGA) |
16 из 64 |
|
640x480 |
13h |
Графический цветовой (VGA) |
256 |
|
320x200 |
CGA (Color Graphic Adapter) – цветной графический адаптер;
EGA (Enhanced Graphic Adapter) – улучшенный –«– –«– ;