Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 450
от 22.12.2002, 15:00

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 2232
Отправлено ответов: 6755
Активность: 302.6 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Sensey
Статус: Профессиональный
Общий рейтинг: 121.93
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Gibbel
Статус: Профессиональный
Общий рейтинг: 108.4
URL: Страничка обо мне и моих друзьях
[Подробней >>]
Andrew Vext
Статус: Доверительный
Общий рейтинг: 107.5
[Подробней >>]
 
Dark_Lord
Статус: Профессиональный
Общий рейтинг: 121.95
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.66
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 117.27
[Подробней >>]
 
Traish
Статус: Доверительный
Общий рейтинг: 128.9
[Подробней >>]
VicSimon
Статус: Начальный
Общий рейтинг: 102.59
[Подробней >>]
Eugene
Статус: Опытный
Общий рейтинг: 108.71
URL: мощный файловый архив
[Подробней >>]
 
Maverick
Статус: Профессиональный
Общий рейтинг: 139.14
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Александр
Статус: Начальный
Общий рейтинг: 108.25
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108.16
[Подробней >>]
 
Blad
Статус: Начальный
Общий рейтинг: 104.95
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 114.03
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 127.68
URL: моя рассылка по Protected Mode
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 2178. Znaete, mne tut popalas' ssilka na russkiy yazik programmirovanitya - nazivayetsya URAGAN. sLISHALI... (ответов: 2)
Вопрос № 2179. Hi! Эксперты возник может быть ламерский но все-таки вопрос. Вобщем есть язык бейсикоподобный под 3D... (ответов: 3)
Вопрос № 2180. Хай всем экспертам и челу Fray. Прикольная прога в приложении. Интересно, у кого есть идеи по тому, ... (ответов: 4)
Вопрос № 2181. Хай, Ayl! Пасиба, что немного поморочился. Я в принципе так и думал. Просто я только пытаюсь изучать... (ответов: 1)
Вопрос № 2182. Здравствуйте! Может есть у кого-нибудь готовый скелет для резедента. Т.е. пару процедур(макросов) пе... (ответов: 3)
Вопрос № 2183. Привет! Сразу извеняюсь, но писать больше некуда, да и срочно это. Тут девушке моей понадобилось кур... (ответов: 6)
Вопрос № 2184. Нужно повысить частоту вертикальной развертки монитора с 60 до 70-75 Гц под ОС ДОС. К каким портам о... (ответов: 1)
Вопрос № 2187. Здравствуйте. Подскажите что надо сделать для использование DLL написанной на ASMe в Visual C++. В ... (ответов: 2)
Вопрос № 2188. Здравствуйте. Есть ли способ получить список хэндлов всех окон в системе, кроме цикла с GetWindow(hW... (ответов: 3)

Вопросов: 9, ответов: 25


 Вопрос № 2178


Znaete, mne tut popalas' ssilka na russkiy yazik programmirovanitya - nazivayetsya URAGAN. sLISHALI O TAKOM? V opisanii napisano chto on mozhet sam sebya modificirovat' - toest' polimorfizm! A na vid on kak perevedenniy na russkiy basic/pascal s primo4kami i prikolami. A 43go vi o nem dumaete, rasskazhite pls, toka serizono.
ps: sorry za offtopic, ni vi ved' ludi avtoritetniye vsetaki, potomu i sparshivatyu.



Вопрос отправлен: 17.12.2002, 15:17
Отправитель: Edward (zeleniy_kot@yahoo.com)

[Следующий вопрос >>] [Список вопросов]

Отвечает Sensey

Приветствую Вас, Edward!
А мне попалась прога, называется Цифирица- пошешь транслитом, а потом она на русский переводит - получателям не надо глаза ломать...
Ну так кинь ссылку на этот язык, а?


Ответ отправлен: 17.12.2002, 15:33
Отправитель: Sensey


Отвечает Gibbel

Доброе время суток, Edward!
А ты в V7 никогда не программировал??? Там можно все операторы писать как на англицком, так и на руццком...
А вообще, ссылочку кинь, интересно было бы посмотреть.

Ответ отправлен: 18.12.2002, 10:20
Отправитель: Gibbel


 Вопрос № 2179

Hi!
Эксперты возник может быть ламерский но все-таки вопрос.
Вобщем есть язык бейсикоподобный под 3D.
1. Уменя стоит Милениум и
карточка ASUS V3800 , то есть все поддерживает. Но вот если я например
ставлю разрешение 1024х786х32 он сообщает ,что невозможно создать 3D
сцену. Что тут может быть не так?
2. Почему там же( да и в многих других 3D-программах но не во всех) на мониторе
выставляется 60Гц?(вместо100). Может дело в версии DirectX стоящей в системе и той под
которую работает программа(язык)?
Thanks.



Вопрос отправлен: 17.12.2002, 16:22
Отправитель: Arthur

[Следующий вопрос >>] [Список вопросов]

Отвечает Andrew Vext

Приветствую Вас, Arthur!
1. Возможно, у вас не хватает видеопамяти.
2. В архиве с драйверами есть файл nv4_displ.inf, а в нём раздел nv_SoftwareDeviceSettings. Ищите там раздел относящийся к вашей видеокарте, первая TNT, например, обозначается аббревиатурой NV4. В списке NV4_MODES просто удаляете ненужные значения. Например, оригинальная запись выглядит так:
HKR,, NV4_Modes, %REG_SZ_APPEND%, "16 640 480 60 70 72 75 85 100 120 0"
Приводим её в такой вид:
HKR,, NV4_Modes, %REG_SZ_APPEND%, "16 640 480 100 120 0"
И всё, теперь ваша видеокарта физически не сможет работать в разрешении 640*480 с глубиной цвета 16 бит с Refresh rate меньше, чем 100 герц в любых программах. После этого нужно всего лишь переустановить драйверы с измененным nv4_displ.inf.


Ответ отправлен: 17.12.2002, 17:36
Отправитель: Andrew Vext


Отвечает Dark_Lord

Добрый день, Arthur!
2) Это происхадит потому, что настройки 3D хранятся отдельно от настроек 2d разрешений экрана. Все они могут быть выставлены при помощи специальных программ!

Ответ отправлен: 19.12.2002, 18:50
Отправитель: Dark_Lord


Отвечает Bob Johnson

Добрый день, Arthur!
2. Если у тебя ХР/2000 - то это стандартная проблема. Проги и DX берут первый режим из списка - а он как раз 60 HZ. Для борьбы с этим есть NVRefreshFix от NVidia и RivaTuner, который тоже умеет это делать. Можешь и руками - просто удаляешь режимы, которые соответствуют 60 Hz. Или можешь inf от монитора подпатчить и написать там, что минимальная Vertical refresh = 85 Hz, а в настройках дисплея установить "Скрыть режимы, которые монитор не может использовать", только так не будут работать большие разрешения.


Ответ отправлен: 18.12.2002, 18:17
Отправитель: Bob Johnson


 Вопрос № 2180

Хай всем экспертам и челу Fray.
Прикольная прога в приложении. Интересно, у кого есть идеи по тому, как обойтись без макроса, а то с ним прога действительно набухает.
К Fray: лично я тебя понимаю, у меня сейчас почти то же самое. Только ничего особо крутого на C++ я не писал. После асма от с++ иногда просто тошнит.
koolkhel@mail.ru.


Приложение:


Вопрос отправлен: 17.12.2002, 18:00
Отправитель: Bitterman (koolkhel@mail.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Здравствуйте, Bitterman!
Да уж... А нафига так?
Вот смотри в приложении - твоя прога чуть-чуть пооптимизированная. Если что непонятно - пиши.

Приложение:

Ответ отправлен: 17.12.2002, 18:40
Отправитель: Ayl


Отвечает Traish

Добрый день, Bitterman!
Я не понял зачем понадобилось использовать макрос для вывода каждого символа. Можно ведь просто скопировать строку или, если тебе уж так хочется, заменить макрос процедурой.


Ответ отправлен: 17.12.2002, 19:46
Отправитель: Traish


Отвечает VicSimon

Приветствую Вас, Bitterman!
Можно попробовать так:
cseg segment
org 100h
begin:
assume cs:cseg, ds:cseg, ss:cseg
; es:di будет указывать на видеопамять
push 0b800h
pop es
xor bx, bx
mov di, bx
; сохраним di для последующей очистки экрана
push di
; Вырубим курсор
mov ah, 1
mov ch, 20h
int 10h
; Вывод строки 'Hello'
mov ah, attr
push cs
pop ds
mov si, offset Hello
mov cx, 5
out_str:
lodsb
stosw
loop out_str
; Ждем нажатия кнопки
xor ax, ax
int 16h
; Очищаем экран
mov ax, 0720h ; al = ' ', ah = 111b
mov cx, 4000
pop di
rep stosw
; Выход
int 20h
Hello db 'Hello'
cseg ends
end begin

Ответ отправлен: 18.12.2002, 05:50
Отправитель: VicSimon


Отвечает Bob Johnson

Добрый день, Bitterman!
1. Если ты выводишь символы подряд, напиши процедуру, которая будет это делать, типа print. Она может последовательно увеличивать адрес в видеопамяти.
> После асма от с++ иногда просто тошнит
??? курить-то бросайте... С++ руль, и это обоснованно. Вот VB... Да и VB для чего-то приколен.


Ответ отправлен: 18.12.2002, 18:17
Отправитель: Bob Johnson


 Вопрос № 2181

Хай, Ayl!
Пасиба, что немного поморочился. Я в принципе так и думал. Просто я только пытаюсь изучать асм и решил делать так, чтоб видно сразу было для меня что прога делает. Ты её ужал в два раза - спасибо, работает. Только на моём моне вторая "l" как и в моём варианте почему-то на пиксель выше... Макрос для вывода одного символа я-то писал, но его лучше будет оформить в виде функции, т.к. в моих планах что-то типа интерпретатора с более-менее интерфейсом, а в нём такая фигня часто нужна будет. Мыла твоего я не видел, потому пишу в факью. Спасибо за внимание.


Приложение:


Вопрос отправлен: 17.12.2002, 20:40
Отправитель: Bitterman

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Доброе время суток, Bitterman!
Выше... Хм... Это, батенька, не выше, а оптический обман зрения. Можешь запустить прогу из Приложения. Она сначала выводит 15 экранов, заполненных символом 'l' разных цветов, а потом заполняет экран с изменением цвета буквы для каждой позиции. Вот там очень хорошо виден этот эффект.
Дело в том, что, как пишут в умных книжках, более яркие точки выглядят "полнее", нежели менее яркие. Причем жта полнота распространяется вниз. Соответственно, яркий символ будет выглядить немного толще и сдвинутым вниз по отношению к неяркому.
Именно поэтому в профессиональных шрифтах применяют различные ухищрения для избежания этого и некоторых других эффектов. Например, небольшое уменьшение высоты для символов с закругленными верхними и нижними частями (типа 'о', 'е' и т.п.).
А в текстовом режиме используется матричный шрифт. Он описывает каждую точку символа, а не его форму. Так что этого эффекта избежать не удасться. Кроме аккуратного подбора цветов символов.
Кстати, по поводу вывода на экран. Лучше всего сохранять смещение в видеобуфере, а не заниматься каждый раз его вычислением по координатам. И хранить его лучше всего в регистре di - тогда можно использовать команды семейства stos для отображения символов.
Для перемещения по тексту используй выражения:
1. inc di
inc di - для следующего символа (переход в начало следующей строки при достижении правого края экрана)
2. dec di
dec di - для предыдущего символа (переход в конец предыдущей строки при достижении левого края экрана)
3. add di, 160 - переход на следующую строку
4. sub di, 160 - переход на предыдущую строку
Насчет мыла - ayl@kot.spb.ru


Приложение:

Ответ отправлен: 18.12.2002, 11:53
Отправитель: Ayl


 Вопрос № 2182

Здравствуйте!
Может есть у кого-нибудь готовый скелет для резедента. Т.е. пару процедур(макросов) перехватывающих стандартные(любые) прерывания, загрузка/выгрузка/проверка... Я искал в нете - все лажа. Сам попытался создать - не лучше. Не могу до конца все продумать.
P.S. Если что-то есть - шлите, жду.



Вопрос отправлен: 17.12.2002, 21:00
Отправитель: Илья (b.i@date.by)

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Добрый день, Илья!
Лови шаблон.

Приложение:

Ответ отправлен: 18.12.2002, 13:40
Отправитель: Ayl


Отвечает Eugene

Здравствуйте, Илья!
Лови, скелет сам должен установиться, а при повторном запуске удалиться из памяти. Выдрал из действующей прожки, так что может быть чего-то выдрал замного и может глючить, но на первый взгляд выглядит без ошибок.

Приложение:

Ответ отправлен: 18.12.2002, 10:57
Отправитель: Eugene


Отвечает Maverick

Доброе время суток, Илья!
Ну, у Калашникова же нормальный.
Выкинь все понты, отдели кожу, мясо и будет скелет резидента.


Ответ отправлен: 20.12.2002, 05:02
Отправитель: Maverick


 Вопрос № 2183

Привет!
Сразу извеняюсь, но писать больше некуда, да и срочно это. Тут девушке моей понадобилось курсовик написать на паскале ну я и написал. А вот как скомпилировать его не знаю, а ей нужен exe-шник. Нажимаю Compile, Build, а резултата нет. В Паскале не программил уже фиг знает сколько лет. Помогите, пожайлуста. Еще раз извиняюсь!



Вопрос отправлен: 18.12.2002, 03:46
Отправитель: Vovik

[Следующий вопрос >>] [Список вопросов]

Отвечает Александр

Приветствую Вас, Vovik!
Если ты пытаешься компилить в Turbo Pascal'е любой версии, то надо вначале установить чтобы он компилировал на диск. А то он по умолчанию компилит в память. Compile->Target Disk.

Ответ отправлен: 18.12.2002, 14:17
Отправитель: Александр


Отвечает Bob Johnson

Здравствуйте, Vovik!
Ну... Блин... Запускаешь паскаль, идешь в меню что-то типа Compile и там ставишь: Target: File (было, очевидно, target: memory). У тебя паскаль наверное турбо. Надо борланд паскаль 7.0 - там вообще нет такой проблемы.


Ответ отправлен: 19.12.2002, 22:10
Отправитель: Bob Johnson


Отвечает vitya

Добрый день, Vovik!
Скорее всего у тебя TurboPascal, там в меню Compile->target у тебя скорее всего стоит memory поменяй на диск, тогда будет генерировать exe файл.

Ответ отправлен: 18.12.2002, 08:41
Отправитель: vitya


Отвечает Eugene

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

Ответ отправлен: 18.12.2002, 11:01
Отправитель: Eugene


Отвечает Blad

Здравствуйте, Vovik!
нажмите COMPILE/Destination , чтобы слово Memory сменилось на Disk , теперь жмите Build или Make, должно появиться окно Compile succesfull: Press any key. Ищите ехе-шник в той папке, откуда был запущен Паскаль.

Ответ отправлен: 18.12.2002, 11:04
Отправитель: Blad


Отвечает baldr

Доброе время суток, Vovik!
В меню "Compile" измени параметр "Destination" со значения "Memory" на "Disk". И откомпилируй
заново. Вообще же, если задать вопрос в рассылку по Pascal, то вероятность получения правильного
ответа увеличится!


Ответ отправлен: 19.12.2002, 00:26
Отправитель: baldr


 Вопрос № 2184

Нужно повысить частоту вертикальной развертки монитора с 60 до 70-75 Гц под ОС ДОС. К каким портам обращаться? Лучше на примере.



Вопрос отправлен: 18.12.2002, 10:42
Отправитель: Leonid

[Следующий вопрос >>] [Список вопросов]

Отвечает Broken Sword

Добрый день, Leonid!
Первое - есть риск спалить монитор (особенно если это какой нить DTS 95 года, любая ошибка при установке параметров горизонтальной или вертикальной развертки может вывести из строя монитор - может сгореть блок питания или блок развертки монитора, выгореть линия или точка в центре экрана ЭЛТ и т.д.). Так что смотри.
Тебе придется программировать CRTC (контроллер ЭЛТ)
Второе - вот как это можно сделать программно:
INT 10 4F02 - VESA SuperVGA BIOS - SET SuperVGA VIDEO MODE
Inp.:
AX = 4F02h
BX = new video mode
ES:DI -> (VBE 3.0+) CRTC information block, bit mode bit 11 set (см. дальше)
Return: AL = 4Fh if function supported
AH = status
00h successful
01h failed
Notes: bit 13 may only be set if the video mode is present in the list of accelerated video modes returned by AX=4F00h
if the DAC supports both 8 bits per primary color and 6 bits, it will be reset to 6 bits after a mode set; use AX=4F08h to restore 8 bits
10 4F02 Format of VESA VBE CRTC Information Block:
Format of VESA VBE CRTC Information Block:
Offset Size Description
00h WORD total number of pixels horizontally
02h WORD horizontal sync start (in pixels)
04h WORD horizontal sync end (in pixels)
06h WORD total number of scan lines
08h WORD vertical sync start (in scan lines)
0Ah WORD vertical sync end (in scan lines)
0Ch BYTE flags (see #04084)
0Dh DWORD pixel clock, in Hz
11h WORD refresh rate, in 0.01 Hz units
this field MUST be set to pixel_clock / (HTotal * VTotal), even though it may not actually be used by the VBE implementation
13h 40 BYTEs reserved
Вот по 11h пихаешь слово (в единицах по 0,01 Гц, т.е. для 75 Гц по 11h должно находиться 1D4Ch).
90% что все это не будет работать.
Теперь, к каким портам обращаться. Конечно же, через пару портов КЭЛТ (CRTC) - 3D4h/3D5h (в 3D4 - номер регистра, а работать с ним - через 3D5)
Сразу скажу - за частоту вертикальной развертки отвечают несколько регистров: 06h, 12h, 15h, 16h. Никаких герц здесь нет. Все построено на принципе счетчиков. Как только значение регистра достигает определенного значения - происходит действие (например, обратный ход луча по кадру). Чтобы с ними смело манипулировать нужно досконально разобраться с такими понятиями, как период обратного хода луча по кадру, кол-во сканируемых вертикальных строк, переполнение КЭЛТ, начало и конец затемнения по кадру. Вообщем, целая история.
Можно вообщем то отдизасмить участок кода, который выполняет переключение частоты в ОС Win. Щас посмотрю...

Ответ отправлен: 18.12.2002, 16:47
Отправитель: Broken Sword


 Вопрос № 2187

Здравствуйте.
Подскажите что надо сделать для использование DLL написанной на ASMe в Visual C++. В VB я использую функцию используя объявление (Private Declare Function PaintBarCode Lib "c:code128.dll" (ByVal hdc As Long, ByVal lpText As String) As Long). В С линковщик говорит (unresolved external symbol _PaintBarCode). Библиотека экспорта в проект добавлена. Как справится с символом подчеркивания?



Вопрос отправлен: 18.12.2002, 14:50
Отправитель: sudv

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Доброе время суток, sudv!
Насколько я понял, тебе требуется вызвать из VC++ длл, написанную на ассемблере (хотя может быть написанна на чем угодно).
Делаешь объявление указателя на функцию:
long (*func)(HDC, LPSTR);
...
//открываешь библиотеку
HMODULE hMod = LoadLibrary("Lib.path");
if (NULL != hMod)
{
funf f = (func)GetProcAddres(hMod, "PaintBarCode");
if (NULL != f)
{
f(hDC, "My Text");
}
}
...
FreeLibrary(hMod);
//////
Вот и все.

Ответ отправлен: 18.12.2002, 15:25
Отправитель: vitya


Отвечает Bob Johnson

Приветствую Вас, sudv!
В С есть гемор с преобразованием имен. Назови свою функцию с подчеркиванием. И вообще, когда в С ее добавляешь ставь "extern С ...".
P.S. Можешь просто LoadLibrary делать и тогда сам уже функцию искать - GetProcAddress.

Ответ отправлен: 19.12.2002, 22:10
Отправитель: Bob Johnson


 Вопрос № 2188

Здравствуйте.
Есть ли способ получить список хэндлов всех окон в системе, кроме цикла с GetWindow(hWnd,GW_HWNDNEXT)?
Спасибо.



Вопрос отправлен: 18.12.2002, 14:57
Отправитель: [stl] (progressor@ngs.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает vitya

Добрый день, [stl]!
Это делается с помощью функции
BOOL EnumWindows(
WNDENUMPROC lpEnumFunc, // callback function
LPARAM lParam // application-defined value
);
Первая функция определяется, как
BOOL CALLBACK EnumWindowsProc(
HWND hwnd, // handle to parent window
LPARAM lParam // application-defined value
);
Как только система будет находить окно, она будет вызывать твою callback функцию.
Например, если, как параметер ты передал CArray *, и в фунцкция просто будет делать pArr->Add(hwnd);
, то после окончания работы EnumWindows у тебя будет массив всех хэндлов.
Удачи

Ответ отправлен: 18.12.2002, 15:14
Отправитель: vitya


Отвечает Bob Johnson

Доброе время суток, [stl]!
А вот этим циклом ты весь список не получишь! Потому что надо рекурсией, начиная от Desktop Window. По другому я не видел.


Ответ отправлен: 19.12.2002, 22:10
Отправитель: Bob Johnson


Отвечает Gibbel

Доброе время суток, [stl]!
Можешь воспользоваться функцией EnumWindows()

Ответ отправлен: 18.12.2002, 18:04
Отправитель: Gibbel



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (39)
C / C++ (30)
Perl (5)
Delphi (21)
Pascal (23)
Basic / VBA (10)
Java / JavaScript (6)
PHP (4)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (32)
Windows NT/2000/XP (26)
"Железо" (32)
Поиск информации (14)
Администратору
Windows NT/2000/XP (10)
Linux / Unix (14)
Юристу
Гражданское право (8)
Семейное право (3)
Трудовое право (5)
КоАП (2)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное