📄 exmpltest.jam
字号:
' Copyright (C) 1988-1999 Altera Corporation
' Any megafunction design, and related net list (encrypted or decrypted),
' support information, device programming or simulation file, and any other
' associated documentation or information provided by Altera or a partner
' under Altera's Megafunction Partnership Program may be used only to
' program PLD devices (but not masked PLD devices) from Altera. Any other
' use of such megafunction design, net list, support information, device
' programming or simulation file, or any other related documentation or
' information is prohibited for any other purpose, including, but not
' limited to modification, reverse engineering, de-compiling, or use with
' any other silicon devices, unless such use is explicitly licensed under
' a separate agreement with Altera or a megafunction partner. Title to
' the intellectual property, including patents, copyrights, trademarks,
' trade secrets, or maskworks, embodied in any such megafunction design,
' net list, support information, device programming or simulation file, or
' any other related documentation or information provided by Altera or a
' megafunction partner, remains with Altera, the megafunction partner, or
' their respective licensors. No other licenses, including any licenses
' needed under any third party's intellectual property, are provided herein.
NOTE "CREATOR" "POF to JAM converter Version 9.3 7/23/1999";
NOTE "DEVICE" "EPM7128S";
NOTE "FILE" "exmpltest.pof";
NOTE "UESCODE" "FFFF";
'Device #1: EPM7128S - c:\edatest\altera\test1\exmpltest.pof Thu Jan 06 16:36:12 2000
BOOLEAN A21[104320] = ACA
mB300u@@@@3q6aP86Zmm4CO16u0_@@v@zx@t7@FVz@xv@ht@VUu@nB@@Tw@jRLtx
@@@nu@BM@@my@3s@@lW@thu@xI_Vkc@VBw@rg_@ii@7hx@l2@Vho@lAz@fQ@@fui
v@txrzUlt205K1W2f0GHK06etxzVB0Fit@@7KWVR1qIu12TJmUX7OSW_Nv@l@FK0
eg_dJ@@@tLXAXqGvHK0Ev@VIxV@@FK0G5K0G3K0d_@@@j@@@@@l@@@tyUl@xzzV@
h@x@sVltV50K850K450IyzV@@@l@@@t@@@JBz@@@@@x@@@zVO9QnVl@VO9_@@V@@
ql@@@NcUl@@z@@@x@x@l20Aa20AY2m9_@@@Z_W1_@x@g0W2f0WYe0Wo@@_@@V@@@
l@@@t@XbWM0;
BOOLEAN A22[65920] = ACA
m0200u@@@@3q6aP86Zmm4CO16u0_@@v@zx@t7@FVz@xv@ht@VUu@nB@@Tw@jRbs@
V@@bu@hK@@ay@Zq@@ZW@teu@BI_VYc@V8w@5g_@Wi@7ex@@1@VVo@l7z@vPJ8000
W30600000G00000000u@@32eYd0I8CW7_10Zm0E9S09Y0yXO03n@Vxl@z@@80GeZ
yMy_@@7204110IW0Ru@@@D3znyFLLXggeA102Y0m0Lz@@5iNd@x@@wtDBy03GLLM
5UWVFtd3_ldVtp@zD0O0_ldVtVLNkghhI0WW80CGN@@VX_C7U0I0;
NOTE "JAM_VERSION" "1.0";
NOTE "ALG_VERSION" "3.0";
INTEGER A0[23] =
791, 237, 253, 261, 273, 281, 293, 317, 791, 791, 791, 791, 15, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95;
INTEGER A1[23] =
3144, 80, 160, 240, 320, 400, 480, 640, 160, 200, 240, 280, 64, 183, 360, 716, 1574, 0, 3144, 183, 360, 716, 1574;
INTEGER A2[23] =
165, 0, 0, 0, 0, 0, 0, 0, 165, 165, 165, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
INTEGER A3[23] =
112, 0, 0, 0, 0, 0, 0, 0, 64, 80, 96, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
INTEGER A4[23] =
648, 0, 0, 0, 0, 0, 0, 0, 504, 552, 600, 648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
INTEGER A5[23] =
3144, 16, 32, 48, 64, 80, 96, 128, 32, 40, 48, 56, 64, 183, 360, 716, 1574, 0, 3144, 183, 360, 716, 1574;
INTEGER A6[23] =
32, 2, 4, 6, 8, 10, 12, 16, 0, 0, 0, 0, 0, 2, 4, 8, 16, 24, 32, 2, 4, 8, 16;
INTEGER A7[23] =
7, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
INTEGER A8[23] =
560, 32, 64, 96, 128, 160, 192, 256, 320, 400, 480, 560, 0, 32, 64, 128, 256, 384, 512, 32, 64, 128, 256;
INTEGER A9[21] =
126, 3, 1, 118, 1, 3, 0, 0, 0, 131, 3, 6, 0, 0, 0, 131, 3, 8, 131, 3, 12;
INTEGER A10[14] = 1, 1, 1, 3, 0, 0, 3, 6, 3, 8, 3, 8, 3, 12;
INTEGER A49[14] = 109, 1, 109, 3, 0, 0, 114, 6, 114, 8, 114, 8, 114, 12;
INTEGER A11[5 * 3 * 22] =
98, 0, 1, 98, 31, 4, 97, 31, 1, 0, 0, 0, 0, 0, 0,
96, 1, 0, 96, 2, 0, 97, 0, 1, 97, 1, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
96, 0, 0, 97, 0, 1, 96, 1, 2, 98, 0, 1, 98, 10,129,
98, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
96, 0, 0, 97, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
96, 2, 0, 97, 0, 1, 96, 1, 2, 98, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
INTEGER A14[64] =
20, 40, 60, 80, 100, 120, 140, 160, 180, 200, 220, 240,
260, 280, 300, 340, 360, 380, 400, 440, 480, 520, 560, 600,
660, 720, 800, 900, 1000, 1300, 1600, 2000,
3, 4, 5, 7, 9, 11, 12, 14, 16, 20, 24, 28,
36, 50, 64, 86, 116, 154, 200, 280, 360, 480, 640, 860,
1140, 1540, 2000, 2800, 3600, 4800, 6400, 8600;
INTEGER A15[16] =
10, 20, 30, 40, 60, 100, 200, 500,
100, 260, 660, 1660, 4200, 10800, 28000, 60000;
INTEGER A54[30] =
65, 255, 76, 255, 84, 255, 69, 255, 82, 255,
65, 255, 32, 0, 32, 0, 0, 0, 16, 31,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0;
' VARIABLES
INTEGER V0 = 1;
INTEGER A12[V0] = 4;
INTEGER A13[V0] = 1 | 4;
INTEGER A25[V0] = 10;
INTEGER V1 = V0 - 1;
INTEGER V2 = 0;
INTEGER V3 = 0;
INTEGER V4 = 1;
INTEGER A17[V0];
INTEGER A48[V0];
BOOLEAN b;
INTEGER i;
INTEGER j;
INTEGER k;
INTEGER l;
INTEGER V10;
INTEGER V11;
INTEGER V12;
INTEGER V13;
BOOLEAN A18[10];
BOOLEAN A19[10];
BOOLEAN A20[10];
INTEGER V14;
INTEGER V15;
INTEGER V16;
INTEGER V18;
INTEGER V19;
INTEGER V20;
INTEGER V21;
INTEGER V23;
INTEGER V24;
INTEGER V25;
INTEGER V26;
INTEGER V27;
INTEGER V28;
INTEGER V29 = 1;
INTEGER A16[15];
INTEGER V30;
INTEGER V31;
INTEGER V32 = 0;
INTEGER V33 = 0;
INTEGER V34 = 1;
INTEGER V35 = 0;
INTEGER V36 = 0;
INTEGER V37 = 0;
INTEGER V38 = 0;
INTEGER V72 = 0;
INTEGER V73 = 0;
BOOLEAN V39 = 0;
BOOLEAN V40 = 0;
INTEGER V41 = 0;
INTEGER V42 = 0;
BOOLEAN V43 = 0;
BOOLEAN V44 = 0;
BOOLEAN V45 = 0;
INTEGER V46;
INTEGER V47;
INTEGER V48;
BOOLEAN V49 = 0;
INTEGER V51 = -1;
INTEGER V52 = -1;
BOOLEAN V74 = 0;
BOOLEAN V75 = 0;
BOOLEAN V56 = 0;
BOOLEAN V58 = 1;
BOOLEAN A41[10];
BOOLEAN V81 = 0;
BOOLEAN V82 = 0;
INTEGER V83 = 5;
INTEGER V84 = 0;
INTEGER V86 = 0;
INTEGER V68 = 0;
INTEGER V69 = 0;
BOOLEAN DO_ERASE = 0;
BOOLEAN DO_BLANKCHECK = 0;
BOOLEAN DO_PROGRAM = 0;
BOOLEAN DO_VERIFY = 0;
BOOLEAN DO_READ_UES = 0;
BOOLEAN DO_SECURE = 0;
BOOLEAN DO_SECURE_ALL = 0;
BOOLEAN USE_EXTEND_IR_DELAY_METHOD = 0;
BOOLEAN USE_FIXED_ALGORITHM = 0;
L0:
CALL L6;
LET V4 = 1;
CALL L26;
IF (V2 == 0) THEN GOTO L1;
IF (V42 == 0) THEN CALL L94;
IF ((V42 == 0) && DO_ERASE) THEN CALL L69;
IF ((V42 == 0) && DO_BLANKCHECK) THEN CALL L93;
IF ((V42 == 0) && DO_PROGRAM) THEN CALL L56;
IF ((V42 == 0) && DO_VERIFY) THEN CALL L76;
IF ((V42 == 0) && DO_SECURE) THEN CALL L252;
L1:
IF ((V42 == 0) && DO_READ_UES) THEN CALL L42;
CALL L21;
EXIT V42;
L6:
INTEGER V66 = 0;
IF (DO_PROGRAM) THEN LET DO_ERASE = 1;
IF (DO_SECURE_ALL) THEN LET DO_SECURE = 1;
IF ((DO_ERASE || DO_BLANKCHECK) && !DO_PROGRAM &&
(DO_VERIFY || DO_SECURE)) THEN LET V42 = 1;
IF (V42 != 0) THEN GOTO L16;
LET V21 = 0;
FOR i = 0 TO V1;
LET j = 1;
LET k = 1;
IF (((A13[i] & 1) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L7;
LET V2 = A12[i];
LET j = A1[V2];
LET k = A5[V2];
L7:
LET V21 = V21 + j;
LET V66 = V66 + k;
NEXT i;
BOOLEAN A26[5 * V21];
LET l = 0;
FOR i = 4 TO 0 STEP -1;
FOR j = 0 TO V1;
IF (((A13[j] & 1) == 0) ||
((A13[j] & 4) == 0)) THEN GOTO L8;
LET V2 = A12[j];
FOR k = 0 TO (A1[V2] - 1);
IF ((k % 5) == i) THEN LET A26[l] = 1;
LET l = l + 1;
NEXT k;
GOTO L9;
L8:
LET l = l + 1;
L9:
NEXT j;
NEXT i;
LET V16 = 0;
FOR i = 0 TO V1;
LET j = 1;
IF (((A13[i] & 1) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L13;
LET V2 = A12[i];
LET j = A0[V2];
L13:
LET V16 = V16 + j;
NEXT i;
LET V18 = V16;
BOOLEAN A28[V18];
LET V19 = V18;
IF (V21 > V19) THEN LET V19 = V21;
BOOLEAN A29[V19];
BOOLEAN A30[V19];
FOR i = 0 TO (V19 - 1);
LET A30[i] = 1;
NEXT i;
LET V20 = 2 * 5 * V66;
BOOLEAN A31[V20];
BOOLEAN A57[V20];
LET V12 = 0;
LET V13 = 0;
FOR i = 0 TO V1;
LET V12 = V12 + A25[i];
IF (A25[i] > V13) THEN LET V13 = A25[i];
NEXT i;
BOOLEAN A32[V12 + 50];
BOOLEAN A39[V13];
BOOLEAN A33[V13];
FOR i = 0 TO (V13 - 1);
LET A39[i] = 1;
NEXT i;
CALL L30;
IRSTOP IRPAUSE;
DRSTOP IDLE;
STATE IDLE;
LET A18[0..9] = 071;
LET V4 = 1;
CALL L267;
WAIT 10000 USEC;
L16:
RETURN;
L21:
IF (V42 == 1) THEN GOTO L22;
CALL L31;
LET A18[0..9] = 079;
CALL L267;
WAIT 10000 USEC;
STATE IDLE;
L22:
IF (V42 == 0) THEN
PRINT "DONE";
IF (V42 == 1) THEN
PRINT "Invalid option combination specified";
IF (V42 == 2) THEN
PRINT "Unrecognized device";
IF (V42 == 3) THEN
PRINT "Device revision is not supported";
IF (V42 == 4) THEN
PRINT "Device programming failure";
IF (V42 == 5) THEN
PRINT "Device is not blank";
IF (V42 == 6) THEN
PRINT "Device verify failure";
IF (V42 == 8) THEN
PRINT "Unable to read UES from device #", V84 + 1;
RETURN;
L26:
LET j = 0;
FOR i = 0 TO V1;
IF ((j <= V3) &&
((A13[i] & V4) != 0) &&
((A13[i] & 4) != 0)) THEN LET j = i + 1;
NEXT i;
IF (j > V3) THEN GOTO L27;
LET V2 = 0;
LET V3 = 0;
GOTO L28;
L27:
LET V2 = A12[j - 1];
LET V3 = j;
IF (V58) THEN GOTO L28;
LET A41[0..9] = 066;
GOTO L29;
L28:
LET A41[0..9] = 006;
L29:
RETURN;
L30:
CALL L31;
IF (V32 == 0) THEN CALL L264;
LET V10 = 0;
LET V14 = 0;
LET V15 = 0;
LET V49 = 1;
LET V34 = 0;
LET V51 = -1;
LET V52 = -1;
LET V45 = 0;
LET V29 = 1;
IF (DO_PROGRAM) THEN LET V29 = 0;
IF (DO_ERASE && V74) THEN LET V29 = 2;
RETURN;
L31:
FOR i = 0 TO V1;
LET A17[i] = (A13[i] | A48[i]);
NEXT i;
RETURN;
L42:
LET j = 0;
LET k = V1;
LET V34 = 1;
LET V29 = 1;
LET V84 = V84 - 1;
IF (V84 == -1) THEN GOTO L44;
IF ((V84 < 0) || (V84 > V1) ||
((A17[V1 - V84] & 1) == 0)) THEN
LET V42 = 8;
IF (V42 != 0) THEN GOTO L45;
L43:
LET j = V84;
LET k = V84;
L44:
FOR i = j TO k;
LET V84 = i;
PUSH i; PUSH j; PUSH k;
CALL L31;
LET V86 = 0;
IF (((A17[V1 - V84] & 1) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
CALL L46;
POP k; POP j; POP i;
NEXT i;
L45:
RETURN;
L46:
LET V4 = 1;
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)];
LET j = V1 - V84;
FOR i = 0 TO V1;
IF (((A17[i] & 1) != 0) && ((A17[i] & 4) != 0) &&
(i != j)) THEN LET A17[i] = A17[i] | 8;
NEXT i;
CALL COMPUTE_7K_N_BITS;
LET V2 = A12[j];
LET V27 = (V2 - 1) * 2;
LET i = A49[V27];
LET V48 = A49[V27 + 1];
LET V46 = A6[V2];
IF (V48 < (V46 >> 1)) THEN GOTO L47;
LET V48 = V46 - V48 - 1;
L47:
LET V27 = j + V24 + (16 * V48) + 12;
FOR V11 = i TO i + 15;
PUSH i;
PUSH V27;
CALL L210;
CALL L153;
POP V27;
POP i;
IF (A31[V27]) THEN
LET V86 = V86 | (1 << (V11 - i));
NEXT V11;
CALL L51;
RETURN;
L51:
EXPORT "USERCODE", V86;
INTEGER V85[4];
FOR i = 0 TO 3;
LET V27 = 0;
LET V85[i] = V86 & 15;
IF (V85[i] > 9) THEN LET V27 = 7;
LET V85[i] = V85[i] + 48 + V27;
LET V86 = V86 >> 4;
NEXT i;
PRINT "Device #", V84 + 1, " UES code is ",
CHR$(V85[3]), CHR$(V85[2]),
CHR$(V85[1]), CHR$(V85[0]);
RETURN;
L56:
PRINT "programming 7K device(s)...";
CALL L30;
CALL L300;
FOR V11 = 1 TO 107;
CALL L210;
CALL L236;
NEXT V11;
LET V49 = 1;
FOR V11 = 109 TO (V32 - 1);
CALL L210;
CALL L236;
NEXT V11;
RETURN;
L63:
LET A18[0..9] = A41[0..9];
CALL L267;
LET A18[0..9] = 00E;
CALL L267;
LET A18[0..9] = 00A;
CALL L267;
IF (V58) THEN LET V56 = 1;
WAIT (V38 * 1000) USEC;
IF (V58) THEN GOTO L64;
IF (V82) THEN LET V83 = 20000;
LET A18[0..9] = 06A;
CALL L267;
LET V83 = 5;
LET A18[0..9] = 06E;
CALL L267;
L64:
LET A18[0..9] = 012;
CALL L267;
RETURN;
L65:
LET A18[0..9] = A41[0..9];
CALL L267;
LET A18[0..9] = 00A;
CALL L267;
IF (V58) THEN LET V56 = 1;
WAIT (V37 * 100) USEC;
IF (V58) THEN GOTO L66;
LET A18[0..9] = 06E;
CALL L267;
L66:
LET A18[0..9] = 012;
CALL L267;
RETURN;
L67:
CALL L31;
FOR i = 0 TO V1;
IF (((A17[i] & 1) == 0) || ((A17[i] & 4) == 0))
THEN GOTO L68;
IF (V82 && ((A48[i] & 128) == 0))
THEN LET A17[i] = A17[i] | 8;
IF (!V82 && ((A48[i] & 128) != 0))
THEN LET A17[i] = A17[i] | 8;
L68:
NEXT i;
IF (V82) THEN LET A41[0..9] = 066;
IF (!V82 && V58) THEN LET A41[0..9] = 006;
RETURN;
L69:
LET A18[0..9] = 012;
CALL L267;
LET A18[0..9] = 01E;
CALL L267;
DRSCAN V16, A30[0..(V16 - 1)];
L70:
CALL L67;
LET b = V58;
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;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -