Страница 1 из 1

Помогите поставить прогу на колени!! :-)

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

Добавлено: 29 май 2006, 16:45
(GiG)*fh
gighack.narod.ru/comprog.rar

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

Добавлено: 31 май 2006, 20:23
(GiG)*fh
А много прога весит?

Добавлено: 02 июн 2006, 11:57
treider
Роберт Журден на этот счет говорит

Код: Выделить всё

;---получаем базовый адрес 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           ;посылаем байт
http://lib.ru/TECHBOOKS/JURDAIN/jourdain.txt

Помоему один из лучших справочников по MS-DOS

В третей строчке листинга ваше 0, 1, 2...

Добавлено: 07 июн 2006, 11:57
Yoyo
Прога умещается на дискетке, за сцылку спасибо, буду разбираться.. %)

Добавлено: 27 авг 2006, 09:32
nerag2006
если еще актуально, то пишите на nerag2006#nm.ru - помогу