📄 myfifo.jam
字号:
IF (V33 < A7[V2]) THEN
V33 = A7[V2];
L47:
NEXT i;
V12 = 0;
V13 = 0;
FOR i = 0 TO V1;
V12 = V12 + A25[i];
IF (A25[i] > V13) THEN V13 = A25[i];
NEXT i;
FOR i = 0 TO (V13 - 1);
A39[i] = 1;
NEXT i;
FOR i = 0 TO 4;
j = 10 * i;
A34[(j + 9)..j] = $016;
A35[(j + 9)..j] = $01A;
A36[(j + 9)..j] = $022;
A37[(j + 9)..j] = $026;
FOR k = 0 TO 2;
b = 0;
IF ((i & (1 << k)) != 0) THEN b = 1;
A34[j + k + 7] = b;
A35[j + k + 7] = b;
A36[j + k + 7] = b;
A37[j + k + 7] = b;
NEXT k;
NEXT i;
FOR i = 0 TO 6;
j = 10 * i;
A38[(j + 9)..j] = $02A;
FOR k = 0 TO 2;
b = 0;
IF ((i & (1 << k)) != 0) THEN b = 1;
A38[j + k + 7] = b;
NEXT k;
NEXT i;
FOR i = 0 TO V1;
A52[i] = 0;
IF (((A13[i] & 256) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L48;
V2 = A12[i];
A52[i] =
A5[V2] - (80 * A6[V2]);
L48:
NEXT i;
CALL L95;
IRSTOP IRPAUSE;
DRSTOP IDLE;
STATE IDLE;
IF(!(V101 || V103 || V108 || V107 ||
V100 || V102
) &&
V105) THEN GOTO L75;
IF (V101) THEN CALL L97;
IF (V42 != 0) THEN GOTO L75;
FOR i = 0 TO V1;
IF (((A17[i] & (1 | 2)) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 1 | 2;
NEXT i;
IF (V4 != (1 | 2)) THEN
GOTO L49;
A18[9..0] = $071;
CALL L431;
WAIT 10000 USEC;
L49:
FOR i = 0 TO V1;
IF (((A17[i] & 256) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 256;
NEXT i;
IF (V4 != 256) THEN
GOTO L61;
A18[9..0] = $332;
CALL L431;
WAIT 10000 USEC;
V203 = 0;
L61:
FOR i = 0 TO V1;
IF (((A17[i] & 512) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 512;
NEXT i;
IF (V4 != 512) THEN
GOTO L62;
A18[9..0] = $044;
CALL L431;
WAIT 10000 USEC;
L62:
FOR i = 0 TO V1;
IF (((A17[i] & 2048) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 2048;
NEXT i;
IF (V4 != 2048) THEN
GOTO L63;
IF (V103 || V102) THEN V38 = 1;
V38 = 0;
WAIT 10000 USEC;
L63:
FOR i = 0 TO V1;
IF (((A17[i] & 16384) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 16384;
NEXT i;
IF (V4 != 16384) THEN
GOTO L75;
V203 = 0;
L75:
ENDPROC;
PROCEDURE L76 USES DEVICE_DATA, TEMP_DATA, L431 ;
PREIR 0;
POSTIR 0;
PREDR 0;
POSTDR 0;
FOR i = V1 TO 0 STEP -1;
IF (((A17[i] & 32) == 0) ||
((A17[i] & 4) == 0) ||
(V42 != 0)) THEN
GOTO L79;
IF (A94[i] == 0) THEN GOTO L79;
V77 = 0;
V78 = 0;
V30 = 0;
FOR j = V1 TO 0 STEP -1;
IF (i == j) THEN GOTO L77;
IF ((A17[j] & 32) != 0) THEN
A17[j] = A17[j] & ~4;
IF (i > j) THEN V77 = V77 + 1;
IF (i < j) THEN V78 = V78 + 1;
IF (j < i) THEN V30 = V30 + A94[j];
L77:
NEXT j;
V31 = V30 + A94[i] - 1;
IF(V31 == V30) THEN GOTO L78;
PUSH i;
A18[9..0] = $00A;
CALL L431;
POP i;
PREDR V77;
POSTDR V78;
FOR j = 0 TO 100;
DRSCAN A94[i], A95[V31..V30], CAPTURE A45[79..0];
IF(A45[79] == 0) THEN j = 100;
NEXT j;
if(A45[79] == 0) THEN GOTO L78;
V42 = 12;
GOTO L80;
L78:
PREDR V77;
POSTDR V78;
DRSCAN 80, V192[79..0], CAPTURE A45[79..0];
L79:
NEXT i;
L80:
PREIR 0;
POSTIR 0;
PREDR 0;
POSTDR 0;
ENDPROC;
PROCEDURE L81 USES DEVICE_DATA, TEMP_DATA, L96, L431, L97, L102
, L76
;
IF (V42 == 1) THEN GOTO L89;
CALL L96;
IF (!V76 || (V42 != 0)) THEN GOTO L83;
A18[9..0] = $003;
V4 = 32;
CALL L431;
FOR i = 0 TO V1;
IF (A94[i] != 0) THEN
V191 = 1;
NEXT i;
IF(V191 == 1) THEN GOTO L82;
GOTO L83;
L82:
CALL L76;
L83:
FOR i = 0 TO V1;
IF (((A17[i] & (1 | 2)) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 1 | 2;
NEXT i;
IF (V4 != (1 | 2)) THEN
GOTO L84;
A18[9..0] = $079;
CALL L431;
WAIT 10000 USEC;
L84:
FOR i = 0 TO V1;
IF (((A17[i] & 256) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 256;
NEXT i;
IF (V4 != 256) THEN
GOTO L85;
A18[9..0] = $006;
CALL L431;
L85:
FOR i = 0 TO V1;
IF (((A17[i] & (512 | 2048)) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 512 | 2048;
NEXT i;
IF (V4 != (512 | 2048)) THEN
GOTO L86;
A18[9..0] = $04A;
CALL L431;
WAIT 10000 USEC;
L86:
FOR i = 0 TO V1;
IF (((A17[i] & 16384) != 0) &&
((A17[i] & 4) != 0) &&
((A17[i] & 8) == 0)) THEN
V4 = 16384;
NEXT i;
IF (V4 != 16384) THEN
GOTO L87;
A18[9..0] = $201;
IF (V228 == 1) THEN A18[9..0] = $166;
CALL L431;
WAIT 10000 USEC;
L87:
IF (!V76 || (V42 != 0)) THEN GOTO L88;
WAIT IDLE, 256 CYCLES, 10 USEC, IDLE;
V80 = 0;
CALL L97;
IF (V42 != 0) THEN V42 = 10;
IF (V42 != 0) THEN GOTO L89;
L88:
A18[9..0] = $3FF;
CALL L431;
IF (V105 && (V42 == 0)) THEN CALL L102;
L89:
IF (V42 == 0) THEN
PRINT "DONE";
IF (V42 == 1) THEN
PRINT "Invalid option combination specified";
IF (V42 == 6) THEN
PRINT "Unrecognized device";
IF (V42 == 7) THEN
PRINT "Device revision is not supported";
IF ((V42 == 10) && (V103)) THEN
PRINT "Device programming failure";
IF (V42 == 9) THEN
PRINT "Device is not blank";
IF (V42 == 11) THEN
PRINT "Device verify failure";
IF ((V42 == 10) && (V101)) THEN
PRINT "Device configuration failure";
IF (V42 == 4) THEN
PRINT "Unable to read USERCODE/UES from device #", V84 + 1;
IF (V42 == 12) THEN
PRINT "Failed to configure Excalibur stripe";
IF (V42 == 14) THEN
PRINT "Failed to erase or program ASC device";
ENDPROC;
PROCEDURE L90 USES DEVICE_DATA, TEMP_DATA;
j = 0;
FOR i = 0 TO V1;
IF ((j <= V3) &&
((A13[i] & V4) != 0) &&
((A13[i] & 4) != 0)) THEN j = i + 1;
NEXT i;
IF (j > V3) THEN GOTO L91;
V2 = 0;
V3 = 0;
GOTO L94;
L91:
V2 = A12[j - 1];
V3 = j;
IF(!V216) THEN GOTO L92;
V2 = A105[j - 1];
L92:
IF ((V4 == 32) || (V4 == 256) ||
(V4 == 512) || (V4 == 2048) ||
(V4 == 16384) || (V4 == 32768))
THEN GOTO L94;
IF (V58) THEN GOTO L93;
A41[9..0] = $066;
GOTO L94;
L93:
A41[9..0] = $006;
L94:
IF (V4 == 1) THEN A40[9..0] = $00E;
IF (V4 == 1) THEN A44[9..0] = $012;
IF (V4 == 2) THEN A40[9..0] = $38E;
IF (V4 == 2) THEN A44[9..0] = $392;
ENDPROC;
PROCEDURE L95 USES DEVICE_DATA, TEMP_DATA, L96
;
CALL L96;
V10 = 0;
V14 = 0;
V15 = 0;
V89 = 0;
V49 = 1;
V34 = 0;
V51 = -1;
V52 = -1;
V45 = 0;
V29 = 1;
IF (V103) THEN V29 = 0;
IF (V102 && V74) THEN V29 = 2;
ENDPROC;
PROCEDURE L96 USES DEVICE_DATA, TEMP_DATA;
FOR i = 0 TO V1;
A17[i] = (A13[i] | A48[i]);
IF (((A17[i] & 4) != 0) &&
((A17[i] & (1 | 256 | 2 | 512 | 2048 | 16384)) != 0) &&
!V102 && !V100 && !V103 && !V108 &&
!V107 && !V106 && V101) THEN
A17[i] = A17[i] & ~4;
IF (((A17[i] & 4) != 0) &&
((A17[i] & 32) != 0) && ((A17[i] & 32768) == 0) && !V101 &&
(V102 || V100 || V103 || V108 ||
V107 || V106)) THEN
A17[i] = A17[i] & ~4;
NEXT i;
ENDPROC;
PROCEDURE L97 USES DEVICE_DATA, TEMP_DATA, L96;
INTEGER V79 = 32 * V0;
BOOLEAN A46[V79];
INTEGER A47[8];
INTEGER V145;
CALL L96;
STATE IDLE;
V27 = 0;
FOR i = 0 TO V1;
A18[9..0] = A39[(A25[i] - 1)..0];
IF ((A17[i] & (1 | 2 | 256 | 512 | 2048 | 16384)) != 0) THEN
A18[9..0] = $059;
IF ((A17[i] & 32) != 0) THEN
A18[9..0] = $006;
A32[(V27 + (A25[i] - 1))..V27] = A18[(A25[i] - 1)..0];
V27 = V27 + A25[i];
NEXT i;
IRSCAN V27, A32[(V27 - 1)..0];
WAIT IRPAUSE, 5 USEC, IDLE;
WAIT 3 CYCLES;
DRSCAN V79, A46[(V79 - 1)..0], CAPTURE A46[(V79 - 1)..0];
V27 = 0;
FOR i = 0 TO V1;
IF (A46[V27] == 1) THEN GOTO L98;
IF (V80) THEN
PRINT "Device #", V0 - i, " unable to read IDCODE";
IF (V101 && ((A17[i] & 32) != 0) &&
((A17[i] & 4) != 0)) THEN V42 = 6;
GOTO L99;
L98:
FOR j = 0 TO 7;
A47[j] = 0;
FOR k = 0 TO 3;
IF (A46[V27 + (4 * j) + k]) THEN
A47[j] = A47[j] | (1 << k);
NEXT k;
A47[j] = A47[j] + 48;
IF (A47[j] >= 58) THEN A47[j] = A47[j] + 7;
NEXT j;
IF (V80) THEN
PRINT "Device #", V0 - i, " IDCODE is ",
CHR$(A47[7]), CHR$(A47[6]),
CHR$(A47[5]), CHR$(A47[4]),
CHR$(A47[3]), CHR$(A47[2]),
CHR$(A47[1]), CHR$(A47[0]);
IF (V101 && ((A17[i] & 32) != 0) &&
((A17[i] & 4) != 0) && (A47[0] != 68) &&
(A47[1] != 68)) THEN
V42 = 6;
V27 = V27 + 31;
L99:
V27 = V27 + 1;
NEXT i;
V27 = 0;
FOR i = 0 TO V1;
IF(A61[i] != 0) THEN GOTO L100;
IF(A46[V27] != 0) THEN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -