' Copyright (C) 1988-2002 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: EPM3256A - c:\maxplus2\project\oscillog\oscillog_main.pof Sun Feb 22 12:58:31 2009

NOTE "CREATOR" "Altera Jam/STAPL Composer Version 10.2 06/28/2002";
NOTE "DATE" "2009/02/22";
NOTE "DEVICE" "EPM3256A";
NOTE "FILE" "oscillog_main.pof";
NOTE "TARGET" "1";
NOTE "IDCODE" "172560DD";
NOTE "USERCODE" "FFFFFFFF";
NOTE "CHECKSUM" "0034C45D";
NOTE "SAVE_DATA" "DEVICE_DATA";
NOTE "SAVE_DATA_VARIABLES" "V0, A12, A13, A25, A43, A50";
NOTE "STAPL_VERSION" "JESD71";
NOTE "JAM_VERSION" "2.0";
NOTE "ALG_VERSION" "14";
ACTION PROGRAM = L0, DO_BLANK_CHECK OPTIONAL, DO_VERIFY RECOMMENDED, DO_SECURE OPTIONAL,
DO_READ_USERCODE OPTIONAL,
L15;
ACTION BLANKCHECK = L7, L15;
ACTION VERIFY = L8,
DO_READ_USERCODE OPTIONAL,
L15;
ACTION ERASE = L12, L15;
ACTION READ_USERCODE = L13, L15;
DATA DEVICE_DATA;
INTEGER V0 = 1;
INTEGER V1 = 0;
INTEGER A12[1] = 22;
INTEGER A59[1] = 480;
INTEGER A60[1] = 1;
INTEGER A61[1] = 388325597;
INTEGER A13[1] = 260;
INTEGER A25[1] = 10;
INTEGER A43[1] = 0;
BOOLEAN A50[146382] = @
wT400G@TtNdKhF@VjUN@@@_@@hf@Vzhq@ztVlslR@lV@@@@kIj@KhzwJlNxbT@@l
@h@Qw@N@g@VzzN@@xVz@J@rwFjLhLrQlNMxrUPj@@vr_@d_@rlVz@V@@@@9GG46e
U@@V43y@@xNZ1sxF@z@@@x@rwt@@hl@@@R@h@@_@@xzrQjgy@@tMz7i@r@V@Ng@a
Qj_zh@@pl_@bbQCkNhrOQj_hgrJzz@hrxVzVs@N@l@@h7r@@Ny@@Vv@@@x@VzdM@
rlwwDVVpQjy@_rqNz@x@@@Nj_@b@Q@N@@zA_lz@z@@@x@hrsKjsBVzUDds@@_@Vz
jM@@oVz@b@Vzl@@rVVzNh_qMjiMhzwQjNphr_llNxV@w@N_@r@NC6y@l@x@@@FsO
ml@@VpP0j_@V@w@@_@VVv@@@x@_lcIhbB@r@B@@sly@R@awlKJh@Vr@@@b@VjKMh
@QQjMhf@QjwK@@tQz@B@d@V@@@@_wf_z@r@x@N@s@@@hN@rQVzN@_@@@jMh@xVj_
J@@@l@@hL@VzNs@z@Tls@Dd6eMRloQh_gQrMj8r0@@@@_@r@Tz@@xr@lsNh@eMi6
BhzUDiNxrqs@tIR@Vr@N@lr@@@_o0_@@@_@z@zx@@wk@@tV@@h@@h@ZE1lV@l_tN
hyV@lwxzVN@l_l@@@F@Nhrqo@@j@r@x@Ntt@VfkNArQ@l_@_@w@jMAroVjMJArwF
jMFL@@lM_@rVn@@@x@@loKzUlw@xVh@@@_@@rzQzNxh@@t@@gbr@@NM@r@_@@@zr
w@h_hjt_@r9x@sV@@@@_@lMrVrQRrrxbzQ@@JC1h@Vz_@@rzVzNJ@rMLjMhjzQjN
shr__lNxz@w@h_@rlJQW@vNl_e1u@@@3c6m@T@tdFxlx@FFl@@@_@@_TAzxxzK@t
t@@lr@@V@@zVQjMBz@@@hkz@pw@@lBrV9jM@@q@@@L@@QHjM@brQjcM@rQwf_@_r
w@j_F@x@@@tzrJj@@hU_ld__@@@zl_hf_wlo@@@lVjMV@@QzdO3e@0zhs@ztVlsl
R@@V@@@@_Qj@En6m_@@tz@@d@@@UV@l__h@@zdw@f_Az@4RWbUfNMR@VdO6yzl@V
ZDm@@@zHc1@@@@k@@@z@z@VYJO1KW@l@BhrQ9m700q000G30W@4R0@@@Fz@fbqQz
NLhrQPrNhbdw@lJh@VQmy@I@@@zNFrx@l_t@@o@9s0@rVz_@@@vQj_x@rwNz@@l@
@lIw@LVA@t@jzQ@hz@@N@@@lhr_BjshlyUjNrz_@x@x@t_@@l@@q@JC3yNh@oMjM
JfzUz9c4_@V_zl_@LoOWsr@@hl4yN@zp@_@t@x@l@@NB@@tly@@@j@l_x@@@N@Nh
bro@V@@r@_@N@z@VfUYXX_zqVpx@@_@llyK@pxg@@th@@l@@@rJi4qw@@UY9X@@@
N@@Vje@grywgtJxr_@4J2h@QhiMhryUjsJxrQt@thj@Nz@JC3y@@xx__xty@@l@@
VVz@V@wx@@zx@@x@@lhb91l@@@_rw@r@h@x@@@@4B1_@@@k_@@zw@@xBrVHjM@lr
@@VNz@QIjM@frQjYM@rw4p0l_F@_@VyD6rJvu@ht@ne_963_Nhrz@lMxhV@tt@za
KllQJvU__lNxFnIGrQl_9c4_Vz@EnmeCoWZo7QbUm@@@gw@@@OE3yl@@xx@Q5jM_
l@@l60y@wUm@BFngWQm@Bh@VDmy@@Y@u@LFr@xeE6t@wtl@@@VwdM@g@w@FnIm@@
Vl@lMV@rVj_t@@yO@tUYPWr_hqJC3wVJe9E1bwlsDnIW@@@t@txFtR@@Co46MDmt
ktVXS2_@_@z@QvVYbW@@@wcO3yN@@xVz@t@boVJi1_h@VPfMhxKQjk9E1Uh@p_@F
dbpPzeE@povSERJS2gt@@z@hrUYbGJi1_@xrQYJmNjsBVzUCls@@9s6ul@@z4ZXc
O9qT@tw_@llmp0z_@@3t6uh@zFuxXcO3kYDm@zVDjMB9@q@NdORuKl_pAz@Bzd@V
@zUlkwf_yVrtpxL@@4p0VzL@DnFuxh@g9E1V@@@gr_hishlwUjLh9MYJC3isxbs4
pWr@@R_@@F_z@@z@@tpVV@UlN2_t@@zl@z7KA1@@hrU@@NFnKX@@GzJC6u@h@@4Z
1QjM@frwfAu3qo0W6C_@WV@@@rcw@@xeaWNh@QVz@tdOCe9M2g@Q@j@@zUYfYlH6
Oz@fl9s6_R@dz@zzx@@@tzx@V0n4y@@vx@@@px@tlV@@Vt@z@dOOmg@@@9c4UoOW
BrNfcORu@OC66rJjuFg3Zne_DnCu433k_z@dJQGJC3Sx@_VYX1s@_@_@@@y_@@t4
pWvaOuNV@V463DAJm@@@NOC3y@@_R@V@l9c4Qji@r@VzVYn0_BrQw@N_FnOWrVjs
JC9e_@rtp@@l@@@FrK@w_g@@vh@@t4B1l@@hdO2nQlsl@@lVt@@@_l@@RYP0@@wd
cORSCq0@l@@_xt@z_@@x@@@t@@@c@@@_ua6m@@@l963_@@sRYTYVzVU@t@@_@hdK
V@Nxz_Fb@@@l@VzNI@rVQu5TTHQjwz_roNz@l@@@Fj_@bp9Pm@rQlfMxLjUlsDng
mhjIDjIxTrQlsMBz@Tls@xr@lq@h@l@V@V@@t@_@@Vv@_@drxXUh6u@@@q@@@Bh@
@@cOCmQfyt@@Vj@l@L@@_NdOaWzQjkK@@VQzzg96Du4Z4DnIOEP2yV@trhTVt4JY
0X6Cdq0h@Vrp9nuiX1__@@z_V@x@@zr@@zVtg4YKcGJC6y@@Vxl6hbb@tllh_V@l
_Vy@IzFnKXvTrQ@lwFxUD0r@@d_@@Vw@x@p9De963dOUOEf1shMRflMhgLR@t@@7
k3X@Fu7_@PYzGlx@ltV@V@@@@k@@_Z5RW@xFV@_x@9ZJmv@@VcO3yd_@FdCXcO6e
@@zd_@t@So4q@l2IhrVLbMhr9c7cJQGcu4yN@rWNqz2frwRcO6qsl@VYHYBg9q4p
0@g@NDnaW_VzlN@@V@@@xLFJO1j1K@@@VIRW@@tU@@@Rc@@@p4dW@zLVltxzuUQb
iM_@x@dwt@@wls@9LlIjMPYJW_hngQjMVhrgfy@@rq@lsP_VtpxzUbbwxVLVltMz
@VdJoWK@@@Cn9uwlotx@VFf@R@Cn6m_hMphlURJiDyUjsJxrQx4Z1k_@r@FdW@@@
DVlV@VkDucb1dnOmlI@VJi7u@@HxQm@3fH@llKzbcOICdC1@r@@dO2nw@IVJCCEQ
RGcu4K@Lwd9M2@h@x_xt@JUcmJn42hdW@_@V@V@@p9Jm@@dk@@@VV@7hgbo@RYbG
cOFEnaGSP3e@Qrhwh@FJi1Uj_B@rRW@wdsCnLCda1z@@l@wDWQjM9xyQDlsfr@wD
mVz@9@@@tXz6u@V@UXZ1_@@xyTxlxlV@t@z@U__4cJomlU3Kk_Ba9s0mNgVp9Pmh
rADjM@LrQf_@wPW@@VV@tNDgUelqxzU_hN2g@@@dJg2@t_VDnym96CCd43cMxq_r
B1z@w@_@hlV2C1@p@@_@t@zv@@x_@@d@@wl7@@@A6IOEf4ut@zx@_dcMh5VJCdyh
d1_Vw@z@hld9s3@wnWrV@@vaUmzQlcz@@V@t@@y@l@r@h@d963MRjQPhshTYH2M@
@@BDqWCkCmz_Vlll@Vj@t@__x@y@z@x@@tt@wtl@@l@cOm8JC3yIjMTY16u@@Vz@
tNPgUeNrxzkq@@@VzIm@@frSIXmUj@r@V@VkM68z@hFJCFy_@@R@@@t@@tl@x@@P
nCm@xzl@@@V@@@A_lM@dFq0lM@@kVz@z@l@@hN2_V0uL@@W@ht3KhrN@rB1@Qz7G
@d@z@@@x@wX_436o4x1x@@rq@l_Lx@kRWJxsD@@lx@_lVzO8wC3o4p0@B@VbJMXV
zVRWyp4wAxFOmv1JqYk1_1w8FusBNhpwqKuDKJUvYJ4Xs_Bgi2gIQx@_Qw@xzeU@
tt4p3p9bmlU6uNBLIwlMBhrA5XMhdDniX_B@@CnCmQzNzSIUSY16wzQjjsfrMEf1
_w@Jz7jBPkyKHtq5cr0yS1vZiu6Ty0SbOWM0mM2d7kOp6ROWn@GzvYGWzVxFbwr@
@wlt@zU@wt@w@V_TjMfzhN2_BLVHbMzxq@@tN@@AIjMVfrAbaMtLKgf_x@rgtlUD
l@ztV@zrJwl@hVyoWJCUWVz@VvaIOlQjFJC3is@@NUf1@wjHvaCSzP2ptamPc94g
f1p9PW@@@qo9DWrQ8e700Q000e20Wle_Brow@JFJi4iMhLMEf1qwtJdJI2B@Qzp9
9X7e@wCnmucK3y@g@NEP5i@@qBdCX5JDedE32Ra1@@zho@l@r@@@x@NZVE96yNhr
a963bJA1hLJT@@fr_VzPu@@lx@@h7rlst96Cuw@Tt@tQDv@@LrNz@BiQW_hT@5MD
m@@t@SICyht3BiQWMhrMMjshwrQxztgjlmA3_lV@xOrW8hImV_xUGhCimg1dOi1@
@llCnUmhrzEzV_V@@u@Egdwz@N7Fd43ydTlOQj_w_rw@NFCqQl_a9c1_Z@Ou@7@X
@Vz@NlDMOr0@z@@_d@lRoqW9KDm@@@F@x@F__@@boQmlUIKEf1_@7@Bdi2hrwXix
xrq@lwR_@@mVC_bdwuFK@ZnGzx@z@@dkmg4_hL@NOz1sVrQEzrvBdqW76DeSI6Oj
MfDdq3z6oW@@@lpaUm@V@l@@@T_vx@PYzWQjMBw@_@bJo0r@@@vaUmVQzhJ3cVVm
@@_@gfqV@L@La1BiQWz@@@VzOmwVJ@96UimQ2g@QrNO53@@l@y@s@z@_@xl@@ljn
4EuoWGJD8Ji7MOrWvaEnx@@lwf_T@rltsN@@@rJYOYDmVrNx2hIuqUjlSo7e@Vv7
Jy3w@VvZ9E1V@@V_@x@z_@@hl@@zbu4szrWpwCm@hKFltNV@Vl@n4dWozV@VzIWK
hqVva9urQjcMhlQCn9u@@u@433SC6Z6JS2gx@@Bda1rwlJ_hzVzVthv@c@FcO3y5
hzyhd1_@Fy52@VmFy@z4ZGy@@Rp@@lFLv4y@@txzVVJ_@@VAe9u@ltZM@@lFrxT@
V@l@wnW@d@tVz2n@ZnelUg3@Hz@98RWN@rAVzJ@BioW@@hq5MVGjsVr2hdGx@Vr@
L@lr@@@@IPepj4yx@VDA63_@Ngp4J2@VDu_Zq@z@NgxbAjkSo7erwfimQ2@w5YlM
@lcOyG@@@lr@lU@@Vwn4Zn_PCO@@@t@x@l@V@V@@@l_@@ttPrWvaIuNl4y@t_frQ
jq@@Hlw@@VhH@@n4JYl_h@QxCOE99y@tNJ@@wNj@Rl@Mj@cOC8JC9y@Vwxly@@gx
Ae@NzxN@@b@z@TdD6Szf1_V@@2AE1@@t@__@_RY91g@@@n4x1VjKBhVQjiIfq8Qj
UI@@VvNFCqVz@x_@VTXLFqhhUFda7NTpW@_@Vz@@zHXQW@@zV@zt@@ARW_@@ldkD
m@Vx@2hFKEv68LAzjMhqoQrMHfdw@LtIm@@_FJC9yt@zfrVjoJvV_Lt6u@@_VXr4
is@@dke1_@@Nv@K@x@N@tKVbkNRrQQjsR@wPmLtFSdU2LkPW@@@zXfD8HJ3y@z@M
Ev3n4RW@@zL@@tNK@XQPz@hx@@ds@hbgAzNhCnUeSI9SzNV7JS2_z@@z@Jfwgwlc
xx@0Uj@R_@@@_@@VqAtHHvK77lohSQr9Srj1Iz_wDjwfTrD6R_oGhU9yT33n4pW@
@@hhkDmlL@l@NzzOYhWrgfk@@rQ@lkD___@@rxX5MDm@@ODy@@no9nuNF9e@NztN
V8PIOWt@@@gtDOwm4y_@lx@@@t_@@_Lt9G@@ldtp@arQjS@@VVw@@@fV@@d963qQ
zNLgrQLEf7@wXHVz9uQj@Ihzwv2h6yGl1n4lnlU6uz@U@XV3y@Vlx@txt@@VlVsx
@ynJm@l@lz@_@OYPmz@@@Lt6u@lUr@Vwl@@BLV2jM_@r@z@N@wqIjkl_Dyw@@xV@
VjlUFy@t@VYn3TwRWNz@A@@@fy@gdawhj_hd1qMjsBdC1@Nx@bfRW@@f_CkI8cV6
St_@xx@@tdM@VCnFmolKKqvikGNoQFX_Bgro@Z9E1QDMZYrVjiUgoxPbIJhppdF@
@@5MtmN@_ll@xBh@Vzkszzlw63x@@@zr7o0h6u@@@t@V@tD6FqdP2p99XQjKVfrP
jgjmLqsoNsNV5GRV6PTfeP7@tuNF3yJ@@@hN2g@wyPw@JoQzzsBrVz2h9uVz@Jhr
VPVz6Oj_gbrwhcMhrQ@@@@c@vyzF@pxVv@xgR3Kh@IVrj1UjNgP@Vlc9c1yVypz@
x@x@l@t@ptll@@V@@t@_@N@QqC1@@z@s_@xp4B1z@@@_Nl@xht0bl@xNTRW@BLVI
bIz_K@@rNz@6JS5_@FEMOz1rsl@ywrQv@@hjmQ2n4ZX@@RVjs@tyR@Vxht3@@l__
w@@z@zVR@@ztNx@VTi6Col1s@_@z@@@xtxltz@@VcOIu@@lo@s@RvadiFl1BioGv
aFO@p@@gx4KhjNPjLVLjQhsLtOSYX1DnmWt@@V@@lVbfdW@@@R@y@@__@zbV@@NL
N2n4dWVVrVx@@VklMffb@@B8f1t9W60a_IzhkbWMfdwSIUu@xrwgxDmVrQtNF3U@
@@j_@LVrz6_@l@z@xUxxz@t@_@l@V6N@@@t_@p@zVx@hl@@7@_@h@@@Rh@@vq@@@
BdKY5Mb0z@hr2hLu@wfoNzrVvaLuwt@tzVV5r7eULklz@wrYrMjrcOUm@wx@gXCu
x@@lmR3yt@@_h73x8RGvaImNfMBJi7uQjUs4pCzrd0j@gqJCI8cO6u@L@zh76Uit
@z@@_xt@tF4w4yOSv@jk1Qnxtxh73v@@@_u@@xhN2hqQjNTpW@l@@vaIW@@@l@Vr
t5MbGf_0blo@zhkJu4Z7y@@@v@@Vr@Nzl@VrVJ@LgEjLh9rIl@hN5DTZHvaFy1h1
zrRW@x@Q@@@hw@@lwht0@@@bzrd0@qQTf6yXBiQWxzUFNFrz_kktrxw@Vrz6zrdW
@@lFjsVrKUzrxhtWzyDm@h_Fw@@VfVVrcM@rcJoZG3suNlAyVzvxxr@FcuD0Xw@u
@_@@gx4eV@@x@@rtQzJ@LtRKE99QjMxvqQlgNhjVEf72P84hr@@9@PGcO9uV_GJh
rc2rGRU5wlKp9vX@wfyvamGr@@l@@dM_zrFQ@p@xhF1NhTNn4@0@@rVVz@@_rllk
wEXOYJel_4Eb8aCnamQvuDmBwQQMhvgvdKRYv4l_V@Dnin96LSmT2NTNHcOOSYH8
NTd0@@@UN@@@Uz_@xht0h_@@zrR0jMhqhkDm@QjtlUOu@t@ll_7Sj_xxVUjtt_@l
@@xV@rQ@YMxrBdKYOYtu4ZP_rp0@@Vjs@trlw_1j_h5qQj6zhrwHLxtjl_7Y9kYC
n8n@@@j@r@Fz@@VK@lwLf@QJjMhbTUjs2hISY19NT@Wo@@V@r@l_N@@Y9c1MYrwU
iMhfrwFg67nt@lMl@r@u_wbWM_r@LtIqNl1NT@WNx_@osD8cOFEnG5Qz@V_r@@z@
_@imQ2_@VlyVz@Urz6Mg@Vo4xXhkhm@zrAli_BvU_@BioGcOCqNl46xzOPFsZXz@
ldq@@w96sO@@xnzLQ5jy@V@9z@_VrVW@Ngw4Ajs@h_lll_VhaQbyNhrqAjEGfr3L
zNhaoPjUy@AxwzUBDrx@gUlthlU3yQzNc963_@x@zKwlfwfzllU3y@@l7Ji4_@t@
FnO9@@@xMz@@j@t@erQbm@@llw@FThl@qgK@bqAr@H@@@Nrxf5LQzJMhKQAbNhed
gwJHhD6wwujh@@@JCym@@VPJCaud_@t@wtZ_hrlVzmu4ZSyV@wx@zBb_2jcw@LV@
@Nz_qIjY9s0lIBdNTNX_l@N_frFglw@j@@lMEf7wrNljohzFMT2n4lXl_@qcOc9c
u4yrVtxN@@tVf_9gKwVd_@V_wtNxhN2@@l@_xhdq@_Nx@VVr@x@lVFrNI@rFzr@W
M_@wOYV8JC9u@L@x@N@trFjQcOCCdqCUv@@p4B1Ihbt_x@hxhFX5MJGjyhbrQjK_
BrwbJoWhdwOVK@Z_Hz@dJYa_wDWsfl_Lt9u@z@@NFFcJYdhkJmIjIl@L@VtNz@n4
BX@@F66ZHze_@@qnVyJ@@@tx@hVVzFu@@VlSIIkwE1yhjQIjMxvrQlgNhrtVjM@S
IjOjw@l966MOjYhkJmwjMBFrWFWM30qWv@5y@@xlUY@iB3o4J59shlyEjNJHsW5M
3PE9Oy@l_v@_lN@Nfr2hCuLgrwNFIyg@@x@_VTE9IO@LhvrNhzNF9y@rNPzNRbrQ
fsSI8n@@Vtr@@lNV@VVf_Berw@Z9s0fIh@NTdW@bw@OYbm@h@IVz6uRjM@NF6Sjz
xsN@3MdNxxht0@@@zdOWao@@@_wJmtzrAQjyV@@Vr_@Vrzh@NSrD6C_@rlws0rJz
twh@ldJ23@Fj_n4RWLR@M@@@_n4NHVzFSrT2w@VrdJ26@@l@zrlX@w@NIgqwEjMh
frQagIFr@NFUAdq0ds@@1eRGCn9uf@Qjl_7yf@Vb9sCyx@UzV@NJhLoFcO9y@hbo
AzNJhKA5rLfLdw@@6h@VdJYaCnUeSoGKgrQPjMhbrQjs2h9Gz@@@NlMy@h_x@@xp
zKQDju@@MyDm@VfgNgqA@d_@_@w@jMgboVfMglU34y1QP0G36@Vm@Lt9Oz@@s@@d
gNhVAFz@@@wjX@@fr_wVm@V@VJCBv@VVtw@xlzV_FjMfazrVY@@@V@NDr_fl_z@@
wxt@@s_wdY_h@A@@z@UrQz@rZ1rsl@bJcWlMpFrQk_aprSP_z@tNF3_N@lY9UZj3
3n@tlsEo9uz@@lSI6y@lbME93MVrQZ9M2zK@1NTpWUh@@Cnm8cO9Adyam63n@@z@
Lt9uN@tFcu4I4t0lbwhzrp0rQjs_wJml_FtLt6e@Wlkl_4OzNl5Ji4_QxtNOD1@N
hvkQDNzovQQD@_ll_7KzNhxrMjcMhviQDNJhry@ENp@BdK5V@@lNTdW@z@@_wJOE
93e_ArsNl4NTRW@v_V@@@@kUg@0Vz@tNV2kUh@BdK2sl@@zrp0jNFzVzSo@@V@lU
LimQ2MgnwxhF1lQjMzrpWx@@V@@Vze_3_q@@@J@t@@NFCEnuX_wDGFsV@96LerQD
7NhvgSjcV@vQ_bJgY@x@@JCmOXr7En8d_wVu4Zey@@@x@_rglUCy@Rf6JC3dOyWv
V@@JCImht@VCnOuwlssp@VED@J@VzImhdU@lUISYH2UlMxfzQjlmQBdOmWN@@V@@
t_dOmGCnC8rQzjl_Dyx@@lmA6dOK1j@_@o9bmQgMRVzCOzlhVXrJy@tlUYn6qNfM
Fn0ZOYDu433ylU@VYXAiNFzyQlst4Z4grVDxh@1tr@ldO0Z@r@V@@@jn4NX@w@dh
kbG@@@VJC9m@z@llUCQYvaCnuf966EnuXhkhW_hnw96Iu@N@d@@@VVzOq433dOaG
Qx9SrD3IrQjEnO6@@@@_xNhFn03@lbwDnmm96Lq4Z1Ml@@Z9U3p@VkC@J@RYnZVz
uv43LkwM2_@@@BiIo96gCd4LDneYVz_@CnKf9ct_rxXcOgOXL6cJgYVzaOXrDQYf
8@zVjCMB@FneYvaUm@ylVJCmu_@@h96FEnOivase9c4SDy3w@W@t@@@l@@tRxrUj
_@x1z_@rxw1tth@wbzR@LNV@@sx@UT@txvzUls_l7g3XUFe7wz_UztrxrVxx@@tz
@xl@@@Nt@@_U@@hj@_lwwlNtxr@@Qwau@wls@ltlw@UFl@wzkxjtrxl_pxzV1y00
e5000N00iU@txzzxrxUlstxztxGa6uBuVt@VW7uV10NmVl2YnOOy@@XeuF66Z@jz
r@TzV@@s@t@GQaI3f4A5bI9a484I09G224IW83e42AfIm9a03XH89aGaHKfKI9bI
feC2Xam8C62XHO84IW8484aGWH2AX0HdK25XAbKK9LIIbGe8H298G21YGe@@zxXu
@@@GO4I8Xm8412XmG8K65XG8u0AbYq9422XI884AXWmua8E9I28X019G24KEfKq8
bIIfK98LIfeG8aI2XI8QC21XG8aaIXHGA4219nO4a2X4G21I49txwzUF5dxzwSkd
ZpvSEEdpPzSEdB0KWvCENdpvSUEdpnvSEBdpvqSFdhpzSFFdxvySEdXpvSQEdxnz
CENP06S4G2SEdpnu_@d969cxPSSEtpmvSEddpvkUEdJpvSEEdxvyUFtpxzSNltpf
zSEdO1IGkdpv205OEtprvSl7tpzUUltxwvSkjtpzwU7tpxvUEEdpPvSFl_N@@yVz
VR@x_MlVtjx_ENVtzT_ztlzzV@h_l@sV@_hl@_T@N@@y_l@bxtVt3W1_TtlrzxV7
5W1_kxxyVlV75W1_xxSzTttvt@@VX@Gy@@kRtx@sVlVlxt@TlV@z__ltT@zVN1W1
U@U@zzxkxkxxsTkVdxx_Tl@xz__z_zxzV75W432OWlVtTxSVtkx_lz@x@u@@@tx@
_l@t@zXBCe@V9y@@dx@@@sVl@lx@_Vt@@_JOOW@@@@j0O8F0CMvN2@d@vuV_db@@
yx@@pt@@Fldp@VyF@@_@V_D@pvx@@dt@z@F@t@Tz@l@s@@yTE@@x@@@t@p@VF06u
V_dt@v@VU06azl1_l@xv@_l0;

ENDDATA;
DATA TEMP_DATA;
INTEGER A0[32] =
95, 23, 23, 23, 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[32] =
3144, 16, 16, 16,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[32] =
0, 0, 0, 0, 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[32] =
0, 0, 0, 0, 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[32] =
0, 0, 0, 0, 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[32] =
3144, 18, 18, 18,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[32] =
32, 0, 0, 0, 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[32] =
0, 16, 8, 4, 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[32] =
512, 0, 0, 0, 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[19] =
294, 0, 0, 0, 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 * 31] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 1, 0, 98,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (39 << 16) + 0, 233, 176,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (23 << 16) + 0, 237, 176,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (7 << 16) + 6, 113, 137,
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[5];
BOOLEAN A27[5];
BOOLEAN A28[95];
BOOLEAN A31[1574];
BOOLEAN A57[1574];
BOOLEAN A45[1574];
BOOLEAN A29[1574];
BOOLEAN A30[1574];
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 V181;
INTEGER V18;
INTEGER V19;
INTEGER V20;
INTEGER V21;
INTEGER V88;
INTEGER V94;
INTEGER V22;
INTEGER V179;
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;
BOOLEAN USE_REV0_PROG_ALG = 0;
ENDDATA;
PROCEDURE L0 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_USERCODE USES TEMP_DATA;
V105 = 1;
ENDPROC;
PROCEDURE L7 USES TEMP_DATA;
V100 = 1;
ENDPROC;
PROCEDURE L8 USES TEMP_DATA;
V108 = 1;
ENDPROC;
PROCEDURE L12 USES TEMP_DATA;
V102 = 1;
ENDPROC;
PROCEDURE L13 USES TEMP_DATA;
V105 = 1;
ENDPROC;
PROCEDURE L15 USES DEVICE_DATA, TEMP_DATA, L22, L49,
L149,
L163, L109, L83, L129, L86,
L319,
L67, L60, L42;
CALL L22;
V3 = 0;
V4 = 256;
CALL L49;
IF (V2 == 0) THEN GOTO L18;
IF (V42 == 0) THEN CALL L163;
IF ((V42 == 0) && V102) THEN CALL L109;
IF ((V42 == 0) && V100) THEN CALL L149;
IF ((V42 == 0) && V103) THEN CALL L83;
IF ((V42 == 0) && V108) THEN CALL L129;
IF ((V42 == 0) && V107) THEN CALL L319;
IF ((V42 == 0) && (V103 || V100 || V108)) THEN CALL L86;
L18:
IF ((V42 == 0) && V104) THEN CALL L67;
CALL L42;
EXIT V42;
ENDPROC;
PROCEDURE L22 USES DEVICE_DATA, TEMP_DATA,
L53, L338, L55;
INTEGER V66 = 0;
INTEGER V90 = 0;
INTEGER V95 = 0;
INTEGER V67 = 0;
INTEGER V180 = 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 L41;
V21 = 0;
FOR i = 0 TO V1;
j = 1;
k = 1;
IF (((A13[i] & 1) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L23;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
L23:
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 L24;
V2 = A12[j];
FOR k = 0 TO (A1[V2] - 1);
IF ((k % 5) == i) THEN A26[l] = 1;
l = l + 1;
NEXT k;
GOTO L25;
L24:
l = l + 1;
L25:
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 L26;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
IF ((V2 >= 23) && (V2 <= 27)) THEN
V96 = 95;
L26:
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 L27;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
L27:
V94 = V94 + j;
V95 = V95 + k;
NEXT i;
V179 = 0;
FOR i = 0 TO V1;
j = 1;
k = 1;
IF (((A13[i] & 2048) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L28;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
L28:
V179 = V179 + j;
V180 = V180 + 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 L29;
V2 = A12[i];
j = A1[V2];
k = A5[V2];
L29:
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 L30;
V2 = A12[j];
FOR k = 0 TO (A1[V2] - 1);
IF ((k % 5) == i) THEN A27[l] = 1;
l = l + 1;
NEXT k;
GOTO L31;
L30:
l = l + 1;
L31:
NEXT j;
NEXT i;
V16 = 0;
FOR i = 0 TO V1;
j = 1;
IF (((A13[i] & 1) == 0) ||
((A13[i] & 4) == 0)) THEN GOTO L32;
V2 = A12[i];
j = A0[V2];
L32:
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 L33;
V2 = A12[i];
j = A0[V2];
L33:
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 L34;
V2 = A12[i];
j = A0[V2];
L34:
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 L35;
V2 = A12[i];
j = A0[V2];
L35:
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;
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 (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 L36;
V2 = A12[i];
IF (V33 < A7[V2]) THEN
V33 = A7[V2];
L36:
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 L37;
V2 = A12[i];
A52[i] =
A5[V2] - (80 * A6[V2]);
L37:
NEXT i;
CALL L53;
IRSTOP IRPAUSE;
DRSTOP IDLE;
STATE IDLE;
IF (V101) THEN CALL L55;
IF (V42 != 0) THEN GOTO L41;
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 L38;
A18[9..0] = $071;
CALL L338;
WAIT 10000 USEC;
L38:
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 L39;
A18[9..0] = $332;
CALL L338;
WAIT 10000 USEC;
L39:
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 L40;
A18[9..0] = $044;
CALL L338;
WAIT 10000 USEC;
L40:
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 L41;
IF (V103 || V102) THEN V38 = 1;
V38 = 0;
WAIT 10000 USEC;
L41:
ENDPROC;
PROCEDURE L42 USES DEVICE_DATA, TEMP_DATA, L54, L338, L55, L60
;
IF (V42 == 1) THEN GOTO L48;
CALL L54;
IF (!V76 || (V42 != 0)) THEN GOTO L43;
A18[9..0] = $003;
V4 = 32;
CALL L338;
L43:
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 L44;
A18[9..0] = $079;
CALL L338;
WAIT 10000 USEC;
L44:
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 L45;
A18[9..0] = $006;
CALL L338;
L45:
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 L46;
A18[9..0] = $04A;
CALL L338;
WAIT 10000 USEC;
L46:
IF (!V76 || (V42 != 0)) THEN GOTO L47;
V80 = 0;
CALL L55;
IF (V42 != 0) THEN V42 = 10;
IF (V42 != 0) THEN GOTO L48;
L47:
A18[9..0] = $3FF;
CALL L338;
IF (V105 && (V42 == 0)) THEN CALL L60;
L48:
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;
ENDPROC;
PROCEDURE L49 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 L50;
V2 = 0;
V3 = 0;
GOTO L52;
L50:
V2 = A12[j - 1];
V3 = j;
IF ((V4 == 32) || (V4 == 256) ||
(V4 == 512) || (V4 == 2048))
THEN GOTO L52;
IF (V58) THEN GOTO L51;
A41[9..0] = $066;
GOTO L52;
L51:
A41[9..0] = $006;
L52:
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 L53 USES DEVICE_DATA, TEMP_DATA, L54
, L334
;
CALL L54;
IF (V32 == 0) THEN CALL L334;
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 L54 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)) != 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 L55 USES DEVICE_DATA, TEMP_DATA, L54;
INTEGER V79 = 32 * V0;
BOOLEAN A46[V79];
INTEGER A47[8];
INTEGER V145;
CALL L54;
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) != 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 L56;
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 L57;
L56:
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;
L57:
V27 = V27 + 1;
NEXT i;
V27 = 0;
FOR i = 0 TO V1;
IF(A61[i] != 0) THEN GOTO L58;
IF(A46[V27] != 0) THEN
V42 = 6;
V27 = V27 + 1;
NEXT i;
GOTO L59;
L58:
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;
L59:
ENDPROC;
PROCEDURE L60 USES DEVICE_DATA, TEMP_DATA, L54, L338, L65;
j = 0;
k = V1;
V84 = V84 - 1;
IF (V84 == -1) THEN GOTO L61;
IF ((V84 < 0) || (V84 > V1) ||
(((A17[V1 - V84] & 256) == 0) &&
((A17[V1 - V84] & 32) == 0) &&
((A17[V1 - V84] & 512) == 0) &&
((A17[V1 - V84] & 2048) == 0))) THEN
V42 = 4;
IF (V42 != 0) THEN GOTO L64;
j = V84;
k = V84;
L61:
CALL L54;
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 L62;
A18[9..0] = $006;
CALL L338;
WAIT 10000 USEC;
L62:
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 L63;
A18[9..0] = $04A;
CALL L338;
WAIT 10000 USEC;
L63:
A18[9..0] = $3FF;
CALL L338;
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 L54;
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 (((A17[V1 - V84] & 2048) != 0) &&
((A17[V1 - V84] & 4) != 0)) THEN
V4 = 2048;
IF (V4 != 0) THEN CALL L65;
POP k; POP j; POP i;
NEXT i;
L64:
V84 = 0;
ENDPROC;
PROCEDURE L65 USES DEVICE_DATA, TEMP_DATA, L338, L66;
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) || (V4 == 2048)) THEN
A18[9..0] = $079;
IF (V4 == 32) THEN
A18[9..0] = $007;
CALL L338;
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 L66;
ENDPROC;
PROCEDURE L66 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 L67 USES DEVICE_DATA, TEMP_DATA, L54
;
j = 0;
k = V1;
V34 = 1;
V29 = 1;
V84 = V84 - 1;
IF (V84 == -1) THEN GOTO L69;
IF ((V84 < 0) || (V84 > V1) ||
(((A17[V1 - V84] & 1) == 0) &&
((A17[V1 - V84] & 2) == 0))) THEN
V42 = 4;
IF (V42 != 0) THEN GOTO L70;
L68:
j = V84;
k = V84;
L69:
FOR i = j TO k;
V84 = i;
PUSH i; PUSH j; PUSH k;
CALL L54;
V86 = 0;
POP k; POP j; POP i;
NEXT i;
L70:
V84 = 0;
ENDPROC;
PROCEDURE L77 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 L83 USES DEVICE_DATA, TEMP_DATA, L53, L277, L338, L305;
PRINT "programming 7KAE/3KA/7KB device(s)...";
CALL L53;
IF (!USE_REV0_PROG_ALG) THEN GOTO L84;
V11 = 2;
CALL L277;
A18[9..0] = $012;
V91 = 1;
CALL L338;
V91 = 0;
L84:
FOR V10 = 2 TO V96;
IF ((V97 && (V10 > 2)) || USE_REV0_PROG_ALG) THEN
GOTO L85;
A18[9..0] = $016;
CALL L338;
L85:
CALL L305;
NEXT V10;
ENDPROC;
PROCEDURE L86 USES DEVICE_DATA, TEMP_DATA, L53, L277, L338, L305, L232, L356, L372;
CALL L53;
V11 = 0;
CALL L277;
IF (V103 && USE_REV0_PROG_ALG) THEN GOTO L87;
A18[9..0] = $016;
CALL L338;
GOTO L88;
L87:
A18[9..0] = $012;
V91 = 1;
CALL L338;
V91 = 0;
L88:
IF (!V103) THEN GOTO L89;
V75 = 1;
CALL L305;
V75 = 0;
GOTO L91;
L89:
V34 = 1;
CALL L232;
b = V74;
V74 = 1;
CALL L356;
V74 = b;
b = 0;
CALL L372;
FOR i = 0 TO (V24 - 1);
IF (A31[i] == A30[i]) THEN
GOTO L90;
IF (V74) THEN V42 = 9;
IF (!V74) THEN V42 = 11;
i = V24 - 1;
L90:
NEXT i;
L91:
ENDPROC;
PROCEDURE L109 USES DEVICE_DATA, TEMP_DATA, L338;
A18[9..0] = $00A;
CALL L338;
WAIT (V38 * 1000) USEC;
ENDPROC;
PROCEDURE L129 USES DEVICE_DATA, TEMP_DATA, L53, L277, L338, L232;
INTEGER V92 = 0;
IF (V74) THEN PRINT "blank checking 7KAE/3KA/7KB device(s)...";
IF (!V74) THEN PRINT "verifying 7KAE/3KA/7KB device(s)...";
L130:
CALL L53;
IF (V92 == 1) THEN V29 = 2;
V11 = 2;
CALL L277;
IF (V29 != 0) THEN GOTO L131;
A18[9..0] = $01E;
L131:
IF (V29 != 1) THEN GOTO L132;
A18[9..0] = $016;
L132:
IF (V29 != 2) THEN GOTO L133;
A18[9..0] = $01A;
L133:
CALL L338;
V45 = 1;
FOR V10 = 2 TO 6;
CALL L232;
NEXT V10;
IF (V42 != 0) THEN GOTO L134;
V45 = 0;
FOR V10 = 7 TO V96;
CALL L232;
NEXT V10;
IF (!V103 || (V29 != 0)) THEN
GOTO L134;
V92 = 1;
GOTO L130;
L134:
ENDPROC;
PROCEDURE L149 USES DEVICE_DATA, TEMP_DATA
, L129
;
V74 = 1;
IF (V4 == 256) THEN CALL L129;
V74 = 0;
ENDPROC;
PROCEDURE L163 USES DEVICE_DATA, TEMP_DATA, L53, L277, L338, L232, L385;
CALL L53;
V37 = 300;
V38 = 100;
V29 = 1;
V11 = 1;
CALL L277;
A18[9..0] = $016;
CALL L338;
V34 = 1;
V97 = 1;
IF (USE_FIXED_ALGORITHM) THEN GOTO L164;
CALL L232;
GOTO L165;
L164:
FOR i = 0 TO V20 - 1;
A31[i] = 0;
A57[i] = 0;
NEXT i;
L165:
FOR i = V1 TO 0 STEP -1;
A48[i] = 0;
IF (((A17[i] & 256) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L175;
V68 = 0;
FOR j = 0 TO i;
V26 = 0;
V2 = A12[j];
IF (i == j) THEN GOTO L166;
V26 = 1;
IF (((A17[j] & 256) == 0) ||
((A17[j] & 4) == 0)) THEN GOTO L166;
V26 = A5[V2];
L166:
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 = 1;
CALL L385;
IF (V48 < (V46 >> 1)) THEN GOTO L167;
V69 = 0;
V48 = V46 - V48 - 1;
L167:
V27 = V68 +
(V69 * ((80 * (V46 >> 1)) + A52[i])) +
(80 * V48) + (40 * (~j & 1)) + (4 - V47);
FOR k = 0 TO 7;
IF (USE_FIXED_ALGORITHM) THEN GOTO L168;
IF (A31[V27 + (5 * k)]) THEN
A16[j] = A16[j] | (1 << k);
GOTO L169;
L168:
IF ((A54[j << 1] & (1 << k)) != 0) THEN
A31[V27 + (5 * k)] = 1;
IF ((A54[(j << 1) + 1] & (1 << k)) != 0) THEN
A57[V27 + (5 * k)] = 1;
L169:
NEXT k;
IF (USE_FIXED_ALGORITHM) THEN
A16[j] = A54[j << 1];
NEXT j;
IF (!USE_FIXED_ALGORITHM) THEN GOTO L170;
PUSH i;
CALL L232;
POP i;
IF (V39) THEN V42 = 6;
L170:
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 L175;
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 L174;
V40 = 1;
IF ((A11[V27 + 2] & 1) != 1) THEN
GOTO L171;
V72 = A14[A16[8] & 31];
V73 = A15[(A16[8] >> 5) & 7];
L171:
IF ((A11[V27 + 2] & 2) != 2) THEN
GOTO L172;
k = 14;
IF ((V2 == 14) || (V2 == 20) || (V2 == 24)) THEN k = 11;
V72 = A14[((A16[k] >> 3) & 31) + 32];
V73 = A15[(A16[k] & 7) + 8];
L172:
IF ((A11[V27 + 2] & 4) != 4) THEN
GOTO L173;
V72 = 500;
V73 = 500;
L173:
IF ((A11[V27 + 2] & 1024) != 1024) THEN
GOTO L174;
V97 = 0;
L174:
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;
L175:
NEXT i;
ENDPROC;
PROCEDURE L228 USES DEVICE_DATA, TEMP_DATA
;
IF (V34 == 0) THEN GOTO L229;
IF (!USE_FIXED_ALGORITHM) THEN
DRSCAN V24, A30[(V24 - 1)..0], CAPTURE A31[V31..V30];
IF (USE_FIXED_ALGORITHM) THEN
DRSCAN V24, A30[(V24 - 1)..0], COMPARE A31[V31..V30],
A57[V31..V30], V40;
GOTO L231;
L229:
IF (V74) THEN GOTO L230;
DRSCAN V24, A30[(V24 - 1)..0], COMPARE A50[V31..V30],
A30[(V24 - 1)..0], V40;
GOTO L231;
L230:
DRSCAN V24, A30[(V24 - 1)..0],
COMPARE A30[(V24 - 1)..0], A30[(V24 - 1)..0],
V40;
L231:
IF (!V40) THEN V39 = 1;
ENDPROC;
PROCEDURE L232 USES DEVICE_DATA, TEMP_DATA, L356, L372, L228;
V39 = 0;
V40 = 1;
IF (V49) THEN CALL L356;
IF (V34 == 1) THEN GOTO L233;
V30 = V89;
V31 = V30 + (V24 - 1);
GOTO L234;
L233:
V30 = 0;
V31 = V24 - 1;
L234:
IF (!V45) THEN GOTO L235;
b = 0;
CALL L372;
L235:
CALL L228;
IF (!V45) THEN GOTO L236;
b = 1;
CALL L372;
L236:
V89 = V89 + V24;
IF (!V39 || (V34 == 1)) THEN
GOTO L237;
IF (V74) THEN V42 = 9;
IF (!V74) THEN V42 = 11;
L237:
ENDPROC;
PROCEDURE L277 USES DEVICE_DATA, TEMP_DATA, L338;
V30 = 0;
FOR j = 0 TO V1;
V31 = V30;
IF (((A17[j] & 256) == 0) ||
((A17[j] & 4) == 0) ||
((A17[j] & 8) != 0)) THEN GOTO L279;
V2 = A12[j];
IF (V11 >= A0[V2]) THEN GOTO L278;
V31 = V31 + (A0[V2] - 1);
A28[V31 - V11] = 1;
GOTO L279;
L278:
IF ((A17[j] & 8) == 0) THEN V49 = 1;
A17[j] = A17[j] | 8;
L279:
V30 = V31 + 1;
NEXT j;
A18[9..0] = $00E;
CALL L338;
DRSCAN V30, A28[(V30 - 1)..0];
V30 = 0;
FOR j = 0 TO V1;
V31 = V30;
V2 = A12[j];
IF (((A17[j] & 256) == 0) ||
((A17[j] & 4) == 0) ||
((A17[j] & 8) != 0)) THEN GOTO L280;
V31 = V31 + (A0[V2] - 1);
A28[V31 - V11] = 0;
L280:
V30 = V31 + 1;
NEXT j;
V10 = V11;
ENDPROC;
PROCEDURE L305 USES DEVICE_DATA, TEMP_DATA, L356, L338, L277;
V30 = V89;
IF (V49) THEN CALL L356;
V31 = V30 + (V23 - 1);
IF (V75) THEN GOTO L306;
DRSCAN V23, A50[V31..V30];
GOTO L307;
L306:
IF (V44) THEN DRSCAN V23, A30[(V23 - 1)..0];
IF (!V44) THEN DRSCAN V23, A29[(V23 - 1)..0];
L307:
IF ((V97 && (V10 > 2)) || USE_REV0_PROG_ALG) THEN
GOTO L308;
V11 = V10;
CALL L277;
WAIT 1000 USEC;
A18[9..0] = $012;
CALL L338;
L308:
WAIT (V37 * 100) USEC;
V89 = V89 + V23;
ENDPROC;
PROCEDURE L319 USES DEVICE_DATA, TEMP_DATA, L53, L356, L338
, L277, L372, L305
;
IF (V107 == 0) THEN GOTO L333;
CALL L53;
FOR i = 0 TO V1;
IF (((A17[i] & V4) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L320;
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;
L320:
NEXT i;
IF (!V106 && (V75 == 0)) THEN
GOTO L333;
IF (V106 && (V75 == 0)) THEN
GOTO L325;
IF (V4 != 256) THEN GOTO L324;
CALL L356;
V11 = 1;
CALL L277;
b = 0;
CALL L372;
IF (USE_REV0_PROG_ALG) THEN GOTO L322;
A18[9..0] = $016;
CALL L338;
GOTO L323;
L322:
A18[9..0] = $012;
V91 = 1;
CALL L338;
V91 = 0;
L323:
V44 = 1;
CALL L305;
b = 1;
CALL L372;
GOTO L325;
L324:
V11 = 0;
L325:
IF (!V106) THEN GOTO L333;
IF (V4 == 1) THEN
A18[9..0] = $03E;
IF ((V4 == 2) || (V4 == 256)) THEN
A18[9..0] = $3FF;
CALL L338;
CALL L53;
V75 = 0;
FOR i = 0 TO V1;
IF (((A17[i] & V4) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L328;
IF ((A17[i] & 16) != 0) THEN GOTO L326;
A17[i] = A17[i] | 16;
GOTO L327;
L326:
A17[i] = A17[i] & ~16;
L327:
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;
L328:
NEXT i;
IF (V75 == 0) THEN GOTO L333;
IF (V4 != 256) THEN GOTO L332;
CALL L356;
V11 = 1;
CALL L277;
b = 0;
CALL L372;
IF (USE_REV0_PROG_ALG) THEN GOTO L330;
A18[9..0] = $016;
CALL L338;
GOTO L331;
L330:
A18[9..0] = $012;
V91 = 1;
CALL L338;
V91 = 0;
L331:
V44 = 1;
CALL L305;
b = 1;
CALL L372;
GOTO L333;
L332:
V11 = 0;
L333:
V75 = 0;
V44 = 0;
ENDPROC;
PROCEDURE L334 USES DEVICE_DATA, TEMP_DATA
, L336
;
IF (V4 == 256) THEN CALL L336;
ENDPROC;
PROCEDURE L336 USES DEVICE_DATA, TEMP_DATA;
FOR i = 0 TO V1;
V2 = A12[i];
IF (((A17[i] & 256) != 0) &&
((A17[i] & 4) != 0)) THEN
IF (A0[V2] > V32) THEN
V32 = A0[V2];
NEXT i;
ENDPROC;
PROCEDURE L338 USES DEVICE_DATA, TEMP_DATA;
V41 = 0;
V27 = 0;
IF (!V56) THEN GOTO L339;
V56 = 0;
V41 = 50;
IF (!USE_EXTEND_IR_DELAY_METHOD) THEN GOTO L339;
V27 = 50;
A32[49..0] = A30[49..0];
L339:
FOR i = 0 TO V1;
IF ((A17[i] & 8) != 0) THEN GOTO L340;
IF (((A17[i] & V4) != 0) &&
((A17[i] & 4) != 0)) THEN GOTO L342;
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 L343;
L340:
IF ((A17[i] & 2) != 0) THEN GOTO L341;
A32[(V27 + 9)..V27] = $3FF;
IF ((A17[i] & 1) != 0) THEN
A32[(V27 + 9)..V27] = $03E;
V27 = V27 + 10;
GOTO L343;
L341:
IF (!V57) THEN GOTO L342;
A32[(V27 + 9)..V27] = $02A;
V27 = V27 + 10;
GOTO L343;
L342:
l = 0;
IF ((A18[20] == 1) && ((A17[i] & 64) != 0)) THEN
l = 10;
A32[(V27 + 9)..V27] = A18[(l + 9)..l];
V27 = V27 + 10;
L343:
NEXT i;
IF ((V41 == 0) || USE_EXTEND_IR_DELAY_METHOD) THEN
GOTO L344;
STATE DRPAUSE;
WAIT DRPAUSE, 5 USEC, DRPAUSE;
L344:
IRSCAN V27, A32[(V27 - 1)..0];
V57 = 0;
WAIT IRPAUSE, V83 USEC, IRPAUSE;
IF (V91) THEN GOTO L345;
STATE IDLE;
WAIT 3 CYCLES;
L345:
ENDPROC;
PROCEDURE L356 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 L357;
V2 = A12[i];
V25 = A1[V2];
V26 = A5[V2];
GOTO L358;
L357:
IF (V74) THEN A30[V24] = 0;
L358:
V23 = V23 + V25;
V24 = V24 + V26;
NEXT i;
V49 = 0;
ENDPROC;
PROCEDURE L372 USES DEVICE_DATA, TEMP_DATA;
j = 0;
l = 0;
IF (V75) THEN l = 1;
FOR i = 0 TO V1;
k = j;
IF (((A17[i] & 256) == 0) ||
((A17[i] & 4) == 0)) THEN GOTO L373;
V2 = A12[i];
k = k + (A5[V2] - 1);
V27 = (80 * (A6[V2] >> 1)) + A52[i] -
A51[V2 - 13] - 1 + l;
IF (V75 && ((V2 == 13) || (V2 == 19) || (V2 == 23))) THEN V27 = V27 - 2;
A30[V27 + j] = b;
L373:
j = k + 1;
NEXT i;
ENDPROC;
PROCEDURE L385 USES DEVICE_DATA, TEMP_DATA;
INTEGER V93 = V48;
IF ((V2 != 16) && (V2 != 18) && (V2 != 22) && (V2 != 26) && (V2 != 27)&& (V2 != 31)) THEN GOTO L386;
V93 = V93 >> 1;
IF (((V48 & 3) % 3) != 0) THEN
V93 = V93 | (A6[V2] >> 2);
L386:
V48 = V93;
ENDPROC;
' END OF FILE
CRC 48FD;
