Чтение онлайн

ЖАНРЫ

Магнитные карты и ПК
Шрифт:

port[634]:=255;

delay(1);

port(634):=0;

delay(1);

end;

sound(880); delay(500); nosound;

end.

(* COPYRIGHT 1996 Patrick GUEULLE *)

Исходному тексту MAKESYNC.PAS соответствует исполняемый файл MAKESYNC.EXE, который можно запускать из командной строки DOS.

Следует

обратить внимание, что эта программа была специально написана для подключения кодера к параллельному порту LPT2. Ее надо заменить программой MAKESYNC 1, если возникнет необходимость использовать порт LPT1.

Если необходимо использовать порт LPT1, то предварительно отключается принтер и вместо исполняемого файла MAGWRITE.EXE берется MAGWRITE1.EXE.

Эта программа предназначена строго для кодирования дорожки ISO 2 стандартных карт, следовательно, записывает она с плотностью 75 bpi. Кодирование с плотностью 210 bpi хотя и возможно, но значительно сложнее, а потому рассматриваться не будет.

При желании читатели могут разработать собственные способы кодирования с плотностью 210 bpi. Однако они не могут обвинить нас в том, что мы не преподнесли на блюдечке методы производства, скажем, хорошо имитированных кредитных карт.

Программа ждет данные, предназначенные для кодирования, в форме файла .CAR, который теоретически мог быть считан с некоторой карты для копирования.

На практике намного интересней кодировать произвольно выбранные данные карты, что сразу порождает проблему создания соответствующего файла .CAR.

ПРОГРАММА ДЛЯ КОДИРОВАНИЯ ДОРОЖКИ ISO 2

Программа CREMAG.BAS выполняет функцию, прямо противоположную функции программы DEC5.BAS в том смысле, что она трансформирует цифровые данные в файл .CAR, готовый к записи и включающий нули запуска и заполнения.

10 REM — CREMAG.BAS —

20 KEY OFF: CLS

30 PRINT "Ввести данные, предназначенные для записи,"

40 PRINT "затем нажать ENTER"

50 А$=""

60 INPUT В$

70 IF В$ = "" THEN 100

80 А$=А$+В$

90 GOTO 60

100 C$="0000000000"

110 FOR F=1 ТО LEN(A$)

120 IF MID$(A$,F,1)="0" THEN C$=C$+"00001": GOTO 240

130 IF MID$(A$,F,1)="1" THEN C$=C$+"10000": GOTO 240

140 IF MID$(A$,F,1)="2" THEN C$=C$+"01000": GOTO 240

150 IF MID$(A$,F,1)="3" THEN C$=C$+"11001": GOTO 240

160 IF MID$(A$,F,1)="4" THEN C$=C$+"00100": GOTO 240

170 IF MID$(A$,F,1)="5" THEN C$*C$+"10101": GOTO 240

180 IF MID$(A$,F,1)="6" THEN C$=C$+"01101": GOTO 240

190 IF MID$(A$,F,1)="7" THEN C$=C$+"11100": GOTO 240

200 IF MID$(A$,F,1)="8" THEN C$=C$+"00010": GOTO 240

210 IF MID$(A$,F,1)="9" THEN C$=C$+"10011": GOTO 240

220 IF MID$(A$,F,1)=" {" THEN 370

230 PRINT: PRINT "Данные

не действительны (запрещенные СИМВОЛЫ)": ВЕЕР: END

240 NEXT F

250 IF LEN(C$)<=210 THEN 270

260 PRINT: PRINT "Данные слишком длинные (максимум 40 цифровых символов)": END

270 C$="0"+С$

280 IF LEN (C$) =240 THEN 320

290 C$=C$+"0"

300 IF LEN(C$)=240 THEN 320

310 GOTO 270

320 OPEN "carte.car" FOR OUTPUT AS #1

330 FOR F=1 TO LEN(C$)

340 PRINT#1,MID$(C$,F,1)+CHR$(32);

350 NEXT F

360 CLS: PRINT: PRINT "Файл CARTE.CAR готов": BEEP: END

500 IF MID$(A$,F,1)<>T THEN 230

510 GOTO 240

520 REM (c)1996 Patrick GUEULLE

Как и программа MAGWRITE, CREMAG предназначена для кодирования дорожки ISO 2 и, следовательно, будет обрабатывать только цифровые данные. Разделительные символы воспринимаются именно в том виде, в каком их отображает DEC5, то есть в фигурных скобках (а не в простых круглых скобках или кавычках).

Так, флажок старта будет записан как {start}, флажок конца как {end}, разделитель полей как {sep}.

Перейти на новую строку можно путем однократного нажатия на клавишу ENTER. Создание файла .CAR инициируется двукратным нажатием этой клавиши.

Количество кодируемых данных значения не имеет, если не превышается максимум, отведенный дорожке ISO 2. Нули заполнения автоматически записываются в начале и конце дорожки, чтобы отцентровать блок информационных битов.

ПРОГРАММА РАСЧЕТА КОНТРОЛЬНЫХ КЛЮЧЕЙ

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

Поделиться с друзьями: