Магнитные карты и ПК
Научиться перемещать карты с указанной скоростью даже при минимальной тренировке несложно. Тонкий момент заключается в необходимости очень точно синхронизировать начало записи с началом дорожки. Нам удалось решить эту проблему, используя считывающую головку, расположенную напротив записывающей.
Принцип синхронизации состоит в том, что через устройство перемещается не одна карта, а две, сложенные «рубашка к рубашке». Одну из них назовем кодируемой, а вторую, более тонкую, — картой синхронизации.
Закодированная любыми данными на всю длину дорожки, карта синхронизации после первого же контакта с головкой заставит считывающую схему выдать тактовый импульс. Для того чтобы ПК мог начать запись, большего и не требуется.
СОЗДАНИЕ КАРТЫ СИНХРОНИЗАЦИИСамый простой способ получить необходимую карту синхронизации состоит в том, чтобы ножницами вырезать карту стандартной формы из билета на поезд дальнего следования французских железных дорог.
Рис. 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.
Если необходимо использовать порт 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






