информационная безопасность
без паники и всерьез
 подробно о проекте
Spanning Tree Protocol: недокументированное применениеСетевые кракеры и правда о деле ЛевинаСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Критическая уязвимость UEFI позволяет... 
 Японский хостинг попросил клиентов... 
 Компрометация eMudhra вынудила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[asm]ну хоть кто то мне поможет? непонятка с ком портом. помогите умоляю. 24.08.01 12:20  Число просмотров: 961
Автор: Chingachguk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> [asm]НУ ХОТЬ КТО ТО МНЕ ПОМОЖЕТ? НЕПОНЯТКА С КОМ ПОРТОМ.
> ПОМОГИТЕ УМОЛЯЮ.

Слушай, а почему бы тебе не сделать все проще, те не ждать флагов в порту, а сделать принимающую программу так, чтобы она при успешном приеме байта отвечала тебе, те на комп A каким-нибудь условным значением. Так что после отправки своего байта ты просто ждешь ответа, дождался(если) и передаешь следующий ?!
<programming>
[asm]ну хоть кто то мне поможет? непонятка с ком портом. помогите умоляю. 02.06.01 01:31  
Автор: !!!! Статус: Незарегистрированный пользователь
<"чистая" ссылка>
[asm]НУ ХОТЬ КТО ТО МНЕ ПОМОЖЕТ? НЕПОНЯТКА С КОМ ПОРТОМ. ПОМОГИТЕ УМОЛЯЮ.
есть 2 компа. компьютер А и компьютер В.
А более производительный чем В. задача передать данные с компьютера А
на компьютер В через ком порт (последовательный порт). итак идет передача с А на В. но возникает проблемма: с А бедут послан символ он запишется в буфет изза того что В менее производительная манина она может не успеть прочесть посланное А значение изза того что А пошлет еще символ который запишется в тот же буфер (поверх ранее посланного мимвола).
надеюсь что мая проблема вам понятно.
Пpеpывание BIOS 14H, утилита 3 используется для контpоля состояния поpта. Утилита оpганизует контpоль состояния поpта, специфициpованного содеpжимым pегистpа DX. После возвpата из состояния, опpеделяемым пpеpыванием, pегистpы АН(канал связи) и AL(модем) будут содеpжать значения, опpеделяющие в соответствии с Таблицей текущее состояние поpта после выполнения пpеpывания BIOS.
Байты состояния последовательного поpта
Состояние канала связи ( АН )
Значение, устанавливающее бит.............. Бит
Готовность данных..................................... 0
Ошибка пеpеполнения.................................1
Ошибка контpоля четности.......................... 2
Ошибка кодиpования...................................3
Ошибка пpи идентификации пpеpывания......4
Регистp накопления пеpедаваемых данных...5
Регистp сдвига пеpедачи пуст.......................6
Выход за допустимый интеpвал вpемени.........7
----------------------
ВОПРОС ВОТ В ЧЕМ:
как по состоянию порта машина А может понять что машина В еще не считала символ?
да и второй ВОПРОС: какое максимальное число можно перидать через ком порт за один раз, т.е. вот отрывок программы
mov dx,0 ;com 1
mov ah,1 ;передача байта
mov al,X ; значение которое мы передаем
int 14h ;прерывание
так какое максимально возможное значение Х возможно?
если ответ слишком большой то если не сложно вышли ответ на x_k@chat.ru
заранее благодарен.
[asm]ну хоть кто то мне поможет? непонятка с ком портом. помогите умоляю. 24.08.01 12:20  
Автор: Chingachguk Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> [asm]НУ ХОТЬ КТО ТО МНЕ ПОМОЖЕТ? НЕПОНЯТКА С КОМ ПОРТОМ.
> ПОМОГИТЕ УМОЛЯЮ.

Слушай, а почему бы тебе не сделать все проще, те не ждать флагов в порту, а сделать принимающую программу так, чтобы она при успешном приеме байта отвечала тебе, те на комп A каким-нибудь условным значением. Так что после отправки своего байта ты просто ждешь ответа, дождался(если) и передаешь следующий ?!
Ответы : -----1) см. описание int 14h --2) в аl влезают числа [0..128] d 02.06.01 01:58  
Автор: free Статус: Незарегистрированный пользователь
<"чистая" ссылка>
короче, пока это дохлое дело.

придется тебе узнать что такое регистр, для начала.
а потом узнать что такое прерывание.

советую читать TachHelp или таблицы прерываний и API ДОС.
так какой бит отвечает за прием посланного значения удаленной машине[0..128] 02.06.01 13:04  
Автор: !!!! Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> короче
только не надо мне расказывать что мне надо учить, темболее для начала 02.06.01 12:58  
Автор: !!!! Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> короче, пока это дохлое дело.
>
> придется тебе узнать что такое регистр, для начала.
> а потом узнать что такое прерывание.
>
> советую читать TachHelp или таблицы прерываний и API ДОС.
[asm]ну хоть кто то мне поможет? непонятка с ком портом. помогите умоляю. 02.06.01 01:40  
Автор: + <Mikhail> Статус: Elderman
Отредактировано 02.06.01 01:49  Количество правок: 1
<"чистая" ссылка>
Na kakuu platformu pishesh?
esli NT/2000 to vse ochen prosto

hCom = CreateFile("COM1", . . . );

DCB dcb;
dcb.BaudRate = 9600; //ili luboi drugoi
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
// . . .
SetCommState(hCom,&dcb);

esli DLia DOS ili 9x togda posmotry v kakie registry zapihivat` BaudRate
po umolchaniiu v Windows baudRate smotri v WIN.INI
[Terminal]
port=COM1:2400,N,8,1

Voobchem ne mudri posmotri v MSDN.





Sample Code

/* Transmitting Machine */
/* Compile options needed: none
*/

#include <stdio.h>
#include <conio.h>
#include <bios.h>

void main(void)

{
unsigned config;

config = (_COM_CHR8|_COM_STOP1|_COM_NOPARITY|_COM_9600);
_bios_serialcom(_COM_INIT,0,config);

while(1)
_bios_serialcom(_COM_SEND,0,(unsigned)getch());

}

/* Receiving Machine */
#include <stdio.h>
#include <conio.h>
#include <bios.h>

void main(void)

{
unsigned config;
unsigned data;
config = (_COM_CHR8|_COM_STOP1|_COM_NOPARITY|_COM_9600);
_bios_serialcom(_COM_INIT,0,config);

while(1)
{
data = 0x0000;
_bios_serialcom(_COM_RECEIVE,0,data);
if (data != 0x0000)
putch((int)data);
}

}
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach