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

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


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

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

Выпуск № 397
от 22.10.2002, 10:50

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


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

Ayl
Статус: Профессиональный
Общий рейтинг: 118.04
[Подробней >>]
Eugene
Статус: Доверительный
Общий рейтинг: 115.17
[Подробней >>]
Beeblebrox
Статус: Профессиональный
Общий рейтинг: 113.73
URL: Beeblebrox / TMA HomePage
[Подробней >>]
 
oleg
Статус: Доверительный
Общий рейтинг: 148.48
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.99
[Подробней >>]
ASMодей
Статус: Профессиональный
Общий рейтинг: 121.96
[Подробней >>]
 
masquer
Статус: Профессиональный
Общий рейтинг: 154.97
[Подробней >>]
freeseacher
Статус: Опытный
Общий рейтинг: 106.36
Телефон: 8(3832)366362
[Подробней >>]
Supra
Статус: Начальный
Общий рейтинг: 105.76
[Подробней >>]
 
St
Статус: Доверительный
Общий рейтинг: 114.28
[Подробней >>]
igorash
Статус: Профессиональный
Общий рейтинг: 118.4
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 115.44
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 131.71
URL: моя рассылка по Protected Mode
[Подробней >>]
Sensey
Статус: Профессиональный
Общий рейтинг: 124.75
URL: Страничка рассылки по Паскаля...
Телефон: +38 (0572) 41-76-04 дом.
[Подробней >>]
Portnov
Статус: Профессиональный
Общий рейтинг: 118.95
URL: Мой сайтик...
[Подробней >>]
 
DiGiT[old]
Статус: Опытный
Общий рейтинг: 109.2
[Подробней >>]


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

Вопрос № 1537. Привет всем! Помогите пожалуйста зделать чтоб рожа в моей проге(см.ниже) не затерала рамки. Спасибо... (ответов: 6)
Вопрос № 1538. Извините, я не эксперт, и это не дисскуссия по винапи, но я случайно увидел Вопрос № 1475 про безок... (ответов: 2)
Вопрос № 1539. Всем здрасте! ОГРОМНОЕ СПАСИБО эксперту Masquer за ответ на мой прошлый вопрос! Щас у меня такая про... (ответов: 1)
Вопрос № 1540. Извините, может вопрос уже бонален, но я не могу найти нигде архив рассылки Олега Калашникова, Ассем... (ответов: 2)
Вопрос № 1541. Всем добрый день. Я благодарен за ответы, которые получил по своему предыдущему вопросу о выводе соо... (ответов: 4)
Вопрос № 1542. Привет masquer! К сожалению ваша строка invoke AdjustTokenPrivileges, hToken, FALSE, ADDR NewState,... (ответов: 1)
Вопрос № 1543. Здравствуйте! Проcил выслать мне на mail инфу по программированию на Asm. Никто ничего не выслал.Пр... (ответов: 5)
Вопрос № 1545. люди!!!!! Клиент-серверные приложения на асме????, Это возможно,...если да,...то поделитесь как...... (ответов: 4)
Вопрос № 1546. форматирование жесткого диска, как можно написать свою прогу,??? И через что она работает????, Помни... (ответов: 3)

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


 Вопрос № 1537

Привет всем!
Помогите пожалуйста зделать чтоб рожа в моей проге(см.ниже) не затерала рамки.
Спасибо!
З.Ы.
Это программа должна вывести рожу на экран которой можно управлять при помощи стрелок.


Приложение:


Вопрос отправлен: 17.10.2002, 14:52
Отправитель: R@ptor (Spinosaur@narod.ru)

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

Отвечает Ayl

Добрый день, R@ptor!
Надо либо ставить проверки на достожение рамок (тогда "рожица" не будет вообще на них наезжать), либо при перемещении сохранять символ в новой позиции и восстанавливать символ в старой позиции.
Смысл полного копирования экрана я так и не понял. Зачем?
Перемещение тоже сделано не оптимально - можно выделить только изменяющие координаты части условий, а перемещение делать общим кодом.
В приложении программа, которая позволяет двигать "рожицу" с учетом границ экрана, запоминая и восстанавливая символ "под собой". Если что непонятно - спрашивай, отвечу.

Приложение:

Ответ отправлен: 17.10.2002, 16:54
Отправитель: Ayl


Отвечает Eugene

Доброе время суток, R@ptor!
Я немножко переработал твой проджект.
Я так и не разобрался, зачем ты наклепал функции Save и Restore. У меня ещё курсор бегал через одну клетку. И клавишу ESC ты не правильно проверял.
И ещё - ты мне прислал персональный вопрос. Так меньше шансов, что тебе придёт ответ. Шли вопрос в группу.

Приложение:

Ответ отправлен: 17.10.2002, 17:04
Отправитель: Eugene


Отвечает Beeblebrox

Приветствую Вас, R@ptor!
Вот что у меня получилось, грубо и неоптимально, зато работает

Приложение:

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


Отвечает oleg

Дмюоме аоекз ъяпми, R@ptor!
Уцаулу ,лм мъмюм нмич ъудепщ у очцюуочпщ а депчйзс номжя аоекелу ле мбелщ, лч очюмпе цчжояцуйу.
Лч неоаьх ацжйзд леп рялифуу ъмсочлелуз оетукч ъмъпмзлуз ноедьдяшех цчдчбу ъм аъеку нчочкепочку у рйчжчку. Дчйее ноу цчнуъу ъмсочлелуз ъмъпзлуз, тейчпейщлм уънмйщцмачпщ юймиуомаия ноеоьачлух у пяп те нмъйе ъмсочлелуз амъъпчлмаупщ, смпз ыпм дейчпщ ле мюзцчпейщлм.Уйу уънмйщцях оетук неоедчбу нчочкепома нм ъуъпеклмкя пчхкеоя.
етейу бчам пм лч http://ap.diaspora.ru/cgi-bin/down.pl?action=show_file&show_file_file=asm32/index

Ответ отправлен: 17.10.2002, 19:37
Отправитель: oleg


Отвечает Bob Johnson

Доброе время суток, R@ptor!
А зачем тебе сохранять весь экран???
Сохраняй только то, что находится "под" твоей рожей - т.е. 1 символ. И когда должно произойти перемещение, восстанавливай по старым координатам этот символ.
P.S. Если уж решил сохранять весь экран, то лучше в обычную память, а не по 0B900h.


Ответ отправлен: 18.10.2002, 01:48
Отправитель: Bob Johnson


Отвечает ASMодей

Доброе время суток, R@ptor!
Введи координаты твоей рожицы и проверяй их при каждом
перемещении. Если они достигнут границы, то перескакивай
через нее.


Ответ отправлен: 18.10.2002, 09:24
Отправитель: ASMодей


 Вопрос № 1538

Извините, я не эксперт, и это не дисскуссия по винапи, но я случайно увидел Вопрос № 1475
про безоконный таймер, на который в свое время придумал ответ. Фишка в том, что для обработки WM_TIMER предусмотрен обработчик, отличный от обработчика окна.
Вот класс, который дергает сам себя по таймеру(HWND не нужно):

class KTimerClass
{
UINT TimerID;
public:
static VOID CALLBACK TimerProcHandler(HWND hwnd, UINT uMsg, UINT idEvent, DWORD dwTime);
KTimerClass::~KTimerClass();
KTimerClass::KTimerClass(const DWORD& t);
};
KTimerClass::KTimerClass(const DWORD& t)
{
TimerID = ::SetTimer(NULL, 0, t,
(TIMERPROC)&KTimerClass::TimerProcHandler);
}
KTimerClass::~KTimerClass()
{
::KillTimer(NULL, KTimerClass::TimerID);
}
VOID CALLBACK KTimerClass::TimerProcHandler(HWND, UINT, UINT , DWORD dwTime)
{
// А вот здесь мы как раз срабатывания таймера и ловим
}

Еще раз простите, что не в тему.



Вопрос отправлен: 17.10.2002, 15:18
Отправитель: Евгений Коломеец

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

Отвечает Ayl

Приветствую Вас, Евгений Коломеец!
Похоже, что я первый среагировал, так что отправляю в рассылку...

Ответ отправлен: 17.10.2002, 15:32
Отправитель: Ayl


Отвечает Bob Johnson

Доброе время суток, Евгений Коломеец!
Очень странно...
Как я понял из MSDN, все равно нужно окно...
Но твой пример действительно работает.
Спасибо, буду знать.


Ответ отправлен: 18.10.2002, 01:48
Отправитель: Bob Johnson


 Вопрос № 1539

Всем здрасте!
ОГРОМНОЕ СПАСИБО эксперту Masquer за ответ на мой прошлый вопрос! Щас у меня такая проблема. Есть тривиальная прога на асме под винды - вывод мессажбокса с текстом и загаловком ну и кнопкой ОК(это прога из IZTUTE02). Заружаю в сайс код-INVALID, нажимаю F8 попадаю на вторую команду проги, как мне до этого увидеть эту команду? И самое главное прога заталкивает параметры в стек, среди них ксть загаловок окна (например push [00403000] ). Пишу db 403000 в дампе памяти вместо данных одни ВОПРОСЫ. ПОСЛЕ вызова MessageBox в дампе ВИДНЫ данные. Как мне видеть вместо вопросов данные до вызова процедур???
Помогите.



Вопрос отправлен: 17.10.2002, 16:13
Отправитель: Kiselev

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

Отвечает masquer

Добрый день, Kiselev!
Опять же, эти данны могут быть еще не инициализированны. А чтобы стек посмотреть d esp жми.

Ответ отправлен: 17.10.2002, 17:08
Отправитель: masquer


 Вопрос № 1540

Извините, может вопрос уже бонален, но я не могу найти нигде архив рассылки Олега Калашникова, Ассемблер? Это просто! Учимся программировать. Эту рассылку ещё в виде кники в ворде делали. И по настоящий момент. А то на скрайбс.ру неудобный архив совсем.
Спасибо.



Вопрос отправлен: 17.10.2002, 16:20
Отправитель: Andrey

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

Отвечает freeseacher

Приветствую Вас, Andrey!
Смотри форум тама даже подфорум такой есть!


Ответ отправлен: 18.10.2002, 16:11
Отправитель: freeseacher


Отвечает Supra

Здравствуйте, Andrey!
asm.kalashnikoff.ru


Ответ отправлен: 18.10.2002, 17:36
Отправитель: Supra


 Вопрос № 1541

Всем добрый день. Я благодарен за ответы, которые получил по своему предыдущему вопросу о выводе сообщения поверх всех окон. Боюсь, я неправильно высказался в прошлый раз. Я понимаю, что у мониторов есть своя ОС, которая и выводит меню и которую никак не перепрограммируешь. Сравнение с таким меню я привел для того, чтобы сказать, что это должно быть за сообщение... <<<<<<< Оно должно быть поверх всего в Win32. >>>>>>> Вот что мне надо. То есть видно его должно быть даже в играх, использующих Direct3D и OpenGL. Именно так делает программа FRAPS (http://www.fraps.com). Меня устроят ВСЕ возможные варианты. Если кто знает что-нибудь полезное - ПоЖаЛуЙсТа напишите. Отдельное спасибо эксперту Igorash за то, что больше всех возился с моей проблемой, а также Biv за присланную инфу по программированию портов и прерываниям BIOS... Полезного я там пока ничего не нашел и не думаю, что найду, т. к. программа должна быть под Win98...
С уважением, Nex
nex@kor.kes.ru
http://www.kizernis.com



Вопрос отправлен: 17.10.2002, 16:48
Отправитель: Nex (nex@kor.kes.ru)

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

Отвечает Bob Johnson

Доброе время суток, Nex!
В принципе, я не знаю, как на 100% красиво выполнить то, что тебе нужно, но - посмотрел ответы, вижу, что нет ничего конкретного.
Я заметил такую вещь - если у тебя есть окно "WS_EX_TOPMOST", то оно всегда находится на экране (даже когда работает игра), только почему-то на него сверху выводится вся графика, которая должна выводиться под ним. Поэтому вариант - создаешь такое окно, выводишь его на экран и тормозишь весь компьютер (или только процесс, которому принадлежит окно под твоим). Этого должно хватить. Когда пользователь закроет твое окно - обратно "растормаживаешь" процесс.


Ответ отправлен: 18.10.2002, 23:34
Отправитель: Bob Johnson


Отвечает St

Привет, Nex!
Я не знаю что вам советовали другие эксперты, но может быть это как нибудь возможно при использовании оверлея?
St


Ответ отправлен: 17.10.2002, 17:25
Отправитель: St


Отвечает igorash

Здравствуйте, Nex!
Да в принципе не за что :))
Кстати у мениторов своей ОСи нету, это тебя обманули тогда, а OSD это On Screen Display если не ошибаюсь, а вся эта хрень - это просто железяка способная че-то выводить на экран (на самом примитивном уровне) не стоит наверно говорить что у всех устройств, у которых есть цифровые экраны есть своя ось :)))


Ответ отправлен: 18.10.2002, 00:40
Отправитель: igorash


Отвечает baldr

Приветствую Вас, Nex!
Могу посоветовать тебе написать свой драйвер к мониторе или видеокарте. Тут тебе и понадобится инфа по портам и прерываниям... Только не BIOS, а твоей видеокарточки... Пишешь vxd-дряйвер, а он исполняется с нулевым приоритетом и все выводится на экран через него.

Ответ отправлен: 18.10.2002, 11:13
Отправитель: baldr


 Вопрос № 1542

Привет masquer!
К сожалению ваша строка
invoke AdjustTokenPrivileges, hToken, FALSE, ADDR NewState, sizeof TOKEN_PRIVILEGES, 0, 0
тоже не помогла, но дала правильное направление моим попыткам. Сработала такая строка
invoke AdjustTokenPrivileges, hToken, FALSE, ADDR tp, sizeof old_tp,ADDR old_tp, ADDR old_tp_buff_need
Спасибо за помощь!
St



Вопрос отправлен: 17.10.2002, 17:30
Отправитель: St (st23@yandex.ru)

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

Отвечает masquer

Приветствую Вас, St!
NewState это и есть tp - разные исходники - по разному и пишу :)

Ответ отправлен: 17.10.2002, 17:43
Отправитель: masquer


 Вопрос № 1543

Здравствуйте!
Проcил выслать мне на mail инфу по программированию на Asm.
Никто ничего не выслал.Прошу повторно. Ящик у меня на 50 метров.Подойдет любая информация на русском языке.
Заранее благодарен.
P.s http://netlib.wallst.ru/ - здесь скоро будет электронная версия книги зубкова.



Вопрос отправлен: 17.10.2002, 18:34
Отправитель: Noid (mudvayne@mail2k.ru)

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

Отвечает Broken Sword

Здравствуйте, Noid!
А не боишься что посадют? )

Ответ отправлен: 17.10.2002, 21:56
Отправитель: Broken Sword


Отвечает freeseacher

Приветствую Вас, Noid!
то что у тя ящик на 50 метров не значит что я Должен послать туда 50 Мб инфы по асму! У мя есть ящик на 250 мб причем халявный. Так что если хочешь похвастаться.... :)
Инфу по асму лучше собирать самому. по сайтам
www.wasm.ru
www.reversing.net
www.movsd.com
и самый важный ya.ru

Ответ отправлен: 18.10.2002, 16:11
Отправитель: freeseacher


Отвечает oleg

Дмюоьх делщ, Noid!
http://ap.diaspora.ru/cgi-bin/down.pl
Ч нмъйе ймау нчоелщ лч ъамек кьйе. ПМикм ле ттяту.


Ответ отправлен: 17.10.2002, 18:54
Отправитель: oleg


Отвечает Sensey

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


Ответ отправлен: 17.10.2002, 18:57
Отправитель: Sensey


Отвечает Portnov

Добрый день, Noid!
Ну, держите вот...
PS. про Зубкова - спасибо, будем ждать... :)

Ответ отправлен: 17.10.2002, 20:13
Отправитель: Portnov


 Вопрос № 1545

люди!!!!! Клиент-серверные приложения на асме????,
Это возможно,...если да,...то поделитесь как...



Вопрос отправлен: 17.10.2002, 21:42
Отправитель: ___13___

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

Отвечает Bob Johnson

Здравствуйте, ___13___!
Если под Windows - то вполне. Для этого существуют WinSocket, которые позволяют всего с помощью нескольких вызовов функций осуществить передачу данных между двумя компами по TCP/IP (и не только). См. MSDN и примеры из него.
Если же тебе надо под ДОС - то это тоже возможно. Но тут уже нужно изучать сетевые функции ДОС.


Ответ отправлен: 18.10.2002, 13:33
Отправитель: Bob Johnson


Отвечает baldr

Здравствуйте, ___13___!
Посмотри на www.wasm.ru

Ответ отправлен: 18.10.2002, 14:27
Отправитель: baldr


Отвечает DiGiT[old]

Добрый день, ___13___!
А зачем оно спрашивается. Ну можно например под винды. Но основной код у тебя будет вызов АПИ сокетов. Напиши на сях и не мучься.

Ответ отправлен: 18.10.2002, 03:22
Отправитель: DiGiT[old]


Отвечает oleg

Добрый день, ___13__
Можно но муторно и долго.
Ежли хотелка пашет, возьми исходники из FreeBSD ее реализация этих протоколов считается идеалом, скомпиляй и дизасембли, Ну а дальше сиди читай и мысли.

Ответ отправлен: 18.10.2002, 11:06
Отправитель: oleg


 Вопрос № 1546

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



Вопрос отправлен: 17.10.2002, 21:44
Отправитель: ___13___

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

Отвечает Bob Johnson

Здравствуйте, ___13___!
Если твоя задача носит чисто практический характер - т.е. тебе надо отформатировать винт низким уровнем, то у меня есть утилитка, которая это делает. Если нужна - пиши.
Если же хочешь узнать, как это - можешь ее дизасемблернуть. Она не очень большая (40кб). Называется lf.exe.


Ответ отправлен: 18.10.2002, 13:34
Отправитель: Bob Johnson


Отвечает Supra

Здравствуйте, ___13___!
Используйте INT 13H: Дисковый ввод-вывод
В АН Подфункции:
00H сброс контроллера 01H дать статус 02H читать секторы
03H писать секторы 04H верификация 05H форматир дорожку
08H дать парам диска 09H иниц табл парам 0aH длинное чтение
0bH длинная запись 0cH искать цилиндр 0dH альтерн сброс
10H проверить готовность 11H рекалибрация 14H диагностика
15H дать тип диска 16H изменить статус 17H уст тип диска
DL = номер диска (0=диск A...; 80H=тв.диск 0; 81H=тв.диск 1)
DH = номер головки чтения/записи
CH = номер дорожки (цилиндра)(0-n) -+
CL = номер сектора (1-n) -------------- См. замечание ниже.
AL = число секторов (в сумме не больше чем один цилиндр)
ES:BX => адрес буфера вызывающей программы
0:0078 => Таблица параметров дискеты (для гибких дисков)
0:0104 => Таблица параметров тв.диска (для твердых дисков)


Ответ отправлен: 18.10.2002, 17:29
Отправитель: Supra


Отвечает oleg

Здравствуйте, ___13___!
Не лезь туды. Все делается через контроллер дисковода.
А производитель эти команды низкоуровнего форматирования не выдает на широкую публику и ПРАВИЛЬНО делает.
А стандартную прогу написать можно. Почитай книжку программирование дисковых систем.

Ответ отправлен: 18.10.2002, 11:03
Отправитель: oleg



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

Внимание!
Форма может работать некорректно в почтовых программах "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 (42)
C / C++ (26)
Perl (4)
Delphi (18)
Pascal (25)
Basic / VBA (9)
Java / JavaScript (10)
PHP (7)
MySQL / MSSQL (11)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (22)
"Железо" (31)
Поиск информации (13)
Администратору
Windows NT/2000/XP (11)
Linux / Unix (12)
Юристу
Гражданское право (8)
Семейное право (6)
Трудовое право (5)
КоАП (7)

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




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

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


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

В избранное