Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
33_Metodicheskie_ukazania_po_laboratornym_rabot...doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
706.56 Кб
Скачать

Сдвиг между страницами текста.

Поскольку страницы текста прилегают друг к другу в видеобуфере, то небольшой текстовый массив может целиком помещаться в этой памяти. В этом случае текст сдвигаться вверх и вниз по экрану не передвигаясь реально в буфере. Вместо этого экран начинает показывать содержимое буфера, начиная с различных точек и тем самым создавая иллюзию сдвига. Этот метод называется аппаратным сдвигом.

Аппаратный сдвиг достигается за счет изменения стартового адреса дисплея, который является числом, указывающим на символ в видеобуфере, который будет выводиться в левом верхнем углу экрана. Добавление 80 к этому числу "сдвигает" весь экран на одну строку вверх, а вычитание 80 - на одну строку вниз. В режиме с 40 символами в строке надо вместо 80 прибавлять или вычитать 40.

Отметим, что регистр стартового адреса не считает байты атрии бутов, поэтому Вы должны вычислять адреса памяти по-другому, чем при прямом отображении в память. Имейте также ввиду, что несмотря на наличие разрывов памяти между границами страниц (96 байтов между 80-символьными страницами и 48 байтов между 40-символьными страницами) микросхема 6845 пропускает эти области и сдвиг непрерывно происходит с одной страницы на следующую. Аппаратный сдвиг происходит настолько быстро, что Вам может оказаться необходимым вставить процедуру задержки, чтобы пользователь имел возможность увидеть насколько сдвинулся экран.

BIOS хранит текущее значение регистра стартового адреса в переменной в своей области данных. Эта двухбайтная переменная расположена по адресу 0040:004EH.

Использование wmi.

Windows Management Instrumentation (далее WMI) – это масштабируемая система управления инфраструктурой которая использует единый, стандартизированный, расширяемый, объектно-ориентированный интерфейс. WMI предоставляет программисту взаимодействовать с системой управления информацией и прилежащими WMI API.

При выборе данной технологии, для получения информации о видеорежимах используется множество классов, например: Win32_DisplayConfiguration, Win32_DisplayControllerConfiguration, Win32_VideoSettings, Win32_VideoController, Win32_VideoConfiguration, Win32_DesktopMonitor. Рассмотрим те сведения, которые предоставляет каждый из классов.

Использование данной технологии наиболее просто реализуемо при использовании языка программирования Visual Basic Script. Ниже представлен пример использования класса Win32_VideoConfiguration и получающий информацию о текущем расширении:

Option Explicit

Dim objWMI

Dim colCD

Dim objCD

Set objWMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")

Set colCD = objWMI.ExecQuery("Select * from Win32_VideoConfiguration")

For each objCD in colCD

MsgBox objCD.HorizontalResolution & "*" & objCD.VerticalResolution

Next

Аналогичным образом могут использоваться свойства и других классов.

1. Win32_DisplayConfiguration

Класс Win32_DisplayConfiguration предоставляет информацию о установленном дисплее.

class Win32_DisplayConfiguration : CIM_Setting{

uint32 BitsPerPel;

string Caption;

string Description;

string DeviceName;

uint32 DisplayFlags;

uint32 DisplayFrequency;

uint32 DitherType;

string DriverVersion;

uint32 ICMIntent;

uint32 ICMMethod;

uint32 LogPixels;

uint32 PelsHeight;

uint32 PelsWidth;

string SettingID;

uint32 SpecificationVersion;

};

2. Win32_DisplayControllerConfiguration

Класс Win32_DisplayControllerConfiguration предоставляет информацию о контроллере установленном в системе.

class Win32_DisplayControllerConfiguration : CIM_Setting{

uint32 BitsPerPixel;

string Caption;

uint32 ColorPlanes;

string Description;

uint32 DeviceEntriesInAColorTable;

uint32 DeviceSpecificPens;

uint32 HorizontalResolution;

string Name;

sint32 RefreshRate;

uint32 ReservedSystemPaletteEntries;

string SettingID;

uint32 SystemPaletteEntries;

uint32 VerticalResolution;

string VideoMode;

};

3. Win32_VideoSettings

Предоставляет информацию о видео контроллере и видео-настройках которые могут быть установлены.

class Win32_VideoSettings : CIM_VideoSetting

{

Win32_VideoController ref Element;

CIM_VideoControllerResolution ref Setting;

};

4. Win32_VideoController

Предоставляет информацию о возможностях видеоконтроллера установленного в системе.

class Win32_VideoController : CIM_PCVideoController{

uint16 AcceleratorCapabilities[];

string AdapterCompatibility;

string AdapterDACType;

uint32 AdapterRAM;

uint16 Availability;

string CapabilityDescriptions[];

string Caption;

uint32 ColorTableEntries;

uint32 ConfigManagerErrorCode;

boolean ConfigManagerUserConfig;

string CreationClassName;

uint32 CurrentBitsPerPixel;

uint32 CurrentHorizontalResolution;

uint64 CurrentNumberOfColors;

uint32 CurrentNumberOfColumns;

uint32 CurrentNumberOfRows;

uint32 CurrentRefreshRate;

uint16 CurrentScanMode;

uint32 CurrentVerticalResolution;

string Description;

string DeviceID;

uint32 DeviceSpecificPens;

uint32 DitherType;

datetime DriverDate;

string DriverVersion;

boolean ErrorCleared;

string ErrorDescription;

uint32 ICMIntent;

uint32 ICMMethod;

string InfFilename;

string InfSection;

datetime InstallDate;

string InstalledDisplayDrivers;

uint32 LastErrorCode;

uint32 MaxMemorySupported;

uint32 MaxNumberControlled;

uint32 MaxRefreshRate;

uint32 MinRefreshRate;

boolean Monochrome;

string Name;

uint16 NumberOfColorPlanes;

uint32 NumberOfVideoPages;

string PNPDeviceID;

uint16 PowerManagementCapabilities[];

boolean PowerManagementSupported;

uint16 ProtocolSupported;

uint32 ReservedSystemPaletteEntries;

uint32 SpecificationVersion;

string Status;

uint16 StatusInfo;

string SystemCreationClassName;

string SystemName;

uint32 SystemPaletteEntries;

datetime TimeOfLastReset;

uint16 VideoArchitecture;

uint16 VideoMemoryType;

uint16 VideoMode;

string VideoModeDescription;

string VideoProcessor;

};

5. Win32_VideoConfiguration

Предоставляет информацию о видео подсистеме.

class Win32_VideoConfiguration : CIM_Setting{

uint32 ActualColorResolution;

string AdapterChipType;

string AdapterCompatibility;

string AdapterDACType;

string AdapterDescription;

uint32 AdapterRAM;

string AdapterType;

uint32 BitsPerPixel;

string Caption;

uint32 ColorPlanes;

uint32 ColorTableEntries;

string Description;

uint32 DeviceSpecificPens;

datetime DriverDate;

uint32 HorizontalResolution;

string InfFilename;

string InfSection;

string InstalledDisplayDrivers;

string MonitorManufacturer;

string MonitorType;

string Name;

uint32 PixelsPerXLogicalInch;

uint32 PixelsPerYLogicalInch;

uint32 RefreshRate;

string ScanMode;

uint32 ScreenHeight;

uint32 ScreenWidth;

string SettingID;

uint32 SystemPaletteEntries;

uint32 VerticalResolution;

};

6. Win32_DesktopMonitor.

Предоставляет информацию о устройстве вывода информации присоединенного к компьютеру.

class Win32_DesktopMonitor : CIM_DesktopMonitor{

uint16 Availability;

uint32 Bandwidth;

string Caption;

uint32 ConfigManagerErrorCode;

boolean ConfigManagerUserConfig;

string CreationClassName;

string Description;

string DeviceID;

uint16 DisplayType;

boolean ErrorCleared;

string ErrorDescription;

datetime InstallDate;

boolean IsLocked;

uint32 LastErrorCode;

string MonitorManufacturer;

string MonitorType;

string Name;

uint32 PixelsPerXLogicalInch;

uint32 PixelsPerYLogicalInch;

string PNPDeviceID;

uint16 PowerManagementCapabilities[];

boolean PowerManagementSupported;

uint32 ScreenHeight;

uint32 ScreenWidth;

string Status;

uint16 StatusInfo;

string SystemCreationClassName;

string SystemName;

};

Варианты лабораторных работ:

Варианта

Задание

1

Вывод поддерживаемых видеорежимов

2

Определение AdapterType

3

Определение AdapterRAM

4

Определение CurrentNumberOfColors

5

Определение RefreshRate

6

Определение PowerManagementCapabilities

7

Определение VideoProcessor

8

Определение DriverVersion

9

Определение VideoMode

0

Определение VideoMemoryType

Введение 3

Лабораторная работа № 1. 4

Создание программы определения характеристик центрального процессора. 4

Лабораторная работа № 2. 11

Программирование BIOS\CMOS. 11

CMOS-память и конфигурация компьютера 16

Использование BIOS для определения конфигурации 23

Лабораторная работа 3. 27

Тестирование оптических накопителей. 27

ASPI 27

Использование I/O Control Codes. 28

Использование Windows Management Instrumentation (WMI). 29

Лабораторная работа № 4. 34

Программное тестирование контроллера накопителей на гибких дисках 34

Отличия контроллера для АТ-подобных ПЭВМ 44

Лабораторная работа № 5. 48

Диагностика контроллера накопителей на жестких дисках. 48

Лабораторная работа №6. 64

Программное тестирование портов для работы с клавиатурой 64

Лабораторная работа № 7. 78

Тестирование и контроль оперативной памяти. 78

Лабораторная работа № 8. 87

Программирование принтера. 87

Цель работы: изучение методов программирования принтера. 87

Лабораторная работа № 9. 98

Определение характеристик и параметров видеоадаптера. 98

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]