📄 5050pwm.jam
字号:
j = 1;
IF (((A13[i] & 2) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L48;
V2 = A12[i];
j = A0[V2];
L48:
V17 = V17 + j;
NEXT i;
V181 = 0;
FOR i = 0 TO V1;
j = 1;
IF (((A13[i] & 2048) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L49;
V2 = A12[i];
j = A0[V2];
L49:
V181 = V181 + j;
NEXT i;
V18 = V17;
IF (V16 > V18) THEN V18 = V16;
IF (V87 > V18) THEN V18 = V87;
IF (V181 > V18) THEN V18 = V181;
V20 = 32 + V1;
IF ((2 * 5 * 5 * V67) > V20) THEN V20 = 2 * 5 * 5 * V67;
IF ((2 * 5 * V66) > V20) THEN V20 = 2 * 5 * V66;
IF (V90 > V20) THEN V20 = V90;
IF (V95 > V20) THEN V20 = V95;
IF (V180 > V20) THEN V20 = V180;
IF (V212 > V20) THEN V20 = V212;
IF (V224 > V20) THEN V20 = V224;
V19 = V18;
IF (V21 > V19) THEN V19 = V21;
IF (V88 > V19) THEN V19 = V88;
IF (V94 > V19) THEN V19 = V94;
IF (V179 > V19) THEN V19 = V179;
IF (V211 > V19) THEN V19 = V211;
IF (V223 > V19) THEN V19 = V223;
IF (V20 > V19) THEN V19 = V20;
FOR i = 0 TO (V19 - 1);
A29[i] = 0;
A30[i] = 1;
NEXT i;
V33 = 0;
FOR i = 0 TO V1;
IF (((A13[i] & 2) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L50;
V2 = A12[i];
IF (V33 < A7[V2]) THEN
V33 = A7[V2];
L50:
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 L51;
V2 = A12[i];
A52[i] =
A5[V2] - (80 * A6[V2]);
L51:
NEXT i;
CALL L100;
IRSTOP IRPAUSE;
DRSTOP IDLE;
STATE IDLE;
IF(!(V101 || V103 || V108 || V107 ||
V100 || V102
) &&
V105) THEN GOTO L78;
IF (V101 || V231) THEN CALL L102;
IF (V42 != 0) THEN GOTO L78;
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 L52;
A18[9..0] = $071;
CALL L443;
WAIT 10000 USEC;
L52:
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 L64;
A18[9..0] = $332;
CALL L443;
WAIT 10000 USEC;
V203 = 0;
L64:
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 L65;
A18[9..0] = $044;
CALL L443;
WAIT 10000 USEC;
L65:
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 L66;
IF (V103 || V102) THEN V38 = 1;
V38 = 0;
WAIT 10000 USEC;
L66:
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 L78;
V203 = 0;
L78:
ENDPROC;
PROCEDURE L79 USES DEVICE_DATA, TEMP_DATA, L82, L443 ;
IF (V233 || !V76 || (V42 != 0)) THEN GOTO L81;
A18[9..0] = $003;
V4 = 32;
CALL L443;
WAIT IDLE, 512 CYCLES, 5 USEC, IDLE;
V233 = 1;
FOR i = 0 TO V1;
IF (A94[i] != 0) THEN
V191 = 1;
NEXT i;
IF(V191 == 1) THEN GOTO L80;
GOTO L81;
L80:
CALL L82;
L81:
ENDPROC;
PROCEDURE L82 USES DEVICE_DATA, TEMP_DATA, L443 ;
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 L85;
IF (A94[i] == 0) THEN GOTO L85;
V77 = 0;
V78 = 0;
V30 = 0;
FOR j = V1 TO 0 STEP -1;
IF (i == j) THEN GOTO L83;
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];
L83:
NEXT j;
V31 = V30 + A94[i] - 1;
IF(V31 == V30) THEN GOTO L84;
PUSH i;
A18[9..0] = $00A;
CALL L443;
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 L84;
V42 = 12;
GOTO L86;
L84:
PREDR V77;
POSTDR V78;
DRSCAN 80, V192[79..0], CAPTURE A45[79..0];
L85:
NEXT i;
L86:
PREIR 0;
POSTIR 0;
PREDR 0;
POSTDR 0;
ENDPROC;
PROCEDURE L87 USES DEVICE_DATA, TEMP_DATA, L101, L443, L102, L107
, L79
;
IF (V42 == 1) THEN GOTO L94;
CALL L101;
CALL L79;
L88:
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 L89;
A18[9..0] = $079;
CALL L443;
WAIT 10000 USEC;
L89:
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 L90;
A18[9..0] = $006;
CALL L443;
L90:
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 L91;
A18[9..0] = $04A;
CALL L443;
WAIT 10000 USEC;
L91:
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 L92;
A18[9..0] = $201;
IF (V228 == 1) THEN A18[9..0] = $166;
CALL L443;
WAIT 10000 USEC;
L92:
IF ((!V76 && !V231) || (V42 != 0)) THEN GOTO L93;
WAIT IDLE, 256 CYCLES, 10 USEC, IDLE;
V80 = 0;
CALL L102;
IF ((V42 != 0) && V76) THEN V42 = 10;
IF ((V42 != 0) && !V76) THEN V42 = 10;
IF (V42 != 0) THEN GOTO L94;
L93:
A18[9..0] = $3FF;
CALL L443;
IF (V105 && (V42 == 0)) THEN CALL L107;
L94:
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 L95 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 L96;
V2 = 0;
V3 = 0;
GOTO L99;
L96:
V2 = A12[j - 1];
V3 = j;
IF(!V216) THEN GOTO L97;
V2 = A105[j - 1];
L97:
IF ((V4 == 32) || (V4 == 256) ||
(V4 == 512) || (V4 == 2048) ||
(V4 == 16384) || (V4 == 32768))
THEN GOTO L99;
IF (V58) THEN GOTO L98;
A41[9..0] = $066;
GOTO L99;
L98:
A41[9..0] = $006;
L99:
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 L100 USES DEVICE_DATA, TEMP_DATA, L101
;
CALL L101;
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 L101 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 L102 USES DEVICE_DATA, TEMP_DATA, L101;
INTEGER V79 = 32 * V0;
BOOLEAN A46[V79];
INTEGER A47[8];
INTEGER V145;
CALL L101;
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)) != 0) THEN
A18[9..0] = $059;
IF ((A17[i] & (32 | 16384)) != 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 L103;
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 L104;
L103:
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;
L104:
V27 = V27 + 1;
NEXT i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -