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

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


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

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

Выпуск № 576
от 23.06.2003, 22:30

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


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

masquer
Статус: Профессиональный
Общий рейтинг: 137.37
[Подробней >>]
Hayk
Статус: Опытный
Общий рейтинг: 113.45
URL: Perosnal Web Page which has been created long ago.
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 112.36
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
Ramzes
Статус: Профессиональный
Общий рейтинг: 125.37
URL: Microsoft homepage
[Подробней >>]
Дмитрий
Статус: Профессиональный
Общий рейтинг: 139.08
[Подробней >>]
Hangatyr
Статус: Опытный
Общий рейтинг: 114.98
[Подробней >>]
 
St
Статус: Опытный
Общий рейтинг: 107.65
[Подробней >>]
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 151.9
URL: Программирование
[Подробней >>]
Tigran K. Kalaidjian
Статус: Профессиональный
Общий рейтинг: 119.35
URL: Методы оптимизации работы ПК
[Подробней >>]
 
GL
Статус: Опытный
Общий рейтинг: 102.79
[Подробней >>]
Broken Sword
Статус: Профессиональный
Общий рейтинг: 122.02
URL: мой сайт
[Подробней >>]


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

Вопрос № 3512. Просьба к профи в прог-и под Win32 на aсме. В моей коллекции пока один такой: "/MERGE:.data=.te... (ответов: 2)
Вопрос № 3513. Привет masquer и baldr У меня стоит CALL SetThreadPriority, TICK_COUNT_THREAD_HANDLE, THREAD_PRIORI... (ответов: 2)
Вопрос № 3514. Уважаемые эксперты, естьт ли функции которые сканируют порты на открытость или закрытось, и как их о... (ответов: 4)
Вопрос № 3515. Уважаемый эксперт, если вы писали такую программу то не могли бы вы прислатьт мне исходник или чтото... (ответов: 1)
Вопрос № 3516. Привет Bob Johnson и masquer Bob Johnson: Попробовал вашу идею - заменил GetTickCount на timeGetTime... (ответов: 1)
Вопрос № 3517. Уважаемые программисты ! Я тут ваще запутался, помогите разобраться, plz. Недавно сбабацал программк... (ответов: 1)
Вопрос № 3520. Добрый день ! В связи с огромным количеством писем, поступающим на RusFAQ.ru от пользователей, желаю... (ответов: 3)
Вопрос № 3521. Здравствуйте, Bob Johnson! Недавно на RusFaq я спрашивал как сделать инсталлятор. Вопрос по этой ... (ответов: 1)
Вопрос № 3522. Уважаемые эксперты! (а особенно Дмитрий и Hayk) Скажите пожалуйста, где вообще можно прочитать про р... (ответов: 5)
Вопрос № 3523. А как быть с асмом под Линух?... (ответов: 3)
Вопрос № 3524. Еще вопрос, был такой сайт asm.kalashnikoff.ru Я не бывал на нем нек время, и ....( куда он перебра... (ответов: 3)

Вопросов: 11, ответов: 26


 Вопрос № 3512

Просьба к профи в прог-и под Win32 на aсме.
В моей коллекции пока один такой:
"/MERGE:.data=.text /MERGE:.rdata=.text
/SECTION:.text,ERW и забываешь про всякие тонкости, единственно
ебламывает - если сливать с .data то глобальные неинициализированные
массивы могут встать в середину проги и размер выйдет нехилый - учимся
юзать локальные массивы и переменные :)"
Подкиньте подобные штучки, если не трудно, например:
/ALIGN:512 - минимальный размер проги, но скорость... (и т.п.)
/HEAP:....
Думаю, не только мне будет интересно, а всем начинающим в Win32.



Вопрос отправлен: 18.06.2003, 17:49
Отправитель: nik

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

Отвечает masquer

Доброе время суток, nik!
Ну, если действительно ебламывает, то я бы не советовал не зная к чему это приведет, ковырятся с настройками линкера и сливать секции безо всякого на то основания. Все описания есть в MSDN, лучше почитать и три раза подумать - а стоит ли?

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


Отвечает Hayk

Добрый день, nik!
MSDN 6.0 July 2001
Visual Tools and languages//Visual Studio 6.0 Documantation//Visual C++ Documantation//Using Visual C++//Visual C++ Programmer's Guide//Compiling and linking//Details//Linker reference

Ответ отправлен: 19.06.2003, 09:37
Отправитель: Hayk


 Вопрос № 3513

Привет masquer и baldr
У меня стоит
CALL SetThreadPriority, TICK_COUNT_THREAD_HANDLE, THREAD_PRIORITY_HIGHEST
Вы имеете в виду THREAD_PRIORITY_TIME_CRITICAL для потока и REALTIME_PRIORITY_CLASS для процесса? Проверил, ничего не изменилось. Я понимаю, если бы система не могла вытянуть 100 кадров, но она может!!! Но она при увеличении задержки всего на 1 мс (до 11) сбрасывает скорость вдвое и держит ее такой при дальнейшем увеличении задержки, причем так поступает в Win2000 (вообще скорость меняется как бы ступеньками). В Win95 тоже не все хорошо, но 70 вместо 90 лучше чем 50, да и дальше скорость можно менять плавнее.
St



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

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

Отвечает masquer

Доброе время суток, St!
Не совсем понятно, в чем именно проблема, просто в обычном режиме (типа того, за которым user32 gdi32 отвечают) может и не быть такой частоты, да и не понятно, как именно ты меряешь. А если в режиме DirectX, то это совсем другая песня, там свои правила игры :)

Ответ отправлен: 18.06.2003, 19:09
Отправитель: masquer


Отвечает baldr

Доброе время суток, St!
У меня примерно такая же прога - но на C++. В реальном времени с частотой, примерно, 200-400 Гц считываются данные с устройства и выводятся на экран. Экран каждый цикл сдвигается на на несколько пикселов... Система - W98, P II 200 (кажется..). В принципе, на 200 Гц работает нормально, а вот после 300 - есть очень высокая вероятность, что стек переполнится и все на%#@ повиснет. Причем, желательно все проги типа Winamp и подобные (юзающие таймер с высокой частотой) выключать.
Частота достигается вызовом callback-функции спец. классом таймера... Никаких потоков и приоритетов...

Ответ отправлен: 18.06.2003, 20:12
Отправитель: baldr


 Вопрос № 3514

Уважаемые эксперты, естьт ли функции которые сканируют порты на открытость или закрытось, и как их открывать и закрывать.
Есть ли эти функции в Win DLL или их нужно писать самому?
И нет ли у кого исходников програм для работы с сетью, типа Chat, или какие нибубд другие!!!
И ещё, каждый эксперт отвечает по своему, и почти к каждому у меня возникают вопросы, не могли бы вы прислать свои
E-mail-ы, обещаю письмами сильно валить не буду!!!



Вопрос отправлен: 18.06.2003, 18:23
Отправитель: Ujin (twixt@rambler.ru)

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

Отвечает Ramzes

Здравствуйте, Ujin!
Таких функций нет. Надо писать самому.
Ставишь сокет и по очереди пытаешся подконнектиться ко всем портам данного компа (1 - 65536). Если соединение устонавливается, то порт открыт, в обратном случае - закрыт.
e-mail каждого эксперта есть в рассылке

Ответ отправлен: 19.06.2003, 10:31
Отправитель: Ramzes


Отвечает baldr

Добрый день, Ujin!
Исходники ищи на sources.ru. Функций таких нет, но можно такую прогу написать самому. Помнится, в одном из номеров журнала "Хакер" такая прога приводилась. Правда, на delphi, но там все с сокетами - аналогично.
Мыло не дам - можешь поискать сам - найдешь. Впрочем, на эту тему я ничего больше предложить, наверное, не смогу. :(

Ответ отправлен: 18.06.2003, 20:15
Отправитель: baldr


Отвечает Дмитрий

Приветствую Вас, Ujin!
Таких функций нет. Сканирование можно осуществить многими способами. Самый простой (и самый долгий): посылаешь на какой-либо порт ping-запрос и ждешь ответа. Если по истечении некоторого времени ответа нет, значит порт закрыт. И все! Перебираешь последовательно все порты. Исходник сканера портов у меня есть, но только для Java. На других языках я под винду не пишу (к сожалению). А на счет Chat'а все просто. Устанавливаешь соединение по какому-либо порту и выплевываешь туда то, что нужно. Если на другом конце сидит твоя прога, то она должна "слушать эфир" отлавливая сообщения, распечатывать их на экране.

Ответ отправлен: 19.06.2003, 06:44
Отправитель: Дмитрий


Отвечает Hangatyr

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


Ответ отправлен: 19.06.2003, 14:46
Отправитель: Hangatyr


 Вопрос № 3515

Уважаемый эксперт, если вы писали такую программу то не могли бы вы прислатьт мне исходник или чтото типа help-a, для работы с сетью!
И ещё один вопрос API функции что это(что они из себя представляют), и можно ли писатьт свои API функции.
И что такое MailSlot



Вопрос отправлен: 18.06.2003, 18:29
Отправитель: twixt

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

Отвечает St

Привет, twixt!
Функции API - это функции написанные неким производителем систем или оборудования и обеспечивающие удобство програмирования. Так что если вы напишете например свою систему или некую программу к которой смогут писать дополнения другие люди, то вы конечно обязаны будете предоставить им набор функций для доступа к вашему творению :). Так что если вы пишете некоторую функцию для своей программы она не явлается функцией API.
Исходник программы посылать глупо, вряд-ли вы разберетесь, я сам часто с трудом вспоминаю что и зачем было сделано, а комментарии пишу только самые важные.
Кидаю вам кусочек попробуйте что-нибудь понять, а дальше читайте в Win32.hlp или MSDN описание тех функций которые там увидете.
St

Приложение:

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


 Вопрос № 3516

Привет Bob Johnson и masquer
Bob Johnson:
Попробовал вашу идею - заменил GetTickCount на timeGetTime ничего не изменилось. Может проблема связана с недостаточной точностью Sleep? Такое впечатление что его точность в Win2000 кратна 10 мс: я могу получить только скорость 99, 50, 33, 25 и никакие другие. Установка Sleep 12 вместо 1, 5, 10 сразу сбрасывает скорость с 99 в 50. В Win98 похоже Sleep несколько точнее.
Известно ли вам что нибудь по этому поводу? Можете что нибудь сказать о CreateWaitableTimer/SetWaitableTimer?
masquer
Считаю просто - сколько происходит циклов сдвига экрана функцией ScrollWindowEx (спасибо Bob Johnson за подсказку этой функции) за 1 секунду. Визуально тоже видно что экран (около 700 пикселов) сдвигается полностью за 7 секунд. Конечно часть циклов из 100 видимо игнорируется системой тк частота развертки только 85, но все двигается вполне плавно, и этого достаточно для меня. На P166 1024x768 100 кадров не получается - максимум около 60, на более мощных машинах мой индикатор показывает 99 и может прыгать в некоторых пределах вниз.
Можете что-нибудь сказать о вопросах адресованных Bob Johnson? (ваше второе письмо пришло позже чем от Bob Johnson поэтому отвечаю в порядке их прочтения).
St



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

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

Отвечает Bob Johnson

Доброе время суток, St!
Видимо точность у sleep невысока. Это вполне возможно, но разве тебе реально нужно больше 100 fps? Ставь sleep 5 и вперед... :)
Еще есть такой вариант - использовать sleep (0). В этой ситуации если никакой другой процесс равного приоритета с твоим не нуждается в процессорном времени, sleep вернется тут же. Если же кому-то нужно, то поработает тот процесс, затем снова твой. Это нормальный вариант, если ты хочешь делать приложение, которое будет основным (т.е. игра, демо, окно "о программе" и т.д.) и не очень, если тебе нужно что-то вроде "фичи" (типа бежит скроллер, а пользователь может начать и другую программу запускать).
> Можете что нибудь сказать о CreateWaitableTimer/SetWaitableTimer?
Я никогда не использовал, так что попробуй. Может быть это будет тем, что тебе нужно.
> Конечно часть циклов из 100 видимо игнорируется системой тк частота развертки только 85
100 - это оптимальное число fps, т.к. есть люди, у которых стоит именно 100 Гц. Обычно, применяются частоты от 60 (на TFT) до 100 (на CRT) герц.

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


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


 Вопрос № 3517

Уважаемые программисты !
Я тут ваще запутался, помогите разобраться, plz.
Недавно сбабацал программку, использующую dll через функцию loadlibrary и стал изучать способы применения этих самых DLL. Понравилась возможность их неявного связывания ( проецирование на адресное пространство процесса без использования функции LoadLibrary ). Читал это в примерах программирования на c++ ( Системное программирование ... автор - Рихтер ). Для этого необходимо иметь файл (имя библиотеки).lib ( не знаю, как этот файл называется правильно ), а как его правильно сделать, тоже не знаю. Я пользуюсь минимальным количеством файлов для программирования на тасме ( tlink32, rlink32, tasm32, uuid, import32 ).
Покопался в своих архивах и что-то нашел. В частности, при помощи программы tlib.exe из комплекта c++ builder 6 ( из коммандной строки "d: lib mylib mylib.obj" ) получил файл mylib.lib. Файл mylib.obj был получен при компеляции проекта динамически подключаемой библиотеки ( с наличием так называемой dllentry-функции (?) ).
Почему пишу так подробно: толкового описания на русском языке по программирования на тасме не нашел. Масм как-то не могу въехать ( может мозги не туда повернуты ). Языки высокого уровня мне не нравятся по разным причинам, главными из которых являются необоснованно большой результативный код ( мой проект на тасме из одного исполняемого файла и одной dll'ки занимал 16кб, а последний /о нем будет написано ниже/ и вовсе - 8 ) и, может показаться странным, относительная сложность. Может, например, с++ и красивый, но асм я понимаю лучше.
В общем, продолжаю. Затем, в первоначальной версии своей программы удалил все куски кода вроде загрузки библиотеки и поиска адреса нужной функции ( типа loadlibrary, getprocaddress ), добавив при этом строчку "include mylib.lib". При компеляции выскочило сообщение "Error: Multiple entry points defined", но рабочий файл получился и работал без нареканий. При использовании w32dsm удивился, что прога не импортирует функции из dll'ки. Через некоторое время обнаружил, что просто код этих функций находится внутри исполняемого файла и dll'ка оказалась просто не нужна. Конечно же мне это понравилось - размер проекта уменьшился в два раза, отпала необходимость в наличии библиотеки, да и перспективы использования полученных знаний...
Но главного я не добился - как сделать неявное связывание ?
И вдруг возник вопрос, а че из import32.lib, входящего в комплект все того же c++ builder 6, не вставляется код импортируемых функций ?
Помогите, пожалуйста.
Илья.
mis421@list.ru



Вопрос отправлен: 18.06.2003, 23:20
Отправитель: Bkmz (mis421@list.ru)

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

Отвечает Bob Johnson

Добрый день, Bkmz!
lib файлы бывают двух типов - с кодом функций и без него (в этом случае в нем содержатся ссылки на dll файлы). Когда ты создал lib из obj - ты поместил в него и код, а когда ты подключил lib внутри проги, ты заставил tasm32 вставить этот код в твою прогу. Поэтому и получилось 2 точки входа. Работала прога нормально потому, что управление попадало на ту точку, на которую ты ожидал.
lib файл следует указывать не тасму, а tlink32 (в параметрах), например:
tlink32 -x -Tpe -aa -c -V4.0 %FI%.obj, %FO%.exe , , import32.lib my1.lib my2.lib ...
А в проге ты должен описать функции как внешние, например так:
Имя_функции ProcDesc StdCall :DWord, :DWord
Тогда и получится статическое связывание. Но раз тебе понравилось, когда все было в одном файле - просто скопируй код из исходника длл в исходник твоей проги... :)
Да, lib надо делать утилитой implib из пакета тасма (она делает его из любой уже готовой dll, что очень удобно!)

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


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


 Вопрос № 3520

Добрый день !
В связи с огромным количеством писем, поступающим на RusFAQ.ru от пользователей, желающих изучить основы программирования портов, написал статью, которая должна облегчить работу экспертов и помочь начинающим программистам в освоении этой темы. В статье разбирается программирование портов вводавывода для управления внешними(возможно самопальными) устройствами. Для упрощения были выбраны LPT- и GAME-порты. В перспективе стоит разбор принципа работы и программирования последовательных портов, а также построения схем управления на основе фотоприёмников ИК-дапазона.
Требования к читателю небольшие - иметь хотя бы небольшое представление о языках программирования и хоть раз жизни держать в руках паяльник. Высоких требований к статье предъявлять, пожалуй, не стоит, т.к. она призвана помочь
начинающим программистам, ибо в Рунете сейчас нет подробных статей на эту тему.
Статью можно скачать по адресу:
http://kalaidjian.narod.ru/proekt.rar
Размер - 108K. Запакован архиватором WinRAR 2.8. Документ создан в MSWord2002(он же XP). В будущем будет выпущен HTML-вариант, но на данный момент он занимает слишком много места.
Вопросыпожеланиякритикакомментарии приветствуются!
С уважением
Тигран Калайджян
2:5020/4567.24



Вопрос отправлен: 19.06.2003, 11:14
Отправитель: Tigran Kalaidjian

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

Отвечает Tigran K. Kalaidjian

Отправил, так сказать, в массы.


Ответ отправлен: 19.06.2003, 11:43
Отправитель: Tigran K. Kalaidjian


Отвечает Дмитрий

Приветствую Вас, Tigran Kalaidjian!
Статья просто супер. Так держать!

Ответ отправлен: 19.06.2003, 12:07
Отправитель: Дмитрий


Отвечает Bob Johnson

Добрый день, Tigran Kalaidjian!
OK

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


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


 Вопрос № 3521

Здравствуйте, Bob Johnson!
Недавно на RusFaq я спрашивал как сделать инсталлятор.
Вопрос по этой теме: например, имеется два файла: extract.exe и Dude.txt. С помощью функции WriteFile я допишу в конец extract.exe файл Dude.txt. А для того, чтобы извлечь его, extract.exe может читать из самого себя функцией ReadFile? Или вообще ничего не получится таким способом? Если у вас возник вопрос, что это я сам не проверил, так я вам отвечу - я себе винт грохнул, вчера только сделал, MASM'а нет.
И ещё, я у вас как-то спрашивал как создавать программно ярлыки. Вы мне прислали пример на C++. Я его (C++) не изучал, поэтому кое-что мне непонятно. Не могли бы вы мне прислать пример адаптированный под ассемблер, желательно под MASM.
Большое спасибо!



Вопрос отправлен: 19.06.2003, 13:58
Отправитель: Drahus (Drahus@yandex.ru)

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

Отвечает Bob Johnson

Здравствуйте, Drahus!
1. ReadFile может читать из "самого себя", только когда открывать будешь файл - укажи, что доступ "GENERIC_READ" и шара "File_Share_Read", т.к. запущенный файл уже открыт для чтения.
Есть даже лучше вариант - засунуть твой dude.txt в ресурсы типа RCDATA, тогда читать надо будет с помощью FindResource и т.д., но преимущество в том, что UPX сможет нормально сжать твой exe-шник, в то время как если ты просто допишешь в конец - то эти дописанные данные потеряются при сжатии.
2. Это был пример из MSDN, на асме у меня такого примера к сожалению нет. Если я его переведу на ассемблер, то перешлю тебе его по почте.

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


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


 Вопрос № 3522

Уважаемые эксперты! (а особенно Дмитрий и Hayk)
Скажите пожалуйста, где вообще можно прочитать про работу с модемом в винде? Правильный ли я вообще использую подход, организуя связь с модемом через дескриптор (который вернуло CreateFile) ? Какие еще возможны варианты и чем они лучше подходят? Получается, что для того чтобы, например, набрать номер, я засылаю через WriteFile в модем команду ATDP666. Мне почему то кажется, что это бредово выглядит как-то. После соединения модем получает какие то данные (в моем случае - версию Линукса который стоит на серваке к которому я законнектился). Дальше - совершеннейшая неизвестность. Что делать? Что слать? Если это PPP - то на каком этапе находится подключение? когда слать SYN а когда ACK, или модемы уже давно обо всем договорились? Где найти ответы на эти вопросы?



Вопрос отправлен: 19.06.2003, 18:33
Отправитель: Broken Sword (brokensword@mail.ru)

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

Отвечает Tigran K. Kalaidjian

Доброе время суток, Broken Sword!
У меня тут в архивах диалер под Windows завалялся - полностью написан на ассемблере. Честно говоря, не разбирался в нем, но отправил на мыло - может пригодится...
Исходники прилагаются.

Ответ отправлен: 20.06.2003, 12:37
Отправитель: Tigran K. Kalaidjian


Отвечает Дмитрий

Доброе время суток, Broken Sword!
Информацию по программированию модемов я поищу. Где-то у меня было. Если что, отправлю в субботу 21. Насчет управления модемом. По-моему окромя AT-команд ничего путнего придумать нельзя. Да и зачем? Они, собственно говоря, для этого и предназначены. С их помощью можно управлять модемом направо и налево без особых усилий. Почему ATDP666 выглядит бредово? Вполне нормально. Если это работает через гипертерминал, то почему-бы и нет. Если сервак вернул строку, то значит соединение установлено (по крайней мере на уровне TCP-IP). Осталось выяснить на какой порт оно установлено (может это просто Telnet?). Здесь желательно собрать побольше информации о соединениях (netstat -a), попинговать сервак, или вообще запустить какой-нибудь NetView, чтоб хотя-бы примерно знать с чем имеешь дело. Потом уже можно разбираться, что за строку сервак возвращает и вообще чего ему надо. Короче, удачи!

Ответ отправлен: 20.06.2003, 09:49
Отправитель: Дмитрий


Отвечает Hayk

Добрый день, Broken Sword!
1. В MSDN-e просмотрите RAS(Remote Access Services).
2. Через CreateFile не пробовал ... по моему надо подключиться (дозвониться) к remote машине и только после этого вызывать CreateFile. Может и ошибаюсь но вы должны создать connection на COM порте. А как дозваниваться ? ... ведь модем сидит на виртуальном COM порте. Вряд ли Windows организует всё это. По моему RAS это оптимальный метод работы с модемом. Всё там предельно просто.
3. IMHO Вообще-то PPP работает так. Создаёться device-specific соединение. Аутентификация и потом, самое главное, выбор протокола сетевого уровня. IPX, IP, NetBUI адреса не знаю как настраиваються но инфу о ни даёт функция RasGetProjectionInfo. Рад если чем-то сумел помочь.

Ответ отправлен: 20.06.2003, 13:42
Отправитель: Hayk


Отвечает GL

Приветствую Вас, Broken Sword!
Как-то Gibbel давал ссылку на тома Библиотеки системного программиста (вопрос 2700 или приложение). Среди них есть книга "Программирование модемов" (http://www.gelos.ru/upload/BSP/bsp_04.zip), но к сожалению для ДОС (всё равно кое-что можно почерпнуть и оттуда) и "Модемы и факс-модемы. Программирование для MS-DOS и Windows" (http://www.gelos.ru/upload/BSP/bsp_16.zip) и ещё "Программирование для Windows Sockets" (http://www.gelos.ru/upload/BSP/bsp_23.zip).

Приложение:

Ответ отправлен: 20.06.2003, 14:31
Отправитель: GL


Отвечает Bob Johnson

Добрый день, Broken Sword!
> Правильный ли я вообще использую подход, организуя связь с модемом через дескриптор (который вернуло CreateFile)
Я думаю, что ничего плохого в этом нет, т.к. так работает HyperTerminal. Если ты пишешь приложение на уровне него, то все будет в порядке.
> Мне почему то кажется, что это бредово выглядит как-то
Да нет, это единственный способ набрать номер на обычном (как там, HAYES-совместимый?) модеме. Ведь даже в свойствах удаленного доступа можно указать инициализационную строку модему в виде Sx = xxx и т.д., а стандартные символы (типа P, T, W, @ ...) можно добавлять даже в номер для набора.
> Дальше - совершеннейшая неизвестность. Что делать? Что слать?
А ты что, хочешь сам подключиться к интернет-провайдеру? Тогда дальше будет не очень классно... Если просто нужно установить соединение с интернетом (без любых наворотов, как это делает, the bat, например), используй лучше RasDial.
> когда слать SYN а когда ACK, или модемы уже давно обо всем договорились?
Если это относится к аппаратной части соединения - то это уже сделано модемами самостоятельно. Тебе остается только передавать данные и принимать ответ (только, кажется, что модем нужно "проверять" контрольной суммой пакета и все такое, хотя это может быть не так).

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 20.06.2003, 15:24
Отправитель: Bob Johnson


 Вопрос № 3523

А как быть с асмом под Линух?



Вопрос отправлен: 19.06.2003, 22:19
Отправитель: ___13___

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

Отвечает Broken Sword

Доброе время суток, ___13___!
о! это мое как раз. Могу выслать исходники и дать путевые ссылки. Например вот эту:
www.linuxassembly.org (или без www, не помню)

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


Отвечает Tigran K. Kalaidjian

Приветствую Вас, ___13___!
А что такого? Найдите компилятор и компильте... Можно конкретнее вопрос ?

Ответ отправлен: 20.06.2003, 12:42
Отправитель: Tigran K. Kalaidjian


Отвечает Bob Johnson

Добрый день, ___13___!
Авторы линукса считают одним из его достоинств многоплатформенность, что полностью исключает асм (нет, там есть асм, но мало кто им пользуется). Под линукс драйвера (т.е. модули ядра) пишутся на С++.

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 20.06.2003, 15:24
Отправитель: Bob Johnson


 Вопрос № 3524

Еще вопрос,
был такой сайт asm.kalashnikoff.ru
Я не бывал на нем нек время, и ....(
куда он перебрался?



Вопрос отправлен: 19.06.2003, 22:22
Отправитель: ___13___

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

Отвечает baldr

Добрый день, ___13___!
Так сюда и перебрался! Это Rusfaq.ru - там разделы по-другому сделаны...

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


Отвечает Tigran K. Kalaidjian

Здравствуйте, ___13___!
Если я не ошибаюсь, то никуда, нету его. Книгу и выпуски рассылки можно скачать прямо с RusFAQ.ru

Ответ отправлен: 20.06.2003, 12:46
Отправитель: Tigran K. Kalaidjian


Отвечает Bob Johnson

Здравствуйте, ___13___!
Его больше нет. Остатки есть на http://www.rusfaq.ru. Еще некоторый материал по асму есть на моей странице: http://bobjohnson.nm.ru

* EMan1.4: ---===*** Have your friend the way you would like him to have you ***===---


Ответ отправлен: 20.06.2003, 15:24
Отправитель: Bob Johnson



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

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

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

Ваше имя:

Ваш e-mail:

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


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

Ваш вопрос:


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


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


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

Программисту
Assembler (38)
C / C++ (26)
Perl (5)
Builder / Delphi (18)
Pascal (28)
Basic / VBA (9)
Java / JavaScript (13)
PHP (5)
MySQL / MSSQL (6)
Пользователю
Windows 95/98/Me (31)
Windows NT/2000/XP (27)
"Железо" (20)
Поиск информации (15)
Администратору
Windows NT/2000/XP (14)
Linux / Unix (6)
Юристу
Гражданское право (7)
Семейное право (3)
Трудовое право (4)
КоАП (3)

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




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.


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

В избранное