Магнитные карты и ПК - Гёлль Патрик. Страница 18
150 J=1
160 IF T(J)<>1 THEN 240
170 IF T(J+1)<>0 THEN 240
180 IF T(J+2)<>1 THEN 240
190 IF T(J+3)<>0 THEN 240
200 IF T(J+4)<>0 THEN 240
210 IF T(J+5)<>0 THEN 240
220 IF T(J+6)<>1 THEN 240
230 K=J: GOTO 250
240 J=J+1: GOTO 160
250 C$=""
260 FOR F=0 TO 6
270 IF T(K+F)=0 THEN C$=C$+"0"
280 IF T(K+F)=1 THEN C$=C$+"1"
290 NEXT F
300 GOSUB 330
310 K=K+7: IF K>L-1 THEN END
320 GOTO 250
330 IF C$="1010001" THEN PRINT "{start}"
340 IF C$="0111110" THEN PRINT "{sep}"
350 IF C$="1111100" THEN PRINT "{end}"
360 IF C$="0000001" THEN PRINT " ";
370 IF C$="1000000" THEN PRINT "{1H}";
380 IF C$="0100000" THEN PRINT "{2H}";
390 IF C$="1100001" THEN PRINT "{3H}";
400 IF C$="0010000" THEN PRINT "{4H}";
410 IF C$="0110001" THEN PRINT "{6H}";
420 IF C$="1110000" THEN PRINT "{7H}";
430 IF C$="0001000" THEN PRINT "{8H}";
440 IF C$="1001001" THEN PRINT "{9H}";
450 IF C$="0101001" THEN PRINT "{AH}";
460 IF C$="1101000" THEN PRINT "{BH}";
470 IF C$="0011001" THEN PRINT "{CH}";
480 IF C$="1011000" THEN PRINT "{DH}";
490 IF C$="0111000" THEN PRINT "{EH}";
500 IF C$="1111001" THEN PRINT "{FH}";
510 IF C$="0000100" THEN PRINT "0";
520 IF C$="1000101" THEN PRINT "1";
530 IF C$="0100101" THEN PRINT "2";
540 IF C$="1100100" THEN PRINT "3";
550 IF C$="0010101" THEN PRINT "4";
560 IF C$="1010100" THEN PRINT "5";
570 IF C$="0110100" THEN PRINT "6";
580 IF C$="1110101" THEN PRINT "7";
590 IF C$="0001101" THEN PRINT "8";
600 IF C$="1001100" THEN PRINT "9";
610 IF C$="0101100“ THEN PRINT "{1AH}";
620 IF C$="1101101" THEN PRINT "{1BH}";
630 IF C$="0011100" THEN PRINT "{1CH}";
640 IF C$="1011101" THEN PRINT "{1DH}";
650 IF C$="0111101" THEN PRINT "{1EH}";
660 IF С$="1000011" THEN PRINT "A";
670 IF C$="0100011" THEN PRINT "В";
680 IF C$="1100010" THEN PRINT "C";
690 IF C$="0010011" THEN PRINT "D";
700 IF С$="1010010" THEN PRINT "E";
710 IF C$="0110010" THEN PRINT "F";
720 IF C$="1110011" THEN PRINT "G";
730 IF C$="0001011" THEN PRINT "H";
740 IF C$="1001010" THEN PRINT "I";
750 IF C$="0101010" THEN PRINT "J";
760 IF C$="1101011" THEN PRINT "K";
770 IF C$="0011010" THEN PRINT "L";
780 IF C$="1011011" THEN PRINT "M";
790 IF C$="0111011" THEN PRINT "N";
800 IF C$="1111010" THEN PRINT "O";
810 IF C$="0000111" THEN PRINT "P";
820 IF C$="1000110" THEN PRINT "Q";
830 IF C$="0100110" THEN PRINT "R";
840 IF C$="1100111" THEN PRINT "S";
850 IF C$="0010110" THEN PRINT "T";
860 IF C$="1010111" THEN PRINT "U";
870 IF C$="0110111" THEN PRINT "V";
880 IF C$="1110110" THEN PRINT "W";
890 IF C$="0001110' THEN PRINT "X";
900 IF C$="1001111" THEN PRINT "Y";
910 IF C$="0101111" THEN PRINT "Z";
920 IF C$="1101110'' THEN PRINT "{3BH}";
930 IF C$="0011111" THEN PRINT "{3DH}";
940 IF C$="1011110" THEN PRINT "{3EH}"
950 IF C$="1111111" THEN PRINT "{40H}";
960 RETURN
970 REM (c) 1996 Patrick GUEULLE
Время от времени приходится сталкиваться с файлом .CAR, который после считывания карты не мог быть декодирован надлежащим образом с помощью программ LECTISO.
Прежде чем приступить к изучению карты с использованием «магнитного разоблачителя», желательно провести простой анализ посредством специальной программы.
10 REM — PARITY.BAS—
20 KEY OFF: CLS
30 PRINT "имя файла, подлежащего проверке";
40 INPUT N$: IF N$ = "" THEN END
50 FOR F=1 TO LEN (N$)
60 IF MID$(N$,F,1) = "." THEN 90
70 NEXT F
80 N$=N$+".CAR"
90 OPEN N$ FOR INPUT AS #1
100 CLS: PRINT "идет контроль четности…": PRINT
110 DIM A(LOF(1))
120 M=0: WHILE NOT EOF(1)
130 INPUT#1,A(M): M=M+1: WEND
140 PRINT "0…0";
150 X=0
160 IF A(X) =1 THEN 180
170 X=X+1: GOTO 160
180 N=0: FOR F=X TO X+4
190 IF A(F) =1 THEN N=N+1: PRINT "1"; ELSE PRINT "0";
200 NEXT F: PRINT " ";
210 IF (N/2)-INT(N/2)=0 THEN 230
220 IF X>=M THEN 310 ELSE X=X+5: GOTO 180
230 IF N>0 THEN 290
240 FOR G=X TO M
250 IF A(G)>0 THEN 290
260 NEXT G
270 PRINT "0…0"