Читаем Магнитные карты и ПК полностью

Логично сначала заинтересоваться именно этой дорожкой, расположенной посередине, поскольку она одновременно и наиболее используемая, и самая легкая в интерпретации. Даже при плотности 75 bpi сигналы, поступающие от декодера, могут быть достаточно высокой частоты.

Не доходя до программирования на ассемблере, нам пришлось использовать язык, известный своим быстродействием, — Turbo Pascal. Даже в этих условиях не стоит надеяться обойтись компьютером с производительностью ниже, чем у 386SX25, чьих возможностей едва хватает.

На сайте издательства www.dmk.ru содержатся исходный текст программы LECT75.PAS, приведенный выше, и соответствующий исполняемый файл LECT75.EXE. Эта программа создает файл CARTE.CAR, содержащий данные, считанные с дорожки, — 240 бит.

Это 48 раз по 5 бит, то есть 40 полезных знаков, которые максимально может содержать дорожка ISO 2, и 40 бит нулей заполнения, избыток которых не важен.

Формат этого файла (.CAR) мы определили уже несколько лет назад для считывания чип-карт; текст в коде ASCII, состоящий исключительно из 1 и 0, разделенных пробелами. С учетом линейной структуры магнитных дорожек никакого разбиения ни на группы битов, ни на строки фиксированной длины предусмотрено не было. Преобразование двоичных данных в цифровые символы, а также другие интересные анализы будут доверены другим программам, написанным на GWBASIC. Программа предполагает, что адрес порта игровой приставки — 513 (в десятичной системе); это имеет место для всех действительно IBM PC-совместимых ПК.

После запуска программа ожидает момента, когда карта будет вставлена в считывающее устройство. Затем начинается процесс считывания информации, и после считывания 240 бит раздается звуковой сигнал. Отсутствие звукового сигнала свидетельствует, что было получено менее 240 бит: это означает некачественное считывание либо то, что карта не полностью запрограммирована.

В подобном случае необходимо вставить карту вторично. Если блокировка продолжается, воспользуйтесь другой картой, которая уже считывалась с первого раза. Чтобы непосредственно получить отображение содержимого дорожки в битовом виде, в оболочке из основной программы LECTISO2.BAS посредством строки 30 вызывается внешняя программа LECT75.EXE. При этом, конечно, необходимо, чтобы программа COMMAND.СОМ была доступна через путь поиска PATH, в котором должна быть соответствующая запись, либо просто скопирована в текущую директорию.

Обратите внимание, что все эти программы были написаны специально для работы в DOS. Рекомендуется воздержаться от их запуска через Windows (в окне DOS), поскольку это может замедлить их выполнение.

В некоторых случаях предпочтительно дезактивировать некоторые резидентные программы, например ЕММ 386. Пользователи PC, привыкшие работать в Windows (версия не имеет значения), должны закрыть эту операционную систему, прежде чем приступить к выполнению программ.

10 REM — LECTISO2.BAS —

20 KEY OFF: CLS: PRINT: PRINT: PRINT: PRINT

30 SHELL "LECT75.EXE"

40 OPEN "carte.car" FOR INPUT AS #1

50 DIM T(240)

60 FOR F=1 TO 240

70 INPUT#1,T(F)

80 NEXT F

90 J=1

100 IF T(J)<>1 THEN 160

110 IF T(J+1)<>1 THEN 160

120 IF T(J+2)<>0 THEN 160

130 IF T(J+3)<>1 THEN 160

140 IF T{J+4)<>0 THEN 160

150 K=J: GOTO 200

160 J=J+1: GOTO 100

200 C$=""

210 FOR F=0 TO 4

220 IF T(K+F) =0 THEN C$=C$+"0"

230 IF T(K+F) =1 THEN C$=C$+"1"

240 NEXT F

250 GOSUB 2000

260 K=K+5: IF K>235 THEN END

270 GOTO 200

2000 IF C$="11010* THEN PRINT "{start}"

2010 IF C$="10110" THEN PRINT "{sep}"

2020 IF CS="11111" THEN PRINT "{end}"

2030 IP C$="01011" THEN PRINT "{10}";

2040 IF C$="00111" THEN PRINT "{12}";

2050 IF C$="01110" THEN PRINT "{14)";

2060 IF C$="00001" THEN PRINT "0";

2070 IF C$="10000" THEN PRINT "1";

2080 IF C$="01000" THEN PRINT "2";

2090 IF C$="11001" THEN PRINT "3";

2100 IF C$="00100“ THEN PRINT "4";

2110 IF C$="10101" THEN PRINT "5";

2120 IF C$="01101" THEN PRINT "6";

2130 IF C$="11100" THEN PRINT "7";

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже