📄 myfifo.jam
字号:
V42 = 6;
V27 = V27 + 1;
NEXT i;
GOTO L101;
L100:
V145 = 0;
FOR j = 0 TO 31;
IF(A46[(V27 + j)]) THEN
V145 = V145 + (1 << j);
NEXT j;
V27 = V27 + 32;
IF(A61[i] != V145) THEN
V42 = 6;
NEXT i;
L101:
ENDPROC;
PROCEDURE L102 USES DEVICE_DATA, TEMP_DATA, L96, L431, L108;
j = 0;
k = V1;
V84 = V84 - 1;
IF (V84 == -1) THEN GOTO L103;
IF ((V84 < 0) || (V84 > V1) ||
(((A17[V1 - V84] & 256) == 0) &&
((A17[V1 - V84] & 32) == 0) &&
((A17[V1 - V84] & 512) == 0) &&
((A17[V1 - V84] & 16384) == 0) &&
((A17[V1 - V84] & 2048) == 0))) THEN
V42 = 4;
IF (V42 != 0) THEN GOTO L107;
j = V84;
k = V84;
L103:
CALL L96;
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 L104;
A18[9..0] = $006;
CALL L431;
WAIT 10000 USEC;
L104:
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 L105;
A18[9..0] = $04A;
CALL L431;
WAIT 10000 USEC;
L105:
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 L106;
A18[9..0] = $201;
CALL L431;
WAIT 10000 USEC;
L106:
A18[9..0] = $3FF;
CALL L431;
STATE IDLE;
FOR i = 0 TO (V19 - 1);
A30[i] = 1;
NEXT i;
FOR i = j TO k;
V84 = i;
PUSH i; PUSH j; PUSH k;
CALL L96;
V4 = 0;
IF (((A17[V1 - V84] & 256) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 256;
IF (((A17[V1 - V84] & 16384) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 16384;
IF (((A17[V1 - V84] & 32) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 32;
IF (((A17[V1 - V84] & 512) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 512;
IF (((A17[V1 - V84] & 2048) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 2048;
IF (V4 != 0) THEN CALL L108;
POP k; POP j; POP i;
NEXT i;
L107:
V84 = 0;
ENDPROC;
PROCEDURE L108 USES DEVICE_DATA, TEMP_DATA, L431, L109;
j = V1 - V84;
FOR i = 0 TO V1;
IF (((A17[i] & V4) != 0) &&
((A17[i] & 4) != 0) && (i != j)) THEN
A17[i] = A17[i] | 8;
NEXT i;
IF (V4 == 256) THEN
A18[9..0] = $007;
IF (V4 == 16384) THEN
A18[9..0] = $007;
IF ((V4 == 512) || (V4 == 2048)) THEN
A18[9..0] = $079;
IF (V4 == 32) THEN
A18[9..0] = $007;
CALL L431;
DRSCAN 32 + j, A30[(32 + j - 1)..0], CAPTURE A31[(32 + j - 1)..0];
V86 = 0;
FOR i = 0 TO 31;
IF (A31[i + j]) THEN
V86 = V86 | (1 << i);
NEXT i;
if (!(((V4 == 512) || (V4 == 2048)) && V103)) THEN
CALL L109;
ENDPROC;
PROCEDURE L109 USES DEVICE_DATA, TEMP_DATA;
INTEGER A58[8];
EXPORT "DEVICE", V84 + 1;
EXPORT "USERCODE", V86;
FOR i = 0 TO 7;
V27 = 0;
A58[i] = V86 & 15;
IF (A58[i] > 9) THEN V27 = 7;
A58[i] = A58[i] + 48 + V27;
V86 = V86 >> 4;
NEXT i;
PRINT "Device #", V84 + 1, " USERCODE code is ",
CHR$(A58[7]), CHR$(A58[6]),
CHR$(A58[5]), CHR$(A58[4]),
CHR$(A58[3]), CHR$(A58[2]),
CHR$(A58[1]), CHR$(A58[0]);
ENDPROC;
PROCEDURE L110 USES DEVICE_DATA, TEMP_DATA, L96
;
j = 0;
k = V1;
V34 = 1;
V29 = 1;
V84 = V84 - 1;
IF (V84 == -1) THEN GOTO L112;
IF ((V84 < 0) || (V84 > V1) ||
(((A17[V1 - V84] & 1) == 0) &&
((A17[V1 - V84] & 2) == 0))) THEN
V42 = 4;
IF (V42 != 0) THEN GOTO L113;
L111:
j = V84;
k = V84;
L112:
FOR i = j TO k;
V84 = i;
PUSH i; PUSH j; PUSH k;
CALL L96;
V86 = 0;
POP k; POP j; POP i;
NEXT i;
L113:
V84 = 0;
ENDPROC;
PROCEDURE L120 USES DEVICE_DATA, TEMP_DATA;
INTEGER V85[8];
EXPORT "DEVICE", V84 + 1;
EXPORT "UES", V86;
FOR i = 0 TO 3;
V27 = 0;
V85[i] = V86 & 15;
IF (V85[i] > 9) THEN V27 = 7;
V85[i] = V85[i] + 48 + V27;
V86 = V86 >> 4;
NEXT i;
PRINT "Device #", V84 + 1, " UES code is ",
CHR$(V85[3]), CHR$(V85[2]),
CHR$(V85[1]), CHR$(V85[0]);
ENDPROC;
PROCEDURE L121 USES DEVICE_DATA, TEMP_DATA, L431;
A18[9..0] = $00A;
CALL L431;
PREDR V77;
POSTDR V78;
DRSCAN 80, V189[79..0], CAPTURE A45[79..0];
FOR i = 0 TO 100;
PREDR V77;
POSTDR V78;
DRSCAN 80, A29[79..0], CAPTURE A45[79..0];
IF (A45[79] == 0) THEN i = 100;
NEXT i;
IF (A45[79] == 0) THEN GOTO L122;
V42 = 12;
GOTO L123;
L122:
PREDR V77;
POSTDR V78;
DRSCAN 80, V190[79..0], CAPTURE A45[79..0];
FOR i = 0 TO 100;
PREDR V77;
POSTDR V78;
DRSCAN 80, A29[79..0], CAPTURE A45[79..0];
IF (A45[79] == 0) THEN i = 100;
NEXT i;
IF (A45[79] == 0) THEN GOTO L123;
V42 = 12;
L123:
ENDPROC;
PROCEDURE L124 USES DEVICE_DATA, TEMP_DATA;
V188 = (V187 - V186)/80;
FOR i = 0 TO V188;
FOR j = 0 TO 100;
PREDR V77;
POSTDR V78;
DRSCAN 80, A93[(V186 + 79)..V186], CAPTURE A45[79..0];
IF (A45[79] == 0) THEN j = 100;
NEXT j;
IF (A45[79] == 0) THEN GOTO L125;
V42 = 12;
i = V188;
GOTO L126;
L125:
V186 = V186 + 80;
L126:
NEXT i;
ENDPROC;
PROCEDURE L127 USES DEVICE_DATA, TEMP_DATA, L96, L431, L124, L121;
PRINT "configuring SRAM device(s)...";
CALL L96;
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 L130;
V77 = 0;
V78 = 0;
V30 = 0;
V186 = 0;
FOR j = V1 TO 0 STEP -1;
IF (i == j) THEN GOTO L128;
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 + A43[j];
IF (j < i) THEN V186 = V186 + A92[j];
L128:
NEXT j;
IF(A92[i] == 0) THEN
GOTO L129;
PUSH i;
CALL L121;
POP i;
V187 = V186 + A92[i] - 1;
PUSH i;
CALL L124;
POP i;
L129:
V31 = V30 + A43[i] - 1;
POSTDR V78;
PUSH i;
A18[9..0] = $002;
CALL L431;
POP i;
DRSCAN A43[i], A42[V31..V30];
IF (USE_REV0_PROG_ALG) THEN DRSCAN 32, A30[31..0];
PUSH i;
A18[9..0] = $004;
CALL L431;
POP i;
PREDR V77;
POSTDR V78;
DRSCAN A59[i], A29[A59[i]-1..0], CAPTURE A45[A59[i]-1..0];
IF !A45[A60[i]] THEN V42 = 10;
PUSH i;
CALL L96;
POP i;
L130:
NEXT i;
PREIR 0;
POSTIR 0;
PREDR 0;
POSTDR 0;
IF (V42 != 0) THEN
GOTO L131;
V76 = 1;
L131:
ENDPROC;
PROCEDURE L431 USES DEVICE_DATA, TEMP_DATA;
V41 = 0;
V27 = 0;
IF (!V56) THEN GOTO L432;
V56 = 0;
V41 = 50;
IF (!USE_EXTEND_IR_DELAY_METHOD) THEN GOTO L432;
V27 = 50;
A32[49..0] = A30[49..0];
L432:
FOR i = 0 TO V1;
IF ((A17[i] & 8) != 0) THEN GOTO L433;
IF (((A17[i] & V4) != 0) &&
((A17[i] & 4) != 0)) THEN GOTO L435;
A33[(A25[i] - 1)..0] = A39[(A25[i] - 1)..0];
IF (((A17[i] & 1) != 0) &&
((A17[i] & 4) != 0)) THEN
A33[(A25[i] - 1)..0] = $03E;
A32[(V27 + (A25[i] - 1))..V27] = A33[(A25[i] - 1)..0];
V27 = V27 + A25[i];
GOTO L438;
L433:
IF ((A17[i] & 2) != 0) THEN GOTO L434;
A32[(V27 + 9)..V27] = $3FF;
IF ((A17[i] & 1) != 0) THEN
A32[(V27 + 9)..V27] = $03E;
V27 = V27 + 10;
GOTO L438;
L434:
IF (!V57) THEN GOTO L435;
A32[(V27 + 9)..V27] = $02A;
V27 = V27 + 10;
GOTO L438;
L435:
l = 0;
IF ((A18[20] == 1) && ((A17[i] & 64) != 0)) THEN
l = 10;
A32[(V27 + 9)..V27] = A18[(l + 9)..l];
V27 = V27 + 10;
GOTO L438;
L438:
NEXT i;
IF ((V41 == 0) || USE_EXTEND_IR_DELAY_METHOD) THEN
GOTO L439;
STATE DRPAUSE;
WAIT DRPAUSE, 5 USEC, DRPAUSE;
L439:
IRSCAN V27, A32[(V27 - 1)..0];
V57 = 0;
WAIT IRPAUSE, V83 USEC, IRPAUSE;
IF (V91) THEN GOTO L440;
STATE IDLE;
WAIT 3 CYCLES;
L440:
ENDPROC;
PROCEDURE L491 USES DEVICE_DATA, TEMP_DATA;
V23 = 0;
V24 = 0;
FOR i = 0 TO (V19 - 1);
A30[i] = 1;
NEXT i;
FOR i = 0 TO V1;
V25 = 1;
V26 = 1;
IF(V216) THEN V25 = 0;
IF(V216) THEN V26 = 0;
IF (((A17[i] & V4) == 0) ||
((A17[i] & 4) == 0) ||
((A17[i] & 8) != 0)) THEN GOTO L492;
V2 = A12[i];
IF(V216) THEN V2 = A105[i];
V25 = A1[V2];
V26 = A5[V2];
GOTO L493;
L492:
IF (V74) THEN A30[V24] = 0;
L493:
V23 = V23 + V25;
V24 = V24 + V26;
NEXT i;
V49 = 0;
ENDPROC;
' END OF FILE
CRC E744;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -