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
Как и программа MAGWRITE, CREMAG предназначена для кодирования дорожки ISO 2 и, следовательно, будет обрабатывать только цифровые данные. Разделительные символы воспринимаются именно в том виде, в каком их отображает DEC5, то есть в фигурных скобках (а не в простых круглых скобках или кавычках).
Так, флажок старта будет записан как {start}, флажок конца как {end}, разделитель полей как {sep}.
Перейти на новую строку можно путем однократного нажатия на клавишу ENTER. Создание файла .CAR инициируется двукратным нажатием этой клавиши.
Читать дальше