Магнитные карты и ПК - Гёлль Патрик. Страница 22

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

Принцип синхронизации состоит в том, что через устройство перемещается не одна карта, а две, сложенные «рубашка к рубашке». Одну из них назовем кодируемой, а вторую, более тонкую, — картой синхронизации.

Закодированная любыми данными на всю длину дорожки, карта синхронизации после первого же контакта с головкой заставит считывающую схему выдать тактовый импульс. Для того чтобы ПК мог начать запись, большего и не требуется.

СОЗДАНИЕ КАРТЫ СИНХРОНИЗАЦИИ

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

Магнитные карты и ПК - _112.jpg

Рис. 4.9. Получение корты синхронизации с помощью железнодорожного билета

Одна из четырех закодированных дорожек с плотностью записи 210 bpi точно совпадет со считывающей головкой. Она и обеспечит синхронизацию, если половинки нашего «сэндвича» будут правильно сложены и проведены через устройство в нужном направлении.

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

При изготовлении карты синхронизации управлять кодером можно с помощью программы MAKESYNC.PAS, при создании которой для получения требуемой скорости управления записывающей головкой был использован Turbo Pascal.

Если возникли непреодолимые трудности с изготовлением карты синхронизации, процесс записи запускается при помощи простого генератора импульсов, выдающего сигнал TTL-уровней с частотой 500-1000 Гц.

program makesync;

uses crt;

var a: integer;

begin

clrscr;

writeln ("Вставить карту в считывающее устройство");

writeln ("и перемещать до появления звукового сигнала");

for а:=0 to 10000 do

begin,

   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.

Магнитные карты и ПК - _113.jpg
Магнитные карты и ПК - _114.jpg
Магнитные карты и ПК - _115.jpg

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

Магнитные карты и ПК - _116.jpg
Магнитные карты и ПК - _117.jpg
Магнитные карты и ПК - _119.jpg

Эта программа предназначена строго для кодирования дорожки 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