информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Где водятся OGRыАтака на Internet
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / hardware
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[asm]ну хоть кто то мне поможет? непонятка с ком портом. помогите умоляю. 01.06.01 01:34  
Автор: помогите Статус: Незарегистрированный пользователь
<"чистая" ссылка>
есть 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]ну хоть кто то мне поможет? непонятка с ком портом. помогите умоляю. 02.06.01 01:34  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>
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.
[DOS] Bdogonku 02.06.01 01:51  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>



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




Rambler's Top100
Рейтинг@Mail.ru


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