From 6346e5e5f8193a2a975659f077e7cf225a6a85df Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 13 Sep 2026 21:31:57 +0300 Subject: [PATCH] Retry NTP before RTC fallback and gate menu startup --- _spg/ZIFI/zifi.spg | Bin 44544 -> 44544 bytes zifi.asm | 29 ++++++++++++++++++++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/_spg/ZIFI/zifi.spg b/_spg/ZIFI/zifi.spg index 0ae74153482b50e2acc8d37713d8f9f2bc5f45e4..a543b7d8dc6d9886445cd45bd178007322458881 100644 GIT binary patch delta 6045 zcmYM&{Uei$|Htv&nYrB-F}b^D%0jFa$60Ldq8s5zr+bpSoE+rlFgLp>H>q+o-Sl=sG=F*2EX8*4DF~PLMtD09F(m z8Z;Bav{@o%K~;1uVFe(EtHZFaBMDd0@k&)Imhu!?$I9Gx9~MUgG@LCnR2fL56-1aN z;R_z3DU5M|tg?x;q=Q>yH;=GX_?Pl5RrY{=#fs?g5#qwbibdmT_lk%#v&Wojv?#osQo(L4$|BCStc0_zNZMT$w1t%6h59;nn^Fx{>h-~KjeEfTufp{1#dik1|UId*A4a} z_n<&pqC;%Uxf|!7ZvW6Z$Lvux=Tt({`FR;p5 zCn+KFVvg+^aX7tdN^u*!r1SwcIyVkdmcv4Fj@eo%wY~uB>lx}xzbrkQ1((KBpOIC} z6tfoz$p5aLh2|GILMW-8EK@c+AadzGP;xz>lF~qd%MZ@8J%z4x7wtv;C&_gXFqo=z zcEHmIVUAc*>PP4B!1`j#C+>$E4D>1J*wI4>=n{ABVoEhgmcK{Cq&yRdkyppRb_w4X zndQ)BAZfI*oynTltj>(#iD*Cad@LI)cy{rni3YUJt3MIMBK}xrh&1lC3h(sM#5XBJ z;>@(DgoSA#b15OxaG-e}hQ!cBMO-JJ<)A{x2E*(L3Ewam@dV!_y%IRU z-QKTGCtBlXrMwR=d1F)E%~IhLK`&3~%{{qeO5Vv9*h-PolgCm*ok_dEzY)9-DeqC6#5#mEmV_dQlX`V=g7F%MtT(%= zrV8=!?Kf2ugnf?%*I2AWLMDl@UgB*6D>;H$RRoA0@y^_By>H7bG6rU7i`7o^fCVjk zJY+<5WqgDC_UX46+?I)b-_*Zt>z@qy`dU%i)!47hY3B2NvhKAgJ9aO_mqC!X>Etq1 z(viC&P1^d_Cq8sqvBOIiu78dOKrlBipTm3IwffazhlPiwV3u|>9=g^dh+s>ky>{Vv@Sk7(q6hXz#M7 z76?>XBAOmQVGlF^oCq2z#A4h>ep;Vkfk*88!eGO9lir>|DY(t-KhvfubdK@$SSz$` zm@4TLJxQRy^-!#oQ>|@qngh2r6h2n+XS3K;=N#)Jr|4MBegfAKv+!X=MFBIIVnv4= zPj-hf8ne-pWIA+brH$DXUZ10i>S^J!k&SUR5EUgE!Z8JF#yDp4)AYus44qn=tF9oi?m} ziz=6-I8nEi#qp+yPk@g-sJlJAt`;B95)kWbV=B2Ur`R@U#+&5PtCqG*-BFghyp3p` zMLz_#&42rQ%QvIpZwBAYOUNzFDzEWYO~340ymz0V+C#@kaiuFSuu^BQS8z&0&f`(3 zW70HI`73#S%W~KYc8}Yj0?kUyCgP+jq|IDbt9t*uc7pq*hmy}lQNK89tK`@H#{R8J z8l&iCK811c83OcfKI<}Z3(V{Y-anVl8wW=MkY9gBO`^Gg_Cy>h_Grwr2W0b??ZB5+ zln$MsYtfxdR;cMYqmte*DqA#}N?$-Ze1SyhVJ8wsdBVe1mlNf!$#tD9ed4IM50itP znh)@Ql>BqTV@P&c(1QC+{|M(r`*qr#p4-2?A>7xS9I~B}+Rm8{pRznpqB((K2P5?b z@IGIJU;X&8s44uG_Y(ku9V@n?nGJ}1+t=DF?|;^)s*B>r=^(fVb==DH^z=;(=!O{d zxS{YTca!EnOBb(Cw z1=QL*T(_bJGT)eo8+dRaSM~A%P1Q@Lhg1oMne=OdQxjejPe%hLFcYf(-Z_;humz-C zxQ5wp6EI=i5~qkPBZg(t5$(LNqz@TDCfV)RZ`xQ5##XEye}FD5Z2atmYP(|!7DR= z$Stnlt_#tuMudL5VX$e)0*zuF{bGvS=pdFQJl!>TL;5pw{GSZ=FNC7{Y*BN++Z6*A zDGZ99!aG0acju2YsahJMnW7QmvZqQyQ@|TO;bx2XYrc27&2*8zaUs11E_3JcU)_6D z7Q!-9ScT@rU-sMkoXS!CWu;MR&b!p?u%0lwW?7CpV=`yZ!cc){P zpk0%{>ld4_1b71CN=dE8x@`N@NUyxVNJ)B`p+LCe65IDd{C?tK55L4AIW#L2|$9}>&9$NaUb`e<*$i0 zU$fo5=J^47zw2>t1xYhZ)mch)2Y-Df*@(GGhrfRI8}wTGL80R<*Cc$-n@m%r+9`Me z_UeEX>#uv-{~g3erzdW*Hp10Nb>E5deQvYryK>|=KhU-LH_Y1@l^PW7dUCx-3Y$PT zJD)Lg%3m4>O44rHsIdQXz)tarf2gB~9fE_J((te9bZgS(yR!oecy!r_L9Z^&XAgG| zaF(gBPW|xkrp2#Mt_}*?x)p~gWIYB2zsYFO9+qoO%Aq?|ca9ULNv1s7d)0zCDVxgJ z;H^%5cyoCqf6;LnJp<0Rp$kU@EmwO*&t$HX3NXI$FjmMMM2Xrlt2^*pGx+Sx9|w5E zi~h40#v;(>PC>+<3Jx5VRhy8j4P|Y!B^JZd8-kZIu2^fx9q)iv)M#1{%m!$B`10HV~*9Ps6f&oM$IKHZYdxbh(YYOiK zPt@|PYg_ti&FlyFZjZ43Tv=~BG`~ax#(Eo8&b}&H&77P(|JwTw|7pIh3WwWjR48rD zr|A{lwEW7fdjGc#EvPs{39v1oFVm{j?S+7Gz;u9axzB9jUrH=Q(av!Uw@F7Ud|3;a zMC$|=*t3JSbcE9lp4lc96*>9DcY+NLh@!uO{?;#iSh(w`6?5zNm7Y5tHpj&l8aC1| zLb9>MW>s}3YF;5nNwX?AN*~~Z$tLN$ZuXPc z%5{pS&`6dd6>dkutuvPK7$jT){UahLYL<5zHiE$L?(V1!}Ql*QYqMKyNqf);J(qK|n*d^J@>M{va} zw`gvaU6#S}vB(_O0I{WzClV4z$C%8RwLbe7?4LHp~t&6wEg{j_qvD z=!0-&kxe@O(@fDC9s8RijDIV?1>BtR!l%cl9EGE z_<@aPJFg(+M2Y02)&5oPyS;sliCWAwbkb|`)`LHbnc;PEv!nSO zf%@)y1-HfDS@4#L9pnd6~Dzy&VQ<8Z)o&mE_~#_Of6@Z%rNKY z@U7y-X0b-VG}gG!TejI@+gANA15R}YbY!S)m7e&T@s7_$2t_QH7K9>zQ>anr8@VG0 zok7dew90PB^Twg_v_ypybtSlj<0ymphPUfGm0G|jXLfNDv&Gm^=?wh+;j@Gh$70Nv zjq_)64I5>GfT57Ia*)q$q=#q%cuODdLgJ3J6(xqE*QX%hmB7Gia)juXIMMp+5V8p_Ic~zUu5bC9QU7L--g+b~MnuD4*yl8o*)5@n*D=Fm1Au7ta z<>7s!QejdbHDz6PeqGNby!1v}+BP(_Dvmc3*T(Rq1zQ7`cfB?+ljEzMEBpqCcNliM z?z5HkGv^j4$k3dzzLwJDIk5BK960yp!#7mpp2j6uPvc@LVUjt$KV1G^6$_V& zeBMmR^yc`;%w;Ah^b&%vd;5%PkMqWH-+hWEp(nBP=D8ZJ0AARf@xSv#$n&-yMqBAY zI?07hO;oxW6g85=?E2S6NcoV#UFmiN%$^~HF{(vq zF1)oOd|}82g^ibm$YC;CIF)HwE<|-CsSVp^brjqcHm@~;M#ha}SZpNrHPX&icyP?% z&wY;OB7F$XUf4`GQhK(sg{Kpd<`2TVgqxC_xyR|NcVI6eXB19j%wKAT zLFg@ATXFHRddao-zA zRd@(KEbLeK9y)T&iSl^N;fSwK_BHQL*M*;+`yOBQQd>Q+npFHa?u;Gedh9TQF?`VW zyI~6UE>BLW6XVai`MO%4xpHG|ueZC?qXnOXT1j(WetU1b9|uM!a`yTY7d!l}_@r)l zxaUI~r)+HPq}6T3wh+6Bi)Y~5Jgx2K>>xSjAkp;{CZD+>KJI^NV^GVJgf zRx@-sG$=Os+%QcYI^$jyK~$p7DgjrQ3^UO6cg%IUTV1fG9Ke~cXJx{2aj1z9OsIF( ziY}7k?ECjxr!r_QunLEUd1z##NbAnJ>ead(#3sUwQI6*1T4y9i#Tl4Aa}O0mtONjp z8*a&5%^>&5SAtR%Pu|K{Q8(_wS?Xkv*U!Ta5;a=DonBkVDb^~`LtM*`fFo#Y0KG>o zIz3h)?S-CfPxs0`ln-kQ@-u`V7yMu|Fir>t5$mw@pduPZd^H$-mael?;f0ngEP;{))sxMbt0Uej5w__`tLXGa{uUra zCUR1^32lI&Gif5hF{PL3PJ6 zv;ObSQNC=9r`Dr$%b(brc+1x$u%V$t(lujOqrD1qUP4p(`Z!(EeLCD_fFZ=|UEwd~ z=1y&^uGuhqbAMHUH@#y!H4nEon}{J@*dm|5J5;=AZ;X@?gHy69bT1cskXTAvrGs|TG&aYF@^6MYOG4vW zF0=634#@9`z|vXLv&%Uq+;yx54fo7kCn$lvv7+cRv}S~}Yt&UBIyXLSQ-W3q92qC#>3}4 zJe_zt>d~f=HZ4){xVbCgW^X^Ik8lW=g=V5qv;y7fgxpx-bLAL=76XrAZ9vlXU6?#k3x$&2L8_v#Klt zm+@I3hD#Pj!lboyI+Lz}9=$HTSk)|@qK^oY(yAY{oL;4)xnJi+UUPUo;Ul`5(GoxK z;oA*?5Y;H`k5BH$fIPo`Ouy<|zkUrNs#nMgH2*!&`qBXsYR%LH)@~@pK@XG!2Mh(> zj=^1#hpiw!O4W5$h=5Uw0vitESL2_Mi4w zqRI_kbBVquq`XmQ%A> zyyz!KrBT<@NB0BIyO)-?Sa{u)Uic#Atu%g>evXks$EhWch@5mZ89 zY_nU&|8j&;&oy4IetO)!b))enaYk$hOwvZ2d=Q(l(uY|xcBY(h*3I{w0j z|6%|6qOe84PEa1T_ptAT1Jyp`*Qw}`gx}wewXyDU6&;FtXDvi zHCHI*vILqC`bq2r4w8@mNyOd53%2pD%Wpk=gWnMFmVbyn_o=TfoP+E<*0vmgoD}wJ zhR|A)8>H*F_V?XoRR910 delta 6051 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 ytTNFD4XR5&yjg>}q)t(spJz start of "Www Mmm dd hh:mm:ss yyyy" (buffer_cmp leaves it there) @@ -4284,7 +4305,8 @@ sntp_epoch_chk ld a,(de) ld b,50 ; ~1s before asking again call wait jr sntp_query -sntp_no_sync ret ; gave up - boot continues without RTC sync +sntp_no_sync scf + ret ; this attempt exhausted its bounded epoch wait sntp_real_time pop hl ; hl -> string start, this is a real time now @@ -4453,6 +4475,7 @@ gmt_time add 0 ld hl,ntp_synced_msg ld b,1 call zifi_echo + xor a ; NC = NTP date was written to RTC ret ; in: ix -> 3-letter month name (e.g. from CIPSNTPTIME's reply)