Рассылка закрыта
При закрытии подписчики были переданы в рассылку "RFpro.ru: Ассемблер? Это просто! Учимся программировать" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
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.
Вопрос и дополнение |
Ваш вопрос:
Приложение (если необходимо):
Получить ответов:
Выбор рассылки |
Программисту 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 |
Отписаться
Убрать рекламу |
В избранное | ||