Блок интерфейса монитора формирует выходные сигналы соответствующего типа (RGB-TTL, RGB-Analog, композитный видео или S-Video).

Расширение BIOS функции выполняются через вызов программного прерывания Int 10 h — видеосервис BIOS.

Контроллер ЭЛТ должен обеспечивать требуемые частоты развертки и режимы сканирования видеопамяти, которые зависят от режима отображения (графический или текстовый) и организации видеопамяти. Опорной частотой для работы контроллера является DotCLK — частота вывода пикселов в графических режимах или точек разложения символов в текстовом режиме.

Видеопамять

Необходимый объем видеопамяти определяется желаемым графическим режимом (в текстовом режиме потребуется всего несколько килобайт). Требуемые объемы для одной страницы различных видеорежимов приведены в табл. 6.1. Если взять удвоенное значение этого объема, то многие адаптеры позволят организовать двухстраничный режим с переключением буферов, что полезно для вывода динамичных изображений. У адаптеров с ЗD-акселераторами потребности в памяти выше, они имеют 8-128 Мбайт.

 

 

Таблица 6.1.Разрешение и требуемый объем видеопамяти

 

Бит/ пиксел Количество цветов 640x480 800x600 1024x768 1280x1024
150 Кбайт 234 Кбайт 384 Кбайт 640 Кбайт
300 Кбайт 469 Кбайт 768 Кбайт 1,25 Мбайт
32 768 600 Кбайт 938 Кбайт 1,5 Мбайт 2,5 Мбайт
65 536 600 Кбайт 938 Кбайт 1,5 Мбайт 2,5 Мбайт
16 777 216 900 Кбайт 1,37 Мбайт 2,25 Мбайт 3,75 Мбайт
16 777 216 1,172 Мбайт 1,83 Мбайт 3,0 Мбайт 5,0 Мбайт

В режиме 32 бит/пиксел для цветопередачи используются только 24 младших бита.

Кроме аппаратно выделенной видеопамяти, устанавливаемой на графических адаптерах, существует и архитектура унифицированной памяти UMA (Unified Memory Architecture). При таком подходе под видеобуфер выделяется область системного ОЗУ, что позволяет несколько удешевить компьютер. Эта экономия приводит к снижению производительности, как графической подсистемы, так и компьютера в целом. Диаметрально противоположным подходом, нацеленным на повышение производительности, является не просто выделение видеопамяти, а еще и применение в ней микросхем со специальной архитектурой — VRAM, WRAM, MDRAM, RDRAM, SGRAM.

В графическом режиме возможны разнообразные варианты организации видеопамяти.

Контроллер атрибутов Для монохромных (не полутоновых) мониторов часть цветовой информации может преобразовываться в такие элементы оформления, как мигание, подчеркивание и инверсия знакоместа. В состав контроллера атрибутов входят регистры палитр, которые служат для преобразования цветов, закодированных битами видеопамяти, в реальные цвета на экране.

В адаптере CGA цветовая палитра меняется совсем просто: два бита цвета пиксела управляют лучами красного и зеленого цветов, а к ним еще добавляется (или не добавляется) общий на весь экран бит управления синим цветом. В результате два бита цвета пиксела могут задавать по четыре цвета в двух разных палитрах.

В адаптере EGA применены уже настоящие программируемые регистры палитр, позволяющие каждому из 16 возможных кодов, задаваемых четырьмя битами цветовых слоев, поставить в соответствие один из 64 возможных цветов, отображаемых монитором EGA. На рис. 6.2 левая часть иллюстрирует преобразование битов с условными названиями R, G, В, I в сигналы интерфейса монитора EGA. Название битов условно потому, что в регистры палитр могут быть загружены произвольные значения реальных выходных цветов, кодируемых интерфейсными сигналами Rr, Gg и Bb. С появлением адаптеров VGA, способных задавать большое (256 и более) количество цветов, схему цве-тообразования усложнили. Теперь на плату графического адаптера из монитора переведены цифроаналоговые преобразователи (ЦАП) сигналов базисных цветов, и появилась возможность отображения чуть ли не бесконечного количества оттенков, кодируемых аналоговыми сигналами. Однако реальное число цветов ограничивается разрядностью ЦАП базисных цветов, которая поначалу составляла 6 битов на каждый канал, что позволяет задавать 218

ЦАП базисных цветов. Функционально оказалось целесообразным объединить эти регистры, представляющие собой небольшое быстродействующее ОЗУ (RAM), вместе с преобразователями (DAC — Digital-to-Analog Converter, цифро-аналоговый пре­образователь). Эта функциональная сборка в настоящее время исполняется в виде микросхем RAMDAC. Схему преобразования с использованием RAMDAC иллюстрирует правая часть рис. 6.2. Номер регистра RAMDAC, из которого берется цвет текущего отображаемого пиксела, в режиме 256 цветов задают 8-битным кодом цвета пиксела (в видеопамяти).

При работе в 16-цветном режиме EGA и 2-4-цветном режиме адаптер VGA использует регистры палитр, на выходе которых получается 6-битный код цвета. Старшие два бита добавляются из регистра цвета, с помощью которого можно переключать палитру сразу для всех цветов. В этих режимах регистры RAMDAC функционально дублируют регистры палитр. Лишнюю ступень косвенности можно сгладить, беря на вход RAMDAC только 4 бита с выхода регистра палитр, а из регистра цвета брать уже 4 бита. Тогда в сами регистры палитр целесообразно загрузить их номера, что обеспечит линейное преобразование (4 бита из слоев пройдут через регистры палитр без изменений).

Графические адаптеры имеют возможность переключения режима преобразования — использование в общем-то лишних регистров палитр требуется только для совместимости с ПО, ориентированным на адаптеры EGA.

 

ИЛИ
Цифровой

Рис. 6.2.Схема преобразования цветов через регистры палитр и RAMDAC

Казалось бы, что для режимов High Color (15-16 бит/пиксел), а тем более True Color (24 бита), табличное преобразование цветов уже не требуется, и биты каждого цвета можно подавать прямо на входы своего ЦАП. Однако если перед каждым ЦАП поставить отдельный блок регистров — ОЗУ объемом 256 х 8, ад­ресуемое битами данного цвета, то можно выполнять гамма-коррекцию цвета аппаратными средствами адаптера. Гамма-коррекция требуется для увязки способностей цветопередачи дисплея с линейной математической моделью цветообразования, используемой графическими приложениями. У аналогового монитора на ЭЛТ передаточные характеристики цветовых каналов нелинейные и имеют вид, аппроксимируемый функцией Y = Xγ, где X — входной сигнал, а γ = 2,2 (это и есть «гамма»). В RAMDAC загружают таблицу, с помощью которой в выходной сигнал вводятся предискажения, компенсирующие нелинейность дисп­лея. Однако разные типы дисплея могут иметь разные передаточные характеристики, что для особо высоких требованиях к верности цветопередачи должно учитываться при программировании RAMDAC. Возможность загрузки RAMDAC для всех режимов была потребована уже в спецификации РС99.

Микросхемы RAMDAC характеризуются разрядностью преобразователей, которая может доходит до 8 бит на цвет, и предельной частотой выборки точек (DotCLK), с которой они способны работать. Естественно, что чем точнее должно быть преобразование, тем труднее его выполнить быстро. Трудности и высокая стоимость достижения высокого разрешения при высокой частоте строчной (прогресивной) развертки (эти факторы требуют высокого быстродействия RAMDAC) с большой глубиной цвета (требующей высокой точности преобразования) связаны и с этой причиной. Современные графические адаптеры, ориентированные на высокое разрешение и высокую частоту развертки, имеют RAMDAC с частотой порядка 350 МГц и даже выше.

Знакогенераторы адаптеров EGA и VGA размещаются во втором слое видео­памяти и поэтому программно доступны. При инициализации адаптера они за­гружаются из образов, хранящихся в ПЗУ расширения BIOS, установленных на платах графических адаптеров. Адаптер EGA позволяет одновременно хранить до четырех таблиц по 256 символов, a VGA — до восьми. Активной (используемой для отображения) может быть либо одна из них, либо сразу две. В последнем случае набор одновременно отображаемых символов расширяется до 512, а одна из двух таблиц, используемых для конкретного символа, определяется битом 3 его байта атрибутов.

Таблицы имеют 32-байтную развертку каждого символа в формате 16 х 16, из которой в EGA используется матрица 8 х 14, а в VGA — 9x16. Если таблицу знакогенератора (шрифты) для EGA загрузить в VGA, символы будут выглядеть мелковато, а в линиях, нарисованных символами псевдографики, появятся разрывы. Если же шрифты для VGA загрузить в EGA, то символы будут выглядеть усеченными (особенно снизу). Программная доступность знакогенератора снимает необходимость аппаратной русификации адаптера, но при желании можно переписать русифицированные шрифты в BIOS графического адаптера (не забыв исправить контрольную сумму в последнем байте ПЗУ). Такая процедура избавит от необходимости загрузки резидентного русификатора, занимающего место в памяти. Поскольку знакогенератор расположен в одном из слоев видео­памяти, после использования большинства графических режимов его содержи­мое приходится перезагружать, а встроенный драйвер BIOS по умолчанию возьмет образ, хранившийся в ПЗУ адаптера. Если туда подставить нужный шрифт, то дополнительный драйвер экрана не потребуется.

Графический процессор работает с четырехслойной моделью организации видеопамяти Адаптеры EGA и VGA имеют четыре 8-битных регистра-защелки, в которых фиксируются данные из соответствующих им цветовых слоев при выполнении любой операции чтения видеопамяти. В последующих операциях записи в формировании данных для каждого слоя могут принимать участие данные от процессора (1 байт) и данные из регистров-защелок соответствующих слоев. Данные от процессора могут быть предварительно циклически сдвинуты. Над данными от процессора (возможно, сдвинутыми) и из регистров-защелок могут выполняться логические операции И, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ. Кроме того, вместо результатов этих операций в некоторые слои могут быть записаны байты нулей или единиц. Регистр битовой маски позволяет побитно управлять источником записываемых данных: если бит регистра маски имеет нулевое значение, то в видеопамять этот бит во всех слоях будет записан из регистра-защелки. Данные от процессора (логически обработанные) будут поступать только для бит с единичным значением маски. И наконец, запись будет производиться только в разрешенные слои, правда, функция разрешения слоев относится уже к синхронизатору.

Управление ПК

Рис. 8.10. Тракт записи графического контроллера EGA/VGA

При чтении графический контроллер может задать номер читаемого слоя.

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

Рис. 8.11. Считывание со сравнением цвета

Всеми функциями графического контроллера управляют через его регистры. Конечно, возможно и прямое обращение к отдельному цветовому слою как по чтению, так и по записи. Но знание возможностей графического контроллера позволяет многие часто используемые функции возложить на его аппаратные средства. Однако если такой аппаратный графический контроллер еще прием­лем для четырехслойной организации (4 бита на пиксел), то для более глубоких цветов (8 бит на пиксел и более) он будет уже слишком громоздким. В современных адаптерах функции графического контроллера, существенно расширенные по сравнению с EGA и VGA, выполняются встроенным микропроцессором — графическим акселератором.

Синхронизатор. Адаптеры имеют собственные кварцованные генераторы синхронизации (иногда и по несколько). От внутреннего генератора вырабатывается частота вывода пикселов DotClock (DotCLK), относительно которой строятся все времен­ные последовательности сканирования видеопамяти, формирования видеосигна­лов и синхронизации монитора. В то же время процессор обращается к видеопа­мяти асинхронно относительно процесса регенерации. В задачу синхронизатора входит согласование этих асинхронных процессов. В адаптерах SVGA для шины PCI в качестве опорной для некоторых видеорежимов может использоваться ча­стота 33 МГц прямо с шины, а циклы обращения процессора и так уже привяза­ны к этому синхросигналу. Таким образом, задача синхронизатора упрощается. Шина PCI допускает частоты и 30 и 25 МГц, а при частоте системной шины 83 МГц частота PCI может стать уже 41,5 МГц.

Внутренняя шина Типовая разрядность канала данных у этой шины сейчас состав­ляет 32 и 64 бит. Однако реально используемая разрядность может оказаться меньше, если установлены не все предусмотренные микросхемы видеопамяти.

Блок внешнего интерфейса. Если раньше для графических адаптеров предназначалась шина ISA (8 или 16 бит), то современные графические адаптеры используют в основном высокопроизводительные шины.

Блок интерфейса монитора отвечает и за диалог с монитором: в простейшем случае — чтение бит идентифи­ации (для VGA-мониторов), а в более сложном — обмен данными по каналу DDC. Идентификация типа подключенного монитора VGA может производиться и по уровню видеосигнала на выходах красного или синего цвета: монитор имеет терминаторы (75 Ом) на каждом из аналоговых входов. Такая нагрузка при подключении снижает напряжение выходного сигнала.

Видеокомпоненты пока еще не стали обязательными принадлежностями дисплейного адаптера. Они могут включать аппаратную поддержку различных ко­деков (чаще всего — MPEG-плейер), средства поддержки видеооверлеев, фрейм-граббер, TV-тюнер.

Первые графические адаптеры строились на базе контроллера ЭЛТ (6845), обрамленного массой микросхем средней степени интеграции. В современных дисплейных адаптерах применяются наборы специализированных интегральных схем высокой степени интеграции — графические и видеочипсеты. Эти микро­схемы вместе с применяемыми микросхемами видеопамяти определяют основ­ные характеристики адаптеров.

Видеосервис позволяет устанавливать и переключать видеорежим, выполнять вывод символов и пикселов, очищать и прокручивать экран универсальными способами, без особой оглядки на установленный видеорежим, и выполнять некоторые другие функции. Видеосервис BIOS необходим по крайней мере до загрузки операционной системы, которая в дальнейшем может работать с графическим адаптером и напрямую, через собственные загружаемые драйверы, специфические для конкретного адаптера. Драйверы для адаптеров MDA и CGA по традиции встроены в системную BIOS (по крайней мере у всех компьютеров, имеющих шину ISA). Программная поддерж­ка графических адаптеров, интегрированных в системную плату, также встроена в системную BIOS. Все остальные адаптеры имеют собственный модуль расширения BIOS (Video BIOS), в котором хранятся коды драйверов видеосервиса (INT 10h) и таблицы знакогенераторов. Этот модуль появился с адаптерами EGA и VGA и обеспечивает возможность установки любой карты, не задумываясь о проблемах программной совместимости. Модуль расширения получает управление для инициализации графического адаптера почти в самом начале теста POST (до тестирования основной памяти), и его заставка появляется на экране до заставки системной BIOS. Модуль имеет начальный адрес C0000h, его размер зависит от модели адаптера.

3. Параметры видеосистемы

Рассмотрев работу видеосистемы, можно сформулировать и объяснить ее основ­ные параметры, определяемые используемым дисплейным адаптером, дисплеем (монитором) и интерфейсом, их связывающим.

Общие параметры дисплейного адаптера характеризуют его возможности для всех применений, двумерных и трехмерных.

Тип адаптера(MDA, CGA, HGC, EGA, MCGA, PGA, SVGA...) и тип шины (ISA 8/16-бит, MCA, EISA, VLB, PCI, AGP) дают самое общее представление о его возможностях, поскольку все самые разнообразные современные адаптеры относятся к SVGA и подключаются либо к шине PCI, либо к AGP, либо интегрированы в системную плату.

Поддерживаемый режимотображения (Mode Type) определяет возможность работы в текстовом (ТХТ или AN) или графическом (Gr или АРА) режиме адресации элементов изображения. Режимы определяются графическим адаптером. Все современные адаптеры поддерживают оба режима.

Разрешение(Resolution), или разрешающая способность, в графическом режиме определяется количеством точек в строке по горизонтали и числом строк на экране (например, 800 х 600 — 800 точек, 600 строк). Чем больше разрешение, тем больше информации можно вывести на экран с приемлемым качеством изображения. Разрешение со стороны монитора определяется размерами экрана и зерна и полосой пропускания видеотракта, а со стороны графического адаптера в основном объемом установленной памяти и желаемым количеством цветов.

В текстовом режиме разрешение характеризуют форматом экрана(Character Format), в котором указывается количество знакомест (символов) по горизонтали и количество линий символов (иногда говорят «строк»). Качество изображения символов определяется форматом знакоместа(Character Box): худший вариант — 8 х 8, лучший — 9 х 14 или 9x16 точек.

Количество цветовподразумевает, как максимальное количество одновременно присутствующих цветов на экране, ограниченное числом бит видеопамяти, задающих цвет элемента изображения, так и цветовую гамму —. количество возможных цветов, отображаемых монитором, ограниченное суммарной разрядностью цифроаналоговых преобразователей базисных цветов. Для монохромных мониторов используется число градаций серого цвета. Соответствие цветов из гаммы комбинациям бит определяется палитрой (Pallete), программно переключаемой (в адаптерах CGA, EGA) или программируемой матрицей RAMDAC (VGA, SVGA). Количество одновременно присутствующих цветов определяется количеством бит видеопамяти на элемент изображения: CGA — 2 бита/4 цвета, EGA - 4 бита/16 цветов, VGA - 8 бит/256 цветов, SVGA - 15-16 бит (High Color, 32-64 К цветов) и 24 бита (True Color, 16M цветов). Разрядность RAMDAС определяет дискретность выводимого цвета: 18-битный RAMDAC имеет для каждого цвета 6-битные схемы ЦАП R, G и В, не позволяющие вывести все оттенки True Color, современные адаптеры имеют 24-битные RAMDAC (по 8 бит R, G и В). Загружаемость 24-битных RAMDAC позволяет выполнять в адаптере
гамма-коррекцию.

Объем видеопамяти(локального буфера) определяет соотношение разрешения, количества одновременно доступных цветов и видеостраниц. Тип видеопамяти— обычная динамическая (DRAM, EDORAM, SDRAM) или специальная (SGRAM, VRAM, WRAM, MDRAM, RDRAM) - и разрядность видеопамяти(8, 16, 32, 64, 128 бит) определяет производительность и предельную частоту регенерации. У современных графических карт с 3D-акселератором объем локального буфера существенно влияет на производительность акселератора (чем больше, тем выше), и объем 16 Мбайт и более нужен не столько для размещения страниц видеопамяти (см. табл.), сколько для хранения текстур и иной информации, используемой в построениях. На мощных игровых картах устанавливают 16-32 Мбайт памяти SDRAM или SGRAM со спецификацией 5-5,5 не, что позволяет памяти работать на частотах 166-183 МГц. Для памяти DDR SDRAM/ SGRAM пока в основном используется частота 150-166 МГц, но данные передаются с удвоенной скоростью.

Частота регенерации(Refresh Rate), или сканирования(Scan Frequency), и режим сканирования определяют качество (устойчивость) выводимого изображения. Частота регенерации является частотой кадровой (вертикальной) развертки. При кадровой частоте развертки ниже 60 Гц изображение мерцает, что особенно заметно на большом белом поле экрана.

Режим развертки, или сканирования(Scan Mode): NI (Non-interlaced), — прогрессивный или построчный, / (Interlaced) — чересстрочный. При чересстрочной развертке дрожат мелкие элементы изображений (особенно заметно на тонких горизонтальных линиях). Частота и режим развертки зависят от видеорежима, типа и модели адаптера и монитора. В тех случаях, когда нет цели получить максимум производительности, стремятся к построчной развертке с возможно более высокой частотой кадров (75 Гц и выше), но с оглядкой на полосу пропускания видеотракта.

Частота работы RAMDACопределяет предельное сочетание разрешения экрана и частоты регенерации. Увеличение частоты работы RAMDAC ведет к ухудшению качества изображения (четкости и насыщенности цветов). Лучшие модели адаптеров, обеспечивающие режимы до 2048 х 1536, имеют RAMDAC с частотой до 350 МГц, Хорошие адаптеры имеют RAMDAC на 250 МГц.

Наличие, возможности и производительность 2D-акселератора (имеется практически на всех картах последних лет выпуска).

Тип дисплейного интерфейса(аналоговый или цифровой) и тип разъема; возможность программирования параметров интерфейса (например, включения режима композитной синхронизации). Большинство адаптеров имеют разъем VGA DB-15, к которому подключаются обычные ЭЛТ-мониторы и плоские панели. Стали появляться адаптеры с интерфейсом DVI и цифровым интерфейсом плоских панелей. Появились адаптеры и с двумя выходными интерфейсами

Ниже перечислены основные параметры современных графических адаптеров с 3D-акселераторами.

Тип (модель) графического процессора (чипсета) — их разрабатывает и производит ряд фирм (3dfx и поглотившая ее NVIDIA, Matrox, ATI, S3...), у каждой фирмы есть ряд моделей со своими особенностями, достоинствами и недостатками. Процессоры могут иметь более одного конвейера для рендеринга, и у каждого конвейера может быть несколько блоков текстурирования, позволяющих за один такт накладывать несколько текстур.
Частота работы графического ядра — 125-250 МГц.

Тип интерфейса — PCI или AGP; для порта AGP интересны поддерживаемые режимы обмена: lx, 2x, 4x, SBA, DIME, быстрая запись (см. п. 12.6).
Тип, разрядность шины и частота работы локальной памяти, определяю­щие ее производительность. Типовая разрядность — 128 бит (16 байт), ча­стота 133-230 МГц для обычной памяти или DDR SDRAM/SGRAM. Па­мять DDR SDRAM на частоте 230 МГц обеспечивает пиковую производительность 2 х 230 х 16 = 7,36 Гбайт/с. Частота шины памяти может отличаться от частоты графического ядра. Некоторые чипсеты, имеющие несколько параллельных конвейеров, используют для каждого конвейера отдельную локальную память, что увеличивает суммарную производительность.

Поддерживаемый объем локальной памяти — 8-128 Мбайт. Определяет количество элементов и текстур, хранимых локально, и, следовательно, производительность их обработки.

Разрешение экрана, с которым работает акселератор, — от 800 х 600 до 2048 х 1536 точек.

Разрядность цвета — 16/32 бит/пиксел. 16-битный цвет экономит ресурсы, требуемые для построения изображения, но при этом качество изобра­жения не удовлетворяет взыскательного пользователя. Применяют и компромиссный вариант — оптимизированный 16-битный цвет.
Разрядность Z-буфера — 16/24/32 бит.

Скорость обработки многоугольников (полигонов) — 5-30 млн полигонов/с.

Скорость формирования пикселов — 100-1000 млн пикселов/с.
Поддерживаемая размерность текстур: 64 х 64, 128 х 128, 256 х 256 — текстуры малого размера; новые адаптеры поддерживают текстуры вплоть до 1024 х 1024 и 2048 х 2048 с 32-битными текселами.

Поддержка мультитекстурирования (возможности наложения нескольких текстур).

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

Дисплей (монитор) характеризуется размером экрана, зернистостью, обеспечиваемыми частотами разверток и полосой пропускания видеотракта; поддерживаемые режимы разрешения являются производными от этих параметров. Кроме этих параметров, которые поддаются численному выражению, имеются и показатели качества изображения на экране.

Четкость и контрастность изображения.
Яркость и насыщенность цветов.
Хорошее сведение по всему полю экрана.

Устойчивость изображения — отсутствие колебаний и дрожаний, ровная граница краев экрана, особенно справа снизу. Отсутствие мерцаний отно­сится к количественным параметрам — частоте и режиму регенерации.
Отсутствие эхо-сигналов — слабых повторов элементов изображения в не­гативном и позитивном виде чуть правее их оригиналов.

 








Дата добавления: 2015-11-10; просмотров: 1220; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию, введите в поисковое поле ключевые слова и изучайте нужную вам информацию.

Поделитесь с друзьями:

Если вам понравился данный ресурс вы можете рассказать о нем друзьям. Сделать это можно через соц. кнопки выше.
helpiks.org - Хелпикс.Орг - 2014-2022 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.023 сек.