www.pudn.com > taxi_counter.rar > hex7.jam


' Copyright (C) 1988-2000 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. 
 
'Device #1: EPM7128S - e:\myworks\taxi\hex7.pof Fri Sep 29 13:32:11 2006 
 
NOTE "CREATOR" "Altera Jam/STAPL Composer Version 10.0 10/5/2000"; 
NOTE "DATE" "2006/09/29"; 
NOTE "DEVICE" "EPM7128S"; 
NOTE "FILE" "hex7.pof"; 
NOTE "TARGET" "1"; 
NOTE "IDCODE" "071280DD"; 
NOTE "UES" "FFFF"; 
NOTE "CHECKSUM" "001DAFCA"; 
NOTE "SAVE_DATA" "DEVICE_DATA"; 
NOTE "SAVE_DATA_VARIABLES" "V0, A12, A13, A21, A22, A25, A43"; 
NOTE "STAPL_VERSION" "JESD71"; 
NOTE "JAM_VERSION" "2.0"; 
NOTE "ALG_VERSION" "10"; 
ACTION PROGRAM = PR_INIT_PROGRAM, DO_BLANK_CHECK OPTIONAL, DO_VERIFY RECOMMENDED, DO_SECURE OPTIONAL, 
DO_READ_UES OPTIONAL, 
PR_EXECUTE; 
ACTION BLANKCHECK = PR_INIT_BLANKCHECK, PR_EXECUTE; 
ACTION VERIFY = PR_INIT_VERIFY, PR_EXECUTE; 
ACTION READ_UES = PR_INIT_READ_UES, PR_EXECUTE; 
DATA DEVICE_DATA; 
INTEGER V0 = 1; 
INTEGER V1 = 0; 
INTEGER A12[1] = 4; 
INTEGER A59[1] = 288; 
INTEGER A60[1] = 1; 
INTEGER A61[1] = 118653149; 
INTEGER A13[1] = 5; 
INTEGER A25[1] = 10; 
INTEGER A43[1] = 0; 
BOOLEAN A21[104320] = @ 
mB300u@@@@3q6aP86ZmFu@h@tVv@Bx@@@8@9KCu@VjFK8v@@lq@_rdVj_@Wka@_@ 
qmBp0DgWod_@@BDtV@5GToVzVROqfWt@1P@72_V0wm_@NB3V@F88Fs@lU3Lval_@ 
r0U@7Ey@Wb@7Az@0j@76EA@@rV1Q@Fmz@XrzVGV@7Iu@1C_VWb@7sv@1b_V8h@7G 
x@1__VOn@7qydHOhIe0Ev@@lo@@zlFb@@ekHo@N@k_ktJsz@@n8Sb@VlNtxzUB0K 
G50AuzUldtJzkUktJozUlz0KHP09uUlds@@zlVj@z61I8G1Xytz@Ik@@Fe0aY20b 
G1KHVtxPy0BPwtxnzUQNa1Bv@V_tlo@Ue0Bvlx@DQ1j2ZudGG4Diaqy@x@N1W2H1 
WY@@@Ql@pz_q_@ZM8S@@l@X20LG1W6emd_V@@Z_u@OJct@ltlx@_F@t@z__lth0G 
1zV@tkw@_S@dsr306H1WXl@x@0P_FCd@32w@GpCBia@3BX7VVz@Xbek@@@_m8_Fg 
i@ZQSIlt@@pKOG50Au@txt@@Vj@@xU@Q@xz0KHK0Ru@@@tzV@d@x@VV@t@L0eW@l 
@RNzVV_@Jxw10Zo0Cm@@@lll_@e0U80l@ZxNbOxy8k@Py@@z7Sp@nA_VO9F7yl1X 
bia@@@_mIa0; 
 
BOOLEAN A22[65920] = @ 
m0200u@@@@3q6aPm@@@l@@@_U6y@@@vs@@Fy6_@lR2oZiVm@@zReyu@@@Jx@@VOQ 
9eUu@@@EyUmd@@VufOW6LGzf@@@Fk@@@1L6y7l@7GTo5@@Vmx@Gx@1U@7M_l@@x@ 
@R6y@V@4__VelVyd1@74a7@@@sXv_F8u@1B@FKw@1Q@FCCLM@@@38tLWs@3X@V0U 
@7_t@17_VeZ@7Yv@1W_Vuf@7yw@Xs_V8m@7Wy@1NpM0rFu@@9ghR90000S0m0D0O 
00@700y@@XSpGG0CK503j1O0080W@0O0002KN0FON008O060mD0y9m3X3mG_tjyE 
U2_@V@zl@@71W1yNw@74N5@@@xX00HG0W48W7_@t@tCGe1q31LLHbgegg60C0LLH 
bg_@@s16RsWY_ozXm3c1rLHLu1juk@@@7X0n@zyxU_ll103m@zyx_hwoLTTL204e 
hhwotTTbk_@@wBufVV6y@@z5UGZu@_@3Fu1NtrLww@@1; 
 
ENDDATA; 
DATA TEMP_DATA; 
INTEGER A0[28] = 
96, 96, 96, 96, 96, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 15, 791, 791, 791, 791, 317, 293, 281, 273, 261, 253, 237, 791; 
INTEGER A1[28] = 
3144, 1574, 716, 360, 183, 1574, 716, 360, 183,3144, 0,1574, 716, 360, 183, 64, 280, 240, 200, 160, 640, 480, 400, 320, 240, 160, 80,3144; 
INTEGER A2[28] = 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 165, 165, 165, 165, 0, 0, 0, 0, 0, 0, 0, 165; 
INTEGER A3[28] = 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 96, 80, 64, 0, 0, 0, 0, 0, 0, 0, 112; 
INTEGER A4[28] = 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 648, 600, 552, 504, 0, 0, 0, 0, 0, 0, 0, 648; 
INTEGER A5[28] = 
3144, 1574, 716, 360, 183, 1574, 716, 360, 183,3144, 0,1574, 716, 360, 183, 64, 56, 48, 40, 32, 128, 96, 80, 64, 48, 32, 16,3144; 
INTEGER A6[28] = 
32, 16, 8, 4, 2, 16, 8, 4, 2, 32, 24, 16, 8, 4, 2, 0, 0, 0, 0, 0, 16, 12, 10, 8, 6, 4, 2, 32; 
INTEGER A7[28] = 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 6, 5, 4, 0, 0, 0, 0, 0, 0, 0, 7; 
INTEGER A8[28] = 
512, 256, 128, 64, 32, 256, 128, 64, 32, 512, 384, 256, 128, 64, 32, 0, 560, 480, 400, 320, 256, 192, 160, 128, 96, 64, 32, 560; 
INTEGER A9[21] = 
12, 3, 131, 8, 3, 131, 0, 0, 0, 6, 3, 131, 0, 0, 0, 3, 1, 118, 1, 3, 126; 
INTEGER A10[14] = 
12, 3, 8, 3, 8, 3, 6, 3, 0, 0, 3, 1, 1, 1; 
INTEGER A51[15] = 
294, 148, 38, 20, 2, 148, 38, 20, 2, 294, 0, 148, 38, 20, 2; 
INTEGER A49[14] = 
12, 114, 8, 114, 8, 114, 6, 114, 0, 0, 3, 109, 1, 109; 
INTEGER A11[5 * 3 * 27] = 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,1025, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,1025, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,1025, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,1025, 0, 0, 
0, 0, 0, 0, 0, 0,1025, 4, 0, 1, 1, 0,1025, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 99, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 99, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 98, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 99, 1, 0, 98, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98, 
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, 1, 0, 99, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 99, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 98, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 97, 0, 1, 94, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 95, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 97, 0, 1, 94, 
0, 0, 0, 1, 0, 98, 2, 1, 96, 1, 0, 97, 0, 2, 96, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 97, 0, 0, 96, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 98, 
129, 10, 98, 1, 0, 98, 2, 1, 96, 1, 0, 97, 0, 0, 96, 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
0, 0, 0, 1, 1, 97, 1, 0, 97, 0, 2, 96, 0, 1, 96, 
0, 0, 0, 0, 0, 0, 1, 31, 97, 4, 31, 98, 1, 0, 98; 
INTEGER A14[64] = 
8600,6400,4800,3600,2800,2000,1540,1140, 860, 640, 480, 360, 280, 200, 154, 116, 
86, 64, 50, 36, 28, 24, 20, 16, 14, 12, 11, 9, 7, 5, 4, 3, 
2000,1600,1300,1000, 900, 800, 720, 660, 600, 560, 520, 480, 440, 400, 380, 360, 
340, 300, 280, 260, 240, 220, 200, 180, 160, 140, 120, 100, 80, 60, 40, 20; 
INTEGER A15[16] = 
60000,28000,10800,4200,1660, 660, 260, 100, 500, 200, 100, 60, 40, 30, 20, 10; 
INTEGER A54[30] = 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 16, 0, 0, 0, 32, 0, 32, 255, 65, 255, 82, 255, 69, 255, 84, 255, 76, 255, 65; 
INTEGER A55[30] = 
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 16, 0, 32, 0, 32, 255, 65, 255, 82, 255, 69, 255, 84, 255, 76, 255, 65; 
INTEGER A56[8] = 
255, 1, 255, 56, 255, 57, 255, 65; 
' VARIABLES 
INTEGER A17[1]; 
INTEGER A48[1]; 
INTEGER A52[1]; 
BOOLEAN A32[60]; 
BOOLEAN A33[10]; 
BOOLEAN A39[10]; 
BOOLEAN A26[1600]; 
BOOLEAN A27[5]; 
BOOLEAN A28[273]; 
BOOLEAN A45[320]; 
BOOLEAN A29[320]; 
BOOLEAN A30[320]; 
BOOLEAN A31[640]; 
BOOLEAN A57[640]; 
BOOLEAN A34[50]; 
BOOLEAN A35[50]; 
BOOLEAN A36[50]; 
BOOLEAN A37[50]; 
BOOLEAN A38[70]; 
INTEGER V2 = 0; 
INTEGER V3 = 0; 
INTEGER V4 = 32; 
BOOLEAN b; 
INTEGER i; 
INTEGER j; 
INTEGER k; 
INTEGER l; 
INTEGER V10; 
INTEGER V11; 
INTEGER V12; 
INTEGER V13; 
BOOLEAN A18[21]; 
BOOLEAN A19[20]; 
BOOLEAN A20[10]; 
INTEGER V14; 
INTEGER V15; 
INTEGER V89; 
INTEGER V16; 
INTEGER V87; 
INTEGER V17; 
INTEGER V18; 
INTEGER V19; 
INTEGER V20; 
INTEGER V21; 
INTEGER V88; 
INTEGER V94; 
INTEGER V22; 
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 V57 = 0; 
BOOLEAN V58 = 1; 
BOOLEAN A40[10]; 
BOOLEAN A41[10]; 
BOOLEAN A44[10]; 
BOOLEAN V76 = 0; 
BOOLEAN V80 = 1; 
BOOLEAN V81 = 0; 
BOOLEAN V82 = 0; 
INTEGER V83 = 5; 
INTEGER V84 = 0; 
INTEGER V86 = 0; 
BOOLEAN V91 = 0; 
INTEGER V68 = 0; 
INTEGER V69 = 0; 
INTEGER V96 = 94; 
BOOLEAN V97 = 1; 
BOOLEAN V102 = 0; 
BOOLEAN V100 = 0; 
BOOLEAN V103 = 0; 
BOOLEAN V108 = 0; 
BOOLEAN V104 = 0; 
BOOLEAN V105 = 0; 
BOOLEAN V107 = 0; 
BOOLEAN V106 = 0; 
BOOLEAN V101 = 0; 
BOOLEAN USE_EXTEND_IR_DELAY_METHOD = 0; 
BOOLEAN USE_FIXED_ALGORITHM = 0; 
ENDDATA; 
PROCEDURE PR_INIT_PROGRAM USES TEMP_DATA; 
V102 = 1; 
V103 = 1; 
ENDPROC; 
PROCEDURE DO_BLANK_CHECK USES TEMP_DATA; 
V100 = 1; 
ENDPROC; 
PROCEDURE DO_VERIFY USES TEMP_DATA; 
V108 = 1; 
ENDPROC; 
PROCEDURE DO_SECURE USES TEMP_DATA; 
V107 = 1; 
V106 = 1; 
ENDPROC; 
PROCEDURE DO_READ_UES USES TEMP_DATA; 
V104 = 1; 
ENDPROC; 
PROCEDURE PR_INIT_BLANKCHECK USES TEMP_DATA; 
V100 = 1; 
ENDPROC; 
PROCEDURE PR_INIT_VERIFY USES TEMP_DATA; 
V108 = 1; 
ENDPROC; 
PROCEDURE PR_INIT_READ_UES USES TEMP_DATA; 
V104 = 1; 
ENDPROC; 
PROCEDURE PR_EXECUTE USES DEVICE_DATA, TEMP_DATA, L6, L26, 
L96, 
L97, L75, L55, L82, 
L257, 
L41, L35, L21; 
CALL L6; 
V3 = 0; 
V4 = 1; 
CALL L26; 
IF (V2 == 0) THEN GOTO L2; 
IF (V42 == 0) THEN CALL L97; 
IF ((V42 == 0) && V102) THEN CALL L75; 
IF ((V42 == 0) && V100) THEN CALL L96; 
IF ((V42 == 0) && V103) THEN CALL L55; 
IF ((V42 == 0) && V108) THEN CALL L82; 
IF ((V42 == 0) && V107) THEN CALL L257; 
L2: 
IF ((V42 == 0) && V104) THEN CALL L41; 
CALL L21; 
EXIT V42; 
ENDPROC; 
PROCEDURE L6 USES DEVICE_DATA, TEMP_DATA, L30, L276, L32; 
INTEGER V66 = 0; 
INTEGER V90 = 0; 
INTEGER V95 = 0; 
INTEGER V67 = 0; 
IF (V103) THEN V102 = 1; 
IF (V106) THEN V107 = 1; 
IF ((V102 || V100) && !V103 && 
(V108 || V107)) THEN V42 = 1; 
IF (V42 != 0) THEN GOTO L16; 
V21 = 0; 
FOR i = 0 TO V1; 
j = 1; 
k = 1; 
IF (((A13[i] & 1) == 0) || 
((A13[i] & 4) == 0)) THEN GOTO L7; 
V2 = A12[i]; 
j = A1[V2]; 
k = A5[V2]; 
L7: 
V21 = V21 + j; 
V66 = V66 + k; 
NEXT i; 
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; 
V2 = A12[j]; 
FOR k = 0 TO (A1[V2] - 1); 
IF ((k % 5) == i) THEN A26[l] = 1; 
l = l + 1; 
NEXT k; 
GOTO L9; 
L8: 
l = l + 1; 
L9: 
NEXT j; 
NEXT i; 
V88 = 0; 
FOR i = 0 TO V1; 
j = 1; 
k = 1; 
IF (((A13[i] & 256) == 0) || 
((A13[i] & 4) == 0)) THEN GOTO L10; 
V2 = A12[i]; 
j = A1[V2]; 
k = A5[V2]; 
IF ((V2 >= 23) && (V2 <= 27)) THEN 
V96 = 95; 
L10: 
V88 = V88 + j; 
V90 = V90 + k; 
NEXT i; 
V94 = 0; 
FOR i = 0 TO V1; 
j = 1; 
k = 1; 
IF (((A13[i] & 512) == 0) || 
((A13[i] & 4) == 0)) THEN GOTO L11; 
V2 = A12[i]; 
j = A1[V2]; 
k = A5[V2]; 
L11: 
V94 = V94 + j; 
V95 = V95 + k; 
NEXT i; 
V22 = 0; 
FOR i = 0 TO V1; 
j = 1; 
k = 1; 
IF (((A13[i] & 2) == 0) || 
((A13[i] & 4) == 0)) THEN GOTO L12; 
V2 = A12[i]; 
j = A1[V2]; 
k = A5[V2]; 
L12: 
V22 = V22 + j; 
V67 = V67 + k; 
NEXT i; 
l = 0; 
FOR i = 4 TO 0 STEP -1; 
FOR j = 0 TO V1; 
IF (((A13[j] & 2) == 0) || 
((A13[j] & 4) == 0)) THEN GOTO L13; 
V2 = A12[j]; 
FOR k = 0 TO (A1[V2] - 1); 
IF ((k % 5) == i) THEN A27[l] = 1; 
l = l + 1; 
NEXT k; 
GOTO L14; 
L13: 
l = l + 1; 
L14: 
NEXT j; 
NEXT i; 
V16 = 0; 
FOR i = 0 TO V1; 
j = 1; 
IF (((A13[i] & 1) == 0) || 
((A13[i] & 4) == 0)) THEN GOTO L15; 
V2 = A12[i]; 
j = A0[V2]; 
L15: 
V16 = V16 + j; 
NEXT i; 
V87 = 0; 
FOR i = 0 TO V1; 
j = 1; 
IF (((A13[i] & 256) == 0) || 
((A13[i] & 4) == 0)) THEN GOTO L16; 
V2 = A12[i]; 
j = A0[V2]; 
L16: 
V87 = V87 + j; 
NEXT i; 
V17 = 0; 
FOR i = 0 TO V1; 
j = 1; 
IF (((A13[i] & 2) == 0) || 
((A13[i] & 4) == 0)) THEN GOTO L17; 
V2 = A12[i]; 
j = A0[V2]; 
L17: 
V17 = V17 + j; 
NEXT i; 
V18 = V17; 
IF (V16 > V18) THEN V18 = V16; 
IF (V87 > V18) THEN V18 = V87; 
V19 = V18; 
IF (V21 > V19) THEN V19 = V21; 
IF (V88 > V19) THEN V19 = V88; 
IF (V94 > V19) THEN V19 = V94; 
FOR i = 0 TO (V19 - 1); 
A30[i] = 1; 
NEXT i; 
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; 
V33 = 0; 
FOR i = 0 TO V1; 
IF (((A13[i] & 2) == 0) || 
((A13[i] & 4) == 0)) THEN GOTO L18; 
V2 = A12[i]; 
IF (V33 < A7[V2]) THEN 
V33 = A7[V2]; 
L18: 
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 L19; 
V2 = A12[i]; 
A52[i] = 
A5[V2] - (80 * A6[V2]); 
L19: 
NEXT i; 
CALL L30; 
IRSTOP IRPAUSE; 
DRSTOP IDLE; 
STATE IDLE; 
IF (V101) THEN CALL L32; 
IF (V42 != 0) THEN GOTO L20; 
A18[9..0] = $071; 
V4 = 1 | 2; 
CALL L276; 
WAIT 10000 USEC; 
A18[9..0] = $332; 
V4 = 256; 
CALL L276; 
WAIT 10000 USEC; 
A18[9..0] = $044; 
V4 = 512; 
CALL L276; 
WAIT 10000 USEC; 
L20: 
ENDPROC; 
PROCEDURE L21 USES DEVICE_DATA, TEMP_DATA, L31, L276, L32, L35; 
IF (V42 == 1) THEN GOTO L25; 
CALL L31; 
IF (!V76) THEN GOTO L22; 
A18[9..0] = $003; 
V4 = 32; 
CALL L276; 
L22: 
A18[9..0] = $079; 
V4 = 1 | 2; 
CALL L276; 
WAIT 10000 USEC; 
A18[9..0] = $006; 
V4 = 256; 
CALL L276; 
A18[9..0] = $04A; 
V4 = 512; 
CALL L276; 
WAIT 10000 USEC; 
L23: 
IF (!V76) THEN GOTO L24; 
V80 = 0; 
CALL L32; 
IF (V42 != 0) THEN V42 = 10; 
IF (V42 != 0) THEN GOTO L25; 
L24: 
A18[9..0] = $3FF; 
CALL L276; 
IF (V105) THEN CALL L35; 
L25: 
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) 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) THEN 
PRINT "Device configuration failure"; 
IF (V42 == 4) THEN 
PRINT "Unable to read USERCODE/UES from device #", V84 + 1; 
ENDPROC; 
PROCEDURE L26 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 L27; 
V2 = 0; 
V3 = 0; 
GOTO L29; 
L27: 
V2 = A12[j - 1]; 
V3 = j; 
IF ((V4 == 32) || (V4 == 256) || 
(V4 == 512)) 
THEN GOTO L29; 
IF (V58) THEN GOTO L28; 
A41[9..0] = $066; 
GOTO L29; 
L28: 
A41[9..0] = $006; 
L29: 
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 L30 USES DEVICE_DATA, TEMP_DATA, L31 
, L272 
; 
CALL L31; 
IF (V32 == 0) THEN CALL L272; 
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 L31 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)) != 0) && 
!V102 && !V100 && !V103 && !V108 && 
!V107 && !V106 && V101) THEN 
A17[i] = A17[i] & ~4; 
IF (((A17[i] & 4) != 0) && 
((A17[i] & 32) != 0) && !V101 && 
(V102 || V100 || V103 || V108 || 
V107 || V106)) THEN 
A17[i] = A17[i] & ~4; 
NEXT i; 
ENDPROC; 
PROCEDURE L32 USES DEVICE_DATA, TEMP_DATA, L31; 
INTEGER V79 = 32 * V0; 
BOOLEAN A46[V79]; 
INTEGER A47[8]; 
INTEGER V145; 
CALL L31; 
STATE IDLE; 
V27 = 0; 
FOR i = 0 TO V1; 
A18[9..0] = A39[(A25[i] - 1)..0]; 
IF ((A17[i] & (1 | 2 | 256 | 512)) != 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 L33; 
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 L34; 
L33: 
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; 
L34: 
V27 = V27 + 1; 
NEXT i; 
V27 = 0; 
FOR i = 0 TO V1; 
IF(A61[i] != 0) THEN GOTO L32_3; 
IF(A46[V27] != 0) THEN 
V42 = 6; 
V27 = V27 + 1; 
NEXT i; 
GOTO L32_4; 
L32_3: 
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; 
L32_4: 
ENDPROC; 
PROCEDURE L35 USES DEVICE_DATA, TEMP_DATA, L31, L276, L39; 
j = 0; 
k = V1; 
V84 = V84 - 1; 
IF (V84 == -1) THEN GOTO L37; 
IF ((V84 < 0) || (V84 > V1) || 
(((A17[V1 - V84] & 256) == 0) && 
((A17[V1 - V84] & 32) == 0) && 
((A17[V1 - V84] & 512) == 0))) THEN 
V42 = 4; 
IF (V42 != 0) THEN GOTO L38; 
L36: 
j = V84; 
k = V84; 
L37: 
CALL L31; 
V4 = 256; 
A18[9..0] = $006; 
CALL L276; 
V4 = 512; 
A18[9..0] = $04A; 
CALL L276; 
WAIT 10000 USEC; 
A18[9..0] = $3FF; 
CALL L276; 
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 L31; 
V4 = 0; 
IF (((A17[V1 - V84] & 256) != 0) && 
((A17[V1 - V84] & 4) != 0)) THEN 
V4 = 256; 
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 (V4 != 0) THEN CALL L39; 
POP k; POP j; POP i; 
NEXT i; 
L38: 
ENDPROC; 
PROCEDURE L39 USES DEVICE_DATA, TEMP_DATA, L276, L40; 
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 == 512) THEN 
A18[9..0] = $079; 
IF (V4 == 32) THEN 
A18[9..0] = $007; 
CALL L276; 
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; 
CALL L40; 
ENDPROC; 
PROCEDURE L40 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 L41 USES DEVICE_DATA, TEMP_DATA, L31 
, L45 
; 
j = 0; 
k = V1; 
V34 = 1; 
V29 = 1; 
V84 = V84 - 1; 
IF (V84 == -1) THEN GOTO L43; 
IF ((V84 < 0) || (V84 > V1) || 
(((A17[V1 - V84] & 1) == 0) && 
((A17[V1 - V84] & 2) == 0))) THEN 
V42 = 4; 
IF (V42 != 0) THEN GOTO L44; 
L42: 
j = V84; 
k = V84; 
L43: 
FOR i = j TO k; 
V84 = i; 
PUSH i; PUSH j; PUSH k; 
CALL L31; 
V86 = 0; 
IF (((A17[V1 - V84] & 1) != 0) && 
((A17[V1 - V84] & 4) != 0)) THEN 
CALL L45; 
POP k; POP j; POP i; 
NEXT i; 
L44: 
ENDPROC; 
PROCEDURE L45 USES DEVICE_DATA, TEMP_DATA, L276, L287, L214, L157, L50; 
V4 = 1; 
A18[9..0] = $016; 
CALL L276; 
DRSCAN V21, A26[(V21 - 1)..0]; 
A18[9..0] = $01A; 
CALL L276; 
DRSCAN V21, A26[(V21 - 1)..0]; 
j = V1 - V84; 
FOR i = 0 TO V1; 
IF (((A17[i] & 1) != 0) && ((A17[i] & 4) != 0) && 
(i != j)) THEN A17[i] = A17[i] | 8; 
NEXT i; 
CALL L287; 
V2 = A12[j]; 
V27 = (V2 - 1) * 2; 
i = A49[V27]; 
V48 = A49[V27 + 1]; 
V46 = A6[V2]; 
IF (V48 < (V46 >> 1)) THEN GOTO L46; 
V48 = V46 - V48 - 1; 
L46: 
V27 = j + V24 + (16 * V48) + 12; 
FOR V11 = i TO i + 15; 
PUSH i; 
PUSH V27; 
CALL L214; 
CALL L157; 
POP V27; 
POP i; 
IF (A31[V27]) THEN 
V86 = V86 | (1 << (V11 - i)); 
NEXT V11; 
CALL L50; 
ENDPROC; 
PROCEDURE L50 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 L55 USES DEVICE_DATA, TEMP_DATA, L30, L309, L214, L240; 
PRINT "programming 7K device(s)..."; 
CALL L30; 
CALL L309; 
FOR V11 = 1 TO 107; 
CALL L214; 
CALL L240; 
NEXT V11; 
V49 = 1; 
FOR V11 = 109 TO (V32 - 1); 
CALL L214; 
CALL L240; 
NEXT V11; 
ENDPROC; 
PROCEDURE L69 USES DEVICE_DATA, TEMP_DATA, L276; 
A18[9..0] = A41[9..0]; 
CALL L276; 
A18[9..0] = A40[9..0]; 
CALL L276; 
A18[9..0] = $00A; 
CALL L276; 
IF (V58) THEN V56 = 1; 
WAIT (V38 * 1000) USEC; 
IF (V58) THEN GOTO L70; 
IF (V82) THEN V83 = 20000; 
A18[9..0] = $06A; 
CALL L276; 
V83 = 5; 
A18[9..0] = $06E; 
CALL L276; 
L70: 
A18[9..0] = A44[9..0]; 
CALL L276; 
ENDPROC; 
PROCEDURE L71 USES DEVICE_DATA, TEMP_DATA, L276; 
A18[9..0] = A41[9..0]; 
CALL L276; 
A18[9..0] = $00A; 
CALL L276; 
IF (V58) THEN V56 = 1; 
WAIT (V37 * 100) USEC; 
IF (V58) THEN GOTO L72; 
A18[9..0] = $06E; 
CALL L276; 
L72: 
A18[9..0] = A44[9..0]; 
CALL L276; 
ENDPROC; 
PROCEDURE L73 USES DEVICE_DATA, TEMP_DATA, L31; 
CALL L31; 
FOR i = 0 TO V1; 
IF (((A17[i] & 1) == 0) || ((A17[i] & 4) == 0)) 
THEN GOTO L74; 
IF (V82 && ((A48[i] & 128) == 0)) 
THEN A17[i] = A17[i] | 8; 
IF (!V82 && ((A48[i] & 128) != 0)) 
THEN A17[i] = A17[i] | 8; 
L74: 
NEXT i; 
IF (V82) THEN A41[9..0] = $066; 
IF (!V82 && V58) THEN A41[9..0] = $006; 
ENDPROC; 
PROCEDURE L75 USES DEVICE_DATA, TEMP_DATA, L276, L73, L69, L214, L240; 
A18[9..0] = $012; 
CALL L276; 
A18[9..0] = $01E; 
CALL L276; 
DRSCAN V16, A30[(V16 - 1)..0]; 
L76: 
CALL L73; 
b = V58; 
IF (V82) THEN V58 = 0; 
CALL L69; 
V58 = b; 
IF (!V82) THEN GOTO L77; 
V82 = 0; 
GOTO L76; 
L77: 
A18[9..0] = $01E; 
CALL L276; 
DRSCAN V16, A29[(V16 - 1)..0]; 
IF (V103) THEN GOTO L78; 
V75 = 1; 
FOR V11 = 102 TO 103; 
CALL L214; 
CALL L240; 
NEXT V11; 
V75 = 0; 
L78: 
ENDPROC; 
PROCEDURE L82 USES DEVICE_DATA, TEMP_DATA, L30, L309, L299, L214, L157; 
IF (V74) THEN PRINT "blank checking 7K device(s)..."; 
IF (!V74) THEN PRINT "verifying 7K device(s)..."; 
CALL L30; 
CALL L309; 
CALL L299; 
FOR V11 = 1 TO 101; 
CALL L214; 
CALL L157; 
IF (V42 != 0) THEN V11 = 101; 
NEXT V11; 
IF (V42 != 0) THEN GOTO L84; 
IF (V74 && !V103) THEN GOTO L83; 
FOR V11 = 102 TO 103; 
CALL L214; 
CALL L157; 
IF (V42 != 0) THEN V11 = 103; 
NEXT V11; 
L83: 
IF (V42 != 0) THEN GOTO L84; 
FOR V11 = 104 TO 107; 
CALL L214; 
CALL L157; 
IF (V42 != 0) THEN V11 = 107; 
NEXT V11; 
IF (V42 != 0) THEN GOTO L84; 
V45 = 1; 
FOR V11 = 109 TO 113; 
CALL L214; 
CALL L157; 
IF (V42 != 0) THEN V11 = 113; 
NEXT V11; 
IF (V42 != 0) THEN GOTO L84; 
V45 = 0; 
FOR V11 = 114 TO (V32 - 1); 
CALL L214; 
CALL L157; 
IF (V42 != 0) THEN V11 = V32 - 1; 
NEXT V11; 
L84: 
ENDPROC; 
PROCEDURE L96 USES DEVICE_DATA, TEMP_DATA 
, L82 
; 
V74 = 1; 
IF (V4 == 1) THEN CALL L82; 
V74 = 0; 
ENDPROC; 
PROCEDURE L97 USES DEVICE_DATA, TEMP_DATA, L30, L214, L157, L287, L31; 
CALL L30; 
V37 = 100; 
V38 = 100; 
V29 = 1; 
V11 = 0; 
CALL L214; 
V34 = 1; 
IF (USE_FIXED_ALGORITHM) THEN GOTO L98; 
CALL L157; 
GOTO L99; 
L98: 
CALL L287; 
FOR i = 0 TO V20 - 1; 
A31[i] = 0; 
A57[i] = 0; 
NEXT i; 
L99: 
FOR i = V1 TO 0 STEP -1; 
A48[i] = 0; 
IF (((A17[i] & 1) == 0) || 
((A17[i] & 4) == 0)) THEN GOTO L109; 
V68 = 0; 
FOR j = 0 TO i; 
V26 = 0; 
V2 = A12[j]; 
IF (i == j) THEN GOTO L100; 
V26 = 1; 
IF (((A17[j] & 1) == 0) || 
((A17[j] & 4) == 0)) THEN GOTO L100; 
V26 = A8[V2] >> 1; 
L100: 
V68 = V68 + V26; 
NEXT j; 
FOR j = 0 TO 14; 
A16[j] = 0; 
V46 = A6[V2]; 
V47 = j / (V46 << 1); 
V48 = (j % (V46 << 1)) >> 1; 
V69 = 0; 
IF (V48 < (V46 >> 1)) THEN GOTO L101; 
V69 = 1; 
V48 = V46 - V48 - 1; 
L101: 
V27 = V68 + (((2 * V47) + V69) * V24) + 
(16 * V48) + (8 * (~j & 1)); 
FOR k = 0 TO 7; 
IF (USE_FIXED_ALGORITHM) THEN GOTO L102; 
IF (A31[V27 + k]) THEN 
A16[j] = A16[j] | (1 << k); 
GOTO L103; 
L102: 
IF ((A54[j << 1] & (1 << k)) != 0) THEN 
A31[V27 + k] = 1; 
IF ((A54[(j << 1) + 1] & (1 << k)) != 0) THEN 
A57[V27 + k] = 1; 
L103: 
NEXT k; 
IF (USE_FIXED_ALGORITHM) THEN 
A16[j] = A54[j << 1]; 
NEXT j; 
IF (!USE_FIXED_ALGORITHM) THEN GOTO L104; 
PUSH i; 
CALL L157; 
POP i; 
IF (V39) THEN V42 = 6; 
L104: 
IF ((A16[0] != 65) || 
(A16[1] != 76) || 
(A16[2] != 84) || 
(A16[3] != 69) || 
(A16[4] != 82) || 
(A16[5] != 65)) 
THEN V42 = 6; 
IF (V42 != 0) THEN GOTO L109; 
V35 = ((A16[6] - 48) * 10) + (A16[7] - 48); 
V36 = A16[9] & 31; 
V27 = 5 * 3 * (V2 - 1); 
V40 = 0; 
V72 = 300; 
V73 = 100; 
IF ((V36 & 24) == 16) THEN 
V40 = 1; 
FOR j = 0 TO (5 - 1); 
IF (V40 || 
(V35 != A11[V27]) || 
(V36 != A11[V27 + 1])) THEN 
GOTO L108; 
V40 = 1; 
IF ((A11[V27 + 2] & 1) != 1) THEN 
GOTO L105; 
V72 = A14[A16[8] & 31]; 
V73 = A15[(A16[8] >> 5) & 7]; 
L105: 
IF ((A11[V27 + 2] & 2) != 2) THEN 
GOTO L106; 
k = 14; 
IF (V2 == 2) THEN k = 11; 
V72 = A14[((A16[k] >> 3) & 31) + 32]; 
V73 = A15[(A16[k] & 7) + 8]; 
L106: 
IF ((A11[V27 + 2] & 4) != 4) THEN 
GOTO L107; 
V72 = 500; 
V73 = 500; 
L107: 
IF ((A11[V27 + 2] & 128) != 128) THEN 
GOTO L108; 
V82 = 1; 
A48[i] = A48[i] | 128; 
L108: 
V27 = V27 + 3; 
NEXT j; 
V27 = 0; 
IF ((V36 & 15) > 9) THEN 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 V37 = V72; 
IF (V73 > V38) THEN V38 = V73; 
IF (!V40) THEN V42 = 7; 
L109: 
NEXT i; 
IF ((V42 == 0) && V82) THEN CALL L31; 
ENDPROC; 
PROCEDURE L153 USES DEVICE_DATA, TEMP_DATA, L276; 
A18[9..0] = A19[9..0]; 
CALL L276; 
WAIT 15 USEC; 
A18[9..0] = A20[9..0]; 
CALL L276; 
IF (V34 == 0) THEN GOTO L154; 
IF (!USE_FIXED_ALGORITHM) THEN 
DRSCAN V24, A29[(V24 - 1)..0], CAPTURE A31[V31..V30]; 
IF (USE_FIXED_ALGORITHM) THEN 
DRSCAN V24, A29[(V24 - 1)..0], COMPARE A31[V31..V30], 
A57[V31..V30], V40; 
GOTO L156; 
L154: 
IF (V74) THEN GOTO L155; 
DRSCAN V24, A29[(V24 - 1)..0], COMPARE A22[V31..V30], 
A30[(V24 - 1)..0], V40; 
GOTO L156; 
L155: 
DRSCAN V24, A29[(V24 - 1)..0], 
COMPARE A30[(V24 - 1)..0], A30[(V24 - 1)..0], 
V40; 
L156: 
IF (!V40) THEN V39 = 1; 
ENDPROC; 
PROCEDURE L157 USES DEVICE_DATA, TEMP_DATA, L276, L287, L153, L301, L297, L299; 
V39 = 0; 
V40 = 1; 
IF (V10 > 89) THEN GOTO L158; 
A18[9..0] = $016; 
CALL L276; 
DRSCAN V21, A26[(V21 - 1)..0]; 
A18[9..0] = $01A; 
CALL L276; 
DRSCAN V21, A26[(V21 - 1)..0]; 
L158: 
IF (V29 == 0) THEN 
A19[9..0] = $036; 
IF (V29 == 1) THEN 
A19[9..0] = $03A; 
IF (V29 == 2) THEN 
A19[9..0] = $032; 
IF (V49) THEN CALL L287; 
IF (V34 == 1) THEN GOTO L159; 
V30 = V15; 
V31 = V30 + (V24 - 1); 
GOTO L160; 
L159: 
V30 = 0; 
V31 = V24 - 1; 
L160: 
V81 = 0; 
V28 = 4; 
IF (V10 > 88) THEN V28 = 0; 
FOR i = 0 TO V28; 
IF (i == V28) THEN V81 = 1; 
PUSH i; 
A20[9..0] = $022; 
CALL L153; 
IF (V29 != 0) THEN GOTO L161; 
A19[9..0] = $032; 
CALL L153; 
A19[9..0] = $036; 
L161: 
V30 = V30 + V24; 
V31 = V31 + V24; 
IF (!V45) THEN GOTO L162; 
b = 0; 
CALL L301; 
GOTO L163; 
L162: 
IF (V10 != V51) THEN GOTO L163; 
V44 = 1; 
b = 0; 
CALL L297; 
L163: 
A20[9..0] = $026; 
CALL L153; 
IF (V29 != 0) THEN GOTO L164; 
A19[9..0] = $032; 
CALL L153; 
A19[9..0] = $036; 
L164: 
V30 = V30 + V24; 
V31 = V31 + V24; 
IF (!V45) THEN GOTO L165; 
b = 1; 
CALL L301; 
GOTO L166; 
L165: 
IF (V10 != V51) THEN GOTO L166; 
b = 1; 
CALL L297; 
V44 = 0; 
CALL L299; 
L166: 
IF (V81) THEN GOTO L167; 
A18[9..0] = $016; 
CALL L276; 
POP i; 
DRSCAN V21, A26[(((i + 2) * V21) - 1)..((i + 1) * V21)]; 
PUSH i; 
A18[9..0] = $01A; 
CALL L276; 
POP i; 
DRSCAN V21, A26[(((i + 2) * V21) - 1)..((i + 1) * V21)]; 
PUSH i; 
L167: 
POP i; 
NEXT i; 
V15 = V30; 
IF (!V39 || (V34 == 1)) THEN 
GOTO L168; 
IF (V74) THEN V42 = 9; 
IF (!V74) THEN V42 = 11; 
L168: 
ENDPROC; 
PROCEDURE L214 USES DEVICE_DATA, TEMP_DATA, L276, L309; 
V30 = 0; 
FOR j = 0 TO V1; 
V31 = V30; 
IF (((A17[j] & 1) == 0) || 
((A17[j] & 4) == 0) || 
((A17[j] & 8) != 0)) THEN GOTO L216; 
V2 = A12[j]; 
IF (V11 >= (A0[V2] - 108)) THEN GOTO L215; 
V31 = V31 + (A0[V2] - 1); 
A28[V31 - V11] = 1; 
IF (V11 < 108) THEN A28[(107 + V30) - V11] = 1; 
GOTO L216; 
L215: 
IF ((A17[j] & 8) == 0) THEN V49 = 1; 
A17[j] = A17[j] | 8; 
L216: 
V30 = V31 + 1; 
NEXT j; 
A18[9..0] = $01E; 
CALL L276; 
DRSCAN V30, A28[(V30 - 1)..0]; 
V30 = 0; 
FOR j = 0 TO V1; 
V31 = V30; 
V2 = A12[j]; 
IF (((A17[j] & 1) == 0) || 
((A17[j] & 4) == 0) || 
((A17[j] & 8) != 0)) THEN GOTO L217; 
V31 = V31 + (A0[V2] - 1); 
A28[V31 - V11] = 0; 
IF (V11 < 108) THEN A28[(107 + V30) - V11] = 0; 
L217: 
V30 = V31 + 1; 
NEXT j; 
IF (V49 && (V11 == V52)) THEN 
CALL L309; 
V10 = V11; 
ENDPROC; 
PROCEDURE L240 USES DEVICE_DATA, TEMP_DATA, L287, L276, L71; 
V30 = V14; 
IF (V49) THEN CALL L287; 
V31 = V30 + (V23 - 1); 
IF (V75) THEN GOTO L241; 
A18[9..0] = $016; 
CALL L276; 
DRSCAN V23, A21[V31..V30]; 
V30 = V30 + V23; 
V31 = V31 + V23; 
A18[9..0] = $01A; 
CALL L276; 
DRSCAN V23, A21[V31..V30]; 
V30 = V30 + V23; 
V31 = V31 + V23; 
GOTO L242; 
L241: 
A18[9..0] = $016; 
CALL L276; 
DRSCAN V23, A29[(V23 - 1)..0]; 
A18[9..0] = $01A; 
CALL L276; 
DRSCAN V23, A29[(V23 - 1)..0]; 
L242: 
CALL L71; 
V14 = V30; 
ENDPROC; 
PROCEDURE L257 USES DEVICE_DATA, TEMP_DATA, L30, L287, L276 
, L214, L240 
; 
IF (V107 == 0) THEN GOTO L271; 
CALL L30; 
FOR i = 0 TO V1; 
IF (((A17[i] & V4) == 0) || 
((A17[i] & 4) == 0)) THEN GOTO L258; 
IF (((V4 == 1) || (V4 == 256)) && 
((A17[i] & 16) == 0)) THEN 
A17[i] = A17[i] | 8; 
IF ((V4 == 2) && 
((A17[i] & 16) == 0)) THEN 
A17[i] = A17[i] & ~4; 
IF ((A17[i] & 16) != 0) THEN V75 = 1; 
L258: 
NEXT i; 
IF (!V106 && (V75 == 0)) THEN 
GOTO L271; 
IF (V106 && (V75 == 0)) THEN 
GOTO L263; 
IF (V4 != 1) THEN GOTO L259; 
V11 = 108; 
CALL L214; 
CALL L240; 
GOTO L263; 
L259: 
V11 = 0; 
L263: 
IF (!V106) THEN GOTO L271; 
IF (V4 == 1) THEN 
A18[9..0] = $03E; 
IF ((V4 == 2) || (V4 == 256)) THEN 
A18[9..0] = $3FF; 
CALL L276; 
CALL L30; 
V75 = 0; 
FOR i = 0 TO V1; 
IF (((A17[i] & V4) == 0) || 
((A17[i] & 4) == 0)) THEN GOTO L266; 
IF ((A17[i] & 16) != 0) THEN GOTO L264; 
A17[i] = A17[i] | 16; 
GOTO L265; 
L264: 
A17[i] = A17[i] & ~16; 
L265: 
IF (((V4 == 1) || (V4 == 256)) && 
((A17[i] & 16) == 0)) THEN 
A17[i] = A17[i] | 8; 
IF ((V4 == 2) && 
((A17[i] & 16) == 0)) THEN 
A17[i] = A17[i] & ~4; 
IF ((A17[i] & 16) != 0) THEN V75 = 1; 
L266: 
NEXT i; 
IF (V75 == 0) THEN GOTO L271; 
IF (V4 != 1) THEN GOTO L267; 
V11 = 108; 
CALL L214; 
CALL L240; 
GOTO L271; 
L267: 
V11 = 0; 
L271: 
V75 = 0; 
ENDPROC; 
PROCEDURE L272 USES DEVICE_DATA, TEMP_DATA 
, L273 
; 
IF (V4 == 1) THEN CALL L273; 
ENDPROC; 
PROCEDURE L273 USES DEVICE_DATA, TEMP_DATA; 
FOR i = 0 TO V1; 
V2 = A12[i]; 
IF (((A17[i] & V4) != 0) && 
((A17[i] & 4) != 0)) THEN 
IF (A0[V2] > V32) THEN 
V32 = A0[V2]; 
NEXT i; 
V32 = V32 - 108; 
ENDPROC; 
PROCEDURE L276 USES DEVICE_DATA, TEMP_DATA; 
V41 = 0; 
V27 = 0; 
IF (!V56) THEN GOTO L277; 
V56 = 0; 
V41 = 50; 
IF (!USE_EXTEND_IR_DELAY_METHOD) THEN GOTO L277; 
V27 = 50; 
A32[49..0] = A30[49..0]; 
L277: 
FOR i = 0 TO V1; 
IF ((A17[i] & 8) != 0) THEN GOTO L278; 
IF (((A17[i] & V4) != 0) && 
((A17[i] & 4) != 0)) THEN GOTO L280; 
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 L281; 
L278: 
IF ((A17[i] & 2) != 0) THEN GOTO L279; 
A32[(V27 + 9)..V27] = $3FF; 
IF ((A17[i] & 1) != 0) THEN 
A32[(V27 + 9)..V27] = $03E; 
V27 = V27 + 10; 
GOTO L281; 
L279: 
IF (!V57) THEN GOTO L280; 
A32[(V27 + 9)..V27] = $02A; 
V27 = V27 + 10; 
GOTO L281; 
L280: 
l = 0; 
IF ((A18[20] == 1) && ((A17[i] & 64) != 0)) THEN 
l = 10; 
A32[(V27 + 9)..V27] = A18[(l + 9)..l]; 
V27 = V27 + 10; 
L281: 
NEXT i; 
IF ((V41 == 0) || USE_EXTEND_IR_DELAY_METHOD) THEN 
GOTO L282; 
STATE DRPAUSE; 
WAIT DRPAUSE, 5 USEC, DRPAUSE; 
L282: 
IRSCAN V27, A32[(V27 - 1)..0]; 
V57 = 0; 
WAIT IRPAUSE, V83 USEC, IRPAUSE; 
IF (V91) THEN GOTO L283; 
STATE IDLE; 
WAIT 3 CYCLES; 
L283: 
ENDPROC; 
PROCEDURE L287 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 (((A17[i] & V4) == 0) || 
((A17[i] & 4) == 0) || 
((A17[i] & 8) != 0)) THEN GOTO L288; 
V2 = A12[i]; 
V25 = A1[V2]; 
V26 = A5[V2]; 
GOTO L289; 
L288: 
IF (V74) THEN A30[V24] = 0; 
L289: 
V23 = V23 + V25; 
V24 = V24 + V26; 
NEXT i; 
V49 = 0; 
ENDPROC; 
PROCEDURE L297 USES DEVICE_DATA, TEMP_DATA; 
j = 0; 
FOR i = 0 TO V1; 
k = j; 
IF (((A17[i] & 1) == 0) || 
((A17[i] & 4) == 0) || 
((A17[i] & 8) != 0)) THEN GOTO L298; 
V2 = A12[i]; 
k = k + (A5[V2] - 1); 
IF (V10 != A9[3 * (V2 - 1)]) THEN 
GOTO L298; 
V27 = (16 * (A6[V2] - 
A9[(3 * (V2 - 1)) + 2])) - 
A9[(3 * (V2 - 1)) + 1] - 1; 
IF (V43) THEN A29[V27 + j] = b; 
IF (V44) THEN A30[V27 + j] = b; 
L298: 
j = k + 1; 
NEXT i; 
ENDPROC; 
PROCEDURE L299 USES DEVICE_DATA, TEMP_DATA; 
j = 317; 
IF (V51 == -1) THEN V51 = 0; 
FOR i = 0 TO V1; 
IF (((A17[i] & 1) == 0) || 
((A17[i] & 4) == 0)) THEN GOTO L300; 
V2 = A12[i]; 
IF (V51 >= A9[3 * (V2 - 1)]) THEN 
GOTO L300; 
IF (j > (A9[3 * (V2 - 1)] - V51)) THEN 
j = A9[3 * (V2 - 1)] - V51; 
L300: 
NEXT i; 
IF (j != 317) THEN V51 = V51 + j; 
IF (j == 317) THEN V51 = -1; 
ENDPROC; 
PROCEDURE L301 USES DEVICE_DATA, TEMP_DATA; 
j = 0; 
FOR i = 0 TO V1; 
k = j; 
IF (((A17[i] & 1) == 0) || 
((A17[i] & 4) == 0)) THEN GOTO L302; 
V2 = A12[i]; 
k = k + (A5[V2] - 1); 
V27 = (16 * (A6[V2] - 
A10[(2 * (V2 - 1)) + 1])) - 
A10[2 * (V2 - 1)] - 1; 
A30[V27 + j] = b; 
L302: 
j = k + 1; 
NEXT i; 
ENDPROC; 
PROCEDURE L309 USES DEVICE_DATA, TEMP_DATA; 
j = 317; 
FOR i = 0 TO V1; 
IF (((A17[i] & 1) == 0) || 
((A17[i] & 4) == 0)) THEN GOTO L310; 
V2 = A12[i]; 
IF (V52 >= (A0[V2] - 108)) THEN 
GOTO L310; 
IF (j > A0[V2]) THEN j = A0[V2]; 
L310: 
NEXT i; 
IF (j != 317) THEN V52 = j - 108; 
IF (j == 317) THEN V52 = -1; 
ENDPROC; 
' END OF FILE 
CRC BAEE;