Шрифт:
Осуществить считывание позволяет программа LECT210.PAS, которая работает аналогично LECT75.PAS. Ее исполняемая версия (LECT210.EXE) может использоваться либо самостоятельно для создания файла CARTE.CAR на 630 бит, либо вызываться из другой программы в оболочке Basic.
Отметим, что 630 бит — это 90 раз по 7 бит, то есть они соответствуют 79 знакам, которые максимально может содержать дорожка ISO 1, плюс 77 нулей заполнения.
10 REM — LECTISO1.BAS —
20 KEY OFF: CLS: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT: PRINT
30 SHELL "LECT210.EXE"
40 OPEN "carte.car" FOR INPUT AS #1
50 DIM T(630)
60 FOR F=1 TO 630
70 INPUT#1,T(F)
80 NEXT F
90 J=1
100 IF T(J)<>1 THEN 160
110 IF T(J+1)<>0 THEN 160
120 IF T(J+2)<>1 THEN 160
130 IF T(J*3)<>0 THEN 160
140 IF T(J+4)<>0 THEN 160
141 IF T(J+5)<>0 THEN 160
142 IF T(J+6)<>1 THEN 160
150 K=J: GOTO 200
160 J=J+1:GOTO 100
200 C$=""
210 FOR F=0 TO 6
220 IF T(K+F) =0 THEN C$=C$+"0"
230 IF T(K+F)=1 THEN C$»C$+"1"
240 NEXT F
250 GOSUB 2000
260 K=K+7: IF K>623 THEN END
270 GOTO 200
2000 IF C$="1010001" THEN PRINT "{start}"
2010 IF C$="0111110" THEN PRINT "{sep}"
2020 IF C$="1111100" THEN PRINT "{end}"
2030 IF C$="0000001" THEN PRINT " ";
2031 IF C$="1000000" THEN PRINT "{1H}";
2032 IF C$="0100000" THEN PRINT "{2H}";
2033 IF C$="1100001" THEN PRINT "{3H}";
2034 IF C$="0010000" THEN PRINT "{4H}";
2036 IF C$="0110001" THEN PRINT "{6H}";
2037 IF C$="1110000" THEN PRINT "{7H}";
2038 IF C$="0001000" THEN PRINT "{8H}";
2039 IF C$="1001001" THEN PRINT "{9H}";
2040 IF C$="0101001" THEN PRINT "{AH}";
2041 IF C$="1101000" THEN PRINT "{BH}";
2042 IF C$="0011001- THEN PRINT "{CH}";
2043 IF C$="1011000- THEN PRINT "{DH}";
2044 IF C$="0111000" THEN PRINT "{EH}";
2045 IF C$="1111001" THEN PRINT "{FH}";
2060 IF C$="0000100" THEN PRINT "0";
2070 IF C$="1000101" THEN PRINT "1";
2080 IF C$="0100101" THEN PRINT "2";
2090 IF C$="1100100" THEN PRINT "3";
2100 IF C$="0010101" THEN PRINT "4"
2110 IF C$="1010100" THEN PRINT "5"
2120 IF C$="0110100" THEN PRINT "6";
2130 IF C$="1110101" THEN PRINT "7"
2140 IF C$="0001101" THEN PRINT "8";
2150 IF C$="1001100" THEN PRINT "9";