Шрифт:
Необходимо один или несколько раз провести магнитом вдоль всей магнитной полосы, но так, чтобы он проходил по всем дорожкам. Если вы боитесь, что магнит может поцарапать карту, то из предосторожности на нее следует положить лист бумаги.
Естественно, проверка с помощью «магнитного разоблачителя» позволит лучше, чем попытка повторного считывания, убедиться в эффективности проведенной операции. Для более специфических случаев, скажем стирания единственной дорожки, можно построить стирающее устройство, которое будет очень похоже на кодер: головка будет питаться постоянным током, полярность которого значения не имеет. В случае головок с сопротивлением 300–500 Ом прямое подключение к напряжению 5-12 В будет достаточным.
5. Приложения
Описываемые программы были созданы так, чтобы они могли работать со считывающими устройствами и кодерами, подключенными к свободным портам ввода-вывода любого IBM PC-совместимого ПК.
Допустимо расширить состав портов ввода-вывода компьютера за счет установки дополнительной мультикарты в свободный слот. Таким образом можно добавить параллельный порт LPT2 к существующему LPT1, традиционно зарезервированному для принтера, или снабдить компьютер разъемом для подключения джойстика. Чтобы избежать конфликта адресов и прерываний с уже имеющимися портами, следует сконфигурировать переключатели карты с помощью прилагаемого описания. Если конфликты все же возникают, для их устранения потребуется использование диагностической утилиты MSD, которая позволит точно определить причину конфликтной ситуации и укажет, как исправить положение.
Возможно, некоторые читатели захотят пойти дальше по предложенному пути, например снабдить кодер оптическим датчиком или воспользоваться усилителем считывания, приведенным на рис. 3.15, в качестве детектора присутствия карты. Кое-кто попытается при наличии достаточно быстродействующего ПК построить двухдорожечное считывающее устройство или кодер, работающий с плотностью 210 bpi. В любом случае необходимо хорошее знание технических и программных характеристик используемых портов ввода-вывода.
В данном приложении мы собрали воедино информацию, касающуюся портов, которая часто «разбросана» по документации и, следовательно, труднодоступна. Такая информация поможет тем из наших читателей, кто захочет полностью разобраться в исходных текстах представленных программ.
На самом деле нам нечего скрывать, хотя надо напомнить, что программы и схемы, которыми читатели управляют, должны применяться исключительно в личных или экспериментальных целях. Любое использование программ в профессиональных или коммерческих целях в соответствии с законом требует согласия со стороны автора.
Несколько замаскированных «реперных точек» всегда позволят выявить возможные копии наших программ.
Порт джойстика
Данный разъем, предназначенный для игровой приставки, представлен на рис. 5.1. Он имеет 15 контактов, среди которых четыре входа логических сигналов (для подключения кнопок), четыре аналоговых входа (для потенциометров) и четыре линии питания +5 В.
Рис. 5.1. Назначение контактов разъема джойстика
Опрос этих восьми входов производится простым считыванием порта 201h (или 513 в десятичной системе), назначение его восьми разрядов представлено на рис. 5.2.
Рис. 5.2. Назначение разрядов порта 513
Аналоговые входы, взаимодействие с которыми осуществляется в соответствии с достаточно сложной процедурой, нам не пригодятся, поэтому клетки, соответствующие разрядам Ь0 — Ь3, зачеркнуты.
Разряды Ь4 — Ь7, напротив, напрямую сообщают о текущем состоянии каждого из четырех цифровых входов. Для выделения значения каждого разряда достаточно выполнить логическое умножение (функцию И, то есть AND) считанного байта на соответствующую маску, то есть на байт, значение которого равно весу данного разряда. Данная операция существует в любом языке программирования.
Параллельные порты
Хотя порт джойстика также можно назвать параллельным (потому что данные поступают в параллельном коде), этот термин традиционно закреплен за портами принтера, носящими общее название Centronics. Его часто называют также интерфейс Centronics.
На рис. 5.3 показано назначение выводов розеток типа DB25, используемых для данного интерфейса. Не следует путать их с вилками DB25 последовательных портов RS232, которые еще встречаются наряду с разъемами типа DB9 (СОМ1 — COM4).