📄 t9.jam
字号:
IF (V82) THEN LET V58 = 0;
CALL L63;
LET V58 = b;
IF (!V82) THEN GOTO L71;
LET V82 = 0;
GOTO L70;
L71:
LET A18[0..9] = 01E;
CALL L267;
DRSCAN V16, A29[0..(V16 - 1)];
IF (DO_PROGRAM) THEN GOTO L72;
LET V75 = 1;
FOR V11 = 102 TO 103;
CALL L210;
CALL L236;
NEXT V11;
LET V75 = 0;
L72:
RETURN;
L76:
IF (V74) THEN PRINT "blank checking 7K device(s)...";
IF (!V74) THEN PRINT "verifying 7K device(s)...";
CALL L30;
CALL L300;
CALL L290;
FOR V11 = 1 TO 101;
CALL L210;
CALL L153;
IF (V42 != 0) THEN LET V11 = 101;
NEXT V11;
IF (V42 != 0) THEN GOTO L78;
IF (V74 && !DO_PROGRAM) THEN GOTO L77;
FOR V11 = 102 TO 103;
CALL L210;
CALL L153;
IF (V42 != 0) THEN LET V11 = 103;
NEXT V11;
L77:
IF (V42 != 0) THEN GOTO L78;
FOR V11 = 104 TO 107;
CALL L210;
CALL L153;
IF (V42 != 0) THEN LET V11 = 107;
NEXT V11;
IF (V42 != 0) THEN GOTO L78;
LET V45 = 1;
FOR V11 = 109 TO 113;
CALL L210;
CALL L153;
IF (V42 != 0) THEN LET V11 = 113;
NEXT V11;
IF (V42 != 0) THEN GOTO L78;
LET V45 = 0;
FOR V11 = 114 TO (V32 - 1);
CALL L210;
CALL L153;
IF (V42 != 0) THEN LET V11 = V32 - 1;
NEXT V11;
L78:
RETURN;
L93:
LET V74 = 1;
CALL L76;
LET V74 = 0;
RETURN;
L94:
CALL L30;
LET V37 = 100;
LET V38 = 100;
LET V29 = 1;
LET V11 = 0;
CALL L210;
LET V34 = 1;
IF (USE_FIXED_ALGORITHM) THEN GOTO L95;
CALL L153;
GOTO L96;
L95:
CALL COMPUTE_7K_N_BITS;
FOR i = 0 TO V20 - 1;
LET A31[i] = 0;
LET A57[i] = 0;
NEXT i;
L96:
FOR i = V1 TO 0 STEP -1;
LET A48[i] = 0;
IF (((A17[i] & 1) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L106;
LET V68 = 0;
FOR j = 0 TO i;
LET V26 = 0;
LET V2 = A12[j];
IF (i == j) THEN GOTO L97;
LET V26 = 1;
IF (((A17[j] & 1) == 0) ||
((A17[j] & 4) == 0)) THEN GOTO L97;
LET V26 = A8[V2] >> 1;
L97:
LET V68 = V68 + V26;
NEXT j;
FOR j = 0 TO 14;
LET A16[j] = 0;
LET V46 = A6[V2];
LET V47 = j / (V46 << 1);
LET V48 = (j % (V46 << 1)) >> 1;
LET V69 = 0;
IF (V48 < (V46 >> 1)) THEN GOTO L98;
LET V69 = 1;
LET V48 = V46 - V48 - 1;
L98:
LET V27 = V68 + (((2 * V47) + V69) * V24) +
(16 * V48) + (8 * (~j & 1));
FOR k = 0 TO 7;
IF (USE_FIXED_ALGORITHM) THEN GOTO L99;
IF (A31[V27 + k]) THEN
LET A16[j] = A16[j] | (1 << k);
GOTO L100;
L99:
IF ((A54[j << 1] & (1 << k)) != 0) THEN
LET A31[V27 + k] = 1;
IF ((A54[(j << 1) + 1] & (1 << k)) != 0) THEN
LET A57[V27 + k] = 1;
L100:
NEXT k;
IF (USE_FIXED_ALGORITHM) THEN
LET A16[j] = A54[j << 1];
NEXT j;
IF (!USE_FIXED_ALGORITHM) THEN GOTO L101;
PUSH i;
CALL L153;
POP i;
IF (V39) THEN LET V42 = 2;
L101:
IF ((A16[0] != 65) ||
(A16[1] != 76) ||
(A16[2] != 84) ||
(A16[3] != 69) ||
(A16[4] != 82) ||
(A16[5] != 65))
THEN LET V42 = 2;
IF (V42 != 0) THEN GOTO L106;
LET V35 = ((A16[6] - 48) * 10) + (A16[7] - 48);
LET V36 = A16[9] & 31;
LET V27 = 5 * 3 * (V2 - 1);
LET V40 = 0;
LET V72 = 300;
LET V73 = 100;
IF ((V36 & 24) == 16) THEN
LET V40 = 1;
FOR j = 0 TO (5 - 1);
IF (V40 ||
(V35 != A11[V27]) ||
(V36 != A11[V27 + 1])) THEN
GOTO L105;
LET V40 = 1;
IF ((A11[V27 + 2] & 1) != 1) THEN
GOTO L102;
LET V72 = A14[A16[8] & 31];
LET V73 = A15[(A16[8] >> 5) & 7];
L102:
IF ((A11[V27 + 2] & 2) != 2) THEN
GOTO L103;
LET k = 14;
IF (V2 == 2) THEN LET k = 11;
LET V72 = A14[((A16[k] >> 3) & 31) + 32];
LET V73 = A15[(A16[k] & 7) + 8];
L103:
IF ((A11[V27 + 2] & 4) != 4) THEN
GOTO L104;
LET V72 = 500;
LET V73 = 500;
L104:
IF ((A11[V27 + 2] & 128) != 128) THEN
GOTO L105;
LET V82 = 1;
LET A48[i] = A48[i] | 128;
L105:
LET V27 = V27 + 3;
NEXT j;
LET V27 = 0;
IF ((V36 & 15) > 9) THEN LET V27 = 7;
PRINT "Device #", V0 - i ," Silicon ID is ",
CHR$(A16[0]), CHR$(A16[1]), CHR$(A16[2]), CHR$(A16[3]),
CHR$(A16[4]), CHR$(A16[5]), CHR$(A16[6]), CHR$(A16[7]),
"(", CHR$(((V36 >> 4) & 1) + 48),
CHR$((V36 & 15) + 48 + V27), ")"
;
IF (V72 > V37) THEN LET V37 = V72;
IF (V73 > V38) THEN LET V38 = V73;
IF (!V40) THEN LET V42 = 3;
L106:
NEXT i;
IF ((V42 == 0) && V82) THEN CALL L31;
RETURN;
L149:
LET A18[0..9] = A19[0..9];
CALL L267;
WAIT 15 USEC;
LET A18[0..9] = A20[0..9];
CALL L267;
IF (V34 == 0) THEN GOTO L150;
IF (!USE_FIXED_ALGORITHM) THEN
DRSCAN V24, A29[0..(V24 - 1)], CAPTURE A31[V30..V31];
IF (USE_FIXED_ALGORITHM) THEN
DRSCAN V24, A29[0..(V24 - 1)], COMPARE A31[V30..V31],
A57[V30..V31], V40;
GOTO L152;
L150:
IF (V74) THEN GOTO L151;
DRSCAN V24, A29[0..(V24 - 1)], COMPARE A22[V30..V31],
A30[0..(V24 - 1)], V40;
GOTO L152;
L151:
DRSCAN V24, A29[0..(V24 - 1)],
COMPARE A30[0..(V24 - 1)], A30[0..(V24 - 1)],
V40;
L152:
IF (!V40) THEN LET V39 = 1;
RETURN;
L153:
LET V39 = 0;
LET V40 = 1;
IF (V10 > 89) THEN GOTO L154;
LET A18[0..9] = 016;
CALL L267;
DRSCAN V21, A26[0..(V21 - 1)];
LET A18[0..9] = 01A;
CALL L267;
DRSCAN V21, A26[0..(V21 - 1)];
L154:
IF (V29 == 0) THEN
LET A19[0..9] = 036;
IF (V29 == 1) THEN
LET A19[0..9] = 03A;
IF (V29 == 2) THEN
LET A19[0..9] = 032;
IF (V49) THEN CALL COMPUTE_7K_N_BITS;
IF (V34 == 1) THEN GOTO L155;
LET V30 = V15;
LET V31 = V30 + (V24 - 1);
GOTO L156;
L155:
LET V30 = 0;
LET V31 = V24 - 1;
L156:
LET V81 = 0;
LET V28 = 4;
IF (V10 > 88) THEN LET V28 = 0;
FOR i = 0 TO V28;
IF (i == V28) THEN LET V81 = 1;
PUSH i;
LET A20[0..9] = 022;
CALL L149;
IF (V29 != 0) THEN GOTO L157;
LET A19[0..9] = 032;
CALL L149;
LET A19[0..9] = 036;
L157:
LET V30 = V30 + V24;
LET V31 = V31 + V24;
IF (!V45) THEN GOTO L158;
LET b = 0;
CALL L292;
GOTO L159;
L158:
IF (V10 != V51) THEN GOTO L159;
LET V44 = 1;
LET b = 0;
CALL L288;
L159:
LET A20[0..9] = 026;
CALL L149;
IF (V29 != 0) THEN GOTO L160;
LET A19[0..9] = 032;
CALL L149;
LET A19[0..9] = 036;
L160:
LET V30 = V30 + V24;
LET V31 = V31 + V24;
IF (!V45) THEN GOTO L161;
LET b = 1;
CALL L292;
GOTO L162;
L161:
IF (V10 != V51) THEN GOTO L162;
LET b = 1;
CALL L288;
LET V44 = 0;
CALL L290;
L162:
IF (V81) THEN GOTO L163;
LET A18[0..9] = 016;
CALL L267;
POP i;
DRSCAN V21, A26[((i + 1) * V21)..(((i + 2) * V21) - 1)];
PUSH i;
LET A18[0..9] = 01A;
CALL L267;
POP i;
DRSCAN V21, A26[((i + 1) * V21)..(((i + 2) * V21) - 1)];
PUSH i;
L163:
POP i;
NEXT i;
LET V15 = V30;
IF (!V39 || (V34 == 1)) THEN
GOTO L164;
IF (V74) THEN LET V42 = 5;
IF (!V74) THEN LET V42 = 6;
L164:
RETURN;
L210:
LET V30 = 0;
FOR j = 0 TO V1;
LET V31 = V30;
IF (((A17[j] & 1) == 0) ||
((A17[j] & 4) == 0) ||
((A17[j] & 8) != 0)) THEN GOTO L212;
LET V2 = A12[j];
IF (V11 >= (A0[V2] - 108)) THEN GOTO L211;
LET V31 = V31 + (A0[V2] - 1);
LET A28[V31 - V11] = 1;
IF (V11 < 108) THEN LET A28[(107 + V30) - V11] = 1;
GOTO L212;
L211:
IF ((A17[j] & 8) == 0) THEN LET V49 = 1;
LET A17[j] = A17[j] | 8;
L212:
LET V30 = V31 + 1;
NEXT j;
LET A18[0..9] = 01E;
CALL L267;
DRSCAN V30, A28[0..(V30 - 1)];
LET V30 = 0;
FOR j = 0 TO V1;
LET V31 = V30;
LET V2 = A12[j];
IF (((A17[j] & 1) == 0) ||
((A17[j] & 4) == 0) ||
((A17[j] & 8) != 0)) THEN GOTO L213;
LET V31 = V31 + (A0[V2] - 1);
LET A28[V31 - V11] = 0;
IF (V11 < 108) THEN LET A28[(107 + V30) - V11] = 0;
L213:
LET V30 = V31 + 1;
NEXT j;
IF (V49 && (V11 == V52)) THEN
CALL L300;
LET V10 = V11;
RETURN;
L236:
LET V30 = V14;
IF (V49) THEN CALL COMPUTE_7K_N_BITS;
LET V31 = V30 + (V23 - 1);
IF (V75) THEN GOTO L237;
LET A18[0..9] = 016;
CALL L267;
DRSCAN V23, A21[V30..V31];
LET V30 = V30 + V23;
LET V31 = V31 + V23;
LET A18[0..9] = 01A;
CALL L267;
DRSCAN V23, A21[V30..V31];
LET V30 = V30 + V23;
LET V31 = V31 + V23;
GOTO L238;
L237:
LET A18[0..9] = 016;
CALL L267;
DRSCAN V23, A29[0..(V23 - 1)];
LET A18[0..9] = 01A;
CALL L267;
DRSCAN V23, A29[0..(V23 - 1)];
L238:
CALL L65;
LET V14 = V30;
RETURN;
L252:
IF (DO_SECURE == 0) THEN GOTO L257;
CALL L30;
FOR i = 0 TO V1;
IF (((A17[i] & V4) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L253;
IF ((A17[i] & 16) == 0) THEN
LET A17[i] = A17[i] | 8;
IF ((A17[i] & 16) != 0) THEN
LET V75 = 1;
L253:
NEXT i;
IF (!DO_SECURE_ALL && (V75 == 0)) THEN
GOTO L257;
IF (DO_SECURE_ALL && (V75 == 0)) THEN
GOTO L254;
LET V11 = 108;
CALL L210;
CALL L236;
L254:
IF (!DO_SECURE_ALL) THEN GOTO L257;
LET A18[0..9] = 03E;
CALL L267;
CALL L30;
LET V75 = 0;
FOR i = 0 TO V1;
IF (((A17[i] & V4) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L256;
IF ((A17[i] & 16) != 0) THEN GOTO L255;
LET A17[i] = A17[i] | 16;
LET V75 = 1;
GOTO L256;
L255:
LET A17[i] = A17[i] & ~16;
LET A17[i] = A17[i] | 8;
L256:
NEXT i;
IF (V75 == 0) THEN GOTO L257;
LET V11 = 108;
CALL L210;
CALL L236;
L257:
LET V75 = 0;
RETURN;
L264:
FOR i = 0 TO V1;
LET V2 = A12[i];
IF (((A17[i] & V4) != 0) &&
((A17[i] & 4) != 0)) THEN
IF (A0[V2] > V32) THEN
LET V32 = A0[V2];
NEXT i;
LET V32 = V32 - 108;
RETURN;
L267:
LET V41 = 0;
LET V27 = 0;
IF (!V56) THEN GOTO L268;
LET V56 = 0;
LET V41 = 50;
IF (!USE_EXTEND_IR_DELAY_METHOD) THEN GOTO L268;
LET V27 = 50;
LET A32[0..49] = A30[0..49];
L268:
FOR i = 0 TO V1;
IF ((A17[i] & 8) != 0) THEN GOTO L269;
IF (((A17[i] & V4) != 0) &&
((A17[i] & 4) != 0)) THEN GOTO L270;
LET A33[0..(A25[i] - 1)] = A39[0..(A25[i] - 1)];
IF (((A17[i] & 1) != 0) &&
((A17[i] & 4) != 0)) THEN
LET A33[0..(A25[i] - 1)] = 03E;
LET A32[V27..(V27 + (A25[i] - 1))] = A33[0..(A25[i] - 1)];
LET V27 = V27 + A25[i];
GOTO L271;
L269:
LET A32[V27..(V27 + 9)] = 03E;
LET V27 = V27 + 10;
GOTO L271;
L270:
LET A32[V27..(V27 + 9)] = A18[0..9];
LET V27 = V27 + 10;
L271:
NEXT i;
IF ((V41 == 0) || USE_EXTEND_IR_DELAY_METHOD) THEN
GOTO L272;
STATE DRPAUSE;
WAIT DRPAUSE, 5 USEC, DRPAUSE;
L272:
IRSCAN V27, A32[0..(V27 - 1)];
WAIT IRPAUSE, V83 USEC, IDLE;
WAIT 3 CYCLES;
RETURN;
COMPUTE_7K_N_BITS:
LET V23 = 0;
LET V24 = 0;
FOR i = 0 TO (V19 - 1);
LET A30[i] = 1;
NEXT i;
FOR i = 0 TO V1;
LET V25 = 1;
LET V26 = 1;
IF (((A17[i] & 1) == 0) ||
((A17[i] & 4) == 0) ||
((A17[i] & 8) != 0)) THEN GOTO COMPUTE_7K_N_BITS_1;
LET V2 = A12[i];
LET V25 = A1[V2];
LET V26 = A5[V2];
GOTO COMPUTE_7K_N_BITS_2;
COMPUTE_7K_N_BITS_1:
IF (V74) THEN LET A30[V24] = 0;
COMPUTE_7K_N_BITS_2:
LET V23 = V23 + V25;
LET V24 = V24 + V26;
NEXT i;
LET V49 = 0;
RETURN;
L288:
LET j = 0;
FOR i = 0 TO V1;
LET k = j;
IF (((A17[i] & 1) == 0) ||
((A17[i] & 4) == 0) ||
((A17[i] & 8) != 0)) THEN GOTO L289;
LET V2 = A12[i];
LET k = k + (A5[V2] - 1);
IF (V10 != A9[3 * (V2 - 1)]) THEN
GOTO L289;
LET V27 = (16 * (A6[V2] -
A9[(3 * (V2 - 1)) + 2])) -
A9[(3 * (V2 - 1)) + 1] - 1;
IF (V43) THEN LET A29[V27 + j] = b;
IF (V44) THEN LET A30[V27 + j] = b;
L289:
LET j = k + 1;
NEXT i;
RETURN;
L290:
LET j = 317;
IF (V51 == -1) THEN LET V51 = 0;
FOR i = 0 TO V1;
IF (((A17[i] & 1) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L291;
LET V2 = A12[i];
IF (V51 >= A9[3 * (V2 - 1)]) THEN
GOTO L291;
IF (j > (A9[3 * (V2 - 1)] - V51)) THEN
LET j = A9[3 * (V2 - 1)] - V51;
L291:
NEXT i;
IF (j != 317) THEN LET V51 = V51 + j;
IF (j == 317) THEN LET V51 = -1;
RETURN;
L292:
LET j = 0;
FOR i = 0 TO V1;
LET k = j;
IF (((A17[i] & 1) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L293;
LET V2 = A12[i];
LET k = k + (A5[V2] - 1);
LET V27 = (16 * (A6[V2] -
A10[(2 * (V2 - 1)) + 1])) -
A10[2 * (V2 - 1)] - 1;
LET A30[V27 + j] = b;
L293:
LET j = k + 1;
NEXT i;
RETURN;
L300:
LET j = 317;
FOR i = 0 TO V1;
IF (((A17[i] & 1) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L301;
LET V2 = A12[i];
IF (V52 >= (A0[V2] - 108)) THEN
GOTO L301;
IF (j > A0[V2]) THEN LET j = A0[V2];
L301:
NEXT i;
IF (j != 317) THEN LET V52 = j - 108;
IF (j == 317) THEN LET V52 = -1;
RETURN;
' END OF FILE
CRC DABD;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -