Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
radioegor146
24 / 24 / 16
Регистрация: 14.11.2013
Сообщений: 103
1

Перехват порта 61h

08.05.2016, 23:18. Просмотров 611. Ответов 5

Вобщем: Я нашёл игру Supaplex (оригинал под DOS) и послушал музыку из неё. Мне понравилась музыка при помощи PC Speaker'а. Я могу её сохранить в wav-файл. Но я её хочу сохранить ввиде частот и задержек (beep). После прочтения нескольких статей я понял, что мне надо перехватывать порт 61h. Но я не знаю как это сделать. Помогите пожалуйста.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2016, 23:18
Ответы с готовыми решениями:

Работа с портами 60h,61h,62h,63h,64h
Расскажите, пожалуйста, как работать с портами 60h,61h,62h,63h,64h. И ещё,...

Перехват прерывания
Немного решил поэкспериментировать. Есть два случая для сравнения. Первый...

перехват прерывания
напишите пожалуйста почему перехват прерывания происходит именно в этой строчке...

Перехват 21h
Подскажите пожалуйста. Как передать управление оригинальному обработчику 21h? ...

ASM: перехват NumLock
Здраствуйте! мне нужно при нажатии NumLock в консоли выводить "1". Но...

5
shmkv
1749 / 431 / 59
Регистрация: 21.07.2015
Сообщений: 1,127
08.05.2016, 23:33 2
Экстрасенсы в отпуске. Под какую ОС надо чтобы заработало это чудо?

Добавлено через 57 секунд
И порт никак перехватить нельзя. Можно перехватить инструкцию обращения к порту.
0
radioegor146
24 / 24 / 16
Регистрация: 14.11.2013
Сообщений: 103
09.05.2016, 14:47  [ТС] 3
WinXP SP3 Intel x86 или DosBOX. Сам новичок, поэтому прошу помощи у знающих. Скорее всего действительно надо перехватить данные с порта.
0
alexcoder
1844 / 714 / 149
Регистрация: 03.06.2009
Сообщений: 4,296
Завершенные тесты: 1
10.05.2016, 09:27 4
И порт никак перехватить нельзя
Перехватить порт можно, я лет 15 назад такое делал когда исследовал работу флопика, писал свой драйвер. Но это делалось под чистым досом, мне попалась программа, которая переводила процессор в режим виртуального 86 и фильтровала обращения к портам (Можно установить маску на порты ввода-вывода, обращение к которым будет вызывать исключение). И вот эта программа делала лог обращения к определенным портам в виде временной отпечаток-порт-значение. Названия не помню. А так бы на виртуальной машине может и получилось бы сделать...
0
radioegor146
24 / 24 / 16
Регистрация: 14.11.2013
Сообщений: 103
10.05.2016, 12:23  [ТС] 5
Перехватить порт можно, я лет 15 назад такое делал когда исследовал работу флопика, писал свой драйвер. Но это делалось под чистым досом, мне попалась программа, которая переводила процессор в режим виртуального 86 и фильтровала обращения к портам (Можно установить маску на порты ввода-вывода, обращение к которым будет вызывать исключение). И вот эта программа делала лог обращения к определенным портам в виде временной отпечаток-порт-значение. Названия не помню. А так бы на виртуальной машине может и получилось бы сделать...
Нет, ну под чистым DOS запустить не проблема, надо всего лишь скачать его и сделать загрузочною флешку. Да, это именно то, что мне надо. Если вспомнишь название проги, то скажи пожалуйста.
0
shmkv
1749 / 431 / 59
Регистрация: 21.07.2015
Сообщений: 1,127
10.05.2016, 13:00 6
Цитата Сообщение от alexcoder Посмотреть сообщение
Перехватить порт можно
Это не перехват порта. Это перехват инструкции обращения к порту.
Перехватить сам 61h порт документированными средствами нельзя. Если ну очень сильно захотеть, то можно 60h и 64h. При определенной конфигурации чипсета будет генерироваться SMI# по обращению к ним (используется биосами для эмуляции ps/2).
Касаемо перехвата инструкций, варианта 2:
1. Использовать трассировку.
2. Использовать V86 (можно на основе существующих экстендеров, т. к. с нуля кода придется много понаписать).
Цитата Сообщение от alexcoder Посмотреть сообщение
Можно установить маску на порты ввода-вывода, обращение к которым будет вызывать исключение
Не нужна там никакая маска. Задача V86 может быть только с прикладными правами. Инструкции in, out по определению привилегированные и будут генерировать #GP. Как и куча других привилегированных команд, так что еще нужен свой мини-дизассемблер (аналогично для варианта 1).
0
10.05.2016, 13:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.05.2016, 13:00

перехват int 21h
com 16 bit .286 ASKII_code_key_check equ 'A' ASKII_code_key equ 'B'...

Перехват прерываний (клавиатура)
Доброго времени суток. Есть код, который при нажатии определённых кнопок меняет...

Перехват функций, реверсинг
Всем доброго времени суток, есть программа(exe), в которой есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru