Работа с игровым портом |
|
Игровой адаптер допускает подключение к системе двух джойстиков. Интерфейсный кабель игрового адаптера присоединяется в задней части адаптера. Кроме того, обеспечивается четыре входа для подключения переключателей. Положение ручки или джойстика определяется изменением величины сопротивления,передающегося на адаптер. Адаптер вместе с системным программным обеспечением преобразует имеющуюся величину сопротивления в относительное положение ручки или джойстика. При получении выходного сигнала, начинают работать четыре временные схемы. Положение сопротивлений может быть определено путем измерения величины тайм-аута схемы (которая является функцией сопротивления). Этот адаптер может быть использован как схема ввода/вывода общего назначения с четырьмя аналоговыми (резистивными) входами и четырьмя цифровыми входными сигналами. Описание интерфейсаИгровой адаптер имеет восемь входных линий, четыре из которых являются цифровыми входами, а четыре входами сопротивления. Эти входы могут быть прочитаны командой IN по адресу 201H. Каждый из четырех цифровых входов имеет резистор на +5В величиной 1кОм. Если на эти входы ничего не подается, то на них присутствует 1. Для того чтобы прочитать 0, эти входы должны быть зашунтированы на общий вывод. Четыре аналоговых входа подключаются через переменные резисторы на +5 В и будут преобразованы в длительность пропорционально величине резисторов, в соответствии со следующим соотношением: Тime = 24.2+ 0.011*R (мксек) Пользователь должен сначала начать диалог, выдавая команду OUT по адресу 201H. Команда IN по адресу 201H позволяет проследить, что выходы одновибраторов перешли в состояние 1 и остаются в этом состоянии в течение времени, соответствующего величине сопротивлений. Назначение всех четырех битов (0-3) одинаково,они всегда одновременно переходят в 1 и сбрасываются независимо друг от друга, в соответствии с величиной сопротивления на входе. Распределение входных сигналов по битам порта приведено в таблице:
Распределение сигналов по контактам разъема порта приведено на рисунке : Кнопки включаются между соответствующим контактом разъема и общим проводом. Переменные резисторы для ввода координат имеют номинал 100 кОм и включаются между соответствующим контактом и цепью +5В Программирование игрового адаптераФункции BIOS INT 15 - BIOS - Поддержка джойстика AH = 84h DX = подфункция 0000h Читать положение кнопок джойстика Возвращает: AL биты 7-4 = положение кнопок 0001h Читать позицию рукояток джойстиков Возвращает: AX = X координата джойстика A BX = Y координата джойстика A CX = X координата джойстика B DX = Y координата джойстика B Если установлен флаг CF - произошла ошибка AH = статус 80h неверная команда (PC,PCjr) 86h функция не поддерживается CF=0 если успешно выполненоЗ амечание: Если порт джойстика не установлен или нет джойстика, подфункция 0000h вернет AL=00h (все кнопки разомкнуты) и подфункция 0001h вернет AX=BX=CX=DX=0000h. Джойстик с резисторами 250kOhm возвращает значения в пределах 0000h-01A0h. Функции BIOS, читая положения джойстика, блокирует прерывания для более чем на 1 мс и могут вызвать проблему потери или большой задержки прерывания.
|