Помогите поставить прогу на колени!! :-)
Модератор: Andy
Народ! Обращаюсь к вам как к последней инстанции.. Короче. Есть самопальный прибор и самопальная прога, написанная на паскале. Прога управляет прибором через СОМ. В паскале использовался массив port[] (если это существенно). Так вот. Меня озадачили написать новую прогу, под НТ, только вот ни один чел не помнит какими именно цифрами управляется этот гроб.. Прогу я дизассемблировал, но так как в асме я нихрена не шарю то пытался найти обращения к порту- типа out 3F8h, ничего такого я не нашел.. Каким образом в декомпилированном коде найти обращения к порту? Кстати, в проге предусмотрено, что можно работать с портом и 1 и 2, то есть наверное по этому нет 3F8h? Короче, НИД ХЕЛП!! Если кто поможет, отвечаю, вышлю ящик пива почтой :-)
gighack.narod.ru/comprog.rar
И пусть удача повернется к тебе нужным местом 

Да не, братуха, это-то ясно! А вот где найти обращения к портам в декомпилированном коде? Короче, мрак... 

А много прога весит?
И пусть удача повернется к тебе нужным местом 

Роберт Журден на этот счет говорит
http://lib.ru/TECHBOOKS/JURDAIN/jourdain.txt
Помоему один из лучших справочников по MS-DOS
В третей строчке листинга ваше 0, 1, 2...
Код: Выделить всё
;---получаем базовый адрес COM1
MOV AX,40H ;ES указывает на область данных BIOS
MOV ES,AX ;
MOV DX,ES:[0] ;получаем базовый адрес COM1
;---инициализируеи регистры делителя скорости обмена на 1200 бод
ADD DX,3 ;указываем на регистр контроля линии
MOV AL,10000000B ;устанавливаем бит 7
OUT DX,AL ;посылаем байт
DEC DX ;указываем на старший байт делителя
DEC DX ;скорости обмена
MOV AL,0 ;старший байт для 1200 бод
OUT DX,AL ;посылаем старший байт для 1200 бод
DEC DX ;указываем на младший байт делителя
MOV AL,60H ;младший байт делителя для 1200 бод
OUT DX,AL ;посылаем младший байт
;---инициализируем регистр контроля линии
MOV AL,0 ;обнуляем AL
OR AL,10B ;длина данных 7 битов
OR AL,000B ;1 стоп-бит
OR AL,1000B ;генерируется бит четности
OR AL,10000B ;четная четность
ADD DX,3 ;указывает на регистр контроля линии
OUT DX,AL ;посылаем инициализационное значение
;---инициализируем регистр разрешения прерывания
DEC DX ;указываем на регистр разрешения
DEC DX ;прерывания
MOV AL,0 ;запрещаем прерывания
OUT DX,AL ;посылаем байт
Помоему один из лучших справочников по MS-DOS
В третей строчке листинга ваше 0, 1, 2...
Прога умещается на дискетке, за сцылку спасибо, буду разбираться.. %)
если еще актуально, то пишите на nerag2006#nm.ru - помогу