From 2249e648fcc93ffc30d6b915c217c03b29bcf43f Mon Sep 17 00:00:00 2001 From: Jelmer Date: Wed, 15 Feb 2023 20:58:18 +0100 Subject: [PATCH 1/7] testing - power not checked! --- tag_fw/drawing.c | 108 +++++++++--- tag_fw/eeprom.h | 7 +- tag_fw/fw154.bin | Bin 52909 -> 54068 bytes tag_fw/fw29.bin | Bin 53363 -> 54524 bytes tag_fw/fw42.bin | Bin 53377 -> 54538 bytes tag_fw/main.c | 6 +- tag_fw/proto.h | 8 +- tag_fw/settings.h | 2 +- tag_fw/syncedproto.c | 398 +++++++++++++++++++++---------------------- tag_fw/syncedproto.h | 4 +- 10 files changed, 289 insertions(+), 244 deletions(-) diff --git a/tag_fw/drawing.c b/tag_fw/drawing.c index 6ee193b4..4465af71 100644 --- a/tag_fw/drawing.c +++ b/tag_fw/drawing.c @@ -8,10 +8,11 @@ #include "eeprom.h" #include "epd.h" #include "printf.h" +#include "proto.h" #include "screen.h" #include "timer.h" +#include "userinterface.h" // for addIcons -#include "userinterface.h" // for addIcons #define COMPRESSION_BITPACKED_3x5_to_7 0x62700357 // 3 pixels of 5 possible colors in 7 bits #define COMPRESSION_BITPACKED_5x3_to_8 0x62700538 // 5 pixels of 3 possible colors in 8 bits #define COMPRESSION_BITPACKED_3x6_to_8 0x62700368 // 3 pixels of 6 possible colors in 8 bits @@ -335,31 +336,88 @@ void ByteDecode(uint8_t byte) { } void drawImageAtAddress(uint32_t addr, uint8_t lut) { - uint32_t __xdata clutAddr; - pr("sending to EPD - "); - clutAddr = drawPrvParseHeader(addr); - if (!clutAddr) - return; - drawPrvLoadAndMapClut(clutAddr); + struct EepromImageHeader* __xdata eih = (struct EepromImageHeader*)mClutMap; + eepromRead(addr, mClutMap, sizeof(struct EepromImageHeader)); - epdSetup(); - if(lut)selectLUT(lut); - mPassNo = 0; - beginFullscreenImage(); - beginWriteFramebuffer(EPD_COLOR_BLACK); - prev = 0; - step = 0; - drawPrvDecodeImageOnce(); - endWriteFramebuffer(); - mPassNo++; - beginFullscreenImage(); - beginWriteFramebuffer(EPD_COLOR_RED); - prev = 0; - step = 0; - drawPrvDecodeImageOnce(); - endWriteFramebuffer(); + switch (eih->dataType) { + case DATATYPE_IMG_RAW_1BPP: + pr("Doing raw 1bpp\n"); + epdSetup(); + if (lut) selectLUT(lut); + beginFullscreenImage(); + clearScreen(); + beginWriteFramebuffer(EPD_COLOR_BLACK); + epdSelect(); + for (uint16_t c = 0; c < (SCREEN_HEIGHT * SCREEN_WIDTH / 8); c++) { + if (c % 256 == 0) { + epdDeselect(); + eepromRead(addr + sizeof(struct EepromImageHeader) + c, mClutMap, 256); + epdSelect(); + } + epdSend(mClutMap[c % 256]); + } + epdDeselect(); + endWriteFramebuffer(); + break; + case DATATYPE_IMG_RAW_2BPP: + pr("Doing raw 2bpp\n"); + epdSetup(); + if (lut) selectLUT(lut); + beginFullscreenImage(); + beginWriteFramebuffer(EPD_COLOR_BLACK); + epdSelect(); + for (uint16_t c = 0; c < (SCREEN_HEIGHT * SCREEN_WIDTH / 8); c++) { + if (c % 256 == 0) { + epdDeselect(); + eepromRead(addr + sizeof(struct EepromImageHeader) + c, mClutMap, 256); + epdSelect(); + } + epdSend(mClutMap[c % 256]); + } + epdDeselect(); + endWriteFramebuffer(); - pr(" complete.\n"); + beginWriteFramebuffer(EPD_COLOR_RED); + epdSelect(); + for (uint16_t c = 0; c < (SCREEN_HEIGHT * SCREEN_WIDTH / 8); c++) { + if (c % 256 == 0) { + epdDeselect(); + eepromRead(addr + sizeof(struct EepromImageHeader) + (SCREEN_HEIGHT * SCREEN_WIDTH / 8) + c, mClutMap, 256); + epdSelect(); + } + epdSend(mClutMap[c % 256]); + } + epdDeselect(); + endWriteFramebuffer(); + break; + case DATATYPE_IMG_BMP:; + uint32_t __xdata clutAddr; + pr("sending to EPD - "); + clutAddr = drawPrvParseHeader(addr); + if (!clutAddr) + return; + drawPrvLoadAndMapClut(clutAddr); + + epdSetup(); + if (lut) selectLUT(lut); + mPassNo = 0; + beginFullscreenImage(); + beginWriteFramebuffer(EPD_COLOR_BLACK); + prev = 0; + step = 0; + drawPrvDecodeImageOnce(); + endWriteFramebuffer(); + mPassNo++; + beginFullscreenImage(); + beginWriteFramebuffer(EPD_COLOR_RED); + prev = 0; + step = 0; + drawPrvDecodeImageOnce(); + endWriteFramebuffer(); + + pr(" complete.\n"); + break; + } addOverlay(); drawWithSleep(); -} +} \ No newline at end of file diff --git a/tag_fw/eeprom.h b/tag_fw/eeprom.h index 9d750274..59f36984 100644 --- a/tag_fw/eeprom.h +++ b/tag_fw/eeprom.h @@ -32,17 +32,14 @@ void eepromReadStart(uint32_t addr) __reentrant; //structures #define EEPROM_IMG_INPROGRESS (0x7fffffffUL) -#define EEPROM_IMG_VALID (0x494d4722UL) - +#define EEPROM_IMG_VALID (0x494d4721UL) #include "board.h" -#define EEPROM_PIECE_SZ (88) struct EepromImageHeader { //each image space is 0x17000 bytes, we have space for ten of them uint64_t version; uint32_t validMarker; uint32_t size; - uint32_t rfu[8]; //zero-filled for now - uint8_t piecesMissing[EEPROM_PROGRESS_BYTES]; //each bit represents a EEPROM_PIECE_SZ-byte piece + uint8_t dataType; uint32_t id; //image data here diff --git a/tag_fw/fw154.bin b/tag_fw/fw154.bin index 9d6c580efadb91c3a9642b5e6d9defcd1496f7d0..3e4a009e25cdf301e20ea53c24c30a7a99a72699 100644 GIT binary patch literal 54068 zcmdqK31Adewl`i~-AOkgq?-mbAd)5oMb^lo>}d#_iW(u#=q%4hh>9X)pn62M6dgfC zNb0FPaZqrK^PW5Ny%|48L1>AnqoZc|NFoH zQk_)Q-OoMu+;h%7cPXB`bt(XXl;zvK9{r$77q=U@4sPJ}imE_~X( znQL6c`7-Y3{7=iFuLpb@-~3wRBD*j1eupG;A*Jfm_-8SxZcs>(>ay^k4KD@R`vX_H zSA8wy2W4SzPf?~_hF=U1Mg9Lul-#k8Vt`wR!QF%BJ zvrw(tU>&~Auhbb}txt)jRrDtn z-x_~&fAMd->|5jS?l=B7-x~j^{^I)z{&VqHamo1noqMH*r_sy}zZ6_bs7gWe`xVap z;4$})eg1$K4a+d^wer@$j)5mG;fl6YFigA0dcy(2v#+Egtt~GSpLRg*YR%&!ftKlV zq+E_mjoorrb?c#`p$P3pXuOR=TPd_fks5ns=E z@63xvc4qPXX*A$9;~27NPk&JGG!0K04q5xRRL5>7+d!x;* zq78ZTT+s>@Rm*y#YPuO!?th3XgleeD5`W_qpO@rZf__XAdc;uc4d`=|(2r4}&t=e4 zhzj%=0$T0A;mUmZVkx#(=uw1s4K!0%7SqW)u1I@x{K^Hr8%UkA+z-4U$$23v+`$!% z?8uu%g?FNzdrl;H5nLlruqdL{DW1ctTslGcBqd|5>#XAZfr&t;lt>7Ph~i#-s~ZG( z;?B^ci5;BO@UKD!(O_kuqMSOjd(Wts0xy?SOH$Yxa~RPI!e0oySS~gEMoqUj@Nl{N zp~K`?V^f&`g(cHz^o2OD1df*1@HJM7C)@>4PvBn+${@fr5TF&D#4fZLRR9S_B0Htd z*)qY|IZN)|#;NQkXcH3VXfcX5SB*9&C0Zt;JMY*tso`ZuwJ?O z1G|X{7kuIm*nnVzC#x?~3R`pYPlN+f=R(CF7>7i?8+)Pb8{r0%;}G~3ML~NF*%M;T zB@TCko$7X;>&;Ya^RKnqv%Fs+m!YyrK3t|yTNxkK%_zem?Dnw2Noa` z_qb2`MAbOK>aUSp?yh36x7|>R3f;+IzC&arU5L=Ev{Wg= zpx)uWss2E|Cbw37t&;41P=BT3o_97JD79;O`vV>Tkz#kt3E5}s$d^%XyytyUF@JaQ=-56w2z)Q}FA z$H_5^zh6_1(xP+Tf$rPBQ5zNQd)sB|D`813$~PS`2?1*bFl$@UsLtEnV8qw4LA;Uq_$cIlTTGNBw|r{&7yo^|_tdyVD)J?MU{w z=x&>1ciKLFzjfsCgyqua>wLrf0S=K~3{(UvA%m-kg2cZf(=!Af34j`|#-j5@;=8$M zM0uj3my35ffzGvdiJmA|5Ap}n;H?%A4tV5<9s^j-J&JDkvJ#i%D?13GKx-?h8j~1# z`U7CL;Px4>QHja?c;tr^a;!@3sv;ckvphsaKde6X(z_&2Vc0j<(oMBP5~>|TwRm2K zh0plZA9$V5c+DSp5qBN$N6V?2GpS!Bi~o^P9Rv}etlkw=s#;4)o}qRx`D(d)zwOdi z9ltLz{I+WN4eNy)WZ@oIfwaPGMUV*#R|^i%DCZvdm?T5MoLo6ZlIP&LJc=5_bR4|OaJK^W&aFC)x! zzlp+C2Sn(b1Gpm9F<<3~!0;Q2(4b;CPtkK|cth^)T4}XzTL>miLU1rB_+dfJL5E+B&gAvr|({F8;WkIXt;@mqzn&cfua<@C$dfA0GQ|puw z4MD7e(9+wg4|TU6>0uuKn&$Y|bl$aJZJ&5Q?c)#pFD7)}G6@|W*Sc&xf2&zGp1(Dz zRV1YIw+h21Dj}$Mq51eP08>keAY2ucL+CI+#sB%Btg0a$?u?Ou5AaCme+pK;khtZr z{nGh=g5!GKaUYXmCoE|v!3!x|7{~IG&fnvHU??%fM=W5hl`=r@r1Q7P#m+>fl7@sL zKUO}gbZLRo`AsYZIx;{)uBe`LenToqH1taK)=E={9Mbv4OxI<3T~~Cq9vwMfky5cu ztYX!n!#$xRK=x8C6@UYjll5dtd}yVp$;|N=xzI3MO)b}Y{S7xlV30iAXBf;FLW-fD zp1;|K8{r_Yr^q3l|AD|`=tEBn1wvq+U(7}tTa3ebLpE2%c!88MhWinL!{#j zL;L5R0;Jb-!8m|g&=62Me~pIOJ54Ae zN>0k9)^YK+S>5fkdphPIevw%PKW|ReIxgBatFwJ}tYc0WsEITQ=Sj|z)iEW}KCMT+ z!{*c-Z>&BNZ93f9{8X&v$*w(thsyUV;xOTdDGdVc3xk~R84 zC7pjAtD4jt)1t_kGY9ZVM%13&1zm8971982A?pV3EeE>0Qehb{)W zF@hR(B4NpqYNs=*676_n&CH;Xw!@Vovkx6;%zeq0&*CJo>beGsA-?lX0$EnTPx!# z1`(0Q&9YQGAHC-Xa*tFyQ-+PvdnsPpst;p0R69%F2i_<0)kDDfq}q9kxTGWRNm8fI zN6MXYyuJD4C6<$n)q;L4QU7 z{NYm|=PlN)kTLRd@w_;f{Nb7_FXZ=XR{5lA;U4j;-W@ITIAS@yw~H0Z zKpDtqSD_Ud7ud>CB}jd3sz!f4ga}tPkqTh+g`Pka7IKeus!dto{s5>MEi}t+1r+HN9X@OFflto>-D97WaW#edN%}( z_G=fQ)?Qe+#>z0#$7H{f{%qca9%0`M*hFd<$lY%jJ13*f3nJyAN5{(Xm1)kcTpN5^ zn9o8RrCyGtT~wpQN!t*-hLlr}lRvW^Y&r9IAB9zCt+j2Zonsze9B^#3l^^*wpYvN`7g8oAaG&;D_-t=nNVN+|g&nKU zE14*G>AK#L`{cKLm;2h0G`?Q`UhlYsi9(aa6NZh8xI(icgF~|;?$DgbkWeHuGH6$3 z)~-R$>TuR$%fimb1{VD!oK-sO%;V2xK0hcF>uMb90#_Q`**wD?Ynd^m3wVLp(NUvH zxfX*joqGI*%&lBAbyan4ri)A&ThcN^uVy};Hb{K*%;SA4aK1O(gvA5@(^&leC>#nD z4g(4=0tznUunF@VB6l z42s`_0Dd|yk}V9J6&VijM*#dwLXn}7VY`O9b`2X`9d>~N1~Uq9F$x&^{4fT7HozYa z@J9grOTHWYq5XkBH1z7w$J2&=3;6v}z^_s$K<|X^0ouTc^j)azIiKqx!+z6;wEFLB z82F8??8~zI_BAl2kkTj9<-1f;0hfXBZ|qXs7te4nKTjMCY{*T))E2#hd)H8SEv0&W zO1WjL``TA}C+h9ar72CCA;c6X9?ZB{`wkfwrP_B?Q4o&7E-f^|Cmg3)IC`snkBW1z zFL;?vtG4Ag*!+P+F8rBxiQ&05Xk#kAt}bD+d;MEAY5VmuK2Xc}Kod9b%iVcm5i)_T zPM_l~BTJD~yA-TatsG{0)oBOh57kDhU1n%wgCLWa!gN);lwY?(t;L6G2_Lc&2o?%a zULo^o?Z>*Qy!K-`G6&|;x%i*=!kic9zBF$y_poK3o%j-FHuk!T?a|*^ZWAoyyF+t& z_OY=H^S4@yt=(_(i~EL*8ABn~347BXPB$g+)DM4o&MR||&JzYtB86I;JK5_3-g`wY zw!>byx^K>EnbvFihG=C@F=lh%VTrwA8HKtgg;Jk#3Ew(S&KNj3qo>%py$zl)fQa_QMQRQmuhH!MlcLQuHMd8f znv23*&B0XN+AH#a*EvfD%kc5<3#agvkq1F;wEh=H>;IJoBwr*e^SK<~YN>8{vM6Ui zS7E8-TgF90vpQ9|js6jpYX2&aQwEA(no=1J(oLZWsD#!}L`(G}*3dNKGFmT`jWX+~ zOgUNRx$i8qPA}7xs!mqRMWOYV_6uVz!%Qf(L*$aUh`q3~nxVqD&6iMsF65&~-m;Xl&`1_iJQ2eb_mJ~5!?{isjGdpu zrya?wD39%b+R=%DdhI!302U8bkbug&O(i*lvg+Bwmn;s{G435u&Sh_>5Y_+?)`;&W ztZ{GtcM(?oFQnSfg~34it*DBLR>!pTBCpFE|EuIxFH5mIv=WHS>Op3gzXd-53j#5h zt#G*pej1YaxuTx%v--b+pDX_IKaZa)9RF4PH1xtx1MoBMdh z9G4oNWz3RWtv9Iq!Jd@0Otme-YKk)GO&B^&;-E8=i346_8o=K4hwatvk6Ak&b9tFZ zYu;H^3lvt5?+MMpN*vo^!F8kv>RpRqtNw)|xDJ8K)*8SunS^ot=fWL|YU9!%!rDAH zBQaVz#THqDgH5gb*MPYXaomRPg}uk&Je% z@%hx=?Y`n`^lg1vTkYQze!>@;G=vb8YX3&!KU@zsJfx z2biSLKr;_`LTmUIA^u17dG~`$DR@dh^6K|$@btZt{NxV^4LnPyk<$7a`}Aam&&1`;r#(RsBd2i}EGQVx91z=)Y1=<4o>?jfy6HCAfC*E&ng_V{qjNsWaN3yEx1P0~dp~KGy!sSs+ zTEuAakzl_<3C+|9k|z8ZL1L|zrnKla3tX-bxvlHg(JuZ`7*qD@cI6j#S#D6@~vZ+a}J`7sW&>^1fx=rZ3+ zn|(!ZSeOCWN`T(lYztYS^KYanBVoTWmznG2^RE)JQvIabuV^A>2M6}vm|!;C>h>o) zo+_Hwo@edqnBElM&Z!e)=)qmvp?!Tti&Ek(<6~`eF)i{{GtG)+o#5VbiYKHdi`vzD zNCAco`YV=U`>Qs4$E#`T7|6!PKr}@7yOIcXfB5#8Vi~s&@BI+Zd*dB&=Um@S54op| z6TFjq1Pf;1=F&>z{YtKTK#e9B_Hk`_!Or&SJuz6UMgM22{?|QR)OM_phwBWHVJN26|UMg3?h z`9&qJDmOaKzR}*QUrHj_f!n$inn^F355r-T%QOiNK$7Z}d3;?o1VQFG@6L%G zij$vSE_GsMDc05_p|Rexn@LAnjgM9N!aYW#qM@-NL^aE`srJ>nfy^>lmxXC^scs+> z@F%#uldjR&#Uwz_X?Pm81={73t_qwi;wcXvJ z4X>DjvFG5ca9~$C*7#yIbvng>^+LC!uVJ1yi-QU1;T_P+M>n(X% zU9HnQF{75M?RFEX$UO_w=-GxnDbGP`gPK;CB`1a|9Z_tF{RTQ@pfQq=YRh3@w032>ZknhM*B zrSbm2&#7uv}Tf*4XGow0^gTxnw&LA_1CS{?$XsFbAscEK~O@gfeWl$&8Gf8Ns zb`r!=r_Eh&+gsOz=rh8R;h?ishDU4E=@qRE8hb59$tZlYmS?!=v}wC4Pg5#!f1 z!Gl@J*6M@twkNvVf6>!%2wme+)AB8Tb|GPznq9Mt)D1H*Jxo_|z5~^cqRUdt*Vfn7 zr?e(NcR7g@T7F=NJnV>>h~^+EgAGDxmtlH?30V_6L-S%4R#nu2r9h%$51Oh68=^6x zj=ePy*}|f}IDinCH{|;h!iXdxjL-;SL@z@4C!G*bHEMpSPe6)$+SY$S3nRWS zEzDg`w4iqw&&8k8h5~QYq3}M=a zlg`o5b)CwNL|LP{ON@#8D_4`1?Iop~O!B(wgSk*m!GLb5vU5#DPG7H+_!(nk7J2c_HnC~FIaor#fyWEW1))U_-Gnk6?{xBtF6$-c&O>x>z0=; zGv?^bEQo+hvY-J)xk9c%c*I!x0aj~J02djDso5*=KVGnm#njV`D>`2quUh)tQ!jc6 zdjl_TRgPnyNx{rs`4HM5>1nn@C^QOG@$Jsk_0|wqZN?EVp#xwUD1^N>5@9K8Sr=au7#?Vm0I6@<&*B|YjlfZ=QtA)8Vj8Cg-vxQ%{Ixp>M(X8 z*1a7*hWqL83EbZa|4LbTw7c*aUwDEq{1w0QrS8J#=`Ph_vxl(?N*z3@6{J=GPr-&U z_nn7(uR_4CdL&-?JknRok)tR~jvPZ_a^wUGlOw<4w3YI@P0;{Z&(r|@T@&ag6KdVN za%2LCXd?b6;eWDWk?3lyelpthRA=+ySj!O@MGs79Ixw;Mz@(M~lZ(8bAK!#yoW5~S$UG6dlXG}1FV7sZYTv8Q+aXsue^2Uu5j>KQyqSglciQO{qT-au0lt>c^tq1+N<+{=g8!$+I+E2C1ocmm&=}RejYW-GKE)irY)j!s6!-xZDdq zmSWe1lw9}1eDW-Yr$C-~pM&=u?7c>?flU91!H_>N!Mypc|38?8K}=`l z^}B!65_SJU;;SMMDMy_?5|$arsbOQ=Khj`-1n^IR{bGyvKI0Ee1@56<$F7x)d8G_M z{a_CP283b%TXoA*t!qTxJUp}`uYi{F)?sT`52I(N7zCmF1Ji(PGUc(2AFYpxZ5U;Z zXwNH%cTBJAMk~A+Ag0tp_PQ^f;%EEmVF_=V z(A7LQ-a_TJvU20Ert?_FUH2z!yGS1-p2-o9!yzY}XkY4Ze+B_ui_I(ctEAYChKL=* zj5!FE{Yu)iszV=6Y9MY<~Z?F2lGX7S$jL3@VW9i+)FxRyxDIsP$+-HQg9TQ?TPB z5Zn%V5+q?ogKk4uk;;!U+0NLklhF0noP@5oOyZaQf%xBIFY(32Ua9VL>d3r%$sHgh z?E9h3;fvqU-)-#uOXhELFZo>ePc!+a!5@3~keRsNoHgZ21tfE&z1dVSa>bpcnA=~9 z&%t5|j#QZRbZQ=yTJ41y*=kjmr1t5&)5#L?a!^AVZh*MC%; z^U?Z`q`Gs|6=9<%PuP5OVEDaMs;g-yAwzSzi}(eKnoF2+@dp-zrAc*Rb)14#kB}vm z>9ikvi&R&q`CiJr+46QR3@l8|rAdXQsXtggYDfMzFtKwZE2W{IQZ%XGs=&Alx@wU@ zPB$XmXnw)RL~(734`b|)s9Bf5OM6|ag|;icOrpO#lELhq!hsCoAhSzi8~CygR43`Y zW`U>)!ZNS|E!3^_T z8|W8Qi^Uey^{+YoT|}3JK1qQ5HCqW+7R84{KQ2R0p+i6N@I>C!(bPqVA-ita3E6dd zYcTxpSn?r-GFmBhTd^IzDU`u>=U~sPl*}sC2pmTw)*jGvTB#42@JbEwV2^6A$C4E( zl&OTNCxv(#WXJbj+48ovIC}cZx2>nIEV=UZmGoY6Wn}6@+&*jg%5l-~RBSG!mc_RC zhhTii@Wg_a#St0$I*gEwm7P+%y1M2`N(-j!86?^m4TOVav~I=*bh6`MD97GCI+Tv( z7^$c=)f}%_L8H(fU|LO{LjM^xpg{`Lc??@r4T!IP6~}cRWHFm&LRk1ivMBmHP3sq+4D0xeFh6~wup^H)p*LN z3eji|{4hHQ{ix=)s66eDo(rcwpq4fVgs9E zaWVoXHY!L_U14ipVQsz6cUfCrP8W3KIGd7*RazdRPG`}!E_W{E$-h|{B))_KpiYEx z^!#uAUis(aSUVhmp&q4{6K|Pb*R>BEMee60@~4t8GFog{$oQLHGF3F4RdjSpMKKR_ z6QSU{>w43EsOc>ex>~0}MbE*^RIgfFd)Iou4M@vu?F;-u3jy1t4C0F(kV2!)cp-2O zd@pc{SoV3YE?OW%05wmqi#?3lNx8F<+e6Ku0~B3oA^#?r(fdQ?LXMzm1T;4d(U6r8 z_{p?K8cx-|suD{(co3VU03r2+AoV|b8=4Cq>$}zQ(_xIC_G`;)Fn-GEJ$`z}m>EVD;Ofu%Qqw|5dvB~oY+nbF* zwiy&b$Oag7;ttzv?X|-j%|eV;Sf|L-ItA2HE58yfA&(kk3?ovWjblQX zS=?qnj@`$rsWWV0ouPR=9TS4iP>ECe8dva5E37z8XoO(>$yn0eO}OupLSyCYl-6Ra zj~7RggXYgQA-5v4M&}4r%t-Ozx0gic0seQEG>BjEG*uTP+ZCBqWuSaTCN;!m;3$`q zZ6S0ShABgz&3mFpsK91N4DE(;MHjVA?g|yK{vLYNmxibzbh)C^XipLaJlQ45ffwe+6YvM^%v+7Ccu(reQ6;3OKHi5;iWWptlLaj3ChHX?03WlTC{l(D=M6MGwHM_yk z+KG5b7bZ1X=f(Qi$k6&f66~7x&>wrnq7ErEMW&N(F5}5QnTI=3Pw6!}w7tF_8psrBF^}1Fq@w|dDJ)>R&*iEa(_~y5+xD2H=#uul z1o%QD8P~#rMK02t$h!80Q~VU>PE}_zB^pPGE=HnA0I6WVW9B;~IOi0;L1)luxg2 z`z?qWLBQwq&gWYZ!|Hl@-{`!~fo+(CG*p7;tp@MxuMUiNUfDY{qh-He1%^@umh{f# zTPrY%qF>)P`hRZ))KSI^b(Eo={E8tWOh*^DVSf18yqhBdAvQyalruIxNDMI%akY{! zJKT44y6^tMnWIwZYB@ig?tb9su!=KBoz=bYS$a$4%fmW64TC#8b%Q!QdK~w{d)2^( zDJIWCA07J!HH?*ny?*059?QV_ak2H9lD3{C1d0mbyy3&_t@d(v=0GphFIuxorzPWv zYhOWshp|(-^8?(QDlj&V-J|AH?{%-Qlfnu~2OG8|L5_w0ZtTvURXm_|@itb|E!DO5nspqU;zQb~_lQ4xcULh)>y zptR4eg7F`=-U6z4>LeUcT%aixER-!eAc3UP`T~{K7qCH}kgko{fd`wFojj01%khJATUF zu@Am_e9ED!s!F&{M;{z;4pa=-K>vbWgHyOmF_p!zUH+@1F!(I)P&$0~;3?0pupZgH|`D=V6cVJ*7`OywjomC&QHs?ejb2JeT}7t;|M zE?D)&C4Eb<>M?{mMHpd|f@j;&-hX=xZ5@)|zq_lAX2P$HVGA1VQ+x02G4I{=9-en~qBPU_ z%u;BD@B>9$b38Hd&4lAbB8|R%Fq9zr`$QNW%xA;`^5n`vso`Ov5ms`>zpIQ5M7vk& z3m8K;upx^2T?8uSB9NsyhiW15q>y+@aME&ew{-3c+ER1wbNqiMI2CaSe6U~U+~;jd z1$a69exh*5N0!cgt$>Adc;d8Y5%1EuzYB}#8Cr>!@$cpQ`|v@KSNHK^XW?5r3-@@Q z8TiQ2+``u!Qm9yK*|wc38IZ~LW&rjB4b!2U_a%fG<1ue;)f|IZlQb&U-S46asFTI^&fOIrhlsvKA3;LYvn;0XK$4wPvl}nJ{_t| z+Io$@hGTN;M~uHop&tnr7#c9+SHnI#Q&V0OsFA1YB#Uq@-al!~_NU=}fafRSy}19A zo(F3x>}ssRu145oaboYQ``$*ZWD}}V%b??3djo*mvT~0TC6G*r?2YX6KXhf`9@m-Y zlVZ_lqG;3V&5%!yjKr$VOYuJn|2Zj3GEJ*D!y^xdFMT3B>KEahLq(qx9uxx;`jOFu z5$W8^aw4R3-cfL*Xt)s^QG7OUO5r3bM+D+th->ALrNpC<#mt0h6H87@Widt5+ zg+p@Qd)*WZpf^IECzO-cG`vD#Lv@EL$o{-_<;UH4)}^of__dYqc1Yni)C0h3b0-F% zOw@)|k_xvoGCGxcYLF%wP|>jRastc_Y|MG;C<868C-Nb_Kk@s@_X*w)l)^vr&p01B zx<7#>@d<{eh5>BxO#6+c3ihtr^E10KB!k|_<(?YEm~cLh1q+91Bugd^(TY#`Ff~Ah z<^mJ^VI@hliR0XmH#ye{ZqP|r#^%KRi7nh#oC&-SD*!9_N-Gpef?PT$fph#bTJ+o_ zO}IVU2!vcP=+_(0LbC+GqTe$+Kg;T{#e4O&-FsZS+3qM!J2s}0lPxpW*S z9ngu>Ic;T9SX-}xSx>O%aGWWJwElAV>j}$Yzt-rufoK^p8;g^ra|+}8hKE1Ft*q=SthC`Sal1ln zp)zCwVnMa8=hUuN_%84Ni1&XG^Z(&5h40$@f3o=h81tX`%bAxEg%~^#`WDdo7St)} z+$rH3+^cDg?76pv8MvPo@^F7gn1=hiLMiU=3%B6@0gL}3okN6KzjMDw-#hoQkdJ!} zz5Y?S2KO`AC@P)%vrve8Es@5#ays4U+m~W0{8HC!ISA z`(>f*QqH`jmzO(Oy>f9)qsyjVR(A0`uge{M9Y5pNN>GLoP(AcN4KyO&2PYk<@2Kzc zF^@Ym4}6^97-zA?%DB?BW8z4WzKMW{^*E8Pphq0sp~jxMLljxEDJ+CRx%-%U4o!yzd0iQ+Pcw-wsotte%K9{YZ7eoLKpGqS zbV~1j8A|uCoo^|2gaaPbG7H zd%t*?7py;ud|8op>Hfc{%LxA})mvD}6`xgpUifDRvF0v~HP;UyI;_u-BNfjKedOpT zW`Sa;ta>{b)pDj(3tNO~YO&t=t<`#-RqJ)CmJih$M%5asS8Iq`E&sa?ROca7XCT{o zz2}REzTEqnTARNsRqNS2E9K3q*Idt{je11hm#IiZ)~Qc;huU}zpAWs zxJ&P*q0q3M_-swJSPbwlBJeNK!5^Xb^_c*_@>Bm8oc~MC{};~xSI+<0@Eya;>iZ&n z1OxdJ0{J2WSrd$!iYC>2)I6p7k>L7L{iR^W@I<1OzwBVrQ=Tf-W1_c8DSSc?mp z{AQ=WA=h7jvp>%HyEuQ3)!&_1`OPhRrx%xRi!$8TN01f>n5Z$Kc^2lo)rjZukq1`?cXp%aDnA5K10CwNTm8f;5lTH;RZrM3b}vwRZ%WM2XjRRWzN2h=9211 z(OafekCh=OF#-w(BV{?JXzK`4&1*RRGIw=;3}`YfEiKD#?OBY2g%ORdcvxS7tm zpkzWCJ3LXyP!H- z;=s)+5~w&fsZGUEAo~Ub6$k7D`gD0{0`+5+D4kll726TFbL>cz*e26(4hNlJUPv2s z)#u55B5(bc$bEY%C#1RW+bQpo&tfA4KHhlW&*f*%4teA(j3g0GzDp6}XO(6a=M-Y3 zn_>jzv-oyL4^qHiuHo)ds<7Ips>-i8@F6cDN?F|%lrel9fD$N|E*3Y9Lc8&b5E~0= z7ve00_j75d&Z^}rtfaHt-&omam5^XXT)$$ik+mQt0*G0;YE*mF8=8{d z9lsrWk$X#x*kEdg01CC|{&sa*c73*3+qKB^+j|RJiapj&j2i>)Ewi^d=%sZi0TnKv z&Ozyly}gw$c3vTENj!?&n!orOBggVD)9Ehm6J}EhAGG{-{D3#OM+D3AxcIjt$JJA5|5C4MY8#1D>bDukN~E=_Z9 zxka>}I(zDm0H(FrR+{17vcN|Lix=MDc<~`}4utdb3;gCu{QY|c4>>yFXhCH*x2g4@ zVQ?UH5FTYb`*HOMPv`Y z3#YG)C-4ZNlmhv+eAZ$>^W|r#%ds`-f(N*C9P`sMxcg4()uN9m98mHu!-p^GyO3>_ zd&_BsZfBLh;U2-VHji&ySSc1u(_4$r#l?{|N>EQkYyava<<)X$=n2+){7MEy48H47 zBfo70Uz`jNxf7py>1rzC^Q@i4O5U&OEuSLQOZAuGG)=cWja;2y)Tr@Ko#i)wpweKj z=WM#?k9N5#7vz__r~J7<{d47Mfm~|N`fT6lYee6mH9=q6uBXezkI(#3{NT)4@pS%K zN039z8ZKAPZ7sHxjy{8)&$Sk3`?88%zVtI+W#c;YH~cHvdji>M3i6{+7loqt^IK-4 z6S6yx`|0uzPM4n!{Qfk046sbyq>`f!Qcn5owxFlDxBQ)T2_Qe0G|ydJV3(ylH~-41 z)27e3>gt)Z7A!1Ww0KFbiPqM z642A=3RZB8d*y+eF{U2LERf7?=m>TK8ft0`Uq->BGg=>%@fj}?OF>!Mn&ZCjFuc38 zk2o>&_CHKe&`$z=Lf7(AAhFLN zVHfE0U{P!@V?ai9AffK2Nn4wYBJ-l^r^rI;$7@uBYvF5<_H&t11C7O2_>9eepwRy> zBMJ{d*_jJn#%#;d$F(bAgqHHjNC2 zFRr-wn~_~de*Nnm+qP}rzJ1#c+_p>g>`RFWHYANa#_t%f`>+8e^Y&#H9sq!I1gp|- zc(-qkW=q!7YO8ZuYO-h2s&i)SAs=S5q?PuvR^DuRXaZ~g2BL_Nf}*rS@@%l(LY5RB z@Gze_7;`Z|W`|Tb=3rQu;-OaM`xPF3OwplD)>OBN>mdX#6l5$%+>uwgR_UwHsJ=RCAiKL#q8r}XKWdM`5u)O)q@!%Wo@RF4%*QvGazgX(wqGFKkx zK$YPmm&V`+rIn4hb_L2IB;}d_`X~%uxsZ2VkayvL{%Jd~4D|ogfgz^@)1V8W$A``MeS?$IBIJ%+4B_9H)^8uR(=c$86>pQd6f`al3YVz?> zDks)NrH{jSSD76XxanN9iJ%xC3oA4Cs(Jy>@?sSraCoYQ5FNX-vmrX5p)(hwI4bM+ zr^|o;-s!-5x$d$@fC_inzsps)5rh7kFMHAO1wYojzf!%y$ko^po)Y0BL}!%_a|*di z4f&BNq*tO}e0xyUFQBaTmtED}rS`K*`zHvi#{YXkn28+ttSLzp)aR2BFK&blA9rd6 z)&lhr#j)FRjc=G^H`l0C35l^v1UlKQhy~Le?Ix59orIoGd?O>ufCsq&4_d0_2v7B9 zIJvvjMg?n#V{Oc<2&L%!wZ0rRksd!;((DM2k{VJ|va)=`^rDiffO$P8#1Cc@tHfA! zI8dV;z#(a2P&A$(L)Z||tQ^r9iK*vz3Kxjl6o@B3Z}D3>Y(9DB8}HES#%Um#X%VGb z{SanaKx_=L)Q|-)>_lqHLw;^2-Rbw@PO4kAzubn*8ipTG&X!*wBzY&8{SPSL3_n{Q z*~N3atQIZqV%3i#3-NJL%ED1UHwgITc0JRpG;@4fF*z*c8n(iJ@z`=0&6JC5QC2)}F;E70i^Yz^=H}q6D4e4wg z60L3-($zd9_T`^EXKl1AO2?n7T@V(_#{-MyVU#pMRF)bqd#|Od-HZg|JQNu%<~O4L7@0-0UF}5{?gKDBA9l z8g{FepN75oWQL+{oq{JjjZSLV!vb~RJ(}-cI(`{pg)&UQTAb>Z!>vcWL*Q(|cgR|g zP$9cnjK3VBH`oi=N)6p4*HCFT$u&GmV6mC$hKEh_Fk3x1c&wo^c`jp@)bKa~n(`^& zhDwvUL27u^6g@TGqo#N@$oO$qkw>+PJZky`OqCp&Umc$FWO(jV;dzI{^N)CQka2iU z^^*#`suXzQHlJ0qlBK_-1?xn1W6^A75`NVZqi->7cuF^!G(2T0O8wdlPN>$v#zD%5 zP&yzeczOOS1;gfJl6gKqtN@1;ddQN*j@|01B2yC4%|3jn5uXJh(h)!2H7BrZZuzcx z3j2(^)bLBz%qKXj&z{CUivHN0YMyu|60>KdcxR)7C_Q@!oJrkb1)mF@mLUJhJz=FF!Ti-%%vVz~)$uT5OiApeR8tV0Jy_f+70Ui{ zoDR!o1RH*>*6H6dtyn(yR0?@ru?Z)UfLILmf{R4aV1~KN#`> z4#!tRMaLki;osX791PO%?@)A+CD~N<46EA?wLj?{2yc9!S80Eedd@2pqk71PLq4Qv z%;s8|p3`1ht-+&qB`C2{!>cN+ubS{|#{X}a|FqDwE*~{bXXr=_O@Pn0fCsQI5fYxU zpGRHPMV;bRGy~$_b5o6w^esnc}p%F=bKHr?gfw0dJn z$@&cL=F&B*gc8HKa`me9>({QoQ}ggl@^BkV)@)pL-{i@YJzNI2pvbdigMa-R_IAUK z#ky~&E zw-N9IAV2ce)2!d%nSPyT@roarJl3t+cxMS>uLa6(_urw1tXi{Xpi3Ad8X-} zYGTiZ($yQ*lz7&z|M{wQYmLm;l>B_{>JpEzVT0%PwRh@CG~Z1dJe%%Cy$gVg)LhoA z-L&dXG~B%<>jga#;JkM6qQ!+CVb$&HN<16x@RV#WEmHN&G_oQE}I#w6|H z@Z>V`H;>Jqev4 zyulZ->_KNRCt3i%9K2D?|K>}!xOj(+{qkIs<)3k-TsDdr3*cH2Mr5{F}7Likb^sf3+ zc+^RyI9xVQPnpf*a3#z9l=9`&yXHF+b45FF2(g#*;;vo0=bT!;aMA5crY`()f#zlB zQh&^Quxo&)yKI1Gu&E5r#i3lzgQsyhI2#98IEUe*LoRYpWBe>Ke-Y!|r}<j0`Zb5Tpw8g=5In@J@(xJ=F&bjr>s{zWGcoGhNQ>2;-Gg~B##5wxes z9kj`5;;4gb=q|1iZEAS-Ovf6>!gylO0>w){j+w4So<+e$+^kZ5Pv#!i9#5%P=3ExX zY{!y4i{D#5b7nSo7bogmH(8FF9qzI{J3BMq=Hb1(m%~L*ng@ba?aggN)8l zV-NkJWoj!?Eac@I=UwLA<8>4|=Bhq)N4kadQ|76DLC$OS+Pv9bq$a5K%dyR|$g#+^ zP}ZrBlbx=qLA$!5qB| zz?hz$o^+{i!_!Cg@(Th39*YOPoBB7!BA59GFV113aPp=2+Et3v9lhKFZXve@B#8^y z%g*+^w{+aHyNW)&NiOi9n>fHIf);NUDwFB827z%R(`b%ku=?BMF3n_Vt@)WQhr^}) zw5CEl&Bx`?sUw;Ls?&aY?~mq)F8!zX%%G7Y#g4KZ5l`bOB4D6$Q8!kCUXtnuU(H`J zFpBsV(c;fM9kr~FsPTd>u%;}%+h=Dv+=SCTF3DA@;?ITR@I#5(8)YcxWNYxc@Xm^G zahamk$9jmY_6PL8pnWE%a2#YwDVjHE=d!8V9-EgJH9Qdf$Qd;Q@8&oQ$8*F4!5On% z<6O&tb-?3x40UL&$$?8!Z>JxpUS1GHCdcR^6Uph)V(bU;cz%tt&{3Kh{s^cnJrb{zdx~%m#lZ1nuQ!|n+*_zaI@zFBfPvR**_S5Ao zfQc4xdE6rHhp4h;I6uHfKQ|xOI2-a%u|)ArX}LAgJJsCPy9LX}@LSVk@{N{>YF{;a zDvRqyUA;PNpg%j%sOGLe5e>dp)jwHovc4`}$3ep0A6}9;NNDw7IqEgh{Iactk!ASh zYuH1bbd@R(Jt9&ZqX`QNYwy@=_()cSb_`>D!&4j ztZ#9*gEX?K&k^+^wZoPTeQO!uailrY_0|*-zO5jI{!kE6C3_e*HO96AiceRNXd6Fr z1KIeApqZ$}VMWax__szG4JA3w0M{VbK#l5AUyp;jg~zBbYQtzKZ_gs&OrrzPDY+L( zc}Y5DeyBw+zeRiUQt27-Y)Jd8v?!TYZQlX5LAHS=dX{pj3`(z;%U~h54Za#I%ukJF z#N%wBZyW01A)IIz`7Mer?d4~K-{pD~;-!!QJ2e?l9%M2=lM6R^f9?I9_r@UFSd|Nm zvls1=z&n_RRcd>WAhRjfgX~EV5}n8vPr4^tl?7@{)Hj#O(7Yr)Ge6Q=Q~ee?^56%V z2C8BgYa>W~a~r|W>+qo63_4}B=3%tv@eyq>S_6OHqe&@A=i}h9q62UuwW#q}t`RbJ z9BSi8L%C^cxm1^IzOjJGbg$~yXwP@trSi^;T$%F48Fu-H0Dt4ze{al{SEdMJYHSh&?WEl1}k92J$_RwX#MVkS5Ex-Qrt5uS?Wr88Tju zF(CcsgU{&KT%=WhnwFHs4S`@A&ApXw;q=aruA9sKl)D-Kxp-GE*5A}#$62VAppotH zQol>*9F8kzE*NKd&*bNGJe}`Z5Vd%;Wf4oc_&vQk$R_e>Xk_7ZyXv${h9p?edreNKCiV`UpNTA!W6#>?=4Ba ziL}#$cfPlL8LnIIQZ-bsg??oy)m#d}K<=cU77ut$Xf)3OC+wH-azPW+L8r%+??F!} zbK%Zvz4 z#5?oACks^>&+xp!TLBeyxwl-!sai-7_4OvSx@))qPAp|AHj?+0cuD*vdSC*{yH;bk#gCFYL1+s^9VB(U}o}#1< zOk9)wB$FTcAePQgQHaV9jP6I}s{AW@n*%BJw9Kz4dIWw(8Sq04rYqw~DUG%UGkq?^=>1bua@_nK`WrnNEE3=YbQ*lU6OtQaOQus}XG#)V(96)^j-`8ME(4vY z7mG)+P&XZ`%#YPInO0V1N*?6LLgGSnA>J~is{vLFehKJfGE@`LH^BFF_DQ1vr(A5XT|hnC<-9_jkHm)ptd`nb_Z$>vha zCRIjz(;nuis+Yr}{@$~zPmW9L=jT}HTH*Ooa2;py@lR)Z21iGGyh#5&?JsB`{BB9V zC0%{ffWgCpvNS~Lp6KlO=}k$#q86k-HD{1Cx75pvb;GIGLQQV1GkGuMmT=eNH&yqG z+EahJf9g}6VeklR?=9Kjhlv#CQeo}tdp3DykIUfJ!DrLjEhV0L%yue{zQ>aLUcx{ z|6mv0W_xfx+&NK84+ts|jjHbXa9ewv=i^bQxXs!jZl~}vr)anpBq}(~JS=;^;TQ`Bu1l;I=1%JM0a? z`LK=d>~RLUf&^D^(wUs; zO5&0{QyV7Lm23rynM!V{t^$f+T)kYP5kQDBxpJ&#Iw*KBAtz&&Jy>l5H1S}$23i(p z-Pu(MnqZd`uCFVtXkWUVqJ3vWrTt{m^=_s8i0XoQdFQ(iR#vJmt8BM?Y(JuPN2}tr zbPx?PNpe2wv?P$_Oy-i~PLNAnby?(XqtG@SH`gwrF7kYn%PQxL;tCLkRziaZbB@S4 zco_xFh(o(2SXFbFOSG#lCs~JKm58%2r$q*kdW$%B#?eznPOYeYXWU7yZ5&;8G49-E z4{n~Tx`J`%4t!dXIXG)|JZrx7Yu$A&o>hRZpoJxRvT{Tn%htqUXO37VYGLtF&Ky~N z2lz^k^Q4AjR8(==6NZb6IvIYo=8;-ho1kseOC7=99U` zxJF^nmApnJU-70{HZ?z|XbwybSE(mgj4xqmbb?pI%P#EWET3i3MO1+ z_CPl13t|By01;grM6ErLkqj3Hs-#EM8Mn#>+5?JR4_xL4c$t#ZV+oGJDdQ@wXb(Gq zPko0ypzr3R8qANhPoN=z5cC#QuOLB0SEe|DzXX^ZM|`|Y1YWqDpq(PfPDDn8AaTqb z5!@x3LwP_^0@ma6kyCsds*w}ju?^9c`M8(K^O0);^G?K!P&Dw0I~oah0ExT$SD?_# z|7qV0LZS$xIR4)EJQx^g9!e@45pge~Vj-=#yJ8kWWwe6SZCsaaL0nwd7EN>!I)q4t zhmZ&g4;@81NQmG?!b1n?AR&Sf9XdpGh&*`cz4>N#B|Kzw>&-0t!8dPq_WOS`-+c3a z^Pk?6Z@xfl4`l3$PD(dKCZ$g!Q_`lX2yf?P42Q!(l*1VhaX62|9L{QTIHMj8=N{zn z+I8Cs+akYpwxzb!RssKcM}E4p5@NipbN6tm^iAqLy z(+9CKnSXe5kg{n$=26R@(mYU_Cuc^1sm4oF;L@&Ar!)^ha;Hl3l;*Wml;~E#e*(r< zdcO8E88&MXJlS)0BVc(2;Y;39%B@R=WB-g)a$NEHlUtZ9HbW2`$<}eLU#~Q;KuYr@ zn;sA|pTrc|f_KJ9zFcV@Yoaty#uKG^O7n!}Da})wSMZ-P?aV@HUTFq)nDzwoE=k4w z$$B_WX`ZOZgzt&cJf(Sj(~-C9l;$zZTMvenpp5;7SAg$N_AQiuK=Ue^Zudak_aM}H zP7KehF)=XOdhx>jmbNwqc|})_=PF_oK^+8!B5{c{3^p|kLcg099|OB7vJQKXT-n05 zA~y1b*(4NhV7CO@QluOjkplYMl-+tW<8J8sHlCq{Z0TxTeq z%drb4e~&F2FmX39a=?|YYu9@&Gkb)%IFvktLnfPKhl~?$3;`RJ_zyt5r%yr##&S7! z1$hP;F@8M9H`qp-@Ccvc0@PqD&OYQ8NS9wYR43& z%nqET1Z}_;RM8wPL#vsEMW{DlVUCt*7tYfNu|DGj_lD^j^M1*QWa1IQ~^~$ u6;K6K0aZX1Pz6*0RX`O`1yli5;MfXyZ!sQwum5BRM8BcYPr#qQT7CiRyz<`w literal 52909 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 EZmf=Ee*gdg diff --git a/tag_fw/fw29.bin b/tag_fw/fw29.bin index 2310a83b298d025f3b96bedb4c44787915c37645..d4fd320dd8e90d8f453dfddb1fde749b6c4f4a92 100644 GIT binary patch literal 54524 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

a&3nSDsitWcz+BQ(B{ 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 IK7Y0R03K}h7XSbN literal 53363 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 $h?N?J?J@rXqv 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 diff --git a/tag_fw/fw42.bin b/tag_fw/fw42.bin index 860e3ea5dd5e5a790d1a26ccec1538bb1e67a7a6..9ca220f556499a7dd658c2235f9d4212fb8a5d2a 100644 GIT binary patch literal 54538 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 K`H3+7)$kkLCgd9c literal 53377 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 ziZs$XdataType != DATATYPE_NOUPDATE) { // data transfer powerUp(INIT_GPIO | INIT_UART); - if (doDataDownload(avail)) { + if (processAvailDataInfo(avail)) { // succesful transfer, next wake time is determined by the NextCheckin; } else { // failed transfer, let the algorithm determine next sleep interval (not the AP) @@ -311,7 +311,7 @@ void mainProtocolLoop(void) { powerUp(INIT_EPD); if (curImgSlot != 0xFF) { powerUp(INIT_EEPROM); - drawImageFromEeprom(); + drawImageFromEeprom(curImgSlot); powerDown(INIT_EEPROM); } else if ((scanAttempts >= (INTERVAL_1_ATTEMPTS + INTERVAL_2_ATTEMPTS - 1))) { showLongTermSleep(); diff --git a/tag_fw/proto.h b/tag_fw/proto.h index 85e2bedc..bc6f4f45 100644 --- a/tag_fw/proto.h +++ b/tag_fw/proto.h @@ -116,9 +116,11 @@ struct AvailDataReq { #define DATATYPE_NOUPDATE 0 -#define DATATYPE_IMG 1 -#define DATATYPE_IMGRAW 2 -#define DATATYPE_UPDATE 3 +#define DATATYPE_IMG_BMP 2 +#define DATATYPE_FW_UPDATE 3 +#define DATATYPE_IMG_DIFF 0x10 // always 1BPP +#define DATATYPE_IMG_RAW_1BPP 0x20 // 2888 bytes for 1.54" / 4736 2.9" / 15000 4.2" +#define DATATYPE_IMG_RAW_2BPP 0x21 // 5776 bytes for 1.54" / 9472 2.9" / 30000 4.2" struct AvailDataInfo { uint8_t checksum; diff --git a/tag_fw/settings.h b/tag_fw/settings.h index 42a795c9..d7df03df 100644 --- a/tag_fw/settings.h +++ b/tag_fw/settings.h @@ -4,7 +4,7 @@ #include #define FW_VERSION 014 // version number (max 2.5.5 :) ) -#define FW_VERSION_SUFFIX "-lutje" // suffix, like -RC1 or whatever. +#define FW_VERSION_SUFFIX "-RE" // suffix, like -RC1 or whatever. #define HAS_BUTTON // uncomment to enable reading a push button (connect between 'TEST' en 'GND' on the tag, along with a 100nF capacitor in parallel). #define DEBUGBLOCKS // uncomment to enable extra debug information on the block transfers //#define PRINT_LUT // uncomment if you want the tag to print the LUT for the current temperature bracket diff --git a/tag_fw/syncedproto.c b/tag_fw/syncedproto.c index 32b67825..44098843 100644 --- a/tag_fw/syncedproto.c +++ b/tag_fw/syncedproto.c @@ -25,26 +25,19 @@ #include "wdt.h" // download-stuff -bool __xdata dataPending = true; uint8_t __xdata blockXferBuffer[BLOCK_XFER_BUFFER_SIZE] = {0}; -struct blockRequest __xdata curBlock = {0}; -struct AvailDataInfo __xdata curDataInfo = {0}; -uint16_t __xdata dataRemaining = 0; // since the targeted solum tags don't have more than 64k progmem, this is fine. -bool __xdata curXferComplete = false; +struct blockRequest __xdata curBlock = {0}; // used by the block-requester, contains the next request that we'll send +struct AvailDataInfo __xdata curDataInfo = {0}; // last 'AvailDataInfo' we received from the AP bool __xdata requestPartialBlock = false; +#define BLOCK_TRANSFER_ATTEMPTS 5 +uint8_t __xdata prevImgSlot = 0xFF; uint8_t __xdata curImgSlot = 0xFF; uint32_t __xdata curHighSlotId = 0; uint8_t __xdata nextImgSlot = 0; uint8_t __xdata imgSlots = 0; uint8_t __xdata drawWithLut = 0; -// doDownload persistent variables -bool __xdata lastBlock = false; -uint8_t __xdata partsThisBlock = 0; -uint8_t __xdata blockRequestAttempt = 0; -uint8_t __xdata blockValidateAttempt = 0; - // stuff we need to keep track of related to the network/AP uint8_t __xdata APmac[8] = {0}; uint16_t __xdata APsrcPan = 0; @@ -441,19 +434,22 @@ uint8_t findSlot(uint8_t *__xdata ver) { void eraseUpdateBlock() { eepromErase(EEPROM_UPDATA_AREA_START, EEPROM_UPDATE_AREA_LEN / EEPROM_ERZ_SECTOR_SZ); } +void eraseImageBlock(uint8_t c) { + eepromErase(getAddressForSlot(c), EEPROM_IMG_EACH / EEPROM_ERZ_SECTOR_SZ); +} void saveUpdateBlockData(uint8_t blockId) { if (!eepromWrite(EEPROM_UPDATA_AREA_START + (blockId * BLOCK_DATA_SIZE), blockXferBuffer + sizeof(struct blockData), BLOCK_DATA_SIZE)) pr("EEPROM write failed\n"); } -void saveImgBlockData(uint8_t blockId) { +void saveImgBlockData(uint8_t imgSlot, uint8_t blockId) { uint16_t length = EEPROM_IMG_EACH - (sizeof(struct EepromImageHeader) + (blockId * BLOCK_DATA_SIZE)); if (length > 4096) length = 4096; - if (!eepromWrite(getAddressForSlot(curImgSlot) + sizeof(struct EepromImageHeader) + (blockId * BLOCK_DATA_SIZE), blockXferBuffer + sizeof(struct blockData), length)) + if (!eepromWrite(getAddressForSlot(imgSlot) + sizeof(struct EepromImageHeader) + (blockId * BLOCK_DATA_SIZE), blockXferBuffer + sizeof(struct blockData), length)) pr("EEPROM write failed\n"); } -void drawImageFromEeprom() { - drawImageAtAddress(getAddressForSlot(curImgSlot), drawWithLut); +void drawImageFromEeprom(uint8_t imgSlot) { + drawImageAtAddress(getAddressForSlot(imgSlot), drawWithLut); drawWithLut = 0; // default back to the regular ol' stock/OTP LUT powerDown(INIT_EPD); } @@ -474,110 +470,30 @@ uint32_t getHighSlotId() { return temp; } -// Main download function -bool doDataDownload(struct AvailDataInfo *__xdata avail) { - // this is the main function for the download process +bool getDataBlock(uint16_t blockSize) { + static uint8_t __xdata partsThisBlock = 0; + static uint8_t __xdata blockAttempts = 0; + blockAttempts = BLOCK_TRANSFER_ATTEMPTS; - if (!eepromInit()) { // we'll need the eeprom here, init it. - pr("failed to init eeprom\n"); - return false; - } - - // GET AVAIL DATA INFO - enable the radio and get data - if (avail == NULL) { // didn't receive a reply to get info about the data, we'll resync and try again later -#ifdef DEBUGBLOCKS - pr("didn't receive getavaildatainfo"); -#endif - return false; - } - - // did receive available data info (avail struct) - switch (avail->dataType) { - case DATATYPE_IMG: - case DATATYPE_IMGRAW: - // check if this download is currently displayed or active - if (curXferComplete && xMemEqual((const void *__xdata) & avail->dataVer, (const void *__xdata) & curDataInfo.dataVer, 8)) { - // we've downloaded this already, we're guessing it's already displayed - pr("old ver, already downloaded!\n"); - powerUp(INIT_RADIO); - sendXferComplete(); - powerDown(INIT_RADIO); - return true; - } else { - // check if we've seen this version before - curImgSlot = findSlot(&(avail->dataVer)); - if (curImgSlot != 0xFF) { - // found a (complete)valid image slot for this version - powerDown(INIT_RADIO); - sendXferComplete(); - powerDown(INIT_RADIO); - - pr("already seen, drawing from eeprom slot %d\n", curImgSlot); - - // mark as completed and draw from EEPROM - curXferComplete = true; - xMemCopyShort(&curDataInfo, (void *)avail, sizeof(struct AvailDataInfo)); - drawWithLut = avail->dataTypeArgument; - wdt60s(); - drawImageFromEeprom(); - return true; - } else { - // not found in cache, prepare to download - // go to the next image slot - nextImgSlot++; - if (nextImgSlot >= imgSlots) nextImgSlot = 0; - curImgSlot = nextImgSlot; - drawWithLut = avail->dataTypeArgument; - eepromErase(getAddressForSlot(curImgSlot), EEPROM_IMG_EACH / EEPROM_ERZ_SECTOR_SZ); - pr("new download, writing to slot %d\n", curImgSlot); - // continue! - } - } - break; - case DATATYPE_UPDATE: - pr("received firmware!\n"); - eepromErase(EEPROM_UPDATA_AREA_START, EEPROM_UPDATE_AREA_LEN / EEPROM_ERZ_SECTOR_SZ); - break; - } - - // prepare for download - curXferComplete = false; - curBlock.blockId = 0; - xMemCopy8(&(curBlock.ver), &(avail->dataVer)); - curBlock.type = avail->dataType; - xMemCopyShort(&curDataInfo, (void *)avail, sizeof(struct AvailDataInfo)); - dataRemaining = curDataInfo.dataSize; // this was + 2, and I can't remember why. It works fine without it, so I don't know.... - - // set requested parts - check if the transfer is contained in this block - if (dataRemaining > BLOCK_DATA_SIZE) { - // full block, not last - lastBlock = false; + if (blockSize == BLOCK_DATA_SIZE) { partsThisBlock = BLOCK_MAX_PARTS; memset(curBlock.requestedParts, 0xFF, BLOCK_REQ_PARTS_BYTES); } else { - // final block, probably partial - lastBlock = true; - partsThisBlock = dataRemaining / BLOCK_PART_DATA_SIZE; - if (dataRemaining % BLOCK_PART_DATA_SIZE) partsThisBlock++; + partsThisBlock = blockSize / BLOCK_PART_DATA_SIZE; + if (blockSize % BLOCK_PART_DATA_SIZE) partsThisBlock++; memset(curBlock.requestedParts, 0x00, BLOCK_REQ_PARTS_BYTES); for (uint8_t c = 0; c < partsThisBlock; c++) { curBlock.requestedParts[c / 8] |= (1 << (c % 8)); } } - // do transfer! - blockRequestAttempt = 0; - blockValidateAttempt = 0; - while (!curXferComplete) { - // this while loop loops until the transfer has been completed, or we get tired for other reasons - startdownload:; - wdt10s(); + requestPartialBlock = false; // this forces the AP to request the block data from the host + + while (blockAttempts--) { #ifndef DEBUGBLOCKS pr("REQ %d ", curBlock.blockId); -#endif -#ifdef DEBUGBLOCKS +#else pr("REQ %d[", curBlock.blockId); - for (uint8_t c = 0; c < BLOCK_MAX_PARTS; c++) { if ((c != 0) && (c % 8 == 0)) pr("]["); if (curBlock.requestedParts[c / 8] & (1 << (c % 8))) { @@ -588,20 +504,13 @@ bool doDataDownload(struct AvailDataInfo *__xdata avail) { } pr("]\n"); #endif - - // timerDelay(TIMER_TICKS_PER_MS*100); - - // DO BLOCK REQUEST - request a block, get an ack with timing info (hopefully) powerUp(INIT_RADIO); struct blockRequestAck *__xdata ack = performBlockRequest(); if (ack == NULL) { pr("Cancelled request\n"); return false; - } else { - // got an ack! } - // SLEEP - until the AP is ready with the data - if (ack->pleaseWaitMs) { + if (ack->pleaseWaitMs) { // SLEEP - until the AP is ready with the data if (ack->pleaseWaitMs < 35) { timerDelay(ack->pleaseWaitMs * TIMER_TICKS_PER_MS); } else { @@ -613,20 +522,10 @@ bool doDataDownload(struct AvailDataInfo *__xdata avail) { } else { // immediately start with the reception of the block data } - // BLOCK RX LOOP - receive a block, until the timeout has passed - if (!blockRxLoop(270)) { // was 300 - // didn't receive packets - blockRequestAttempt++; - if (blockRequestAttempt > 5) { - powerDown(INIT_RADIO); - pr("bailing on download, 0 blockparts rx'd\n"); - return false; - } - } else { - // successfull block RX loop - blockRequestAttempt = 0; - } + + blockRxLoop(270); // BLOCK RX LOOP - receive a block, until the timeout has passed powerDown(INIT_RADIO); + #ifdef DEBUGBLOCKS pr("RX %d[", curBlock.blockId); for (uint8_t c = 0; c < BLOCK_MAX_PARTS; c++) { @@ -639,7 +538,6 @@ bool doDataDownload(struct AvailDataInfo *__xdata avail) { } pr("]\n"); #endif - // check if we got all the parts we needed, e.g: has the block been completed? bool blockComplete = true; for (uint8_t c = 0; c < partsThisBlock; c++) { @@ -651,31 +549,14 @@ bool doDataDownload(struct AvailDataInfo *__xdata avail) { pr("- COMPLETE\n"); #endif if (validateBlockData()) { - // checked and found okay - requestPartialBlock = false; // next block is going to be requested from the ESP32 by the AP - blockValidateAttempt = 0; - switch (curBlock.type) { - case DATATYPE_IMG: - case DATATYPE_IMGRAW: - saveImgBlockData(curBlock.blockId); - break; - case DATATYPE_UPDATE: - saveUpdateBlockData(curBlock.blockId); - break; - } + // block download complete, validated + return true; } else { - // block checked, but failed validation. Mark all parts for this block as 'request' - blockValidateAttempt++; - if (blockValidateAttempt > 5) { - pr("bailing on download, 0 blockparts rx'd\n"); - return false; - } for (uint8_t c = 0; c < partsThisBlock; c++) { curBlock.requestedParts[c / 8] |= (1 << (c % 8)); } - blockComplete = false; requestPartialBlock = false; - pr("block failed validation!\n"); + pr("blk failed validation!\n"); } } else { #ifndef DEBUGBLOCKS @@ -684,67 +565,174 @@ bool doDataDownload(struct AvailDataInfo *__xdata avail) { // block incomplete, re-request a partial block requestPartialBlock = true; } + } + pr("failed getting block\n"); + return false; +} - if (blockComplete) { - if (!lastBlock) { - // Not the last block! check what the next block is going to be - curBlock.blockId++; - dataRemaining -= BLOCK_DATA_SIZE; - if (dataRemaining > BLOCK_DATA_SIZE) { - // full block-size - partsThisBlock = BLOCK_MAX_PARTS; - memset(curBlock.requestedParts, 0xFF, BLOCK_REQ_PARTS_BYTES); - lastBlock = false; - } else { - // final block, probably partial - partsThisBlock = dataRemaining / BLOCK_PART_DATA_SIZE; - if (dataRemaining % BLOCK_PART_DATA_SIZE) partsThisBlock++; - memset(curBlock.requestedParts, 0x00, BLOCK_REQ_PARTS_BYTES); - for (uint8_t c = 0; c < partsThisBlock; c++) { - curBlock.requestedParts[c / 8] |= (1 << (c % 8)); - } - lastBlock = true; - } +bool downloadFWUpdate(struct AvailDataInfo *__xdata avail) { + // check if we already started the transfer of this information & haven't completed it + if (xMemEqual((const void *__xdata) & avail->dataVer, (const void *__xdata) & curDataInfo.dataVer, 8) && curDataInfo.dataSize) { + // looks like we did. We'll carry on where we left off. + } else { + // start, or restart the transfer from 0. Copy data from the AvailDataInfo struct, and the struct intself. This forces a new transfer + curBlock.blockId = 0; + xMemCopy8(&(curBlock.ver), &(avail->dataVer)); + curBlock.type = avail->dataType; + xMemCopyShort(&curDataInfo, (void *)avail, sizeof(struct AvailDataInfo)); + eraseUpdateBlock(); + } - } else { - // this was the last block. What should we do next? - switch (curBlock.type) { - case DATATYPE_IMG: - case DATATYPE_IMGRAW:; - // transfer complete. Save data info and mark data in image slot as 'valid' - struct EepromImageHeader __xdata *eih = (struct EepromImageHeader __xdata *)blockXferBuffer; - xMemCopy8(&eih->version, &curDataInfo.dataVer); - eih->size = curDataInfo.dataSize; - eih->validMarker = EEPROM_IMG_VALID; - eih->id = ++curHighSlotId; - eepromWrite(getAddressForSlot(curImgSlot), eih, sizeof(struct EepromImageHeader)); - // pr("transfer complete!"); - curXferComplete = true; - powerUp(INIT_RADIO); - sendXferComplete(); - powerDown(INIT_RADIO); - wdt60s(); - drawImageFromEeprom(); - curDataInfo.dataVer = 0xAA; - break; - case DATATYPE_UPDATE: - pr("firmware download complete, doing update.\n"); - powerUp(INIT_EPD); - showApplyUpdate(); - curXferComplete = true; - powerUp(INIT_RADIO); - sendXferComplete(); - powerDown(INIT_RADIO); - wdt60s(); - eepromReadStart(EEPROM_UPDATA_AREA_START); - selfUpdate(); - break; - } - } + while (curDataInfo.dataSize) { + wdt10s(); + static uint16_t __xdata dataRequestSize; + if (curDataInfo.dataSize > BLOCK_DATA_SIZE) { + // more than one block remaining + dataRequestSize = BLOCK_DATA_SIZE; } else { - // incomplete block, wrap around and get the rest of the block... + // only one block remains + dataRequestSize = curDataInfo.dataSize; } - } // end download while loop + if (getDataBlock(dataRequestSize)) { + // succesfully downloaded datablock, save to eeprom + powerUp(INIT_EEPROM); + saveUpdateBlockData(curBlock.blockId); + powerDown(INIT_EEPROM); + curBlock.blockId++; + curDataInfo.dataSize -= dataRequestSize; + } else { + // failed to get the block we wanted, we'll stop for now, maybe resume later + return false; + } + } + // no more data, download complete + return true; +} +bool downloadImageData(struct AvailDataInfo *__xdata avail) { + static uint16_t __xdata imageSize = 0; + // check if we already started the transfer of this information & haven't completed it + if (xMemEqual((const void *__xdata) & avail->dataVer, (const void *__xdata) & curDataInfo.dataVer, 8) && curDataInfo.dataSize) { + // looks like we did. We'll carry on where we left off. + pr("restarting image download"); + } else { + // go to the next image slot + nextImgSlot++; + if (nextImgSlot >= imgSlots) nextImgSlot = 0; + curImgSlot = nextImgSlot; + drawWithLut = avail->dataTypeArgument; + eepromErase(getAddressForSlot(curImgSlot), EEPROM_IMG_EACH / EEPROM_ERZ_SECTOR_SZ); + pr("new download, writing to slot %d\n", curImgSlot); + + // start, or restart the transfer. Copy data from the AvailDataInfo struct, and the struct intself. This forces a new transfer + curBlock.blockId = 0; + xMemCopy8(&(curBlock.ver), &(avail->dataVer)); + curBlock.type = avail->dataType; + xMemCopyShort(&curDataInfo, (void *)avail, sizeof(struct AvailDataInfo)); + imageSize = curDataInfo.dataSize; + } + + while (curDataInfo.dataSize) { + wdt10s(); + static uint16_t __xdata dataRequestSize; + if (curDataInfo.dataSize > BLOCK_DATA_SIZE) { + // more than one block remaining + dataRequestSize = BLOCK_DATA_SIZE; + } else { + // only one block remains + dataRequestSize = curDataInfo.dataSize; + } + if (getDataBlock(dataRequestSize)) { + // succesfully downloaded datablock, save to eeprom + powerUp(INIT_EEPROM); + saveImgBlockData(curImgSlot, curBlock.blockId); + curBlock.blockId++; + curDataInfo.dataSize -= dataRequestSize; + } else { + // failed to get the block we wanted, we'll stop for now, probably resume later + return false; + } + } + + // borrow the blockXferBuffer temporarily + struct EepromImageHeader __xdata *eih = (struct EepromImageHeader __xdata *)blockXferBuffer; + xMemCopy8(&eih->version, &curDataInfo.dataVer); + eih->validMarker = EEPROM_IMG_VALID; + eih->id = ++curHighSlotId; + eih->size = imageSize; + eih->dataType = curDataInfo.dataType; + eepromWrite(getAddressForSlot(curImgSlot), eih, sizeof(struct EepromImageHeader)); + + powerUp(INIT_RADIO); + sendXferComplete(); + powerDown(INIT_RADIO); + // no more data, download complete + return true; +} + +bool processAvailDataInfo(struct AvailDataInfo *__xdata avail) { + powerUp(INIT_EEPROM | INIT_UART | INIT_GPIO); + switch (avail->dataType) { + case DATATYPE_IMG_BMP: + case DATATYPE_IMG_DIFF: + case DATATYPE_IMG_RAW_1BPP: + case DATATYPE_IMG_RAW_2BPP: + // check if this download is currently displayed or active + if (curDataInfo.dataSize == 0 && xMemEqual((const void *__xdata) & avail->dataVer, (const void *__xdata) & curDataInfo.dataVer, 8)) { + // we've downloaded this already, we're guessing it's already displayed + pr("currently shown image, send xfc\n"); + powerUp(INIT_RADIO); + sendXferComplete(); + powerDown(INIT_RADIO); + return true; + } + + // check if we've seen this version before + powerUp(INIT_EEPROM); + curImgSlot = findSlot(&(avail->dataVer)); + if (curImgSlot != 0xFF) { + // found a (complete)valid image slot for this version + powerUp(INIT_RADIO); + sendXferComplete(); + powerDown(INIT_RADIO); + + pr("already seen, drawing from eeprom slot %d\n", curImgSlot); + + // mark as completed and draw from EEPROM + xMemCopyShort(&curDataInfo, (void *)avail, sizeof(struct AvailDataInfo)); + curDataInfo.dataSize = 0; // mark as transfer not pending + + drawWithLut = avail->dataTypeArgument; + wdt60s(); + drawImageFromEeprom(curImgSlot); + return true; + } else { + drawWithLut = avail->dataTypeArgument; + // not found in cache, prepare to download + downloadImageData(avail); + drawImageFromEeprom(curImgSlot); + return true; + } + break; + case DATATYPE_FW_UPDATE: + powerUp(INIT_EEPROM); + if (downloadFWUpdate(avail)) { + pr("firmware download complete, doing update.\n"); + + powerUp(INIT_EPD); + showApplyUpdate(); + + powerUp(INIT_RADIO); + sendXferComplete(); + powerDown(INIT_RADIO); + + wdt60s(); + eepromReadStart(EEPROM_UPDATA_AREA_START); + selfUpdate(); + } else { + return false; + } + break; + } return true; } diff --git a/tag_fw/syncedproto.h b/tag_fw/syncedproto.h index cfe869c8..6b6fdb07 100644 --- a/tag_fw/syncedproto.h +++ b/tag_fw/syncedproto.h @@ -16,8 +16,8 @@ extern void killRadio(void); extern struct AvailDataInfo *__xdata getAvailDataInfo(); extern struct AvailDataInfo *__xdata getShortAvailDataInfo(); -extern void drawImageFromEeprom(); -extern bool doDataDownload(struct AvailDataInfo *__xdata avail); +extern void drawImageFromEeprom(uint8_t imgSlot); +extern bool processAvailDataInfo(struct AvailDataInfo *__xdata avail); extern void initializeProto(); extern uint8_t detectAP(uint8_t channel); From 682abb64cdff1680a557de0ae465c9c423d1239d Mon Sep 17 00:00:00 2001 From: Jelmer Date: Wed, 15 Feb 2023 21:53:03 +0100 Subject: [PATCH 2/7] added binaries --- crap/027C4B633B1A.bin | Bin 0 -> 65536 bytes crap/027C4B633B1A.bin.html | 58829 +++++++++++++++++++++++++++++++++++ 2 files changed, 58829 insertions(+) create mode 100644 crap/027C4B633B1A.bin create mode 100644 crap/027C4B633B1A.bin.html diff --git a/crap/027C4B633B1A.bin b/crap/027C4B633B1A.bin new file mode 100644 index 0000000000000000000000000000000000000000..e5524c36cc752bdd9c3fa2dfb9111f3748583ce5 GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/crap/027C4B633B1A.bin.html b/crap/027C4B633B1A.bin.html new file mode 100644 index 00000000..0f8821c3 --- /dev/null +++ b/crap/027C4B633B1A.bin.html @@ -0,0 +1,58829 @@ + + + + +IDA - 027C4B633B1A.bin.i64 (027C4B633B1A.bin) \\utility.opus.lan\wwwdir\027C4B633B1A.bin.i64 + + + + +code:0000 ; +code:0000 ; +-------------------------------------------------------------------------+ +code:0000 ; | This file was generated by The Interactive Disassembler (IDA) | +code:0000 ; | Copyright (c) 2019 Hex-Rays, <support@hex-rays.com> | +code:0000 ; | License info: 48-256C-4840-25 | +code:0000 ; | Team-IRA Release [PUBLIC] ,v1.0 | +code:0000 ; +-------------------------------------------------------------------------+ +code:0000 ; +code:0000 ; Input SHA256 : 70C25228315B81666DE14A5CACEEF570D5E8A918429043F10D1CA03DA4EE52E5 +code:0000 ; Input MD5 : 3DF1A99EBA92423B6117D7291E03DCA9 +code:0000 ; Input CRC32 : 53292AA9 +code:0000 +code:0000 ; File Name : \\utility.opus.lan\wwwdir\027C4B633B1A.bin +code:0000 ; Format : Binary file +code:0000 ; Base Address: 0000h Range: 0000h - 10000h Loaded length: 10000h +code:0000 +code:0000 ; Processor : AT89S8252 [RAM=256 ROM=0 EPROM=0 EEPROM=0] +code:0000 ; Target assembler: ASMI +code:0000 ; Byte sex : Big endian +code:0000 +code:0000 ; =========================================================================== +code:0000 +code:0000 ; Segment type: Pure code +code:0000 ;.segment code +code:0000 ; [00000003 BYTES: COLLAPSED FUNCTION start. PRESS CTRL-NUMPAD+ TO EXPAND] +code:0003 ; [00000003 BYTES: COLLAPSED FUNCTION extint0. PRESS CTRL-NUMPAD+ TO EXPAND] +code:0006 .byte 2 +code:0007 .byte 0x10 +code:0008 .byte 0x7D ; } +code:0009 .byte 0x22 ; " +code:000A .byte 0xFF +code:000B ; [00000003 BYTES: COLLAPSED FUNCTION timint0. PRESS CTRL-NUMPAD+ TO EXPAND] +code:000E .byte 0xF0 +code:000F .byte 0x90 +code:0010 .byte 0xFD +code:0011 .byte 0xB6 +code:0012 .byte 0xE0 +code:0013 +code:0013 ; =============== S U B R O U T I N E ======================================= +code:0013 +code:0013 ; External interrupt 1 (INT1 / EX1) +code:0013 +code:0013 ; public extint1 +code:0013 extint1: +code:0013 mov R6, A +code:0014 inc DPTR +code:0015 movx A, @DPTR +code:0016 ret +code:0016 ; End of function extint1 +code:0016 +code:0016 ; --------------------------------------------------------------------------- +code:0017 .byte 0xC2 +code:0018 .byte 0x91 +code:0019 .byte 0x7F ;  +code:001A .byte 6 +code:001B +code:001B ; =============== S U B R O U T I N E ======================================= +code:001B +code:001B ; Timer interrupt 1 (TIM1) +code:001B +code:001B ; public timint1 +code:001B timint1: +code:001B lcall DO_SPI_TRANSACTION_ALT +code:001E setb P1.1 ; Port 1 +code:0020 ret +code:0020 ; End of function timint1 +code:0020 +code:0020 ; --------------------------------------------------------------------------- +code:0021 .byte 0xFF +code:0022 .byte 0xFF +code:0023 ; [00000003 BYTES: COLLAPSED FUNCTION serint. PRESS CTRL-NUMPAD+ TO EXPAND] +code:0026 .byte 2 +code:0027 .byte 0x2F ; / +code:0028 .byte 0xD1 +code:0029 .byte 0xFF +code:002A .byte 0xFF +code:002B ; [00000003 BYTES: COLLAPSED FUNCTION timint2. PRESS CTRL-NUMPAD+ TO EXPAND] +code:002E .byte 0xC2 +code:002F .byte 0xA2 +code:0030 .byte 2 +code:0031 .byte 0x4C ; L +code:0032 .byte 0xF3 +code:0033 ; [00000003 BYTES: COLLAPSED FUNCTION pcaint. PRESS CTRL-NUMPAD+ TO EXPAND] +code:0036 .byte 0xC2 +code:0037 .byte 0x91 +code:0038 .byte 0x7F ;  +code:0039 .byte 0xB9 +code:003A .byte 0x12 +code:003B .byte 0x1E +code:003C .byte 0xF6 +code:003D .byte 0xD2 +code:003E .byte 0x91 +code:003F .byte 0x43 ; C +code:0040 .byte 0xBA +code:0041 .byte 2 +code:0042 .byte 0x43 ; C +code:0043 .byte 0xBD +code:0044 .byte 2 +code:0045 .byte 0x22 ; " +code:0046 .byte 0x90 +code:0047 .byte 0xF5 +code:0048 .byte 0x4E ; N +code:0049 .byte 2 +code:004A .byte 0xB +code:004B .byte 0xE2 +code:004C .byte 0x12 +code:004D .byte 0x1E +code:004E .byte 0xF6 +code:004F .byte 0x90 +code:0050 .byte 0xF8 +code:0051 .byte 0x70 ; p +code:0052 .byte 0x22 ; " +code:0053 .byte 2 +code:0054 .byte 0xA5 +code:0055 .byte 0x26 ; & +code:0056 .byte 0x78 ; x +code:0057 .byte 0x7F ;  +code:0058 .byte 0xE4 +code:0059 .byte 0xF6 +code:005A .byte 0xD8 +code:005B .byte 0xFD +code:005C .byte 0x90 +code:005D .byte 0xE0 +code:005E .byte 0 +code:005F .byte 0x7F ;  +code:0060 .byte 0xE0 +code:0061 .byte 0x7E ; ~ +code:0062 .byte 0x20 +code:0063 .byte 0xE4 +code:0064 .byte 0xF0 +code:0065 .byte 0xA3 +code:0066 .byte 0xDF +code:0067 .byte 0xFC +code:0068 .byte 0xDE +code:0069 .byte 0xFA +code:006A .byte 0x75 ; u +code:006B .byte 0x81 +code:006C .byte 0x20 +code:006D .byte 2 +code:006E .byte 4 +code:006F .byte 0xAB +code:0070 .byte 2 +code:0071 .byte 0x1E +code:0072 .byte 0x34 ; 4 +code:0073 .byte 0xE4 +code:0074 .byte 0x93 +code:0075 .byte 0xA3 +code:0076 .byte 0xF8 +code:0077 .byte 0xE4 +code:0078 .byte 0x93 +code:0079 .byte 0xA3 +code:007A .byte 0x40 ; @ +code:007B .byte 3 +code:007C .byte 0xF6 +code:007D .byte 0x80 +code:007E .byte 1 +code:007F .byte 0xF2 +code:0080 .byte 8 +code:0081 .byte 0xDF +code:0082 .byte 0xF4 +code:0083 .byte 0x80 +code:0084 .byte 0x29 ; ) +code:0085 .byte 0xE4 +code:0086 .byte 0x93 +code:0087 .byte 0xA3 +code:0088 .byte 0xF8 +code:0089 .byte 0x54 ; T +code:008A .byte 7 +code:008B .byte 0x24 ; $ +code:008C .byte 0xC +code:008D .byte 0xC8 +code:008E .byte 0xC3 +code:008F .byte 0x33 ; 3 +code:0090 .byte 0xC4 +code:0091 .byte 0x54 ; T +code:0092 .byte 0xF +code:0093 .byte 0x44 ; D +code:0094 .byte 0x20 +code:0095 .byte 0xC8 +code:0096 .byte 0x83 +code:0097 .byte 0x40 ; @ +code:0098 .byte 4 +code:0099 .byte 0xF4 +code:009A .byte 0x56 ; V +code:009B .byte 0x80 +code:009C .byte 1 +code:009D .byte 0x46 ; F +code:009E .byte 0xF6 +code:009F .byte 0xDF +code:00A0 .byte 0xE4 +code:00A1 .byte 0x80 +code:00A2 .byte 0xB +code:00A3 .byte 1 +code:00A4 .byte 2 +code:00A5 .byte 4 +code:00A6 .byte 8 +code:00A7 .byte 0x10 +code:00A8 .byte 0x20 +code:00A9 .byte 0x40 ; @ +code:00AA .byte 0x80 +code:00AB .byte 0x90 +code:00AC .byte 0xF +code:00AD .byte 0x90 +code:00AE .byte 0xE4 +code:00AF .byte 0x7E ; ~ +code:00B0 .byte 1 +code:00B1 .byte 0x93 +code:00B2 .byte 0x60 ; ` +code:00B3 .byte 0xBC +code:00B4 .byte 0xA3 +code:00B5 .byte 0xFF +code:00B6 .byte 0x54 ; T +code:00B7 .byte 0x3F ; ? +code:00B8 .byte 0x30 ; 0 +code:00B9 .byte 0xE5 +code:00BA .byte 9 +code:00BB .byte 0x54 ; T +code:00BC .byte 0x1F +code:00BD .byte 0xFE +code:00BE .byte 0xE4 +code:00BF .byte 0x93 +code:00C0 .byte 0xA3 +code:00C1 .byte 0x60 ; ` +code:00C2 .byte 1 +code:00C3 .byte 0xE +code:00C4 .byte 0xCF +code:00C5 .byte 0x54 ; T +code:00C6 .byte 0xC0 +code:00C7 .byte 0x25 ; % +code:00C8 .byte 0xE0 +code:00C9 .byte 0x60 ; ` +code:00CA .byte 0xA8 +code:00CB .byte 0x40 ; @ +code:00CC .byte 0xB8 +code:00CD .byte 0xE4 +code:00CE .byte 0x93 +code:00CF .byte 0xA3 +code:00D0 .byte 0xFA +code:00D1 .byte 0xE4 +code:00D2 .byte 0x93 +code:00D3 .byte 0xA3 +code:00D4 .byte 0xF8 +code:00D5 .byte 0xE4 +code:00D6 .byte 0x93 +code:00D7 .byte 0xA3 +code:00D8 .byte 0xC8 +code:00D9 .byte 0xC5 +code:00DA .byte 0x82 +code:00DB .byte 0xC8 +code:00DC .byte 0xCA +code:00DD .byte 0xC5 +code:00DE .byte 0x83 +code:00DF .byte 0xCA +code:00E0 .byte 0xF0 +code:00E1 .byte 0xA3 +code:00E2 .byte 0xC8 +code:00E3 .byte 0xC5 +code:00E4 .byte 0x82 +code:00E5 .byte 0xC8 +code:00E6 .byte 0xCA +code:00E7 .byte 0xC5 +code:00E8 .byte 0x83 +code:00E9 .byte 0xCA +code:00EA .byte 0xDF +code:00EB .byte 0xE9 +code:00EC .byte 0xDE +code:00ED .byte 0xE7 +code:00EE .byte 0x80 +code:00EF .byte 0xBE +code:00F0 .byte 0 +code:00F1 .byte 0 +code:00F2 .byte 0 +code:00F3 .byte 0 +code:00F4 .byte 0 +code:00F5 .byte 0 +code:00F6 .byte 0 +code:00F7 .byte 0 +code:00F8 .byte 0 +code:00F9 .byte 0 +code:00FA .byte 0 +code:00FB .byte 0x49 ; I +code:00FC .byte 1 +code:00FD .byte 0xFF +code:00FE .byte 0 +code:00FF .byte 0 +code:0100 .byte 0 +code:0101 .byte 0 +code:0102 .byte 0 +code:0103 .byte 0 +code:0104 .byte 0 +code:0105 .byte 0 +code:0106 .byte 0 +code:0107 .byte 0 +code:0108 .byte 0x49 ; I +code:0109 .byte 0 +code:010A .byte 0 +code:010B .byte 0 +code:010C .byte 0 +code:010D .byte 0 +code:010E .byte 0 +code:010F .byte 0 +code:0110 .byte 0 +code:0111 .byte 0 +code:0112 .byte 0 +code:0113 .byte 0 +code:0114 .byte 0 +code:0115 .byte 0 +code:0116 .byte 0x56 ; V +code:0117 .byte 0 +code:0118 .byte 0 +code:0119 .byte 0 +code:011A .byte 0 +code:011B .byte 0 +code:011C .byte 0 +code:011D .byte 0 +code:011E .byte 0 +code:011F .byte 0 +code:0120 .byte 0 +code:0121 .byte 0 +code:0122 .byte 0 +code:0123 .byte 0xE4 +code:0124 .byte 0x90 +code:0125 .byte 0xF5 +code:0126 .byte 0x41 ; A +code:0127 .byte 0xF0 +code:0128 .byte 0xA3 +code:0129 .byte 0xF0 +code:012A .byte 0xA3 +code:012B .byte 0xF0 +code:012C .byte 0xFF +code:012D .byte 0x90 +code:012E .byte 0xF5 +code:012F .byte 0x52 ; R +code:0130 .byte 0xEF +code:0131 .byte 0xF0 +code:0132 .byte 0x22 ; " +code:0133 .byte 0x90 +code:0134 .byte 0xF5 +code:0135 .byte 0x48 ; H +code:0136 .byte 2 +code:0137 .byte 0xB +code:0138 .byte 0xE2 +code:0139 .byte 2 +code:013A .byte 0x5F ; _ +code:013B .byte 0xC2 +code:013C .byte 0x21 ; ! +code:013D .byte 0x87 +code:013E .byte 0x12 +code:013F .byte 0x34 ; 4 +code:0140 .byte 0xFF +code:0141 .byte 0 +code:0142 .byte 1 +code:0143 .byte 1 +code:0144 .byte 2 +code:0145 .byte 7 +code:0146 .byte 0x86 +code:0147 .byte 0xE8 +code:0148 .byte 0x64 ; d +code:0149 .byte 0x80 +code:014A .byte 0xF8 +code:014B .byte 0xE9 +code:014C .byte 0x33 ; 3 +code:014D .byte 0xE8 +code:014E .byte 0x33 ; 3 +code:014F .byte 0x60 ; ` +code:0150 .byte 0x11 +code:0151 .byte 4 +code:0152 .byte 0x60 ; ` +code:0153 .byte 0xF0 +code:0154 .byte 0xED +code:0155 .byte 0x33 ; 3 +code:0156 .byte 0xEC +code:0157 .byte 0x33 ; 3 +code:0158 .byte 0x70 ; p +code:0159 .byte 9 +code:015A .byte 0xE8 +code:015B .byte 0xFC +code:015C .byte 0xE9 +code:015D .byte 0xFD +code:015E .byte 0xEA +code:015F .byte 0xFE +code:0160 .byte 0xEB +code:0161 .byte 0xFF +code:0162 .byte 0x22 ; " +code:0163 .byte 4 +code:0164 .byte 0x60 ; ` +code:0165 .byte 0xDE +code:0166 .byte 0xD3 +code:0167 .byte 0xEB +code:0168 .byte 0x9F +code:0169 .byte 0xEA +code:016A .byte 0x9E +code:016B .byte 0xE9 +code:016C .byte 0x9D +code:016D .byte 0xE8 +code:016E .byte 0xC2 +code:016F .byte 0xE7 +code:0170 .byte 0x8C +code:0171 .byte 0xF0 +code:0172 .byte 0xC2 +code:0173 .byte 0xF7 +code:0174 .byte 0x95 +code:0175 .byte 0xF0 +code:0176 .byte 0x40 ; @ +code:0177 .byte 0xC +code:0178 .byte 0xE8 +code:0179 .byte 0xCC +code:017A .byte 0xF8 +code:017B .byte 0xE9 +code:017C .byte 0xCD +code:017D .byte 0xF9 +code:017E .byte 0xEA +code:017F .byte 0xCE +code:0180 .byte 0xFA +code:0181 .byte 0xEB +code:0182 .byte 0xCF +code:0183 .byte 0xFB +code:0184 .byte 0x12 +code:0185 .byte 7 +code:0186 .byte 0x51 ; Q +code:0187 .byte 0x85 +code:0188 .byte 0xD0 +code:0189 .byte 0xF0 +code:018A .byte 0x58 ; X +code:018B .byte 4 +code:018C .byte 0x70 ; p +code:018D .byte 3 +code:018E .byte 0x20 +code:018F .byte 0xD5 +code:0190 .byte 0xB3 +code:0191 .byte 0xE8 +code:0192 .byte 4 +code:0193 .byte 0x70 ; p +code:0194 .byte 7 +code:0195 .byte 0x50 ; P +code:0196 .byte 2 +code:0197 .byte 0xB2 +code:0198 .byte 0xD5 +code:0199 .byte 2 +code:019A .byte 7 +code:019B .byte 0x90 +code:019C .byte 0x92 +code:019D .byte 0xD5 +code:019E .byte 0xEC +code:019F .byte 4 +code:01A0 .byte 0x60 ; ` +code:01A1 .byte 0xF7 +code:01A2 .byte 0xE4 +code:01A3 .byte 0xCC +code:01A4 .byte 0xC0 +code:01A5 .byte 0xE0 +code:01A6 .byte 0xC3 +code:01A7 .byte 0x98 +code:01A8 .byte 0xF8 +code:01A9 .byte 0x60 ; ` +code:01AA .byte 0x3B ; ; +code:01AB .byte 0x94 +code:01AC .byte 0x18 +code:01AD .byte 0x60 ; ` +code:01AE .byte 8 +code:01AF .byte 0x40 ; @ +code:01B0 .byte 0xD +code:01B1 .byte 0xD0 +code:01B2 .byte 0xE0 +code:01B3 .byte 0xFB +code:01B4 .byte 2 +code:01B5 .byte 7 +code:01B6 .byte 0x68 ; h +code:01B7 .byte 0xE4 +code:01B8 .byte 0xFB +code:01B9 .byte 0xFA +code:01BA .byte 0xC9 +code:01BB .byte 0xFC +code:01BC .byte 0x80 +code:01BD .byte 0x28 ; ( +code:01BE .byte 0xE8 +code:01BF .byte 0x30 ; 0 +code:01C0 .byte 0xE4 +code:01C1 .byte 6 +code:01C2 .byte 0xE4 +code:01C3 .byte 0xC9 +code:01C4 .byte 0xFB +code:01C5 .byte 0xE4 +code:01C6 .byte 0xCA +code:01C7 .byte 0xFC +code:01C8 .byte 0xE8 +code:01C9 .byte 0x30 ; 0 +code:01CA .byte 0xE3 +code:01CB .byte 5 +code:01CC .byte 0xE4 +code:01CD .byte 0xC9 +code:01CE .byte 0xCA +code:01CF .byte 0xCB +code:01D0 .byte 0xFC +code:01D1 .byte 0xE8 +code:01D2 .byte 0x54 ; T +code:01D3 .byte 7 +code:01D4 .byte 0x60 ; ` +code:01D5 .byte 0x10 +code:01D6 .byte 0xF8 +code:01D7 .byte 0xC3 +code:01D8 .byte 0xE9 +code:01D9 .byte 0x13 +code:01DA .byte 0xF9 +code:01DB .byte 0xEA +code:01DC .byte 0x13 +code:01DD .byte 0xFA +code:01DE .byte 0xEB +code:01DF .byte 0x13 +code:01E0 .byte 0xFB +code:01E1 .byte 0xEC +code:01E2 .byte 0x13 +code:01E3 .byte 0xFC +code:01E4 .byte 0xD8 +code:01E5 .byte 0xF1 +code:01E6 .byte 0x30 ; 0 +code:01E7 .byte 0xF5 +code:01E8 .byte 0x2F ; / +code:01E9 .byte 0xC3 +code:01EA .byte 0xE4 +code:01EB .byte 0x9C +code:01EC .byte 0xFC +code:01ED .byte 0xEF +code:01EE .byte 0x9B +code:01EF .byte 0xFF +code:01F0 .byte 0xEE +code:01F1 .byte 0x9A +code:01F2 .byte 0xFE +code:01F3 .byte 0xED +code:01F4 .byte 0x99 +code:01F5 .byte 0xFD +code:01F6 .byte 0xD0 +code:01F7 .byte 0xE0 +code:01F8 .byte 0xFB +code:01F9 .byte 0xEF +code:01FA .byte 0x4E ; N +code:01FB .byte 0x4D ; M +code:01FC .byte 0x4C ; L +code:01FD .byte 0x70 ; p +code:01FE .byte 0x12 +code:01FF .byte 0x22 ; " +code:0200 .byte 0xDB +code:0201 .byte 3 +code:0202 .byte 2 +code:0203 .byte 7 +code:0204 .byte 0x8D +code:0205 .byte 0xEC +code:0206 .byte 0x2C ; , +code:0207 .byte 0xFC +code:0208 .byte 0xEF +code:0209 .byte 0x33 ; 3 +code:020A .byte 0xFF +code:020B .byte 0xEE +code:020C .byte 0x33 ; 3 +code:020D .byte 0xFE +code:020E .byte 0xED +code:020F .byte 0x33 ; 3 +code:0210 .byte 0xFD +code:0211 .byte 0xED +code:0212 .byte 0x30 ; 0 +code:0213 .byte 0xE7 +code:0214 .byte 0xEB +code:0215 .byte 2 +code:0216 .byte 7 +code:0217 .byte 0x68 ; h +code:0218 .byte 0xEF +code:0219 .byte 0x2B ; + +code:021A .byte 0xFF +code:021B .byte 0xEE +code:021C .byte 0x3A ; : +code:021D .byte 0xFE +code:021E .byte 0xED +code:021F .byte 0x39 ; 9 +code:0220 .byte 0xFD +code:0221 .byte 0xD0 +code:0222 .byte 0xE0 +code:0223 .byte 0xFB +code:0224 .byte 0x50 ; P +code:0225 .byte 0x13 +code:0226 .byte 0xB +code:0227 .byte 0xBB +code:0228 .byte 0 +code:0229 .byte 3 +code:022A .byte 2 +code:022B .byte 7 +code:022C .byte 0x90 +code:022D .byte 0xED +code:022E .byte 0x13 +code:022F .byte 0xFD +code:0230 .byte 0xEE +code:0231 .byte 0x13 +code:0232 .byte 0xFE +code:0233 .byte 0xEF +code:0234 .byte 0x13 +code:0235 .byte 0xFF +code:0236 .byte 0xEC +code:0237 .byte 0x13 +code:0238 .byte 0xFC +code:0239 .byte 2 +code:023A .byte 7 +code:023B .byte 0x68 ; h +code:023C .byte 2 +code:023D .byte 7 +code:023E .byte 0x90 +code:023F .byte 0xEC +code:0240 .byte 0x5D ; ] +code:0241 .byte 4 +code:0242 .byte 0x60 ; ` +code:0243 .byte 5 +code:0244 .byte 0xE8 +code:0245 .byte 0x59 ; Y +code:0246 .byte 4 +code:0247 .byte 0x70 ; p +code:0248 .byte 3 +code:0249 .byte 2 +code:024A .byte 7 +code:024B .byte 0x86 +code:024C .byte 0x12 +code:024D .byte 7 +code:024E .byte 0x51 ; Q +code:024F .byte 0x58 ; X +code:0250 .byte 4 +code:0251 .byte 0x60 ; ` +code:0252 .byte 0xF6 +code:0253 .byte 0xEC +code:0254 .byte 0x48 ; H +code:0255 .byte 0x60 ; ` +code:0256 .byte 0xF2 +code:0257 .byte 0xEC +code:0258 .byte 0x70 ; p +code:0259 .byte 4 +code:025A .byte 0xFD +code:025B .byte 0xFE +code:025C .byte 0xFF +code:025D .byte 0x22 ; " +code:025E .byte 0xC8 +code:025F .byte 0x60 ; ` +code:0260 .byte 0xDB +code:0261 .byte 0x24 ; $ +code:0262 .byte 0x81 +code:0263 .byte 0xC8 +code:0264 .byte 0x50 ; P +code:0265 .byte 9 +code:0266 .byte 0xC3 +code:0267 .byte 0x98 +code:0268 .byte 0x60 ; ` +code:0269 .byte 2 +code:026A .byte 0x50 ; P +code:026B .byte 6 +code:026C .byte 2 +code:026D .byte 7 +code:026E .byte 0x8D +code:026F .byte 0x98 +code:0270 .byte 0x50 ; P +code:0271 .byte 0xCA +code:0272 .byte 0xF5 +code:0273 .byte 0x82 +code:0274 .byte 0xE9 +code:0275 .byte 0x29 ; ) +code:0276 .byte 0x4B ; K +code:0277 .byte 0x4A ; J +code:0278 .byte 0x70 ; p +code:0279 .byte 5 +code:027A .byte 0xAB +code:027B .byte 0x82 +code:027C .byte 2 +code:027D .byte 7 +code:027E .byte 0x7C ; | +code:027F .byte 0x75 ; u +code:0280 .byte 0xF0 +code:0281 .byte 0 +code:0282 .byte 0x7C ; | +code:0283 .byte 0x1A +code:0284 .byte 0x78 ; x +code:0285 .byte 0x80 +code:0286 .byte 0xC3 +code:0287 .byte 0xEF +code:0288 .byte 0x9B +code:0289 .byte 0xEE +code:028A .byte 0x9A +code:028B .byte 0xED +code:028C .byte 0x99 +code:028D .byte 0x40 ; @ +code:028E .byte 0xD +code:028F .byte 0xC3 +code:0290 .byte 0xEF +code:0291 .byte 0x9B +code:0292 .byte 0xFF +code:0293 .byte 0xEE +code:0294 .byte 0x9A +code:0295 .byte 0xFE +code:0296 .byte 0xED +code:0297 .byte 0x99 +code:0298 .byte 0xFD +code:0299 .byte 0xE8 +code:029A .byte 0x42 ; B +code:029B .byte 0xF0 +code:029C .byte 0xDC +code:029D .byte 0x23 ; # +code:029E .byte 0xAC +code:029F .byte 0xF0 +code:02A0 .byte 0xD0 +code:02A1 .byte 0xE0 +code:02A2 .byte 0xFF +code:02A3 .byte 0xD0 +code:02A4 .byte 0xE0 +code:02A5 .byte 0xFE +code:02A6 .byte 0xD0 +code:02A7 .byte 0xE0 +code:02A8 .byte 0xFD +code:02A9 .byte 0xAB +code:02AA .byte 0x82 +code:02AB .byte 0x20 +code:02AC .byte 0xE7 +code:02AD .byte 0x10 +code:02AE .byte 0x1B +code:02AF .byte 0xEB +code:02B0 .byte 0x60 ; ` +code:02B1 .byte 0xBA +code:02B2 .byte 0xEC +code:02B3 .byte 0x2C ; , +code:02B4 .byte 0xFC +code:02B5 .byte 0xEF +code:02B6 .byte 0x33 ; 3 +code:02B7 .byte 0xFF +code:02B8 .byte 0xEE +code:02B9 .byte 0x33 ; 3 +code:02BA .byte 0xFE +code:02BB .byte 0xED +code:02BC .byte 0x33 ; 3 +code:02BD .byte 0xFD +code:02BE .byte 2 +code:02BF .byte 7 +code:02C0 .byte 0x68 ; h +code:02C1 .byte 0xE8 +code:02C2 .byte 3 +code:02C3 .byte 0xF8 +code:02C4 .byte 0x30 ; 0 +code:02C5 .byte 0xE7 +code:02C6 .byte 5 +code:02C7 .byte 0xC0 +code:02C8 .byte 0xF0 +code:02C9 .byte 0x75 ; u +code:02CA .byte 0xF0 +code:02CB .byte 0 +code:02CC .byte 0xEF +code:02CD .byte 0x2F ; / +code:02CE .byte 0xFF +code:02CF .byte 0xEE +code:02D0 .byte 0x33 ; 3 +code:02D1 .byte 0xFE +code:02D2 .byte 0xED +code:02D3 .byte 0x33 ; 3 +code:02D4 .byte 0xFD +code:02D5 .byte 0x40 ; @ +code:02D6 .byte 0xB8 +code:02D7 .byte 0x30 ; 0 +code:02D8 .byte 0xE7 +code:02D9 .byte 0xC2 +code:02DA .byte 0x80 +code:02DB .byte 0xAA +code:02DC .byte 0x75 ; u +code:02DD .byte 0xF0 +code:02DE .byte 0x20 +code:02DF .byte 0x80 +code:02E0 .byte 0xE +code:02E1 .byte 0x75 ; u +code:02E2 .byte 0xF0 +code:02E3 .byte 0x10 +code:02E4 .byte 0x80 +code:02E5 .byte 5 +code:02E6 .byte 0x75 ; u +code:02E7 .byte 0xF0 +code:02E8 .byte 8 +code:02E9 .byte 0x7D ; } +code:02EA .byte 0 +code:02EB .byte 0x7E ; ~ +code:02EC .byte 0 +code:02ED .byte 0x7F ;  +code:02EE .byte 0 +code:02EF .byte 0x33 ; 3 +code:02F0 .byte 0x92 +code:02F1 .byte 0xD5 +code:02F2 .byte 0x30 ; 0 +code:02F3 .byte 0xD5 +code:02F4 .byte 3 +code:02F5 .byte 0x12 +code:02F6 .byte 0xB +code:02F7 .byte 0xE +code:02F8 .byte 0xEC +code:02F9 .byte 0x33 ; 3 +code:02FA .byte 0x40 ; @ +code:02FB .byte 0x10 +code:02FC .byte 0xEF +code:02FD .byte 0x33 ; 3 +code:02FE .byte 0xFF +code:02FF .byte 0xEE +code:0300 .byte 0x33 ; 3 +code:0301 .byte 0xFE +code:0302 .byte 0xED +code:0303 .byte 0x33 ; 3 +code:0304 .byte 0xFD +code:0305 .byte 0xEC +code:0306 .byte 0x33 ; 3 +code:0307 .byte 0xFC +code:0308 .byte 0xD5 +code:0309 .byte 0xF0 +code:030A .byte 0xED +code:030B .byte 0x22 ; " +code:030C .byte 0xE5 +code:030D .byte 0xF0 +code:030E .byte 0x24 ; $ +code:030F .byte 0x7E ; ~ +code:0310 .byte 0xA2 +code:0311 .byte 0xD5 +code:0312 .byte 0x13 +code:0313 .byte 0xCC +code:0314 .byte 0x92 +code:0315 .byte 0xE7 +code:0316 .byte 0xCD +code:0317 .byte 0xCE +code:0318 .byte 0xFF +code:0319 .byte 0x22 ; " +code:031A .byte 0xED +code:031B .byte 0xD2 +code:031C .byte 0xE7 +code:031D .byte 0xCD +code:031E .byte 0x33 ; 3 +code:031F .byte 0xEC +code:0320 .byte 0x33 ; 3 +code:0321 .byte 0x92 +code:0322 .byte 0xD5 +code:0323 .byte 0x24 ; $ +code:0324 .byte 0x81 +code:0325 .byte 0x40 ; @ +code:0326 .byte 6 +code:0327 .byte 0xE4 +code:0328 .byte 0xFF +code:0329 .byte 0xFE +code:032A .byte 0xFD +code:032B .byte 0xFC +code:032C .byte 0x22 ; " +code:032D .byte 0xFC +code:032E .byte 0xE4 +code:032F .byte 0xCF +code:0330 .byte 0xCE +code:0331 .byte 0xCD +code:0332 .byte 0xCC +code:0333 .byte 0x24 ; $ +code:0334 .byte 0xE0 +code:0335 .byte 0x50 ; P +code:0336 .byte 0x11 +code:0337 .byte 0x74 ; t +code:0338 .byte 0xFF +code:0339 .byte 0x80 +code:033A .byte 0xED +code:033B .byte 0xC3 +code:033C .byte 0xCC +code:033D .byte 0x13 +code:033E .byte 0xCC +code:033F .byte 0xCD +code:0340 .byte 0x13 +code:0341 .byte 0xCD +code:0342 .byte 0xCE +code:0343 .byte 0x13 +code:0344 .byte 0xCE +code:0345 .byte 0xCF +code:0346 .byte 0x13 +code:0347 .byte 0xCF +code:0348 .byte 4 +code:0349 .byte 0x70 ; p +code:034A .byte 0xF0 +code:034B .byte 0x30 ; 0 +code:034C .byte 0xD5 +code:034D .byte 0xDE +code:034E .byte 2 +code:034F .byte 0xB +code:0350 .byte 0xE +code:0351 .byte 0xE9 +code:0352 .byte 0xD2 +code:0353 .byte 0xE7 +code:0354 .byte 0xC9 +code:0355 .byte 0x33 ; 3 +code:0356 .byte 0xE8 +code:0357 .byte 0x33 ; 3 +code:0358 .byte 0xF8 +code:0359 .byte 0x92 +code:035A .byte 0xD5 +code:035B .byte 0xED +code:035C .byte 0xD2 +code:035D .byte 0xE7 +code:035E .byte 0xCD +code:035F .byte 0x33 ; 3 +code:0360 .byte 0xEC +code:0361 .byte 0x33 ; 3 +code:0362 .byte 0xFC +code:0363 .byte 0x50 ; P +code:0364 .byte 2 +code:0365 .byte 0xB2 +code:0366 .byte 0xD5 +code:0367 .byte 0x22 ; " +code:0368 .byte 0xEC +code:0369 .byte 0x30 ; 0 +code:036A .byte 0xE7 +code:036B .byte 0x10 +code:036C .byte 0xF +code:036D .byte 0xBF +code:036E .byte 0 +code:036F .byte 0xC +code:0370 .byte 0xE +code:0371 .byte 0xBE +code:0372 .byte 0 +code:0373 .byte 8 +code:0374 .byte 0xD +code:0375 .byte 0xBD +code:0376 .byte 0 +code:0377 .byte 4 +code:0378 .byte 0xB +code:0379 .byte 0xEB +code:037A .byte 0x60 ; ` +code:037B .byte 0x14 +code:037C .byte 0xA2 +code:037D .byte 0xD5 +code:037E .byte 0xEB +code:037F .byte 0x13 +code:0380 .byte 0xFC +code:0381 .byte 0xED +code:0382 .byte 0x92 +code:0383 .byte 0xE7 +code:0384 .byte 0xFD +code:0385 .byte 0x22 ; " +code:0386 .byte 0x74 ; t +code:0387 .byte 0xFF +code:0388 .byte 0xFC +code:0389 .byte 0xFD +code:038A .byte 0xFE +code:038B .byte 0xFF +code:038C .byte 0x22 ; " +code:038D .byte 0xE4 +code:038E .byte 0x80 +code:038F .byte 0xF8 +code:0390 .byte 0xA2 +code:0391 .byte 0xD5 +code:0392 .byte 0x74 ; t +code:0393 .byte 0xFF +code:0394 .byte 0x13 +code:0395 .byte 0xFC +code:0396 .byte 0x7D ; } +code:0397 .byte 0x80 +code:0398 .byte 0xE4 +code:0399 .byte 0x80 +code:039A .byte 0xEF +code:039B .byte 0xE7 +code:039C .byte 9 +code:039D .byte 0xF6 +code:039E .byte 8 +code:039F .byte 0xDF +code:03A0 .byte 0xFA +code:03A1 .byte 0x80 +code:03A2 .byte 0x46 ; F +code:03A3 .byte 0xE7 +code:03A4 .byte 9 +code:03A5 .byte 0xF2 +code:03A6 .byte 8 +code:03A7 .byte 0xDF +code:03A8 .byte 0xFA +code:03A9 .byte 0x80 +code:03AA .byte 0x3E ; > +code:03AB .byte 0x88 +code:03AC .byte 0x82 +code:03AD .byte 0x8C +code:03AE .byte 0x83 +code:03AF .byte 0xE7 +code:03B0 .byte 9 +code:03B1 .byte 0xF0 +code:03B2 .byte 0xA3 +code:03B3 .byte 0xDF +code:03B4 .byte 0xFA +code:03B5 .byte 0x80 +code:03B6 .byte 0x32 ; 2 +code:03B7 .byte 0xE3 +code:03B8 .byte 9 +code:03B9 .byte 0xF6 +code:03BA .byte 8 +code:03BB .byte 0xDF +code:03BC .byte 0xFA +code:03BD .byte 0x80 +code:03BE .byte 0x78 ; x +code:03BF .byte 0xE3 +code:03C0 .byte 9 +code:03C1 .byte 0xF2 +code:03C2 .byte 8 +code:03C3 .byte 0xDF +code:03C4 .byte 0xFA +code:03C5 .byte 0x80 +code:03C6 .byte 0x70 ; p +code:03C7 .byte 0x88 +code:03C8 .byte 0x82 +code:03C9 .byte 0x8C +code:03CA .byte 0x83 +code:03CB .byte 0xE3 +code:03CC .byte 9 +code:03CD .byte 0xF0 +code:03CE .byte 0xA3 +code:03CF .byte 0xDF +code:03D0 .byte 0xFA +code:03D1 .byte 0x80 +code:03D2 .byte 0x64 ; d +code:03D3 .byte 0x89 +code:03D4 .byte 0x82 +code:03D5 .byte 0x8A +code:03D6 .byte 0x83 +code:03D7 .byte 0xE0 +code:03D8 .byte 0xA3 +code:03D9 .byte 0xF6 +code:03DA .byte 8 +code:03DB .byte 0xDF +code:03DC .byte 0xFA +code:03DD .byte 0x80 +code:03DE .byte 0x58 ; X +code:03DF .byte 0x89 +code:03E0 .byte 0x82 +code:03E1 .byte 0x8A +code:03E2 .byte 0x83 +code:03E3 .byte 0xE0 +code:03E4 .byte 0xA3 +code:03E5 .byte 0xF2 +code:03E6 .byte 8 +code:03E7 .byte 0xDF +code:03E8 .byte 0xFA +code:03E9 .byte 0x80 +code:03EA .byte 0x4C ; L +code:03EB .byte 0x80 +code:03EC .byte 0xD2 +code:03ED .byte 0x80 +code:03EE .byte 0xFA +code:03EF .byte 0x80 +code:03F0 .byte 0xC6 +code:03F1 .byte 0x80 +code:03F2 .byte 0xD4 +code:03F3 .byte 0x80 +code:03F4 .byte 0x69 ; i +code:03F5 .byte 0x80 +code:03F6 .byte 0xF2 +code:03F7 .byte 0x80 +code:03F8 .byte 0x33 ; 3 +code:03F9 .byte 0x80 +code:03FA .byte 0x10 +code:03FB .byte 0x80 +code:03FC .byte 0xA6 +code:03FD .byte 0x80 +code:03FE .byte 0xEA +code:03FF .byte 0x80 +code:0400 .byte 2 +code:0401 .byte 4 +code:0402 .byte 0x56 ; V +code:0403 .byte 2 +code:0404 .byte 0xA9 +code:0405 .byte 0xA3 +code:0406 ; [00000003 BYTES: COLLAPSED FUNCTION j_encryption_something_maybe_code_107D. PRESS CTRL-NUMPAD+ TO EXPAND] +code:0409 .byte 0x22 ; " +code:040A .byte 0xFF +code:040B .byte 2 +code:040C .byte 0xA4 +code:040D .byte 0x58 ; X +code:040E +code:040E ; =============== S U B R O U T I N E ======================================= +code:040E +code:040E +code:040E code_40E: ; CODE XREF: initialize_variables_code_1D51+5F↓p +code:040E ; ROM_53A4+8↓p +code:040E movx @DPTR, A +code:040E ; End of function code_40E +code:040E +code:040F +code:040F ; =============== S U B R O U T I N E ======================================= +code:040F +code:040F +code:040F code_40F: ; CODE XREF: ROM_9B7E-4E1F↓p +code:040F mov DPTR, #0xFDB6 +code:0412 movx A, @DPTR +code:0413 mov R6, A +code:0414 inc DPTR +code:0415 movx A, @DPTR +code:0416 ret +code:0416 ; End of function code_40F +code:0416 +code:0417 +code:0417 ; =============== S U B R O U T I N E ======================================= +code:0417 +code:0417 +code:0417 EEPROM_SPI_TRANSACTION: ; CODE XREF: SetupPinsForEEProm+10↓j +code:0417 ; code_1F13+C↓p ... +code:0417 clr P1.1 ; Port 1 +code:0419 mov R7, #6 +code:041B lcall DO_SPI_TRANSACTION_ALT +code:041E setb P1.1 ; Port 1 +code:0420 ret +code:0420 ; End of function EEPROM_SPI_TRANSACTION +code:0420 +code:0420 ; --------------------------------------------------------------------------- +code:0421 .byte 0xFF +code:0422 .byte 0xFF +code:0423 .byte 2 +code:0424 .byte 0xA2 +code:0425 .byte 0x9B +code:0426 +code:0426 ; =============== S U B R O U T I N E ======================================= +code:0426 +code:0426 ; Attributes: thunk +code:0426 +code:0426 code_426: ; CODE XREF: ROM_5FC9↓j +code:0426 ; ROM_A19B↓j +code:0426 ljmp ROM_2FD1 +code:0426 ; End of function code_426 +code:0426 +code:0426 ; --------------------------------------------------------------------------- +code:0429 .byte 0xFF +code:042A .byte 0xFF +code:042B .byte 2 +code:042C .byte 0xA3 +code:042D .byte 0x6F ; o +code:042E +code:042E ; =============== S U B R O U T I N E ======================================= +code:042E +code:042E +code:042E code_42E: ; CODE XREF: ROM_4CA0+10↓p +code:042E ; ROM_4CFB+2↓p ... +code:042E +code:042E ; FUNCTION CHUNK AT ROM:4CF3 SIZE 00000008 BYTES +code:042E +code:042E clr P2.2 ; Port 2 +code:0430 ljmp EPD_SPI_TRANSACTION +code:0430 ; End of function code_42E +code:0430 +code:0430 ; --------------------------------------------------------------------------- +code:0433 .byte 2 +code:0434 .byte 0xA4 +code:0435 .byte 0xDA +code:0436 +code:0436 ; =============== S U B R O U T I N E ======================================= +code:0436 +code:0436 +code:0436 eeprom_spi_transaction_code_436: ; CODE XREF: pretty_early_init_code_1DFD+34↓j +code:0436 ; Something_eeprom_ROM_5FE9+6↓p +code:0436 clr P1.1 ; Port 1 +code:0438 mov R7, #0xB9 +code:043A lcall DO_SPI_TRANSACTION_ALT +code:043D setb P1.1 ; Port 1 +code:043F orl FSR_BA, #2 ; P1.1 as input +code:0442 orl FSR_BD, #2 ; P1.1 pullup +code:0445 ret +code:0445 ; End of function eeprom_spi_transaction_code_436 +code:0445 +code:0446 +code:0446 ; =============== S U B R O U T I N E ======================================= +code:0446 +code:0446 +code:0446 save_4_bytes_R4_R7_to_0xF54E: ; CODE XREF: ROM_2916+1BC↓p +code:0446 mov DPTR, #0xF54E +code:0449 ljmp save_4_bytes_R4_R7 +code:0449 ; End of function save_4_bytes_R4_R7_to_0xF54E +code:0449 +code:044C +code:044C ; =============== S U B R O U T I N E ======================================= +code:044C +code:044C +code:044C code_44C: ; CODE XREF: ROM_9CCA-7D5D↓p +code:044C ; ROM_9CCA-7D55↓p ... +code:044C lcall DO_SPI_TRANSACTION_ALT +code:044F mov DPTR, #0xF870 +code:0452 ret +code:0452 ; End of function code_44C +code:0452 +code:0452 ; --------------------------------------------------------------------------- +code:0453 .byte 2 +code:0454 .byte 0xA5 +code:0455 .byte 0x26 ; & +code:0456 +code:0456 ; =============== S U B R O U T I N E ======================================= +code:0456 +code:0456 +code:0456 start_0: ; CODE XREF: start↑j +code:0456 +code:0456 ; FUNCTION CHUNK AT code:1E34 SIZE 0000001D BYTES +code:0456 +code:0456 mov R0, #0x7F +code:0458 clr A +code:0459 +code:0459 code_459: ; CODE XREF: start_0+4↓j +code:0459 mov @R0, A +code:045A djnz R0, code_459 +code:045C mov DPTR, #0xE000 +code:045F mov R7, #0xE0 +code:0461 mov R6, #0x20 ; ' ' +code:0463 clr A +code:0464 +code:0464 code_464: ; CODE XREF: start_0+10↓j +code:0464 ; start_0+12↓j +code:0464 movx @DPTR, A +code:0465 inc DPTR +code:0466 djnz R7, code_464 +code:0468 djnz R6, code_464 +code:046A mov SP, #RAM_20 ; Stack Pointer +code:046D ljmp code_4AB +code:0470 ; --------------------------------------------------------------------------- +code:0470 +code:0470 code_470: ; CODE XREF: start_0+5C↓j +code:0470 ljmp code_1E34 +code:0473 ; --------------------------------------------------------------------------- +code:0473 +code:0473 code_473: ; CODE XREF: start_0+73↓j +code:0473 clr A +code:0474 movc A, @A+DPTR +code:0475 inc DPTR +code:0476 mov R0, A +code:0477 +code:0477 code_477: ; CODE XREF: start_0+2B↓j +code:0477 clr A +code:0478 movc A, @A+DPTR +code:0479 inc DPTR +code:047A jc code_47F +code:047C mov @R0, A +code:047D sjmp code_480 +code:047F ; --------------------------------------------------------------------------- +code:047F +code:047F code_47F: ; CODE XREF: start_0+24↑j +code:047F movx @R0, A +code:0480 +code:0480 code_480: ; CODE XREF: start_0+27↑j +code:0480 inc R0 +code:0481 djnz R7, code_477 +code:0483 sjmp code_4AE +code:0485 ; --------------------------------------------------------------------------- +code:0485 +code:0485 code_485: ; CODE XREF: start_0+49↓j +code:0485 ; start_0+75↓j +code:0485 clr A +code:0486 movc A, @A+DPTR +code:0487 inc DPTR +code:0488 mov R0, A +code:0489 anl A, #7 +code:048B add A, #0xC +code:048D xch A, R0 +code:048E clr C +code:048F rlc A +code:0490 swap A +code:0491 anl A, #0xF +code:0493 orl A, #0x20 +code:0495 xch A, R0 +code:0496 movc A, @A+PC +code:0497 jc code_49D +code:0499 cpl A +code:049A anl A, @R0 +code:049B sjmp code_49E +code:049D ; --------------------------------------------------------------------------- +code:049D +code:049D code_49D: ; CODE XREF: start_0+41↑j +code:049D orl A, @R0 +code:049E +code:049E code_49E: ; CODE XREF: start_0+45↑j +code:049E mov @R0, A +code:049F djnz R7, code_485 +code:04A1 sjmp code_4AE +code:04A1 ; --------------------------------------------------------------------------- +code:04A3 .byte 1 +code:04A4 .byte 2 +code:04A5 .byte 4 +code:04A6 .byte 8 +code:04A7 .byte 0x10 +code:04A8 .byte 0x20 +code:04A9 .byte 0x40 ; @ +code:04AA .byte 0x80 +code:04AB ; --------------------------------------------------------------------------- +code:04AB +code:04AB code_4AB: ; CODE XREF: start_0+17↑j +code:04AB mov DPTR, #0xF90 +code:04AE +code:04AE code_4AE: ; CODE XREF: start_0+2D↑j +code:04AE ; start_0+4B↑j ... +code:04AE clr A +code:04AF mov R6, #1 +code:04B1 movc A, @A+DPTR +code:04B2 jz code_470 +code:04B4 inc DPTR +code:04B5 mov R7, A +code:04B6 anl A, #0x3F +code:04B8 jnb ACC5, code_4C4 ; Accumulator +code:04BB anl A, #0x1F +code:04BD mov R6, A +code:04BE clr A +code:04BF movc A, @A+DPTR +code:04C0 inc DPTR +code:04C1 jz code_4C4 +code:04C3 inc R6 +code:04C4 +code:04C4 code_4C4: ; CODE XREF: start_0+62↑j +code:04C4 ; start_0+6B↑j +code:04C4 xch A, R7 +code:04C5 anl A, #0xC0 +code:04C7 add A, ACC ; Accumulator +code:04C9 jz code_473 +code:04CB jc code_485 +code:04CD clr A +code:04CE movc A, @A+DPTR +code:04CF inc DPTR +code:04D0 mov R2, A +code:04D1 clr A +code:04D2 movc A, @A+DPTR +code:04D3 inc DPTR +code:04D4 mov R0, A +code:04D5 +code:04D5 code_4D5: ; CODE XREF: start_0+94↓j +code:04D5 ; start_0+96↓j +code:04D5 clr A +code:04D6 movc A, @A+DPTR +code:04D7 inc DPTR +code:04D8 xch A, R0 +code:04D9 xch A, DP0L ; Data Pointer Low Byte +code:04DB xch A, R0 +code:04DC xch A, R2 +code:04DD xch A, DP0H ; Data Pointer High Byte +code:04DF xch A, R2 +code:04E0 movx @DPTR, A +code:04E1 inc DPTR +code:04E2 xch A, R0 +code:04E3 xch A, DP0L ; Data Pointer Low Byte +code:04E5 xch A, R0 +code:04E6 xch A, R2 +code:04E7 xch A, DP0H ; Data Pointer High Byte +code:04E9 xch A, R2 +code:04EA djnz R7, code_4D5 +code:04EC djnz R6, code_4D5 +code:04EE sjmp code_4AE +code:04EE ; End of function start_0 +code:04EE +code:04EE ; --------------------------------------------------------------------------- +code:04F0 .byte 0 +code:04F1 .byte 0 +code:04F2 .byte 0 +code:04F3 .byte 0 +code:04F4 .byte 0 +code:04F5 .byte 0 +code:04F6 .byte 0 +code:04F7 .byte 0 +code:04F8 .byte 0 +code:04F9 .byte 0 +code:04FA .byte 0 +code:04FB .byte 0x49 ; I +code:04FC .byte 1 +code:04FD .byte 0xFF +code:04FE .byte 0 +code:04FF .byte 0 +code:0500 .byte 0 +code:0501 .byte 0 +code:0502 .byte 0 +code:0503 .byte 0 +code:0504 .byte 0 +code:0505 .byte 0 +code:0506 .byte 0 +code:0507 .byte 0 +code:0508 .byte 0x49 ; I +code:0509 .byte 0 +code:050A .byte 0 +code:050B .byte 0 +code:050C .byte 0 +code:050D .byte 0 +code:050E .byte 0 +code:050F .byte 0 +code:0510 .byte 0 +code:0511 .byte 0 +code:0512 .byte 0 +code:0513 .byte 0 +code:0514 .byte 0 +code:0515 .byte 0 +code:0516 .byte 0x56 ; V +code:0517 .byte 0 +code:0518 .byte 0 +code:0519 .byte 0 +code:051A .byte 0 +code:051B .byte 0 +code:051C .byte 0 +code:051D .byte 0 +code:051E .byte 0 +code:051F .byte 0 +code:0520 .byte 0 +code:0521 .byte 0 +code:0522 .byte 0 +code:0523 +code:0523 ; =============== S U B R O U T I N E ======================================= +code:0523 +code:0523 +code:0523 code_523: ; CODE XREF: ROM_436B-13DE↓p +code:0523 ; ROM_436B-100F↓p +code:0523 clr A +code:0523 ; End of function code_523 +code:0523 +code:0524 +code:0524 ; =============== S U B R O U T I N E ======================================= +code:0524 +code:0524 +code:0524 code_524: ; CODE XREF: ROM_436B+32A↓p +code:0524 mov DPTR, #0xF541 +code:0527 movx @DPTR, A +code:0528 inc DPTR +code:0529 movx @DPTR, A +code:052A inc DPTR +code:052B movx @DPTR, A +code:052C mov R7, A +code:052C ; End of function code_524 +code:052C +code:052D +code:052D ; =============== S U B R O U T I N E ======================================= +code:052D +code:052D +code:052D code_52D: ; CODE XREF: code_1E6A+62↓p +code:052D ; ROM_816B+25↓p +code:052D mov DPTR, #0xF552 +code:0530 mov A, R7 +code:0531 movx @DPTR, A +code:0532 ret +code:0532 ; End of function code_52D +code:0532 +code:0533 +code:0533 ; =============== S U B R O U T I N E ======================================= +code:0533 +code:0533 +code:0533 code_533: ; CODE XREF: ROM_508B+67↓p +code:0533 mov DPTR, #0xF548 +code:0536 ljmp save_4_bytes_R4_R7 +code:0536 ; End of function code_533 +code:0536 +code:0536 ; --------------------------------------------------------------------------- +code:0539 .byte 2 +code:053A .byte 0x5F ; _ +code:053B .byte 0xC2 +code:053C .byte 0x21 ; ! +code:053D .byte 0x87 +code:053E .byte 0x12 +code:053F .byte 0x34 ; 4 +code:0540 .byte 0xFF +code:0541 .byte 0 +code:0542 .byte 1 +code:0543 .byte 1 +code:0544 ; --------------------------------------------------------------------------- +code:0544 ; START OF FUNCTION CHUNK FOR code_54B +code:0544 +code:0544 code_544: ; CODE XREF: code_54B+7↓j +code:0544 ; code_54B+19↓j ... +code:0544 ljmp code_786 +code:0544 ; END OF FUNCTION CHUNK FOR code_54B +code:0547 +code:0547 ; =============== S U B R O U T I N E ======================================= +code:0547 +code:0547 +code:0547 code_547: ; CODE XREF: ROM_9A40+EB↓p +code:0547 mov A, R0 +code:0548 xrl A, #0x80 +code:054A mov R0, A +code:054A ; End of function code_547 +code:054A +code:054B +code:054B ; =============== S U B R O U T I N E ======================================= +code:054B +code:054B +code:054B code_54B: ; CODE XREF: ROM_9A40+C5↓p +code:054B +code:054B ; FUNCTION CHUNK AT code:0544 SIZE 00000003 BYTES +code:054B ; FUNCTION CHUNK AT code:0768 SIZE 00000033 BYTES +code:054B +code:054B mov A, R1 +code:054C rlc A +code:054D mov A, R0 +code:054E rlc A +code:054F jz code_562 +code:0551 inc A +code:0552 jz code_544 +code:0554 mov A, R5 +code:0555 rlc A +code:0556 mov A, R4 +code:0557 rlc A +code:0558 jnz code_563 +code:055A mov A, R0 +code:055B mov R4, A +code:055C mov A, R1 +code:055D mov R5, A +code:055E mov A, R2 +code:055F mov R6, A +code:0560 mov A, R3 +code:0561 mov R7, A +code:0562 +code:0562 code_562: ; CODE XREF: code_54B+4↑j +code:0562 ret +code:0563 ; --------------------------------------------------------------------------- +code:0563 +code:0563 code_563: ; CODE XREF: code_54B+D↑j +code:0563 inc A +code:0564 jz code_544 +code:0566 setb C +code:0567 mov A, R3 +code:0568 subb A, R7 +code:0569 mov A, R2 +code:056A subb A, R6 +code:056B mov A, R1 +code:056C subb A, R5 +code:056D mov A, R0 +code:056E clr ACC7 ; Accumulator +code:0570 mov B, R4 ; B Register +code:0572 clr B.7 ; B Register +code:0574 subb A, B ; B Register +code:0576 jc code_584 +code:0578 mov A, R0 +code:0579 xch A, R4 +code:057A mov R0, A +code:057B mov A, R1 +code:057C xch A, R5 +code:057D mov R1, A +code:057E mov A, R2 +code:057F xch A, R6 +code:0580 mov R2, A +code:0581 mov A, R3 +code:0582 xch A, R7 +code:0583 mov R3, A +code:0584 +code:0584 code_584: ; CODE XREF: code_54B+2B↑j +code:0584 lcall code_751 +code:0587 mov B, PSW ; Program Status Word +code:058A anl A, R0 +code:058B inc A +code:058C jnz code_591 +code:058E jb PSW.5, code_544 ; Program Status Word +code:0591 +code:0591 code_591: ; CODE XREF: code_54B+41↑j +code:0591 mov A, R0 +code:0592 inc A +code:0593 jnz code_59C +code:0595 jnc code_599 +code:0597 cpl PSW.5 ; Program Status Word +code:0599 +code:0599 code_599: ; CODE XREF: code_54B+4A↑j +code:0599 ; code_54B+55↓j +code:0599 ljmp code_790 +code:059C ; --------------------------------------------------------------------------- +code:059C +code:059C code_59C: ; CODE XREF: code_54B+48↑j +code:059C mov PSW.5, C ; Program Status Word +code:059E mov A, R4 +code:059F inc A +code:05A0 jz code_599 +code:05A2 clr A +code:05A3 xch A, R4 +code:05A4 push ACC ; Accumulator +code:05A6 clr C +code:05A7 subb A, R0 +code:05A8 mov R0, A +code:05A9 jz code_5E6 +code:05AB subb A, #0x18 +code:05AD jz code_5B7 +code:05AF jc code_5BE +code:05B1 pop ACC ; Accumulator +code:05B3 mov R3, A +code:05B4 ljmp code_768 +code:05B7 ; --------------------------------------------------------------------------- +code:05B7 +code:05B7 code_5B7: ; CODE XREF: code_54B+62↑j +code:05B7 clr A +code:05B8 mov R3, A +code:05B9 mov R2, A +code:05BA xch A, R1 +code:05BB mov R4, A +code:05BC sjmp code_5E6 +code:05BE ; --------------------------------------------------------------------------- +code:05BE +code:05BE code_5BE: ; CODE XREF: code_54B+64↑j +code:05BE mov A, R0 +code:05BF jnb ACC4, code_5C8 ; Accumulator +code:05C2 clr A +code:05C3 xch A, R1 +code:05C4 mov R3, A +code:05C5 clr A +code:05C6 xch A, R2 +code:05C7 mov R4, A +code:05C8 +code:05C8 code_5C8: ; CODE XREF: code_54B+74↑j +code:05C8 mov A, R0 +code:05C9 jnb ACC3, code_5D1 ; Accumulator +code:05CC clr A +code:05CD xch A, R1 +code:05CE xch A, R2 +code:05CF xch A, R3 +code:05D0 mov R4, A +code:05D1 +code:05D1 code_5D1: ; CODE XREF: code_54B+7E↑j +code:05D1 mov A, R0 +code:05D2 anl A, #7 +code:05D4 jz code_5E6 +code:05D6 mov R0, A +code:05D7 +code:05D7 code_5D7: ; CODE XREF: code_54B+99↓j +code:05D7 clr C +code:05D8 mov A, R1 +code:05D9 rrc A +code:05DA mov R1, A +code:05DB mov A, R2 +code:05DC rrc A +code:05DD mov R2, A +code:05DE mov A, R3 +code:05DF rrc A +code:05E0 mov R3, A +code:05E1 mov A, R4 +code:05E2 rrc A +code:05E3 mov R4, A +code:05E4 djnz R0, code_5D7 +code:05E6 +code:05E6 code_5E6: ; CODE XREF: code_54B+5E↑j +code:05E6 ; code_54B+71↑j ... +code:05E6 jnb B.5, code_618 ; B Register +code:05E9 clr C +code:05EA clr A +code:05EB subb A, R4 +code:05EC mov R4, A +code:05ED mov A, R7 +code:05EE subb A, R3 +code:05EF mov R7, A +code:05F0 mov A, R6 +code:05F1 subb A, R2 +code:05F2 mov R6, A +code:05F3 mov A, R5 +code:05F4 subb A, R1 +code:05F5 mov R5, A +code:05F6 pop ACC ; Accumulator +code:05F8 mov R3, A +code:05F9 mov A, R7 +code:05FA orl A, R6 +code:05FB orl A, R5 +code:05FC orl A, R4 +code:05FD jnz code_611 +code:05FF ret +code:0600 ; --------------------------------------------------------------------------- +code:0600 +code:0600 code_600: ; CODE XREF: code_54B+C7↓j +code:0600 djnz R3, code_605 +code:0602 ljmp code_78D +code:0605 ; --------------------------------------------------------------------------- +code:0605 +code:0605 code_605: ; CODE XREF: code_54B:code_600↑j +code:0605 mov A, R4 +code:0606 add A, R4 +code:0607 mov R4, A +code:0608 mov A, R7 +code:0609 rlc A +code:060A mov R7, A +code:060B mov A, R6 +code:060C rlc A +code:060D mov R6, A +code:060E mov A, R5 +code:060F rlc A +code:0610 mov R5, A +code:0611 +code:0611 code_611: ; CODE XREF: code_54B+B2↑j +code:0611 mov A, R5 +code:0612 jnb ACC7, code_600 ; Accumulator +code:0615 ljmp code_768 +code:0618 ; --------------------------------------------------------------------------- +code:0618 +code:0618 code_618: ; CODE XREF: code_54B:code_5E6↑j +code:0618 mov A, R7 +code:0619 add A, R3 +code:061A mov R7, A +code:061B mov A, R6 +code:061C addc A, R2 +code:061D mov R6, A +code:061E mov A, R5 +code:061F addc A, R1 +code:0620 mov R5, A +code:0621 pop ACC ; Accumulator +code:0623 mov R3, A +code:0624 jnc code_639 +code:0626 inc R3 +code:0627 cjne R3, #0, code_62D +code:062A ljmp code_790 +code:062D ; --------------------------------------------------------------------------- +code:062D +code:062D code_62D: ; CODE XREF: code_54B+DC↑j +code:062D mov A, R5 +code:062E rrc A +code:062F mov R5, A +code:0630 mov A, R6 +code:0631 rrc A +code:0632 mov R6, A +code:0633 mov A, R7 +code:0634 rrc A +code:0635 mov R7, A +code:0636 mov A, R4 +code:0637 rrc A +code:0638 mov R4, A +code:0639 +code:0639 code_639: ; CODE XREF: code_54B+D9↑j +code:0639 ljmp code_768 +code:0639 ; End of function code_54B +code:0639 +code:063C ; --------------------------------------------------------------------------- +code:063C ; START OF FUNCTION CHUNK FOR code_63F +code:063C +code:063C code_63C: ; CODE XREF: code_63F+20↓j +code:063C ; code_63F+31↓j +code:063C ljmp code_790 +code:063C ; END OF FUNCTION CHUNK FOR code_63F +code:063F +code:063F ; =============== S U B R O U T I N E ======================================= +code:063F +code:063F +code:063F code_63F: ; CODE XREF: ROM_9A40+96↓p +code:063F ; ROM_9A40+BB↓p ... +code:063F +code:063F ; FUNCTION CHUNK AT code:063C SIZE 00000003 BYTES +code:063F ; FUNCTION CHUNK AT code:0768 SIZE 00000033 BYTES +code:063F +code:063F mov A, R4 +code:0640 anl A, R5 +code:0641 inc A +code:0642 jz code_649 +code:0644 mov A, R0 +code:0645 anl A, R1 +code:0646 inc A +code:0647 jnz code_64C +code:0649 +code:0649 code_649: ; CODE XREF: code_63F+3↑j +code:0649 ; code_63F+12↓j ... +code:0649 ljmp code_786 +code:064C ; --------------------------------------------------------------------------- +code:064C +code:064C code_64C: ; CODE XREF: code_63F+8↑j +code:064C lcall code_751 +code:064F anl A, R0 +code:0650 inc A +code:0651 jz code_649 +code:0653 mov A, R4 +code:0654 orl A, R0 +code:0655 jz code_649 +code:0657 mov A, R4 +code:0658 jnz code_65E +code:065A mov R5, A +code:065B mov R6, A +code:065C mov R7, A +code:065D ret +code:065E ; --------------------------------------------------------------------------- +code:065E +code:065E code_65E: ; CODE XREF: code_63F+19↑j +code:065E xch A, R0 +code:065F jz code_63C +code:0661 add A, #0x81 +code:0663 xch A, R0 +code:0664 jnc code_66F +code:0666 clr C +code:0667 subb A, R0 +code:0668 jz code_66C +code:066A jnc code_672 +code:066C +code:066C code_66C: ; CODE XREF: code_63F+29↑j +code:066C ; code_63F+71↓j +code:066C ljmp code_78D +code:066F ; --------------------------------------------------------------------------- +code:066F +code:066F code_66F: ; CODE XREF: code_63F+25↑j +code:066F subb A, R0 +code:0670 jnc code_63C +code:0672 +code:0672 code_672: ; CODE XREF: code_63F+2B↑j +code:0672 mov DP0L, A ; Data Pointer Low Byte +code:0674 mov A, R1 +code:0675 add A, R1 +code:0676 orl A, R3 +code:0677 orl A, R2 +code:0678 jnz code_67F +code:067A mov R3, DP0L ; Data Pointer Low Byte +code:067C ljmp code_77C +code:067F ; --------------------------------------------------------------------------- +code:067F +code:067F code_67F: ; CODE XREF: code_63F+39↑j +code:067F mov B, #0 ; B Register +code:0682 mov R4, #0x1A +code:0684 mov R0, #0x80 +code:0686 +code:0686 code_686: ; CODE XREF: code_63F+9B↓j +code:0686 clr C +code:0687 mov A, R7 +code:0688 subb A, R3 +code:0689 mov A, R6 +code:068A subb A, R2 +code:068B mov A, R5 +code:068C subb A, R1 +code:068D jc code_69C +code:068F +code:068F code_68F: ; CODE XREF: code_63F+96↓j +code:068F clr C +code:0690 mov A, R7 +code:0691 subb A, R3 +code:0692 mov R7, A +code:0693 mov A, R6 +code:0694 subb A, R2 +code:0695 mov R6, A +code:0696 mov A, R5 +code:0697 subb A, R1 +code:0698 mov R5, A +code:0699 mov A, R0 +code:069A orl B, A ; B Register +code:069C +code:069C code_69C: ; CODE XREF: code_63F+4E↑j +code:069C ; code_63F+98↓j +code:069C djnz R4, code_6C1 +code:069E mov R4, B ; B Register +code:06A0 pop ACC ; Accumulator +code:06A2 mov R7, A +code:06A3 pop ACC ; Accumulator +code:06A5 mov R6, A +code:06A6 pop ACC ; Accumulator +code:06A8 mov R5, A +code:06A9 mov R3, DP0L ; Data Pointer Low Byte +code:06AB jb ACC7, code_6BE ; Accumulator +code:06AE dec R3 +code:06AF mov A, R3 +code:06B0 jz code_66C +code:06B2 mov A, R4 +code:06B3 add A, R4 +code:06B4 mov R4, A +code:06B5 mov A, R7 +code:06B6 rlc A +code:06B7 mov R7, A +code:06B8 mov A, R6 +code:06B9 rlc A +code:06BA mov R6, A +code:06BB mov A, R5 +code:06BC rlc A +code:06BD mov R5, A +code:06BE +code:06BE code_6BE: ; CODE XREF: code_63F+6C↑j +code:06BE ljmp code_768 +code:06C1 ; --------------------------------------------------------------------------- +code:06C1 +code:06C1 code_6C1: ; CODE XREF: code_63F:code_69C↑j +code:06C1 mov A, R0 +code:06C2 rr A +code:06C3 mov R0, A +code:06C4 jnb ACC7, code_6CC ; Accumulator +code:06C7 push B ; B Register +code:06C9 mov B, #0 ; B Register +code:06CC +code:06CC code_6CC: ; CODE XREF: code_63F+85↑j +code:06CC mov A, R7 +code:06CD add A, R7 +code:06CE mov R7, A +code:06CF mov A, R6 +code:06D0 rlc A +code:06D1 mov R6, A +code:06D2 mov A, R5 +code:06D3 rlc A +code:06D4 mov R5, A +code:06D5 jc code_68F +code:06D7 jnb ACC7, code_69C ; Accumulator +code:06DA sjmp code_686 +code:06DA ; End of function code_63F +code:06DA +code:06DA ; --------------------------------------------------------------------------- +code:06DC .byte 0x75 ; u +code:06DD .byte 0xF0 +code:06DE .byte 0x20 +code:06DF .byte 0x80 +code:06E0 .byte 0xE +code:06E1 +code:06E1 ; =============== S U B R O U T I N E ======================================= +code:06E1 +code:06E1 +code:06E1 code_6E1: ; CODE XREF: ROM_9A40+8C↓p +code:06E1 ; ROM_9B47+3↓p +code:06E1 mov B, #0x10 ; B Register +code:06E4 sjmp code_6EB +code:06E4 ; --------------------------------------------------------------------------- +code:06E6 .byte 0x75 ; u +code:06E7 .byte 0xF0 +code:06E8 .byte 8 +code:06E9 .byte 0x7D ; } +code:06EA .byte 0 +code:06EB ; --------------------------------------------------------------------------- +code:06EB +code:06EB code_6EB: ; CODE XREF: code_6E1+3↑j +code:06EB mov R6, #0 +code:06ED mov R7, #0 +code:06EF rlc A +code:06F0 mov PSW.5, C ; Program Status Word +code:06F2 jnb PSW.5, code_6F8 ; Program Status Word +code:06F5 lcall code_B0E +code:06F8 +code:06F8 code_6F8: ; CODE XREF: code_6E1+11↑j +code:06F8 ; code_6E1+27↓j +code:06F8 mov A, R4 +code:06F9 rlc A +code:06FA jc code_70C +code:06FC mov A, R7 +code:06FD rlc A +code:06FE mov R7, A +code:06FF mov A, R6 +code:0700 rlc A +code:0701 mov R6, A +code:0702 mov A, R5 +code:0703 rlc A +code:0704 mov R5, A +code:0705 mov A, R4 +code:0706 rlc A +code:0707 mov R4, A +code:0708 djnz B, code_6F8 ; B Register +code:070B ret +code:070C ; --------------------------------------------------------------------------- +code:070C +code:070C code_70C: ; CODE XREF: code_6E1+19↑j +code:070C mov A, B ; B Register +code:070E add A, #0x7E ; '~' +code:0710 mov C, PSW.5 ; Program Status Word +code:0712 rrc A +code:0713 xch A, R4 +code:0714 mov ACC7, C ; Accumulator +code:0716 xch A, R5 +code:0717 xch A, R6 +code:0718 mov R7, A +code:0719 ret +code:0719 ; End of function code_6E1 +code:0719 +code:071A +code:071A ; =============== S U B R O U T I N E ======================================= +code:071A +code:071A +code:071A code_71A: ; CODE XREF: ROM_9A40:ROM_9B2E↓p +code:071A mov A, R5 +code:071B setb ACC7 ; Accumulator +code:071D xch A, R5 +code:071E rlc A +code:071F mov A, R4 +code:0720 rlc A +code:0721 mov PSW.5, C ; Program Status Word +code:0723 add A, #0x81 +code:0725 jc code_72D +code:0727 clr A +code:0728 +code:0728 code_728: ; CODE XREF: code_71A+1F↓j +code:0728 mov R7, A +code:0729 mov R6, A +code:072A mov R5, A +code:072B mov R4, A +code:072C +code:072C code_72C: ; CODE XREF: code_71A+31↓j +code:072C ret +code:072D ; --------------------------------------------------------------------------- +code:072D +code:072D code_72D: ; CODE XREF: code_71A+B↑j +code:072D mov R4, A +code:072E clr A +code:072F xch A, R7 +code:0730 xch A, R6 +code:0731 xch A, R5 +code:0732 xch A, R4 +code:0733 add A, #0xE0 +code:0735 jnc code_748 +code:0737 mov A, #0xFF +code:0739 sjmp code_728 +code:073B ; --------------------------------------------------------------------------- +code:073B +code:073B code_73B: ; CODE XREF: code_71A+2F↓j +code:073B clr C +code:073C xch A, R4 +code:073D rrc A +code:073E xch A, R4 +code:073F xch A, R5 +code:0740 rrc A +code:0741 xch A, R5 +code:0742 xch A, R6 +code:0743 rrc A +code:0744 xch A, R6 +code:0745 xch A, R7 +code:0746 rrc A +code:0747 xch A, R7 +code:0748 +code:0748 code_748: ; CODE XREF: code_71A+1B↑j +code:0748 inc A +code:0749 jnz code_73B +code:074B jnb PSW.5, code_72C ; Program Status Word +code:074E ljmp code_B0E +code:074E ; End of function code_71A +code:074E +code:0751 +code:0751 ; =============== S U B R O U T I N E ======================================= +code:0751 +code:0751 +code:0751 code_751: ; CODE XREF: code_54B:code_584↑p +code:0751 ; code_63F:code_64C↑p +code:0751 mov A, R1 +code:0752 setb ACC7 ; Accumulator +code:0754 xch A, R1 +code:0755 rlc A +code:0756 mov A, R0 +code:0757 rlc A +code:0758 mov R0, A +code:0759 mov PSW.5, C ; Program Status Word +code:075B mov A, R5 +code:075C setb ACC7 ; Accumulator +code:075E xch A, R5 +code:075F rlc A +code:0760 mov A, R4 +code:0761 rlc A +code:0762 mov R4, A +code:0763 jnc code_767 +code:0765 cpl PSW.5 ; Program Status Word +code:0767 +code:0767 code_767: ; CODE XREF: code_751+12↑j +code:0767 ret +code:0767 ; End of function code_751 +code:0767 +code:0768 ; --------------------------------------------------------------------------- +code:0768 ; START OF FUNCTION CHUNK FOR code_54B +code:0768 ; ADDITIONAL PARENT FUNCTION code_63F +code:0768 +code:0768 code_768: ; CODE XREF: code_54B+69↑j +code:0768 ; code_54B+CA↑j ... +code:0768 mov A, R4 +code:0769 jnb ACC7, code_77C ; Accumulator +code:076C inc R7 +code:076D cjne R7, #0, code_77C +code:0770 inc R6 +code:0771 cjne R6, #0, code_77C +code:0774 inc R5 +code:0775 cjne R5, #0, code_77C +code:0778 inc R3 +code:0779 mov A, R3 +code:077A jz code_790 +code:077C +code:077C code_77C: ; CODE XREF: code_63F+3D↑j +code:077C ; code_54B+21E↑j ... +code:077C mov C, PSW.5 ; Program Status Word +code:077E mov A, R3 +code:077F rrc A +code:0780 mov R4, A +code:0781 mov A, R5 +code:0782 mov ACC7, C ; Accumulator +code:0784 mov R5, A +code:0785 ret +code:0786 ; --------------------------------------------------------------------------- +code:0786 +code:0786 code_786: ; CODE XREF: code_54B:code_544↑j +code:0786 ; code_63F:code_649↑j +code:0786 mov A, #0xFF +code:0788 +code:0788 code_788: ; CODE XREF: code_54B+243↓j +code:0788 mov R4, A +code:0789 mov R5, A +code:078A +code:078A code_78A: ; CODE XREF: code_54B+24E↓j +code:078A mov R6, A +code:078B mov R7, A +code:078C ret +code:078D ; --------------------------------------------------------------------------- +code:078D +code:078D code_78D: ; CODE XREF: code_54B+B7↑j +code:078D ; code_63F:code_66C↑j +code:078D clr A +code:078E sjmp code_788 +code:0790 ; --------------------------------------------------------------------------- +code:0790 +code:0790 code_790: ; CODE XREF: code_54B:code_599↑j +code:0790 ; code_54B+DF↑j ... +code:0790 mov C, PSW.5 ; Program Status Word +code:0792 mov A, #0xFF +code:0794 rrc A +code:0795 mov R4, A +code:0796 mov R5, #0x80 +code:0798 clr A +code:0799 sjmp code_78A +code:0799 ; END OF FUNCTION CHUNK FOR code_54B +code:0799 ; --------------------------------------------------------------------------- +code:079B .byte 0xE7 +code:079C .byte 9 +code:079D .byte 0xF6 +code:079E .byte 8 +code:079F .byte 0xDF +code:07A0 .byte 0xFA +code:07A1 .byte 0x80 +code:07A2 .byte 0x46 ; F +code:07A3 .byte 0xE7 +code:07A4 .byte 9 +code:07A5 .byte 0xF2 +code:07A6 .byte 8 +code:07A7 .byte 0xDF +code:07A8 .byte 0xFA +code:07A9 .byte 0x80 +code:07AA .byte 0x3E ; > +code:07AB .byte 0x88 +code:07AC .byte 0x82 +code:07AD .byte 0x8C +code:07AE .byte 0x83 +code:07AF .byte 0xE7 +code:07B0 .byte 9 +code:07B1 .byte 0xF0 +code:07B2 .byte 0xA3 +code:07B3 .byte 0xDF +code:07B4 .byte 0xFA +code:07B5 .byte 0x80 +code:07B6 .byte 0x32 ; 2 +code:07B7 .byte 0xE3 +code:07B8 .byte 9 +code:07B9 .byte 0xF6 +code:07BA .byte 8 +code:07BB .byte 0xDF +code:07BC .byte 0xFA +code:07BD .byte 0x80 +code:07BE .byte 0x78 ; x +code:07BF .byte 0xE3 +code:07C0 .byte 9 +code:07C1 .byte 0xF2 +code:07C2 .byte 8 +code:07C3 .byte 0xDF +code:07C4 .byte 0xFA +code:07C5 .byte 0x80 +code:07C6 .byte 0x70 ; p +code:07C7 .byte 0x88 +code:07C8 .byte 0x82 +code:07C9 .byte 0x8C +code:07CA .byte 0x83 +code:07CB .byte 0xE3 +code:07CC .byte 9 +code:07CD .byte 0xF0 +code:07CE .byte 0xA3 +code:07CF .byte 0xDF +code:07D0 .byte 0xFA +code:07D1 .byte 0x80 +code:07D2 .byte 0x64 ; d +code:07D3 .byte 0x89 +code:07D4 .byte 0x82 +code:07D5 .byte 0x8A +code:07D6 .byte 0x83 +code:07D7 .byte 0xE0 +code:07D8 .byte 0xA3 +code:07D9 .byte 0xF6 +code:07DA .byte 8 +code:07DB .byte 0xDF +code:07DC .byte 0xFA +code:07DD .byte 0x80 +code:07DE .byte 0x58 ; X +code:07DF .byte 0x89 +code:07E0 .byte 0x82 +code:07E1 .byte 0x8A +code:07E2 .byte 0x83 +code:07E3 .byte 0xE0 +code:07E4 .byte 0xA3 +code:07E5 .byte 0xF2 +code:07E6 .byte 8 +code:07E7 .byte 0xDF +code:07E8 .byte 0xFA +code:07E9 .byte 0x80 +code:07EA .byte 0x4C ; L +code:07EB .byte 0x80 +code:07EC .byte 0xD2 +code:07ED .byte 0x80 +code:07EE .byte 0xFA +code:07EF .byte 0x80 +code:07F0 .byte 0xC6 +code:07F1 .byte 0x80 +code:07F2 .byte 0xD4 +code:07F3 .byte 0x80 +code:07F4 .byte 0x69 ; i +code:07F5 .byte 0x80 +code:07F6 .byte 0xF2 +code:07F7 .byte 0x80 +code:07F8 .byte 0x33 ; 3 +code:07F9 .byte 0x80 +code:07FA .byte 0x10 +code:07FB .byte 0x80 +code:07FC .byte 0xA6 +code:07FD .byte 0x80 +code:07FE .byte 0xEA +code:07FF .byte 0x80 +code:0800 .byte 0x9A +code:0801 .byte 0x80 +code:0802 .byte 0xA8 +code:0803 .byte 0x80 +code:0804 .byte 0xDA +code:0805 .byte 0x80 +code:0806 .byte 0xE2 +code:0807 .byte 0x80 +code:0808 .byte 0xCA +code:0809 .byte 0x80 +code:080A .byte 0x33 ; 3 +code:080B .byte 0x89 +code:080C .byte 0x82 +code:080D .byte 0x8A +code:080E .byte 0x83 +code:080F .byte 0xEC +code:0810 .byte 0xFA +code:0811 .byte 0xE4 +code:0812 .byte 0x93 +code:0813 .byte 0xA3 +code:0814 .byte 0xC8 +code:0815 .byte 0xC5 +code:0816 .byte 0x82 +code:0817 .byte 0xC8 +code:0818 .byte 0xCC +code:0819 .byte 0xC5 +code:081A .byte 0x83 +code:081B .byte 0xCC +code:081C .byte 0xF0 +code:081D .byte 0xA3 +code:081E .byte 0xC8 +code:081F .byte 0xC5 +code:0820 .byte 0x82 +code:0821 .byte 0xC8 +code:0822 .byte 0xCC +code:0823 .byte 0xC5 +code:0824 .byte 0x83 +code:0825 .byte 0xCC +code:0826 .byte 0xDF +code:0827 .byte 0xE9 +code:0828 .byte 0xDE +code:0829 .byte 0xE7 +code:082A .byte 0x80 +code:082B .byte 0xD +code:082C .byte 0x89 +code:082D .byte 0x82 +code:082E .byte 0x8A +code:082F .byte 0x83 +code:0830 .byte 0xE4 +code:0831 .byte 0x93 +code:0832 .byte 0xA3 +code:0833 .byte 0xF6 +code:0834 .byte 8 +code:0835 .byte 0xDF +code:0836 .byte 0xF9 +code:0837 ; --------------------------------------------------------------------------- +code:0837 ; START OF FUNCTION CHUNK FOR code_86B +code:0837 +code:0837 code_837: ; CODE XREF: code_86B+7↓j +code:0837 ; code_86B:code_87C↓j ... +code:0837 mov A, R4 +code:0838 mov R2, A +code:0839 mov R1, B ; B Register +code:083B mov A, R5 +code:083C mov R3, A +code:083D ret +code:083D ; END OF FUNCTION CHUNK FOR code_86B +code:083D ; --------------------------------------------------------------------------- +code:083E .byte 0x89 +code:083F .byte 0x82 +code:0840 .byte 0x8A +code:0841 .byte 0x83 +code:0842 .byte 0xEC +code:0843 .byte 0xFA +code:0844 .byte 0xE0 +code:0845 .byte 0xA3 +code:0846 .byte 0xC8 +code:0847 .byte 0xC5 +code:0848 .byte 0x82 +code:0849 .byte 0xC8 +code:084A .byte 0xCC +code:084B .byte 0xC5 +code:084C .byte 0x83 +code:084D .byte 0xCC +code:084E .byte 0xF0 +code:084F .byte 0xA3 +code:0850 .byte 0xC8 +code:0851 .byte 0xC5 +code:0852 .byte 0x82 +code:0853 .byte 0xC8 +code:0854 .byte 0xCC +code:0855 .byte 0xC5 +code:0856 .byte 0x83 +code:0857 .byte 0xCC +code:0858 .byte 0xDF +code:0859 .byte 0xEA +code:085A .byte 0xDE +code:085B .byte 0xE8 +code:085C .byte 0x80 +code:085D .byte 0xDB +code:085E .byte 0x89 +code:085F .byte 0x82 +code:0860 .byte 0x8A +code:0861 .byte 0x83 +code:0862 .byte 0xE4 +code:0863 .byte 0x93 +code:0864 .byte 0xA3 +code:0865 .byte 0xF2 +code:0866 .byte 8 +code:0867 .byte 0xDF +code:0868 .byte 0xF9 +code:0869 .byte 0x80 +code:086A .byte 0xCC +code:086B +code:086B ; =============== S U B R O U T I N E ======================================= +code:086B +code:086B +code:086B code_86B: ; CODE XREF: ROM_3861+C2↓p +code:086B ; ROM_3861+140↓p ... +code:086B +code:086B ; FUNCTION CHUNK AT code:0837 SIZE 00000007 BYTES +code:086B +code:086B mov B, R0 ; B Register +code:086D mov A, R7 +code:086E jz code_871 +code:0870 inc R6 +code:0871 +code:0871 code_871: ; CODE XREF: code_86B+3↑j +code:0871 orl A, R6 +code:0872 jz code_837 +code:0874 mov B, R0 ; B Register +code:0876 mov A, R5 +code:0877 add A, #2 +code:0879 cjne A, #4, code_87C +code:087C +code:087C code_87C: ; CODE XREF: code_86B+E↑j +code:087C jnc code_837 +code:087E mov DP0L, A ; Data Pointer Low Byte +code:0880 mov A, R3 +code:0881 add A, #2 +code:0883 cjne A, #4, code_886 +code:0886 +code:0886 code_886: ; CODE XREF: code_86B+18↑j +code:0886 jnc code_837 +code:0888 rl A +code:0889 rl A +code:088A orl A, DP0L ; Data Pointer Low Byte +code:088C rl A +code:088D mov DPTR, #0x7EB +code:0890 jmp @A+DPTR +code:0890 ; End of function code_86B +code:0890 +code:0891 +code:0891 ; =============== S U B R O U T I N E ======================================= +code:0891 +code:0891 +code:0891 code_891: ; CODE XREF: eeprom_related_ROM_3605+3C↓p +code:0891 ; ROM_39DB+4↓j ... +code:0891 cjne R3, #1, code_89A +code:0894 mov DP0L, R1 ; Data Pointer Low Byte +code:0896 mov DP0H, R2 ; Data Pointer High Byte +code:0898 movx A, @DPTR +code:0899 ret +code:089A ; --------------------------------------------------------------------------- +code:089A +code:089A code_89A: ; CODE XREF: code_891↑j +code:089A jnc code_89E +code:089C mov A, @R1 +code:089D ret +code:089E ; --------------------------------------------------------------------------- +code:089E +code:089E code_89E: ; CODE XREF: code_891:code_89A↑j +code:089E cjne R3, #0xFE, code_8A3 +code:08A1 movx A, @R1 +code:08A2 ret +code:08A3 ; --------------------------------------------------------------------------- +code:08A3 +code:08A3 code_8A3: ; CODE XREF: code_891:code_89E↑j +code:08A3 mov DP0L, R1 ; Data Pointer Low Byte +code:08A5 mov DP0H, R2 ; Data Pointer High Byte +code:08A7 clr A +code:08A8 movc A, @A+DPTR +code:08A9 ret +code:08A9 ; End of function code_891 +code:08A9 +code:08AA +code:08AA ; =============== S U B R O U T I N E ======================================= +code:08AA +code:08AA +code:08AA code_8AA: ; CODE XREF: ROM_49FD+9B↓p +code:08AA cjne R3, #1, code_8B6 +code:08AD mov DP0L, R1 ; Data Pointer Low Byte +code:08AF mov DP0H, R2 ; Data Pointer High Byte +code:08B1 mov R0, A +code:08B2 movx A, @DPTR +code:08B3 add A, R0 +code:08B4 movx @DPTR, A +code:08B5 ret +code:08B6 ; --------------------------------------------------------------------------- +code:08B6 +code:08B6 code_8B6: ; CODE XREF: code_8AA↑j +code:08B6 jnc code_8BB +code:08B8 add A, @R1 +code:08B9 mov @R1, A +code:08BA ret +code:08BB ; --------------------------------------------------------------------------- +code:08BB +code:08BB code_8BB: ; CODE XREF: code_8AA:code_8B6↑j +code:08BB cjne R3, #0xFE, code_8C3 +code:08BE mov R0, A +code:08BF movx A, @R1 +code:08C0 add A, R0 +code:08C1 movx @R1, A +code:08C2 ret +code:08C3 ; --------------------------------------------------------------------------- +code:08C3 +code:08C3 code_8C3: ; CODE XREF: code_8AA:code_8BB↑j +code:08C3 mov DP0H, R2 ; Data Pointer High Byte +code:08C5 mov DP0L, R1 ; Data Pointer Low Byte +code:08C7 mov R0, A +code:08C8 clr A +code:08C9 movc A, @A+DPTR +code:08CA add A, R0 +code:08CB ret +code:08CB ; End of function code_8AA +code:08CB +code:08CC +code:08CC ; =============== S U B R O U T I N E ======================================= +code:08CC +code:08CC +code:08CC code_8CC: ; CODE XREF: ROM_3EC1+5F↓p +code:08CC ; ROM_3EC1+73↓p ... +code:08CC cjne R3, #1, code_8D5 +code:08CF mov DP0L, R1 ; Data Pointer Low Byte +code:08D1 mov DP0H, R2 ; Data Pointer High Byte +code:08D3 movx @DPTR, A +code:08D4 ret +code:08D5 ; --------------------------------------------------------------------------- +code:08D5 +code:08D5 code_8D5: ; CODE XREF: code_8CC↑j +code:08D5 jnc code_8D9 +code:08D7 mov @R1, A +code:08D8 ret +code:08D9 ; --------------------------------------------------------------------------- +code:08D9 +code:08D9 code_8D9: ; CODE XREF: code_8CC:code_8D5↑j +code:08D9 cjne R3, #0xFE, code_8DD +code:08DC movx @R1, A +code:08DD +code:08DD code_8DD: ; CODE XREF: code_8CC:code_8D9↑j +code:08DD ret +code:08DD ; End of function code_8CC +code:08DD +code:08DE +code:08DE ; =============== S U B R O U T I N E ======================================= +code:08DE +code:08DE +code:08DE code_8DE: ; CODE XREF: initialize_variables_code_1D51+7F↓p +code:08DE ; ROM_281F+70↓p ... +code:08DE mov A, R7 +code:08DF mov B, R5 ; B Register +code:08E1 mul AB +code:08E2 mov R0, B ; B Register +code:08E4 xch A, R7 +code:08E5 mov B, R4 ; B Register +code:08E7 mul AB +code:08E8 add A, R0 +code:08E9 xch A, R6 +code:08EA mov B, R5 ; B Register +code:08EC mul AB +code:08ED add A, R6 +code:08EE mov R6, A +code:08EF ret +code:08EF ; End of function code_8DE +code:08EF +code:08F0 +code:08F0 ; =============== S U B R O U T I N E ======================================= +code:08F0 +code:08F0 +code:08F0 code_8F0: ; CODE XREF: ROM_9B77-9216↓p +code:08F0 ; ROM_9B77:code_96D↓p ... +code:08F0 cjne R4, #0, code_8FE +code:08F3 cjne R6, #0, code_91F +code:08F6 mov A, R7 +code:08F7 mov B, R5 ; B Register +code:08F9 div AB +code:08FA mov R7, A +code:08FB mov R5, B ; B Register +code:08FD ret +code:08FE ; --------------------------------------------------------------------------- +code:08FE +code:08FE code_8FE: ; CODE XREF: code_8F0↑j +code:08FE clr A +code:08FF xch A, R4 +code:0900 mov R0, A +code:0901 mov B, #8 ; B Register +code:0904 +code:0904 code_904: ; CODE XREF: code_8F0:code_918↓j +code:0904 mov A, R7 +code:0905 add A, R7 +code:0906 mov R7, A +code:0907 mov A, R6 +code:0908 rlc A +code:0909 mov R6, A +code:090A mov A, R4 +code:090B rlc A +code:090C mov R4, A +code:090D mov A, R6 +code:090E subb A, R5 +code:090F mov A, R4 +code:0910 subb A, R0 +code:0911 jc code_918 +code:0913 mov R4, A +code:0914 mov A, R6 +code:0915 subb A, R5 +code:0916 mov R6, A +code:0917 inc R7 +code:0918 +code:0918 code_918: ; CODE XREF: code_8F0+21↑j +code:0918 djnz B, code_904 ; B Register +code:091B clr A +code:091C xch A, R6 +code:091D mov R5, A +code:091E ret +code:091F ; --------------------------------------------------------------------------- +code:091F +code:091F code_91F: ; CODE XREF: code_8F0+3↑j +code:091F mov A, R5 +code:0920 mov R0, A +code:0921 mov B, A ; B Register +code:0923 mov A, R6 +code:0924 div AB +code:0925 jb PSW.2, code_944 ; Program Status Word +code:0928 mov R6, A +code:0929 mov R5, B ; B Register +code:092B mov B, #8 ; B Register +code:092E +code:092E code_92E: ; CODE XREF: code_8F0+49↓j +code:092E ; code_8F0+51↓j +code:092E mov A, R7 +code:092F add A, R7 +code:0930 mov R7, A +code:0931 mov A, R5 +code:0932 rlc A +code:0933 mov R5, A +code:0934 jc code_93D +code:0936 subb A, R0 +code:0937 jnc code_93F +code:0939 djnz B, code_92E ; B Register +code:093C ret +code:093D ; --------------------------------------------------------------------------- +code:093D +code:093D code_93D: ; CODE XREF: code_8F0+44↑j +code:093D clr C +code:093E subb A, R0 +code:093F +code:093F code_93F: ; CODE XREF: code_8F0+47↑j +code:093F mov R5, A +code:0940 inc R7 +code:0941 djnz B, code_92E ; B Register +code:0944 +code:0944 code_944: ; CODE XREF: code_8F0+35↑j +code:0944 ret +code:0944 ; End of function code_8F0 +code:0944 +code:0945 ; --------------------------------------------------------------------------- +code:0945 ; START OF FUNCTION CHUNK FOR ROM_9B77 +code:0945 +code:0945 code_945: ; CODE XREF: ROM_9B77+4↓j +code:0945 clr PSW.5 ; Program Status Word +code:0947 mov A, R4 +code:0948 jnb ACC7, code_954 ; Accumulator +code:094B cpl PSW.5 ; Program Status Word +code:094D clr A +code:094E clr C +code:094F subb A, R5 +code:0950 mov R5, A +code:0951 clr A +code:0952 subb A, R4 +code:0953 mov R4, A +code:0954 +code:0954 code_954: ; CODE XREF: ROM_9B77-922F↑j +code:0954 mov A, R6 +code:0955 jnb ACC7, code_96D ; Accumulator +code:0958 cpl PSW.5 ; Program Status Word +code:095A clr A +code:095B clr C +code:095C subb A, R7 +code:095D mov R7, A +code:095E clr A +code:095F subb A, R6 +code:0960 mov R6, A +code:0961 lcall code_8F0 +code:0964 clr C +code:0965 clr A +code:0966 subb A, R5 +code:0967 mov R5, A +code:0968 clr A +code:0969 subb A, R4 +code:096A mov R4, A +code:096B sjmp code_970 +code:096D ; --------------------------------------------------------------------------- +code:096D +code:096D code_96D: ; CODE XREF: ROM_9B77-9222↑j +code:096D lcall code_8F0 +code:0970 +code:0970 code_970: ; CODE XREF: ROM_9B77-920C↑j +code:0970 jnb PSW.5, code_97A ; Program Status Word +code:0973 clr C +code:0974 clr A +code:0975 subb A, R7 +code:0976 mov R7, A +code:0977 clr A +code:0978 subb A, R6 +code:0979 mov R6, A +code:097A +code:097A code_97A: ; CODE XREF: ROM_9B77:code_970↑j +code:097A ret +code:097A ; END OF FUNCTION CHUNK FOR ROM_9B77 +code:097B +code:097B ; =============== S U B R O U T I N E ======================================= +code:097B +code:097B +code:097B code_97B: ; CODE XREF: ROM_AD6A+1418↓p +code:097B ; ROM_AD6A+2055↓p ... +code:097B xch A, B ; B Register +code:097D mov R0, A +code:097E inc DPTR +code:097F movx A, @DPTR +code:0980 add A, R0 +code:0981 movx @DPTR, A +code:0982 xch A, B ; B Register +code:0984 mov R0, A +code:0985 mov A, DP0L ; Data Pointer Low Byte +code:0987 dec DP0L ; Data Pointer Low Byte +code:0989 jnz code_98D +code:098B dec DP0H ; Data Pointer High Byte +code:098D +code:098D code_98D: ; CODE XREF: code_97B+E↑j +code:098D movx A, @DPTR +code:098E addc A, R0 +code:098F movx @DPTR, A +code:0990 ret +code:0990 ; End of function code_97B +code:0990 +code:0991 +code:0991 ; =============== S U B R O U T I N E ======================================= +code:0991 +code:0991 +code:0991 code_991: ; CODE XREF: eeprom_related_ROM_3605+2F↓p +code:0991 ; ROM_740D+8↓p ... +code:0991 inc DPTR +code:0992 mov R0, A +code:0993 movx A, @DPTR +code:0994 xch A, B ; B Register +code:0996 add A, B ; B Register +code:0998 movx @DPTR, A +code:0999 mov A, DP0L ; Data Pointer Low Byte +code:099B dec DP0L ; Data Pointer Low Byte +code:099D jnz code_9A1 +code:099F dec DP0H ; Data Pointer High Byte +code:09A1 +code:09A1 code_9A1: ; CODE XREF: code_991+C↑j +code:09A1 movx A, @DPTR +code:09A2 xch A, R0 +code:09A3 addc A, R0 +code:09A4 movx @DPTR, A +code:09A5 mov A, R0 +code:09A6 ret +code:09A6 ; End of function code_991 +code:09A6 +code:09A7 +code:09A7 ; =============== S U B R O U T I N E ======================================= +code:09A7 +code:09A7 +code:09A7 code_9A7: ; CODE XREF: ROM_42CC+4↓j +code:09A7 ; ROM_4737+50↓p ... +code:09A7 cjne R3, #1, code_9B4 +code:09AA mov DP0L, R1 ; Data Pointer Low Byte +code:09AC mov DP0H, R2 ; Data Pointer High Byte +code:09AE movx A, @DPTR +code:09AF mov B, A ; B Register +code:09B1 inc DPTR +code:09B2 movx A, @DPTR +code:09B3 ret +code:09B4 ; --------------------------------------------------------------------------- +code:09B4 +code:09B4 code_9B4: ; CODE XREF: code_9A7↑j +code:09B4 jnc code_9BC +code:09B6 mov B, @R1 ; B Register +code:09B8 inc R1 +code:09B9 mov A, @R1 +code:09BA dec R1 +code:09BB ret +code:09BC ; --------------------------------------------------------------------------- +code:09BC +code:09BC code_9BC: ; CODE XREF: code_9A7:code_9B4↑j +code:09BC cjne R3, #0xFE, code_9C6 +code:09BF movx A, @R1 +code:09C0 mov B, A ; B Register +code:09C2 inc R1 +code:09C3 movx A, @R1 +code:09C4 dec R1 +code:09C5 ret +code:09C6 ; --------------------------------------------------------------------------- +code:09C6 +code:09C6 code_9C6: ; CODE XREF: code_9A7:code_9BC↑j +code:09C6 mov DP0L, R1 ; Data Pointer Low Byte +code:09C8 mov DP0H, R2 ; Data Pointer High Byte +code:09CA clr A +code:09CB movc A, @A+DPTR +code:09CC mov B, A ; B Register +code:09CE mov A, #1 +code:09D0 movc A, @A+DPTR +code:09D1 ret +code:09D1 ; End of function code_9A7 +code:09D1 +code:09D2 +code:09D2 ; =============== S U B R O U T I N E ======================================= +code:09D2 +code:09D2 +code:09D2 code_9D2: ; CODE XREF: ROM_ABBC+C5↓p +code:09D2 ; ROM_ABBC+D2↓p ... +code:09D2 cjne R3, #1, code_9DF +code:09D5 mov DP0L, R1 ; Data Pointer Low Byte +code:09D7 mov DP0H, R2 ; Data Pointer High Byte +code:09D9 movx @DPTR, A +code:09DA mov A, B ; B Register +code:09DC inc DPTR +code:09DD movx @DPTR, A +code:09DE ret +code:09DF ; --------------------------------------------------------------------------- +code:09DF +code:09DF code_9DF: ; CODE XREF: code_9D2↑j +code:09DF jnc code_9E7 +code:09E1 mov @R1, A +code:09E2 inc R1 +code:09E3 mov @R1, B ; B Register +code:09E5 dec R1 +code:09E6 ret +code:09E7 ; --------------------------------------------------------------------------- +code:09E7 +code:09E7 code_9E7: ; CODE XREF: code_9D2:code_9DF↑j +code:09E7 cjne R3, #0xFE, code_9F0 +code:09EA movx @R1, A +code:09EB mov A, B ; B Register +code:09ED inc R1 +code:09EE movx @R1, A +code:09EF dec R1 +code:09F0 +code:09F0 code_9F0: ; CODE XREF: code_9D2:code_9E7↑j +code:09F0 ret +code:09F0 ; End of function code_9D2 +code:09F0 +code:09F1 +code:09F1 ; =============== S U B R O U T I N E ======================================= +code:09F1 +code:09F1 +code:09F1 code_9F1: ; CODE XREF: ROM_2638+BB↓p +code:09F1 ; ROM_2638+131↓p ... +code:09F1 mov A, R0 +code:09F2 mov B, R7 ; B Register +code:09F4 mul AB +code:09F5 xch A, R4 +code:09F6 mov B, R3 ; B Register +code:09F8 mul AB +code:09F9 add A, R4 +code:09FA mov R4, A +code:09FB mov A, R1 +code:09FC mov B, R6 ; B Register +code:09FE mul AB +code:09FF add A, R4 +code:0A00 mov R4, A +code:0A01 mov B, R2 ; B Register +code:0A03 mov A, R5 +code:0A04 mul AB +code:0A05 add A, R4 +code:0A06 mov R4, A +code:0A07 mov A, R2 +code:0A08 mov B, R6 ; B Register +code:0A0A mul AB +code:0A0B xch A, R5 +code:0A0C mov R0, B ; B Register +code:0A0E mov B, R3 ; B Register +code:0A10 mul AB +code:0A11 add A, R5 +code:0A12 xch A, R4 +code:0A13 addc A, R0 +code:0A14 add A, B ; B Register +code:0A16 mov R5, A +code:0A17 mov A, R1 +code:0A18 mov B, R7 ; B Register +code:0A1A mul AB +code:0A1B add A, R4 +code:0A1C xch A, R5 +code:0A1D addc A, B ; B Register +code:0A1F mov R4, A +code:0A20 mov A, R3 +code:0A21 mov B, R6 ; B Register +code:0A23 mul AB +code:0A24 mov R6, A +code:0A25 mov R1, B ; B Register +code:0A27 mov A, R3 +code:0A28 mov B, R7 ; B Register +code:0A2A mul AB +code:0A2B xch A, R7 +code:0A2C xch A, B ; B Register +code:0A2E add A, R6 +code:0A2F xch A, R5 +code:0A30 addc A, R1 +code:0A31 mov R6, A +code:0A32 clr A +code:0A33 addc A, R4 +code:0A34 mov R4, A +code:0A35 mov A, R2 +code:0A36 mul AB +code:0A37 add A, R5 +code:0A38 xch A, R6 +code:0A39 addc A, B ; B Register +code:0A3B mov R5, A +code:0A3C clr A +code:0A3D addc A, R4 +code:0A3E mov R4, A +code:0A3F ret +code:0A3F ; End of function code_9F1 +code:0A3F +code:0A40 ; --------------------------------------------------------------------------- +code:0A40 ; START OF FUNCTION CHUNK FOR code_A7C +code:0A40 +code:0A40 code_A40: ; CODE XREF: code_A7C↓j +code:0A40 mov B, #8 ; B Register +code:0A43 mov DP0L, #0 ; Data Pointer Low Byte +code:0A46 +code:0A46 code_A46: ; CODE XREF: code_A7C:code_A6D↓j +code:0A46 mov A, R7 +code:0A47 add A, R7 +code:0A48 mov R7, A +code:0A49 mov A, R6 +code:0A4A rlc A +code:0A4B mov R6, A +code:0A4C xch A, R5 +code:0A4D rlc A +code:0A4E xch A, R5 +code:0A4F xch A, R4 +code:0A50 rlc A +code:0A51 xch A, R4 +code:0A52 xch A, DP0L ; Data Pointer Low Byte +code:0A54 rlc A +code:0A55 xch A, DP0L ; Data Pointer Low Byte +code:0A57 subb A, R3 +code:0A58 mov A, R5 +code:0A59 subb A, R2 +code:0A5A mov A, R4 +code:0A5B subb A, R1 +code:0A5C mov A, DP0L ; Data Pointer Low Byte +code:0A5E subb A, R0 +code:0A5F jc code_A6D +code:0A61 mov DP0L, A ; Data Pointer Low Byte +code:0A63 mov A, R6 +code:0A64 subb A, R3 +code:0A65 mov R6, A +code:0A66 mov A, R5 +code:0A67 subb A, R2 +code:0A68 mov R5, A +code:0A69 mov A, R4 +code:0A6A subb A, R1 +code:0A6B mov R4, A +code:0A6C inc R7 +code:0A6D +code:0A6D code_A6D: ; CODE XREF: code_A7C-1D↑j +code:0A6D djnz B, code_A46 ; B Register +code:0A70 clr A +code:0A71 xch A, R6 +code:0A72 mov R3, A +code:0A73 clr A +code:0A74 xch A, R5 +code:0A75 mov R2, A +code:0A76 clr A +code:0A77 xch A, R4 +code:0A78 mov R1, A +code:0A79 mov R0, DP0L ; Data Pointer Low Byte +code:0A7B ret +code:0A7B ; END OF FUNCTION CHUNK FOR code_A7C +code:0A7C +code:0A7C ; =============== S U B R O U T I N E ======================================= +code:0A7C +code:0A7C +code:0A7C code_A7C: ; CODE XREF: ROM:2046↓p +code:0A7C ; ROM_2916+21F↓p ... +code:0A7C +code:0A7C ; FUNCTION CHUNK AT code:0A40 SIZE 0000003C BYTES +code:0A7C +code:0A7C cjne R0, #0, code_A40 +code:0A7F cjne R1, #0, code_ADB +code:0A82 cjne R2, #0, code_AB2 +code:0A85 mov A, R4 +code:0A86 mov B, R3 ; B Register +code:0A88 div AB +code:0A89 xch A, R7 +code:0A8A xch A, R6 +code:0A8B xch A, R5 +code:0A8C mov R4, A +code:0A8D mov A, B ; B Register +code:0A8F xch A, R3 +code:0A90 mov R1, A +code:0A91 mov R0, #0x18 +code:0A93 +code:0A93 code_A93: ; CODE XREF: code_A7C:code_AAC↓j +code:0A93 mov A, R7 +code:0A94 add A, R7 +code:0A95 mov R7, A +code:0A96 mov A, R6 +code:0A97 rlc A +code:0A98 mov R6, A +code:0A99 mov A, R5 +code:0A9A rlc A +code:0A9B mov R5, A +code:0A9C mov A, R4 +code:0A9D rlc A +code:0A9E mov R4, A +code:0A9F mov A, R3 +code:0AA0 rlc A +code:0AA1 mov R3, A +code:0AA2 jbc PSW.7, code_AA8 ; Program Status Word +code:0AA5 subb A, R1 +code:0AA6 jc code_AAC +code:0AA8 +code:0AA8 code_AA8: ; CODE XREF: code_A7C+26↑j +code:0AA8 mov A, R3 +code:0AA9 subb A, R1 +code:0AAA mov R3, A +code:0AAB inc R7 +code:0AAC +code:0AAC code_AAC: ; CODE XREF: code_A7C+2A↑j +code:0AAC djnz R0, code_A93 +code:0AAE clr A +code:0AAF mov R1, A +code:0AB0 mov R2, A +code:0AB1 ret +code:0AB2 ; --------------------------------------------------------------------------- +code:0AB2 +code:0AB2 code_AB2: ; CODE XREF: code_A7C+6↑j +code:0AB2 mov R0, #0x18 +code:0AB4 +code:0AB4 code_AB4: ; CODE XREF: code_A7C:code_AD2↓j +code:0AB4 mov A, R7 +code:0AB5 add A, R7 +code:0AB6 mov R7, A +code:0AB7 mov A, R6 +code:0AB8 rlc A +code:0AB9 mov R6, A +code:0ABA mov A, R5 +code:0ABB rlc A +code:0ABC mov R5, A +code:0ABD mov A, R4 +code:0ABE rlc A +code:0ABF mov R4, A +code:0AC0 xch A, R1 +code:0AC1 rlc A +code:0AC2 xch A, R1 +code:0AC3 jbc PSW.7, code_ACB ; Program Status Word +code:0AC6 subb A, R3 +code:0AC7 mov A, R1 +code:0AC8 subb A, R2 +code:0AC9 jc code_AD2 +code:0ACB +code:0ACB code_ACB: ; CODE XREF: code_A7C+47↑j +code:0ACB mov A, R4 +code:0ACC subb A, R3 +code:0ACD mov R4, A +code:0ACE mov A, R1 +code:0ACF subb A, R2 +code:0AD0 mov R1, A +code:0AD1 inc R7 +code:0AD2 +code:0AD2 code_AD2: ; CODE XREF: code_A7C+4D↑j +code:0AD2 djnz R0, code_AB4 +code:0AD4 clr A +code:0AD5 xch A, R1 +code:0AD6 mov R2, A +code:0AD7 clr A +code:0AD8 xch A, R4 +code:0AD9 mov R3, A +code:0ADA ret +code:0ADB ; --------------------------------------------------------------------------- +code:0ADB +code:0ADB code_ADB: ; CODE XREF: code_A7C+3↑j +code:0ADB mov B, #0x10 ; B Register +code:0ADE +code:0ADE code_ADE: ; CODE XREF: code_A7C:code_B01↓j +code:0ADE mov A, R7 +code:0ADF add A, R7 +code:0AE0 mov R7, A +code:0AE1 mov A, R6 +code:0AE2 rlc A +code:0AE3 mov R6, A +code:0AE4 mov A, R5 +code:0AE5 rlc A +code:0AE6 mov R5, A +code:0AE7 xch A, R4 +code:0AE8 rlc A +code:0AE9 xch A, R4 +code:0AEA xch A, R0 +code:0AEB rlc A +code:0AEC xch A, R0 +code:0AED jbc PSW.7, code_AF7 ; Program Status Word +code:0AF0 subb A, R3 +code:0AF1 mov A, R4 +code:0AF2 subb A, R2 +code:0AF3 mov A, R0 +code:0AF4 subb A, R1 +code:0AF5 jc code_B01 +code:0AF7 +code:0AF7 code_AF7: ; CODE XREF: code_A7C+71↑j +code:0AF7 mov A, R5 +code:0AF8 subb A, R3 +code:0AF9 mov R5, A +code:0AFA mov A, R4 +code:0AFB subb A, R2 +code:0AFC mov R4, A +code:0AFD mov A, R0 +code:0AFE subb A, R1 +code:0AFF mov R0, A +code:0B00 inc R7 +code:0B01 +code:0B01 code_B01: ; CODE XREF: code_A7C+79↑j +code:0B01 djnz B, code_ADE ; B Register +code:0B04 clr A +code:0B05 xch A, R5 +code:0B06 mov R3, A +code:0B07 clr A +code:0B08 xch A, R4 +code:0B09 mov R2, A +code:0B0A clr A +code:0B0B xch A, R0 +code:0B0C mov R1, A +code:0B0D ret +code:0B0D ; End of function code_A7C +code:0B0D +code:0B0E +code:0B0E ; =============== S U B R O U T I N E ======================================= +code:0B0E +code:0B0E +code:0B0E code_B0E: ; CODE XREF: code_6E1+14↑p +code:0B0E ; code_71A+34↑j +code:0B0E clr C +code:0B0F clr A +code:0B10 subb A, R7 +code:0B11 mov R7, A +code:0B12 clr A +code:0B13 subb A, R6 +code:0B14 mov R6, A +code:0B15 clr A +code:0B16 subb A, R5 +code:0B17 mov R5, A +code:0B18 clr A +code:0B19 subb A, R4 +code:0B1A mov R4, A +code:0B1B ret +code:0B1B ; End of function code_B0E +code:0B1B +code:0B1C +code:0B1C ; =============== S U B R O U T I N E ======================================= +code:0B1C +code:0B1C +code:0B1C code_B1C: ; CODE XREF: code_1E6A+46↓p +code:0B1C ; code_1E6A+5B↓p ... +code:0B1C mov A, R3 +code:0B1D subb A, R7 +code:0B1E mov B, A ; B Register +code:0B20 mov A, R2 +code:0B21 subb A, R6 +code:0B22 orl B, A ; B Register +code:0B24 mov A, R1 +code:0B25 subb A, R5 +code:0B26 orl B, A ; B Register +code:0B28 mov A, R0 +code:0B29 subb A, R4 +code:0B2A orl A, B ; B Register +code:0B2C ret +code:0B2C ; End of function code_B1C +code:0B2C +code:0B2D +code:0B2D ; =============== S U B R O U T I N E ======================================= +code:0B2D +code:0B2D +code:0B2D rotate_4_bytes_R4_R7_by_R0_rotations: ; CODE XREF: ROM_3790+3↓p +code:0B2D ; ROM_67D5+3↓j ... +code:0B2D mov A, R0 +code:0B2E jz rotate_done_code_B3F +code:0B30 +code:0B30 rotate_round: ; CODE XREF: rotate_4_bytes_R4_R7_by_R0_rotations+10↓j +code:0B30 mov A, R4 +code:0B31 clr C +code:0B32 rrc A +code:0B33 mov R4, A +code:0B34 mov A, R5 +code:0B35 rrc A +code:0B36 mov R5, A +code:0B37 mov A, R6 +code:0B38 rrc A +code:0B39 mov R6, A +code:0B3A mov A, R7 +code:0B3B rrc A +code:0B3C mov R7, A +code:0B3D djnz R0, rotate_round +code:0B3F +code:0B3F rotate_done_code_B3F: ; CODE XREF: rotate_4_bytes_R4_R7_by_R0_rotations+1↑j +code:0B3F ret +code:0B3F ; End of function rotate_4_bytes_R4_R7_by_R0_rotations +code:0B3F +code:0B40 +code:0B40 ; =============== S U B R O U T I N E ======================================= +code:0B40 +code:0B40 +code:0B40 code_B40: ; CODE XREF: ROM_372D↓p +code:0B40 ; ROM_AD6A+940↓p ... +code:0B40 mov A, R0 +code:0B41 jz code_B52 +code:0B43 +code:0B43 code_B43: ; CODE XREF: code_B40+10↓j +code:0B43 mov A, R7 +code:0B44 clr C +code:0B45 rlc A +code:0B46 mov R7, A +code:0B47 mov A, R6 +code:0B48 rlc A +code:0B49 mov R6, A +code:0B4A mov A, R5 +code:0B4B rlc A +code:0B4C mov R5, A +code:0B4D mov A, R4 +code:0B4E rlc A +code:0B4F mov R4, A +code:0B50 djnz R0, code_B43 +code:0B52 +code:0B52 code_B52: ; CODE XREF: code_B40+1↑j +code:0B52 ret +code:0B52 ; End of function code_B40 +code:0B52 +code:0B53 +code:0B53 ; =============== S U B R O U T I N E ======================================= +code:0B53 +code:0B53 +code:0B53 code_B53: ; CODE XREF: ROM_87A6+4↓j +code:0B53 ; ROM_ABBC+12D↓p ... +code:0B53 +code:0B53 ; FUNCTION CHUNK AT code:0ECC SIZE 0000000C BYTES +code:0B53 ; FUNCTION CHUNK AT code:0EE4 SIZE 0000001C BYTES +code:0B53 +code:0B53 cjne R3, #1, code_B5D +code:0B56 mov DP0L, R1 ; Data Pointer Low Byte +code:0B58 mov DP0H, R2 ; Data Pointer High Byte +code:0B5A ljmp read_4_bytes_into_R4_R7_code_ED8 +code:0B5D ; --------------------------------------------------------------------------- +code:0B5D +code:0B5D code_B5D: ; CODE XREF: code_B53↑j +code:0B5D jnc code_B64 +code:0B5F mov A, R1 +code:0B60 mov R0, A +code:0B61 ljmp code_ECC +code:0B64 ; --------------------------------------------------------------------------- +code:0B64 +code:0B64 code_B64: ; CODE XREF: code_B53:code_B5D↑j +code:0B64 cjne R3, #0xFE, code_B6C +code:0B67 mov A, R1 +code:0B68 mov R0, A +code:0B69 ljmp code_EE4 +code:0B6C ; --------------------------------------------------------------------------- +code:0B6C +code:0B6C code_B6C: ; CODE XREF: code_B53:code_B64↑j +code:0B6C mov DP0L, R1 ; Data Pointer Low Byte +code:0B6E mov DP0H, R2 ; Data Pointer High Byte +code:0B70 ljmp code_EF0 +code:0B70 ; End of function code_B53 +code:0B70 +code:0B73 +code:0B73 ; =============== S U B R O U T I N E ======================================= +code:0B73 +code:0B73 +code:0B73 code_B73: ; CODE XREF: ROM_AD6A+6BD↓p +code:0B73 ; ROM_AD6A+721↓p ... +code:0B73 +code:0B73 ; FUNCTION CHUNK AT code:0F36 SIZE 00000018 BYTES +code:0B73 +code:0B73 cjne R3, #1, code_B7D +code:0B76 mov DP0L, R1 ; Data Pointer Low Byte +code:0B78 mov DP0H, R2 ; Data Pointer High Byte +code:0B7A ljmp save_4_bytes_R4_R7 +code:0B7D ; --------------------------------------------------------------------------- +code:0B7D +code:0B7D code_B7D: ; CODE XREF: code_B73↑j +code:0B7D jnc code_B84 +code:0B7F mov A, R1 +code:0B80 mov R0, A +code:0B81 ljmp code_F36 +code:0B84 ; --------------------------------------------------------------------------- +code:0B84 +code:0B84 code_B84: ; CODE XREF: code_B73:code_B7D↑j +code:0B84 cjne R3, #0xFE, code_B8C +code:0B87 mov A, R1 +code:0B88 mov R0, A +code:0B89 ljmp code_F42 +code:0B8C ; --------------------------------------------------------------------------- +code:0B8C +code:0B8C code_B8C: ; CODE XREF: code_B73:code_B84↑j +code:0B8C ret +code:0B8C ; End of function code_B73 +code:0B8C +code:0B8D +code:0B8D ; =============== S U B R O U T I N E ======================================= +code:0B8D +code:0B8D +code:0B8D code_B8D: ; CODE XREF: ROM_AD6A+707↓p +code:0B8D ; ROM_AD6A+C50↓p ... +code:0B8D +code:0B8D ; FUNCTION CHUNK AT code:0F00 SIZE 00000036 BYTES +code:0B8D +code:0B8D cjne R3, #1, code_B97 +code:0B90 mov DP0L, R1 ; Data Pointer Low Byte +code:0B92 mov DP0H, R2 ; Data Pointer High Byte +code:0B94 ljmp code_F0D +code:0B97 ; --------------------------------------------------------------------------- +code:0B97 +code:0B97 code_B97: ; CODE XREF: code_B8D↑j +code:0B97 jnc code_B9E +code:0B99 mov A, R1 +code:0B9A mov R0, A +code:0B9B ljmp code_F00 +code:0B9E ; --------------------------------------------------------------------------- +code:0B9E +code:0B9E code_B9E: ; CODE XREF: code_B8D:code_B97↑j +code:0B9E cjne R3, #0xFE, code_BA6 +code:0BA1 mov A, R1 +code:0BA2 mov R0, A +code:0BA3 ljmp code_F19 +code:0BA6 ; --------------------------------------------------------------------------- +code:0BA6 +code:0BA6 code_BA6: ; CODE XREF: code_B8D:code_B9E↑j +code:0BA6 mov DP0L, R1 ; Data Pointer Low Byte +code:0BA8 mov DP0H, R2 ; Data Pointer High Byte +code:0BAA ljmp code_F26 +code:0BAA ; End of function code_B8D +code:0BAA +code:0BAD +code:0BAD ; =============== S U B R O U T I N E ======================================= +code:0BAD +code:0BAD +code:0BAD code_BAD: ; CODE XREF: ROM_AD6A+9FE↓p +code:0BAD ; ROM_AD6A+E66↓p ... +code:0BAD mov A, #1 +code:0BAF mov R7, A +code:0BB0 rlc A +code:0BB1 subb A, ACC ; Accumulator +code:0BB3 mov R6, A +code:0BB4 mov R5, A +code:0BB5 mov R4, A +code:0BB6 inc DPTR +code:0BB7 inc DPTR +code:0BB8 inc DPTR +code:0BB9 movx A, @DPTR +code:0BBA xch A, R7 +code:0BBB add A, R7 +code:0BBC movx @DPTR, A +code:0BBD mov A, DP0L ; Data Pointer Low Byte +code:0BBF dec DP0L ; Data Pointer Low Byte +code:0BC1 jnz code_BC5 +code:0BC3 dec DP0H ; Data Pointer High Byte +code:0BC5 +code:0BC5 code_BC5: ; CODE XREF: code_BAD+14↑j +code:0BC5 movx A, @DPTR +code:0BC6 xch A, R6 +code:0BC7 addc A, R6 +code:0BC8 movx @DPTR, A +code:0BC9 mov A, DP0L ; Data Pointer Low Byte +code:0BCB dec DP0L ; Data Pointer Low Byte +code:0BCD jnz code_BD1 +code:0BCF dec DP0H ; Data Pointer High Byte +code:0BD1 +code:0BD1 code_BD1: ; CODE XREF: code_BAD+20↑j +code:0BD1 movx A, @DPTR +code:0BD2 xch A, R5 +code:0BD3 addc A, R5 +code:0BD4 movx @DPTR, A +code:0BD5 mov A, DP0L ; Data Pointer Low Byte +code:0BD7 dec DP0L ; Data Pointer Low Byte +code:0BD9 jnz code_BDD +code:0BDB dec DP0H ; Data Pointer High Byte +code:0BDD +code:0BDD code_BDD: ; CODE XREF: code_BAD+2C↑j +code:0BDD movx A, @DPTR +code:0BDE xch A, R4 +code:0BDF addc A, R4 +code:0BE0 movx @DPTR, A +code:0BE1 ret +code:0BE1 ; End of function code_BAD +code:0BE1 +code:0BE2 +code:0BE2 ; =============== S U B R O U T I N E ======================================= +code:0BE2 +code:0BE2 +code:0BE2 save_4_bytes_R4_R7: ; CODE XREF: save_4_bytes_R4_R7_to_0xF54E+3↑j +code:0BE2 ; code_533+3↑j ... +code:0BE2 mov A, R4 +code:0BE3 movx @DPTR, A +code:0BE4 inc DPTR +code:0BE5 mov A, R5 +code:0BE6 movx @DPTR, A +code:0BE7 inc DPTR +code:0BE8 mov A, R6 +code:0BE9 movx @DPTR, A +code:0BEA inc DPTR +code:0BEB mov A, R7 +code:0BEC movx @DPTR, A +code:0BED ret +code:0BED ; End of function save_4_bytes_R4_R7 +code:0BED +code:0BEE +code:0BEE ; =============== S U B R O U T I N E ======================================= +code:0BEE +code:0BEE +code:0BEE code_BEE: ; CODE XREF: ROM_A044-35E5↓p +code:0BEE ; ROM_6B6D+4↓j ... +code:0BEE mul AB +code:0BEF add A, DP0L ; Data Pointer Low Byte +code:0BF1 mov DP0L, A ; Data Pointer Low Byte +code:0BF3 mov A, B ; B Register +code:0BF5 addc A, DP0H ; Data Pointer High Byte +code:0BF7 mov DP0H, A ; Data Pointer High Byte +code:0BF9 ret +code:0BF9 ; End of function code_BEE +code:0BF9 +code:0BFA +code:0BFA ; =============== S U B R O U T I N E ======================================= +code:0BFA +code:0BFA +code:0BFA code_BFA: ; CODE XREF: ROM_377F+4↓p +code:0BFA ; ROM_AD6A+9CE↓p ... +code:0BFA +code:0BFA ; FUNCTION CHUNK AT code:0F4E SIZE 00000009 BYTES +code:0BFA ; FUNCTION CHUNK AT code:0F60 SIZE 00000009 BYTES +code:0BFA ; FUNCTION CHUNK AT code:0F72 SIZE 00000009 BYTES +code:0BFA ; FUNCTION CHUNK AT code:0F84 SIZE 0000000C BYTES +code:0BFA +code:0BFA cjne R3, #1, code_C04 +code:0BFD mov DP0L, R1 ; Data Pointer Low Byte +code:0BFF mov DP0H, R2 ; Data Pointer High Byte +code:0C01 ljmp code_F60 +code:0C04 ; --------------------------------------------------------------------------- +code:0C04 +code:0C04 code_C04: ; CODE XREF: code_BFA↑j +code:0C04 jnc code_C0B +code:0C06 mov A, R1 +code:0C07 mov R0, A +code:0C08 ljmp code_F4E +code:0C0B ; --------------------------------------------------------------------------- +code:0C0B +code:0C0B code_C0B: ; CODE XREF: code_BFA:code_C04↑j +code:0C0B cjne R3, #0xFE, code_C13 +code:0C0E mov A, R1 +code:0C0F mov R0, A +code:0C10 ljmp code_F72 +code:0C13 ; --------------------------------------------------------------------------- +code:0C13 +code:0C13 code_C13: ; CODE XREF: code_BFA:code_C0B↑j +code:0C13 mov DP0L, R1 ; Data Pointer Low Byte +code:0C15 mov DP0H, R2 ; Data Pointer High Byte +code:0C17 ljmp code_F84 +code:0C17 ; End of function code_BFA +code:0C17 +code:0C1A +code:0C1A ; =============== S U B R O U T I N E ======================================= +code:0C1A +code:0C1A +code:0C1A code_C1A: ; CODE XREF: ROM_AD6A+100D↓p +code:0C1A ; ROM_AD6A+102D↓p ... +code:0C1A +code:0C1A ; FUNCTION CHUNK AT code:0F57 SIZE 00000009 BYTES +code:0C1A ; FUNCTION CHUNK AT code:0F69 SIZE 00000009 BYTES +code:0C1A ; FUNCTION CHUNK AT code:0F7B SIZE 00000009 BYTES +code:0C1A +code:0C1A cjne R3, #1, code_C37 +code:0C1D mov DP0L, R1 ; Data Pointer Low Byte +code:0C1F mov DP0H, R2 ; Data Pointer High Byte +code:0C21 pop B ; B Register +code:0C23 pop ACC ; Accumulator +code:0C25 mov R0, A +code:0C26 pop ACC ; Accumulator +code:0C28 mov R1, A +code:0C29 pop ACC ; Accumulator +code:0C2B mov R2, A +code:0C2C pop ACC ; Accumulator +code:0C2E mov R3, A +code:0C2F mov A, R0 +code:0C30 push ACC ; Accumulator +code:0C32 push B ; B Register +code:0C34 ljmp code_F69 +code:0C37 ; --------------------------------------------------------------------------- +code:0C37 +code:0C37 code_C37: ; CODE XREF: code_C1A↑j +code:0C37 jnc code_C4F +code:0C39 mov A, R1 +code:0C3A mov R0, A +code:0C3B pop DP0H ; Data Pointer High Byte +code:0C3D pop DP0L ; Data Pointer Low Byte +code:0C3F pop ACC ; Accumulator +code:0C41 mov R1, A +code:0C42 pop ACC ; Accumulator +code:0C44 mov R2, A +code:0C45 pop ACC ; Accumulator +code:0C47 mov R3, A +code:0C48 push DP0L ; Data Pointer Low Byte +code:0C4A push DP0H ; Data Pointer High Byte +code:0C4C ljmp code_F57 +code:0C4F ; --------------------------------------------------------------------------- +code:0C4F +code:0C4F code_C4F: ; CODE XREF: code_C1A:code_C37↑j +code:0C4F cjne R3, #0xFE, code_C68 +code:0C52 mov A, R1 +code:0C53 mov R0, A +code:0C54 pop DP0H ; Data Pointer High Byte +code:0C56 pop DP0L ; Data Pointer Low Byte +code:0C58 pop ACC ; Accumulator +code:0C5A mov R1, A +code:0C5B pop ACC ; Accumulator +code:0C5D mov R2, A +code:0C5E pop ACC ; Accumulator +code:0C60 mov R3, A +code:0C61 push DP0L ; Data Pointer Low Byte +code:0C63 push DP0H ; Data Pointer High Byte +code:0C65 ljmp code_F7B +code:0C68 ; --------------------------------------------------------------------------- +code:0C68 +code:0C68 code_C68: ; CODE XREF: code_C1A:code_C4F↑j +code:0C68 ret +code:0C68 ; End of function code_C1A +code:0C68 +code:0C69 +code:0C69 ; =============== S U B R O U T I N E ======================================= +code:0C69 +code:0C69 +code:0C69 code_C69: ; CODE XREF: ROM_2153+25↓p +code:0C69 ; ROM_6E68+B↓p +code:0C69 pop DP0H ; Data Pointer High Byte +code:0C6B pop DP0L ; Data Pointer Low Byte +code:0C6D mov R0, A +code:0C6E +code:0C6E code_C6E: ; CODE XREF: code_C69+24↓j +code:0C6E clr A +code:0C6F movc A, @A+DPTR +code:0C70 jnz code_C84 +code:0C72 mov A, #1 +code:0C74 movc A, @A+DPTR +code:0C75 jnz code_C84 +code:0C77 inc DPTR +code:0C78 inc DPTR +code:0C79 +code:0C79 code_C79: ; CODE XREF: code_C69+1F↓j +code:0C79 movc A, @A+DPTR +code:0C7A mov R0, A +code:0C7B mov A, #1 +code:0C7D movc A, @A+DPTR +code:0C7E mov DP0L, A ; Data Pointer Low Byte +code:0C80 mov DP0H, R0 ; Data Pointer High Byte +code:0C82 clr A +code:0C83 jmp @A+DPTR +code:0C84 ; --------------------------------------------------------------------------- +code:0C84 +code:0C84 code_C84: ; CODE XREF: code_C69+7↑j +code:0C84 ; code_C69+C↑j +code:0C84 mov A, #2 +code:0C86 movc A, @A+DPTR +code:0C87 xrl A, R0 +code:0C88 jz code_C79 +code:0C8A inc DPTR +code:0C8B inc DPTR +code:0C8C inc DPTR +code:0C8D sjmp code_C6E +code:0C8D ; End of function code_C69 +code:0C8D +code:0C8F +code:0C8F ; =============== S U B R O U T I N E ======================================= +code:0C8F +code:0C8F +code:0C8F code_C8F: ; CODE XREF: ROM_ABBC+130↓p +code:0C8F pop DP0H ; Data Pointer High Byte +code:0C91 pop DP0L ; Data Pointer Low Byte +code:0C93 +code:0C93 code_C93: ; CODE XREF: code_C8F+38↓j +code:0C93 clr A +code:0C94 movc A, @A+DPTR +code:0C95 jnz code_CA9 +code:0C97 mov A, #1 +code:0C99 movc A, @A+DPTR +code:0C9A jnz code_CA9 +code:0C9C inc DPTR +code:0C9D inc DPTR +code:0C9E +code:0C9E code_C9E: ; CODE XREF: code_C8F+30↓j +code:0C9E movc A, @A+DPTR +code:0C9F mov R0, A +code:0CA0 mov A, #1 +code:0CA2 movc A, @A+DPTR +code:0CA3 mov DP0L, A ; Data Pointer Low Byte +code:0CA5 mov DP0H, R0 ; Data Pointer High Byte +code:0CA7 clr A +code:0CA8 jmp @A+DPTR +code:0CA9 ; --------------------------------------------------------------------------- +code:0CA9 +code:0CA9 code_CA9: ; CODE XREF: code_C8F+6↑j +code:0CA9 ; code_C8F+B↑j +code:0CA9 mov A, #2 +code:0CAB movc A, @A+DPTR +code:0CAC xrl A, R4 +code:0CAD jnz code_CC1 +code:0CAF mov A, #3 +code:0CB1 movc A, @A+DPTR +code:0CB2 xrl A, R5 +code:0CB3 jnz code_CC1 +code:0CB5 mov A, #4 +code:0CB7 movc A, @A+DPTR +code:0CB8 xrl A, R6 +code:0CB9 jnz code_CC1 +code:0CBB mov A, #5 +code:0CBD movc A, @A+DPTR +code:0CBE xrl A, R7 +code:0CBF jz code_C9E +code:0CC1 +code:0CC1 code_CC1: ; CODE XREF: code_C8F+1E↑j +code:0CC1 ; code_C8F+24↑j ... +code:0CC1 inc DPTR +code:0CC2 inc DPTR +code:0CC3 inc DPTR +code:0CC4 inc DPTR +code:0CC5 inc DPTR +code:0CC6 inc DPTR +code:0CC7 sjmp code_C93 +code:0CC7 ; End of function code_C8F +code:0CC7 +code:0CC9 +code:0CC9 ; =============== S U B R O U T I N E ======================================= +code:0CC9 +code:0CC9 +code:0CC9 multiply_and_add_code_CC9: ; CODE XREF: code_1E6A+30↓p +code:0CC9 ; ROM_3671+95↓p ... +code:0CC9 mov A, R4 +code:0CCA mov B, R6 ; B Register +code:0CCC mul AB +code:0CCD xch A, R4 +code:0CCE xch A, B ; B Register +code:0CD0 xch A, R4 +code:0CD1 xch A, R5 +code:0CD2 mov R0, A +code:0CD3 mov A, R7 +code:0CD4 mul AB +code:0CD5 xch A, R6 +code:0CD6 xch A, B ; B Register +code:0CD8 add A, R5 +code:0CD9 mov R5, A +code:0CDA clr A +code:0CDB addc A, R4 +code:0CDC mov R4, A +code:0CDD mov A, R0 +code:0CDE mul AB +code:0CDF add A, R6 +code:0CE0 xch A, R0 +code:0CE1 xch A, B ; B Register +code:0CE3 addc A, R5 +code:0CE4 mov R5, A +code:0CE5 clr A +code:0CE6 addc A, R4 +code:0CE7 mov R4, A +code:0CE8 mov A, R7 +code:0CE9 mul AB +code:0CEA mov R7, A +code:0CEB mov A, B ; B Register +code:0CED add A, R0 +code:0CEE mov R6, A +code:0CEF clr A +code:0CF0 addc A, R5 +code:0CF1 mov R5, A +code:0CF2 clr A +code:0CF3 addc A, R4 +code:0CF4 mov R4, A +code:0CF5 ret +code:0CF5 ; End of function multiply_and_add_code_CC9 +code:0CF5 +code:0CF5 ; --------------------------------------------------------------------------- +code:0CF6 .byte 0xE3 +code:0CF7 .byte 0xF5 +code:0CF8 .byte 0xF0 +code:0CF9 .byte 9 +code:0CFA .byte 0xE2 +code:0CFB .byte 8 +code:0CFC .byte 0xB5 +code:0CFD .byte 0xF0 +code:0CFE .byte 0x6B ; k +code:0CFF .byte 0xDF +code:0D00 .byte 0xF5 +code:0D01 .byte 0x80 +code:0D02 .byte 0x67 ; g +code:0D03 .byte 0xE3 +code:0D04 .byte 0xF5 +code:0D05 .byte 0xF0 +code:0D06 .byte 9 +code:0D07 .byte 0xE6 +code:0D08 .byte 8 +code:0D09 .byte 0xB5 +code:0D0A .byte 0xF0 +code:0D0B .byte 0x5E ; ^ +code:0D0C .byte 0xDF +code:0D0D .byte 0xF5 +code:0D0E .byte 0x80 +code:0D0F .byte 0x5A ; Z +code:0D10 .byte 0x87 +code:0D11 .byte 0xF0 +code:0D12 .byte 9 +code:0D13 .byte 0xE6 +code:0D14 .byte 8 +code:0D15 .byte 0xB5 +code:0D16 .byte 0xF0 +code:0D17 .byte 0x52 ; R +code:0D18 .byte 0xDF +code:0D19 .byte 0xF6 +code:0D1A .byte 0x80 +code:0D1B .byte 0x4E ; N +code:0D1C .byte 0x87 +code:0D1D .byte 0xF0 +code:0D1E .byte 9 +code:0D1F .byte 0xE2 +code:0D20 .byte 8 +code:0D21 .byte 0xB5 +code:0D22 .byte 0xF0 +code:0D23 .byte 0x46 ; F +code:0D24 .byte 0xDF +code:0D25 .byte 0xF6 +code:0D26 .byte 0x80 +code:0D27 .byte 0x42 ; B +code:0D28 .byte 0x88 +code:0D29 .byte 0x82 +code:0D2A .byte 0x8C +code:0D2B .byte 0x83 +code:0D2C .byte 0x87 +code:0D2D .byte 0xF0 +code:0D2E .byte 9 +code:0D2F .byte 0xE0 +code:0D30 .byte 0xA3 +code:0D31 .byte 0xB5 +code:0D32 .byte 0xF0 +code:0D33 .byte 0x36 ; 6 +code:0D34 .byte 0xDF +code:0D35 .byte 0xF6 +code:0D36 .byte 0x80 +code:0D37 .byte 0x32 ; 2 +code:0D38 .byte 0x88 +code:0D39 .byte 0x82 +code:0D3A .byte 0x8C +code:0D3B .byte 0x83 +code:0D3C .byte 0x87 +code:0D3D .byte 0xF0 +code:0D3E .byte 9 +code:0D3F .byte 0xE4 +code:0D40 .byte 0x93 +code:0D41 .byte 0xA3 +code:0D42 .byte 0xB5 +code:0D43 .byte 0xF0 +code:0D44 .byte 0x25 ; % +code:0D45 .byte 0xDF +code:0D46 .byte 0xF5 +code:0D47 .byte 0x80 +code:0D48 .byte 0x21 ; ! +code:0D49 .byte 0x88 +code:0D4A .byte 0x82 +code:0D4B .byte 0x8C +code:0D4C .byte 0x83 +code:0D4D .byte 0xE3 +code:0D4E .byte 0xF5 +code:0D4F .byte 0xF0 +code:0D50 .byte 9 +code:0D51 .byte 0xE0 +code:0D52 .byte 0xA3 +code:0D53 .byte 0xB5 +code:0D54 .byte 0xF0 +code:0D55 .byte 0x14 +code:0D56 .byte 0xDF +code:0D57 .byte 0xF5 +code:0D58 .byte 0x80 +code:0D59 .byte 0x10 +code:0D5A .byte 0x88 +code:0D5B .byte 0x82 +code:0D5C .byte 0x8C +code:0D5D .byte 0x83 +code:0D5E .byte 0xE3 +code:0D5F .byte 0xF5 +code:0D60 .byte 0xF0 +code:0D61 .byte 9 +code:0D62 .byte 0xE4 +code:0D63 .byte 0x93 +code:0D64 .byte 0xA3 +code:0D65 .byte 0xB5 +code:0D66 .byte 0xF0 +code:0D67 .byte 2 +code:0D68 .byte 0xDF +code:0D69 .byte 0xF4 +code:0D6A .byte 2 +code:0D6B .byte 0xE +code:0D6C .byte 0x25 ; % +code:0D6D .byte 0x80 +code:0D6E .byte 0x87 +code:0D6F .byte 0x80 +code:0D70 .byte 0xE9 +code:0D71 .byte 0x80 +code:0D72 .byte 0x90 +code:0D73 .byte 0x80 +code:0D74 .byte 0xD4 +code:0D75 .byte 0x80 +code:0D76 .byte 0x3E ; > +code:0D77 .byte 0x80 +code:0D78 .byte 0x15 +code:0D79 .byte 0x80 +code:0D7A .byte 0x6E ; n +code:0D7B .byte 0x80 +code:0D7C .byte 0x7E ; ~ +code:0D7D .byte 0x80 +code:0D7E .byte 0x9D +code:0D7F .byte 0x80 +code:0D80 .byte 0xB7 +code:0D81 .byte 0x80 +code:0D82 .byte 0x8D +code:0D83 .byte 0x80 +code:0D84 .byte 0xA3 +code:0D85 .byte 0x80 +code:0D86 .byte 0x51 ; Q +code:0D87 .byte 0x80 +code:0D88 .byte 0x74 ; t +code:0D89 .byte 0x80 +code:0D8A .byte 0x3C ; < +code:0D8B .byte 2 +code:0D8C .byte 0xE +code:0D8D .byte 0x31 ; 1 +code:0D8E .byte 0x89 +code:0D8F .byte 0x82 +code:0D90 .byte 0x8A +code:0D91 .byte 0x83 +code:0D92 .byte 0xEC +code:0D93 .byte 0xFA +code:0D94 .byte 0xE4 +code:0D95 .byte 0x93 +code:0D96 .byte 0xF5 +code:0D97 .byte 0xF0 +code:0D98 .byte 0xA3 +code:0D99 .byte 0xC8 +code:0D9A .byte 0xC5 +code:0D9B .byte 0x82 +code:0D9C .byte 0xC8 +code:0D9D .byte 0xCC +code:0D9E .byte 0xC5 +code:0D9F .byte 0x83 +code:0DA0 .byte 0xCC +code:0DA1 .byte 0xE4 +code:0DA2 .byte 0x93 +code:0DA3 .byte 0xA3 +code:0DA4 .byte 0xC8 +code:0DA5 .byte 0xC5 +code:0DA6 .byte 0x82 +code:0DA7 .byte 0xC8 +code:0DA8 .byte 0xCC +code:0DA9 .byte 0xC5 +code:0DAA .byte 0x83 +code:0DAB .byte 0xCC +code:0DAC .byte 0xB5 +code:0DAD .byte 0xF0 +code:0DAE .byte 0x76 ; v +code:0DAF .byte 0xDF +code:0DB0 .byte 0xE3 +code:0DB1 .byte 0xDE +code:0DB2 .byte 0xE1 +code:0DB3 .byte 0x80 +code:0DB4 .byte 0x70 ; p +code:0DB5 .byte 0x89 +code:0DB6 .byte 0x82 +code:0DB7 .byte 0x8A +code:0DB8 .byte 0x83 +code:0DB9 .byte 0xE4 +code:0DBA .byte 0x93 +code:0DBB .byte 0xF5 +code:0DBC .byte 0xF0 +code:0DBD .byte 0xA3 +code:0DBE .byte 0xE2 +code:0DBF .byte 8 +code:0DC0 .byte 0xB5 +code:0DC1 .byte 0xF0 +code:0DC2 .byte 0x62 ; b +code:0DC3 .byte 0xDF +code:0DC4 .byte 0xF4 +code:0DC5 .byte 0x80 +code:0DC6 .byte 0x5E ; ^ +code:0DC7 .byte 0x89 +code:0DC8 .byte 0x82 +code:0DC9 .byte 0x8A +code:0DCA .byte 0x83 +code:0DCB .byte 0xE0 +code:0DCC .byte 0xF5 +code:0DCD .byte 0xF0 +code:0DCE .byte 0xA3 +code:0DCF .byte 0xE6 +code:0DD0 .byte 8 +code:0DD1 .byte 0xB5 +code:0DD2 .byte 0xF0 +code:0DD3 .byte 0x51 ; Q +code:0DD4 .byte 0xDF +code:0DD5 .byte 0xF5 +code:0DD6 .byte 0x80 +code:0DD7 .byte 0x4D ; M +code:0DD8 .byte 0x89 +code:0DD9 .byte 0x82 +code:0DDA .byte 0x8A +code:0DDB .byte 0x83 +code:0DDC .byte 0xE0 +code:0DDD .byte 0xF5 +code:0DDE .byte 0xF0 +code:0DDF .byte 0xA3 +code:0DE0 .byte 0xE2 +code:0DE1 .byte 8 +code:0DE2 .byte 0xB5 +code:0DE3 .byte 0xF0 +code:0DE4 .byte 0x40 ; @ +code:0DE5 .byte 0xDF +code:0DE6 .byte 0xF5 +code:0DE7 .byte 0x80 +code:0DE8 .byte 0x3C ; < +code:0DE9 .byte 0x89 +code:0DEA .byte 0x82 +code:0DEB .byte 0x8A +code:0DEC .byte 0x83 +code:0DED .byte 0xE4 +code:0DEE .byte 0x93 +code:0DEF .byte 0xF5 +code:0DF0 .byte 0xF0 +code:0DF1 .byte 0xA3 +code:0DF2 .byte 0xE6 +code:0DF3 .byte 8 +code:0DF4 .byte 0xB5 +code:0DF5 .byte 0xF0 +code:0DF6 .byte 0x2E ; . +code:0DF7 .byte 0xDF +code:0DF8 .byte 0xF4 +code:0DF9 .byte 0x80 +code:0DFA .byte 0x2A ; * +code:0DFB .byte 0x80 +code:0DFC .byte 2 +code:0DFD .byte 0x80 +code:0DFE .byte 0x57 ; W +code:0DFF .byte 0x89 +code:0E00 .byte 0x82 +code:0E01 .byte 0x8A +code:0E02 .byte 0x83 +code:0E03 .byte 0xEC +code:0E04 .byte 0xFA +code:0E05 .byte 0xE4 +code:0E06 .byte 0x93 +code:0E07 .byte 0xF5 +code:0E08 .byte 0xF0 +code:0E09 .byte 0xA3 +code:0E0A .byte 0xC8 +code:0E0B .byte 0xC5 +code:0E0C .byte 0x82 +code:0E0D .byte 0xC8 +code:0E0E .byte 0xCC +code:0E0F .byte 0xC5 +code:0E10 .byte 0x83 +code:0E11 .byte 0xCC +code:0E12 .byte 0xE0 +code:0E13 .byte 0xA3 +code:0E14 .byte 0xC8 +code:0E15 .byte 0xC5 +code:0E16 .byte 0x82 +code:0E17 .byte 0xC8 +code:0E18 .byte 0xCC +code:0E19 .byte 0xC5 +code:0E1A .byte 0x83 +code:0E1B .byte 0xCC +code:0E1C .byte 0xB5 +code:0E1D .byte 0xF0 +code:0E1E .byte 6 +code:0E1F .byte 0xDF +code:0E20 .byte 0xE4 +code:0E21 .byte 0xDE +code:0E22 .byte 0xE2 +code:0E23 .byte 0x80 +code:0E24 .byte 0 +code:0E25 ; --------------------------------------------------------------------------- +code:0E25 ; START OF FUNCTION CHUNK FOR code_E7C +code:0E25 +code:0E25 code_E25: ; CODE XREF: code_E7C:code_E8B↓j +code:0E25 ; code_E7C:code_E95↓j +code:0E25 mov R7, #0xFF +code:0E27 cjne A, B, code_E2C ; B Register +code:0E2A inc R7 +code:0E2B ret +code:0E2C ; --------------------------------------------------------------------------- +code:0E2C +code:0E2C code_E2C: ; CODE XREF: code_E7C-55↑j +code:0E2C jc code_E30 +code:0E2E mov R7, #1 +code:0E30 +code:0E30 code_E30: ; CODE XREF: code_E7C:code_E2C↑j +code:0E30 ; code_E7C+7↓j +code:0E30 ret +code:0E30 ; END OF FUNCTION CHUNK FOR code_E7C +code:0E30 ; --------------------------------------------------------------------------- +code:0E31 .byte 0x89 +code:0E32 .byte 0x82 +code:0E33 .byte 0x8A +code:0E34 .byte 0x83 +code:0E35 .byte 0xEC +code:0E36 .byte 0xFA +code:0E37 .byte 0xE0 +code:0E38 .byte 0xF5 +code:0E39 .byte 0xF0 +code:0E3A .byte 0xA3 +code:0E3B .byte 0xC8 +code:0E3C .byte 0xC5 +code:0E3D .byte 0x82 +code:0E3E .byte 0xC8 +code:0E3F .byte 0xCC +code:0E40 .byte 0xC5 +code:0E41 .byte 0x83 +code:0E42 .byte 0xCC +code:0E43 .byte 0xE0 +code:0E44 .byte 0xA3 +code:0E45 .byte 0xC8 +code:0E46 .byte 0xC5 +code:0E47 .byte 0x82 +code:0E48 .byte 0xC8 +code:0E49 .byte 0xCC +code:0E4A .byte 0xC5 +code:0E4B .byte 0x83 +code:0E4C .byte 0xCC +code:0E4D .byte 0xB5 +code:0E4E .byte 0xF0 +code:0E4F .byte 0xD5 +code:0E50 .byte 0xDF +code:0E51 .byte 0xE5 +code:0E52 .byte 0xDE +code:0E53 .byte 0xE3 +code:0E54 .byte 0x80 +code:0E55 .byte 0xCF +code:0E56 .byte 0x89 +code:0E57 .byte 0x82 +code:0E58 .byte 0x8A +code:0E59 .byte 0x83 +code:0E5A .byte 0xEC +code:0E5B .byte 0xFA +code:0E5C .byte 0xE0 +code:0E5D .byte 0xF5 +code:0E5E .byte 0xF0 +code:0E5F .byte 0xA3 +code:0E60 .byte 0xC8 +code:0E61 .byte 0xC5 +code:0E62 .byte 0x82 +code:0E63 .byte 0xC8 +code:0E64 .byte 0xCC +code:0E65 .byte 0xC5 +code:0E66 .byte 0x83 +code:0E67 .byte 0xCC +code:0E68 .byte 0xE4 +code:0E69 .byte 0x93 +code:0E6A .byte 0xA3 +code:0E6B .byte 0xC8 +code:0E6C .byte 0xC5 +code:0E6D .byte 0x82 +code:0E6E .byte 0xC8 +code:0E6F .byte 0xCC +code:0E70 .byte 0xC5 +code:0E71 .byte 0x83 +code:0E72 .byte 0xCC +code:0E73 .byte 0xB5 +code:0E74 .byte 0xF0 +code:0E75 .byte 0xAF +code:0E76 .byte 0xDF +code:0E77 .byte 0xE4 +code:0E78 .byte 0xDE +code:0E79 .byte 0xE2 +code:0E7A .byte 0x80 +code:0E7B .byte 0xA9 +code:0E7C +code:0E7C ; =============== S U B R O U T I N E ======================================= +code:0E7C +code:0E7C +code:0E7C code_E7C: ; CODE XREF: ROM_47EB+3↓j +code:0E7C ; ROM_5F8D+4↓p ... +code:0E7C +code:0E7C ; FUNCTION CHUNK AT code:0E25 SIZE 0000000C BYTES +code:0E7C +code:0E7C mov B, R0 ; B Register +code:0E7E mov A, R7 +code:0E7F jz code_E82 +code:0E81 inc R6 +code:0E82 +code:0E82 code_E82: ; CODE XREF: code_E7C+3↑j +code:0E82 orl A, R6 +code:0E83 jz code_E30 +code:0E85 mov A, R5 +code:0E86 add A, #2 +code:0E88 cjne A, #4, code_E8B +code:0E8B +code:0E8B code_E8B: ; CODE XREF: code_E7C+C↑j +code:0E8B jnc code_E25 +code:0E8D mov DP0L, A ; Data Pointer Low Byte +code:0E8F mov A, R3 +code:0E90 add A, #2 +code:0E92 cjne A, #4, code_E95 +code:0E95 +code:0E95 code_E95: ; CODE XREF: code_E7C+16↑j +code:0E95 jnc code_E25 +code:0E97 rl A +code:0E98 rl A +code:0E99 orl A, DP0L ; Data Pointer Low Byte +code:0E9B rl A +code:0E9C mov DPTR, #0xD6D +code:0E9F jmp @A+DPTR +code:0E9F ; End of function code_E7C +code:0E9F +code:0EA0 +code:0EA0 ; =============== S U B R O U T I N E ======================================= +code:0EA0 +code:0EA0 +code:0EA0 code_EA0: ; CODE XREF: initialize_variables_code_1D51+15↓p +code:0EA0 ; ROM_2916+1CE↓p ... +code:0EA0 mov A, R7 +code:0EA1 orl A, R6 +code:0EA2 jz code_EB6 +code:0EA4 mov A, R7 +code:0EA5 jz code_EA8 +code:0EA7 inc R6 +code:0EA8 +code:0EA8 code_EA8: ; CODE XREF: code_EA0+5↑j +code:0EA8 mov A, R5 +code:0EA9 cjne R3, #1, code_EB7 +code:0EAC mov DP0L, R1 ; Data Pointer Low Byte +code:0EAE mov DP0H, R2 ; Data Pointer High Byte +code:0EB0 +code:0EB0 code_EB0: ; CODE XREF: code_EA0+12↓j +code:0EB0 ; code_EA0+14↓j +code:0EB0 movx @DPTR, A +code:0EB1 inc DPTR +code:0EB2 djnz R7, code_EB0 +code:0EB4 djnz R6, code_EB0 +code:0EB6 +code:0EB6 code_EB6: ; CODE XREF: code_EA0+2↑j +code:0EB6 ret +code:0EB7 ; --------------------------------------------------------------------------- +code:0EB7 +code:0EB7 code_EB7: ; CODE XREF: code_EA0+9↑j +code:0EB7 mov B, R1 ; B Register +code:0EB9 jnc code_EC2 +code:0EBB +code:0EBB code_EBB: ; CODE XREF: code_EA0+1D↓j +code:0EBB mov @R1, A +code:0EBC inc R1 +code:0EBD djnz R7, code_EBB +code:0EBF mov R1, B ; B Register +code:0EC1 +code:0EC1 code_EC1: ; CODE XREF: code_EA0:code_EC2↓j +code:0EC1 ret +code:0EC2 ; --------------------------------------------------------------------------- +code:0EC2 +code:0EC2 code_EC2: ; CODE XREF: code_EA0+19↑j +code:0EC2 cjne R3, #0xFE, code_EC1 +code:0EC5 +code:0EC5 code_EC5: ; CODE XREF: code_EA0+27↓j +code:0EC5 movx @R1, A +code:0EC6 inc R1 +code:0EC7 djnz R7, code_EC5 +code:0EC9 mov R1, B ; B Register +code:0ECB ret +code:0ECB ; End of function code_EA0 +code:0ECB +code:0ECC ; --------------------------------------------------------------------------- +code:0ECC ; START OF FUNCTION CHUNK FOR code_B53 +code:0ECC +code:0ECC code_ECC: ; CODE XREF: code_B53+E↑j +code:0ECC mov A, @R0 +code:0ECD mov R4, A +code:0ECE inc R0 +code:0ECF mov A, @R0 +code:0ED0 mov R5, A +code:0ED1 inc R0 +code:0ED2 mov A, @R0 +code:0ED3 mov R6, A +code:0ED4 inc R0 +code:0ED5 mov A, @R0 +code:0ED6 mov R7, A +code:0ED7 ret +code:0ED7 ; END OF FUNCTION CHUNK FOR code_B53 +code:0ED8 +code:0ED8 ; =============== S U B R O U T I N E ======================================= +code:0ED8 +code:0ED8 +code:0ED8 read_4_bytes_into_R4_R7_code_ED8: ; CODE XREF: code_B53+7↑j +code:0ED8 ; encryption_something_maybe_code_107D+3↓p +code:0ED8 movx A, @DPTR +code:0ED9 mov R4, A +code:0EDA inc DPTR +code:0EDB movx A, @DPTR +code:0EDC mov R5, A +code:0EDD inc DPTR +code:0EDE movx A, @DPTR +code:0EDF mov R6, A +code:0EE0 inc DPTR +code:0EE1 movx A, @DPTR +code:0EE2 mov R7, A +code:0EE3 ret +code:0EE3 ; End of function read_4_bytes_into_R4_R7_code_ED8 +code:0EE3 +code:0EE4 ; --------------------------------------------------------------------------- +code:0EE4 ; START OF FUNCTION CHUNK FOR code_B53 +code:0EE4 +code:0EE4 code_EE4: ; CODE XREF: code_B53+16↑j +code:0EE4 movx A, @R0 +code:0EE5 mov R4, A +code:0EE6 inc R0 +code:0EE7 movx A, @R0 +code:0EE8 mov R5, A +code:0EE9 inc R0 +code:0EEA movx A, @R0 +code:0EEB mov R6, A +code:0EEC inc R0 +code:0EED movx A, @R0 +code:0EEE mov R7, A +code:0EEF ret +code:0EF0 ; --------------------------------------------------------------------------- +code:0EF0 +code:0EF0 code_EF0: ; CODE XREF: code_B53+1D↑j +code:0EF0 clr A +code:0EF1 movc A, @A+DPTR +code:0EF2 mov R4, A +code:0EF3 mov A, #1 +code:0EF5 movc A, @A+DPTR +code:0EF6 mov R5, A +code:0EF7 mov A, #2 +code:0EF9 movc A, @A+DPTR +code:0EFA mov R6, A +code:0EFB mov A, #3 +code:0EFD movc A, @A+DPTR +code:0EFE mov R7, A +code:0EFF ret +code:0EFF ; END OF FUNCTION CHUNK FOR code_B53 +code:0F00 ; --------------------------------------------------------------------------- +code:0F00 ; START OF FUNCTION CHUNK FOR code_B8D +code:0F00 +code:0F00 code_F00: ; CODE XREF: code_B8D+E↑j +code:0F00 mov A, @R0 +code:0F01 mov R3, A +code:0F02 inc R0 +code:0F03 mov A, @R0 +code:0F04 mov R1, A +code:0F05 inc R0 +code:0F06 mov A, @R0 +code:0F07 mov R2, A +code:0F08 inc R0 +code:0F09 mov A, @R0 +code:0F0A xch A, R3 +code:0F0B mov R0, A +code:0F0C ret +code:0F0D ; --------------------------------------------------------------------------- +code:0F0D +code:0F0D code_F0D: ; CODE XREF: code_B8D+7↑j +code:0F0D movx A, @DPTR +code:0F0E mov R0, A +code:0F0F inc DPTR +code:0F10 movx A, @DPTR +code:0F11 mov R1, A +code:0F12 inc DPTR +code:0F13 movx A, @DPTR +code:0F14 mov R2, A +code:0F15 inc DPTR +code:0F16 movx A, @DPTR +code:0F17 mov R3, A +code:0F18 ret +code:0F19 ; --------------------------------------------------------------------------- +code:0F19 +code:0F19 code_F19: ; CODE XREF: code_B8D+16↑j +code:0F19 movx A, @R0 +code:0F1A mov R3, A +code:0F1B inc R0 +code:0F1C movx A, @R0 +code:0F1D mov R1, A +code:0F1E inc R0 +code:0F1F movx A, @R0 +code:0F20 mov R2, A +code:0F21 inc R0 +code:0F22 movx A, @R0 +code:0F23 xch A, R3 +code:0F24 mov R0, A +code:0F25 ret +code:0F26 ; --------------------------------------------------------------------------- +code:0F26 +code:0F26 code_F26: ; CODE XREF: code_B8D+1D↑j +code:0F26 clr A +code:0F27 movc A, @A+DPTR +code:0F28 mov R0, A +code:0F29 mov A, #1 +code:0F2B movc A, @A+DPTR +code:0F2C mov R1, A +code:0F2D mov A, #2 +code:0F2F movc A, @A+DPTR +code:0F30 mov R2, A +code:0F31 mov A, #3 +code:0F33 movc A, @A+DPTR +code:0F34 mov R3, A +code:0F35 ret +code:0F35 ; END OF FUNCTION CHUNK FOR code_B8D +code:0F36 ; --------------------------------------------------------------------------- +code:0F36 ; START OF FUNCTION CHUNK FOR code_B73 +code:0F36 +code:0F36 code_F36: ; CODE XREF: code_B73+E↑j +code:0F36 mov A, R4 +code:0F37 mov @R0, A +code:0F38 inc R0 +code:0F39 mov A, R5 +code:0F3A mov @R0, A +code:0F3B inc R0 +code:0F3C mov A, R6 +code:0F3D mov @R0, A +code:0F3E inc R0 +code:0F3F mov A, R7 +code:0F40 mov @R0, A +code:0F41 ret +code:0F42 ; --------------------------------------------------------------------------- +code:0F42 +code:0F42 code_F42: ; CODE XREF: code_B73+16↑j +code:0F42 mov A, R4 +code:0F43 movx @R0, A +code:0F44 inc R0 +code:0F45 mov A, R5 +code:0F46 movx @R0, A +code:0F47 inc R0 +code:0F48 mov A, R6 +code:0F49 movx @R0, A +code:0F4A inc R0 +code:0F4B mov A, R7 +code:0F4C movx @R0, A +code:0F4D ret +code:0F4D ; END OF FUNCTION CHUNK FOR code_B73 +code:0F4E ; --------------------------------------------------------------------------- +code:0F4E ; START OF FUNCTION CHUNK FOR code_BFA +code:0F4E +code:0F4E code_F4E: ; CODE XREF: code_BFA+E↑j +code:0F4E mov A, @R0 +code:0F4F mov R3, A +code:0F50 inc R0 +code:0F51 mov A, @R0 +code:0F52 mov R2, A +code:0F53 inc R0 +code:0F54 mov A, @R0 +code:0F55 mov R1, A +code:0F56 ret +code:0F56 ; END OF FUNCTION CHUNK FOR code_BFA +code:0F57 ; --------------------------------------------------------------------------- +code:0F57 ; START OF FUNCTION CHUNK FOR code_C1A +code:0F57 +code:0F57 code_F57: ; CODE XREF: code_C1A+32↑j +code:0F57 mov A, R3 +code:0F58 mov @R0, A +code:0F59 inc R0 +code:0F5A mov A, R2 +code:0F5B mov @R0, A +code:0F5C inc R0 +code:0F5D mov A, R1 +code:0F5E mov @R0, A +code:0F5F ret +code:0F5F ; END OF FUNCTION CHUNK FOR code_C1A +code:0F60 ; --------------------------------------------------------------------------- +code:0F60 ; START OF FUNCTION CHUNK FOR code_BFA +code:0F60 +code:0F60 code_F60: ; CODE XREF: code_BFA+7↑j +code:0F60 movx A, @DPTR +code:0F61 mov R3, A +code:0F62 inc DPTR +code:0F63 movx A, @DPTR +code:0F64 mov R2, A +code:0F65 inc DPTR +code:0F66 movx A, @DPTR +code:0F67 mov R1, A +code:0F68 ret +code:0F68 ; END OF FUNCTION CHUNK FOR code_BFA +code:0F69 ; --------------------------------------------------------------------------- +code:0F69 ; START OF FUNCTION CHUNK FOR code_C1A +code:0F69 +code:0F69 code_F69: ; CODE XREF: code_C1A+1A↑j +code:0F69 mov A, R3 +code:0F6A movx @DPTR, A +code:0F6B inc DPTR +code:0F6C mov A, R2 +code:0F6D movx @DPTR, A +code:0F6E inc DPTR +code:0F6F mov A, R1 +code:0F70 movx @DPTR, A +code:0F71 ret +code:0F71 ; END OF FUNCTION CHUNK FOR code_C1A +code:0F72 ; --------------------------------------------------------------------------- +code:0F72 ; START OF FUNCTION CHUNK FOR code_BFA +code:0F72 +code:0F72 code_F72: ; CODE XREF: code_BFA+16↑j +code:0F72 movx A, @R0 +code:0F73 mov R3, A +code:0F74 inc R0 +code:0F75 movx A, @R0 +code:0F76 mov R2, A +code:0F77 inc R0 +code:0F78 movx A, @R0 +code:0F79 mov R1, A +code:0F7A ret +code:0F7A ; END OF FUNCTION CHUNK FOR code_BFA +code:0F7B ; --------------------------------------------------------------------------- +code:0F7B ; START OF FUNCTION CHUNK FOR code_C1A +code:0F7B +code:0F7B code_F7B: ; CODE XREF: code_C1A+4B↑j +code:0F7B mov A, R3 +code:0F7C movx @R0, A +code:0F7D inc R0 +code:0F7E mov A, R2 +code:0F7F movx @R0, A +code:0F80 inc R0 +code:0F81 mov A, R1 +code:0F82 movx @R0, A +code:0F83 ret +code:0F83 ; END OF FUNCTION CHUNK FOR code_C1A +code:0F84 ; --------------------------------------------------------------------------- +code:0F84 ; START OF FUNCTION CHUNK FOR code_BFA +code:0F84 +code:0F84 code_F84: ; CODE XREF: code_BFA+1D↑j +code:0F84 clr A +code:0F85 movc A, @A+DPTR +code:0F86 mov R3, A +code:0F87 mov A, #1 +code:0F89 movc A, @A+DPTR +code:0F8A mov R2, A +code:0F8B mov A, #2 +code:0F8D movc A, @A+DPTR +code:0F8E mov R1, A +code:0F8F ret +code:0F8F ; END OF FUNCTION CHUNK FOR code_BFA +code:0F8F ; --------------------------------------------------------------------------- +code:0F90 .byte 0x41 ; A +code:0F91 .byte 0xFD +code:0F92 .byte 0xC5 +code:0F93 .byte 1 +code:0F94 .byte 0x41 ; A +code:0F95 .byte 0xFD +code:0F96 .byte 0x94 +code:0F97 .byte 0 +code:0F98 .byte 0x41 ; A +code:0F99 .byte 0xFD +code:0F9A .byte 0xC4 +code:0F9B .byte 0 +code:0F9C .byte 0x41 ; A +code:0F9D .byte 0xFD +code:0F9E .byte 0xD5 +code:0F9F .byte 0 +code:0FA0 .byte 0x41 ; A +code:0FA1 .byte 0xFD +code:0FA2 .byte 0xD3 +code:0FA3 .byte 0 +code:0FA4 .byte 0x42 ; B +code:0FA5 .byte 0xFD +code:0FA6 .byte 0x9D +code:0FA7 .byte 0 +code:0FA8 .byte 0x19 +code:0FA9 .byte 0x41 ; A +code:0FAA .byte 0xF6 +code:0FAB .byte 0x7B ; { +code:0FAC .byte 0 +code:0FAD .byte 0x41 ; A +code:0FAE .byte 0xF5 +code:0FAF .byte 0x3A ; : +code:0FB0 .byte 0 +code:0FB1 .byte 0x41 ; A +code:0FB2 .byte 0xF4 +code:0FB3 .byte 0x90 +code:0FB4 .byte 0 +code:0FB5 .byte 0x44 ; D +code:0FB6 .byte 0xF5 +code:0FB7 .byte 0x2E ; . +code:0FB8 .byte 0 +code:0FB9 .byte 0 +code:0FBA .byte 0 +code:0FBB .byte 0 +code:0FBC .byte 0x45 ; E +code:0FBD .byte 0xFD +code:0FBE .byte 0x42 ; B +code:0FBF .byte 2 +code:0FC0 .byte 0x43 ; C +code:0FC1 .byte 0x41 ; A +code:0FC2 .byte 0x46 ; F +code:0FC3 .byte 0x45 ; E +code:0FC4 .byte 0x41 ; A +code:0FC5 .byte 0xFE +code:0FC6 .byte 0x67 ; g +code:0FC7 .byte 0 +code:0FC8 .byte 0x4C ; L +code:0FC9 .byte 0xFD +code:0FCA .byte 0x74 ; t +code:0FCB .byte 0xFF +code:0FCC .byte 0x1A +code:0FCD .byte 0x42 ; B +code:0FCE .byte 0xFF +code:0FCF .byte 0x1A +code:0FD0 .byte 0x72 ; r +code:0FD1 .byte 0xFF +code:0FD2 .byte 0x1A +code:0FD3 .byte 0xA2 +code:0FD4 .byte 0xFF +code:0FD5 .byte 0x1A +code:0FD6 .byte 0xD2 +code:0FD7 .byte 0x52 ; R +code:0FD8 .byte 0xFD +code:0FD9 .byte 0x82 +code:0FDA .byte 0xFF +code:0FDB .byte 0x1B +code:0FDC .byte 2 +code:0FDD .byte 0xFF +code:0FDE .byte 0x1B +code:0FDF .byte 0x20 +code:0FE0 .byte 0xFF +code:0FE1 .byte 0x1B +code:0FE2 .byte 0x3E ; > +code:0FE3 .byte 0xFF +code:0FE4 .byte 0x1B +code:0FE5 .byte 0x5C ; \ +code:0FE6 .byte 0xFF +code:0FE7 .byte 0x1B +code:0FE8 .byte 0x7A ; z +code:0FE9 .byte 0xFF +code:0FEA .byte 0x1B +code:0FEB .byte 0x98 +code:0FEC .byte 0x44 ; D +code:0FED .byte 0xFD +code:0FEE .byte 0x4B ; K +code:0FEF .byte 0xA +code:0FF0 .byte 0x14 +code:0FF1 .byte 0x1E +code:0FF2 .byte 0x28 ; ( +code:0FF3 .byte 0x46 ; F +code:0FF4 .byte 0xFD +code:0FF5 .byte 0x6E ; n +code:0FF6 .byte 3 +code:0FF7 .byte 6 +code:0FF8 .byte 0xA +code:0FF9 .byte 0x11 +code:0FFA .byte 0x17 +code:0FFB .byte 0x1E +code:0FFC .byte 0x5E ; ^ +code:0FFD .byte 0xFD +code:0FFE .byte 0x4F ; O +code:0FFF .byte 0x66 ; f +code:1000 .byte 0x66 ; f +code:1001 .byte 0x66 ; f +code:1002 .byte 0x55 ; U +code:1003 .byte 0x55 ; U +code:1004 .byte 0x55 ; U +code:1005 .byte 0xAA +code:1006 .byte 0xAA +code:1007 .byte 0xAA +code:1008 .byte 0x55 ; U +code:1009 .byte 0x55 ; U +code:100A .byte 0xAA +code:100B .byte 0xAA +code:100C .byte 0x55 ; U +code:100D .byte 0xAA +code:100E .byte 0x99 +code:100F .byte 0x88 +code:1010 .byte 0x11 +code:1011 .byte 0x11 +code:1012 .byte 0x88 +code:1013 .byte 0xFF +code:1014 .byte 0xFF +code:1015 .byte 0xFF +code:1016 .byte 0xFF +code:1017 .byte 0xFF +code:1018 .byte 0xFF +code:1019 .byte 0xFF +code:101A .byte 0xFF +code:101B .byte 0xFF +code:101C .byte 0xFF +code:101D .byte 0x44 ; D +code:101E .byte 0xFD +code:101F .byte 0x47 ; G +code:1020 .byte 0x2A ; * +code:1021 .byte 0x2A ; * +code:1022 .byte 0x2A ; * +code:1023 .byte 0x2A ; * +code:1024 .byte 0x41 ; A +code:1025 .byte 0xFD +code:1026 .byte 0x80 +code:1027 .byte 0 +code:1028 .byte 0x41 ; A +code:1029 .byte 0xFD +code:102A .byte 0x81 +code:102B .byte 0 +code:102C .byte 0x44 ; D +code:102D .byte 0xF7 +code:102E .byte 9 +code:102F .byte 0 +code:1030 .byte 0 +code:1031 .byte 0 +code:1032 .byte 0 +code:1033 .byte 0xC1 +code:1034 .byte 2 +code:1035 .byte 0x42 ; B +code:1036 .byte 0xFE +code:1037 .byte 0xBB +code:1038 .byte 0 +code:1039 .byte 0 +code:103A .byte 0x44 ; D +code:103B .byte 0xF7 +code:103C .byte 0x1C +code:103D .byte 0 +code:103E .byte 0 +code:103F .byte 0 +code:1040 .byte 0 +code:1041 .byte 0x44 ; D +code:1042 .byte 0xF7 +code:1043 .byte 0x18 +code:1044 .byte 0 +code:1045 .byte 0 +code:1046 .byte 0 +code:1047 .byte 0 +code:1048 .byte 0x44 ; D +code:1049 .byte 0xF7 +code:104A .byte 0x14 +code:104B .byte 0 +code:104C .byte 0 +code:104D .byte 0 +code:104E .byte 0 +code:104F .byte 0x42 ; B +code:1050 .byte 0xF7 +code:1051 .byte 0x20 +code:1052 .byte 0xE8 +code:1053 .byte 0x64 ; d +code:1054 .byte 0x42 ; B +code:1055 .byte 0xF7 +code:1056 .byte 0x22 ; " +code:1057 .byte 0xEA +code:1058 .byte 0xC4 +code:1059 .byte 0x41 ; A +code:105A .byte 0xFD +code:105B .byte 0xEA +code:105C .byte 0xFF +code:105D .byte 0x44 ; D +code:105E .byte 0xFD +code:105F .byte 0xD6 +code:1060 .byte 0 +code:1061 .byte 0 +code:1062 .byte 0 +code:1063 .byte 0 +code:1064 .byte 0x41 ; A +code:1065 .byte 0xFD +code:1066 .byte 0xDA +code:1067 .byte 0 +code:1068 .byte 0x42 ; B +code:1069 .byte 0xFD +code:106A .byte 0xDB +code:106B .byte 0 +code:106C .byte 0 +code:106D .byte 0x42 ; B +code:106E .byte 0xFD +code:106F .byte 0xDD +code:1070 .byte 0 +code:1071 .byte 0 +code:1072 .byte 0x42 ; B +code:1073 .byte 0xFD +code:1074 .byte 0xDF +code:1075 .byte 0 +code:1076 .byte 0 +code:1077 .byte 0x42 ; B +code:1078 .byte 0xFD +code:1079 .byte 0xE1 +code:107A .byte 0 +code:107B .byte 0 +code:107C .byte 0 +code:107D +code:107D ; =============== S U B R O U T I N E ======================================= +code:107D +code:107D +code:107D encryption_something_maybe_code_107D: ; CODE XREF: j_encryption_something_maybe_code_107D↑j +code:107D mov DPTR, #0xFEB5 +code:1080 lcall read_4_bytes_into_R4_R7_code_ED8 +code:1083 mov R0, #0x10 +code:1085 mov A, R4 +code:1086 orl A, R5 +code:1087 orl A, R6 +code:1088 orl A, R7 +code:1089 jnz code_108F +code:108B mov R4, #0xA5 +code:108D mov R5, #0xA5 +code:108F +code:108F code_108F: ; CODE XREF: encryption_something_maybe_code_107D+C↑j +code:108F ; encryption_something_maybe_code_107D:code_10AE↓j +code:108F clr C +code:1090 mov A, R4 +code:1091 rrc A +code:1092 mov R4, A +code:1093 mov A, R5 +code:1094 rrc A +code:1095 mov R5, A +code:1096 mov A, R6 +code:1097 rrc A +code:1098 mov R6, A +code:1099 mov A, R7 +code:109A rrc A +code:109B mov R7, A +code:109C jnc code_10AE +code:109E mov A, R4 +code:109F xrl A, #0xCC +code:10A1 mov R4, A +code:10A2 mov A, R5 +code:10A3 xrl A, #0x4C +code:10A5 mov R5, A +code:10A6 mov A, R6 +code:10A7 xrl A, #0x4E +code:10A9 mov R6, A +code:10AA mov A, R7 +code:10AB xrl A, #0xCE +code:10AD mov R7, A +code:10AE +code:10AE code_10AE: ; CODE XREF: encryption_something_maybe_code_107D+1F↑j +code:10AE djnz R0, code_108F +code:10B0 mov DPTR, #0xFEB5 +code:10B3 lcall save_4_bytes_R4_R7 +code:10B6 mov A, R6 +code:10B7 anl A, #0x7F +code:10B9 mov R6, A +code:10BA ret +code:10BA ; End of function encryption_something_maybe_code_107D +code:10BA +code:10BB ; --------------------------------------------------------------------------- +code:10BB ; START OF FUNCTION CHUNK FOR read_unknown_radio_reg_ROM_A51A +code:10BB +code:10BB code_10BB: ; CODE XREF: read_unknown_radio_reg_ROM_A51A+9↓j +code:10BB mov DPTR, #0xFEB5 +code:10BE mov A, R6 +code:10BF movx @DPTR, A +code:10C0 mov A, R7 +code:10C1 inc DPTR +code:10C2 movx @DPTR, A +code:10C3 inc DPTR +code:10C4 mov A, #0xA5 +code:10C6 movx @DPTR, A +code:10C7 inc DPTR +code:10C8 movx @DPTR, A +code:10C9 ret +code:10C9 ; END OF FUNCTION CHUNK FOR read_unknown_radio_reg_ROM_A51A +code:10C9 ; --------------------------------------------------------------------------- +code:10CA .byte 1 +code:10CB .byte 1 +code:10CC .byte 0 +code:10CD .byte 1 +code:10CE .byte 1 +code:10CF .byte 0 +code:10D0 .byte 0 +code:10D1 .byte 1 +code:10D2 .byte 1 +code:10D3 .byte 0 +code:10D4 .byte 0 +code:10D5 .byte 1 +code:10D6 .byte 1 +code:10D7 .byte 0 +code:10D8 .byte 0 +code:10D9 .byte 1 +code:10DA .byte 1 +code:10DB .byte 0 +code:10DC .byte 1 +code:10DD .byte 1 +code:10DE .byte 0 +code:10DF .byte 0 +code:10E0 .byte 1 +code:10E1 .byte 1 +code:10E2 .byte 0 +code:10E3 .byte 0 +code:10E4 .byte 1 +code:10E5 .byte 1 +code:10E6 .byte 0 +code:10E7 .byte 0 +code:10E8 .byte 1 +code:10E9 .byte 1 +code:10EA .byte 0 +code:10EB .byte 1 +code:10EC .byte 0 +code:10ED .byte 0 +code:10EE .byte 1 +code:10EF .byte 0 +code:10F0 .byte 0 +code:10F1 .byte 1 +code:10F2 .byte 1 +code:10F3 .byte 0 +code:10F4 .byte 0 +code:10F5 .byte 0 +code:10F6 .byte 1 +code:10F7 .byte 0 +code:10F8 .byte 0 +code:10F9 .byte 1 +code:10FA .byte 0 +code:10FB .byte 0 +code:10FC .byte 0 +code:10FD .byte 1 +code:10FE .byte 1 +code:10FF .byte 0 +code:1100 .byte 0 +code:1101 .byte 1 +code:1102 .byte 0 +code:1103 .byte 0 +code:1104 .byte 0 +code:1105 .byte 1 +code:1106 .byte 0 +code:1107 .byte 0 +code:1108 .byte 1 +code:1109 .byte 1 +code:110A .byte 0 +code:110B .byte 0 +code:110C .byte 1 +code:110D .byte 0 +code:110E .byte 0 +code:110F .byte 1 +code:1110 .byte 1 +code:1111 .byte 0 +code:1112 .byte 0 +code:1113 .byte 1 +code:1114 .byte 0 +code:1115 .byte 0 +code:1116 .byte 0 +code:1117 .byte 1 +code:1118 .byte 0 +code:1119 .byte 0 +code:111A .byte 1 +code:111B .byte 1 +code:111C .byte 0 +code:111D .byte 0 +code:111E .byte 0 +code:111F .byte 1 +code:1120 .byte 0 +code:1121 .byte 0 +code:1122 .byte 1 +code:1123 .byte 0 +code:1124 .byte 0 +code:1125 .byte 0 +code:1126 .byte 1 +code:1127 .byte 1 +code:1128 .byte 0 +code:1129 .byte 0 +code:112A .byte 1 +code:112B .byte 0 +code:112C .byte 0 +code:112D .byte 1 +code:112E .byte 1 +code:112F .byte 0 +code:1130 .byte 0 +code:1131 .byte 1 +code:1132 .byte 0 +code:1133 .byte 0 +code:1134 .byte 1 +code:1135 .byte 0 +code:1136 .byte 0 +code:1137 .byte 0 +code:1138 .byte 1 +code:1139 .byte 1 +code:113A .byte 0 +code:113B .byte 0 +code:113C .byte 1 +code:113D .byte 0 +code:113E .byte 0 +code:113F .byte 0 +code:1140 .byte 1 +code:1141 .byte 0 +code:1142 .byte 0 +code:1143 .byte 1 +code:1144 .byte 1 +code:1145 .byte 0 +code:1146 .byte 0 +code:1147 .byte 0 +code:1148 .byte 1 +code:1149 .byte 0 +code:114A .byte 0 +code:114B .byte 1 +code:114C .byte 0 +code:114D .byte 0 +code:114E .byte 1 +code:114F .byte 0 +code:1150 .byte 1 +code:1151 .byte 1 +code:1152 .byte 0 +code:1153 .byte 0 +code:1154 .byte 1 +code:1155 .byte 1 +code:1156 .byte 1 +code:1157 .byte 0 +code:1158 .byte 0 +code:1159 .byte 1 +code:115A .byte 0 +code:115B .byte 0 +code:115C .byte 1 +code:115D .byte 1 +code:115E .byte 0 +code:115F .byte 1 +code:1160 .byte 1 +code:1161 .byte 1 +code:1162 .byte 0 +code:1163 .byte 0 +code:1164 .byte 1 +code:1165 .byte 0 +code:1166 .byte 0 +code:1167 .byte 1 +code:1168 .byte 1 +code:1169 .byte 0 +code:116A .byte 0 +code:116B .byte 1 +code:116C .byte 1 +code:116D .byte 1 +code:116E .byte 0 +code:116F .byte 1 +code:1170 .byte 0 +code:1171 .byte 1 +code:1172 .byte 1 +code:1173 .byte 1 +code:1174 .byte 0 +code:1175 .byte 0 +code:1176 .byte 1 +code:1177 .byte 1 +code:1178 .byte 0 +code:1179 .byte 0 +code:117A .byte 1 +code:117B .byte 0 +code:117C .byte 0 +code:117D .byte 1 +code:117E .byte 1 +code:117F .byte 1 +code:1180 .byte 0 +code:1181 .byte 1 +code:1182 .byte 1 +code:1183 .byte 0 +code:1184 .byte 0 +code:1185 .byte 1 +code:1186 .byte 0 +code:1187 .byte 0 +code:1188 .byte 1 +code:1189 .byte 1 +code:118A .byte 1 +code:118B .byte 0 +code:118C .byte 0 +code:118D .byte 1 +code:118E .byte 1 +code:118F .byte 0 +code:1190 .byte 1 +code:1191 .byte 1 +code:1192 .byte 0 +code:1193 .byte 0 +code:1194 .byte 1 +code:1195 .byte 1 +code:1196 .byte 1 +code:1197 .byte 0 +code:1198 .byte 0 +code:1199 .byte 1 +code:119A .byte 0 +code:119B .byte 1 +code:119C .byte 1 +code:119D .byte 0 +code:119E .byte 0 +code:119F .byte 1 +code:11A0 .byte 0 +code:11A1 .byte 1 +code:11A2 .byte 1 +code:11A3 .byte 1 +code:11A4 .byte 0 +code:11A5 .byte 0 +code:11A6 .byte 1 +code:11A7 .byte 1 +code:11A8 .byte 0 +code:11A9 .byte 0 +code:11AA .byte 1 +code:11AB .byte 0 +code:11AC .byte 0 +code:11AD .byte 1 +code:11AE .byte 1 +code:11AF .byte 1 +code:11B0 .byte 0 +code:11B1 .byte 1 +code:11B2 .byte 1 +code:11B3 .byte 0 +code:11B4 .byte 1 +code:11B5 .byte 1 +code:11B6 .byte 1 +code:11B7 .byte 0 +code:11B8 .byte 0 +code:11B9 .byte 1 +code:11BA .byte 0 +code:11BB .byte 0 +code:11BC .byte 1 +code:11BD .byte 1 +code:11BE .byte 0 +code:11BF .byte 0 +code:11C0 .byte 1 +code:11C1 .byte 1 +code:11C2 .byte 1 +code:11C3 .byte 0 +code:11C4 .byte 1 +code:11C5 .byte 0 +code:11C6 .byte 0 +code:11C7 .byte 1 +code:11C8 .byte 1 +code:11C9 .byte 1 +code:11CA .byte 0 +code:11CB .byte 1 +code:11CC .byte 1 +code:11CD .byte 0 +code:11CE .byte 1 +code:11CF .byte 1 +code:11D0 .byte 1 +code:11D1 .byte 0 +code:11D2 .byte 1 +code:11D3 .byte 1 +code:11D4 .byte 1 +code:11D5 .byte 0 +code:11D6 .byte 1 +code:11D7 .byte 0 +code:11D8 .byte 0 +code:11D9 .byte 1 +code:11DA .byte 1 +code:11DB .byte 0 +code:11DC .byte 0 +code:11DD .byte 1 +code:11DE .byte 1 +code:11DF .byte 1 +code:11E0 .byte 0 +code:11E1 .byte 0 +code:11E2 .byte 1 +code:11E3 .byte 0 +code:11E4 .byte 1 +code:11E5 .byte 1 +code:11E6 .byte 0 +code:11E7 .byte 0 +code:11E8 .byte 1 +code:11E9 .byte 1 +code:11EA .byte 1 +code:11EB .byte 0 +code:11EC .byte 0 +code:11ED .byte 1 +code:11EE .byte 0 +code:11EF .byte 0 +code:11F0 .byte 1 +code:11F1 .byte 1 +code:11F2 .byte 0 +code:11F3 .byte 1 +code:11F4 .byte 1 +code:11F5 .byte 1 +code:11F6 .byte 0 +code:11F7 .byte 1 +code:11F8 .byte 1 +code:11F9 .byte 0 +code:11FA .byte 0 +code:11FB .byte 1 +code:11FC .byte 0 +code:11FD .byte 0 +code:11FE .byte 1 +code:11FF .byte 1 +code:1200 .byte 1 +code:1201 .byte 0 +code:1202 .byte 0 +code:1203 .byte 1 +code:1204 .byte 1 +code:1205 .byte 0 +code:1206 .byte 1 +code:1207 .byte 0 +code:1208 .byte 0 +code:1209 .byte 1 +code:120A .byte 1 +code:120B .byte 1 +code:120C .byte 0 +code:120D .byte 0 +code:120E .byte 1 +code:120F .byte 1 +code:1210 .byte 0 +code:1211 .byte 0 +code:1212 .byte 1 +code:1213 .byte 0 +code:1214 .byte 1 +code:1215 .byte 1 +code:1216 .byte 0 +code:1217 .byte 1 +code:1218 .byte 1 +code:1219 .byte 0 +code:121A .byte 1 +code:121B .byte 1 +code:121C .byte 0 +code:121D .byte 0 +code:121E .byte 0 +code:121F .byte 1 +code:1220 .byte 1 +code:1221 .byte 0 +code:1222 .byte 1 +code:1223 .byte 1 +code:1224 .byte 0 +code:1225 .byte 0 +code:1226 .byte 0 +code:1227 .byte 1 +code:1228 .byte 1 +code:1229 .byte 0 +code:122A .byte 1 +code:122B .byte 1 +code:122C .byte 0 +code:122D .byte 0 +code:122E .byte 0 +code:122F .byte 1 +code:1230 .byte 1 +code:1231 .byte 0 +code:1232 .byte 1 +code:1233 .byte 1 +code:1234 .byte 0 +code:1235 .byte 1 +code:1236 .byte 0 +code:1237 .byte 1 +code:1238 .byte 0 +code:1239 .byte 0 +code:123A .byte 0 +code:123B .byte 1 +code:123C .byte 1 +code:123D .byte 0 +code:123E .byte 0 +code:123F .byte 0 +code:1240 .byte 1 +code:1241 .byte 0 +code:1242 .byte 0 +code:1243 .byte 0 +code:1244 .byte 1 +code:1245 .byte 0 +code:1246 .byte 1 +code:1247 .byte 1 +code:1248 .byte 0 +code:1249 .byte 0 +code:124A .byte 0 +code:124B .byte 1 +code:124C .byte 0 +code:124D .byte 0 +code:124E .byte 0 +code:124F .byte 1 +code:1250 .byte 0 +code:1251 .byte 0 +code:1252 .byte 0 +code:1253 .byte 1 +code:1254 .byte 1 +code:1255 .byte 0 +code:1256 .byte 1 +code:1257 .byte 0 +code:1258 .byte 1 +code:1259 .byte 1 +code:125A .byte 0 +code:125B .byte 0 +code:125C .byte 0 +code:125D .byte 1 +code:125E .byte 0 +code:125F .byte 0 +code:1260 .byte 0 +code:1261 .byte 1 +code:1262 .byte 0 +code:1263 .byte 0 +code:1264 .byte 0 +code:1265 .byte 1 +code:1266 .byte 1 +code:1267 .byte 0 +code:1268 .byte 1 +code:1269 .byte 0 +code:126A .byte 0 +code:126B .byte 0 +code:126C .byte 1 +code:126D .byte 0 +code:126E .byte 0 +code:126F .byte 0 +code:1270 .byte 1 +code:1271 .byte 1 +code:1272 .byte 0 +code:1273 .byte 0 +code:1274 .byte 0 +code:1275 .byte 1 +code:1276 .byte 0 +code:1277 .byte 1 +code:1278 .byte 1 +code:1279 .byte 0 +code:127A .byte 1 +code:127B .byte 0 +code:127C .byte 0 +code:127D .byte 0 +code:127E .byte 1 +code:127F .byte 0 +code:1280 .byte 0 +code:1281 .byte 0 +code:1282 .byte 1 +code:1283 .byte 1 +code:1284 .byte 0 +code:1285 .byte 0 +code:1286 .byte 0 +code:1287 .byte 1 +code:1288 .byte 0 +code:1289 .byte 1 +code:128A .byte 0 +code:128B .byte 0 +code:128C .byte 0 +code:128D .byte 1 +code:128E .byte 1 +code:128F .byte 0 +code:1290 .byte 0 +code:1291 .byte 0 +code:1292 .byte 1 +code:1293 .byte 0 +code:1294 .byte 0 +code:1295 .byte 0 +code:1296 .byte 1 +code:1297 .byte 0 +code:1298 .byte 1 +code:1299 .byte 0 +code:129A .byte 1 +code:129B .byte 1 +code:129C .byte 0 +code:129D .byte 1 +code:129E .byte 1 +code:129F .byte 1 +code:12A0 .byte 0 +code:12A1 .byte 0 +code:12A2 .byte 0 +code:12A3 .byte 1 +code:12A4 .byte 0 +code:12A5 .byte 1 +code:12A6 .byte 1 +code:12A7 .byte 0 +code:12A8 .byte 0 +code:12A9 .byte 0 +code:12AA .byte 1 +code:12AB .byte 1 +code:12AC .byte 1 +code:12AD .byte 0 +code:12AE .byte 1 +code:12AF .byte 0 +code:12B0 .byte 0 +code:12B1 .byte 0 +code:12B2 .byte 1 +code:12B3 .byte 1 +code:12B4 .byte 0 +code:12B5 .byte 1 +code:12B6 .byte 1 +code:12B7 .byte 1 +code:12B8 .byte 0 +code:12B9 .byte 1 +code:12BA .byte 0 +code:12BB .byte 1 +code:12BC .byte 1 +code:12BD .byte 1 +code:12BE .byte 0 +code:12BF .byte 1 +code:12C0 .byte 1 +code:12C1 .byte 0 +code:12C2 .byte 0 +code:12C3 .byte 0 +code:12C4 .byte 1 +code:12C5 .byte 0 +code:12C6 .byte 1 +code:12C7 .byte 1 +code:12C8 .byte 1 +code:12C9 .byte 0 +code:12CA .byte 0 +code:12CB .byte 0 +code:12CC .byte 1 +code:12CD .byte 1 +code:12CE .byte 0 +code:12CF .byte 1 +code:12D0 .byte 0 +code:12D1 .byte 0 +code:12D2 .byte 0 +code:12D3 .byte 1 +code:12D4 .byte 1 +code:12D5 .byte 1 +code:12D6 .byte 0 +code:12D7 .byte 1 +code:12D8 .byte 1 +code:12D9 .byte 0 +code:12DA .byte 1 +code:12DB .byte 1 +code:12DC .byte 1 +code:12DD .byte 0 +code:12DE .byte 1 +code:12DF .byte 1 +code:12E0 .byte 1 +code:12E1 .byte 0 +code:12E2 .byte 1 +code:12E3 .byte 1 +code:12E4 .byte 0 +code:12E5 .byte 1 +code:12E6 .byte 1 +code:12E7 .byte 0 +code:12E8 .byte 1 +code:12E9 .byte 0 +code:12EA .byte 0 +code:12EB .byte 0 +code:12EC .byte 1 +code:12ED .byte 1 +code:12EE .byte 1 +code:12EF .byte 0 +code:12F0 .byte 1 +code:12F1 .byte 1 +code:12F2 .byte 0 +code:12F3 .byte 0 +code:12F4 .byte 0 +code:12F5 .byte 1 +code:12F6 .byte 0 +code:12F7 .byte 1 +code:12F8 .byte 1 +code:12F9 .byte 1 +code:12FA .byte 0 +code:12FB .byte 1 +code:12FC .byte 1 +code:12FD .byte 0 +code:12FE .byte 1 +code:12FF .byte 1 +code:1300 .byte 1 +code:1301 .byte 0 +code:1302 .byte 1 +code:1303 .byte 0 +code:1304 .byte 0 +code:1305 .byte 0 +code:1306 .byte 1 +code:1307 .byte 1 +code:1308 .byte 0 +code:1309 .byte 1 +code:130A .byte 1 +code:130B .byte 1 +code:130C .byte 0 +code:130D .byte 0 +code:130E .byte 0 +code:130F .byte 1 +code:1310 .byte 0 +code:1311 .byte 1 +code:1312 .byte 1 +code:1313 .byte 0 +code:1314 .byte 1 +code:1315 .byte 1 +code:1316 .byte 1 +code:1317 .byte 0 +code:1318 .byte 1 +code:1319 .byte 1 +code:131A .byte 1 +code:131B .byte 0 +code:131C .byte 1 +code:131D .byte 1 +code:131E .byte 1 +code:131F .byte 0 +code:1320 .byte 1 +code:1321 .byte 0 +code:1322 .byte 1 +code:1323 .byte 1 +code:1324 .byte 0 +code:1325 .byte 0 +code:1326 .byte 0 +code:1327 .byte 1 +code:1328 .byte 1 +code:1329 .byte 1 +code:132A .byte 0 +code:132B .byte 1 +code:132C .byte 0 +code:132D .byte 0 +code:132E .byte 0 +code:132F .byte 1 +code:1330 .byte 1 +code:1331 .byte 0 +code:1332 .byte 1 +code:1333 .byte 1 +code:1334 .byte 1 +code:1335 .byte 0 +code:1336 .byte 0 +code:1337 .byte 0 +code:1338 .byte 1 +code:1339 .byte 0 +code:133A .byte 1 +code:133B .byte 1 +code:133C .byte 0 +code:133D .byte 1 +code:133E .byte 1 +code:133F .byte 1 +code:1340 .byte 0 +code:1341 .byte 1 +code:1342 .byte 1 +code:1343 .byte 0 +code:1344 .byte 1 +code:1345 .byte 0 +code:1346 .byte 0 +code:1347 .byte 0 +code:1348 .byte 1 +code:1349 .byte 1 +code:134A .byte 1 +code:134B .byte 0 +code:134C .byte 1 +code:134D .byte 1 +code:134E .byte 0 +code:134F .byte 0 +code:1350 .byte 0 +code:1351 .byte 1 +code:1352 .byte 0 +code:1353 .byte 1 +code:1354 .byte 1 +code:1355 .byte 1 +code:1356 .byte 0 +code:1357 .byte 0 +code:1358 .byte 0 +code:1359 .byte 1 +code:135A .byte 1 +code:135B .byte 0 +code:135C .byte 1 +code:135D .byte 0 +code:135E .byte 1 +code:135F .byte 1 +code:1360 .byte 1 +code:1361 .byte 0 +code:1362 .byte 1 +code:1363 .byte 1 +code:1364 .byte 1 +code:1365 .byte 1 +code:1366 .byte 0 +code:1367 .byte 1 +code:1368 .byte 0 +code:1369 .byte 1 +code:136A .byte 1 +code:136B .byte 0 +code:136C .byte 0 +code:136D .byte 1 +code:136E .byte 0 +code:136F .byte 0 +code:1370 .byte 0 +code:1371 .byte 0 +code:1372 .byte 1 +code:1373 .byte 0 +code:1374 .byte 1 +code:1375 .byte 1 +code:1376 .byte 1 +code:1377 .byte 1 +code:1378 .byte 0 +code:1379 .byte 0 +code:137A .byte 0 +code:137B .byte 1 +code:137C .byte 0 +code:137D .byte 1 +code:137E .byte 0 +code:137F .byte 1 +code:1380 .byte 0 +code:1381 .byte 1 +code:1382 .byte 0 +code:1383 .byte 0 +code:1384 .byte 1 +code:1385 .byte 1 +code:1386 .byte 0 +code:1387 .byte 0 +code:1388 .byte 0 +code:1389 .byte 0 +code:138A .byte 1 +code:138B .byte 0 +code:138C .byte 1 +code:138D .byte 0 +code:138E .byte 0 +code:138F .byte 0 +code:1390 .byte 0 +code:1391 .byte 1 +code:1392 .byte 1 +code:1393 .byte 0 +code:1394 .byte 0 +code:1395 .byte 1 +code:1396 .byte 0 +code:1397 .byte 0 +code:1398 .byte 1 +code:1399 .byte 0 +code:139A .byte 1 +code:139B .byte 1 +code:139C .byte 0 +code:139D .byte 0 +code:139E .byte 0 +code:139F .byte 0 +code:13A0 .byte 1 +code:13A1 .byte 0 +code:13A2 .byte 0 +code:13A3 .byte 1 +code:13A4 .byte 0 +code:13A5 .byte 0 +code:13A6 .byte 0 +code:13A7 .byte 0 +code:13A8 .byte 1 +code:13A9 .byte 1 +code:13AA .byte 0 +code:13AB .byte 1 +code:13AC .byte 0 +code:13AD .byte 0 +code:13AE .byte 0 +code:13AF .byte 0 +code:13B0 .byte 1 +code:13B1 .byte 0 +code:13B2 .byte 1 +code:13B3 .byte 1 +code:13B4 .byte 0 +code:13B5 .byte 0 +code:13B6 .byte 1 +code:13B7 .byte 0 +code:13B8 .byte 0 +code:13B9 .byte 0 +code:13BA .byte 0 +code:13BB .byte 1 +code:13BC .byte 0 +code:13BD .byte 0 +code:13BE .byte 1 +code:13BF .byte 1 +code:13C0 .byte 0 +code:13C1 .byte 1 +code:13C2 .byte 0 +code:13C3 .byte 1 +code:13C4 .byte 1 +code:13C5 .byte 0 +code:13C6 .byte 0 +code:13C7 .byte 1 +code:13C8 .byte 0 +code:13C9 .byte 0 +code:13CA .byte 0 +code:13CB .byte 0 +code:13CC .byte 1 +code:13CD .byte 0 +code:13CE .byte 1 +code:13CF .byte 1 +code:13D0 .byte 0 +code:13D1 .byte 0 +code:13D2 .byte 0 +code:13D3 .byte 0 +code:13D4 .byte 1 +code:13D5 .byte 0 +code:13D6 .byte 0 +code:13D7 .byte 1 +code:13D8 .byte 0 +code:13D9 .byte 0 +code:13DA .byte 1 +code:13DB .byte 1 +code:13DC .byte 0 +code:13DD .byte 1 +code:13DE .byte 0 +code:13DF .byte 0 +code:13E0 .byte 0 +code:13E1 .byte 0 +code:13E2 .byte 1 +code:13E3 .byte 0 +code:13E4 .byte 0 +code:13E5 .byte 1 +code:13E6 .byte 1 +code:13E7 .byte 0 +code:13E8 .byte 0 +code:13E9 .byte 0 +code:13EA .byte 0 +code:13EB .byte 1 +code:13EC .byte 0 +code:13ED .byte 1 +code:13EE .byte 0 +code:13EF .byte 0 +code:13F0 .byte 0 +code:13F1 .byte 0 +code:13F2 .byte 1 +code:13F3 .byte 1 +code:13F4 .byte 0 +code:13F5 .byte 1 +code:13F6 .byte 0 +code:13F7 .byte 0 +code:13F8 .byte 1 +code:13F9 .byte 0 +code:13FA .byte 0 +code:13FB .byte 0 +code:13FC .byte 0 +code:13FD .byte 1 +code:13FE .byte 1 +code:13FF .byte 0 +code:1400 .byte 0 +code:1401 .byte 1 +code:1402 .byte 0 +code:1403 .byte 1 +code:1404 .byte 1 +code:1405 .byte 0 +code:1406 .byte 0 +code:1407 .byte 0 +code:1408 .byte 0 +code:1409 .byte 1 +code:140A .byte 0 +code:140B .byte 0 +code:140C .byte 1 +code:140D .byte 0 +code:140E .byte 1 +code:140F .byte 1 +code:1410 .byte 0 +code:1411 .byte 0 +code:1412 .byte 1 +code:1413 .byte 0 +code:1414 .byte 1 +code:1415 .byte 0 +code:1416 .byte 0 +code:1417 .byte 0 +code:1418 .byte 0 +code:1419 .byte 1 +code:141A .byte 1 +code:141B .byte 1 +code:141C .byte 1 +code:141D .byte 0 +code:141E .byte 1 +code:141F .byte 1 +code:1420 .byte 1 +code:1421 .byte 0 +code:1422 .byte 1 +code:1423 .byte 0 +code:1424 .byte 1 +code:1425 .byte 1 +code:1426 .byte 0 +code:1427 .byte 0 +code:1428 .byte 0 +code:1429 .byte 0 +code:142A .byte 1 +code:142B .byte 0 +code:142C .byte 1 +code:142D .byte 0 +code:142E .byte 0 +code:142F .byte 1 +code:1430 .byte 0 +code:1431 .byte 0 +code:1432 .byte 0 +code:1433 .byte 1 +code:1434 .byte 1 +code:1435 .byte 1 +code:1436 .byte 1 +code:1437 .byte 0 +code:1438 .byte 1 +code:1439 .byte 0 +code:143A .byte 1 +code:143B .byte 0 +code:143C .byte 1 +code:143D .byte 0 +code:143E .byte 0 +code:143F .byte 1 +code:1440 .byte 1 +code:1441 .byte 1 +code:1442 .byte 1 +code:1443 .byte 0 +code:1444 .byte 0 +code:1445 .byte 1 +code:1446 .byte 0 +code:1447 .byte 0 +code:1448 .byte 1 +code:1449 .byte 0 +code:144A .byte 1 +code:144B .byte 1 +code:144C .byte 1 +code:144D .byte 1 +code:144E .byte 0 +code:144F .byte 0 +code:1450 .byte 1 +code:1451 .byte 0 +code:1452 .byte 0 +code:1453 .byte 1 +code:1454 .byte 0 +code:1455 .byte 0 +code:1456 .byte 1 +code:1457 .byte 1 +code:1458 .byte 1 +code:1459 .byte 1 +code:145A .byte 0 +code:145B .byte 1 +code:145C .byte 0 +code:145D .byte 1 +code:145E .byte 1 +code:145F .byte 1 +code:1460 .byte 1 +code:1461 .byte 0 +code:1462 .byte 0 +code:1463 .byte 1 +code:1464 .byte 0 +code:1465 .byte 0 +code:1466 .byte 1 +code:1467 .byte 0 +code:1468 .byte 0 +code:1469 .byte 1 +code:146A .byte 1 +code:146B .byte 1 +code:146C .byte 1 +code:146D .byte 0 +code:146E .byte 1 +code:146F .byte 0 +code:1470 .byte 0 +code:1471 .byte 1 +code:1472 .byte 0 +code:1473 .byte 0 +code:1474 .byte 1 +code:1475 .byte 1 +code:1476 .byte 1 +code:1477 .byte 1 +code:1478 .byte 0 +code:1479 .byte 0 +code:147A .byte 1 +code:147B .byte 0 +code:147C .byte 1 +code:147D .byte 1 +code:147E .byte 1 +code:147F .byte 1 +code:1480 .byte 0 +code:1481 .byte 1 +code:1482 .byte 0 +code:1483 .byte 0 +code:1484 .byte 1 +code:1485 .byte 0 +code:1486 .byte 0 +code:1487 .byte 1 +code:1488 .byte 1 +code:1489 .byte 1 +code:148A .byte 1 +code:148B .byte 0 +code:148C .byte 0 +code:148D .byte 1 +code:148E .byte 0 +code:148F .byte 1 +code:1490 .byte 0 +code:1491 .byte 0 +code:1492 .byte 1 +code:1493 .byte 1 +code:1494 .byte 1 +code:1495 .byte 1 +code:1496 .byte 0 +code:1497 .byte 0 +code:1498 .byte 1 +code:1499 .byte 0 +code:149A .byte 0 +code:149B .byte 1 +code:149C .byte 0 +code:149D .byte 1 +code:149E .byte 1 +code:149F .byte 0 +code:14A0 .byte 1 +code:14A1 .byte 1 +code:14A2 .byte 0 +code:14A3 .byte 1 +code:14A4 .byte 1 +code:14A5 .byte 1 +code:14A6 .byte 1 +code:14A7 .byte 0 +code:14A8 .byte 1 +code:14A9 .byte 1 +code:14AA .byte 0 +code:14AB .byte 1 +code:14AC .byte 1 +code:14AD .byte 1 +code:14AE .byte 1 +code:14AF .byte 0 +code:14B0 .byte 1 +code:14B1 .byte 1 +code:14B2 .byte 0 +code:14B3 .byte 1 +code:14B4 .byte 1 +code:14B5 .byte 1 +code:14B6 .byte 1 +code:14B7 .byte 0 +code:14B8 .byte 1 +code:14B9 .byte 1 +code:14BA .byte 0 +code:14BB .byte 1 +code:14BC .byte 1 +code:14BD .byte 0 +code:14BE .byte 1 +code:14BF .byte 0 +code:14C0 .byte 1 +code:14C1 .byte 0 +code:14C2 .byte 1 +code:14C3 .byte 1 +code:14C4 .byte 1 +code:14C5 .byte 1 +code:14C6 .byte 0 +code:14C7 .byte 0 +code:14C8 .byte 0 +code:14C9 .byte 1 +code:14CA .byte 0 +code:14CB .byte 1 +code:14CC .byte 0 +code:14CD .byte 0 +code:14CE .byte 0 +code:14CF .byte 1 +code:14D0 .byte 1 +code:14D1 .byte 1 +code:14D2 .byte 1 +code:14D3 .byte 0 +code:14D4 .byte 1 +code:14D5 .byte 0 +code:14D6 .byte 0 +code:14D7 .byte 0 +code:14D8 .byte 1 +code:14D9 .byte 0 +code:14DA .byte 1 +code:14DB .byte 1 +code:14DC .byte 1 +code:14DD .byte 1 +code:14DE .byte 0 +code:14DF .byte 1 +code:14E0 .byte 0 +code:14E1 .byte 1 +code:14E2 .byte 1 +code:14E3 .byte 1 +code:14E4 .byte 1 +code:14E5 .byte 0 +code:14E6 .byte 1 +code:14E7 .byte 0 +code:14E8 .byte 0 +code:14E9 .byte 0 +code:14EA .byte 1 +code:14EB .byte 0 +code:14EC .byte 1 +code:14ED .byte 1 +code:14EE .byte 1 +code:14EF .byte 1 +code:14F0 .byte 0 +code:14F1 .byte 0 +code:14F2 .byte 0 +code:14F3 .byte 1 +code:14F4 .byte 0 +code:14F5 .byte 1 +code:14F6 .byte 1 +code:14F7 .byte 1 +code:14F8 .byte 1 +code:14F9 .byte 0 +code:14FA .byte 1 +code:14FB .byte 0 +code:14FC .byte 1 +code:14FD .byte 0 +code:14FE .byte 0 +code:14FF .byte 0 +code:1500 .byte 1 +code:1501 .byte 1 +code:1502 .byte 1 +code:1503 .byte 1 +code:1504 .byte 0 +code:1505 .byte 1 +code:1506 .byte 0 +code:1507 .byte 0 +code:1508 .byte 0 +code:1509 .byte 1 +code:150A .byte 0 +code:150B .byte 1 +code:150C .byte 0 +code:150D .byte 1 +code:150E .byte 1 +code:150F .byte 1 +code:1510 .byte 0 +code:1511 .byte 1 +code:1512 .byte 1 +code:1513 .byte 1 +code:1514 .byte 1 +code:1515 .byte 0 +code:1516 .byte 1 +code:1517 .byte 0 +code:1518 .byte 1 +code:1519 .byte 1 +code:151A .byte 1 +code:151B .byte 1 +code:151C .byte 0 +code:151D .byte 1 +code:151E .byte 1 +code:151F .byte 1 +code:1520 .byte 0 +code:1521 .byte 1 +code:1522 .byte 1 +code:1523 .byte 1 +code:1524 .byte 0 +code:1525 .byte 1 +code:1526 .byte 0 +code:1527 .byte 1 +code:1528 .byte 1 +code:1529 .byte 1 +code:152A .byte 1 +code:152B .byte 0 +code:152C .byte 1 +code:152D .byte 1 +code:152E .byte 1 +code:152F .byte 1 +code:1530 .byte 0 +code:1531 .byte 1 +code:1532 .byte 0 +code:1533 .byte 1 +code:1534 .byte 1 +code:1535 .byte 1 +code:1536 .byte 0 +code:1537 .byte 1 +code:1538 .byte 1 +code:1539 .byte 0 +code:153A .byte 1 +code:153B .byte 0 +code:153C .byte 0 +code:153D .byte 0 +code:153E .byte 0 +code:153F .byte 1 +code:1540 .byte 0 +code:1541 .byte 0 +code:1542 .byte 1 +code:1543 .byte 1 +code:1544 .byte 0 +code:1545 .byte 1 +code:1546 .byte 0 +code:1547 .byte 0 +code:1548 .byte 1 +code:1549 .byte 0 +code:154A .byte 0 +code:154B .byte 0 +code:154C .byte 0 +code:154D .byte 1 +code:154E .byte 1 +code:154F .byte 0 +code:1550 .byte 1 +code:1551 .byte 0 +code:1552 .byte 0 +code:1553 .byte 1 +code:1554 .byte 1 +code:1555 .byte 1 +code:1556 .byte 0 +code:1557 .byte 0 +code:1558 .byte 1 +code:1559 .byte 1 +code:155A .byte 0 +code:155B .byte 0 +code:155C .byte 0 +code:155D .byte 1 +code:155E .byte 1 +code:155F .byte 1 +code:1560 .byte 0 +code:1561 .byte 1 +code:1562 .byte 0 +code:1563 .byte 0 +code:1564 .byte 0 +code:1565 .byte 0x7F ;  +code:1566 .byte 0xF8 +code:1567 .byte 0x40 ; @ +code:1568 .byte 8 +code:1569 .byte 0x58 ; X +code:156A .byte 0xC +code:156B .byte 0x58 ; X +code:156C .byte 0xE +code:156D .byte 0x58 ; X +code:156E .byte 0xE +code:156F .byte 0x58 ; X +code:1570 .byte 0xE +code:1571 .byte 0x58 ; X +code:1572 .byte 0xC +code:1573 .byte 0x40 ; @ +code:1574 .byte 8 +code:1575 .byte 0x7F ;  +code:1576 .byte 0xF8 +code:1577 .byte 0 +code:1578 .byte 0 +code:1579 .byte 0 +code:157A .byte 0 +code:157B .byte 0x7F ;  +code:157C .byte 0xF8 +code:157D .byte 0x40 ; @ +code:157E .byte 8 +code:157F .byte 0x5B ; [ +code:1580 .byte 0x6C ; l +code:1581 .byte 0x5B ; [ +code:1582 .byte 0x6E ; n +code:1583 .byte 0x5B ; [ +code:1584 .byte 0x6E ; n +code:1585 .byte 0x5B ; [ +code:1586 .byte 0x6E ; n +code:1587 .byte 0x5B ; [ +code:1588 .byte 0x6C ; l +code:1589 .byte 0x40 ; @ +code:158A .byte 8 +code:158B .byte 0x7F ;  +code:158C .byte 0xF8 +code:158D .byte 0 +code:158E .byte 0 +code:158F .byte 0x5B ; [ +code:1590 .byte 0x63 ; c +code:1591 .byte 0x68 ; h +code:1592 .byte 0x65 ; e +code:1593 .byte 0x63 ; c +code:1594 .byte 0x6B ; k +code:1595 .byte 0x20 +code:1596 .byte 0x62 ; b +code:1597 .byte 0x61 ; a +code:1598 .byte 0x74 ; t +code:1599 .byte 0x74 ; t +code:159A .byte 0x65 ; e +code:159B .byte 0x72 ; r +code:159C .byte 0x79 ; y +code:159D .byte 0x5D ; ] +code:159E .byte 7 +code:159F .byte 5 +code:15A0 .byte 7 +code:15A1 .byte 7 +code:15A2 .byte 7 +code:15A3 .byte 7 +code:15A4 .byte 7 +code:15A5 .byte 7 +code:15A6 .byte 7 +code:15A7 .byte 7 +code:15A8 .byte 7 +code:15A9 .byte 7 +code:15AA .byte 7 +code:15AB .byte 7 +code:15AC .byte 7 +code:15AD .byte 6 +code:15AE .byte 6 +code:15AF .byte 6 +code:15B0 .byte 6 +code:15B1 .byte 6 +code:15B2 .byte 6 +code:15B3 .byte 6 +code:15B4 .byte 6 +code:15B5 .byte 6 +code:15B6 .byte 6 +code:15B7 .byte 5 +code:15B8 .byte 5 +code:15B9 .byte 0xB +code:15BA .byte 9 +code:15BB .byte 0xB +code:15BC .byte 0xB +code:15BD .byte 0xB +code:15BE .byte 0xB +code:15BF .byte 0xB +code:15C0 .byte 0xB +code:15C1 .byte 0xB +code:15C2 .byte 0xB +code:15C3 .byte 0xB +code:15C4 .byte 0xB +code:15C5 .byte 0xB +code:15C6 .byte 0xB +code:15C7 .byte 0xA +code:15C8 .byte 0xA +code:15C9 .byte 9 +code:15CA .byte 9 +code:15CB .byte 9 +code:15CC .byte 9 +code:15CD .byte 9 +code:15CE .byte 9 +code:15CF .byte 9 +code:15D0 .byte 9 +code:15D1 .byte 9 +code:15D2 .byte 9 +code:15D3 .byte 9 +code:15D4 .byte 0x78 ; x +code:15D5 .byte 0x84 +code:15D6 .byte 0x84 +code:15D7 .byte 0x84 +code:15D8 .byte 0x84 +code:15D9 .byte 0x84 +code:15DA .byte 0x84 +code:15DB .byte 0x84 +code:15DC .byte 0x78 ; x +code:15DD .byte 0 +code:15DE .byte 0x60 ; ` +code:15DF .byte 0xA0 +code:15E0 .byte 0x20 +code:15E1 .byte 0x20 +code:15E2 .byte 0x20 +code:15E3 .byte 0x20 +code:15E4 .byte 0x20 +code:15E5 .byte 0x20 +code:15E6 .byte 0x20 +code:15E7 .byte 0 +code:15E8 .byte 0x78 ; x +code:15E9 .byte 0x84 +code:15EA .byte 4 +code:15EB .byte 4 +code:15EC .byte 0x18 +code:15ED .byte 0x60 ; ` +code:15EE .byte 0x80 +code:15EF .byte 0x80 +code:15F0 .byte 0xFC +code:15F1 .byte 0 +code:15F2 .byte 0x78 ; x +code:15F3 .byte 0x84 +code:15F4 .byte 0x84 +code:15F5 .byte 4 +code:15F6 .byte 0x38 ; 8 +code:15F7 .byte 4 +code:15F8 .byte 0x84 +code:15F9 .byte 0x84 +code:15FA .byte 0x78 ; x +code:15FB .byte 0 +code:15FC .byte 0x38 ; 8 +code:15FD .byte 0x28 ; ( +code:15FE .byte 0x48 ; H +code:15FF .byte 0x48 ; H +code:1600 .byte 0x88 +code:1601 .byte 0x88 +code:1602 .byte 0xFC +code:1603 .byte 8 +code:1604 .byte 8 +code:1605 .byte 0 +code:1606 .byte 0xFC +code:1607 .byte 0x80 +code:1608 .byte 0x80 +code:1609 .byte 0xB8 +code:160A .byte 0xC4 +code:160B .byte 4 +code:160C .byte 4 +code:160D .byte 0x84 +code:160E .byte 0x78 ; x +code:160F .byte 0 +code:1610 .byte 0x78 ; x +code:1611 .byte 0x84 +code:1612 .byte 0x80 +code:1613 .byte 0xB8 +code:1614 .byte 0xC4 +code:1615 .byte 0x84 +code:1616 .byte 0x84 +code:1617 .byte 0x84 +code:1618 .byte 0x78 ; x +code:1619 .byte 0 +code:161A .byte 0xFC +code:161B .byte 4 +code:161C .byte 8 +code:161D .byte 8 +code:161E .byte 0x10 +code:161F .byte 0x10 +code:1620 .byte 0x20 +code:1621 .byte 0x20 +code:1622 .byte 0x20 +code:1623 .byte 0 +code:1624 .byte 0x78 ; x +code:1625 .byte 0x84 +code:1626 .byte 0x84 +code:1627 .byte 0x84 +code:1628 .byte 0x78 ; x +code:1629 .byte 0x84 +code:162A .byte 0x84 +code:162B .byte 0x84 +code:162C .byte 0x78 ; x +code:162D .byte 0 +code:162E .byte 0x78 ; x +code:162F .byte 0x84 +code:1630 .byte 0x84 +code:1631 .byte 0x84 +code:1632 .byte 0x8C +code:1633 .byte 0x74 ; t +code:1634 .byte 4 +code:1635 .byte 0x84 +code:1636 .byte 0x78 ; x +code:1637 .byte 0 +code:1638 .byte 0x30 ; 0 +code:1639 .byte 0x48 ; H +code:163A .byte 0x48 ; H +code:163B .byte 0x84 +code:163C .byte 0x84 +code:163D .byte 0xFC +code:163E .byte 0x84 +code:163F .byte 0x84 +code:1640 .byte 0x84 +code:1641 .byte 0 +code:1642 .byte 0xF8 +code:1643 .byte 0x84 +code:1644 .byte 0x84 +code:1645 .byte 0x84 +code:1646 .byte 0xF8 +code:1647 .byte 0x84 +code:1648 .byte 0x84 +code:1649 .byte 0x84 +code:164A .byte 0xF8 +code:164B .byte 0 +code:164C .byte 0x78 ; x +code:164D .byte 0x84 +code:164E .byte 0x84 +code:164F .byte 0x80 +code:1650 .byte 0x80 +code:1651 .byte 0x80 +code:1652 .byte 0x84 +code:1653 .byte 0x84 +code:1654 .byte 0x78 ; x +code:1655 .byte 0 +code:1656 .byte 0xF8 +code:1657 .byte 0x84 +code:1658 .byte 0x84 +code:1659 .byte 0x84 +code:165A .byte 0x84 +code:165B .byte 0x84 +code:165C .byte 0x84 +code:165D .byte 0x84 +code:165E .byte 0xF8 +code:165F .byte 0 +code:1660 .byte 0xFC +code:1661 .byte 0x80 +code:1662 .byte 0x80 +code:1663 .byte 0x80 +code:1664 .byte 0xF8 +code:1665 .byte 0x80 +code:1666 .byte 0x80 +code:1667 .byte 0x80 +code:1668 .byte 0xFC +code:1669 .byte 0 +code:166A .byte 0xFC +code:166B .byte 0x80 +code:166C .byte 0x80 +code:166D .byte 0x80 +code:166E .byte 0xF8 +code:166F .byte 0x80 +code:1670 .byte 0x80 +code:1671 .byte 0x80 +code:1672 .byte 0x80 +code:1673 .byte 0 +code:1674 .byte 0x20 +code:1675 .byte 0x50 ; P +code:1676 .byte 0x50 ; P +code:1677 .byte 0x88 +code:1678 .byte 0x88 +code:1679 .byte 0xF8 +code:167A .byte 0x88 +code:167B .byte 0x88 +code:167C .byte 0 +code:167D .byte 0 +code:167E .byte 0xF0 +code:167F .byte 0x88 +code:1680 .byte 0x88 +code:1681 .byte 0xF0 +code:1682 .byte 0x88 +code:1683 .byte 0x88 +code:1684 .byte 0x88 +code:1685 .byte 0xF0 +code:1686 .byte 0 +code:1687 .byte 0 +code:1688 .byte 0x70 ; p +code:1689 .byte 0x88 +code:168A .byte 0x80 +code:168B .byte 0x80 +code:168C .byte 0x80 +code:168D .byte 0x80 +code:168E .byte 0x88 +code:168F .byte 0x70 ; p +code:1690 .byte 0 +code:1691 .byte 0 +code:1692 .byte 0xF8 +code:1693 .byte 0x80 +code:1694 .byte 0x80 +code:1695 .byte 0xF0 +code:1696 .byte 0x80 +code:1697 .byte 0x80 +code:1698 .byte 0x80 +code:1699 .byte 0xF8 +code:169A .byte 0 +code:169B .byte 0 +code:169C .byte 0x88 +code:169D .byte 0x88 +code:169E .byte 0x88 +code:169F .byte 0xF8 +code:16A0 .byte 0x88 +code:16A1 .byte 0x88 +code:16A2 .byte 0x88 +code:16A3 .byte 0x88 +code:16A4 .byte 0 +code:16A5 .byte 0 +code:16A6 .byte 0x88 +code:16A7 .byte 0x90 +code:16A8 .byte 0xA0 +code:16A9 .byte 0xC0 +code:16AA .byte 0xC0 +code:16AB .byte 0xA0 +code:16AC .byte 0x90 +code:16AD .byte 0x88 +code:16AE .byte 0 +code:16AF .byte 0 +code:16B0 .byte 0xF0 +code:16B1 .byte 0x88 +code:16B2 .byte 0x88 +code:16B3 .byte 0x88 +code:16B4 .byte 0xF0 +code:16B5 .byte 0xA0 +code:16B6 .byte 0x90 +code:16B7 .byte 0x88 +code:16B8 .byte 0 +code:16B9 .byte 0 +code:16BA .byte 0xF8 +code:16BB .byte 0x20 +code:16BC .byte 0x20 +code:16BD .byte 0x20 +code:16BE .byte 0x20 +code:16BF .byte 0x20 +code:16C0 .byte 0x20 +code:16C1 .byte 0x20 +code:16C2 .byte 0 +code:16C3 .byte 0 +code:16C4 .byte 0x88 +code:16C5 .byte 0x88 +code:16C6 .byte 0x50 ; P +code:16C7 .byte 0x50 ; P +code:16C8 .byte 0x20 +code:16C9 .byte 0x20 +code:16CA .byte 0x20 +code:16CB .byte 0x20 +code:16CC .byte 0 +code:16CD .byte 0 +code:16CE .byte 0x30 ; 0 +code:16CF .byte 0x20 +code:16D0 .byte 0x20 +code:16D1 .byte 0x20 +code:16D2 .byte 0x20 +code:16D3 .byte 0x20 +code:16D4 .byte 0x20 +code:16D5 .byte 0x20 +code:16D6 .byte 0x30 ; 0 +code:16D7 .byte 0 +code:16D8 .byte 0x60 ; ` +code:16D9 .byte 0x20 +code:16DA .byte 0x20 +code:16DB .byte 0x20 +code:16DC .byte 0x20 +code:16DD .byte 0x20 +code:16DE .byte 0x20 +code:16DF .byte 0x20 +code:16E0 .byte 0x60 ; ` +code:16E1 .byte 0 +code:16E2 .byte 0 +code:16E3 .byte 0 +code:16E4 .byte 0x3F ; ? +code:16E5 .byte 0x80 +code:16E6 .byte 0x60 ; ` +code:16E7 .byte 0xC0 +code:16E8 .byte 0x60 ; ` +code:16E9 .byte 0xC0 +code:16EA .byte 0x60 ; ` +code:16EB .byte 0xC0 +code:16EC .byte 0x60 ; ` +code:16ED .byte 0xC0 +code:16EE .byte 0x60 ; ` +code:16EF .byte 0xC0 +code:16F0 .byte 0x60 ; ` +code:16F1 .byte 0xC0 +code:16F2 .byte 0x60 ; ` +code:16F3 .byte 0xC0 +code:16F4 .byte 0x60 ; ` +code:16F5 .byte 0xC0 +code:16F6 .byte 0x60 ; ` +code:16F7 .byte 0xC0 +code:16F8 .byte 0x60 ; ` +code:16F9 .byte 0xC0 +code:16FA .byte 0x60 ; ` +code:16FB .byte 0xC0 +code:16FC .byte 0x60 ; ` +code:16FD .byte 0xC0 +code:16FE .byte 0x3F ; ? +code:16FF .byte 0x80 +code:1700 .byte 0 +code:1701 .byte 0 +code:1702 .byte 0 +code:1703 .byte 0 +code:1704 .byte 0x1C +code:1705 .byte 0 +code:1706 .byte 0x3C ; < +code:1707 .byte 0 +code:1708 .byte 0x6C ; l +code:1709 .byte 0 +code:170A .byte 0xC +code:170B .byte 0 +code:170C .byte 0xC +code:170D .byte 0 +code:170E .byte 0xC +code:170F .byte 0 +code:1710 .byte 0xC +code:1711 .byte 0 +code:1712 .byte 0xC +code:1713 .byte 0 +code:1714 .byte 0xC +code:1715 .byte 0 +code:1716 .byte 0xC +code:1717 .byte 0 +code:1718 .byte 0xC +code:1719 .byte 0 +code:171A .byte 0xC +code:171B .byte 0 +code:171C .byte 0xC +code:171D .byte 0 +code:171E .byte 0xC +code:171F .byte 0 +code:1720 .byte 0 +code:1721 .byte 0 +code:1722 .byte 0 +code:1723 .byte 0 +code:1724 .byte 0x3F ; ? +code:1725 .byte 0x80 +code:1726 .byte 0x60 ; ` +code:1727 .byte 0xC0 +code:1728 .byte 0x60 ; ` +code:1729 .byte 0xC0 +code:172A .byte 0x60 ; ` +code:172B .byte 0xC0 +code:172C .byte 0 +code:172D .byte 0xC0 +code:172E .byte 0 +code:172F .byte 0xC0 +code:1730 .byte 1 +code:1731 .byte 0x80 +code:1732 .byte 7 +code:1733 .byte 0 +code:1734 .byte 0x1C +code:1735 .byte 0 +code:1736 .byte 0x30 ; 0 +code:1737 .byte 0 +code:1738 .byte 0x60 ; ` +code:1739 .byte 0 +code:173A .byte 0x60 ; ` +code:173B .byte 0 +code:173C .byte 0x60 ; ` +code:173D .byte 0 +code:173E .byte 0x7F ;  +code:173F .byte 0xC0 +code:1740 .byte 0 +code:1741 .byte 0 +code:1742 .byte 0 +code:1743 .byte 0 +code:1744 .byte 0x3F ; ? +code:1745 .byte 0x80 +code:1746 .byte 0x60 ; ` +code:1747 .byte 0xC0 +code:1748 .byte 0x60 ; ` +code:1749 .byte 0xC0 +code:174A .byte 0x60 ; ` +code:174B .byte 0xC0 +code:174C .byte 0 +code:174D .byte 0xC0 +code:174E .byte 0 +code:174F .byte 0xC0 +code:1750 .byte 0xF +code:1751 .byte 0x80 +code:1752 .byte 0 +code:1753 .byte 0xC0 +code:1754 .byte 0 +code:1755 .byte 0xC0 +code:1756 .byte 0 +code:1757 .byte 0xC0 +code:1758 .byte 0x60 ; ` +code:1759 .byte 0xC0 +code:175A .byte 0x60 ; ` +code:175B .byte 0xC0 +code:175C .byte 0x60 ; ` +code:175D .byte 0xC0 +code:175E .byte 0x3F ; ? +code:175F .byte 0x80 +code:1760 .byte 0 +code:1761 .byte 0 +code:1762 .byte 0 +code:1763 .byte 0 +code:1764 .byte 7 +code:1765 .byte 0x80 +code:1766 .byte 7 +code:1767 .byte 0x80 +code:1768 .byte 0xD +code:1769 .byte 0x80 +code:176A .byte 0xD +code:176B .byte 0x80 +code:176C .byte 0x19 +code:176D .byte 0x80 +code:176E .byte 0x19 +code:176F .byte 0x80 +code:1770 .byte 0x31 ; 1 +code:1771 .byte 0x80 +code:1772 .byte 0x31 ; 1 +code:1773 .byte 0x80 +code:1774 .byte 0x61 ; a +code:1775 .byte 0x80 +code:1776 .byte 0x61 ; a +code:1777 .byte 0x80 +code:1778 .byte 0x7F ;  +code:1779 .byte 0xE0 +code:177A .byte 1 +code:177B .byte 0x80 +code:177C .byte 1 +code:177D .byte 0x80 +code:177E .byte 1 +code:177F .byte 0x80 +code:1780 .byte 0 +code:1781 .byte 0 +code:1782 .byte 0 +code:1783 .byte 0 +code:1784 .byte 0x7F ;  +code:1785 .byte 0xC0 +code:1786 .byte 0x60 ; ` +code:1787 .byte 0 +code:1788 .byte 0x60 ; ` +code:1789 .byte 0 +code:178A .byte 0x60 ; ` +code:178B .byte 0 +code:178C .byte 0x60 ; ` +code:178D .byte 0 +code:178E .byte 0x6F ; o +code:178F .byte 0x80 +code:1790 .byte 0x70 ; p +code:1791 .byte 0xC0 +code:1792 .byte 0 +code:1793 .byte 0xC0 +code:1794 .byte 0 +code:1795 .byte 0xC0 +code:1796 .byte 0 +code:1797 .byte 0xC0 +code:1798 .byte 0x60 ; ` +code:1799 .byte 0xC0 +code:179A .byte 0x60 ; ` +code:179B .byte 0xC0 +code:179C .byte 0x60 ; ` +code:179D .byte 0xC0 +code:179E .byte 0x3F ; ? +code:179F .byte 0x80 +code:17A0 .byte 0 +code:17A1 .byte 0 +code:17A2 .byte 0 +code:17A3 .byte 0 +code:17A4 .byte 0x3F ; ? +code:17A5 .byte 0x80 +code:17A6 .byte 0x60 ; ` +code:17A7 .byte 0xC0 +code:17A8 .byte 0x60 ; ` +code:17A9 .byte 0xC0 +code:17AA .byte 0x60 ; ` +code:17AB .byte 0xC0 +code:17AC .byte 0x60 ; ` +code:17AD .byte 0 +code:17AE .byte 0x60 ; ` +code:17AF .byte 0 +code:17B0 .byte 0x6F ; o +code:17B1 .byte 0x80 +code:17B2 .byte 0x70 ; p +code:17B3 .byte 0xC0 +code:17B4 .byte 0x60 ; ` +code:17B5 .byte 0xC0 +code:17B6 .byte 0x60 ; ` +code:17B7 .byte 0xC0 +code:17B8 .byte 0x60 ; ` +code:17B9 .byte 0xC0 +code:17BA .byte 0x60 ; ` +code:17BB .byte 0xC0 +code:17BC .byte 0x60 ; ` +code:17BD .byte 0xC0 +code:17BE .byte 0x3F ; ? +code:17BF .byte 0x80 +code:17C0 .byte 0 +code:17C1 .byte 0 +code:17C2 .byte 0 +code:17C3 .byte 0 +code:17C4 .byte 0x7F ;  +code:17C5 .byte 0xC0 +code:17C6 .byte 0 +code:17C7 .byte 0xC0 +code:17C8 .byte 1 +code:17C9 .byte 0x80 +code:17CA .byte 1 +code:17CB .byte 0x80 +code:17CC .byte 3 +code:17CD .byte 0 +code:17CE .byte 3 +code:17CF .byte 0 +code:17D0 .byte 6 +code:17D1 .byte 0 +code:17D2 .byte 6 +code:17D3 .byte 0 +code:17D4 .byte 6 +code:17D5 .byte 0 +code:17D6 .byte 0xC +code:17D7 .byte 0 +code:17D8 .byte 0xC +code:17D9 .byte 0 +code:17DA .byte 0xC +code:17DB .byte 0 +code:17DC .byte 0xC +code:17DD .byte 0 +code:17DE .byte 0xC +code:17DF .byte 0 +code:17E0 .byte 0 +code:17E1 .byte 0 +code:17E2 .byte 0 +code:17E3 .byte 0 +code:17E4 .byte 0x3F ; ? +code:17E5 .byte 0x80 +code:17E6 .byte 0x60 ; ` +code:17E7 .byte 0xC0 +code:17E8 .byte 0x60 ; ` +code:17E9 .byte 0xC0 +code:17EA .byte 0x60 ; ` +code:17EB .byte 0xC0 +code:17EC .byte 0x60 ; ` +code:17ED .byte 0xC0 +code:17EE .byte 0x60 ; ` +code:17EF .byte 0xC0 +code:17F0 .byte 0x3F ; ? +code:17F1 .byte 0x80 +code:17F2 .byte 0x60 ; ` +code:17F3 .byte 0xC0 +code:17F4 .byte 0x60 ; ` +code:17F5 .byte 0xC0 +code:17F6 .byte 0x60 ; ` +code:17F7 .byte 0xC0 +code:17F8 .byte 0x60 ; ` +code:17F9 .byte 0xC0 +code:17FA .byte 0x60 ; ` +code:17FB .byte 0xC0 +code:17FC .byte 0x60 ; ` +code:17FD .byte 0xC0 +code:17FE .byte 0x3F ; ? +code:17FF .byte 0x80 +code:1800 .byte 0 +code:1801 .byte 0 +code:1802 .byte 0 +code:1803 .byte 0 +code:1804 .byte 0x3F ; ? +code:1805 .byte 0x80 +code:1806 .byte 0x60 ; ` +code:1807 .byte 0xC0 +code:1808 .byte 0x60 ; ` +code:1809 .byte 0xC0 +code:180A .byte 0x60 ; ` +code:180B .byte 0xC0 +code:180C .byte 0x60 ; ` +code:180D .byte 0xC0 +code:180E .byte 0x60 ; ` +code:180F .byte 0xC0 +code:1810 .byte 0x61 ; a +code:1811 .byte 0xC0 +code:1812 .byte 0x3E ; > +code:1813 .byte 0xC0 +code:1814 .byte 0 +code:1815 .byte 0xC0 +code:1816 .byte 0 +code:1817 .byte 0xC0 +code:1818 .byte 0x60 ; ` +code:1819 .byte 0xC0 +code:181A .byte 0x60 ; ` +code:181B .byte 0xC0 +code:181C .byte 0x60 ; ` +code:181D .byte 0xC0 +code:181E .byte 0x3F ; ? +code:181F .byte 0x80 +code:1820 .byte 0 +code:1821 .byte 0 +code:1822 .byte 0 +code:1823 .byte 0 +code:1824 .byte 0xE +code:1825 .byte 0 +code:1826 .byte 0x1B +code:1827 .byte 0 +code:1828 .byte 0x1B +code:1829 .byte 0 +code:182A .byte 0x31 ; 1 +code:182B .byte 0x80 +code:182C .byte 0x31 ; 1 +code:182D .byte 0x80 +code:182E .byte 0x31 ; 1 +code:182F .byte 0x80 +code:1830 .byte 0x60 ; ` +code:1831 .byte 0xC0 +code:1832 .byte 0x60 ; ` +code:1833 .byte 0xC0 +code:1834 .byte 0x60 ; ` +code:1835 .byte 0xC0 +code:1836 .byte 0x7F ;  +code:1837 .byte 0xC0 +code:1838 .byte 0x60 ; ` +code:1839 .byte 0xC0 +code:183A .byte 0x60 ; ` +code:183B .byte 0xC0 +code:183C .byte 0x60 ; ` +code:183D .byte 0xC0 +code:183E .byte 0x60 ; ` +code:183F .byte 0xC0 +code:1840 .byte 0 +code:1841 .byte 0 +code:1842 .byte 0 +code:1843 .byte 0 +code:1844 .byte 0x7F ;  +code:1845 .byte 0x80 +code:1846 .byte 0x60 ; ` +code:1847 .byte 0xC0 +code:1848 .byte 0x60 ; ` +code:1849 .byte 0xC0 +code:184A .byte 0x60 ; ` +code:184B .byte 0xC0 +code:184C .byte 0x60 ; ` +code:184D .byte 0xC0 +code:184E .byte 0x60 ; ` +code:184F .byte 0xC0 +code:1850 .byte 0x7F ;  +code:1851 .byte 0x80 +code:1852 .byte 0x60 ; ` +code:1853 .byte 0xC0 +code:1854 .byte 0x60 ; ` +code:1855 .byte 0xC0 +code:1856 .byte 0x60 ; ` +code:1857 .byte 0xC0 +code:1858 .byte 0x60 ; ` +code:1859 .byte 0xC0 +code:185A .byte 0x60 ; ` +code:185B .byte 0xC0 +code:185C .byte 0x60 ; ` +code:185D .byte 0xC0 +code:185E .byte 0x7F ;  +code:185F .byte 0x80 +code:1860 .byte 0 +code:1861 .byte 0 +code:1862 .byte 0 +code:1863 .byte 0 +code:1864 .byte 0x3F ; ? +code:1865 .byte 0x80 +code:1866 .byte 0x60 ; ` +code:1867 .byte 0xC0 +code:1868 .byte 0x60 ; ` +code:1869 .byte 0xC0 +code:186A .byte 0x60 ; ` +code:186B .byte 0xC0 +code:186C .byte 0x60 ; ` +code:186D .byte 0 +code:186E .byte 0x60 ; ` +code:186F .byte 0 +code:1870 .byte 0x60 ; ` +code:1871 .byte 0 +code:1872 .byte 0x60 ; ` +code:1873 .byte 0 +code:1874 .byte 0x60 ; ` +code:1875 .byte 0 +code:1876 .byte 0x60 ; ` +code:1877 .byte 0 +code:1878 .byte 0x60 ; ` +code:1879 .byte 0xC0 +code:187A .byte 0x60 ; ` +code:187B .byte 0xC0 +code:187C .byte 0x60 ; ` +code:187D .byte 0xC0 +code:187E .byte 0x3F ; ? +code:187F .byte 0x80 +code:1880 .byte 0 +code:1881 .byte 0 +code:1882 .byte 0 +code:1883 .byte 0 +code:1884 .byte 0x7F ;  +code:1885 .byte 0 +code:1886 .byte 0x61 ; a +code:1887 .byte 0x80 +code:1888 .byte 0x60 ; ` +code:1889 .byte 0xC0 +code:188A .byte 0x60 ; ` +code:188B .byte 0xC0 +code:188C .byte 0x60 ; ` +code:188D .byte 0xC0 +code:188E .byte 0x60 ; ` +code:188F .byte 0xC0 +code:1890 .byte 0x60 ; ` +code:1891 .byte 0xC0 +code:1892 .byte 0x60 ; ` +code:1893 .byte 0xC0 +code:1894 .byte 0x60 ; ` +code:1895 .byte 0xC0 +code:1896 .byte 0x60 ; ` +code:1897 .byte 0xC0 +code:1898 .byte 0x60 ; ` +code:1899 .byte 0xC0 +code:189A .byte 0x60 ; ` +code:189B .byte 0xC0 +code:189C .byte 0x61 ; a +code:189D .byte 0x80 +code:189E .byte 0x7F ;  +code:189F .byte 0 +code:18A0 .byte 0 +code:18A1 .byte 0 +code:18A2 .byte 0 +code:18A3 .byte 0 +code:18A4 .byte 0x7F ;  +code:18A5 .byte 0x80 +code:18A6 .byte 0x60 ; ` +code:18A7 .byte 0 +code:18A8 .byte 0x60 ; ` +code:18A9 .byte 0 +code:18AA .byte 0x60 ; ` +code:18AB .byte 0 +code:18AC .byte 0x60 ; ` +code:18AD .byte 0 +code:18AE .byte 0x60 ; ` +code:18AF .byte 0 +code:18B0 .byte 0x7F ;  +code:18B1 .byte 0 +code:18B2 .byte 0x60 ; ` +code:18B3 .byte 0 +code:18B4 .byte 0x60 ; ` +code:18B5 .byte 0 +code:18B6 .byte 0x60 ; ` +code:18B7 .byte 0 +code:18B8 .byte 0x60 ; ` +code:18B9 .byte 0 +code:18BA .byte 0x60 ; ` +code:18BB .byte 0 +code:18BC .byte 0x60 ; ` +code:18BD .byte 0 +code:18BE .byte 0x7F ;  +code:18BF .byte 0x80 +code:18C0 .byte 0 +code:18C1 .byte 0 +code:18C2 .byte 0 +code:18C3 .byte 0 +code:18C4 .byte 0x7F ;  +code:18C5 .byte 0x80 +code:18C6 .byte 0x60 ; ` +code:18C7 .byte 0 +code:18C8 .byte 0x60 ; ` +code:18C9 .byte 0 +code:18CA .byte 0x60 ; ` +code:18CB .byte 0 +code:18CC .byte 0x60 ; ` +code:18CD .byte 0 +code:18CE .byte 0x60 ; ` +code:18CF .byte 0 +code:18D0 .byte 0x7F ;  +code:18D1 .byte 0 +code:18D2 .byte 0x60 ; ` +code:18D3 .byte 0 +code:18D4 .byte 0x60 ; ` +code:18D5 .byte 0 +code:18D6 .byte 0x60 ; ` +code:18D7 .byte 0 +code:18D8 .byte 0x60 ; ` +code:18D9 .byte 0 +code:18DA .byte 0x60 ; ` +code:18DB .byte 0 +code:18DC .byte 0x60 ; ` +code:18DD .byte 0 +code:18DE .byte 0x60 ; ` +code:18DF .byte 0 +code:18E0 .byte 0 +code:18E1 .byte 0 +code:18E2 .byte 0 +code:18E3 .byte 0 +code:18E4 .byte 0 +code:18E5 .byte 0 +code:18E6 .byte 0x18 +code:18E7 .byte 0 +code:18E8 .byte 0x3C ; < +code:18E9 .byte 0 +code:18EA .byte 0x66 ; f +code:18EB .byte 0 +code:18EC .byte 0x66 ; f +code:18ED .byte 0 +code:18EE .byte 0xC3 +code:18EF .byte 0 +code:18F0 .byte 0xC3 +code:18F1 .byte 0 +code:18F2 .byte 0xC3 +code:18F3 .byte 0 +code:18F4 .byte 0xFF +code:18F5 .byte 0 +code:18F6 .byte 0xC3 +code:18F7 .byte 0 +code:18F8 .byte 0xC3 +code:18F9 .byte 0 +code:18FA .byte 0xC3 +code:18FB .byte 0 +code:18FC .byte 0xC3 +code:18FD .byte 0 +code:18FE .byte 0 +code:18FF .byte 0 +code:1900 .byte 0 +code:1901 .byte 0 +code:1902 .byte 0 +code:1903 .byte 0 +code:1904 .byte 0 +code:1905 .byte 0 +code:1906 .byte 0xF8 +code:1907 .byte 0 +code:1908 .byte 0xCC +code:1909 .byte 0 +code:190A .byte 0xC6 +code:190B .byte 0 +code:190C .byte 0xC6 +code:190D .byte 0 +code:190E .byte 0xC6 +code:190F .byte 0 +code:1910 .byte 0xFC +code:1911 .byte 0 +code:1912 .byte 0xC6 +code:1913 .byte 0 +code:1914 .byte 0xC3 +code:1915 .byte 0 +code:1916 .byte 0xC3 +code:1917 .byte 0 +code:1918 .byte 0xC3 +code:1919 .byte 0 +code:191A .byte 0xC6 +code:191B .byte 0 +code:191C .byte 0xFC +code:191D .byte 0 +code:191E .byte 0 +code:191F .byte 0 +code:1920 .byte 0 +code:1921 .byte 0 +code:1922 .byte 0 +code:1923 .byte 0 +code:1924 .byte 0 +code:1925 .byte 0 +code:1926 .byte 0x3C ; < +code:1927 .byte 0 +code:1928 .byte 0x66 ; f +code:1929 .byte 0 +code:192A .byte 0xC3 +code:192B .byte 0 +code:192C .byte 0xC0 +code:192D .byte 0 +code:192E .byte 0xC0 +code:192F .byte 0 +code:1930 .byte 0xC0 +code:1931 .byte 0 +code:1932 .byte 0xC0 +code:1933 .byte 0 +code:1934 .byte 0xC0 +code:1935 .byte 0 +code:1936 .byte 0xC0 +code:1937 .byte 0 +code:1938 .byte 0xC3 +code:1939 .byte 0 +code:193A .byte 0x66 ; f +code:193B .byte 0 +code:193C .byte 0x3C ; < +code:193D .byte 0 +code:193E .byte 0 +code:193F .byte 0 +code:1940 .byte 0 +code:1941 .byte 0 +code:1942 .byte 0 +code:1943 .byte 0 +code:1944 .byte 0 +code:1945 .byte 0 +code:1946 .byte 0xFE +code:1947 .byte 0 +code:1948 .byte 0xC0 +code:1949 .byte 0 +code:194A .byte 0xC0 +code:194B .byte 0 +code:194C .byte 0xC0 +code:194D .byte 0 +code:194E .byte 0xC0 +code:194F .byte 0 +code:1950 .byte 0xFC +code:1951 .byte 0 +code:1952 .byte 0xC0 +code:1953 .byte 0 +code:1954 .byte 0xC0 +code:1955 .byte 0 +code:1956 .byte 0xC0 +code:1957 .byte 0 +code:1958 .byte 0xC0 +code:1959 .byte 0 +code:195A .byte 0xC0 +code:195B .byte 0 +code:195C .byte 0xFE +code:195D .byte 0 +code:195E .byte 0 +code:195F .byte 0 +code:1960 .byte 0 +code:1961 .byte 0 +code:1962 .byte 0 +code:1963 .byte 0 +code:1964 .byte 0 +code:1965 .byte 0 +code:1966 .byte 0xC3 +code:1967 .byte 0 +code:1968 .byte 0xC3 +code:1969 .byte 0 +code:196A .byte 0xC3 +code:196B .byte 0 +code:196C .byte 0xC3 +code:196D .byte 0 +code:196E .byte 0xC3 +code:196F .byte 0 +code:1970 .byte 0xFF +code:1971 .byte 0 +code:1972 .byte 0xC3 +code:1973 .byte 0 +code:1974 .byte 0xC3 +code:1975 .byte 0 +code:1976 .byte 0xC3 +code:1977 .byte 0 +code:1978 .byte 0xC3 +code:1979 .byte 0 +code:197A .byte 0xC3 +code:197B .byte 0 +code:197C .byte 0xC3 +code:197D .byte 0 +code:197E .byte 0 +code:197F .byte 0 +code:1980 .byte 0 +code:1981 .byte 0 +code:1982 .byte 0 +code:1983 .byte 0 +code:1984 .byte 0 +code:1985 .byte 0 +code:1986 .byte 0x63 ; c +code:1987 .byte 0 +code:1988 .byte 0x63 ; c +code:1989 .byte 0 +code:198A .byte 0x66 ; f +code:198B .byte 0 +code:198C .byte 0x66 ; f +code:198D .byte 0 +code:198E .byte 0x6C ; l +code:198F .byte 0 +code:1990 .byte 0x78 ; x +code:1991 .byte 0 +code:1992 .byte 0x7C ; | +code:1993 .byte 0 +code:1994 .byte 0x6C ; l +code:1995 .byte 0 +code:1996 .byte 0x66 ; f +code:1997 .byte 0 +code:1998 .byte 0x66 ; f +code:1999 .byte 0 +code:199A .byte 0x63 ; c +code:199B .byte 0 +code:199C .byte 0x63 ; c +code:199D .byte 0 +code:199E .byte 0 +code:199F .byte 0 +code:19A0 .byte 0 +code:19A1 .byte 0 +code:19A2 .byte 0 +code:19A3 .byte 0 +code:19A4 .byte 0 +code:19A5 .byte 0 +code:19A6 .byte 0xFC +code:19A7 .byte 0 +code:19A8 .byte 0xC6 +code:19A9 .byte 0 +code:19AA .byte 0xC3 +code:19AB .byte 0 +code:19AC .byte 0xC3 +code:19AD .byte 0 +code:19AE .byte 0xC3 +code:19AF .byte 0 +code:19B0 .byte 0xC6 +code:19B1 .byte 0 +code:19B2 .byte 0xFC +code:19B3 .byte 0 +code:19B4 .byte 0xCC +code:19B5 .byte 0 +code:19B6 .byte 0xC6 +code:19B7 .byte 0 +code:19B8 .byte 0xC6 +code:19B9 .byte 0 +code:19BA .byte 0xC3 +code:19BB .byte 0 +code:19BC .byte 0xC3 +code:19BD .byte 0 +code:19BE .byte 0 +code:19BF .byte 0 +code:19C0 .byte 0 +code:19C1 .byte 0 +code:19C2 .byte 0 +code:19C3 .byte 0 +code:19C4 .byte 0 +code:19C5 .byte 0 +code:19C6 .byte 0xFF +code:19C7 .byte 0 +code:19C8 .byte 0x18 +code:19C9 .byte 0 +code:19CA .byte 0x18 +code:19CB .byte 0 +code:19CC .byte 0x18 +code:19CD .byte 0 +code:19CE .byte 0x18 +code:19CF .byte 0 +code:19D0 .byte 0x18 +code:19D1 .byte 0 +code:19D2 .byte 0x18 +code:19D3 .byte 0 +code:19D4 .byte 0x18 +code:19D5 .byte 0 +code:19D6 .byte 0x18 +code:19D7 .byte 0 +code:19D8 .byte 0x18 +code:19D9 .byte 0 +code:19DA .byte 0x18 +code:19DB .byte 0 +code:19DC .byte 0x18 +code:19DD .byte 0 +code:19DE .byte 0 +code:19DF .byte 0 +code:19E0 .byte 0 +code:19E1 .byte 0 +code:19E2 .byte 0 +code:19E3 .byte 0 +code:19E4 .byte 0 +code:19E5 .byte 0 +code:19E6 .byte 0xC3 +code:19E7 .byte 0 +code:19E8 .byte 0xC3 +code:19E9 .byte 0 +code:19EA .byte 0xC3 +code:19EB .byte 0 +code:19EC .byte 0x66 ; f +code:19ED .byte 0 +code:19EE .byte 0x66 ; f +code:19EF .byte 0 +code:19F0 .byte 0x3C ; < +code:19F1 .byte 0 +code:19F2 .byte 0x3C ; < +code:19F3 .byte 0 +code:19F4 .byte 0x18 +code:19F5 .byte 0 +code:19F6 .byte 0x18 +code:19F7 .byte 0 +code:19F8 .byte 0x18 +code:19F9 .byte 0 +code:19FA .byte 0x18 +code:19FB .byte 0 +code:19FC .byte 0x18 +code:19FD .byte 0 +code:19FE .byte 0 +code:19FF .byte 0 +code:1A00 .byte 0 +code:1A01 .byte 0 +code:1A02 .byte 0 +code:1A03 .byte 0 +code:1A04 .byte 0x1E +code:1A05 .byte 0 +code:1A06 .byte 0x18 +code:1A07 .byte 0 +code:1A08 .byte 0x18 +code:1A09 .byte 0 +code:1A0A .byte 0x18 +code:1A0B .byte 0 +code:1A0C .byte 0x18 +code:1A0D .byte 0 +code:1A0E .byte 0x18 +code:1A0F .byte 0 +code:1A10 .byte 0x18 +code:1A11 .byte 0 +code:1A12 .byte 0x18 +code:1A13 .byte 0 +code:1A14 .byte 0x18 +code:1A15 .byte 0 +code:1A16 .byte 0x18 +code:1A17 .byte 0 +code:1A18 .byte 0x18 +code:1A19 .byte 0 +code:1A1A .byte 0x18 +code:1A1B .byte 0 +code:1A1C .byte 0x18 +code:1A1D .byte 0 +code:1A1E .byte 0x1E +code:1A1F .byte 0 +code:1A20 .byte 0 +code:1A21 .byte 0 +code:1A22 .byte 0 +code:1A23 .byte 0 +code:1A24 .byte 0x78 ; x +code:1A25 .byte 0 +code:1A26 .byte 0x18 +code:1A27 .byte 0 +code:1A28 .byte 0x18 +code:1A29 .byte 0 +code:1A2A .byte 0x18 +code:1A2B .byte 0 +code:1A2C .byte 0x18 +code:1A2D .byte 0 +code:1A2E .byte 0x18 +code:1A2F .byte 0 +code:1A30 .byte 0x18 +code:1A31 .byte 0 +code:1A32 .byte 0x18 +code:1A33 .byte 0 +code:1A34 .byte 0x18 +code:1A35 .byte 0 +code:1A36 .byte 0x18 +code:1A37 .byte 0 +code:1A38 .byte 0x18 +code:1A39 .byte 0 +code:1A3A .byte 0x18 +code:1A3B .byte 0 +code:1A3C .byte 0x18 +code:1A3D .byte 0 +code:1A3E .byte 0x78 ; x +code:1A3F .byte 0 +code:1A40 .byte 0 +code:1A41 .byte 0 +code:1A42 .byte 0x20 +code:1A43 .byte 0xC +code:1A44 .byte 0xC +code:1A45 .byte 2 +code:1A46 .byte 0x14 +code:1A47 .byte 0x14 +code:1A48 .byte 8 +code:1A49 .byte 6 +code:1A4A .byte 6 +code:1A4B .byte 4 +code:1A4C .byte 0 +code:1A4D .byte 0 +code:1A4E .byte 0 +code:1A4F .byte 0 +code:1A50 .byte 0 +code:1A51 .byte 0 +code:1A52 .byte 0x21 ; ! +code:1A53 .byte 0x8C +code:1A54 .byte 0x8C +code:1A55 .byte 2 +code:1A56 .byte 0x54 ; T +code:1A57 .byte 0x94 +code:1A58 .byte 8 +code:1A59 .byte 0x46 ; F +code:1A5A .byte 0x46 ; F +code:1A5B .byte 4 +code:1A5C .byte 0 +code:1A5D .byte 0 +code:1A5E .byte 0 +code:1A5F .byte 0 +code:1A60 .byte 0 +code:1A61 .byte 0 +code:1A62 .byte 0x22 ; " +code:1A63 .byte 0x4C ; L +code:1A64 .byte 0x4C ; L +code:1A65 .byte 2 +code:1A66 .byte 0x54 ; T +code:1A67 .byte 0x94 +code:1A68 .byte 8 +code:1A69 .byte 0x86 +code:1A6A .byte 0x86 +code:1A6B .byte 4 +code:1A6C .byte 0 +code:1A6D .byte 0 +code:1A6E .byte 0 +code:1A6F .byte 0 +code:1A70 .byte 0 +code:1A71 .byte 0 +code:1A72 .byte 0x20 +code:1A73 .byte 0xA +code:1A74 .byte 0xA +code:1A75 .byte 2 +code:1A76 .byte 0xC +code:1A77 .byte 0xC +code:1A78 .byte 7 +code:1A79 .byte 5 +code:1A7A .byte 5 +code:1A7B .byte 4 +code:1A7C .byte 0 +code:1A7D .byte 0 +code:1A7E .byte 0 +code:1A7F .byte 0 +code:1A80 .byte 0 +code:1A81 .byte 0 +code:1A82 .byte 0x21 ; ! +code:1A83 .byte 0x8A +code:1A84 .byte 0x8A +code:1A85 .byte 2 +code:1A86 .byte 0x4C ; L +code:1A87 .byte 0x8C +code:1A88 .byte 7 +code:1A89 .byte 0x45 ; E +code:1A8A .byte 0x45 ; E +code:1A8B .byte 4 +code:1A8C .byte 0 +code:1A8D .byte 0 +code:1A8E .byte 0 +code:1A8F .byte 0 +code:1A90 .byte 0 +code:1A91 .byte 0 +code:1A92 .byte 0x22 ; " +code:1A93 .byte 0x4A ; J +code:1A94 .byte 0x4A ; J +code:1A95 .byte 2 +code:1A96 .byte 0x4C ; L +code:1A97 .byte 0x8C +code:1A98 .byte 7 +code:1A99 .byte 0x85 +code:1A9A .byte 0x85 +code:1A9B .byte 4 +code:1A9C .byte 0 +code:1A9D .byte 0 +code:1A9E .byte 0 +code:1A9F .byte 0 +code:1AA0 .byte 0 +code:1AA1 .byte 0 +code:1AA2 .byte 0x20 +code:1AA3 .byte 1 +code:1AA4 .byte 1 +code:1AA5 .byte 0x10 +code:1AA6 .byte 0xC +code:1AA7 .byte 0xC +code:1AA8 .byte 5 +code:1AA9 .byte 1 +code:1AAA .byte 1 +code:1AAB .byte 0x10 +code:1AAC .byte 0 +code:1AAD .byte 0 +code:1AAE .byte 0 +code:1AAF .byte 0 +code:1AB0 .byte 0 +code:1AB1 .byte 0 +code:1AB2 .byte 0x21 ; ! +code:1AB3 .byte 0x81 +code:1AB4 .byte 1 +code:1AB5 .byte 0x10 +code:1AB6 .byte 0x4C ; L +code:1AB7 .byte 0x8C +code:1AB8 .byte 5 +code:1AB9 .byte 1 +code:1ABA .byte 0x41 ; A +code:1ABB .byte 0x10 +code:1ABC .byte 0 +code:1ABD .byte 0 +code:1ABE .byte 0 +code:1ABF .byte 0 +code:1AC0 .byte 0 +code:1AC1 .byte 0 +code:1AC2 .byte 0x22 ; " +code:1AC3 .byte 1 +code:1AC4 .byte 0x41 ; A +code:1AC5 .byte 0x10 +code:1AC6 .byte 0x4C ; L +code:1AC7 .byte 0x8C +code:1AC8 .byte 5 +code:1AC9 .byte 0x81 +code:1ACA .byte 1 +code:1ACB .byte 0x10 +code:1ACC .byte 0 +code:1ACD .byte 0 +code:1ACE .byte 0 +code:1ACF .byte 0 +code:1AD0 .byte 0 +code:1AD1 .byte 0 +code:1AD2 .byte 0x20 +code:1AD3 .byte 1 +code:1AD4 .byte 1 +code:1AD5 .byte 0x10 +code:1AD6 .byte 0xC +code:1AD7 .byte 0xC +code:1AD8 .byte 5 +code:1AD9 .byte 1 +code:1ADA .byte 1 +code:1ADB .byte 0x10 +code:1ADC .byte 0 +code:1ADD .byte 0 +code:1ADE .byte 0 +code:1ADF .byte 0 +code:1AE0 .byte 0 +code:1AE1 .byte 0 +code:1AE2 .byte 0x21 ; ! +code:1AE3 .byte 0x81 +code:1AE4 .byte 1 +code:1AE5 .byte 0x10 +code:1AE6 .byte 0x4C ; L +code:1AE7 .byte 0x8C +code:1AE8 .byte 5 +code:1AE9 .byte 1 +code:1AEA .byte 0x41 ; A +code:1AEB .byte 0x10 +code:1AEC .byte 0 +code:1AED .byte 0 +code:1AEE .byte 0 +code:1AEF .byte 0 +code:1AF0 .byte 0 +code:1AF1 .byte 0 +code:1AF2 .byte 0x22 ; " +code:1AF3 .byte 1 +code:1AF4 .byte 0x41 ; A +code:1AF5 .byte 0x10 +code:1AF6 .byte 0x4C ; L +code:1AF7 .byte 0x8C +code:1AF8 .byte 5 +code:1AF9 .byte 0x81 +code:1AFA .byte 1 +code:1AFB .byte 0x10 +code:1AFC .byte 0 +code:1AFD .byte 0 +code:1AFE .byte 0 +code:1AFF .byte 0 +code:1B00 .byte 0 +code:1B01 .byte 0 +code:1B02 .byte 0x66 ; f +code:1B03 .byte 0x55 ; U +code:1B04 .byte 0x24 ; $ +code:1B05 .byte 0x64 ; d +code:1B06 .byte 0x55 ; U +code:1B07 .byte 0xAA +code:1B08 .byte 0x55 ; U +code:1B09 .byte 0xAA +code:1B0A .byte 0x55 ; U +code:1B0B .byte 0xAA +code:1B0C .byte 0x55 ; U +code:1B0D .byte 0xAA +code:1B0E .byte 0x11 +code:1B0F .byte 8 +code:1B10 .byte 0x10 +code:1B11 .byte 0x88 +code:1B12 .byte 0x11 +code:1B13 .byte 0x88 +code:1B14 .byte 0x10 +code:1B15 .byte 0x88 +code:1B16 .byte 0x6E ; n +code:1B17 .byte 0x5F ; _ +code:1B18 .byte 0xFF +code:1B19 .byte 0xFF +code:1B1A .byte 0xFF +code:1B1B .byte 0xFF +code:1B1C .byte 0xFF +code:1B1D .byte 0xAF +code:1B1E .byte 0xFA +code:1B1F .byte 0xF5 +code:1B20 .byte 0x66 ; f +code:1B21 .byte 0x44 ; D +code:1B22 .byte 0x66 ; f +code:1B23 .byte 0x24 ; $ +code:1B24 .byte 0x55 ; U +code:1B25 .byte 0xAA +code:1B26 .byte 0x55 ; U +code:1B27 .byte 0xAA +code:1B28 .byte 0x55 ; U +code:1B29 .byte 0xAA +code:1B2A .byte 0x55 ; U +code:1B2B .byte 0xAA +code:1B2C .byte 0x10 +code:1B2D .byte 8 +code:1B2E .byte 0x11 +code:1B2F .byte 0x88 +code:1B30 .byte 0x11 +code:1B31 .byte 0x88 +code:1B32 .byte 0x11 +code:1B33 .byte 0x88 +code:1B34 .byte 0xFA +code:1B35 .byte 0xFF +code:1B36 .byte 0xFF +code:1B37 .byte 0xFF +code:1B38 .byte 0xFF +code:1B39 .byte 0xFF +code:1B3A .byte 0xFF +code:1B3B .byte 0xA8 +code:1B3C .byte 0xF9 +code:1B3D .byte 0xF8 +code:1B3E .byte 0x66 ; f +code:1B3F .byte 0x66 ; f +code:1B40 .byte 0x44 ; D +code:1B41 .byte 0x24 ; $ +code:1B42 .byte 0x55 ; U +code:1B43 .byte 0xAA +code:1B44 .byte 0x55 ; U +code:1B45 .byte 0xAA +code:1B46 .byte 0x55 ; U +code:1B47 .byte 0xAA +code:1B48 .byte 0x55 ; U +code:1B49 .byte 0xAA +code:1B4A .byte 0x10 +code:1B4B .byte 8 +code:1B4C .byte 0x11 +code:1B4D .byte 0x88 +code:1B4E .byte 0x11 +code:1B4F .byte 0x88 +code:1B50 .byte 0x11 +code:1B51 .byte 0x88 +code:1B52 .byte 0x8C +code:1B53 .byte 0x6B ; k +code:1B54 .byte 0xFF +code:1B55 .byte 0xFF +code:1B56 .byte 0xFF +code:1B57 .byte 0xFF +code:1B58 .byte 0x66 ; f +code:1B59 .byte 0x44 ; D +code:1B5A .byte 0xC8 +code:1B5B .byte 0xF8 +code:1B5C .byte 0x66 ; f +code:1B5D .byte 0x66 ; f +code:1B5E .byte 0x66 ; f +code:1B5F .byte 0x24 ; $ +code:1B60 .byte 0 +code:1B61 .byte 0 +code:1B62 .byte 0x55 ; U +code:1B63 .byte 0xAA +code:1B64 .byte 0x55 ; U +code:1B65 .byte 0xAA +code:1B66 .byte 0x55 ; U +code:1B67 .byte 0xAA +code:1B68 .byte 0x10 +code:1B69 .byte 8 +code:1B6A .byte 0x11 +code:1B6B .byte 0x88 +code:1B6C .byte 0x11 +code:1B6D .byte 0x88 +code:1B6E .byte 0x11 +code:1B6F .byte 0x88 +code:1B70 .byte 0x88 +code:1B71 .byte 0x88 +code:1B72 .byte 0 +code:1B73 .byte 0xFF +code:1B74 .byte 0xFF +code:1B75 .byte 0xFF +code:1B76 .byte 0x88 +code:1B77 .byte 0x6C ; l +code:1B78 .byte 0x86 +code:1B79 .byte 0xA6 +code:1B7A .byte 0x66 ; f +code:1B7B .byte 0x66 ; f +code:1B7C .byte 0x66 ; f +code:1B7D .byte 0x24 ; $ +code:1B7E .byte 0 +code:1B7F .byte 0 +code:1B80 .byte 0x55 ; U +code:1B81 .byte 0xAA +code:1B82 .byte 0x55 ; U +code:1B83 .byte 0xAA +code:1B84 .byte 0 +code:1B85 .byte 0 +code:1B86 .byte 0x10 +code:1B87 .byte 8 +code:1B88 .byte 0x11 +code:1B89 .byte 0x88 +code:1B8A .byte 0x11 +code:1B8B .byte 0x88 +code:1B8C .byte 0x11 +code:1B8D .byte 0x88 +code:1B8E .byte 0x88 +code:1B8F .byte 0x68 ; h +code:1B90 .byte 0 +code:1B91 .byte 0xEE +code:1B92 .byte 0xEE +code:1B93 .byte 0 +code:1B94 .byte 0x66 ; f +code:1B95 .byte 0x88 +code:1B96 .byte 0x88 +code:1B97 .byte 0x88 +code:1B98 .byte 0x66 ; f +code:1B99 .byte 0x66 ; f +code:1B9A .byte 0x66 ; f +code:1B9B .byte 0x24 ; $ +code:1B9C .byte 0 +code:1B9D .byte 0 +code:1B9E .byte 0x55 ; U +code:1B9F .byte 0xAA +code:1BA0 .byte 0x55 ; U +code:1BA1 .byte 0xAA +code:1BA2 .byte 0 +code:1BA3 .byte 0 +code:1BA4 .byte 0x10 +code:1BA5 .byte 8 +code:1BA6 .byte 0x11 +code:1BA7 .byte 0x88 +code:1BA8 .byte 0x11 +code:1BA9 .byte 0x88 +code:1BAA .byte 0x11 +code:1BAB .byte 0x88 +code:1BAC .byte 0x88 +code:1BAD .byte 0x58 ; X +code:1BAE .byte 0 +code:1BAF .byte 0xCC +code:1BB0 .byte 0xCC +code:1BB1 .byte 0 +code:1BB2 .byte 0x55 ; U +code:1BB3 .byte 0x88 +code:1BB4 .byte 0x88 +code:1BB5 .byte 0x88 +code:1BB6 .byte 0 +code:1BB7 .byte 0 +code:1BB8 .byte 0 +code:1BB9 .byte 0 +code:1BBA .byte 0 +code:1BBB .byte 0 +code:1BBC .byte 0 +code:1BBD .byte 0 +code:1BBE .byte 5 +code:1BBF .byte 5 +code:1BC0 .byte 4 +code:1BC1 .byte 0 +code:1BC2 .byte 2 +code:1BC3 .byte 3 +code:1BC4 .byte 7 +code:1BC5 .byte 0 +code:1BC6 .byte 3 +code:1BC7 .byte 3 +code:1BC8 .byte 0xB +code:1BC9 .byte 0 +code:1BCA .byte 0 +code:1BCB .byte 3 +code:1BCC .byte 0 +code:1BCD .byte 4 +code:1BCE .byte 0 +code:1BCF .byte 5 +code:1BD0 .byte 0 +code:1BD1 .byte 6 +code:1BD2 .byte 0 +code:1BD3 .byte 7 +code:1BD4 .byte 0 +code:1BD5 .byte 8 +code:1BD6 .byte 0 +code:1BD7 .byte 9 +code:1BD8 .byte 0 +code:1BD9 .byte 0xA +code:1BDA .byte 0 +code:1BDB .byte 0xB +code:1BDC .byte 0 +code:1BDD .byte 0xD +code:1BDE .byte 0 +code:1BDF .byte 0xF +code:1BE0 .byte 0 +code:1BE1 .byte 0x11 +code:1BE2 .byte 0 +code:1BE3 .byte 0x13 +code:1BE4 .byte 0 +code:1BE5 .byte 0x17 +code:1BE6 .byte 0 +code:1BE7 .byte 0x1B +code:1BE8 .byte 0 +code:1BE9 .byte 0x1F +code:1BEA .byte 0 +code:1BEB .byte 0x23 ; # +code:1BEC .byte 0 +code:1BED .byte 0x2B ; + +code:1BEE .byte 0 +code:1BEF .byte 0x33 ; 3 +code:1BF0 .byte 0 +code:1BF1 .byte 0x3B ; ; +code:1BF2 .byte 0 +code:1BF3 .byte 0x43 ; C +code:1BF4 .byte 0 +code:1BF5 .byte 0x53 ; S +code:1BF6 .byte 0 +code:1BF7 .byte 0x63 ; c +code:1BF8 .byte 0 +code:1BF9 .byte 0x73 ; s +code:1BFA .byte 0 +code:1BFB .byte 0x83 +code:1BFC .byte 0 +code:1BFD .byte 0xA3 +code:1BFE .byte 0 +code:1BFF .byte 0xC3 +code:1C00 .byte 0 +code:1C01 .byte 0xE3 +code:1C02 .byte 1 +code:1C03 .byte 2 +code:1C04 .byte 0 +code:1C05 .byte 0 +code:1C06 .byte 0 +code:1C07 .byte 0 +code:1C08 .byte 0 +code:1C09 .byte 0 +code:1C0A .byte 0 +code:1C0B .byte 0 +code:1C0C .byte 0 +code:1C0D .byte 0 +code:1C0E .byte 0 +code:1C0F .byte 0 +code:1C10 .byte 0 +code:1C11 .byte 0 +code:1C12 .byte 0 +code:1C13 .byte 0 +code:1C14 .byte 0 +code:1C15 .byte 0 +code:1C16 .byte 0 +code:1C17 .byte 0 +code:1C18 .byte 0 +code:1C19 .byte 1 +code:1C1A .byte 0 +code:1C1B .byte 1 +code:1C1C .byte 0 +code:1C1D .byte 1 +code:1C1E .byte 0 +code:1C1F .byte 1 +code:1C20 .byte 0 +code:1C21 .byte 2 +code:1C22 .byte 0 +code:1C23 .byte 2 +code:1C24 .byte 0 +code:1C25 .byte 2 +code:1C26 .byte 0 +code:1C27 .byte 2 +code:1C28 .byte 0 +code:1C29 .byte 3 +code:1C2A .byte 0 +code:1C2B .byte 3 +code:1C2C .byte 0 +code:1C2D .byte 3 +code:1C2E .byte 0 +code:1C2F .byte 3 +code:1C30 .byte 0 +code:1C31 .byte 4 +code:1C32 .byte 0 +code:1C33 .byte 4 +code:1C34 .byte 0 +code:1C35 .byte 4 +code:1C36 .byte 0 +code:1C37 .byte 4 +code:1C38 .byte 0 +code:1C39 .byte 5 +code:1C3A .byte 0 +code:1C3B .byte 5 +code:1C3C .byte 0 +code:1C3D .byte 5 +code:1C3E .byte 0 +code:1C3F .byte 5 +code:1C40 .byte 0 +code:1C41 .byte 0 +code:1C42 .byte 0 +code:1C43 .byte 0 +code:1C44 .byte 0 +code:1C45 .byte 0 +code:1C46 .byte 0 +code:1C47 .byte 1 +code:1C48 .byte 0 +code:1C49 .byte 2 +code:1C4A .byte 0 +code:1C4B .byte 3 +code:1C4C .byte 0 +code:1C4D .byte 4 +code:1C4E .byte 0 +code:1C4F .byte 5 +code:1C50 .byte 0 +code:1C51 .byte 7 +code:1C52 .byte 0 +code:1C53 .byte 9 +code:1C54 .byte 0 +code:1C55 .byte 0xD +code:1C56 .byte 0 +code:1C57 .byte 0x11 +code:1C58 .byte 0 +code:1C59 .byte 0x19 +code:1C5A .byte 0 +code:1C5B .byte 0x21 ; ! +code:1C5C .byte 0 +code:1C5D .byte 0x31 ; 1 +code:1C5E .byte 0 +code:1C5F .byte 0x41 ; A +code:1C60 .byte 0 +code:1C61 .byte 0x61 ; a +code:1C62 .byte 0 +code:1C63 .byte 0x81 +code:1C64 .byte 0 +code:1C65 .byte 0xC1 +code:1C66 .byte 1 +code:1C67 .byte 1 +code:1C68 .byte 1 +code:1C69 .byte 0x81 +code:1C6A .byte 2 +code:1C6B .byte 1 +code:1C6C .byte 3 +code:1C6D .byte 1 +code:1C6E .byte 4 +code:1C6F .byte 1 +code:1C70 .byte 6 +code:1C71 .byte 1 +code:1C72 .byte 8 +code:1C73 .byte 1 +code:1C74 .byte 0xC +code:1C75 .byte 1 +code:1C76 .byte 0x10 +code:1C77 .byte 1 +code:1C78 .byte 0x18 +code:1C79 .byte 1 +code:1C7A .byte 0x20 +code:1C7B .byte 1 +code:1C7C .byte 0x30 ; 0 +code:1C7D .byte 1 +code:1C7E .byte 0x40 ; @ +code:1C7F .byte 1 +code:1C80 .byte 0x60 ; ` +code:1C81 .byte 1 +code:1C82 .byte 0 +code:1C83 .byte 0 +code:1C84 .byte 0 +code:1C85 .byte 0 +code:1C86 .byte 0 +code:1C87 .byte 0 +code:1C88 .byte 0 +code:1C89 .byte 0 +code:1C8A .byte 0 +code:1C8B .byte 0 +code:1C8C .byte 0 +code:1C8D .byte 0 +code:1C8E .byte 0 +code:1C8F .byte 1 +code:1C90 .byte 0 +code:1C91 .byte 1 +code:1C92 .byte 0 +code:1C93 .byte 2 +code:1C94 .byte 0 +code:1C95 .byte 2 +code:1C96 .byte 0 +code:1C97 .byte 3 +code:1C98 .byte 0 +code:1C99 .byte 3 +code:1C9A .byte 0 +code:1C9B .byte 4 +code:1C9C .byte 0 +code:1C9D .byte 4 +code:1C9E .byte 0 +code:1C9F .byte 5 +code:1CA0 .byte 0 +code:1CA1 .byte 5 +code:1CA2 .byte 0 +code:1CA3 .byte 6 +code:1CA4 .byte 0 +code:1CA5 .byte 6 +code:1CA6 .byte 0 +code:1CA7 .byte 7 +code:1CA8 .byte 0 +code:1CA9 .byte 7 +code:1CAA .byte 0 +code:1CAB .byte 8 +code:1CAC .byte 0 +code:1CAD .byte 8 +code:1CAE .byte 0 +code:1CAF .byte 9 +code:1CB0 .byte 0 +code:1CB1 .byte 9 +code:1CB2 .byte 0 +code:1CB3 .byte 0xA +code:1CB4 .byte 0 +code:1CB5 .byte 0xA +code:1CB6 .byte 0 +code:1CB7 .byte 0xB +code:1CB8 .byte 0 +code:1CB9 .byte 0xB +code:1CBA .byte 0 +code:1CBB .byte 0xC +code:1CBC .byte 0 +code:1CBD .byte 0xC +code:1CBE .byte 0 +code:1CBF .byte 0xD +code:1CC0 .byte 0 +code:1CC1 .byte 0xD +code:1CC2 .byte 0 +code:1CC3 .byte 0 +code:1CC4 .byte 0 +code:1CC5 .byte 0 +code:1CC6 .byte 0x10 +code:1CC7 .byte 0x11 +code:1CC8 .byte 0x12 +code:1CC9 .byte 0 +code:1CCA .byte 8 +code:1CCB .byte 7 +code:1CCC .byte 9 +code:1CCD .byte 6 +code:1CCE .byte 0xA +code:1CCF .byte 5 +code:1CD0 .byte 0xB +code:1CD1 .byte 4 +code:1CD2 .byte 0xC +code:1CD3 .byte 3 +code:1CD4 .byte 0xD +code:1CD5 .byte 2 +code:1CD6 .byte 0xE +code:1CD7 .byte 1 +code:1CD8 .byte 0xF +code:1CD9 .byte 1 +code:1CDA .byte 1 +code:1CDB .byte 0 +code:1CDC .byte 1 +code:1CDD .byte 0 +code:1CDE .byte 4 +code:1CDF .byte 0 +code:1CE0 .byte 0 +code:1CE1 .byte 0 +code:1CE2 .byte 0 +code:1CE3 .byte 0 +code:1CE4 .byte 0 +code:1CE5 .byte 0 +code:1CE6 .byte 0 +code:1CE7 .byte 0 +code:1CE8 .byte 0 +code:1CE9 .byte 0 +code:1CEA .byte 0 +code:1CEB .byte 0 +code:1CEC .byte 0 +code:1CED .byte 0 +code:1CEE .byte 0 +code:1CEF .byte 0 +code:1CF0 .byte 0 +code:1CF1 .byte 0 +code:1CF2 .byte 0 +code:1CF3 .byte 0 +code:1CF4 .byte 0 +code:1CF5 .byte 0 +code:1CF6 .byte 0 +code:1CF7 .byte 0 +code:1CF8 .byte 0 +code:1CF9 .byte 0 +code:1CFA .byte 0 +code:1CFB .byte 0 +code:1CFC .byte 0 +code:1CFD .byte 0 +code:1CFE .byte 0 +code:1CFF .byte 0x10 +code:1D00 .byte 2 +code:1D01 .byte 1 +code:1D02 .byte 0 +code:1D03 .byte 0x3F ; ? +code:1D04 .byte 0 +code:1D05 .byte 0 +code:1D06 .byte 0 +code:1D07 .byte 0 +code:1D08 .byte 0 +code:1D09 .byte 1 +code:1D0A .byte 0 +code:1D0B .byte 0 +code:1D0C .byte 0 +code:1D0D .byte 0 +code:1D0E .byte 0 +code:1D0F .byte 2 +code:1D10 .byte 0xF7 +code:1D11 .byte 0x35 ; 5 +code:1D12 .byte 0x35 ; 5 +code:1D13 .byte 0x24 ; $ +code:1D14 .byte 0x33 ; 3 +code:1D15 .byte 0x70 ; p +code:1D16 .byte 0x58 ; X +code:1D17 .byte 4 +code:1D18 .byte 0x11 +code:1D19 .byte 7 +code:1D1A .byte 0x30 ; 0 +code:1D1B .byte 0 +code:1D1C .byte 0x49 ; I +code:1D1D .byte 6 +code:1D1E .byte 0x43 ; C +code:1D1F .byte 8 +code:1D20 .byte 0xE5 +code:1D21 .byte 0x11 +code:1D22 .byte 0x11 +code:1D23 .byte 0x11 +code:1D24 .byte 0x11 +code:1D25 .byte 0x11 +code:1D26 .byte 0x11 +code:1D27 .byte 0x11 +code:1D28 .byte 0x22 ; " +code:1D29 .byte 0x22 ; " +code:1D2A .byte 0x22 ; " +code:1D2B .byte 0x22 ; " +code:1D2C .byte 0x33 ; 3 +code:1D2D .byte 0x33 ; 3 +code:1D2E .byte 0x33 ; 3 +code:1D2F .byte 0x33 ; 3 +code:1D30 .byte 0x33 ; 3 +code:1D31 .byte 0x2B ; + +code:1D32 .byte 0x7E ; ~ +code:1D33 .byte 0x15 +code:1D34 .byte 0x16 +code:1D35 .byte 0x28 ; ( +code:1D36 .byte 0xAE +code:1D37 .byte 0xD2 +code:1D38 .byte 0xA6 +code:1D39 .byte 0xAB +code:1D3A .byte 0xF7 +code:1D3B .byte 0x15 +code:1D3C .byte 0x88 +code:1D3D .byte 9 +code:1D3E .byte 0xCF +code:1D3F .byte 0x4F ; O +code:1D40 .byte 0x3C ; < +code:1D41 .byte 0xF0 +code:1D42 .byte 0xF1 +code:1D43 .byte 0xF2 +code:1D44 .byte 0xF3 +code:1D45 .byte 0xF4 +code:1D46 .byte 0xF5 +code:1D47 .byte 0xF6 +code:1D48 .byte 0xF7 +code:1D49 .byte 0xF8 +code:1D4A .byte 0xF9 +code:1D4B .byte 0xFA +code:1D4C .byte 0xFB +code:1D4D .byte 0xFC +code:1D4E .byte 0xFD +code:1D4F .byte 0xFE +code:1D50 .byte 0xFF +code:1D51 +code:1D51 ; =============== S U B R O U T I N E ======================================= +code:1D51 +code:1D51 +code:1D51 initialize_variables_code_1D51: ; CODE XREF: pretty_early_init_code_1DFD+8↓p +code:1D51 mov R3, #1 +code:1D53 mov R2, #0xFD +code:1D55 mov R1, #0x9F +code:1D57 lcall ROM_90E5 +code:1D5A mov R6, #0 +code:1D5C mov R7, #0x14 +code:1D5E mov R5, #0xFF +code:1D60 mov R3, #1 +code:1D62 mov R2, #0xFD +code:1D64 mov R1, #0xB0 +code:1D66 lcall code_EA0 +code:1D69 lcall ROM_D5DA +code:1D6C mov DPTR, #0x540 +code:1D6F clr A +code:1D70 movc A, @A+DPTR +code:1D71 mov DPTR, #0xFDB1 +code:1D74 movx @DPTR, A +code:1D75 xrl A, #1 +code:1D77 jnz code_1D85 +code:1D79 mov DPTR, #0xFEA0 +code:1D7C mov A, #4 +code:1D7E movx @DPTR, A +code:1D7F mov DPTR, #0xFDAA +code:1D82 mov A, #1 +code:1D84 movx @DPTR, A +code:1D85 +code:1D85 code_1D85: ; CODE XREF: initialize_variables_code_1D51+26↑j +code:1D85 mov DPTR, #0x542 +code:1D88 clr A +code:1D89 movc A, @A+DPTR +code:1D8A mov DPTR, #0xFDB2 +code:1D8D movx @DPTR, A +code:1D8E mov R7, #0x40 ; '@' +code:1D90 mov R6, #0x77 ; 'w' +code:1D92 mov R5, #0x1B +code:1D94 mov R4, #0 +code:1D96 mov DPTR, #0xFDBC +code:1D99 lcall save_4_bytes_R4_R7 +code:1D9C mov DPTR, #0xFDB3 +code:1D9F mov A, #0x29 ; ')' +code:1DA1 lcall ROM_79C7 +code:1DA4 mov A, #0x28 ; '(' +code:1DA6 movx @DPTR, A +code:1DA7 inc DPTR +code:1DA8 clr A +code:1DA9 movx @DPTR, A +code:1DAA inc DPTR +code:1DAB mov A, #0x80 +code:1DAD movx @DPTR, A +code:1DAE clr A +code:1DAF inc DPTR +code:1DB0 lcall code_40E +code:1DB3 mov R0, #3 +code:1DB5 +code:1DB5 code_1DB5: ; CODE XREF: initialize_variables_code_1D51+69↓j +code:1DB5 xch A, R6 +code:1DB6 clr C +code:1DB7 rrc A +code:1DB8 xch A, R6 +code:1DB9 rrc A +code:1DBA djnz R0, code_1DB5 +code:1DBC mov DPTR, #0xFDB9 +code:1DBF movx @DPTR, A +code:1DC0 mov DPTR, #0xFDB6 +code:1DC3 movx A, @DPTR +code:1DC4 mov R4, A +code:1DC5 inc DPTR +code:1DC6 movx A, @DPTR +code:1DC7 mov R5, A +code:1DC8 mov DPTR, #0xFDB4 +code:1DCB movx A, @DPTR +code:1DCC mov R6, A +code:1DCD inc DPTR +code:1DCE movx A, @DPTR +code:1DCF mov R7, A +code:1DD0 lcall code_8DE +code:1DD3 mov A, R7 +code:1DD4 mov R0, #3 +code:1DD6 +code:1DD6 code_1DD6: ; CODE XREF: initialize_variables_code_1D51+8A↓j +code:1DD6 xch A, R6 +code:1DD7 clr C +code:1DD8 rrc A +code:1DD9 xch A, R6 +code:1DDA rrc A +code:1DDB djnz R0, code_1DD6 +code:1DDD mov R7, A +code:1DDE mov DPTR, #0xFDBA +code:1DE1 lcall ROM_47DD +code:1DE4 mov R7, A +code:1DE5 mov R6, A +code:1DE6 mov R5, A +code:1DE7 mov R4, A +code:1DE8 mov DPTR, #0xFDC0 +code:1DEB lcall save_4_bytes_R4_R7 +code:1DEE mov DPTR, #0xFDC0 +code:1DF1 acall load_4_bytes_R4_R5_R6_A +code:1DF3 orl A, #1 +code:1DF5 mov R7, A +code:1DF6 mov A, R4 +code:1DF7 mov DPTR, #0xFDC0 +code:1DFA ljmp save_4_bytes_R4_R7 +code:1DFA ; End of function initialize_variables_code_1D51 +code:1DFA +code:1DFD +code:1DFD ; =============== S U B R O U T I N E ======================================= +code:1DFD +code:1DFD +code:1DFD pretty_early_init_code_1DFD: ; CODE XREF: start_0:code_1E34↓p +code:1DFD lcall get_reset_cause_R7_ROM_A613 +code:1E00 mov DPTR, #0xFEBF +code:1E03 mov A, R7 +code:1E04 movx @DPTR, A ; store reset cause in 0xFEBF +code:1E05 acall initialize_variables_code_1D51 +code:1E07 lcall gpio_setup_magic_ROM_5004 +code:1E0A lcall wdt_radioreset_clk_ROM_9692 +code:1E0D lcall Load_temperature_calibration_ROM_A5CA +code:1E10 lcall Initialize_more_variables_ROM_7E17 +code:1E13 lcall Enable_Radio_ROM_D4B6 +code:1E16 setb EA ; Interrupt Enable Register 0 +code:1E18 lcall Trampoline_for_setup_pins_eeprom_ROM_D408 +code:1E1B acall code_1F12 +code:1E1D mov R7, #0 +code:1E1F mov R6, #0x60 ; '`' +code:1E21 mov R5, #4 +code:1E23 mov R4, #0 +code:1E25 acall code_1F12 +code:1E27 mov R7, #0 +code:1E29 mov R6, #0x70 ; 'p' +code:1E2B mov R5, #4 +code:1E2D mov R4, #0 +code:1E2F acall code_1F12 +code:1E31 ljmp eeprom_spi_transaction_code_436 +code:1E31 ; End of function pretty_early_init_code_1DFD +code:1E31 +code:1E34 ; --------------------------------------------------------------------------- +code:1E34 ; START OF FUNCTION CHUNK FOR start_0 +code:1E34 +code:1E34 code_1E34: ; CODE XREF: start_0:code_470↑j +code:1E34 acall pretty_early_init_code_1DFD +code:1E36 lcall MainRadioSomething_ROM_9F3D +code:1E39 lcall ROM_2E9D +code:1E3C mov A, R7 +code:1E3D jnz code_1E4C +code:1E3F lcall ROM_5FCC +code:1E42 jnz code_1E47 +code:1E44 lcall ROM_AA40 +code:1E47 +code:1E47 code_1E47: ; CODE XREF: start_0+19EC↑j +code:1E47 ; start_0+19F4↓j +code:1E47 lcall ROM_6849 +code:1E4A sjmp code_1E47 +code:1E4C ; --------------------------------------------------------------------------- +code:1E4C +code:1E4C code_1E4C: ; CODE XREF: start_0+19E7↑j +code:1E4C ; start_0+19F9↓j +code:1E4C lcall ROM_4842 +code:1E4F sjmp code_1E4C +code:1E4F ; END OF FUNCTION CHUNK FOR start_0 +code:1E51 +code:1E51 ; =============== S U B R O U T I N E ======================================= +code:1E51 +code:1E51 +code:1E51 code_1E51: ; CODE XREF: ROM_436B-FDE↓p +code:1E51 ; ROM_436B-E56↓p +code:1E51 mov DPTR, #0xF838 +code:1E54 lcall save_4_bytes_R4_R7 +code:1E54 ; End of function code_1E51 +code:1E54 +code:1E57 +code:1E57 ; =============== S U B R O U T I N E ======================================= +code:1E57 +code:1E57 +code:1E57 SetupPinsForEEProm: ; CODE XREF: code_1ED5+3↓p +code:1E57 ; ROM_436B-F95↓p ... +code:1E57 lcall ROM_D91D +code:1E5A orl FSR_BC, #7 ; P0.0,P0.1,P0.2 pullup +code:1E5D orl FSR_B7, #8 ; Enable SPI CLK +code:1E60 anl FSR_BA, #0xFD ; P1.1 = OUT +code:1E63 setb P1.1 ; Deselect EEPROM +code:1E65 acall code_1EE1 +code:1E67 ljmp EEPROM_SPI_TRANSACTION +code:1E67 ; End of function SetupPinsForEEProm +code:1E67 +code:1E6A +code:1E6A ; =============== S U B R O U T I N E ======================================= +code:1E6A +code:1E6A +code:1E6A code_1E6A: ; CODE XREF: ROM_6849+42↓p +code:1E6A clr A +code:1E6B mov R7, A +code:1E6C mov R6, A +code:1E6D mov R5, A +code:1E6E mov R4, A +code:1E6F mov DPTR, #0xF827 +code:1E72 lcall ROM_D301 +code:1E75 mov DPTR, #0xF82B +code:1E78 lcall ROM_DA8B +code:1E7B jz code_1ED4 +code:1E7D mov DPTR, #0xF54E +code:1E80 lcall load_4_bytes_R0_R1_R2_R3 +code:1E83 mov DPTR, #0xFB80 +code:1E86 acall load_4_bytes_R4_R5_R6_A +code:1E88 clr C +code:1E89 lcall ROM_2777 +code:1E8C mov R4, A +code:1E8D mov DPTR, #0xF827 +code:1E90 lcall ROM_DA8B +code:1E93 mov R7, A +code:1E94 mov R6, #0 +code:1E96 mov R4, #0xE +code:1E98 mov R5, #0x10 +code:1E9A lcall multiply_and_add_code_CC9 +code:1E9D mov DPTR, #0xF82B +code:1EA0 lcall save_4_bytes_R4_R7 +code:1EA3 mov DPTR, #0xF82B +code:1EA6 acall load_4_bytes_R4_R5_R6_A +code:1EA8 mov R7, A +code:1EA9 mov DPTR, #0xF827 +code:1EAC lcall load_4_bytes_R0_R1_R2_R3 +code:1EAF clr C +code:1EB0 lcall code_B1C +code:1EB3 jc code_1ED4 +code:1EB5 mov DPTR, #0xF552 +code:1EB8 movx A, @DPTR +code:1EB9 jnz code_1ED4 +code:1EBB mov R7, A +code:1EBC mov R6, A +code:1EBD mov R5, A +code:1EBE mov R4, A +code:1EBF mov DPTR, #0xF54E +code:1EC2 lcall load_4_bytes_R0_R1_R2_R3 +code:1EC5 lcall code_B1C +code:1EC8 jz code_1ED4 +code:1ECA mov R7, #1 +code:1ECC lcall code_52D +code:1ECF mov R7, #0x64 ; 'd' +code:1ED1 lcall ROM_2153 +code:1ED4 +code:1ED4 code_1ED4: ; CODE XREF: code_1E6A+11↑j +code:1ED4 ; code_1E6A+49↑j ... +code:1ED4 ret +code:1ED4 ; End of function code_1E6A +code:1ED4 +code:1ED5 +code:1ED5 ; =============== S U B R O U T I N E ======================================= +code:1ED5 +code:1ED5 +code:1ED5 code_1ED5: ; CODE XREF: ROM_78A9+6↓p +code:1ED5 ; ROM_9CCA+5↓p +code:1ED5 lcall save_4_bytes_R4_R7 +code:1ED8 acall SetupPinsForEEProm +code:1EDA mov R7, #0xD0 +code:1EDC mov R6, #7 +code:1EDE lcall ROM_4CB7 +code:1EDE ; End of function code_1ED5 +code:1EDE +code:1EE1 +code:1EE1 ; =============== S U B R O U T I N E ======================================= +code:1EE1 +code:1EE1 +code:1EE1 code_1EE1: ; CODE XREF: SetupPinsForEEProm+E↑p +code:1EE1 ; ROM_364D↓p +code:1EE1 clr P1.1 ; Port 1 +code:1EE3 mov R7, #0xAB +code:1EE5 acall code_1EF2 +code:1EE7 clr A +code:1EE8 mov R7, A +code:1EE9 acall code_1EF2 +code:1EEB clr A +code:1EEC mov R7, A +code:1EED acall DO_SPI_TRANSACTION_ALT +code:1EEF setb P1.1 ; Port 1 +code:1EF1 ret +code:1EF1 ; End of function code_1EE1 +code:1EF1 +code:1EF2 +code:1EF2 ; =============== S U B R O U T I N E ======================================= +code:1EF2 +code:1EF2 +code:1EF2 code_1EF2: ; CODE XREF: code_1EE1+4↑p +code:1EF2 ; code_1EE1+8↑p ... +code:1EF2 acall DO_SPI_TRANSACTION_ALT +code:1EF4 clr A +code:1EF5 mov R7, A +code:1EF5 ; End of function code_1EF2 +code:1EF5 +code:1EF6 +code:1EF6 ; =============== S U B R O U T I N E ======================================= +code:1EF6 +code:1EF6 +code:1EF6 DO_SPI_TRANSACTION_ALT: ; CODE XREF: timint1↑p +code:1EF6 ; EEPROM_SPI_TRANSACTION+4↑p ... +code:1EF6 mov R3, FSR_FF +code:1EF8 lcall START_SPI_FROM_R7_ROM_A63B +code:1EFB mov R7, #2 +code:1EFD mov R6, #0 +code:1EFF lcall ROM_4CB7 +code:1F02 lcall SPI_GET_RESULT +code:1F05 mov R6, RAM_3 +code:1F07 mov FSR_FF, R6 +code:1F09 ret +code:1F09 ; End of function DO_SPI_TRANSACTION_ALT +code:1F09 +code:1F0A +code:1F0A ; =============== S U B R O U T I N E ======================================= +code:1F0A +code:1F0A +code:1F0A code_1F0A: ; CODE XREF: ROM_436B-F8E↓p +code:1F0A ; ROM_436B-F86↓p ... +code:1F0A mov R6, A +code:1F0B mov A, R5 +code:1F0C addc A, #3 +code:1F0E mov R5, A +code:1F0F clr A +code:1F10 addc A, R4 +code:1F10 ; End of function code_1F0A +code:1F10 +code:1F11 +code:1F11 ; =============== S U B R O U T I N E ======================================= +code:1F11 +code:1F11 +code:1F11 code_1F11: ; CODE XREF: ROM_436B-FC6↓p +code:1F11 ; ROM_436B-FB8↓p ... +code:1F11 mov R4, A +code:1F11 ; End of function code_1F11 +code:1F11 +code:1F12 +code:1F12 ; =============== S U B R O U T I N E ======================================= +code:1F12 +code:1F12 +code:1F12 code_1F12: ; CODE XREF: pretty_early_init_code_1DFD+1E↑p +code:1F12 ; pretty_early_init_code_1DFD+28↑p ... +code:1F12 clr A +code:1F12 ; End of function code_1F12 +code:1F12 +code:1F13 +code:1F13 ; =============== S U B R O U T I N E ======================================= +code:1F13 +code:1F13 +code:1F13 code_1F13: ; CODE XREF: ROM_6FD3+9↓p +code:1F13 ; ROM_7FDF+2E↓p ... +code:1F13 mov DPTR, #0xF853 +code:1F16 movx @DPTR, A +code:1F17 +code:1F17 code_1F17: ; CODE XREF: ROM_D94C+6↓j +code:1F17 mov DPTR, #0xF84F +code:1F1A lcall save_4_bytes_R4_R7 +code:1F1D mov R2, #1 +code:1F1F lcall EEPROM_SPI_TRANSACTION +code:1F22 clr P1.1 ; Port 1 +code:1F24 mov R7, #0x20 ; ' ' +code:1F26 lcall ROM_D8CB +code:1F29 acall load_4_bytes_R4_R5_R6_A +code:1F2B lcall ROM_67D5 +code:1F2E lcall ROM_D8CB +code:1F31 acall load_4_bytes_R4_R5_R6_A +code:1F33 lcall ROM_A91B +code:1F36 lcall ROM_D8CB +code:1F39 lcall ROM_A921 +code:1F3C setb P1.1 ; Port 1 +code:1F3E lcall SetupWatchdog +code:1F41 +code:1F41 code_1F41: ; CODE XREF: code_1F13+36↓j +code:1F41 ; code_1F13+3E↓j ... +code:1F41 lcall ROM_A8A3 +code:1F44 mov A, R7 +code:1F45 jnb ACC0, code_1F5C ; Accumulator +code:1F48 mov A, R2 +code:1F49 jz code_1F41 +code:1F4B mov DPTR, #0xF853 +code:1F4E movx A, @DPTR +code:1F4F xrl A, #1 +code:1F51 jnz code_1F41 +code:1F53 mov R7, #1 +code:1F55 lcall ROM_A7D1 +code:1F58 clr A +code:1F59 mov R2, A +code:1F5A sjmp code_1F41 +code:1F5C ; --------------------------------------------------------------------------- +code:1F5C +code:1F5C code_1F5C: ; CODE XREF: code_1F13+32↑j +code:1F5C ret +code:1F5C ; End of function code_1F13 +code:1F5C +code:1F5D ; --------------------------------------------------------------------------- +code:1F5D ; START OF FUNCTION CHUNK FOR ROM_9CCA +code:1F5D +code:1F5D code_1F5D: ; CODE XREF: ROM_9CCA+29↓j +code:1F5D mov DPTR, #0xF870 +code:1F60 lcall save_4_bytes_R4_R7 +code:1F63 mov DPTR, #0xF874 +code:1F66 lcall Save_3_bytes_R3_R2_R1 +code:1F69 clr P1.1 ; ; lower P1.1 (EEPROM SELECT) +code:1F6B mov R7, #3 +code:1F6D lcall code_44C +code:1F70 acall load_4_bytes_R4_R5_R6_A +code:1F72 lcall ROM_67D5 +code:1F75 lcall code_44C +code:1F78 acall load_4_bytes_R4_R5_R6_A +code:1F7A lcall ROM_A91B +code:1F7D lcall code_44C +code:1F80 lcall ROM_A921 +code:1F83 mov DPTR, #0xF879 +code:1F86 movx A, @DPTR +code:1F87 xrl A, #0x65 +code:1F89 jnz code_1F8D +code:1F8B clr RAM_20.4 +code:1F8D +code:1F8D code_1F8D: ; CODE XREF: ROM_9CCA-7D41↑j +code:1F8D clr A +code:1F8E mov DPTR, #0xF87A +code:1F91 movx @DPTR, A +code:1F92 inc DPTR +code:1F93 movx @DPTR, A +code:1F94 +code:1F94 code_1F94: ; CODE XREF: ROM_9CCA:code_1FCF↓j +code:1F94 mov DPTR, #0xF877 +code:1F97 lcall ROM_3758 +code:1F9A mov DPTR, #0xF87B +code:1F9D movx A, @DPTR +code:1F9E subb A, R7 +code:1F9F mov DPTR, #0xF87A +code:1FA2 movx A, @DPTR +code:1FA3 subb A, R6 +code:1FA4 jnc eeprom_nCS_set +code:1FA6 clr A +code:1FA7 mov R7, A +code:1FA8 jnb RAM_20.4, code_1FB2 +code:1FAB acall DO_SPI_TRANSACTION_ALT +code:1FAD mov A, R7 +code:1FAE cpl A +code:1FAF mov R7, A +code:1FB0 sjmp code_1FB4 +code:1FB2 ; --------------------------------------------------------------------------- +code:1FB2 +code:1FB2 code_1FB2: ; CODE XREF: ROM_9CCA-7D22↑j +code:1FB2 acall DO_SPI_TRANSACTION_ALT +code:1FB4 +code:1FB4 code_1FB4: ; CODE XREF: ROM_9CCA-7D1A↑j +code:1FB4 mov DPTR, #0xF874 +code:1FB7 lcall ROM_37C3 +code:1FBA mov R1, A +code:1FBB mov DPTR, #0xF87A +code:1FBE lcall ROM_7714 +code:1FC1 lcall ROM_741C +code:1FC4 lcall ROM_5BAC +code:1FC7 jnz code_1FCF +code:1FC9 mov DPTR, #0xF87A +code:1FCC movx A, @DPTR +code:1FCD inc A +code:1FCE movx @DPTR, A +code:1FCF +code:1FCF code_1FCF: ; CODE XREF: ROM_9CCA-7D03↑j +code:1FCF sjmp code_1F94 +code:1FD1 ; --------------------------------------------------------------------------- +code:1FD1 +code:1FD1 eeprom_nCS_set: ; CODE XREF: ROM_9CCA-7D26↑j +code:1FD1 setb P1.1 ; Port 1 +code:1FD3 ret +code:1FD3 ; END OF FUNCTION CHUNK FOR ROM_9CCA +code:1FD4 +code:1FD4 ; =============== S U B R O U T I N E ======================================= +code:1FD4 +code:1FD4 +code:1FD4 code_1FD4: ; CODE XREF: ROM_AD6A+142↓p +code:1FD4 ; ROM_AD6A+1CF↓p ... +code:1FD4 mov A, R3 +code:1FD5 orl A, R7 +code:1FD6 mov R7, A +code:1FD7 mov A, R2 +code:1FD8 orl A, R6 +code:1FD9 mov R6, A +code:1FDA mov A, R1 +code:1FDB orl A, R5 +code:1FDC mov R5, A +code:1FDD mov A, R0 +code:1FDE orl A, R4 +code:1FDF mov R4, A +code:1FDF ; End of function code_1FD4 +code:1FDF +code:1FE0 +code:1FE0 ; =============== S U B R O U T I N E ======================================= +code:1FE0 +code:1FE0 +code:1FE0 code_1FE0: ; CODE XREF: ROM_AD6A+177↓p +code:1FE0 ; ROM_AD6A+20F↓p ... +code:1FE0 mov DPTR, #0xFDF3 +code:1FE0 ; End of function code_1FE0 +code:1FE0 +code:1FE3 +code:1FE3 ; =============== S U B R O U T I N E ======================================= +code:1FE3 +code:1FE3 +code:1FE3 code_1FE3: ; CODE XREF: ROM_AD6A+F1E↓p +code:1FE3 ; ROM_AD6A+150B↓p ... +code:1FE3 lcall save_4_bytes_R4_R7 +code:1FE3 ; End of function code_1FE3 +code:1FE3 +code:1FE6 +code:1FE6 ; =============== S U B R O U T I N E ======================================= +code:1FE6 +code:1FE6 +code:1FE6 load_4_bytes_R4_R5_R6_A_From_0xFDFD: ; CODE XREF: ROM_AD6A:ROM_AFA2↓p +code:1FE6 ; ROM_AD6A:ROM_B09F↓p ... +code:1FE6 mov DPTR, #0xFDFD +code:1FE6 ; End of function load_4_bytes_R4_R5_R6_A_From_0xFDFD +code:1FE6 +code:1FE9 +code:1FE9 ; =============== S U B R O U T I N E ======================================= +code:1FE9 +code:1FE9 +code:1FE9 load_4_bytes_R4_R5_R6_A: ; CODE XREF: initialize_variables_code_1D51+A0↑p +code:1FE9 ; code_1E6A+1C↑p ... +code:1FE9 movx A, @DPTR +code:1FEA mov R4, A +code:1FEA ; End of function load_4_bytes_R4_R5_R6_A +code:1FEA +code:1FEB +code:1FEB ; =============== S U B R O U T I N E ======================================= +code:1FEB +code:1FEB +code:1FEB load_3_bytes_R5_R6_A_offset_plus_1: ; CODE XREF: ROM_67A3-3654↓p +code:1FEB ; ROM_67A3-361A↓p ... +code:1FEB inc DPTR +code:1FEC movx A, @DPTR +code:1FED mov R5, A +code:1FEE inc DPTR +code:1FEF movx A, @DPTR +code:1FF0 mov R6, A +code:1FF1 inc DPTR +code:1FF2 movx A, @DPTR +code:1FF3 ret +code:1FF3 ; End of function load_3_bytes_R5_R6_A_offset_plus_1 +code:1FF3 +code:1FF4 +code:1FF4 ; =============== S U B R O U T I N E ======================================= +code:1FF4 +code:1FF4 +code:1FF4 code_1FF4: ; CODE XREF: ROM_405D+AF↓p +code:1FF4 ; ROM_41B0+EE↓p ... +code:1FF4 mov DPTR, #0xF845 +code:1FF7 mov A, R7 +code:1FF8 movx @DPTR, A +code:1FF9 mov R3, A +code:1FFA clr A +code:1FFB inc DPTR +code:1FFC movx @DPTR, A +code:1FFD mov R7, A +code:1FFE mov R6, A +code:1FFF mov R5, A +code:1FFF ; End of function code_1FF4 +code:1FFF +code:1FFF ; end of 'code' +code:1FFF +ROM:2000 ; =========================================================================== +ROM:2000 +ROM:2000 ; Segment type: Pure code +ROM:2000 ;.segment ROM +ROM:2000 ; .equ $, 0x2000 +ROM:2000 mov R4, A +ROM:2001 inc DPTR +ROM:2002 lcall ROM_D301 +ROM:2005 mov DPTR, #0xF84B +ROM:2008 lcall save_4_bytes_R4_R7 +ROM:200B mov A, R3 +ROM:200C mov R7, A +ROM:200D xrl A, #0xC +ROM:200F jz ROM_2018 +ROM:2011 mov A, R7 +ROM:2012 xrl A, #0x18 +ROM:2014 jz ROM_2018 +ROM:2016 ajmp ROM_214E +ROM:2018 ; --------------------------------------------------------------------------- +ROM:2018 +ROM:2018 ROM_2018: ; CODE XREF: ROM:200F↑j +ROM:2018 ; ROM:2014↑j +ROM:2018 mov DPTR, #0xF506 +ROM:201B movx A, @DPTR +ROM:201C mov R7, A +ROM:201D mov R6, #0 +ROM:201F xrl A, #6 +ROM:2021 jnz ROM_2029 +ROM:2023 mov DPTR, #0xF54C +ROM:2026 movx @DPTR, A +ROM:2027 inc DPTR +ROM:2028 movx @DPTR, A +ROM:2029 +ROM:2029 ROM_2029: ; CODE XREF: ROM:2021↑j +ROM:2029 lcall ROM_D931 +ROM:202C jc ROM_207D +ROM:202E acall ROM_27B1 +ROM:2030 jnz ROM_207D +ROM:2032 lcall ROM_6842 +ROM:2035 jz ROM_207D +ROM:2037 mov R3, #0x80 +ROM:2039 mov R2, #0x3A ; ':' +ROM:203B mov R1, #9 +ROM:203D mov R0, #0 +ROM:203F mov DPTR, #0xFB80 +ROM:2042 lcall load_4_bytes_R4_R5_R6_A +ROM:2045 mov R7, A +ROM:2046 lcall code_A7C +ROM:2049 mov DPTR, #0xF54C +ROM:204C movx A, @DPTR +ROM:204D xrl A, R6 +ROM:204E jnz ROM_2053 +ROM:2050 inc DPTR +ROM:2051 movx A, @DPTR +ROM:2052 xrl A, R7 +ROM:2053 +ROM:2053 ROM_2053: ; CODE XREF: ROM:204E↑j +ROM:2053 jz ROM_207D +ROM:2055 acall ROM_23D6 +ROM:2057 mov DPTR, #0xF54C +ROM:205A mov A, R6 +ROM:205B movx @DPTR, A +ROM:205C inc DPTR +ROM:205D mov A, R7 +ROM:205E movx @DPTR, A +ROM:205F mov DPTR, #0xF53B +ROM:2062 movx A, @DPTR +ROM:2063 jz ROM_206B +ROM:2065 setb C +ROM:2066 lcall ROM_385A +ROM:2069 jc ROM_206F +ROM:206B +ROM:206B ROM_206B: ; CODE XREF: ROM:2063↑j +ROM:206B mov R7, #0x64 ; 'd' +ROM:206D sjmp ROM_2079 +ROM:206F ; --------------------------------------------------------------------------- +ROM:206F +ROM:206F ROM_206F: ; CODE XREF: ROM:2069↑j +ROM:206F acall ROM_2799 +ROM:2071 jnz ROM_2077 +ROM:2073 mov R7, #0x83 +ROM:2075 sjmp ROM_2079 +ROM:2077 ; --------------------------------------------------------------------------- +ROM:2077 +ROM:2077 ROM_2077: ; CODE XREF: ROM:2071↑j +ROM:2077 mov R7, #1 +ROM:2079 +ROM:2079 ROM_2079: ; CODE XREF: ROM:206D↑j +ROM:2079 ; ROM:2075↑j +ROM:2079 acall ROM_2153 +ROM:207B ajmp ROM_2148 +ROM:207D ; --------------------------------------------------------------------------- +ROM:207D +ROM:207D ROM_207D: ; CODE XREF: ROM:202C↑j +ROM:207D ; ROM:2030↑j ... +ROM:207D mov DPTR, #0xF548 +ROM:2080 acall load_4_bytes_R0_R1_R2_R3 +ROM:2082 mov DPTR, #0xFB80 +ROM:2085 lcall load_4_bytes_R4_R5_R6_A +ROM:2088 clr C +ROM:2089 acall ROM_2777 +ROM:208B mov R4, A +ROM:208C mov DPTR, #0xF847 +ROM:208F lcall save_4_bytes_R4_R7 +ROM:2092 mov R7, #0 +ROM:2094 mov R6, #0x75 ; 'u' +ROM:2096 mov R5, #0x12 +ROM:2098 mov R4, #0 +ROM:209A mov DPTR, #0xF847 +ROM:209D acall load_4_bytes_R0_R1_R2_R3 +ROM:209F setb C +ROM:20A0 lcall code_B1C +ROM:20A3 jc ROM_20AB +ROM:20A5 acall ROM_27B1 +ROM:20A7 jnz ROM_20AB +ROM:20A9 ajmp ROM_214E +ROM:20AB ; --------------------------------------------------------------------------- +ROM:20AB +ROM:20AB ROM_20AB: ; CODE XREF: ROM:20A3↑j +ROM:20AB ; ROM:20A7↑j +ROM:20AB mov R7, #0x80 +ROM:20AD mov R6, #0x51 ; 'Q' +ROM:20AF mov R5, #1 +ROM:20B1 mov R4, #0 +ROM:20B3 mov DPTR, #0xF84B +ROM:20B6 lcall save_4_bytes_R4_R7 +ROM:20B9 mov DPTR, #0xF845 +ROM:20BC movx A, @DPTR +ROM:20BD cpl A +ROM:20BE jnz ROM_20F2 +ROM:20C0 mov R7, #0xE0 +ROM:20C2 mov R6, #0xA5 +ROM:20C4 mov R5, #1 +ROM:20C6 mov R4, A +ROM:20C7 mov DPTR, #0xF847 +ROM:20CA acall load_4_bytes_R0_R1_R2_R3 +ROM:20CC setb C +ROM:20CD lcall code_B1C +ROM:20D0 jc ROM_214E +ROM:20D2 acall ROM_23D6 +ROM:20D4 mov DPTR, #0xF53B +ROM:20D7 movx A, @DPTR +ROM:20D8 jz ROM_20E0 +ROM:20DA setb C +ROM:20DB lcall ROM_385A +ROM:20DE jc ROM_20E4 +ROM:20E0 +ROM:20E0 ROM_20E0: ; CODE XREF: ROM:20D8↑j +ROM:20E0 mov R7, #0x64 ; 'd' +ROM:20E2 sjmp ROM_20EE +ROM:20E4 ; --------------------------------------------------------------------------- +ROM:20E4 +ROM:20E4 ROM_20E4: ; CODE XREF: ROM:20DE↑j +ROM:20E4 acall ROM_2799 +ROM:20E6 jnz ROM_20EC +ROM:20E8 mov R7, #0x83 +ROM:20EA sjmp ROM_20EE +ROM:20EC ; --------------------------------------------------------------------------- +ROM:20EC +ROM:20EC ROM_20EC: ; CODE XREF: ROM:20E6↑j +ROM:20EC mov R7, #1 +ROM:20EE +ROM:20EE ROM_20EE: ; CODE XREF: ROM:20E2↑j +ROM:20EE ; ROM:20EA↑j +ROM:20EE acall ROM_2153 +ROM:20F0 sjmp ROM_2148 +ROM:20F2 ; --------------------------------------------------------------------------- +ROM:20F2 +ROM:20F2 ROM_20F2: ; CODE XREF: ROM:20BE↑j +ROM:20F2 acall ROM_2799 +ROM:20F4 jnz ROM_2120 +ROM:20F6 mov R7, #0x80 +ROM:20F8 mov R6, #0x51 ; 'Q' +ROM:20FA mov R5, #1 +ROM:20FC mov R4, A +ROM:20FD mov DPTR, #0xF847 +ROM:2100 acall load_4_bytes_R0_R1_R2_R3 +ROM:2102 setb C +ROM:2103 lcall code_B1C +ROM:2106 jc ROM_214E +ROM:2108 acall ROM_23D6 +ROM:210A mov DPTR, #0xF53B +ROM:210D movx A, @DPTR +ROM:210E jz ROM_2116 +ROM:2110 setb C +ROM:2111 lcall ROM_385A +ROM:2114 jc ROM_211A +ROM:2116 +ROM:2116 ROM_2116: ; CODE XREF: ROM:210E↑j +ROM:2116 mov R7, #0x64 ; 'd' +ROM:2118 sjmp ROM_211C +ROM:211A ; --------------------------------------------------------------------------- +ROM:211A +ROM:211A ROM_211A: ; CODE XREF: ROM:2114↑j +ROM:211A mov R7, #0x83 +ROM:211C +ROM:211C ROM_211C: ; CODE XREF: ROM:2118↑j +ROM:211C acall ROM_2153 +ROM:211E sjmp ROM_2148 +ROM:2120 ; --------------------------------------------------------------------------- +ROM:2120 +ROM:2120 ROM_2120: ; CODE XREF: ROM:20F4↑j +ROM:2120 clr A +ROM:2121 mov R7, #0x60 ; '`' +ROM:2123 mov R6, #0x54 ; 'T' +ROM:2125 mov R5, A +ROM:2126 mov R4, A +ROM:2127 mov DPTR, #0xF847 +ROM:212A acall load_4_bytes_R0_R1_R2_R3 +ROM:212C setb C +ROM:212D lcall code_B1C +ROM:2130 jc ROM_214E +ROM:2132 acall ROM_23D6 +ROM:2134 mov DPTR, #0xF53B +ROM:2137 movx A, @DPTR +ROM:2138 jz ROM_2140 +ROM:213A setb C +ROM:213B lcall ROM_385A +ROM:213E jc ROM_2144 +ROM:2140 +ROM:2140 ROM_2140: ; CODE XREF: ROM:2138↑j +ROM:2140 mov R7, #0x64 ; 'd' +ROM:2142 sjmp ROM_2146 +ROM:2144 ; --------------------------------------------------------------------------- +ROM:2144 +ROM:2144 ROM_2144: ; CODE XREF: ROM:213E↑j +ROM:2144 mov R7, #1 +ROM:2146 +ROM:2146 ROM_2146: ; CODE XREF: ROM:2142↑j +ROM:2146 acall ROM_2153 +ROM:2148 +ROM:2148 ROM_2148: ; CODE XREF: ROM:207B↑j +ROM:2148 ; ROM:20F0↑j ... +ROM:2148 lcall Trampoline_for_setup_pins_eeprom_ROM_D408 +ROM:214B lcall ROM_D94C +ROM:214E +ROM:214E ROM_214E: ; CODE XREF: ROM:2016↑j +ROM:214E ; ROM:20A9↑j ... +ROM:214E ret +ROM:214F +ROM:214F ; =============== S U B R O U T I N E ======================================= +ROM:214F +ROM:214F +ROM:214F ROM_214F: ; CODE XREF: ROM_436B-E7F↓p +ROM:214F ; ROM_405D+5B↓p ... +ROM:214F mov A, R7 +ROM:2150 movx @DPTR, A +ROM:2151 mov R7, #1 +ROM:2151 ; End of function ROM_214F +ROM:2151 +ROM:2153 +ROM:2153 ; =============== S U B R O U T I N E ======================================= +ROM:2153 +ROM:2153 +ROM:2153 ROM_2153: ; CODE XREF: code_1E6A+67↑p +ROM:2153 ; ROM:ROM_2079↑p ... +ROM:2153 mov DPTR, #0xF84F +ROM:2156 lcall ROM_76FB +ROM:2159 mov DPTR, #0xF53A +ROM:215C movx A, @DPTR +ROM:215D xrl A, #1 +ROM:215F jnz ROM_2163 +ROM:2161 ajmp ROM_2223 +ROM:2163 ; --------------------------------------------------------------------------- +ROM:2163 +ROM:2163 ROM_2163: ; CODE XREF: ROM_2153+C↑j +ROM:2163 mov DPTR, #0xF552 +ROM:2166 movx A, @DPTR +ROM:2167 xrl A, #1 +ROM:2169 jnz ROM_2171 +ROM:216B mov DPTR, #0xF84F +ROM:216E mov A, #0x64 ; 'd' +ROM:2170 movx @DPTR, A +ROM:2171 +ROM:2171 ROM_2171: ; CODE XREF: ROM_2153+16↑j +ROM:2171 lcall ROM_9B7E +ROM:2174 mov DPTR, #0xF84F +ROM:2177 movx A, @DPTR +ROM:2178 lcall code_C69 +ROM:217B ajmp ROM_21A0 +ROM:217B ; --------------------------------------------------------------------------- +ROM:217D .byte 1 +ROM:217E .byte 0x21 ; ! +ROM:217F .byte 0xB8 +ROM:2180 .byte 4 +ROM:2181 .byte 0x21 ; ! +ROM:2182 .byte 0xA5 +ROM:2183 .byte 0x1F +ROM:2184 .byte 0x21 ; ! +ROM:2185 .byte 0xA9 +ROM:2186 .byte 0x20 +ROM:2187 .byte 0x21 ; ! +ROM:2188 .byte 0xAD +ROM:2189 .byte 0x21 ; ! +ROM:218A .byte 0x21 ; ! +ROM:218B .byte 0xB1 +ROM:218C .byte 0x23 ; # +ROM:218D .byte 0x21 ; ! +ROM:218E .byte 0xBD +ROM:218F .byte 0x64 ; d +ROM:2190 .byte 0x21 ; ! +ROM:2191 .byte 0xD1 +ROM:2192 .byte 0x82 +ROM:2193 .byte 0x21 ; ! +ROM:2194 .byte 0xE4 +ROM:2195 .byte 0x83 +ROM:2196 .byte 0x21 ; ! +ROM:2197 .byte 0xF7 +ROM:2198 .byte 0x8C +ROM:2199 .byte 0x21 ; ! +ROM:219A .byte 0xFE +ROM:219B .byte 0x8D +ROM:219C .byte 0 +ROM:219D .byte 0 +ROM:219E .byte 0x22 ; " +ROM:219F .byte 3 +ROM:21A0 ; --------------------------------------------------------------------------- +ROM:21A0 +ROM:21A0 ROM_21A0: ; CODE XREF: ROM_2153+28↑j +ROM:21A0 lcall ROM_569D +ROM:21A3 sjmp ROM_21CA +ROM:21A3 ; --------------------------------------------------------------------------- +ROM:21A5 .byte 0x7F ;  +ROM:21A6 .byte 0x1F +ROM:21A7 .byte 0x80 +ROM:21A8 .byte 0xA +ROM:21A9 .byte 0x7F ;  +ROM:21AA .byte 0x20 +ROM:21AB .byte 0x80 +ROM:21AC .byte 6 +ROM:21AD .byte 0x7F ;  +ROM:21AE .byte 0x21 ; ! +ROM:21AF .byte 0x80 +ROM:21B0 .byte 2 +ROM:21B1 .byte 0x7F ;  +ROM:21B2 .byte 0x23 ; # +ROM:21B3 .byte 0x12 +ROM:21B4 .byte 0x51 ; Q +ROM:21B5 .byte 0x60 ; ` +ROM:21B6 .byte 0x80 +ROM:21B7 .byte 0x4B ; K +ROM:21B8 .byte 0x12 +ROM:21B9 .byte 0x5C ; \ +ROM:21BA .byte 0xD3 +ROM:21BB .byte 0x80 +ROM:21BC .byte 0x46 ; F +ROM:21BD .byte 0x71 ; q +ROM:21BE .byte 0xD6 +ROM:21BF .byte 0x12 +ROM:21C0 .byte 0x57 ; W +ROM:21C1 .byte 0x39 ; 9 +ROM:21C2 .byte 0x90 +ROM:21C3 .byte 0xF5 +ROM:21C4 .byte 0x52 ; R +ROM:21C5 .byte 0xE0 +ROM:21C6 .byte 0x64 ; d +ROM:21C7 .byte 1 +ROM:21C8 .byte 0x60 ; ` +ROM:21C9 .byte 0x39 ; 9 +ROM:21CA ; --------------------------------------------------------------------------- +ROM:21CA +ROM:21CA ROM_21CA: ; CODE XREF: ROM_2153+50↑j +ROM:21CA clr A +ROM:21CB mov DPTR, #0xFDD0 +ROM:21CE movx @DPTR, A +ROM:21CF sjmp ROM_2203 +ROM:21CF ; --------------------------------------------------------------------------- +ROM:21D1 .byte 0xF1 +ROM:21D2 .byte 0xB1 +ROM:21D3 .byte 0x60 ; ` +ROM:21D4 .byte 2 +ROM:21D5 .byte 0x71 ; q +ROM:21D6 .byte 0xD6 +ROM:21D7 .byte 0x7F ;  +ROM:21D8 .byte 0x82 +ROM:21D9 .byte 0x12 +ROM:21DA .byte 0x51 ; Q +ROM:21DB .byte 0xC0 +ROM:21DC .byte 0x90 +ROM:21DD .byte 0xFD +ROM:21DE .byte 0xD0 +ROM:21DF .byte 0x74 ; t +ROM:21E0 .byte 2 +ROM:21E1 .byte 0xF0 +ROM:21E2 .byte 0x80 +ROM:21E3 .byte 0x1F +ROM:21E4 .byte 0xF1 +ROM:21E5 .byte 0xB1 +ROM:21E6 .byte 0x60 ; ` +ROM:21E7 .byte 2 +ROM:21E8 .byte 0x71 ; q +ROM:21E9 .byte 0xD6 +ROM:21EA .byte 0x7F ;  +ROM:21EB .byte 0x83 +ROM:21EC .byte 0x12 +ROM:21ED .byte 0x51 ; Q +ROM:21EE .byte 0xC0 +ROM:21EF .byte 0x90 +ROM:21F0 .byte 0xFD +ROM:21F1 .byte 0xD0 +ROM:21F2 .byte 0x74 ; t +ROM:21F3 .byte 1 +ROM:21F4 .byte 0xF0 +ROM:21F5 .byte 0x80 +ROM:21F6 .byte 0xC +ROM:21F7 .byte 0x71 ; q +ROM:21F8 .byte 0xD6 +ROM:21F9 .byte 0x12 +ROM:21FA .byte 0x56 ; V +ROM:21FB .byte 0xDC +ROM:21FC .byte 0x80 +ROM:21FD .byte 5 +ROM:21FE .byte 0x71 ; q +ROM:21FF .byte 0xD6 +ROM:2200 .byte 0x12 +ROM:2201 .byte 0x9F +ROM:2202 .byte 0x1A +ROM:2203 ; --------------------------------------------------------------------------- +ROM:2203 +ROM:2203 ROM_2203: ; CODE XREF: ROM_2153+7C↑j +ROM:2203 lcall ROM_508B +ROM:2206 mov DPTR, #0xFDD3 +ROM:2209 movx A, @DPTR +ROM:220A jnz ROM_2223 +ROM:220C lcall ROM_9A40 +ROM:220F mov DPTR, #0xF850 +ROM:2212 lcall ROM_9B72 +ROM:2215 mov DPTR, #0xF850 +ROM:2218 lcall ROM_D34A +ROM:221B jnc ROM_2223 +ROM:221D mov DPTR, #0xFDD3 +ROM:2220 mov A, #1 +ROM:2222 movx @DPTR, A +ROM:2223 +ROM:2223 ROM_2223: ; CODE XREF: ROM_2153+E↑j +ROM:2223 ; ROM_2153+B7↑j ... +ROM:2223 ret +ROM:2223 ; End of function ROM_2153 +ROM:2223 +ROM:2224 ; --------------------------------------------------------------------------- +ROM:2224 ; START OF FUNCTION CHUNK FOR ROM_4816 +ROM:2224 +ROM:2224 ROM_2224: ; CODE XREF: ROM_4816:ROM_4813↓j +ROM:2224 clr A +ROM:2225 mov DPTR, #0xF828 +ROM:2228 lcall ROM_3F94 +ROM:222B mov DPTR, #0xFDD5 +ROM:222E acall ROM_27B0 +ROM:2230 jz ROM_2262 +ROM:2232 lcall ROM_D83E +ROM:2235 movx @DPTR, A +ROM:2236 xrl A, #1 +ROM:2238 jnz ROM_2243 +ROM:223A mov R7, #0x82 +ROM:223C acall ROM_2153 +ROM:223E lcall ROM_2C68 +ROM:2241 sjmp ROM_225D +ROM:2243 ; --------------------------------------------------------------------------- +ROM:2243 +ROM:2243 ROM_2243: ; CODE XREF: ROM_4816-25DE↑j +ROM:2243 mov DPTR, #0xF828 +ROM:2246 movx A, @DPTR +ROM:2247 xrl A, #0x44 +ROM:2249 jnz ROM_225D +ROM:224B lcall ROM_816B +ROM:224E mov R7, #0x1F +ROM:2250 acall ROM_2153 +ROM:2252 lcall ROM_9396 +ROM:2255 mov R7, #0xE8 +ROM:2257 mov R6, #3 +ROM:2259 mov R5, A +ROM:225A mov R4, A +ROM:225B ajmp ROM_23D3 +ROM:225D ; --------------------------------------------------------------------------- +ROM:225D +ROM:225D ROM_225D: ; CODE XREF: ROM_4816-25D5↑j +ROM:225D ; ROM_4816-25CD↑j +ROM:225D lcall ROM_6962 +ROM:2260 ajmp ROM_23D3 +ROM:2262 ; --------------------------------------------------------------------------- +ROM:2262 +ROM:2262 ROM_2262: ; CODE XREF: ROM_4816-25E6↑j +ROM:2262 mov DPTR, #0xF49B +ROM:2265 movx A, @DPTR +ROM:2266 xrl A, #2 +ROM:2268 jz ROM_226C +ROM:226A ajmp ROM_22F8 +ROM:226C ; --------------------------------------------------------------------------- +ROM:226C +ROM:226C ROM_226C: ; CODE XREF: ROM_4816-25AE↑j +ROM:226C lcall ROM_D83E +ROM:226F movx @DPTR, A +ROM:2270 jnz ROM_2277 +ROM:2272 lcall ROM_6962 +ROM:2275 ajmp ROM_23D3 +ROM:2277 ; --------------------------------------------------------------------------- +ROM:2277 +ROM:2277 ROM_2277: ; CODE XREF: ROM_4816-25A6↑j +ROM:2277 mov DPTR, #0xF49A +ROM:227A lcall ROM_A77E +ROM:227D jc ROM_2288 +ROM:227F lcall ROM_D77F +ROM:2282 jnz ROM_2288 +ROM:2284 lcall ROM_D7A0 +ROM:2287 movx @DPTR, A +ROM:2288 +ROM:2288 ROM_2288: ; CODE XREF: ROM_4816-2599↑j +ROM:2288 ; ROM_4816-2594↑j +ROM:2288 acall ROM_2799 +ROM:228A jnz ROM_22A7 +ROM:228C acall ROM_23E4 +ROM:228E jc ROM_2296 +ROM:2290 mov R7, #0x83 +ROM:2292 acall ROM_2153 +ROM:2294 sjmp ROM_22C3 +ROM:2296 ; --------------------------------------------------------------------------- +ROM:2296 +ROM:2296 ROM_2296: ; CODE XREF: ROM_4816-2588↑j +ROM:2296 acall ROM_23DD +ROM:2298 jnz ROM_229E +ROM:229A mov R7, #0x82 +ROM:229C sjmp ROM_22A0 +ROM:229E ; --------------------------------------------------------------------------- +ROM:229E +ROM:229E ROM_229E: ; CODE XREF: ROM_4816-257E↑j +ROM:229E mov R7, #0x83 +ROM:22A0 +ROM:22A0 ROM_22A0: ; CODE XREF: ROM_4816-257A↑j +ROM:22A0 acall ROM_2153 +ROM:22A2 lcall ROM_2C68 +ROM:22A5 sjmp ROM_22C6 +ROM:22A7 ; --------------------------------------------------------------------------- +ROM:22A7 +ROM:22A7 ROM_22A7: ; CODE XREF: ROM_4816-258C↑j +ROM:22A7 lcall ROM_81E1 +ROM:22AA jz ROM_22AE +ROM:22AC sjmp ROM_22B3 +ROM:22AE ; --------------------------------------------------------------------------- +ROM:22AE +ROM:22AE ROM_22AE: ; CODE XREF: ROM_4816-256C↑j +ROM:22AE lcall ROM_683B +ROM:22B1 jnz ROM_22B7 +ROM:22B3 +ROM:22B3 ROM_22B3: ; CODE XREF: ROM_4816-256A↑j +ROM:22B3 mov R7, #0x82 +ROM:22B5 sjmp ROM_22B9 +ROM:22B7 ; --------------------------------------------------------------------------- +ROM:22B7 +ROM:22B7 ROM_22B7: ; CODE XREF: ROM_4816-2565↑j +ROM:22B7 mov R7, #1 +ROM:22B9 +ROM:22B9 ROM_22B9: ; CODE XREF: ROM_4816-2561↑j +ROM:22B9 acall ROM_2153 +ROM:22BB acall ROM_23E4 +ROM:22BD jc ROM_22C6 +ROM:22BF acall ROM_23DD +ROM:22C1 jnz ROM_22C6 +ROM:22C3 +ROM:22C3 ROM_22C3: ; CODE XREF: ROM_4816-2582↑j +ROM:22C3 lcall ROM_2E48 +ROM:22C6 +ROM:22C6 ROM_22C6: ; CODE XREF: ROM_4816-2571↑j +ROM:22C6 ; ROM_4816-2559↑j ... +ROM:22C6 mov DPTR, #0xFB87 +ROM:22C9 movx A, @DPTR +ROM:22CA jz ROM_22DD +ROM:22CC acall ROM_27FB +ROM:22CE movx A, @DPTR +ROM:22CF mov R7, A +ROM:22D0 mov DPTR, #0xF53B +ROM:22D3 movx A, @DPTR +ROM:22D4 mov R6, A +ROM:22D5 mov A, R7 +ROM:22D6 cjne A, RAM_6, ROM_22DB +ROM:22D9 sjmp ROM_22E9 +ROM:22DB ; --------------------------------------------------------------------------- +ROM:22DB +ROM:22DB ROM_22DB: ; CODE XREF: ROM_4816-2540↑j +ROM:22DB sjmp ROM_22F0 +ROM:22DD ; --------------------------------------------------------------------------- +ROM:22DD +ROM:22DD ROM_22DD: ; CODE XREF: ROM_4816-254C↑j +ROM:22DD mov DPTR, #0xF53B +ROM:22E0 movx A, @DPTR +ROM:22E1 mov R7, A +ROM:22E2 mov DPTR, #0xF499 +ROM:22E5 movx A, @DPTR +ROM:22E6 cjne A, RAM_7, ROM_22F0 +ROM:22E9 +ROM:22E9 ROM_22E9: ; CODE XREF: ROM_4816-253D↑j +ROM:22E9 clr A +ROM:22EA mov DPTR, #0xF508 +ROM:22ED movx @DPTR, A +ROM:22EE ajmp ROM_23AC +ROM:22F0 ; --------------------------------------------------------------------------- +ROM:22F0 +ROM:22F0 ROM_22F0: ; CODE XREF: ROM_4816:ROM_22DB↑j +ROM:22F0 ; ROM_4816-2530↑j +ROM:22F0 mov DPTR, #0xF508 +ROM:22F3 mov A, #1 +ROM:22F5 movx @DPTR, A +ROM:22F6 ajmp ROM_23AC +ROM:22F8 ; --------------------------------------------------------------------------- +ROM:22F8 +ROM:22F8 ROM_22F8: ; CODE XREF: ROM_4816-25AC↑j +ROM:22F8 ; ROM_4816-2499↓j +ROM:22F8 lcall ROM_D83E +ROM:22FB movx @DPTR, A +ROM:22FC jnz ROM_2300 +ROM:22FE ajmp ROM_237F +ROM:2300 ; --------------------------------------------------------------------------- +ROM:2300 +ROM:2300 ROM_2300: ; CODE XREF: ROM_4816-251A↑j +ROM:2300 mov DPTR, #0xF49A +ROM:2303 lcall ROM_A77E +ROM:2306 jc ROM_2319 +ROM:2308 lcall ROM_D77F +ROM:230B jnz ROM_2319 +ROM:230D mov DPTR, #0xF53B +ROM:2310 movx A, @DPTR +ROM:2311 mov DPTR, #0xFDD5 +ROM:2314 movx @DPTR, A +ROM:2315 lcall ROM_D7A0 +ROM:2318 movx @DPTR, A +ROM:2319 +ROM:2319 ROM_2319: ; CODE XREF: ROM_4816-2510↑j +ROM:2319 ; ROM_4816-250B↑j +ROM:2319 acall ROM_2799 +ROM:231B jnz ROM_2338 +ROM:231D acall ROM_23E4 +ROM:231F jc ROM_2327 +ROM:2321 mov R7, #0x83 +ROM:2323 acall ROM_2153 +ROM:2325 sjmp ROM_2354 +ROM:2327 ; --------------------------------------------------------------------------- +ROM:2327 +ROM:2327 ROM_2327: ; CODE XREF: ROM_4816-24F7↑j +ROM:2327 acall ROM_23DD +ROM:2329 jnz ROM_232F +ROM:232B mov R7, #0x82 +ROM:232D sjmp ROM_2331 +ROM:232F ; --------------------------------------------------------------------------- +ROM:232F +ROM:232F ROM_232F: ; CODE XREF: ROM_4816-24ED↑j +ROM:232F mov R7, #0x83 +ROM:2331 +ROM:2331 ROM_2331: ; CODE XREF: ROM_4816-24E9↑j +ROM:2331 acall ROM_2153 +ROM:2333 lcall ROM_2C68 +ROM:2336 sjmp ROM_2357 +ROM:2338 ; --------------------------------------------------------------------------- +ROM:2338 +ROM:2338 ROM_2338: ; CODE XREF: ROM_4816-24FB↑j +ROM:2338 lcall ROM_81E1 +ROM:233B jz ROM_233F +ROM:233D sjmp ROM_2344 +ROM:233F ; --------------------------------------------------------------------------- +ROM:233F +ROM:233F ROM_233F: ; CODE XREF: ROM_4816-24DB↑j +ROM:233F lcall ROM_683B +ROM:2342 jnz ROM_2348 +ROM:2344 +ROM:2344 ROM_2344: ; CODE XREF: ROM_4816-24D9↑j +ROM:2344 mov R7, #0x82 +ROM:2346 sjmp ROM_234A +ROM:2348 ; --------------------------------------------------------------------------- +ROM:2348 +ROM:2348 ROM_2348: ; CODE XREF: ROM_4816-24D4↑j +ROM:2348 mov R7, #1 +ROM:234A +ROM:234A ROM_234A: ; CODE XREF: ROM_4816-24D0↑j +ROM:234A acall ROM_2153 +ROM:234C acall ROM_23E4 +ROM:234E jc ROM_2357 +ROM:2350 acall ROM_23DD +ROM:2352 jnz ROM_2357 +ROM:2354 +ROM:2354 ROM_2354: ; CODE XREF: ROM_4816-24F1↑j +ROM:2354 lcall ROM_2E48 +ROM:2357 +ROM:2357 ROM_2357: ; CODE XREF: ROM_4816-24E0↑j +ROM:2357 ; ROM_4816-24C8↑j ... +ROM:2357 acall ROM_23DD +ROM:2359 jnz ROM_2368 +ROM:235B acall ROM_23E4 +ROM:235D jc ROM_2362 +ROM:235F mov A, #6 +ROM:2361 movx @DPTR, A +ROM:2362 +ROM:2362 ROM_2362: ; CODE XREF: ROM_4816-24B9↑j +ROM:2362 mov DPTR, #0xF82A +ROM:2365 movx A, @DPTR +ROM:2366 jz ROM_237F +ROM:2368 +ROM:2368 ROM_2368: ; CODE XREF: ROM_4816-24BD↑j +ROM:2368 mov DPTR, #0xF82A +ROM:236B movx A, @DPTR +ROM:236C inc A +ROM:236D movx @DPTR, A +ROM:236E lcall ROM_5FFE +ROM:2371 lcall Enable_Radio_ROM_D4B6 +ROM:2374 lcall ROM_8C31 +ROM:2377 lcall ROM_280D +ROM:237A mov A, R7 +ROM:237B jz ROM_237F +ROM:237D ajmp ROM_22F8 +ROM:237F ; --------------------------------------------------------------------------- +ROM:237F +ROM:237F ROM_237F: ; CODE XREF: ROM_4816-2518↑j +ROM:237F ; ROM_4816-24B0↑j ... +ROM:237F mov DPTR, #0xF82A +ROM:2382 movx A, @DPTR +ROM:2383 jz ROM_23A0 +ROM:2385 mov DPTR, #0xF828 +ROM:2388 movx A, @DPTR +ROM:2389 jz ROM_23A0 +ROM:238B mov DPTR, #0xF49A +ROM:238E lcall ROM_A77E +ROM:2391 jc ROM_23A0 +ROM:2393 lcall ROM_D77F +ROM:2396 jnz ROM_23A0 +ROM:2398 lcall ROM_3FEE +ROM:239B mov DPTR, #0xF829 +ROM:239E mov A, R7 +ROM:239F movx @DPTR, A +ROM:23A0 +ROM:23A0 ROM_23A0: ; CODE XREF: ROM_4816-2493↑j +ROM:23A0 ; ROM_4816-248D↑j ... +ROM:23A0 mov DPTR, #0xF829 +ROM:23A3 movx A, @DPTR +ROM:23A4 xrl A, #0x33 +ROM:23A6 jnz ROM_23AC +ROM:23A8 mov R7, #0x82 +ROM:23AA acall ROM_2153 +ROM:23AC +ROM:23AC ROM_23AC: ; CODE XREF: ROM_4816-2528↑j +ROM:23AC ; ROM_4816-2520↑j ... +ROM:23AC lcall ROM_695B +ROM:23AF jnz ROM_23D0 +ROM:23B1 lcall ROM_2F4D +ROM:23B4 lcall ROM_950D +ROM:23B7 mov DPTR, #0xF82C +ROM:23BA lcall load_4_bytes_R4_R5_R6_A +ROM:23BD mov R7, A +ROM:23BE clr A +ROM:23BF mov R3, #0x64 ; 'd' +ROM:23C1 lcall ROM_2E5C +ROM:23C4 lcall ROM_950D +ROM:23C7 mov DPTR, #0xF82C +ROM:23CA lcall load_4_bytes_R4_R5_R6_A +ROM:23CD mov R7, A +ROM:23CE sjmp ROM_23D3 +ROM:23D0 ; --------------------------------------------------------------------------- +ROM:23D0 +ROM:23D0 ROM_23D0: ; CODE XREF: ROM_4816-2467↑j +ROM:23D0 lcall ROM_6962 +ROM:23D3 +ROM:23D3 ROM_23D3: ; CODE XREF: ROM_4816-25BB↑j +ROM:23D3 ; ROM_4816-25B6↑j ... +ROM:23D3 ljmp ROM_2E66 +ROM:23D3 ; END OF FUNCTION CHUNK FOR ROM_4816 +ROM:23D6 +ROM:23D6 ; =============== S U B R O U T I N E ======================================= +ROM:23D6 +ROM:23D6 +ROM:23D6 ROM_23D6: ; CODE XREF: ROM:2055↑p +ROM:23D6 ; ROM:20D2↑p ... +ROM:23D6 mov DPTR, #0xF50A +ROM:23D9 mov A, #1 +ROM:23DB movx @DPTR, A +ROM:23DC ret +ROM:23DC ; End of function ROM_23D6 +ROM:23DC +ROM:23DD +ROM:23DD ; =============== S U B R O U T I N E ======================================= +ROM:23DD +ROM:23DD +ROM:23DD ROM_23DD: ; CODE XREF: ROM_4816:ROM_2296↑p +ROM:23DD ; ROM_4816-2557↑p ... +ROM:23DD mov DPTR, #0xF828 +ROM:23E0 movx A, @DPTR +ROM:23E1 xrl A, #1 +ROM:23E3 ret +ROM:23E3 ; End of function ROM_23DD +ROM:23E3 +ROM:23E4 +ROM:23E4 ; =============== S U B R O U T I N E ======================================= +ROM:23E4 +ROM:23E4 +ROM:23E4 ROM_23E4: ; CODE XREF: ROM_4816-258A↑p +ROM:23E4 ; ROM_4816-255B↑p ... +ROM:23E4 mov DPTR, #0xFDC6 +ROM:23E4 ; End of function ROM_23E4 +ROM:23E4 +ROM:23E7 +ROM:23E7 ; =============== S U B R O U T I N E ======================================= +ROM:23E7 +ROM:23E7 +ROM:23E7 ROM_23E7: ; CODE XREF: ROM_7B6C+3↓p +ROM:23E7 ; ROM_A422+3↓p +ROM:23E7 movx A, @DPTR +ROM:23E7 ; End of function ROM_23E7 +ROM:23E7 +ROM:23E8 +ROM:23E8 ; =============== S U B R O U T I N E ======================================= +ROM:23E8 +ROM:23E8 +ROM:23E8 ROM_23E8: ; CODE XREF: ROM_99CE+15↓p +ROM:23E8 ; ROM_A0C8+3E↓p ... +ROM:23E8 clr C +ROM:23E8 ; End of function ROM_23E8 +ROM:23E8 +ROM:23E9 +ROM:23E9 ; =============== S U B R O U T I N E ======================================= +ROM:23E9 +ROM:23E9 +ROM:23E9 ROM_23E9: ; CODE XREF: ROM_436B+229↓p +ROM:23E9 ; ROM_887C+1A8↓p +ROM:23E9 subb A, #6 +ROM:23EB mov A, #0x80 +ROM:23ED subb A, #0x80 +ROM:23EF ret +ROM:23EF ; End of function ROM_23E9 +ROM:23EF +ROM:23F0 ; --------------------------------------------------------------------------- +ROM:23F0 ; START OF FUNCTION CHUNK FOR ROM_4816 +ROM:23F0 +ROM:23F0 ROM_23F0: ; CODE XREF: ROM_4816+14↓j +ROM:23F0 clr A +ROM:23F1 mov DPTR, #0xF828 +ROM:23F4 movx @DPTR, A +ROM:23F5 mov R7, A +ROM:23F6 mov R6, A +ROM:23F7 mov R5, A +ROM:23F8 lcall ROM_DA84 +ROM:23FB clr A +ROM:23FC mov DPTR, #0xF832 +ROM:23FF movx @DPTR, A +ROM:2400 inc DPTR +ROM:2401 movx @DPTR, A +ROM:2402 mov DPTR, #0xFDC6 +ROM:2405 movx A, @DPTR +ROM:2406 add A, #0xFE +ROM:2408 cjne A, #0xD, ROM_240B +ROM:240B +ROM:240B ROM_240B: ; CODE XREF: ROM_4816-240E↑j +ROM:240B jc ROM_240F +ROM:240D ajmp ROM_2607 +ROM:240F ; --------------------------------------------------------------------------- +ROM:240F +ROM:240F ROM_240F: ; CODE XREF: ROM_4816:ROM_240B↑j +ROM:240F mov DPTR, #0x241D +ROM:2412 mov B, #3 ; B Register +ROM:2415 mul AB +ROM:2416 xch A, DP0H ; Data Pointer High Byte +ROM:2418 add A, B ; B Register +ROM:241A xch A, DP0H ; Data Pointer High Byte +ROM:241C jmp @A+DPTR +ROM:241C ; END OF FUNCTION CHUNK FOR ROM_4816 +ROM:241C ; --------------------------------------------------------------------------- +ROM:241D .byte 2 +ROM:241E .byte 0x25 ; % +ROM:241F .byte 0xF5 +ROM:2420 .byte 2 +ROM:2421 .byte 0x24 ; $ +ROM:2422 .byte 0x48 ; H +ROM:2423 .byte 2 +ROM:2424 .byte 0x24 ; $ +ROM:2425 .byte 0x74 ; t +ROM:2426 .byte 2 +ROM:2427 .byte 0x26 ; & +ROM:2428 .byte 7 +ROM:2429 .byte 2 +ROM:242A .byte 0x24 ; $ +ROM:242B .byte 0x7C ; | +ROM:242C .byte 2 +ROM:242D .byte 0x24 ; $ +ROM:242E .byte 0x88 +ROM:242F .byte 2 +ROM:2430 .byte 0x24 ; $ +ROM:2431 .byte 0x44 ; D +ROM:2432 .byte 2 +ROM:2433 .byte 0x25 ; % +ROM:2434 .byte 0xD0 +ROM:2435 .byte 2 +ROM:2436 .byte 0x25 ; % +ROM:2437 .byte 0xFA +ROM:2438 .byte 2 +ROM:2439 .byte 0x26 ; & +ROM:243A .byte 7 +ROM:243B .byte 2 +ROM:243C .byte 0x25 ; % +ROM:243D .byte 0xED +ROM:243E .byte 2 +ROM:243F .byte 0x24 ; $ +ROM:2440 .byte 0x8E +ROM:2441 .byte 2 +ROM:2442 .byte 0x24 ; $ +ROM:2443 .byte 0xF7 +ROM:2444 .byte 0x7F ;  +ROM:2445 .byte 1 +ROM:2446 .byte 0xA1 +ROM:2447 .byte 0xDA +ROM:2448 .byte 0x90 +ROM:2449 .byte 0xF4 +ROM:244A .byte 0x90 +ROM:244B .byte 0xE0 +ROM:244C .byte 0x70 ; p +ROM:244D .byte 0xA +ROM:244E .byte 0x74 ; t +ROM:244F .byte 0xFF +ROM:2450 .byte 0x90 +ROM:2451 .byte 0xF8 +ROM:2452 .byte 0x32 ; 2 +ROM:2453 .byte 0xF0 +ROM:2454 .byte 0xA3 +ROM:2455 .byte 0xF0 +ROM:2456 .byte 0x80 +ROM:2457 .byte 0xF +ROM:2458 .byte 0x90 +ROM:2459 .byte 0xF5 +ROM:245A .byte 0x53 ; S +ROM:245B .byte 0xE0 +ROM:245C .byte 0xFF +ROM:245D .byte 0xA3 +ROM:245E .byte 0xE0 +ROM:245F .byte 0x90 +ROM:2460 .byte 0xF8 +ROM:2461 .byte 0x32 ; 2 +ROM:2462 .byte 0xCF +ROM:2463 .byte 0xF0 +ROM:2464 .byte 0xA3 +ROM:2465 .byte 0xEF +ROM:2466 .byte 0xF0 +ROM:2467 .byte 0x90 +ROM:2468 .byte 0xF8 +ROM:2469 .byte 0x32 ; 2 +ROM:246A .byte 0xE0 +ROM:246B .byte 0xFE +ROM:246C .byte 0xA3 +ROM:246D .byte 0xE0 +ROM:246E .byte 0xFF +ROM:246F .byte 0x7D ; } +ROM:2470 .byte 0x12 +ROM:2471 .byte 2 +ROM:2472 .byte 0x9F +ROM:2473 .byte 0xE0 +ROM:2474 .byte 0x12 +ROM:2475 .byte 0x66 ; f +ROM:2476 .byte 0x80 +ROM:2477 .byte 0x12 +ROM:2478 .byte 0x88 +ROM:2479 .byte 2 +ROM:247A .byte 0x80 +ROM:247B .byte 6 +ROM:247C .byte 0x12 +ROM:247D .byte 0x66 ; f +ROM:247E .byte 0x80 +ROM:247F .byte 0x12 +ROM:2480 .byte 0x81 +ROM:2481 .byte 0xFC +ROM:2482 .byte 0x7D ; } +ROM:2483 .byte 4 +ROM:2484 .byte 0x7F ;  +ROM:2485 .byte 0x32 ; 2 +ROM:2486 .byte 0xA1 +ROM:2487 .byte 0xEA +ROM:2488 .byte 0x12 +ROM:2489 .byte 0x66 ; f +ROM:248A .byte 0x80 +ROM:248B .byte 2 +ROM:248C .byte 0x87 +ROM:248D .byte 0xC9 +ROM:248E .byte 0x90 +ROM:248F .byte 0xFB +ROM:2490 .byte 0x87 +ROM:2491 .byte 0x74 ; t +ROM:2492 .byte 1 +ROM:2493 .byte 0x12 +ROM:2494 .byte 0x9D +ROM:2495 .byte 0x21 ; ! +ROM:2496 .byte 0x12 +ROM:2497 .byte 0x8C +ROM:2498 .byte 0xF8 +ROM:2499 .byte 0x90 +ROM:249A .byte 0xF5 +ROM:249B .byte 8 +ROM:249C .byte 0xE0 +ROM:249D .byte 0x70 ; p +ROM:249E .byte 0x2D ; - +ROM:249F .byte 0xF1 +ROM:24A0 .byte 0xFB +ROM:24A1 .byte 0xE0 +ROM:24A2 .byte 0xFF +ROM:24A3 .byte 0x90 +ROM:24A4 .byte 0xF8 +ROM:24A5 .byte 0x2D ; - +ROM:24A6 .byte 0xF0 +ROM:24A7 .byte 0x90 +ROM:24A8 .byte 0xF5 +ROM:24A9 .byte 0x3B ; ; +ROM:24AA .byte 0xE0 +ROM:24AB .byte 0xFE +ROM:24AC .byte 0xEF +ROM:24AD .byte 0xB5 +ROM:24AE .byte 6 +ROM:24AF .byte 6 +ROM:24B0 .byte 0x90 +ROM:24B1 .byte 0xFD +ROM:24B2 .byte 0xD0 +ROM:24B3 .byte 0xE0 +ROM:24B4 .byte 0x60 ; ` +ROM:24B5 .byte 0x16 +ROM:24B6 .byte 0x90 +ROM:24B7 .byte 0xF8 +ROM:24B8 .byte 0x2D ; - +ROM:24B9 .byte 0xE0 +ROM:24BA .byte 0xFF +ROM:24BB .byte 0x12 +ROM:24BC .byte 0x81 +ROM:24BD .byte 0xE5 +ROM:24BE .byte 0x70 ; p +ROM:24BF .byte 0xC +ROM:24C0 .byte 0xF1 +ROM:24C1 .byte 0x94 +ROM:24C2 .byte 0x70 ; p +ROM:24C3 .byte 4 +ROM:24C4 .byte 0x7F ;  +ROM:24C5 .byte 0x83 +ROM:24C6 .byte 0x80 +ROM:24C7 .byte 2 +ROM:24C8 .byte 0x7F ;  +ROM:24C9 .byte 1 +ROM:24CA .byte 0x31 ; 1 +ROM:24CB .byte 0x53 ; S +ROM:24CC .byte 0x90 +ROM:24CD .byte 0xF4 +ROM:24CE .byte 0x95 +ROM:24CF .byte 0x12 +ROM:24D0 .byte 0x1F +ROM:24D1 .byte 0xE9 +ROM:24D2 .byte 0xFF +ROM:24D3 .byte 0x90 +ROM:24D4 .byte 0xFA +ROM:24D5 .byte 0x94 +ROM:24D6 .byte 0xD1 +ROM:24D7 .byte 0x2C ; , +ROM:24D8 .byte 0xD3 +ROM:24D9 .byte 0x12 +ROM:24DA .byte 0xB +ROM:24DB .byte 0x1C +ROM:24DC .byte 0x40 ; @ +ROM:24DD .byte 0x10 +ROM:24DE .byte 0x90 +ROM:24DF .byte 0xFA +ROM:24E0 .byte 0x94 +ROM:24E1 .byte 0x12 +ROM:24E2 .byte 0x1F +ROM:24E3 .byte 0xE9 +ROM:24E4 .byte 0xFF +ROM:24E5 .byte 0x90 +ROM:24E6 .byte 0xF4 +ROM:24E7 .byte 0x95 +ROM:24E8 .byte 0xD1 +ROM:24E9 .byte 0x2C ; , +ROM:24EA .byte 0xF1 +ROM:24EB .byte 0x76 ; v +ROM:24EC .byte 0x80 +ROM:24ED .byte 5 +ROM:24EE .byte 0xE4 +ROM:24EF .byte 0x7F ;  +ROM:24F0 .byte 0x32 ; 2 +ROM:24F1 .byte 0xFE +ROM:24F2 .byte 0xFD +ROM:24F3 .byte 0xF1 +ROM:24F4 .byte 0xA0 +ROM:24F5 .byte 0xA1 +ROM:24F6 .byte 0xC8 +ROM:24F7 .byte 0xE4 +ROM:24F8 .byte 0x90 +ROM:24F9 .byte 0xFB +ROM:24FA .byte 0x87 +ROM:24FB .byte 0xF0 +ROM:24FC .byte 0xFF +ROM:24FD .byte 0xFE +ROM:24FE .byte 0xFD +ROM:24FF .byte 0xFC +ROM:2500 .byte 0x12 +ROM:2501 .byte 0x8C +ROM:2502 .byte 0xF8 +ROM:2503 .byte 0x90 +ROM:2504 .byte 0xF5 +ROM:2505 .byte 8 +ROM:2506 .byte 0xE0 +ROM:2507 .byte 0x60 ; ` +ROM:2508 .byte 2 +ROM:2509 .byte 0xA1 +ROM:250A .byte 0x90 +ROM:250B .byte 0x90 +ROM:250C .byte 0xF4 +ROM:250D .byte 0x99 +ROM:250E .byte 0xE0 +ROM:250F .byte 0x90 +ROM:2510 .byte 0xF8 +ROM:2511 .byte 0x2D ; - +ROM:2512 .byte 0xF0 +ROM:2513 .byte 0x12 +ROM:2514 .byte 0xD8 +ROM:2515 .byte 0xC0 +ROM:2516 .byte 0xFE +ROM:2517 .byte 0xC3 +ROM:2518 .byte 0x9F +ROM:2519 .byte 0x50 ; P +ROM:251A .byte 0x5F ; _ +ROM:251B .byte 0xEE +ROM:251C .byte 0x12 +ROM:251D .byte 0xD8 +ROM:251E .byte 0x46 ; F +ROM:251F .byte 0xF5 +ROM:2520 .byte 0x83 +ROM:2521 .byte 0x12 +ROM:2522 .byte 0x1F +ROM:2523 .byte 0xE9 +ROM:2524 .byte 0xFF +ROM:2525 .byte 0x90 +ROM:2526 .byte 0xFB +ROM:2527 .byte 0x80 +ROM:2528 .byte 0xD1 +ROM:2529 .byte 0x2C ; , +ROM:252A .byte 0xC3 +ROM:252B .byte 0x12 +ROM:252C .byte 0xB +ROM:252D .byte 0x1C +ROM:252E .byte 0x40 ; @ +ROM:252F .byte 6 +ROM:2530 .byte 0xE4 +ROM:2531 .byte 0xFF +ROM:2532 .byte 0xFE +ROM:2533 .byte 0xFD +ROM:2534 .byte 0x80 +ROM:2535 .byte 0x14 +ROM:2536 .byte 0x90 +ROM:2537 .byte 0xFB +ROM:2538 .byte 0x86 +ROM:2539 .byte 0xE0 +ROM:253A .byte 0x12 +ROM:253B .byte 0xD8 +ROM:253C .byte 0x46 ; F +ROM:253D .byte 0xF5 +ROM:253E .byte 0x83 +ROM:253F .byte 0x12 +ROM:2540 .byte 0x1F +ROM:2541 .byte 0xE9 +ROM:2542 .byte 0xFF +ROM:2543 .byte 0x90 +ROM:2544 .byte 0xFB +ROM:2545 .byte 0x80 +ROM:2546 .byte 0xD1 +ROM:2547 .byte 0x2C ; , +ROM:2548 .byte 0xF1 +ROM:2549 .byte 0x75 ; u +ROM:254A .byte 0x12 +ROM:254B .byte 0xDA +ROM:254C .byte 0x84 +ROM:254D .byte 0xE4 +ROM:254E .byte 0x7F ;  +ROM:254F .byte 0x1E +ROM:2550 .byte 0xFE +ROM:2551 .byte 0xFD +ROM:2552 .byte 0xFC +ROM:2553 .byte 0x90 +ROM:2554 .byte 0xF8 +ROM:2555 .byte 0x2E ; . +ROM:2556 .byte 0xD1 +ROM:2557 .byte 0x2C ; , +ROM:2558 .byte 0xD3 +ROM:2559 .byte 0x12 +ROM:255A .byte 0xB +ROM:255B .byte 0x1C +ROM:255C .byte 0x50 ; P +ROM:255D .byte 0x1C +ROM:255E .byte 0x90 +ROM:255F .byte 0xFB +ROM:2560 .byte 0x86 +ROM:2561 .byte 0xE0 +ROM:2562 .byte 0x75 ; u +ROM:2563 .byte 0xF0 +ROM:2564 .byte 0xA +ROM:2565 .byte 0xA4 +ROM:2566 .byte 0x24 ; $ +ROM:2567 .byte 0xB2 +ROM:2568 .byte 0xF5 +ROM:2569 .byte 0x82 +ROM:256A .byte 0xE4 +ROM:256B .byte 0x34 ; 4 +ROM:256C .byte 0xFA +ROM:256D .byte 0xF5 +ROM:256E .byte 0x83 +ROM:256F .byte 0xE0 +ROM:2570 .byte 0x90 +ROM:2571 .byte 0xF8 +ROM:2572 .byte 0x2D ; - +ROM:2573 .byte 0xF0 +ROM:2574 .byte 0x90 +ROM:2575 .byte 0xFB +ROM:2576 .byte 0x87 +ROM:2577 .byte 0x74 ; t +ROM:2578 .byte 1 +ROM:2579 .byte 0xF0 +ROM:257A .byte 0x90 +ROM:257B .byte 0xF8 +ROM:257C .byte 0x2D ; - +ROM:257D .byte 0xE0 +ROM:257E .byte 0xFF +ROM:257F .byte 0x12 +ROM:2580 .byte 0x81 +ROM:2581 .byte 0xE5 +ROM:2582 .byte 0x70 ; p +ROM:2583 .byte 0xC +ROM:2584 .byte 0xF1 +ROM:2585 .byte 0x94 +ROM:2586 .byte 0x70 ; p +ROM:2587 .byte 4 +ROM:2588 .byte 0x7F ;  +ROM:2589 .byte 0x83 +ROM:258A .byte 0x80 +ROM:258B .byte 2 +ROM:258C .byte 0x7F ;  +ROM:258D .byte 1 +ROM:258E .byte 0x31 ; 1 +ROM:258F .byte 0x53 ; S +ROM:2590 .byte 0x90 +ROM:2591 .byte 0xF4 +ROM:2592 .byte 0x95 +ROM:2593 .byte 0x12 +ROM:2594 .byte 0x1F +ROM:2595 .byte 0xE9 +ROM:2596 .byte 0xFF +ROM:2597 .byte 0x90 +ROM:2598 .byte 0xFA +ROM:2599 .byte 0x94 +ROM:259A .byte 0xD1 +ROM:259B .byte 0x2C ; , +ROM:259C .byte 0xD3 +ROM:259D .byte 0x12 +ROM:259E .byte 0xB +ROM:259F .byte 0x1C +ROM:25A0 .byte 0x40 ; @ +ROM:25A1 .byte 0x10 +ROM:25A2 .byte 0x90 +ROM:25A3 .byte 0xFA +ROM:25A4 .byte 0x94 +ROM:25A5 .byte 0x12 +ROM:25A6 .byte 0x1F +ROM:25A7 .byte 0xE9 +ROM:25A8 .byte 0xFF +ROM:25A9 .byte 0x90 +ROM:25AA .byte 0xF4 +ROM:25AB .byte 0x95 +ROM:25AC .byte 0xD1 +ROM:25AD .byte 0x2C ; , +ROM:25AE .byte 0xF1 +ROM:25AF .byte 0x76 ; v +ROM:25B0 .byte 0x80 +ROM:25B1 .byte 5 +ROM:25B2 .byte 0xE4 +ROM:25B3 .byte 0x7F ;  +ROM:25B4 .byte 0x32 ; 2 +ROM:25B5 .byte 0xFE +ROM:25B6 .byte 0xFD +ROM:25B7 .byte 0xF1 +ROM:25B8 .byte 0xA0 +ROM:25B9 .byte 0x12 +ROM:25BA .byte 0xD8 +ROM:25BB .byte 0xC0 +ROM:25BC .byte 0xC3 +ROM:25BD .byte 0x9F +ROM:25BE .byte 0x50 ; P +ROM:25BF .byte 5 +ROM:25C0 .byte 0xE0 +ROM:25C1 .byte 4 +ROM:25C2 .byte 0xF0 +ROM:25C3 .byte 0x80 +ROM:25C4 .byte 3 +ROM:25C5 .byte 0x12 +ROM:25C6 .byte 0x81 +ROM:25C7 .byte 0xA5 +ROM:25C8 .byte 0x12 +ROM:25C9 .byte 0xD9 +ROM:25CA .byte 0xDC +ROM:25CB .byte 0x90 +ROM:25CC .byte 0xFA +ROM:25CD .byte 0x94 +ROM:25CE .byte 0x80 +ROM:25CF .byte 0x31 ; 1 +ROM:25D0 .byte 0x90 +ROM:25D1 .byte 0xFD +ROM:25D2 .byte 0xD1 +ROM:25D3 .byte 0xE0 +ROM:25D4 .byte 0x64 ; d +ROM:25D5 .byte 2 +ROM:25D6 .byte 0x7F ;  +ROM:25D7 .byte 1 +ROM:25D8 .byte 0x70 ; p +ROM:25D9 .byte 9 +ROM:25DA .byte 0x12 +ROM:25DB .byte 0xD8 +ROM:25DC .byte 0x33 ; 3 +ROM:25DD .byte 0x7D ; } +ROM:25DE .byte 4 +ROM:25DF .byte 0x7F ;  +ROM:25E0 .byte 0x14 +ROM:25E1 .byte 0x80 +ROM:25E2 .byte 7 +ROM:25E3 .byte 0x12 +ROM:25E4 .byte 0x66 ; f +ROM:25E5 .byte 0x82 +ROM:25E6 .byte 0x7D ; } +ROM:25E7 .byte 4 +ROM:25E8 .byte 0x7F ;  +ROM:25E9 .byte 0xFA +ROM:25EA .byte 2 +ROM:25EB .byte 0x2F ; / +ROM:25EC .byte 0xC0 +ROM:25ED .byte 0x7F ;  +ROM:25EE .byte 1 +ROM:25EF .byte 0x12 +ROM:25F0 .byte 0x2F ; / +ROM:25F1 .byte 0xF1 +ROM:25F2 .byte 2 +ROM:25F3 .byte 0x61 ; a +ROM:25F4 .byte 0x30 ; 0 +ROM:25F5 .byte 0x12 +ROM:25F6 .byte 0xD4 +ROM:25F7 .byte 0xF9 +ROM:25F8 .byte 0x80 +ROM:25F9 .byte 7 +ROM:25FA .byte 0x7F ;  +ROM:25FB .byte 0x64 ; d +ROM:25FC .byte 0x31 ; 1 +ROM:25FD .byte 0x53 ; S +ROM:25FE .byte 0x12 +ROM:25FF .byte 0xD4 +ROM:2600 .byte 0xF9 +ROM:2601 .byte 0x12 +ROM:2602 .byte 0x1F +ROM:2603 .byte 0xE9 +ROM:2604 .byte 0xFF +ROM:2605 .byte 0x80 +ROM:2606 .byte 7 +ROM:2607 ; --------------------------------------------------------------------------- +ROM:2607 ; START OF FUNCTION CHUNK FOR ROM_4816 +ROM:2607 +ROM:2607 ROM_2607: ; CODE XREF: ROM_4816-2409↑j +ROM:2607 lcall ROM_2C66 +ROM:260A lcall ROM_2FEA +ROM:260D mov R4, A +ROM:260E ljmp ROM_2E66 +ROM:260E ; END OF FUNCTION CHUNK FOR ROM_4816 +ROM:2611 +ROM:2611 ; =============== S U B R O U T I N E ======================================= +ROM:2611 +ROM:2611 +ROM:2611 ROM_2611: ; CODE XREF: ROM_AD6A+D44↓p +ROM:2611 ; ROM_AD6A+1136↓p ... +ROM:2611 add A, #8 +ROM:2613 mov R7, A +ROM:2614 clr A +ROM:2615 addc A, R6 +ROM:2616 mov R6, A +ROM:2617 clr A +ROM:2618 addc A, R5 +ROM:2619 mov R5, A +ROM:261A clr A +ROM:261B addc A, R4 +ROM:261C mov R4, A +ROM:261D mov DPTR, #0xFDFD +ROM:2620 lcall save_4_bytes_R4_R7 +ROM:2620 ; End of function ROM_2611 +ROM:2620 +ROM:2623 +ROM:2623 ; =============== S U B R O U T I N E ======================================= +ROM:2623 +ROM:2623 +ROM:2623 ROM_2623: ; CODE XREF: ROM_AD6A:ROM_B9D3↓p +ROM:2623 ; ROM_AD6A:ROM_BDCD↓p ... +ROM:2623 clr A +ROM:2624 mov R7, #0xF +ROM:2624 ; End of function ROM_2623 +ROM:2624 +ROM:2626 +ROM:2626 ; =============== S U B R O U T I N E ======================================= +ROM:2626 +ROM:2626 +ROM:2626 ROM_2626: ; CODE XREF: ROM_AD6A+11B↓p +ROM:2626 ; ROM_AD6A+150↓p ... +ROM:2626 mov R6, A +ROM:2627 mov R5, A +ROM:2627 ; End of function ROM_2626 +ROM:2627 +ROM:2628 +ROM:2628 ; =============== S U B R O U T I N E ======================================= +ROM:2628 +ROM:2628 +ROM:2628 ROM_2628: ; CODE XREF: ROM_AD6A+D10↓p +ROM:2628 ; ROM_AD6A+1102↓p ... +ROM:2628 mov R4, A +ROM:2628 ; End of function ROM_2628 +ROM:2628 +ROM:2629 +ROM:2629 ; =============== S U B R O U T I N E ======================================= +ROM:2629 +ROM:2629 +ROM:2629 ROM_2629: ; CODE XREF: ROM_AD6A+CC3↓p +ROM:2629 ; ROM_AD6A+EBA↓p ... +ROM:2629 mov DPTR, #0xFDFD +ROM:2629 ; End of function ROM_2629 +ROM:2629 +ROM:262C +ROM:262C ; =============== S U B R O U T I N E ======================================= +ROM:262C +ROM:262C +ROM:262C load_4_bytes_R0_R1_R2_R3: ; CODE XREF: code_1E6A+16↑p +ROM:262C ; code_1E6A+42↑p ... +ROM:262C movx A, @DPTR +ROM:262D mov R0, A +ROM:262E inc DPTR +ROM:262F movx A, @DPTR +ROM:2630 mov R1, A +ROM:2630 ; End of function load_4_bytes_R0_R1_R2_R3 +ROM:2630 +ROM:2631 +ROM:2631 ; =============== S U B R O U T I N E ======================================= +ROM:2631 +ROM:2631 +ROM:2631 load_2_bytes_R2_R3_offset_1: ; CODE XREF: ROM_AD6A+18F9↓p +ROM:2631 inc DPTR +ROM:2632 movx A, @DPTR +ROM:2633 mov R2, A +ROM:2634 inc DPTR +ROM:2635 movx A, @DPTR +ROM:2636 mov R3, A +ROM:2637 ret +ROM:2637 ; End of function load_2_bytes_R2_R3_offset_1 +ROM:2637 +ROM:2638 +ROM:2638 ; =============== S U B R O U T I N E ======================================= +ROM:2638 +ROM:2638 +ROM:2638 ROM_2638: ; CODE XREF: Something_eeprom_ROM_5FE9↓p +ROM:2638 mov DPTR, #0xFB85 +ROM:263B movx A, @DPTR +ROM:263C mov R7, A +ROM:263D inc DPTR +ROM:263E movx A, @DPTR +ROM:263F clr C +ROM:2640 subb A, R7 +ROM:2641 jc ROM_2645 +ROM:2643 ajmp ROM_2774 +ROM:2645 ; --------------------------------------------------------------------------- +ROM:2645 +ROM:2645 ROM_2645: ; CODE XREF: ROM_2638+9↑j +ROM:2645 inc DPTR +ROM:2646 movx A, @DPTR +ROM:2647 jnz ROM_264B +ROM:2649 ajmp ROM_26FF +ROM:264B ; --------------------------------------------------------------------------- +ROM:264B +ROM:264B ROM_264B: ; CODE XREF: ROM_2638+F↑j +ROM:264B acall ROM_27A8 +ROM:264D mov DPTR, #0xFDAC +ROM:2650 lcall load_4_bytes_R4_R5_R6_A +ROM:2653 lcall ROM_D9FC +ROM:2656 lcall load_4_bytes_R0_R1_R2_A +ROM:2659 add A, R7 +ROM:265A mov R7, A +ROM:265B mov A, R2 +ROM:265C addc A, R6 +ROM:265D lcall ROM_8F67 +ROM:2660 push RAM_4 +ROM:2662 push RAM_5 +ROM:2664 push RAM_6 +ROM:2666 mov R3, RAM_7 +ROM:2668 mov DPTR, #0xFB86 +ROM:266B movx A, @DPTR +ROM:266C lcall ROM_81C7 +ROM:266F lcall load_4_bytes_R4_R5_R6_A +ROM:2672 mov R7, A +ROM:2673 acall ROM_2782 +ROM:2675 lcall load_4_bytes_R0_R1_R2_A +ROM:2678 add A, R7 +ROM:2679 mov R7, A +ROM:267A mov A, R2 +ROM:267B addc A, R6 +ROM:267C lcall ROM_8F67 +ROM:267F pop RAM_2 +ROM:2681 pop RAM_1 +ROM:2683 pop RAM_0 +ROM:2685 setb C +ROM:2686 lcall code_B1C +ROM:2689 jnc ROM_268D +ROM:268B ajmp ROM_2774 +ROM:268D ; --------------------------------------------------------------------------- +ROM:268D +ROM:268D ROM_268D: ; CODE XREF: ROM_2638+51↑j +ROM:268D lcall ROM_81C2 +ROM:2690 acall load_4_bytes_R0_R1_R2_R3 +ROM:2692 mov A, R7 +ROM:2693 acall ROM_2786 +ROM:2695 lcall load_4_bytes_R4_R5_R6_A +ROM:2698 add A, R3 +ROM:2699 lcall ROM_2F78 +ROM:269C mov DPTR, #0xFB80 +ROM:269F acall load_4_bytes_R0_R1_R2_R3 +ROM:26A1 clr C +ROM:26A2 lcall code_B1C +ROM:26A5 jc ROM_26B5 +ROM:26A7 mov DPTR, #0xFDAC +ROM:26AA lcall load_4_bytes_R4_R5_R6_A +ROM:26AD mov R7, A +ROM:26AE acall ROM_27A1 +ROM:26B0 lcall load_0x00000032_into_R7_R6_R5_R4 +ROM:26B3 sjmp ROM_26F6 +ROM:26B5 ; --------------------------------------------------------------------------- +ROM:26B5 +ROM:26B5 ROM_26B5: ; CODE XREF: ROM_2638+6D↑j +ROM:26B5 lcall ROM_81C2 +ROM:26B8 acall load_4_bytes_R0_R1_R2_R3 +ROM:26BA mov A, R7 +ROM:26BB acall ROM_2786 +ROM:26BD lcall load_4_bytes_R4_R5_R6_A +ROM:26C0 add A, R3 +ROM:26C1 lcall ROM_2F78 +ROM:26C4 mov DPTR, #0xFB80 +ROM:26C7 acall load_4_bytes_R0_R1_R2_R3 +ROM:26C9 acall ROM_2775 +ROM:26CB acall ROM_27A7 +ROM:26CD lcall ROM_9B51 +ROM:26D0 mov DPTR, #0xFDAC +ROM:26D3 lcall load_4_bytes_R4_R5_R6_A +ROM:26D6 clr C +ROM:26D7 acall ROM_2777 +ROM:26D9 acall ROM_27A0 +ROM:26DB lcall ROM_81C2 +ROM:26DE acall load_4_bytes_R0_R1_R2_R3 +ROM:26E0 mov A, R7 +ROM:26E1 acall ROM_2786 +ROM:26E3 lcall load_4_bytes_R4_R5_R6_A +ROM:26E6 add A, R3 +ROM:26E7 lcall ROM_2F78 +ROM:26EA mov DPTR, #0xFB80 +ROM:26ED acall load_4_bytes_R0_R1_R2_R3 +ROM:26EF acall ROM_2775 +ROM:26F1 acall ROM_27A7 +ROM:26F3 lcall code_9F1 +ROM:26F6 +ROM:26F6 ROM_26F6: ; CODE XREF: ROM_2638+7B↑j +ROM:26F6 acall ROM_27F5 +ROM:26F8 lcall ROM_D81F +ROM:26FB mov A, #0xE +ROM:26FD movx @DPTR, A +ROM:26FE ret +ROM:26FF ; --------------------------------------------------------------------------- +ROM:26FF +ROM:26FF ROM_26FF: ; CODE XREF: ROM_2638+11↑j +ROM:26FF acall ROM_27A8 +ROM:2701 mov DPTR, #0xFDAC +ROM:2704 lcall load_4_bytes_R4_R5_R6_A +ROM:2707 lcall ROM_D9FC +ROM:270A lcall load_4_bytes_R0_R1_R2_A +ROM:270D add A, R7 +ROM:270E mov R7, A +ROM:270F mov A, R2 +ROM:2710 addc A, R6 +ROM:2711 lcall ROM_8F67 +ROM:2714 acall ROM_2782 +ROM:2716 acall load_4_bytes_R0_R1_R2_R3 +ROM:2718 clr C +ROM:2719 lcall code_B1C +ROM:271C jnc ROM_2774 +ROM:271E acall ROM_2782 +ROM:2720 lcall load_4_bytes_R4_R5_R6_A +ROM:2723 mov R7, A +ROM:2724 mov DPTR, #0xFB80 +ROM:2727 acall load_4_bytes_R0_R1_R2_R3 +ROM:2729 clr C +ROM:272A lcall code_B1C +ROM:272D jc ROM_273D +ROM:272F mov DPTR, #0xFDAC +ROM:2732 lcall load_4_bytes_R4_R5_R6_A +ROM:2735 mov R7, A +ROM:2736 acall ROM_27A1 +ROM:2738 lcall load_0x00000032_into_R7_R6_R5_R4 +ROM:273B sjmp ROM_276C +ROM:273D ; --------------------------------------------------------------------------- +ROM:273D +ROM:273D ROM_273D: ; CODE XREF: ROM_2638+F5↑j +ROM:273D acall ROM_2782 +ROM:273F lcall load_4_bytes_R4_R5_R6_A +ROM:2742 mov R7, A +ROM:2743 mov DPTR, #0xFB80 +ROM:2746 acall load_4_bytes_R0_R1_R2_R3 +ROM:2748 acall ROM_2775 +ROM:274A acall ROM_27A7 +ROM:274C lcall ROM_9B51 +ROM:274F mov DPTR, #0xFDAC +ROM:2752 lcall load_4_bytes_R4_R5_R6_A +ROM:2755 clr C +ROM:2756 acall ROM_2777 +ROM:2758 acall ROM_27A0 +ROM:275A acall ROM_2782 +ROM:275C lcall load_4_bytes_R4_R5_R6_A +ROM:275F mov R7, A +ROM:2760 mov DPTR, #0xFB80 +ROM:2763 acall load_4_bytes_R0_R1_R2_R3 +ROM:2765 acall ROM_2775 +ROM:2767 acall ROM_27A7 +ROM:2769 lcall code_9F1 +ROM:276C +ROM:276C ROM_276C: ; CODE XREF: ROM_2638+103↑j +ROM:276C acall ROM_27F5 +ROM:276E lcall ROM_D81F +ROM:2771 mov A, #0xD +ROM:2773 movx @DPTR, A +ROM:2774 +ROM:2774 ROM_2774: ; CODE XREF: ROM_2638+B↑j +ROM:2774 ; ROM_2638+53↑j ... +ROM:2774 ret +ROM:2774 ; End of function ROM_2638 +ROM:2774 +ROM:2775 +ROM:2775 ; =============== S U B R O U T I N E ======================================= +ROM:2775 +ROM:2775 +ROM:2775 ROM_2775: ; CODE XREF: ROM_2638+91↑p +ROM:2775 ; ROM_2638+B7↑p ... +ROM:2775 clr C +ROM:2775 ; End of function ROM_2775 +ROM:2775 +ROM:2776 +ROM:2776 ; =============== S U B R O U T I N E ======================================= +ROM:2776 +ROM:2776 +ROM:2776 ROM_2776: ; CODE XREF: ROM_4816-1AE5↓p +ROM:2776 mov A, R7 +ROM:2776 ; End of function ROM_2776 +ROM:2776 +ROM:2777 +ROM:2777 ; =============== S U B R O U T I N E ======================================= +ROM:2777 +ROM:2777 +ROM:2777 ROM_2777: ; CODE XREF: code_1E6A+1F↑p +ROM:2777 ; ROM:2089↑p ... +ROM:2777 subb A, R3 +ROM:2778 mov R7, A +ROM:2779 mov A, R6 +ROM:277A subb A, R2 +ROM:277B mov R6, A +ROM:277C mov A, R5 +ROM:277D subb A, R1 +ROM:277E mov R5, A +ROM:277F mov A, R4 +ROM:2780 subb A, R0 +ROM:2781 ret +ROM:2781 ; End of function ROM_2777 +ROM:2781 +ROM:2782 +ROM:2782 ; =============== S U B R O U T I N E ======================================= +ROM:2782 +ROM:2782 +ROM:2782 ROM_2782: ; CODE XREF: ROM_2638+3B↑p +ROM:2782 ; ROM_2638+DC↑p ... +ROM:2782 mov DPTR, #0xFB86 +ROM:2785 movx A, @DPTR +ROM:2785 ; End of function ROM_2782 +ROM:2785 +ROM:2786 +ROM:2786 ; =============== S U B R O U T I N E ======================================= +ROM:2786 +ROM:2786 +ROM:2786 ROM_2786: ; CODE XREF: ROM_2638+5B↑p +ROM:2786 ; ROM_2638+83↑p ... +ROM:2786 mov B, #0xA ; B Register +ROM:2789 mul AB +ROM:278A add A, #0xAA +ROM:278C mov DP0L, A ; Data Pointer Low Byte +ROM:278E clr A +ROM:278F addc A, #0xFA +ROM:2791 mov DP0H, A ; Data Pointer High Byte +ROM:2793 ret +ROM:2793 ; End of function ROM_2786 +ROM:2793 +ROM:2793 ; --------------------------------------------------------------------------- +ROM:2794 .byte 0x90 +ROM:2795 .byte 0xF5 +ROM:2796 .byte 0x3B ; ; +ROM:2797 .byte 0xEF +ROM:2798 +ROM:2798 ; =============== S U B R O U T I N E ======================================= +ROM:2798 +ROM:2798 +ROM:2798 ROM_2798: ; CODE XREF: ROM_2916+189↓p +ROM:2798 movx @DPTR, A +ROM:2798 ; End of function ROM_2798 +ROM:2798 +ROM:2799 +ROM:2799 ; =============== S U B R O U T I N E ======================================= +ROM:2799 +ROM:2799 +ROM:2799 ROM_2799: ; CODE XREF: ROM:ROM_206F↑p +ROM:2799 ; ROM:ROM_20E4↑p ... +ROM:2799 mov DPTR, #0xFDD0 +ROM:279C movx A, @DPTR +ROM:279D xrl A, #1 +ROM:279F ret +ROM:279F ; End of function ROM_2799 +ROM:279F +ROM:27A0 +ROM:27A0 ; =============== S U B R O U T I N E ======================================= +ROM:27A0 +ROM:27A0 +ROM:27A0 ROM_27A0: ; CODE XREF: ROM_2638+A1↑p +ROM:27A0 ; ROM_2638+120↑p +ROM:27A0 mov R4, A +ROM:27A0 ; End of function ROM_27A0 +ROM:27A0 +ROM:27A1 +ROM:27A1 ; =============== S U B R O U T I N E ======================================= +ROM:27A1 +ROM:27A1 +ROM:27A1 ROM_27A1: ; CODE XREF: ROM_2638+76↑p +ROM:27A1 ; ROM_2638+FE↑p +ROM:27A1 mov DPTR, #0xFA94 +ROM:27A4 ljmp save_4_bytes_R4_R7 +ROM:27A4 ; End of function ROM_27A1 +ROM:27A4 +ROM:27A7 +ROM:27A7 ; =============== S U B R O U T I N E ======================================= +ROM:27A7 +ROM:27A7 +ROM:27A7 ROM_27A7: ; CODE XREF: ROM_2638+93↑p +ROM:27A7 ; ROM_2638+B9↑p ... +ROM:27A7 mov R4, A +ROM:27A7 ; End of function ROM_27A7 +ROM:27A7 +ROM:27A8 +ROM:27A8 ; =============== S U B R O U T I N E ======================================= +ROM:27A8 +ROM:27A8 +ROM:27A8 ROM_27A8: ; CODE XREF: ROM_2638:ROM_264B↑p +ROM:27A8 ; ROM_2638:ROM_26FF↑p ... +ROM:27A8 clr A +ROM:27A9 mov R3, #0xE8 +ROM:27AB mov R2, #3 +ROM:27AD mov R1, A +ROM:27AE mov R0, A +ROM:27AF ret +ROM:27AF ; End of function ROM_27A8 +ROM:27AF +ROM:27B0 +ROM:27B0 ; =============== S U B R O U T I N E ======================================= +ROM:27B0 +ROM:27B0 +ROM:27B0 ROM_27B0: ; CODE XREF: ROM_4816-25E8↑p +ROM:27B0 ; ROM_436B+34C↓p +ROM:27B0 movx @DPTR, A +ROM:27B0 ; End of function ROM_27B0 +ROM:27B0 +ROM:27B1 +ROM:27B1 ; =============== S U B R O U T I N E ======================================= +ROM:27B1 +ROM:27B1 +ROM:27B1 ROM_27B1: ; CODE XREF: ROM:202E↑p +ROM:27B1 ; ROM:20A5↑p ... +ROM:27B1 mov DPTR, #0xFDC7 +ROM:27B4 movx A, @DPTR +ROM:27B5 xrl A, #0xA5 +ROM:27B7 ret +ROM:27B7 ; End of function ROM_27B1 +ROM:27B7 +ROM:27B7 ; --------------------------------------------------------------------------- +ROM:27B8 .byte 0x7B ; { +ROM:27B9 .byte 1 +ROM:27BA .byte 0x7A ; z +ROM:27BB .byte 0xFD +ROM:27BC .byte 0x79 ; y +ROM:27BD .byte 0x32 ; 2 +ROM:27BE .byte 0x12 +ROM:27BF .byte 0x5F ; _ +ROM:27C0 .byte 0x14 +ROM:27C1 .byte 0x7B ; { +ROM:27C2 .byte 1 +ROM:27C3 .byte 0x7A ; z +ROM:27C4 .byte 0xFD +ROM:27C5 .byte 0x79 ; y +ROM:27C6 .byte 0x3A ; : +ROM:27C7 .byte 0x12 +ROM:27C8 .byte 0x67 ; g +ROM:27C9 .byte 0x2C ; , +ROM:27CA .byte 0x90 +ROM:27CB .byte 0xFC +ROM:27CC .byte 0xFC +ROM:27CD .byte 0xE0 +ROM:27CE .byte 0xFF +ROM:27CF .byte 0x12 +ROM:27D0 .byte 0x66 ; f +ROM:27D1 .byte 0x8A +ROM:27D2 .byte 0x7F ;  +ROM:27D3 .byte 1 +ROM:27D4 +ROM:27D4 ; =============== S U B R O U T I N E ======================================= +ROM:27D4 +ROM:27D4 +ROM:27D4 ROM_27D4: ; CODE XREF: ROM_2916+A↓p +ROM:27D4 ; ROM_4816-1B80↓p ... +ROM:27D4 mov R3, RAM_7 +ROM:27D6 mov A, R3 +ROM:27D7 add A, #0xFF +ROM:27D9 mov RAM_20.0, C +ROM:27DB mov A, R3 +ROM:27DC jnz ROM_27E6 +ROM:27DE anl TCON, #0xEF ; Timer Control Register +ROM:27E1 anl TCON, #0xDF ; Timer Control Register +ROM:27E4 sjmp ROM_27E9 +ROM:27E6 ; --------------------------------------------------------------------------- +ROM:27E6 +ROM:27E6 ROM_27E6: ; CODE XREF: ROM_27D4+8↑j +ROM:27E6 lcall ROM_D927 +ROM:27E9 +ROM:27E9 ROM_27E9: ; CODE XREF: ROM_27D4+10↑j +ROM:27E9 mov R7, RAM_3 +ROM:27EB lcall RadioSomething_ROM_A697 +ROM:27EE mov A, R3 +ROM:27EF jnz ROM_27F4 +ROM:27F1 lcall ROM_A1ED +ROM:27F4 +ROM:27F4 ROM_27F4: ; CODE XREF: ROM_27D4+1B↑j +ROM:27F4 ret +ROM:27F4 ; End of function ROM_27D4 +ROM:27F4 +ROM:27F5 +ROM:27F5 ; =============== S U B R O U T I N E ======================================= +ROM:27F5 +ROM:27F5 +ROM:27F5 ROM_27F5: ; CODE XREF: ROM_2638:ROM_26F6↑p +ROM:27F5 ; ROM_2638:ROM_276C↑p ... +ROM:27F5 mov DPTR, #0xFDAC +ROM:27F8 ljmp save_4_bytes_R4_R7 +ROM:27F8 ; End of function ROM_27F5 +ROM:27F8 +ROM:27FB +ROM:27FB ; =============== S U B R O U T I N E ======================================= +ROM:27FB +ROM:27FB +ROM:27FB ROM_27FB: ; CODE XREF: ROM_4816-254A↑p +ROM:27FB ; ROM_3FEE+9↓p ... +ROM:27FB mov DPTR, #0xFB86 +ROM:27FE movx A, @DPTR +ROM:27FF mov B, #0xA ; B Register +ROM:2802 mul AB +ROM:2803 add A, #0xA8 +ROM:2805 mov DP0L, A ; Data Pointer Low Byte +ROM:2807 clr A +ROM:2808 addc A, #0xFA +ROM:280A mov DP0H, A ; Data Pointer High Byte +ROM:280C ret +ROM:280C ; End of function ROM_27FB +ROM:280C +ROM:280D +ROM:280D ; =============== S U B R O U T I N E ======================================= +ROM:280D +ROM:280D +ROM:280D ROM_280D: ; CODE XREF: ROM_4816-249F↑p +ROM:280D ; ROM_2815+8↓j +ROM:280D mov DPTR, #0xDFFB +ROM:2810 movx A, @DPTR +ROM:2811 anl A, #2 +ROM:2813 mov R7, A +ROM:2814 ret +ROM:2814 ; End of function ROM_280D +ROM:2814 +ROM:2815 +ROM:2815 ; =============== S U B R O U T I N E ======================================= +ROM:2815 +ROM:2815 +ROM:2815 ROM_2815: ; CODE XREF: ROM_281F+93↓p +ROM:2815 ; ROM_6849+D4↓p +ROM:2815 clr A +ROM:2816 mov DPTR, #0xFDD4 +ROM:2819 movx @DPTR, A +ROM:281A lcall ROM_9FA5 +ROM:281D sjmp ROM_280D +ROM:281D ; End of function ROM_2815 +ROM:281D +ROM:281F +ROM:281F ; =============== S U B R O U T I N E ======================================= +ROM:281F +ROM:281F +ROM:281F ROM_281F: ; CODE XREF: ROM_2E9D+52↓p +ROM:281F clr A +ROM:2820 mov DPTR, #0xF82A +ROM:2823 movx @DPTR, A +ROM:2824 inc DPTR +ROM:2825 movx @DPTR, A +ROM:2826 inc DPTR +ROM:2827 movx @DPTR, A +ROM:2828 mov A, R7 +ROM:2829 mov R5, A +ROM:282A mov R4, #0 +ROM:282C xrl A, #1 +ROM:282E jz ROM_2836 +ROM:2830 acall ROM_2FD8 +ROM:2832 jz ROM_2836 +ROM:2834 ajmp ROM_28EF +ROM:2836 ; --------------------------------------------------------------------------- +ROM:2836 +ROM:2836 ROM_2836: ; CODE XREF: ROM_281F+F↑j +ROM:2836 ; ROM_281F+13↑j +ROM:2836 mov DPTR, #0xF82A +ROM:2839 mov A, #1 +ROM:283B movx @DPTR, A +ROM:283C xrl A, R5 +ROM:283D orl A, R4 +ROM:283E jnz ROM_285F +ROM:2840 acall ROM_2FD8 +ROM:2842 jz ROM_285F +ROM:2844 mov DPTR, #0xF48E +ROM:2847 mov A, #0x99 +ROM:2849 lcall ROM_3093 +ROM:284C lcall load_4_bytes_R0_R1_R2_R3 +ROM:284F clr C +ROM:2850 lcall code_B1C +ROM:2853 jz ROM_2857 +ROM:2855 ajmp ROM_28EF +ROM:2857 ; --------------------------------------------------------------------------- +ROM:2857 +ROM:2857 ROM_2857: ; CODE XREF: ROM_281F+34↑j +ROM:2857 mov DPTR, #0xFDC7 +ROM:285A mov A, #0xA5 +ROM:285C movx @DPTR, A +ROM:285D ajmp ROM_28E2 +ROM:285F ; --------------------------------------------------------------------------- +ROM:285F +ROM:285F ROM_285F: ; CODE XREF: ROM_281F+1F↑j +ROM:285F ; ROM_281F+23↑j +ROM:285F acall ROM_2FD8 +ROM:2861 jz ROM_2865 +ROM:2863 ajmp ROM_28EF +ROM:2865 ; --------------------------------------------------------------------------- +ROM:2865 +ROM:2865 ROM_2865: ; CODE XREF: ROM_281F+42↑j +ROM:2865 lcall ROM_3087 +ROM:2868 lcall load_4_bytes_R0_R1_R2_R3 +ROM:286B clr C +ROM:286C lcall code_B1C +ROM:286F jnz ROM_28CF +ROM:2871 mov DPTR, #0xF48E +ROM:2874 lcall ROM_784C +ROM:2877 mov DPTR, #0xF82B +ROM:287A mov A, R7 +ROM:287B acall ROM_28F5 +ROM:287D mov DPTR, #0xF53B +ROM:2880 mov A, #1 +ROM:2882 movx @DPTR, A +ROM:2883 mov R7, #0x8C +ROM:2885 lcall ROM_2153 +ROM:2888 lcall ROM_D22F +ROM:288B mov R6, #0 +ROM:288D mov R7, #0x1E +ROM:288F lcall code_8DE +ROM:2892 clr A +ROM:2893 mov R4, A +ROM:2894 mov R5, A +ROM:2895 lcall ROM_D955 +ROM:2898 lcall load_4_bytes_R4_R5_R6_A +ROM:289B mov R7, A +ROM:289C mov DPTR, #0xFDBC +ROM:289F lcall load_4_bytes_R0_R1_R2_R3 +ROM:28A2 mov A, R7 +ROM:28A3 add A, R3 +ROM:28A4 acall ROM_2F78 +ROM:28A6 lcall ROM_D955 +ROM:28A9 lcall load_4_bytes_R4_R5_R6_A +ROM:28AC mov R7, A +ROM:28AD acall ROM_2E66 +ROM:28AF lcall ROM_D4AC +ROM:28B2 acall ROM_2815 +ROM:28B4 mov A, R7 +ROM:28B5 jz ROM_28BC +ROM:28B7 mov R7, #0x82 +ROM:28B9 lcall ROM_2153 +ROM:28BC +ROM:28BC ROM_28BC: ; CODE XREF: ROM_281F+96↑j +ROM:28BC mov DPTR, #0xF82B +ROM:28BF movx A, @DPTR +ROM:28C0 xrl A, #1 +ROM:28C2 jnz ROM_28EF +ROM:28C4 lcall ROM_D93B +ROM:28C7 mov DPTR, #0xF82A +ROM:28CA mov A, #2 +ROM:28CC movx @DPTR, A +ROM:28CD sjmp ROM_28EF +ROM:28CF ; --------------------------------------------------------------------------- +ROM:28CF +ROM:28CF ROM_28CF: ; CODE XREF: ROM_281F+50↑j +ROM:28CF lcall ROM_3094 +ROM:28D2 lcall load_4_bytes_R0_R1_R2_R3 +ROM:28D5 clr C +ROM:28D6 lcall code_B1C +ROM:28D9 mov DPTR, #0xF48E +ROM:28DC jnz ROM_28EC +ROM:28DE mov A, #0x66 ; 'f' +ROM:28E0 acall ROM_28F5 +ROM:28E2 +ROM:28E2 ROM_28E2: ; CODE XREF: ROM_281F+3E↑j +ROM:28E2 mov DPTR, #0xF53B +ROM:28E5 mov A, #1 +ROM:28E7 lcall ROM_784C +ROM:28EA sjmp ROM_28EF +ROM:28EC ; --------------------------------------------------------------------------- +ROM:28EC +ROM:28EC ROM_28EC: ; CODE XREF: ROM_281F+BD↑j +ROM:28EC mov A, #0x77 ; 'w' +ROM:28EE movx @DPTR, A +ROM:28EF +ROM:28EF ROM_28EF: ; CODE XREF: ROM_281F+15↑j +ROM:28EF ; ROM_281F+36↑j ... +ROM:28EF mov DPTR, #0xF82A +ROM:28F2 movx A, @DPTR +ROM:28F3 mov R7, A +ROM:28F4 ret +ROM:28F4 ; End of function ROM_281F +ROM:28F4 +ROM:28F5 +ROM:28F5 ; =============== S U B R O U T I N E ======================================= +ROM:28F5 +ROM:28F5 +ROM:28F5 ROM_28F5: ; CODE XREF: ROM_281F+5C↑p +ROM:28F5 ; ROM_281F+C1↑p +ROM:28F5 movx @DPTR, A +ROM:28F5 ; End of function ROM_28F5 +ROM:28F5 +ROM:28F6 +ROM:28F6 ; =============== S U B R O U T I N E ======================================= +ROM:28F6 +ROM:28F6 +ROM:28F6 ROM_28F6: ; CODE XREF: ROM_436B-E07↓p +ROM:28F6 mov DPTR, #0xFDC7 +ROM:28F9 mov A, #0xA5 +ROM:28FB movx @DPTR, A +ROM:28FC mov R7, #1 +ROM:28FC ; End of function ROM_28F6 +ROM:28FC +ROM:28FE +ROM:28FE ; =============== S U B R O U T I N E ======================================= +ROM:28FE +ROM:28FE +ROM:28FE ROM_28FE: ; CODE XREF: ROM_6849+B1↓p +ROM:28FE ; ROM_816B+37↓p +ROM:28FE mov A, R7 +ROM:28FF jz ROM_290B +ROM:2901 mov R7, #0xAB +ROM:2903 mov R6, #0x89 +ROM:2905 mov R5, #0xAF +ROM:2907 mov R4, #0x1E +ROM:2909 sjmp ROM_2910 +ROM:290B ; --------------------------------------------------------------------------- +ROM:290B +ROM:290B ROM_290B: ; CODE XREF: ROM_28FE+1↑j +ROM:290B clr A +ROM:290C mov R7, A +ROM:290D mov R6, A +ROM:290E mov R5, A +ROM:290F mov R4, A +ROM:2910 +ROM:2910 ROM_2910: ; CODE XREF: ROM_28FE+B↑j +ROM:2910 mov DPTR, #0xFFE0 +ROM:2913 ljmp save_4_bytes_R4_R7 +ROM:2913 ; End of function ROM_28FE +ROM:2913 +ROM:2916 +ROM:2916 ; =============== S U B R O U T I N E ======================================= +ROM:2916 +ROM:2916 +ROM:2916 ROM_2916: ; CODE XREF: ROM_4816:ROM_2D68↓p +ROM:2916 ; ROM_2D8F:ROM_2E3D↓j ... +ROM:2916 clr A +ROM:2917 mov DPTR, #0xF841 +ROM:291A movx @DPTR, A +ROM:291B mov DPTR, #0xF846 +ROM:291E movx @DPTR, A +ROM:291F mov R7, A +ROM:2920 lcall ROM_27D4 +ROM:2923 mov DPTR, #0xFDC6 +ROM:2926 movx A, @DPTR +ROM:2927 xrl A, #0xB +ROM:2929 jnz ROM_2943 +ROM:292B mov DPTR, #0xF67A +ROM:292E movx A, @DPTR +ROM:292F lcall ROM_3859 +ROM:2932 jnc ROM_2943 +ROM:2934 acall ROM_2E48 +ROM:2936 mov DPTR, #0xF67A +ROM:2939 movx A, @DPTR +ROM:293A inc A +ROM:293B movx @DPTR, A +ROM:293C clr A +ROM:293D mov R7, #0xC8 +ROM:293F mov R6, A +ROM:2940 mov R5, A +ROM:2941 ajmp ROM_2A2D +ROM:2943 ; --------------------------------------------------------------------------- +ROM:2943 +ROM:2943 ROM_2943: ; CODE XREF: ROM_2916+13↑j +ROM:2943 ; ROM_2916+1C↑j +ROM:2943 mov DPTR, #0xFDC6 +ROM:2946 movx A, @DPTR +ROM:2947 xrl A, #0xB +ROM:2949 jnz ROM_2956 +ROM:294B mov DPTR, #0xF67A +ROM:294E movx A, @DPTR +ROM:294F lcall ROM_3859 +ROM:2952 jc ROM_2956 +ROM:2954 acall ROM_2E48 +ROM:2956 +ROM:2956 ROM_2956: ; CODE XREF: ROM_2916+33↑j +ROM:2956 ; ROM_2916+3C↑j +ROM:2956 mov DPTR, #0xF677 +ROM:2959 movx A, @DPTR +ROM:295A inc A +ROM:295B movx @DPTR, A +ROM:295C mov DPTR, #0xF679 +ROM:295F mov A, #4 +ROM:2961 movx @DPTR, A +ROM:2962 mov DPTR, #0xFDD2 +ROM:2965 mov A, #1 +ROM:2967 movx @DPTR, A +ROM:2968 mov DPTR, #0xFDC7 +ROM:296B movx A, @DPTR +ROM:296C jz ROM_29E2 +ROM:296E add A, #0x5B ; '[' +ROM:2970 jz ROM_2974 +ROM:2972 ajmp ROM_2A1B +ROM:2974 ; --------------------------------------------------------------------------- +ROM:2974 +ROM:2974 ROM_2974: ; CODE XREF: ROM_2916+5A↑j +ROM:2974 mov DPTR, #0xFDC6 +ROM:2977 movx A, @DPTR +ROM:2978 add A, #0xFD +ROM:297A jz ROM_29C8 +ROM:297C dec A +ROM:297D jz ROM_29D2 +ROM:297F add A, #0xFE +ROM:2981 jz ROM_29AF +ROM:2983 dec A +ROM:2984 jz ROM_29AA +ROM:2986 dec A +ROM:2987 jnz ROM_29D7 +ROM:2989 lcall ROM_419B +ROM:298C movx A, @DPTR +ROM:298D subb A, #0 +ROM:298F jc ROM_299B +ROM:2991 lcall ROM_47C9 +ROM:2994 mov A, R5 +ROM:2995 add A, #0xA +ROM:2997 mov R7, A +ROM:2998 clr A +ROM:2999 sjmp ROM_29A4 +ROM:299B ; --------------------------------------------------------------------------- +ROM:299B +ROM:299B ROM_299B: ; CODE XREF: ROM_2916+79↑j +ROM:299B lcall ROM_47C9 +ROM:299E lcall ROM_9388 +ROM:29A1 lcall ROM_D655 +ROM:29A4 +ROM:29A4 ROM_29A4: ; CODE XREF: ROM_2916+83↑j +ROM:29A4 addc A, R4 +ROM:29A5 mov R6, A +ROM:29A6 acall ROM_2C40 +ROM:29A8 sjmp ROM_29BA +ROM:29AA ; --------------------------------------------------------------------------- +ROM:29AA +ROM:29AA ROM_29AA: ; CODE XREF: ROM_2916+6E↑j +ROM:29AA lcall ROM_6962 +ROM:29AD sjmp ROM_2A17 +ROM:29AF ; --------------------------------------------------------------------------- +ROM:29AF +ROM:29AF ROM_29AF: ; CODE XREF: ROM_2916+6B↑j +ROM:29AF mov DPTR, #0xF679 +ROM:29B2 mov A, #0x10 +ROM:29B4 movx @DPTR, A +ROM:29B5 lcall ROM_9211 +ROM:29B8 acall ROM_2C40 +ROM:29BA +ROM:29BA ROM_29BA: ; CODE XREF: ROM_2916+92↑j +ROM:29BA mov DPTR, #0xF842 +ROM:29BD lcall load_4_bytes_R4_R5_R6_A +ROM:29C0 mov R7, A +ROM:29C1 clr A +ROM:29C2 mov R3, #0x64 ; 'd' +ROM:29C4 acall ROM_2E5C +ROM:29C6 sjmp ROM_2A17 +ROM:29C8 ; --------------------------------------------------------------------------- +ROM:29C8 +ROM:29C8 ROM_29C8: ; CODE XREF: ROM_2916+64↑j +ROM:29C8 mov DPTR, #0xF679 +ROM:29CB mov A, #1 +ROM:29CD acall ROM_2C49 +ROM:29CF mov R4, A +ROM:29D0 sjmp ROM_2A17 +ROM:29D2 ; --------------------------------------------------------------------------- +ROM:29D2 +ROM:29D2 ROM_29D2: ; CODE XREF: ROM_2916+67↑j +ROM:29D2 acall ROM_2C4A +ROM:29D4 mov R4, A +ROM:29D5 sjmp ROM_2A17 +ROM:29D7 ; --------------------------------------------------------------------------- +ROM:29D7 +ROM:29D7 ROM_29D7: ; CODE XREF: ROM_2916+71↑j +ROM:29D7 acall ROM_2C68 +ROM:29D9 clr A +ROM:29DA mov R7, #0x30 ; '0' +ROM:29DC mov R6, #0x75 ; 'u' +ROM:29DE mov R5, A +ROM:29DF mov R4, A +ROM:29E0 sjmp ROM_2A17 +ROM:29E2 ; --------------------------------------------------------------------------- +ROM:29E2 +ROM:29E2 ROM_29E2: ; CODE XREF: ROM_2916+56↑j +ROM:29E2 mov DPTR, #0xFDC6 +ROM:29E5 movx A, @DPTR +ROM:29E6 mov R7, A +ROM:29E7 mov R6, #0 +ROM:29E9 xrl A, #6 +ROM:29EB jnz ROM_29F5 +ROM:29ED mov DPTR, #0xF679 +ROM:29F0 mov A, #8 +ROM:29F2 movx @DPTR, A +ROM:29F3 sjmp ROM_2A14 +ROM:29F5 ; --------------------------------------------------------------------------- +ROM:29F5 +ROM:29F5 ROM_29F5: ; CODE XREF: ROM_2916+D5↑j +ROM:29F5 mov A, R7 +ROM:29F6 xrl A, #3 +ROM:29F8 orl A, R6 +ROM:29F9 jnz ROM_2A0E +ROM:29FB clr C +ROM:29FC mov DPTR, #0xF543 +ROM:29FF movx A, @DPTR +ROM:2A00 subb A, #4 +ROM:2A02 acall ROM_2C2A +ROM:2A04 mov DPTR, #0xF679 +ROM:2A07 jc ROM_2A11 +ROM:2A09 mov A, #1 +ROM:2A0B movx @DPTR, A +ROM:2A0C sjmp ROM_2A14 +ROM:2A0E ; --------------------------------------------------------------------------- +ROM:2A0E +ROM:2A0E ROM_2A0E: ; CODE XREF: ROM_2916+E3↑j +ROM:2A0E mov DPTR, #0xF679 +ROM:2A11 +ROM:2A11 ROM_2A11: ; CODE XREF: ROM_2916+F1↑j +ROM:2A11 mov A, #4 +ROM:2A13 movx @DPTR, A +ROM:2A14 +ROM:2A14 ROM_2A14: ; CODE XREF: ROM_2916+DD↑j +ROM:2A14 ; ROM_2916+F6↑j +ROM:2A14 acall ROM_2C4A +ROM:2A16 mov R4, A +ROM:2A17 +ROM:2A17 ROM_2A17: ; CODE XREF: ROM_2916+97↑j +ROM:2A17 ; ROM_2916+B0↑j ... +ROM:2A17 acall ROM_2C43 +ROM:2A19 sjmp ROM_2A30 +ROM:2A1B ; --------------------------------------------------------------------------- +ROM:2A1B +ROM:2A1B ROM_2A1B: ; CODE XREF: ROM_2916+5C↑j +ROM:2A1B acall ROM_2C68 +ROM:2A1D lcall ROM_D22F +ROM:2A20 mov R6, RAM_4 +ROM:2A22 mov R7, RAM_5 +ROM:2A24 mov A, R7 +ROM:2A25 add A, #0x30 ; '0' +ROM:2A27 mov R7, A +ROM:2A28 mov A, R6 +ROM:2A29 addc A, #0x75 ; 'u' +ROM:2A2B acall ROM_2C5F +ROM:2A2D +ROM:2A2D ROM_2A2D: ; CODE XREF: ROM_2916+2B↑j +ROM:2A2D mov R4, A +ROM:2A2E sjmp ROM_2A51 +ROM:2A30 ; --------------------------------------------------------------------------- +ROM:2A30 +ROM:2A30 ROM_2A30: ; CODE XREF: ROM_2916+103↑j +ROM:2A30 mov DPTR, #0xF679 +ROM:2A33 movx A, @DPTR +ROM:2A34 mov R7, A +ROM:2A35 mov DPTR, #0xF677 +ROM:2A38 movx A, @DPTR +ROM:2A39 clr C +ROM:2A3A subb A, R7 +ROM:2A3B jnc ROM_2A3F +ROM:2A3D ajmp ROM_2C1A +ROM:2A3F ; --------------------------------------------------------------------------- +ROM:2A3F +ROM:2A3F ROM_2A3F: ; CODE XREF: ROM_2916+125↑j +ROM:2A3F mov DPTR, #0xFDC6 +ROM:2A42 movx A, @DPTR +ROM:2A43 xrl A, #7 +ROM:2A45 jnz ROM_2A55 +ROM:2A47 lcall ROM_628F +ROM:2A4A acall ROM_2D85 +ROM:2A4C acall ROM_2E48 +ROM:2A4E lcall ROM_6962 +ROM:2A51 +ROM:2A51 ROM_2A51: ; CODE XREF: ROM_2916+118↑j +ROM:2A51 acall ROM_2C43 +ROM:2A53 ajmp ROM_2C1A +ROM:2A55 ; --------------------------------------------------------------------------- +ROM:2A55 +ROM:2A55 ROM_2A55: ; CODE XREF: ROM_2916+12F↑j +ROM:2A55 mov DPTR, #0xF555 +ROM:2A58 movx A, @DPTR +ROM:2A59 xrl A, #1 +ROM:2A5B jnz ROM_2A7E +ROM:2A5D lcall ROM_816B +ROM:2A60 mov DPTR, #0xF67B +ROM:2A63 movx A, @DPTR +ROM:2A64 xrl A, #1 +ROM:2A66 jnz ROM_2A6D +ROM:2A68 lcall ROM_D8B5 +ROM:2A6B sjmp ROM_2A72 +ROM:2A6D ; --------------------------------------------------------------------------- +ROM:2A6D +ROM:2A6D ROM_2A6D: ; CODE XREF: ROM_2916+150↑j +ROM:2A6D mov R7, #0x64 ; 'd' +ROM:2A6F lcall ROM_2153 +ROM:2A72 +ROM:2A72 ROM_2A72: ; CODE XREF: ROM_2916+155↑j +ROM:2A72 lcall ROM_9396 +ROM:2A75 mov DPTR, #0xF509 +ROM:2A78 movx @DPTR, A +ROM:2A79 lcall ROM_D8FB +ROM:2A7C ajmp ROM_2C21 +ROM:2A7E ; --------------------------------------------------------------------------- +ROM:2A7E +ROM:2A7E ROM_2A7E: ; CODE XREF: ROM_2916+145↑j +ROM:2A7E lcall ROM_D971 +ROM:2A81 mov DPTR, #0xF541 +ROM:2A84 mov A, #1 +ROM:2A86 movx @DPTR, A +ROM:2A87 mov DPTR, #0xF543 +ROM:2A8A movx A, @DPTR +ROM:2A8B inc A +ROM:2A8C movx @DPTR, A +ROM:2A8D jnz ROM_2A95 +ROM:2A8F mov DPTR, #0xF542 +ROM:2A92 movx A, @DPTR +ROM:2A93 inc A +ROM:2A94 movx @DPTR, A +ROM:2A95 +ROM:2A95 ROM_2A95: ; CODE XREF: ROM_2916+177↑j +ROM:2A95 lcall ROM_628F +ROM:2A98 acall ROM_2D85 +ROM:2A9A mov DPTR, #0xFDC6 +ROM:2A9D mov A, #3 +ROM:2A9F lcall ROM_2798 +ROM:2AA2 jz ROM_2ADA +ROM:2AA4 lcall ROM_27B1 +ROM:2AA7 jnz ROM_2AC6 +ROM:2AA9 mov DPTR, #0xF49B +ROM:2AAC movx A, @DPTR +ROM:2AAD xrl A, #2 +ROM:2AAF jz ROM_2AC6 +ROM:2AB1 lcall ROM_91F5 +ROM:2AB4 mov DPTR, #0xF846 +ROM:2AB7 mov A, R7 +ROM:2AB8 movx @DPTR, A +ROM:2AB9 lcall ROM_81E5 +ROM:2ABC jnz ROM_2AC6 +ROM:2ABE mov DPTR, #0xF846 +ROM:2AC1 movx A, @DPTR +ROM:2AC2 mov DPTR, #0xF53B +ROM:2AC5 movx @DPTR, A +ROM:2AC6 +ROM:2AC6 ROM_2AC6: ; CODE XREF: ROM_2916+191↑j +ROM:2AC6 ; ROM_2916+199↑j ... +ROM:2AC6 lcall ROM_27B1 +ROM:2AC9 jnz ROM_2AD5 +ROM:2ACB mov DPTR, #0xFB80 +ROM:2ACE lcall load_4_bytes_R4_R5_R6_A +ROM:2AD1 mov R7, A +ROM:2AD2 lcall save_4_bytes_R4_R7_to_0xF54E +ROM:2AD5 +ROM:2AD5 ROM_2AD5: ; CODE XREF: ROM_2916+1B3↑j +ROM:2AD5 mov R7, #0x83 +ROM:2AD7 lcall ROM_2153 +ROM:2ADA +ROM:2ADA ROM_2ADA: ; CODE XREF: ROM_2916+18C↑j +ROM:2ADA lcall UART_SETUP_ROM_6C20 +ROM:2ADD acall ROM_2C23 +ROM:2ADF jc ROM_2AE7 +ROM:2AE1 lcall load_values_ROM_D709 +ROM:2AE4 lcall code_EA0 +ROM:2AE7 +ROM:2AE7 ROM_2AE7: ; CODE XREF: ROM_2916+1C9↑j +ROM:2AE7 mov DPTR, #0xF553 +ROM:2AEA movx A, @DPTR +ROM:2AEB mov R6, A +ROM:2AEC inc DPTR +ROM:2AED movx A, @DPTR +ROM:2AEE mov R7, A +ROM:2AEF cpl A +ROM:2AF0 jnz ROM_2AF4 +ROM:2AF2 mov A, R6 +ROM:2AF3 cpl A +ROM:2AF4 +ROM:2AF4 ROM_2AF4: ; CODE XREF: ROM_2916+1DA↑j +ROM:2AF4 jz ROM_2AFA +ROM:2AF6 mov A, R7 +ROM:2AF7 orl A, R6 +ROM:2AF8 jnz ROM_2B49 +ROM:2AFA +ROM:2AFA ROM_2AFA: ; CODE XREF: ROM_2916:ROM_2AF4↑j +ROM:2AFA clr A +ROM:2AFB mov DPTR, #0xF490 +ROM:2AFE movx @DPTR, A +ROM:2AFF mov DPTR, #0xFDC7 +ROM:2B02 movx A, @DPTR +ROM:2B03 add A, #0x5B ; '[' +ROM:2B05 jz ROM_2B0D +ROM:2B07 add A, #0xA5 +ROM:2B09 jz ROM_2B0D +ROM:2B0B ajmp ROM_2C13 +ROM:2B0D ; --------------------------------------------------------------------------- +ROM:2B0D +ROM:2B0D ROM_2B0D: ; CODE XREF: ROM_2916+1EF↑j +ROM:2B0D ; ROM_2916+1F3↑j +ROM:2B0D clr C +ROM:2B0E mov DPTR, #0xF543 +ROM:2B11 movx A, @DPTR +ROM:2B12 subb A, #0x11 +ROM:2B14 acall ROM_2C2A +ROM:2B16 jc ROM_2B1E +ROM:2B18 clr A +ROM:2B19 movx @DPTR, A +ROM:2B1A inc DPTR +ROM:2B1B mov A, #0x11 +ROM:2B1D movx @DPTR, A +ROM:2B1E +ROM:2B1E ROM_2B1E: ; CODE XREF: ROM_2916+200↑j +ROM:2B1E acall ROM_2C23 +ROM:2B20 jnc ROM_2B26 +ROM:2B22 acall ROM_2FDF +ROM:2B24 sjmp ROM_2B6B +ROM:2B26 ; --------------------------------------------------------------------------- +ROM:2B26 +ROM:2B26 ROM_2B26: ; CODE XREF: ROM_2916+20A↑j +ROM:2B26 setb C +ROM:2B27 mov DPTR, #0xF543 +ROM:2B2A movx A, @DPTR +ROM:2B2B subb A, #0x10 +ROM:2B2D acall ROM_2C2A +ROM:2B2F jnc ROM_2B3D +ROM:2B31 acall ROM_2FDF +ROM:2B33 mov R1, A +ROM:2B34 mov R0, A +ROM:2B35 lcall code_A7C +ROM:2B38 lcall ROM_D57C +ROM:2B3B ajmp ROM_2C09 +ROM:2B3D ; --------------------------------------------------------------------------- +ROM:2B3D +ROM:2B3D ROM_2B3D: ; CODE XREF: ROM_2916+219↑j +ROM:2B3D acall ROM_2FDF +ROM:2B3F mov R1, A +ROM:2B40 mov R0, A +ROM:2B41 lcall code_A7C +ROM:2B44 lcall ROM_D85D +ROM:2B47 ajmp ROM_2C09 +ROM:2B49 ; --------------------------------------------------------------------------- +ROM:2B49 +ROM:2B49 ROM_2B49: ; CODE XREF: ROM_2916+1E2↑j +ROM:2B49 mov DPTR, #0xFDC7 +ROM:2B4C movx A, @DPTR +ROM:2B4D jz ROM_2BB5 +ROM:2B4F add A, #0x5B ; '[' +ROM:2B51 jz ROM_2B55 +ROM:2B53 ajmp ROM_2C0E +ROM:2B55 ; --------------------------------------------------------------------------- +ROM:2B55 +ROM:2B55 ROM_2B55: ; CODE XREF: ROM_2916+23B↑j +ROM:2B55 mov DPTR, #0xF490 +ROM:2B58 mov A, #1 +ROM:2B5A lcall ROM_D9B8 +ROM:2B5D acall ROM_2C2A +ROM:2B5F jnc ROM_2B75 +ROM:2B61 lcall j_encryption_something_maybe_code_107D +ROM:2B64 clr A +ROM:2B65 mov R4, A +ROM:2B66 mov R5, A +ROM:2B67 mov R3, #0x10 +ROM:2B69 mov R2, #0x27 ; ''' +ROM:2B6B +ROM:2B6B ROM_2B6B: ; CODE XREF: ROM_2916+20E↑j +ROM:2B6B mov R1, A +ROM:2B6C mov R0, A +ROM:2B6D lcall code_A7C +ROM:2B70 lcall ROM_D7B4 +ROM:2B73 ajmp ROM_2C09 +ROM:2B75 ; --------------------------------------------------------------------------- +ROM:2B75 +ROM:2B75 ROM_2B75: ; CODE XREF: ROM_2916+249↑j +ROM:2B75 setb C +ROM:2B76 mov DPTR, #0xF543 +ROM:2B79 movx A, @DPTR +ROM:2B7A subb A, #0x18 +ROM:2B7C acall ROM_2C2A +ROM:2B7E jnc ROM_2B87 +ROM:2B80 acall ROM_2C31 +ROM:2B82 lcall ROM_D57C +ROM:2B85 ajmp ROM_2C09 +ROM:2B87 ; --------------------------------------------------------------------------- +ROM:2B87 +ROM:2B87 ROM_2B87: ; CODE XREF: ROM_2916+268↑j +ROM:2B87 mov DPTR, #0xF543 +ROM:2B8A movx A, @DPTR +ROM:2B8B anl A, #3 +ROM:2B8D xrl A, #1 +ROM:2B8F jnz ROM_2B95 +ROM:2B91 mov DPTR, #0xF490 +ROM:2B94 movx @DPTR, A +ROM:2B95 +ROM:2B95 ROM_2B95: ; CODE XREF: ROM_2916+279↑j +ROM:2B95 clr C +ROM:2B96 mov DPTR, #0xF543 +ROM:2B99 movx A, @DPTR +ROM:2B9A subb A, #0x1D +ROM:2B9C acall ROM_2C2A +ROM:2B9E jc ROM_2BA6 +ROM:2BA0 clr A +ROM:2BA1 movx @DPTR, A +ROM:2BA2 inc DPTR +ROM:2BA3 mov A, #0x19 +ROM:2BA5 movx @DPTR, A +ROM:2BA6 +ROM:2BA6 ROM_2BA6: ; CODE XREF: ROM_2916+288↑j +ROM:2BA6 acall ROM_2C31 +ROM:2BA8 mov A, R3 +ROM:2BA9 add A, #0x40 ; '@' +ROM:2BAB mov R7, A +ROM:2BAC mov A, R2 +ROM:2BAD addc A, #0x77 ; 'w' +ROM:2BAF mov R6, A +ROM:2BB0 mov A, R1 +ROM:2BB1 addc A, #0x1B +ROM:2BB3 sjmp ROM_2C09 +ROM:2BB5 ; --------------------------------------------------------------------------- +ROM:2BB5 +ROM:2BB5 ROM_2BB5: ; CODE XREF: ROM_2916+237↑j +ROM:2BB5 clr A +ROM:2BB6 mov DPTR, #0xF490 +ROM:2BB9 lcall ROM_D9B8 +ROM:2BBC acall ROM_2C2A +ROM:2BBE jnc ROM_2BC7 +ROM:2BC0 acall ROM_2C31 +ROM:2BC2 lcall ROM_D7B4 +ROM:2BC5 sjmp ROM_2C09 +ROM:2BC7 ; --------------------------------------------------------------------------- +ROM:2BC7 +ROM:2BC7 ROM_2BC7: ; CODE XREF: ROM_2916+2A8↑j +ROM:2BC7 setb C +ROM:2BC8 mov DPTR, #0xF543 +ROM:2BCB movx A, @DPTR +ROM:2BCC subb A, #0x1C +ROM:2BCE acall ROM_2C2A +ROM:2BD0 jnc ROM_2BD9 +ROM:2BD2 acall ROM_2C31 +ROM:2BD4 lcall ROM_D57C +ROM:2BD7 sjmp ROM_2C09 +ROM:2BD9 ; --------------------------------------------------------------------------- +ROM:2BD9 +ROM:2BD9 ROM_2BD9: ; CODE XREF: ROM_2916+2BA↑j +ROM:2BD9 setb C +ROM:2BDA mov DPTR, #0xF543 +ROM:2BDD movx A, @DPTR +ROM:2BDE subb A, #0xC4 +ROM:2BE0 acall ROM_2C2A +ROM:2BE2 jnc ROM_2BF3 +ROM:2BE4 acall ROM_2C31 +ROM:2BE6 mov A, R3 +ROM:2BE7 add A, #0x80 +ROM:2BE9 mov R7, A +ROM:2BEA mov A, R2 +ROM:2BEB addc A, #0xEE +ROM:2BED mov R6, A +ROM:2BEE mov A, R1 +ROM:2BEF addc A, #0x36 ; '6' +ROM:2BF1 sjmp ROM_2C09 +ROM:2BF3 ; --------------------------------------------------------------------------- +ROM:2BF3 +ROM:2BF3 ROM_2BF3: ; CODE XREF: ROM_2916+2CC↑j +ROM:2BF3 setb C +ROM:2BF4 mov DPTR, #0xF543 +ROM:2BF7 movx A, @DPTR +ROM:2BF8 subb A, #0xFF +ROM:2BFA acall ROM_2C2A +ROM:2BFC jc ROM_2C04 +ROM:2BFE clr A +ROM:2BFF movx @DPTR, A +ROM:2C00 inc DPTR +ROM:2C01 mov A, #0xFF +ROM:2C03 movx @DPTR, A +ROM:2C04 +ROM:2C04 ROM_2C04: ; CODE XREF: ROM_2916+2E6↑j +ROM:2C04 acall ROM_2C31 +ROM:2C06 lcall ROM_D85D +ROM:2C09 +ROM:2C09 ROM_2C09: ; CODE XREF: ROM_2916+225↑j +ROM:2C09 ; ROM_2916+231↑j ... +ROM:2C09 mov R5, A +ROM:2C0A clr A +ROM:2C0B addc A, R0 +ROM:2C0C sjmp ROM_2C17 +ROM:2C0E ; --------------------------------------------------------------------------- +ROM:2C0E +ROM:2C0E ROM_2C0E: ; CODE XREF: ROM_2916+23D↑j +ROM:2C0E clr A +ROM:2C0F mov DPTR, #0xF490 +ROM:2C12 movx @DPTR, A +ROM:2C13 +ROM:2C13 ROM_2C13: ; CODE XREF: ROM_2916+1F5↑j +ROM:2C13 acall ROM_2C68 +ROM:2C15 acall ROM_2FEA +ROM:2C17 +ROM:2C17 ROM_2C17: ; CODE XREF: ROM_2916+2F6↑j +ROM:2C17 mov R4, A +ROM:2C18 acall ROM_2C43 +ROM:2C1A +ROM:2C1A ROM_2C1A: ; CODE XREF: ROM_2916+127↑j +ROM:2C1A ; ROM_2916+13D↑j +ROM:2C1A mov DPTR, #0xF842 +ROM:2C1D lcall load_4_bytes_R4_R5_R6_A +ROM:2C20 mov R7, A +ROM:2C21 +ROM:2C21 ROM_2C21: ; CODE XREF: ROM_2916+166↑j +ROM:2C21 ajmp ROM_2E66 +ROM:2C21 ; End of function ROM_2916 +ROM:2C21 +ROM:2C23 +ROM:2C23 ; =============== S U B R O U T I N E ======================================= +ROM:2C23 +ROM:2C23 +ROM:2C23 ROM_2C23: ; CODE XREF: ROM_2916+1C7↑p +ROM:2C23 ; ROM_2916:ROM_2B1E↑p +ROM:2C23 setb C +ROM:2C24 mov DPTR, #0xF543 +ROM:2C27 movx A, @DPTR +ROM:2C28 subb A, #0xA +ROM:2C28 ; End of function ROM_2C23 +ROM:2C28 +ROM:2C2A +ROM:2C2A ; =============== S U B R O U T I N E ======================================= +ROM:2C2A +ROM:2C2A +ROM:2C2A ROM_2C2A: ; CODE XREF: ROM_2916+EC↑p +ROM:2C2A ; ROM_2916+1FE↑p ... +ROM:2C2A mov DPTR, #0xF542 +ROM:2C2D movx A, @DPTR +ROM:2C2E subb A, #0 +ROM:2C30 ret +ROM:2C30 ; End of function ROM_2C2A +ROM:2C30 +ROM:2C31 +ROM:2C31 ; =============== S U B R O U T I N E ======================================= +ROM:2C31 +ROM:2C31 +ROM:2C31 ROM_2C31: ; CODE XREF: ROM_2916+26A↑p +ROM:2C31 ; ROM_2916:ROM_2BA6↑p ... +ROM:2C31 lcall j_encryption_something_maybe_code_107D +ROM:2C34 clr A +ROM:2C35 mov R4, A +ROM:2C36 mov R5, A +ROM:2C37 mov R3, #0x10 +ROM:2C39 mov R2, #0x27 ; ''' +ROM:2C3B mov R1, A +ROM:2C3C mov R0, A +ROM:2C3D ljmp code_A7C +ROM:2C3D ; End of function ROM_2C31 +ROM:2C3D +ROM:2C40 +ROM:2C40 ; =============== S U B R O U T I N E ======================================= +ROM:2C40 +ROM:2C40 +ROM:2C40 ROM_2C40: ; CODE XREF: ROM_2916+90↑p +ROM:2C40 ; ROM_2916+A2↑p +ROM:2C40 clr A +ROM:2C41 mov R4, A +ROM:2C42 mov R5, A +ROM:2C42 ; End of function ROM_2C40 +ROM:2C42 +ROM:2C43 +ROM:2C43 ; =============== S U B R O U T I N E ======================================= +ROM:2C43 +ROM:2C43 +ROM:2C43 ROM_2C43: ; CODE XREF: ROM_2916:ROM_2A17↑p +ROM:2C43 ; ROM_2916:ROM_2A51↑p ... +ROM:2C43 mov DPTR, #0xF842 +ROM:2C46 ljmp save_4_bytes_R4_R7 +ROM:2C46 ; End of function ROM_2C43 +ROM:2C46 +ROM:2C49 +ROM:2C49 ; =============== S U B R O U T I N E ======================================= +ROM:2C49 +ROM:2C49 +ROM:2C49 ROM_2C49: ; CODE XREF: ROM_2916+B7↑p +ROM:2C49 ; ROM_2E9D+64↓p +ROM:2C49 movx @DPTR, A +ROM:2C49 ; End of function ROM_2C49 +ROM:2C49 +ROM:2C4A +ROM:2C4A ; =============== S U B R O U T I N E ======================================= +ROM:2C4A +ROM:2C4A +ROM:2C4A ROM_2C4A: ; CODE XREF: ROM_2916:ROM_29D2↑p +ROM:2C4A ; ROM_2916:ROM_2A14↑p +ROM:2C4A lcall j_encryption_something_maybe_code_107D +ROM:2C4D mov R4, #0x7F +ROM:2C4F mov R5, #0xFF +ROM:2C51 lcall code_8F0 +ROM:2C54 mov R6, RAM_4 +ROM:2C56 mov R7, RAM_5 +ROM:2C58 mov A, R7 +ROM:2C59 add A, #0x10 +ROM:2C5B mov R7, A +ROM:2C5C mov A, R6 +ROM:2C5D addc A, #0x27 ; ''' +ROM:2C5D ; End of function ROM_2C4A +ROM:2C5D +ROM:2C5F +ROM:2C5F ; =============== S U B R O U T I N E ======================================= +ROM:2C5F +ROM:2C5F +ROM:2C5F ROM_2C5F: ; CODE XREF: ROM_2916+115↑p +ROM:2C5F ; ROM_4816-1B2A↓p ... +ROM:2C5F mov R6, A +ROM:2C60 clr A +ROM:2C61 rlc A +ROM:2C62 mov R5, A +ROM:2C63 clr A +ROM:2C64 rlc A +ROM:2C65 ret +ROM:2C65 ; End of function ROM_2C5F +ROM:2C65 +ROM:2C66 +ROM:2C66 ; =============== S U B R O U T I N E ======================================= +ROM:2C66 +ROM:2C66 +ROM:2C66 ROM_2C66: ; CODE XREF: ROM_4816:ROM_2607↑p +ROM:2C66 ; ROM_4816:ROM_2D6C↓p +ROM:2C66 acall ROM_2D85 +ROM:2C66 ; End of function ROM_2C66 +ROM:2C66 +ROM:2C68 +ROM:2C68 ; =============== S U B R O U T I N E ======================================= +ROM:2C68 +ROM:2C68 +ROM:2C68 ROM_2C68: ; CODE XREF: ROM_4816-25D8↑p +ROM:2C68 ; ROM_4816-2574↑p ... +ROM:2C68 mov DPTR, #0xFDC6 +ROM:2C6B mov A, #3 +ROM:2C6D movx @DPTR, A +ROM:2C6E ret +ROM:2C6E ; End of function ROM_2C68 +ROM:2C6E +ROM:2C6F ; --------------------------------------------------------------------------- +ROM:2C6F ; START OF FUNCTION CHUNK FOR ROM_4816 +ROM:2C6F +ROM:2C6F ROM_2C6F: ; CODE XREF: ROM_4816:ROM_482D↓j +ROM:2C6F mov DPTR, #0xFDC6 +ROM:2C72 movx A, @DPTR +ROM:2C73 add A, #0xFC +ROM:2C75 jz ROM_2C92 +ROM:2C77 add A, #0xFE +ROM:2C79 jz ROM_2C92 +ROM:2C7B add A, #0xFE +ROM:2C7D jz ROM_2C92 +ROM:2C7F dec A +ROM:2C80 jz ROM_2C94 +ROM:2C82 add A, #0xFE +ROM:2C84 jz ROM_2C92 +ROM:2C86 add A, #0xFC +ROM:2C88 jnz ROM_2C8C +ROM:2C8A ajmp ROM_2D73 +ROM:2C8C ; --------------------------------------------------------------------------- +ROM:2C8C +ROM:2C8C ROM_2C8C: ; CODE XREF: ROM_4816-1B8E↑j +ROM:2C8C add A, #0xC +ROM:2C8E jz ROM_2C92 +ROM:2C90 ajmp ROM_2D6C +ROM:2C92 ; --------------------------------------------------------------------------- +ROM:2C92 +ROM:2C92 ROM_2C92: ; CODE XREF: ROM_4816-1BA1↑j +ROM:2C92 ; ROM_4816-1B9D↑j ... +ROM:2C92 ajmp ROM_2D68 +ROM:2C94 ; --------------------------------------------------------------------------- +ROM:2C94 +ROM:2C94 ROM_2C94: ; CODE XREF: ROM_4816-1B96↑j +ROM:2C94 clr A +ROM:2C95 mov R7, A +ROM:2C96 lcall ROM_27D4 +ROM:2C99 mov DPTR, #0xFDD1 +ROM:2C9C movx A, @DPTR +ROM:2C9D xrl A, #1 +ROM:2C9F jz ROM_2CA3 +ROM:2CA1 ajmp ROM_2D66 +ROM:2CA3 ; --------------------------------------------------------------------------- +ROM:2CA3 +ROM:2CA3 ROM_2CA3: ; CODE XREF: ROM_4816-1B77↑j +ROM:2CA3 mov DPTR, #0xFDC6 +ROM:2CA6 mov A, #9 +ROM:2CA8 movx @DPTR, A +ROM:2CA9 mov DPTR, #0xFDD1 +ROM:2CAC mov A, #2 +ROM:2CAE movx @DPTR, A +ROM:2CAF mov DPTR, #0xFB98 +ROM:2CB2 movx A, @DPTR +ROM:2CB3 jnz ROM_2CB7 +ROM:2CB5 inc DPTR +ROM:2CB6 movx A, @DPTR +ROM:2CB7 +ROM:2CB7 ROM_2CB7: ; CODE XREF: ROM_4816-1B63↑j +ROM:2CB7 jnz ROM_2CCE +ROM:2CB9 lcall ROM_9366 +ROM:2CBC acall ROM_2F61 +ROM:2CBE acall ROM_2D7F +ROM:2CC0 mov DPTR, #0xF828 +ROM:2CC3 lcall load_4_bytes_R4_R5_R6_A +ROM:2CC6 mov R7, A +ROM:2CC7 clr A +ROM:2CC8 mov R3, #0x64 ; 'd' +ROM:2CCA acall ROM_2E5C +ROM:2CCC sjmp ROM_2D4A +ROM:2CCE ; --------------------------------------------------------------------------- +ROM:2CCE +ROM:2CCE ROM_2CCE: ; CODE XREF: ROM_4816:ROM_2CB7↑j +ROM:2CCE mov DPTR, #0xFC61 +ROM:2CD1 movx A, @DPTR +ROM:2CD2 mov R7, A +ROM:2CD3 mov R6, #0 +ROM:2CD5 mov DPTR, #0xFB98 +ROM:2CD8 movx A, @DPTR +ROM:2CD9 mov R4, A +ROM:2CDA inc DPTR +ROM:2CDB movx A, @DPTR +ROM:2CDC mov R5, A +ROM:2CDD lcall code_8DE +ROM:2CE0 mov R3, RAM_7 +ROM:2CE2 mov R2, RAM_6 +ROM:2CE4 lcall ROM_D983 +ROM:2CE7 mov A, R3 +ROM:2CE8 add A, R7 +ROM:2CE9 mov R7, A +ROM:2CEA mov A, R2 +ROM:2CEB addc A, R6 +ROM:2CEC acall ROM_2C5F +ROM:2CEE mov R4, A +ROM:2CEF clr A +ROM:2CF0 mov R3, #6 +ROM:2CF2 acall ROM_2E5C +ROM:2CF4 lcall ROM_950D +ROM:2CF7 lcall ROM_9366 +ROM:2CFA acall ROM_2F61 +ROM:2CFC mov A, R7 +ROM:2CFD add A, #0xF6 +ROM:2CFF lcall ROM_D35F +ROM:2D02 mov R4, A +ROM:2D03 acall ROM_2D7F +ROM:2D05 mov DPTR, #0xF828 +ROM:2D08 lcall load_4_bytes_R4_R5_R6_A +ROM:2D0B mov R7, A +ROM:2D0C clr A +ROM:2D0D mov R3, #0x64 ; 'd' +ROM:2D0F acall ROM_2E5C +ROM:2D11 acall ROM_2D7F +ROM:2D13 mov DPTR, #0xF82C +ROM:2D16 lcall load_4_bytes_R4_R5_R6_A +ROM:2D19 mov R7, A +ROM:2D1A mov DPTR, #0xF828 +ROM:2D1D lcall load_4_bytes_R0_R1_R2_R3 +ROM:2D20 setb C +ROM:2D21 lcall code_B1C +ROM:2D24 jc ROM_2D37 +ROM:2D26 mov DPTR, #0xF828 +ROM:2D29 lcall load_4_bytes_R4_R5_R6_A +ROM:2D2C mov R7, A +ROM:2D2D inc DPTR +ROM:2D2E lcall load_4_bytes_R0_R1_R2_R3 +ROM:2D31 lcall ROM_2776 +ROM:2D34 mov R4, A +ROM:2D35 sjmp ROM_2D4A +ROM:2D37 ; --------------------------------------------------------------------------- +ROM:2D37 +ROM:2D37 ROM_2D37: ; CODE XREF: ROM_4816-1AF2↑j +ROM:2D37 lcall ROM_9366 +ROM:2D3A acall ROM_2F61 +ROM:2D3C acall ROM_2D7F +ROM:2D3E mov DPTR, #0xF828 +ROM:2D41 lcall load_4_bytes_R4_R5_R6_A +ROM:2D44 mov R7, A +ROM:2D45 clr A +ROM:2D46 mov R3, #0x64 ; 'd' +ROM:2D48 acall ROM_2E5C +ROM:2D4A +ROM:2D4A ROM_2D4A: ; CODE XREF: ROM_4816-1B4A↑j +ROM:2D4A ; ROM_4816-1AE1↑j +ROM:2D4A acall ROM_2D7F +ROM:2D4C clr A +ROM:2D4D mov DPTR, #0xFC61 +ROM:2D50 movx @DPTR, A +ROM:2D51 mov DPTR, #0xFC5F +ROM:2D54 movx @DPTR, A +ROM:2D55 inc DPTR +ROM:2D56 movx @DPTR, A +ROM:2D57 mov DPTR, #0xFB9C +ROM:2D5A movx @DPTR, A +ROM:2D5B inc DPTR +ROM:2D5C movx @DPTR, A +ROM:2D5D mov DPTR, #0xF828 +ROM:2D60 lcall load_4_bytes_R4_R5_R6_A +ROM:2D63 mov R7, A +ROM:2D64 sjmp ROM_2D71 +ROM:2D66 ; --------------------------------------------------------------------------- +ROM:2D66 +ROM:2D66 ROM_2D66: ; CODE XREF: ROM_4816-1B75↑j +ROM:2D66 acall ROM_2E48 +ROM:2D68 +ROM:2D68 ROM_2D68: ; CODE XREF: ROM_4816:ROM_2C92↑j +ROM:2D68 acall ROM_2916 +ROM:2D6A sjmp ROM_2D73 +ROM:2D6C ; --------------------------------------------------------------------------- +ROM:2D6C +ROM:2D6C ROM_2D6C: ; CODE XREF: ROM_4816-1B86↑j +ROM:2D6C acall ROM_2C66 +ROM:2D6E acall ROM_2FEA +ROM:2D70 mov R4, A +ROM:2D71 +ROM:2D71 ROM_2D71: ; CODE XREF: ROM_4816-1AB2↑j +ROM:2D71 acall ROM_2E66 +ROM:2D71 ; END OF FUNCTION CHUNK FOR ROM_4816 +ROM:2D73 +ROM:2D73 ; =============== S U B R O U T I N E ======================================= +ROM:2D73 +ROM:2D73 +ROM:2D73 ROM_2D73: ; CODE XREF: ROM_4816-1B8C↑j +ROM:2D73 ; ROM_4816-1AAC↑j ... +ROM:2D73 clr A +ROM:2D74 mov DPTR, #0xF711 +ROM:2D77 movx @DPTR, A +ROM:2D78 mov DPTR, #0xF710 +ROM:2D7B mov A, #2 +ROM:2D7D movx @DPTR, A +ROM:2D7E ret +ROM:2D7E ; End of function ROM_2D73 +ROM:2D7E +ROM:2D7F +ROM:2D7F ; =============== S U B R O U T I N E ======================================= +ROM:2D7F +ROM:2D7F +ROM:2D7F ROM_2D7F: ; CODE XREF: ROM_4816-1B58↑p +ROM:2D7F ; ROM_4816-1B13↑p ... +ROM:2D7F mov DPTR, #0xF828 +ROM:2D82 ljmp save_4_bytes_R4_R7 +ROM:2D82 ; End of function ROM_2D7F +ROM:2D82 +ROM:2D85 +ROM:2D85 ; =============== S U B R O U T I N E ======================================= +ROM:2D85 +ROM:2D85 +ROM:2D85 ROM_2D85: ; CODE XREF: ROM_2916+134↑p +ROM:2D85 ; ROM_2916+182↑p ... +ROM:2D85 clr A +ROM:2D86 mov DPTR, #0xF677 +ROM:2D89 movx @DPTR, A +ROM:2D8A mov DPTR, #0xF679 +ROM:2D8D movx @DPTR, A +ROM:2D8E ret +ROM:2D8E ; End of function ROM_2D85 +ROM:2D8E +ROM:2D8F +ROM:2D8F ; =============== S U B R O U T I N E ======================================= +ROM:2D8F +ROM:2D8F +ROM:2D8F ROM_2D8F: ; CODE XREF: ROM_49FD+CC↓p +ROM:2D8F ; ROM_49FD+3A86↓p +ROM:2D8F lcall ROM_D9C1 +ROM:2D92 mov DPTR, #0xFDC6 +ROM:2D95 movx A, @DPTR +ROM:2D96 add A, #0xFA +ROM:2D98 jz ROM_2DA9 +ROM:2D9A dec A +ROM:2D9B jz ROM_2DEA +ROM:2D9D add A, #0xF8 +ROM:2D9F jnz ROM_2DA3 +ROM:2DA1 ajmp ROM_2E47 +ROM:2DA3 ; --------------------------------------------------------------------------- +ROM:2DA3 +ROM:2DA3 ROM_2DA3: ; CODE XREF: ROM_2D8F+10↑j +ROM:2DA3 add A, #0xB +ROM:2DA5 jz ROM_2DA9 +ROM:2DA7 ajmp ROM_2E3F +ROM:2DA9 ; --------------------------------------------------------------------------- +ROM:2DA9 +ROM:2DA9 ROM_2DA9: ; CODE XREF: ROM_2D8F+9↑j +ROM:2DA9 ; ROM_2D8F+16↑j +ROM:2DA9 lcall ROM_D793 +ROM:2DAC jz ROM_2DB0 +ROM:2DAE ajmp ROM_2E3D +ROM:2DB0 ; --------------------------------------------------------------------------- +ROM:2DB0 +ROM:2DB0 ROM_2DB0: ; CODE XREF: ROM_2D8F+1D↑j +ROM:2DB0 mov DPTR, #0xFDC6 +ROM:2DB3 movx A, @DPTR +ROM:2DB4 xrl A, #6 +ROM:2DB6 jz ROM_2DBA +ROM:2DB8 ajmp ROM_2E47 +ROM:2DBA ; --------------------------------------------------------------------------- +ROM:2DBA +ROM:2DBA ROM_2DBA: ; CODE XREF: ROM_2D8F+27↑j +ROM:2DBA lcall ROM_DA64 +ROM:2DBD xrl A, #4 +ROM:2DBF jnz ROM_2DD9 +ROM:2DC1 mov A, #5 +ROM:2DC3 movx @DPTR, A +ROM:2DC4 mov DPTR, #0xFFE8 +ROM:2DC7 movx @DPTR, A +ROM:2DC8 mov DPTR, #0xF53A +ROM:2DCB movx A, @DPTR +ROM:2DCC jnz ROM_2E47 +ROM:2DCE lcall ROM_6842 +ROM:2DD1 jnz ROM_2E47 +ROM:2DD3 mov DPTR, #0xF53A +ROM:2DD6 inc A +ROM:2DD7 movx @DPTR, A +ROM:2DD8 ret +ROM:2DD9 ; --------------------------------------------------------------------------- +ROM:2DD9 +ROM:2DD9 ROM_2DD9: ; CODE XREF: ROM_2D8F+30↑j +ROM:2DD9 mov A, R7 +ROM:2DDA xrl A, #1 +ROM:2DDC orl A, R6 +ROM:2DDD jnz ROM_2E47 +ROM:2DDF mov DPTR, #0xFEAC +ROM:2DE2 mov A, #2 +ROM:2DE4 movx @DPTR, A +ROM:2DE5 mov DPTR, #0xFFE8 +ROM:2DE8 movx @DPTR, A +ROM:2DE9 ret +ROM:2DEA ; --------------------------------------------------------------------------- +ROM:2DEA +ROM:2DEA ROM_2DEA: ; CODE XREF: ROM_2D8F+C↑j +ROM:2DEA clr A +ROM:2DEB mov R7, A +ROM:2DEC lcall ROM_27D4 +ROM:2DEF lcall ROM_D793 +ROM:2DF2 jz ROM_2DF6 +ROM:2DF4 sjmp ROM_2E3D +ROM:2DF6 ; --------------------------------------------------------------------------- +ROM:2DF6 +ROM:2DF6 ROM_2DF6: ; CODE XREF: ROM_2D8F+63↑j +ROM:2DF6 mov DPTR, #0xF555 +ROM:2DF9 movx A, @DPTR +ROM:2DFA xrl A, #1 +ROM:2DFC jnz ROM_2E1C +ROM:2DFE lcall ROM_816B +ROM:2E01 mov DPTR, #0xF67B +ROM:2E04 movx A, @DPTR +ROM:2E05 xrl A, #1 +ROM:2E07 jnz ROM_2E0E +ROM:2E09 lcall ROM_D8B5 +ROM:2E0C sjmp ROM_2E13 +ROM:2E0E ; --------------------------------------------------------------------------- +ROM:2E0E +ROM:2E0E ROM_2E0E: ; CODE XREF: ROM_2D8F+78↑j +ROM:2E0E mov R7, #0x64 ; 'd' +ROM:2E10 lcall ROM_2153 +ROM:2E13 +ROM:2E13 ROM_2E13: ; CODE XREF: ROM_2D8F+7D↑j +ROM:2E13 lcall ROM_9396 +ROM:2E16 mov DPTR, #0xF509 +ROM:2E19 movx @DPTR, A +ROM:2E1A sjmp ROM_2E42 +ROM:2E1C ; --------------------------------------------------------------------------- +ROM:2E1C +ROM:2E1C ROM_2E1C: ; CODE XREF: ROM_2D8F+6D↑j +ROM:2E1C mov DPTR, #0xF671 +ROM:2E1F movx A, @DPTR +ROM:2E20 jnz ROM_2E3B +ROM:2E22 acall ROM_2D85 +ROM:2E24 acall ROM_2F47 +ROM:2E26 lcall ROM_D942 +ROM:2E29 lcall load_4_bytes_R4_R5_R6_A +ROM:2E2C mov R7, A +ROM:2E2D clr A +ROM:2E2E mov R3, #0x64 ; 'd' +ROM:2E30 acall ROM_2E5C +ROM:2E32 lcall ROM_D942 +ROM:2E35 lcall load_4_bytes_R4_R5_R6_A +ROM:2E38 mov R7, A +ROM:2E39 sjmp ROM_2E45 +ROM:2E3B ; --------------------------------------------------------------------------- +ROM:2E3B +ROM:2E3B ROM_2E3B: ; CODE XREF: ROM_2D8F+91↑j +ROM:2E3B acall ROM_2E48 +ROM:2E3D +ROM:2E3D ROM_2E3D: ; CODE XREF: ROM_2D8F+1F↑j +ROM:2E3D ; ROM_2D8F+65↑j +ROM:2E3D ajmp ROM_2916 +ROM:2E3F ; --------------------------------------------------------------------------- +ROM:2E3F +ROM:2E3F ROM_2E3F: ; CODE XREF: ROM_2D8F+18↑j +ROM:2E3F acall ROM_2C68 +ROM:2E41 clr A +ROM:2E42 +ROM:2E42 ROM_2E42: ; CODE XREF: ROM_2D8F+8B↑j +ROM:2E42 lcall ROM_D8FB +ROM:2E45 +ROM:2E45 ROM_2E45: ; CODE XREF: ROM_2D8F+AA↑j +ROM:2E45 acall ROM_2E66 +ROM:2E47 +ROM:2E47 ROM_2E47: ; CODE XREF: ROM_2D8F+12↑j +ROM:2E47 ; ROM_2D8F+29↑j ... +ROM:2E47 ret +ROM:2E47 ; End of function ROM_2D8F +ROM:2E47 +ROM:2E48 +ROM:2E48 ; =============== S U B R O U T I N E ======================================= +ROM:2E48 +ROM:2E48 +ROM:2E48 ROM_2E48: ; CODE XREF: ROM_4816:ROM_22C3↑p +ROM:2E48 ; ROM_4816:ROM_2354↑p ... +ROM:2E48 mov DPTR, #0xFDC6 +ROM:2E4B mov A, #6 +ROM:2E4D movx @DPTR, A +ROM:2E4E ret +ROM:2E4E ; End of function ROM_2E48 +ROM:2E4E +ROM:2E4F +ROM:2E4F ; =============== S U B R O U T I N E ======================================= +ROM:2E4F +ROM:2E4F +ROM:2E4F ROM_2E4F: ; CODE XREF: ROM_AD6A+B2D↓p +ROM:2E4F ; ROM_AD6A+C91↓p ... +ROM:2E4F inc DPTR +ROM:2E50 inc DPTR +ROM:2E51 inc DPTR +ROM:2E52 movx A, @DPTR +ROM:2E53 anl A, #0x7F +ROM:2E55 mov R7, A +ROM:2E56 clr A +ROM:2E57 mov R6, A +ROM:2E58 mov R5, A +ROM:2E59 mov R4, A +ROM:2E5A mov R3, #2 +ROM:2E5A ; End of function ROM_2E4F +ROM:2E5A +ROM:2E5C +ROM:2E5C ; =============== S U B R O U T I N E ======================================= +ROM:2E5C +ROM:2E5C +ROM:2E5C ROM_2E5C: ; CODE XREF: ROM_4816-2455↑p +ROM:2E5C ; ROM_2916+AE↑p ... +ROM:2E5C mov R2, A +ROM:2E5D mov R1, A +ROM:2E5E mov R0, A +ROM:2E5F ljmp code_9F1 +ROM:2E5F ; End of function ROM_2E5C +ROM:2E5F +ROM:2E62 +ROM:2E62 ; =============== S U B R O U T I N E ======================================= +ROM:2E62 +ROM:2E62 +ROM:2E62 ROM_2E62: ; CODE XREF: ROM_6849+92↓p +ROM:2E62 ; ROM_A044-34E4↓j +ROM:2E62 movx @DPTR, A +ROM:2E63 lcall ROM_6962 +ROM:2E63 ; End of function ROM_2E62 +ROM:2E63 +ROM:2E66 +ROM:2E66 ; =============== S U B R O U T I N E ======================================= +ROM:2E66 +ROM:2E66 +ROM:2E66 ROM_2E66: ; CODE XREF: ROM_4816:ROM_23D3↑j +ROM:2E66 ; ROM_4816-2208↑j ... +ROM:2E66 lcall ROM_27F5 +ROM:2E69 mov DPTR, #0xFDD4 +ROM:2E6C mov A, #1 +ROM:2E6E movx @DPTR, A +ROM:2E6F acall ROM_2FCC +ROM:2E71 mov R7, #0xFF +ROM:2E73 lcall ROM_A1BB +ROM:2E73 ; End of function ROM_2E66 +ROM:2E73 +ROM:2E76 +ROM:2E76 ; =============== S U B R O U T I N E ======================================= +ROM:2E76 +ROM:2E76 +ROM:2E76 ROM_2E76: ; CODE XREF: ROM_6BA0+53↓p +ROM:2E76 setb C +ROM:2E77 jbc EA, ROM_2E7B ; Interrupt Enable Register 0 +ROM:2E7A clr C +ROM:2E7B +ROM:2E7B ROM_2E7B: ; CODE XREF: ROM_2E76+1↑j +ROM:2E7B lcall ROM_A1D7 +ROM:2E7E jnz ROM_2E82 +ROM:2E80 sjmp ROM_2E90 +ROM:2E82 ; --------------------------------------------------------------------------- +ROM:2E82 +ROM:2E82 ROM_2E82: ; CODE XREF: ROM_2E76+8↑j +ROM:2E82 mov DPTR, #0xFEC1 +ROM:2E85 lcall ROM_A1B3 +ROM:2E88 sjmp ROM_2E8C +ROM:2E8A ; --------------------------------------------------------------------------- +ROM:2E8A +ROM:2E8A ROM_2E8A: ; CODE XREF: ROM_2E76:ROM_2E8C↓j +ROM:2E8A clr C +ROM:2E8B rlc A +ROM:2E8C +ROM:2E8C ROM_2E8C: ; CODE XREF: ROM_2E76+12↑j +ROM:2E8C djnz R0, ROM_2E8A +ROM:2E8E cpl A +ROM:2E8F anl A, R6 +ROM:2E90 +ROM:2E90 ROM_2E90: ; CODE XREF: ROM_2E76+A↑j +ROM:2E90 mov DPTR, #0xFEC1 +ROM:2E93 movx @DPTR, A +ROM:2E94 +ROM:2E94 ROM_2E94: ; CODE XREF: ROM_A1BB+19↓j +ROM:2E94 mov DPTR, #0xF847 +ROM:2E97 movx A, @DPTR +ROM:2E98 add A, #0xFF +ROM:2E9A mov EA, C ; Interrupt Enable Register 0 +ROM:2E9C ret +ROM:2E9C ; End of function ROM_2E76 +ROM:2E9C +ROM:2E9D +ROM:2E9D ; =============== S U B R O U T I N E ======================================= +ROM:2E9D +ROM:2E9D +ROM:2E9D ROM_2E9D: ; CODE XREF: start_0+19E3↑p +ROM:2E9D clr A +ROM:2E9E mov DPTR, #0xFDD4 +ROM:2EA1 movx @DPTR, A +ROM:2EA2 mov DPTR, #0xDFFA +ROM:2EA5 mov A, #0x80 +ROM:2EA7 movx @DPTR, A +ROM:2EA8 lcall ROM_6C02 +ROM:2EAB mov A, R7 +ROM:2EAC xrl A, #1 +ROM:2EAE jnz ROM_2EB9 +ROM:2EB0 mov DPTR, #0xFDC6 +ROM:2EB3 mov A, #0xF +ROM:2EB5 movx @DPTR, A +ROM:2EB6 mov R7, #1 +ROM:2EB8 ret +ROM:2EB9 ; --------------------------------------------------------------------------- +ROM:2EB9 +ROM:2EB9 ROM_2EB9: ; CODE XREF: ROM_2E9D+11↑j +ROM:2EB9 mov DPTR, #0xFD9F +ROM:2EBC movx A, @DPTR +ROM:2EBD xrl A, #0xAD +ROM:2EBF jnz ROM_2EC5 +ROM:2EC1 inc DPTR +ROM:2EC2 movx A, @DPTR +ROM:2EC3 xrl A, #0xD2 +ROM:2EC5 +ROM:2EC5 ROM_2EC5: ; CODE XREF: ROM_2E9D+22↑j +ROM:2EC5 jz ROM_2ECE +ROM:2EC7 clr A +ROM:2EC8 mov DPTR, #0xFDC6 +ROM:2ECB movx @DPTR, A +ROM:2ECC sjmp ROM_2F29 +ROM:2ECE ; --------------------------------------------------------------------------- +ROM:2ECE +ROM:2ECE ROM_2ECE: ; CODE XREF: ROM_2E9D:ROM_2EC5↑j +ROM:2ECE mov DPTR, #0xFEBF +ROM:2ED1 movx A, @DPTR +ROM:2ED2 mov R7, A +ROM:2ED3 lcall ROM_3009 +ROM:2ED6 mov DPTR, #0xF824 +ROM:2ED9 mov A, R7 +ROM:2EDA movx @DPTR, A +ROM:2EDB lcall ROM_61D7 +ROM:2EDE mov R3, #1 +ROM:2EE0 mov R2, #0xFD +ROM:2EE2 mov R1, #0xA1 +ROM:2EE4 lcall ROM_5F14 +ROM:2EE7 lcall read_unknown_radio_reg_ROM_A51A +ROM:2EEA mov DPTR, #0xF824 +ROM:2EED movx A, @DPTR +ROM:2EEE mov R7, A +ROM:2EEF acall ROM_281F +ROM:2EF1 mov DPTR, #0xF825 +ROM:2EF4 mov A, R7 +ROM:2EF5 movx @DPTR, A +ROM:2EF6 jz ROM_2F29 +ROM:2EF8 xrl A, #1 +ROM:2EFA jnz ROM_2F05 +ROM:2EFC mov DPTR, #0xFDC6 +ROM:2EFF mov A, #3 +ROM:2F01 acall ROM_2C49 +ROM:2F03 sjmp ROM_2F16 +ROM:2F05 ; --------------------------------------------------------------------------- +ROM:2F05 +ROM:2F05 ROM_2F05: ; CODE XREF: ROM_2E9D+5D↑j +ROM:2F05 mov DPTR, #0xF825 +ROM:2F08 movx A, @DPTR +ROM:2F09 xrl A, #2 +ROM:2F0B jnz ROM_2F26 +ROM:2F0D lcall ROM_D93B +ROM:2F10 clr A +ROM:2F11 mov R7, #0xE8 +ROM:2F13 mov R6, #3 +ROM:2F15 mov R5, A +ROM:2F16 +ROM:2F16 ROM_2F16: ; CODE XREF: ROM_2E9D+66↑j +ROM:2F16 mov R4, A +ROM:2F17 mov DPTR, #0xF826 +ROM:2F1A lcall save_4_bytes_R4_R7 +ROM:2F1D mov DPTR, #0xF826 +ROM:2F20 lcall load_4_bytes_R4_R5_R6_A +ROM:2F23 mov R7, A +ROM:2F24 acall ROM_2E66 +ROM:2F26 +ROM:2F26 ROM_2F26: ; CODE XREF: ROM_2E9D+6E↑j +ROM:2F26 mov R7, #0 +ROM:2F28 ret +ROM:2F29 ; --------------------------------------------------------------------------- +ROM:2F29 +ROM:2F29 ROM_2F29: ; CODE XREF: ROM_2E9D+2F↑j +ROM:2F29 ; ROM_2E9D+59↑j +ROM:2F29 lcall ROM_99AD +ROM:2F2C mov A, R7 +ROM:2F2D jnz ROM_2F3F +ROM:2F2F mov R7, #0x64 ; 'd' +ROM:2F31 mov R6, A +ROM:2F32 mov R5, A +ROM:2F33 mov R4, A +ROM:2F34 acall ROM_2E66 +ROM:2F36 acall ROM_2C68 +ROM:2F38 mov R7, A +ROM:2F39 lcall ROM_6936 +ROM:2F3C mov R7, #0 +ROM:2F3E ret +ROM:2F3F ; --------------------------------------------------------------------------- +ROM:2F3F +ROM:2F3F ROM_2F3F: ; CODE XREF: ROM_2E9D+90↑j +ROM:2F3F lcall ROM_6288 +ROM:2F42 acall ROM_2E66 +ROM:2F44 mov R7, #0 +ROM:2F46 ret +ROM:2F46 ; End of function ROM_2E9D +ROM:2F46 +ROM:2F47 +ROM:2F47 ; =============== S U B R O U T I N E ======================================= +ROM:2F47 +ROM:2F47 +ROM:2F47 ROM_2F47: ; CODE XREF: ROM_2D8F+95↑p +ROM:2F47 ; ROM_436B:ROM_2FA3↓p ... +ROM:2F47 mov DPTR, #0xFDC6 +ROM:2F4A mov A, #8 +ROM:2F4C movx @DPTR, A +ROM:2F4C ; End of function ROM_2F47 +ROM:2F4C +ROM:2F4D +ROM:2F4D ; =============== S U B R O U T I N E ======================================= +ROM:2F4D +ROM:2F4D +ROM:2F4D ROM_2F4D: ; CODE XREF: ROM_4816-2465↑p +ROM:2F4D ; ROM_436B:ROM_470C↓p +ROM:2F4D mov DPTR, #0xFB7C +ROM:2F50 movx A, @DPTR +ROM:2F51 mov R6, A +ROM:2F52 inc DPTR +ROM:2F53 movx A, @DPTR +ROM:2F54 mov R7, A +ROM:2F55 clr C +ROM:2F56 mov DPTR, #0xFB7B +ROM:2F59 movx A, @DPTR +ROM:2F5A subb A, R7 +ROM:2F5B mov R7, A +ROM:2F5C mov DPTR, #0xFB7A +ROM:2F5F movx A, @DPTR +ROM:2F60 subb A, R6 +ROM:2F60 ; End of function ROM_2F4D +ROM:2F60 +ROM:2F61 +ROM:2F61 ; =============== S U B R O U T I N E ======================================= +ROM:2F61 +ROM:2F61 +ROM:2F61 ROM_2F61: ; CODE XREF: ROM_4816-1B5A↑p +ROM:2F61 ; ROM_4816-1B1C↑p ... +ROM:2F61 mov R6, A +ROM:2F62 clr A +ROM:2F63 mov R4, A +ROM:2F64 mov R5, A +ROM:2F65 mov R0, RAM_4 +ROM:2F67 mov R1, RAM_5 +ROM:2F69 mov R2, RAM_6 +ROM:2F6B mov R3, RAM_7 +ROM:2F6D mov DPTR, #0xFB7E +ROM:2F70 movx A, @DPTR +ROM:2F71 clr C +ROM:2F72 rrc A +ROM:2F73 mov R7, A +ROM:2F74 clr A +ROM:2F75 mov R6, A +ROM:2F75 ; End of function ROM_2F61 +ROM:2F75 +ROM:2F76 +ROM:2F76 ; =============== S U B R O U T I N E ======================================= +ROM:2F76 +ROM:2F76 +ROM:2F76 ROM_2F76: ; CODE XREF: ROM_AD6A+1EB6↓p +ROM:2F76 ; ROM_AD6A+1EEB↓p ... +ROM:2F76 mov A, R3 +ROM:2F77 add A, R7 +ROM:2F77 ; End of function ROM_2F76 +ROM:2F77 +ROM:2F78 +ROM:2F78 ; =============== S U B R O U T I N E ======================================= +ROM:2F78 +ROM:2F78 +ROM:2F78 ROM_2F78: ; CODE XREF: ROM_2638+61↑p +ROM:2F78 ; ROM_2638+89↑p ... +ROM:2F78 mov R7, A +ROM:2F79 mov A, R6 +ROM:2F7A addc A, R2 +ROM:2F7A ; End of function ROM_2F78 +ROM:2F7A +ROM:2F7B +ROM:2F7B ; =============== S U B R O U T I N E ======================================= +ROM:2F7B +ROM:2F7B +ROM:2F7B ROM_2F7B: ; CODE XREF: ROM_67A3-3634↓p +ROM:2F7B ; ROM_67A3-3627↓p ... +ROM:2F7B mov R6, A +ROM:2F7C mov A, R5 +ROM:2F7D addc A, R1 +ROM:2F7E mov R5, A +ROM:2F7F mov A, R4 +ROM:2F80 addc A, R0 +ROM:2F81 mov R4, A +ROM:2F82 ret +ROM:2F82 ; End of function ROM_2F7B +ROM:2F82 +ROM:2F83 ; --------------------------------------------------------------------------- +ROM:2F83 ; START OF FUNCTION CHUNK FOR ROM_436B +ROM:2F83 +ROM:2F83 ROM_2F83: ; CODE XREF: ROM_436B+F6↓j +ROM:2F83 lcall ROM_8FCC +ROM:2F86 mov A, R7 +ROM:2F87 xrl A, #1 +ROM:2F89 jnz ROM_2FBA +ROM:2F8B acall ROM_2D85 +ROM:2F8D lcall code_523 +ROM:2F90 clr A +ROM:2F91 lcall ROM_27D4 +ROM:2F94 acall ROM_2FD1 +ROM:2F96 lcall ROM_807C +ROM:2F99 mov A, R7 +ROM:2F9A xrl A, #1 +ROM:2F9C jnz ROM_2FA3 +ROM:2F9E mov R7, #1 +ROM:2FA0 lcall ROM_2153 +ROM:2FA3 +ROM:2FA3 ROM_2FA3: ; CODE XREF: ROM_436B-13CF↑j +ROM:2FA3 acall ROM_2F47 +ROM:2FA5 lcall ROM_47BC +ROM:2FA8 lcall load_4_bytes_R4_R5_R6_A +ROM:2FAB mov R7, A +ROM:2FAC clr A +ROM:2FAD mov R3, #0x64 ; 'd' +ROM:2FAF acall ROM_2E5C +ROM:2FB1 lcall ROM_47BC +ROM:2FB4 lcall load_4_bytes_R4_R5_R6_A +ROM:2FB7 mov R7, A +ROM:2FB8 ajmp ROM_2E66 +ROM:2FB8 ; END OF FUNCTION CHUNK FOR ROM_436B +ROM:2FBA +ROM:2FBA ; =============== S U B R O U T I N E ======================================= +ROM:2FBA +ROM:2FBA +ROM:2FBA ROM_2FBA: ; CODE XREF: ROM_436B-13E2↑j +ROM:2FBA ; ROM_436B:ROM_3584↓p +ROM:2FBA acall ROM_2FD1 +ROM:2FBC mov R5, #4 +ROM:2FBE mov R7, #0x32 ; '2' +ROM:2FC0 +ROM:2FC0 ROM_2FC0: ; CODE XREF: ROM_6632+4↓j +ROM:2FC0 ; ROM_9487+83↓j +ROM:2FC0 mov A, R7 +ROM:2FC1 jnz ROM_2FC5 +ROM:2FC3 mov R7, #0xA +ROM:2FC5 +ROM:2FC5 ROM_2FC5: ; CODE XREF: ROM_2FBA+7↑j +ROM:2FC5 mov A, R5 +ROM:2FC6 orl A, #0x80 +ROM:2FC8 mov R5, A +ROM:2FC9 ljmp ROM_35EC +ROM:2FC9 ; End of function ROM_2FBA +ROM:2FC9 +ROM:2FCC +ROM:2FCC ; =============== S U B R O U T I N E ======================================= +ROM:2FCC +ROM:2FCC +ROM:2FCC ROM_2FCC: ; CODE XREF: ROM_2E66+9↑p +ROM:2FCC ; ROM_436B:ROM_3357↓p ... +ROM:2FCC clr A +ROM:2FCC ; End of function ROM_2FCC +ROM:2FCC +ROM:2FCD +ROM:2FCD ; =============== S U B R O U T I N E ======================================= +ROM:2FCD +ROM:2FCD +ROM:2FCD ROM_2FCD: ; CODE XREF: ROM_436B-1067↓p +ROM:2FCD ; ROM_436B-1057↓p ... +ROM:2FCD mov R7, A +ROM:2FCE lcall ROM_27D4 +ROM:2FCE ; End of function ROM_2FCD +ROM:2FCE +ROM:2FD1 +ROM:2FD1 ; =============== S U B R O U T I N E ======================================= +ROM:2FD1 +ROM:2FD1 +ROM:2FD1 ROM_2FD1: ; CODE XREF: code_426↑j +ROM:2FD1 ; ROM_436B-13D7↑p ... +ROM:2FD1 lcall ROM_3745 +ROM:2FD4 anl FSR_C1, #0x7E +ROM:2FD7 ret +ROM:2FD7 ; End of function ROM_2FD1 +ROM:2FD7 +ROM:2FD8 +ROM:2FD8 ; =============== S U B R O U T I N E ======================================= +ROM:2FD8 +ROM:2FD8 +ROM:2FD8 ROM_2FD8: ; CODE XREF: ROM_281F+11↑p +ROM:2FD8 ; ROM_281F+21↑p ... +ROM:2FD8 mov DPTR, #0xFEBF +ROM:2FDB movx A, @DPTR +ROM:2FDC xrl A, #1 +ROM:2FDE ret +ROM:2FDE ; End of function ROM_2FD8 +ROM:2FDE +ROM:2FDF +ROM:2FDF ; =============== S U B R O U T I N E ======================================= +ROM:2FDF +ROM:2FDF +ROM:2FDF ROM_2FDF: ; CODE XREF: ROM_2916+20C↑p +ROM:2FDF ; ROM_2916+21B↑p ... +ROM:2FDF lcall j_encryption_something_maybe_code_107D +ROM:2FE2 clr A +ROM:2FE3 mov R4, A +ROM:2FE4 mov R5, A +ROM:2FE5 mov R3, #0x30 ; '0' +ROM:2FE7 mov R2, #0x75 ; 'u' +ROM:2FE9 ret +ROM:2FE9 ; End of function ROM_2FDF +ROM:2FE9 +ROM:2FEA +ROM:2FEA ; =============== S U B R O U T I N E ======================================= +ROM:2FEA +ROM:2FEA +ROM:2FEA ROM_2FEA: ; CODE XREF: ROM_4816-220C↑p +ROM:2FEA ; ROM_2916+2FF↑p ... +ROM:2FEA clr A +ROM:2FEB mov R7, #0x60 ; '`' +ROM:2FED mov R6, #0xEA +ROM:2FEF mov R5, A +ROM:2FF0 ret +ROM:2FF0 ; End of function ROM_2FEA +ROM:2FF0 +ROM:2FF0 ; --------------------------------------------------------------------------- +ROM:2FF1 .byte 0xEF +ROM:2FF2 .byte 0x60 ; ` +ROM:2FF3 .byte 0xA +ROM:2FF4 .byte 0x7F ;  +ROM:2FF5 .byte 0x67 ; g +ROM:2FF6 .byte 0x7E ; ~ +ROM:2FF7 .byte 0x45 ; E +ROM:2FF8 .byte 0x7D ; } +ROM:2FF9 .byte 0xE +ROM:2FFA .byte 0x7C ; | +ROM:2FFB .byte 0xDA +ROM:2FFC .byte 0x80 +ROM:2FFD .byte 5 +ROM:2FFE .byte 0xE4 +ROM:2FFF .byte 0xFF +ROM:3000 .byte 0xFE +ROM:3001 .byte 0xFD +ROM:3002 .byte 0xFC +ROM:3003 .byte 0x90 +ROM:3004 .byte 0xFF +ROM:3005 .byte 0xE0 +ROM:3006 .byte 2 +ROM:3007 .byte 0xB +ROM:3008 .byte 0xE2 +ROM:3009 +ROM:3009 ; =============== S U B R O U T I N E ======================================= +ROM:3009 +ROM:3009 +ROM:3009 ROM_3009: ; CODE XREF: ROM_2E9D+36↑p +ROM:3009 mov A, R7 +ROM:300A xrl A, #1 +ROM:300C jnz ROM_3033 +ROM:300E mov DPTR, #0xFFE6 +ROM:3011 movx A, @DPTR +ROM:3012 clr C +ROM:3013 subb A, #0xFF +ROM:3015 mov A, #0x80 +ROM:3017 subb A, #0x80 +ROM:3019 jnc ROM_301E +ROM:301B movx A, @DPTR +ROM:301C inc A +ROM:301D movx @DPTR, A +ROM:301E +ROM:301E ROM_301E: ; CODE XREF: ROM_3009+10↑j +ROM:301E acall ROM_3087 +ROM:3020 lcall load_4_bytes_R0_R1_R2_R3 +ROM:3023 clr C +ROM:3024 lcall code_B1C +ROM:3027 jnz ROM_3074 +ROM:3029 mov DPTR, #0xFFE6 +ROM:302C movx @DPTR, A +ROM:302D mov DPTR, #0xFFE8 +ROM:3030 movx @DPTR, A +ROM:3031 sjmp ROM_3074 +ROM:3033 ; --------------------------------------------------------------------------- +ROM:3033 +ROM:3033 ROM_3033: ; CODE XREF: ROM_3009+3↑j +ROM:3033 mov DPTR, #0xFFE6 +ROM:3036 clr A +ROM:3037 acall ROM_3093 +ROM:3039 lcall load_4_bytes_R0_R1_R2_R3 +ROM:303C clr C +ROM:303D lcall code_B1C +ROM:3040 jz ROM_3065 +ROM:3042 acall ROM_3087 +ROM:3044 acall ROM_307F +ROM:3046 lcall code_B1C +ROM:3049 jz ROM_3065 +ROM:304B clr A +ROM:304C mov R7, A +ROM:304D mov R6, A +ROM:304E mov R5, A +ROM:304F mov R4, A +ROM:3050 mov DPTR, #0xFFE0 +ROM:3053 acall ROM_307F +ROM:3055 lcall code_B1C +ROM:3058 jz ROM_3065 +ROM:305A mov DPTR, #0xFFE7 +ROM:305D mov A, #1 +ROM:305F movx @DPTR, A +ROM:3060 inc DPTR +ROM:3061 clr A +ROM:3062 movx @DPTR, A +ROM:3063 sjmp ROM_3074 +ROM:3065 ; --------------------------------------------------------------------------- +ROM:3065 +ROM:3065 ROM_3065: ; CODE XREF: ROM_3009+37↑j +ROM:3065 ; ROM_3009+40↑j ... +ROM:3065 mov DPTR, #0xFFE7 +ROM:3068 movx A, @DPTR +ROM:3069 inc A +ROM:306A movx @DPTR, A +ROM:306B inc DPTR +ROM:306C movx A, @DPTR +ROM:306D mov DPTR, #0xFEAC +ROM:3070 movx @DPTR, A +ROM:3071 mov R7, #1 +ROM:3073 ret +ROM:3074 ; --------------------------------------------------------------------------- +ROM:3074 +ROM:3074 ROM_3074: ; CODE XREF: ROM_3009+1E↑j +ROM:3074 ; ROM_3009+28↑j ... +ROM:3074 mov DPTR, #0xFFE8 +ROM:3077 movx A, @DPTR +ROM:3078 mov DPTR, #0xFEAC +ROM:307B movx @DPTR, A +ROM:307C mov R7, #0 +ROM:307E ret +ROM:307E ; End of function ROM_3009 +ROM:307E +ROM:307F +ROM:307F ; =============== S U B R O U T I N E ======================================= +ROM:307F +ROM:307F +ROM:307F ROM_307F: ; CODE XREF: ROM_3009+3B↑p +ROM:307F ; ROM_3009+4A↑p +ROM:307F movx A, @DPTR +ROM:3080 mov R0, A +ROM:3081 inc DPTR +ROM:3082 inc DPTR +ROM:3083 inc DPTR +ROM:3084 movx A, @DPTR +ROM:3085 clr C +ROM:3086 ret +ROM:3086 ; End of function ROM_307F +ROM:3086 +ROM:3087 +ROM:3087 ; =============== S U B R O U T I N E ======================================= +ROM:3087 +ROM:3087 +ROM:3087 ROM_3087: ; CODE XREF: ROM_281F:ROM_2865↑p +ROM:3087 ; ROM_3009:ROM_301E↑p ... +ROM:3087 mov R7, #0x67 ; 'g' +ROM:3089 mov R6, #0x45 ; 'E' +ROM:308B mov R5, #0xE +ROM:308D mov R4, #0xDA +ROM:308F mov DPTR, #0xFFE0 +ROM:3092 ret +ROM:3092 ; End of function ROM_3087 +ROM:3092 +ROM:3093 +ROM:3093 ; =============== S U B R O U T I N E ======================================= +ROM:3093 +ROM:3093 +ROM:3093 ROM_3093: ; CODE XREF: ROM_281F+2A↑p +ROM:3093 ; ROM_3009+2E↑p +ROM:3093 movx @DPTR, A +ROM:3093 ; End of function ROM_3093 +ROM:3093 +ROM:3094 +ROM:3094 ; =============== S U B R O U T I N E ======================================= +ROM:3094 +ROM:3094 +ROM:3094 ROM_3094: ; CODE XREF: ROM_281F:ROM_28CF↑p +ROM:3094 mov R7, #0xAB +ROM:3096 mov R6, #0x89 +ROM:3098 mov R5, #0xAF +ROM:309A mov R4, #0x1E +ROM:309C mov DPTR, #0xFFE0 +ROM:309F ret +ROM:309F ; End of function ROM_3094 +ROM:309F +ROM:30A0 +ROM:30A0 ; =============== S U B R O U T I N E ======================================= +ROM:30A0 +ROM:30A0 +ROM:30A0 ROM_30A0: ; CODE XREF: ROM_D83E↓p +ROM:30A0 clr A +ROM:30A1 mov DPTR, #0xF830 +ROM:30A4 movx @DPTR, A +ROM:30A5 mov R7, #1 +ROM:30A7 lcall ROM_27D4 +ROM:30AA mov R7, #0xB +ROM:30AC lcall ROM_668A +ROM:30AF lcall unknown_registers_ROM_9F8D +ROM:30B2 acall ROM_3742 +ROM:30B4 mov R7, #0x64 ; 'd' +ROM:30B6 acall magic_ROM_35F3 +ROM:30B8 acall SetupWatchdog +ROM:30BA clr A +ROM:30BB mov DPTR, #0xFDC5 +ROM:30BE movx @DPTR, A +ROM:30BF +ROM:30BF ROM_30BF: ; CODE XREF: ROM_30A0+2D↓j +ROM:30BF mov DPTR, #0xFDC5 +ROM:30C2 movx A, @DPTR +ROM:30C3 jnz ROM_30D5 +ROM:30C5 lcall ROM_7AB3 +ROM:30C8 mov DPTR, #0xF830 +ROM:30CB mov A, R7 +ROM:30CC movx @DPTR, A +ROM:30CD jz ROM_30BF +ROM:30CF mov DPTR, #0xFDC5 +ROM:30D2 mov A, #1 +ROM:30D4 movx @DPTR, A +ROM:30D5 +ROM:30D5 ROM_30D5: ; CODE XREF: ROM_30A0+23↑j +ROM:30D5 acall SetupWatchdog +ROM:30D7 acall ROM_3745 +ROM:30D9 anl FSR_C1, #0x7E +ROM:30DC clr A +ROM:30DD mov R7, A +ROM:30DE lcall ROM_27D4 +ROM:30E1 mov DPTR, #0xF830 +ROM:30E4 movx A, @DPTR +ROM:30E5 mov R7, A +ROM:30E6 ret +ROM:30E6 ; End of function ROM_30A0 +ROM:30E6 +ROM:30E7 +ROM:30E7 ; =============== S U B R O U T I N E ======================================= +ROM:30E7 +ROM:30E7 +ROM:30E7 ROM_30E7: ; CODE XREF: ROM_62A4+6↓p +ROM:30E7 ; ROM_6849+5↓p +ROM:30E7 inc DPTR +ROM:30E8 movx @DPTR, A +ROM:30E9 inc DPTR +ROM:30EA movx @DPTR, A +ROM:30EA ; End of function ROM_30E7 +ROM:30EA +ROM:30EB +ROM:30EB ; =============== S U B R O U T I N E ======================================= +ROM:30EB +ROM:30EB +ROM:30EB SetupWatchdog: ; CODE XREF: code_1F13+2B↑p +ROM:30EB ; ROM_30A0+18↑p ... +ROM:30EB ConfigPage = FSR_FF +ROM:30EB lcall EnableWatchdog +ROM:30EE lcall PrepareWatchdog +ROM:30F1 mov ConfigPage, R7 ; reset config page +ROM:30F3 ret +ROM:30F3 ; End of function SetupWatchdog +ROM:30F3 +ROM:30F4 ; --------------------------------------------------------------------------- +ROM:30F4 ; START OF FUNCTION CHUNK FOR ROM_67A3 +ROM:30F4 ; ADDITIONAL PARENT FUNCTION ROM_6FF1 +ROM:30F4 +ROM:30F4 ROM_30F4: ; CODE XREF: ROM_67A3+23↓j +ROM:30F4 ; ROM_6FF1+38↓j +ROM:30F4 mov DPTR, #0xF88B +ROM:30F7 lcall save_4_bytes_R4_R7 +ROM:30FA mov DPTR, #0xF88F +ROM:30FD lcall Save_3_bytes_R3_R2_R1 +ROM:3100 clr A +ROM:3101 mov R7, A +ROM:3102 mov R6, A +ROM:3103 mov R5, A +ROM:3104 mov R4, A +ROM:3105 acall ROM_37CB +ROM:3107 mov DPTR, #0xF892 +ROM:310A movx A, @DPTR +ROM:310B mov R6, A +ROM:310C inc DPTR +ROM:310D movx A, @DPTR +ROM:310E mov R7, A +ROM:310F mov DPTR, #0xF89E +ROM:3112 mov A, R6 +ROM:3113 movx @DPTR, A +ROM:3114 inc DPTR +ROM:3115 mov A, R7 +ROM:3116 movx @DPTR, A +ROM:3117 mov A, R6 +ROM:3118 mov R7, A +ROM:3119 mov R6, #0 +ROM:311B clr A +ROM:311C mov R4, A +ROM:311D mov R5, A +ROM:311E mov DPTR, #0xF894 +ROM:3121 lcall save_4_bytes_R4_R7 +ROM:3124 +ROM:3124 ROM_3124: ; CODE XREF: ROM_67A3-3531↓j +ROM:3124 mov DPTR, #0xF88B +ROM:3127 lcall load_4_bytes_R4_R5_R6_A +ROM:312A mov R7, A +ROM:312B mov A, R7 +ROM:312C jnz ROM_3130 +ROM:312E ajmp ROM_31C7 +ROM:3130 ; --------------------------------------------------------------------------- +ROM:3130 +ROM:3130 ROM_3130: ; CODE XREF: ROM_67A3-3677↑j +ROM:3130 clr C +ROM:3131 clr A +ROM:3132 subb A, R7 +ROM:3133 mov R7, A +ROM:3134 mov A, #1 +ROM:3136 subb A, #0 +ROM:3138 mov R6, A +ROM:3139 mov DPTR, #0xF89C +ROM:313C movx @DPTR, A +ROM:313D inc DPTR +ROM:313E mov A, R7 +ROM:313F movx @DPTR, A +ROM:3140 setb C +ROM:3141 mov DPTR, #0xF89F +ROM:3144 movx A, @DPTR +ROM:3145 subb A, R7 +ROM:3146 mov DPTR, #0xF89E +ROM:3149 movx A, @DPTR +ROM:314A subb A, R6 +ROM:314B jc ROM_3187 +ROM:314D acall ROM_364D +ROM:314F lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:3152 mov R7, A +ROM:3153 mov DPTR, #0xF88F +ROM:3156 acall ROM_37C3 +ROM:3158 acall ROM_3787 +ROM:315A acall ROM_365E +ROM:315C lcall load_4_bytes_R4_R5_R6_A +ROM:315F mov R7, A +ROM:3160 acall eeprom_related_ROM_3605 +ROM:3162 mov DPTR, #0xF88B +ROM:3165 lcall load_4_bytes_R0_R1_R2_R3 +ROM:3168 mov DPTR, #0xF89C +ROM:316B acall ROM_3297 +ROM:316D acall ROM_3275 +ROM:316F lcall ROM_2F7B +ROM:3172 acall ROM_3654 +ROM:3174 lcall load_4_bytes_R0_R1_R2_R3 +ROM:3177 inc DPTR +ROM:3178 acall ROM_3297 +ROM:317A acall ROM_3275 +ROM:317C lcall ROM_2F7B +ROM:317F acall ROM_374F +ROM:3181 mov DPTR, #0xF89F +ROM:3184 movx A, @DPTR +ROM:3185 ajmp ROM_3257 +ROM:3187 ; --------------------------------------------------------------------------- +ROM:3187 +ROM:3187 ROM_3187: ; CODE XREF: ROM_67A3-3658↑j +ROM:3187 acall ROM_364D +ROM:3189 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:318C mov R7, A +ROM:318D mov DPTR, #0xF88F +ROM:3190 acall ROM_37C3 +ROM:3192 acall ROM_3787 +ROM:3194 mov DPTR, #0xF89E +ROM:3197 acall ROM_3661 +ROM:3199 lcall load_4_bytes_R4_R5_R6_A +ROM:319C mov R7, A +ROM:319D acall eeprom_related_ROM_3605 +ROM:319F mov DPTR, #0xF88B +ROM:31A2 lcall load_4_bytes_R0_R1_R2_R3 +ROM:31A5 mov DPTR, #0xF89E +ROM:31A8 acall ROM_3297 +ROM:31AA acall ROM_3275 +ROM:31AC lcall ROM_2F7B +ROM:31AF acall ROM_3654 +ROM:31B1 lcall load_4_bytes_R0_R1_R2_R3 +ROM:31B4 mov DPTR, #0xF89E +ROM:31B7 acall ROM_3297 +ROM:31B9 acall ROM_3275 +ROM:31BB lcall ROM_2F7B +ROM:31BE acall ROM_37CB +ROM:31C0 mov DPTR, #0xF89E +ROM:31C3 acall ROM_3758 +ROM:31C5 ajmp ROM_3257 +ROM:31C7 ; --------------------------------------------------------------------------- +ROM:31C7 +ROM:31C7 ROM_31C7: ; CODE XREF: ROM_67A3-3675↑j +ROM:31C7 setb C +ROM:31C8 mov DPTR, #0xF89F +ROM:31CB movx A, @DPTR +ROM:31CC subb A, #0 +ROM:31CE mov DPTR, #0xF89E +ROM:31D1 movx A, @DPTR +ROM:31D2 subb A, #1 +ROM:31D4 jc ROM_3219 +ROM:31D6 mov DPTR, #0xF89C +ROM:31D9 mov A, #1 +ROM:31DB movx @DPTR, A +ROM:31DC inc DPTR +ROM:31DD clr A +ROM:31DE movx @DPTR, A +ROM:31DF acall ROM_364D +ROM:31E1 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:31E4 mov R7, A +ROM:31E5 mov DPTR, #0xF88F +ROM:31E8 acall ROM_37C3 +ROM:31EA acall ROM_3787 +ROM:31EC acall ROM_365E +ROM:31EE lcall load_4_bytes_R4_R5_R6_A +ROM:31F1 mov R7, A +ROM:31F2 acall eeprom_related_ROM_3605 +ROM:31F4 mov DPTR, #0xF88B +ROM:31F7 lcall load_4_bytes_R0_R1_R2_R3 +ROM:31FA mov DPTR, #0xF89C +ROM:31FD acall ROM_3297 +ROM:31FF acall ROM_3275 +ROM:3201 lcall ROM_2F7B +ROM:3204 acall ROM_3654 +ROM:3206 lcall load_4_bytes_R0_R1_R2_R3 +ROM:3209 inc DPTR +ROM:320A acall ROM_3297 +ROM:320C acall ROM_3275 +ROM:320E lcall ROM_2F7B +ROM:3211 acall ROM_374F +ROM:3213 mov DPTR, #0xF89F +ROM:3216 movx A, @DPTR +ROM:3217 sjmp ROM_3257 +ROM:3219 ; --------------------------------------------------------------------------- +ROM:3219 +ROM:3219 ROM_3219: ; CODE XREF: ROM_67A3-35CF↑j +ROM:3219 acall ROM_364D +ROM:321B lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:321E mov R7, A +ROM:321F mov DPTR, #0xF88F +ROM:3222 acall ROM_37C3 +ROM:3224 acall ROM_3787 +ROM:3226 mov DPTR, #0xF89E +ROM:3229 acall ROM_3661 +ROM:322B lcall load_4_bytes_R4_R5_R6_A +ROM:322E mov R7, A +ROM:322F acall eeprom_related_ROM_3605 +ROM:3231 mov DPTR, #0xF88B +ROM:3234 lcall load_4_bytes_R0_R1_R2_R3 +ROM:3237 mov DPTR, #0xF89E +ROM:323A acall ROM_3297 +ROM:323C acall ROM_3275 +ROM:323E lcall ROM_2F7B +ROM:3241 acall ROM_3654 +ROM:3243 lcall load_4_bytes_R0_R1_R2_R3 +ROM:3246 mov DPTR, #0xF89E +ROM:3249 acall ROM_3297 +ROM:324B acall ROM_3275 +ROM:324D lcall ROM_2F7B +ROM:3250 acall ROM_37CB +ROM:3252 mov DPTR, #0xF89E +ROM:3255 acall ROM_3758 +ROM:3257 +ROM:3257 ROM_3257: ; CODE XREF: ROM_67A3-361E↑j +ROM:3257 ; ROM_67A3-35DE↑j ... +ROM:3257 subb A, R7 +ROM:3258 movx @DPTR, A +ROM:3259 mov DPTR, #0xF89E +ROM:325C movx A, @DPTR +ROM:325D subb A, R6 +ROM:325E movx @DPTR, A +ROM:325F acall SetupWatchdog +ROM:3261 +ROM:3261 ROM_3261: ; CODE XREF: ROM_67A3-353E↓j +ROM:3261 lcall ROM_A8A3 +ROM:3264 mov A, R7 +ROM:3265 jb ACC0, ROM_3261 ; Accumulator +ROM:3268 mov DPTR, #0xF89E +ROM:326B movx A, @DPTR +ROM:326C jnz ROM_3270 +ROM:326E inc DPTR +ROM:326F movx A, @DPTR +ROM:3270 +ROM:3270 ROM_3270: ; CODE XREF: ROM_67A3-3537↑j +ROM:3270 jz ROM_3274 +ROM:3272 ajmp ROM_3124 +ROM:3274 ; --------------------------------------------------------------------------- +ROM:3274 +ROM:3274 ROM_3274: ; CODE XREF: ROM_67A3:ROM_3270↑j +ROM:3274 ret +ROM:3274 ; END OF FUNCTION CHUNK FOR ROM_67A3 +ROM:3275 +ROM:3275 ; =============== S U B R O U T I N E ======================================= +ROM:3275 +ROM:3275 +ROM:3275 ROM_3275: ; CODE XREF: ROM_67A3-3636↑p +ROM:3275 ; ROM_67A3-3629↑p ... +ROM:3275 mov R5, A +ROM:3276 mov A, R3 +ROM:3277 add A, R7 +ROM:3278 mov R7, A +ROM:3279 mov A, R2 +ROM:327A addc A, R6 +ROM:327B ret +ROM:327B ; End of function ROM_3275 +ROM:327B +ROM:327C +ROM:327C ; =============== S U B R O U T I N E ======================================= +ROM:327C +ROM:327C +ROM:327C ROM_327C: ; CODE XREF: ROM_436B:ROM_3322↓p +ROM:327C ; ROM_436B:ROM_3367↓p +ROM:327C clr A +ROM:327D mov DPTR, #0xFEBD +ROM:3280 movx @DPTR, A +ROM:3281 inc DPTR +ROM:3282 movx @DPTR, A +ROM:3283 mov R5, #5 +ROM:3285 mov R7, #1 +ROM:3287 acall ROM_35EC +ROM:3289 mov DPTR, #0xF4A4 +ROM:328C movx A, @DPTR +ROM:328D mov R7, A +ROM:328E lcall ROM_702C +ROM:328E ; End of function ROM_327C +ROM:328E +ROM:3291 +ROM:3291 ; =============== S U B R O U T I N E ======================================= +ROM:3291 +ROM:3291 +ROM:3291 ROM_3291: ; CODE XREF: ROM_436B-F6E↓p +ROM:3291 ; ROM_436B-F02↓p ... +ROM:3291 lcall ROM_2FD1 +ROM:3294 mov DPTR, #0xFEBD +ROM:3294 ; End of function ROM_3291 +ROM:3294 +ROM:3297 +ROM:3297 ; =============== S U B R O U T I N E ======================================= +ROM:3297 +ROM:3297 +ROM:3297 ROM_3297: ; CODE XREF: ROM_67A3-3638↑p +ROM:3297 ; ROM_67A3-362B↑p ... +ROM:3297 movx A, @DPTR +ROM:3298 mov R6, A +ROM:3299 inc DPTR +ROM:329A movx A, @DPTR +ROM:329B mov R7, A +ROM:329C clr A +ROM:329D mov R4, A +ROM:329E ret +ROM:329E ; End of function ROM_3297 +ROM:329E +ROM:329F ; --------------------------------------------------------------------------- +ROM:329F ; START OF FUNCTION CHUNK FOR ROM_436B +ROM:329F +ROM:329F ROM_329F: ; CODE XREF: ROM_436B+E2↓j +ROM:329F mov DPTR, #0xF830 +ROM:32A2 mov A, R6 +ROM:32A3 movx @DPTR, A +ROM:32A4 inc DPTR +ROM:32A5 mov A, R7 +ROM:32A6 movx @DPTR, A +ROM:32A7 mov R3, RAM_5 +ROM:32A9 clr A +ROM:32AA mov R7, A +ROM:32AB mov R6, A +ROM:32AC mov R5, A +ROM:32AD mov R4, A +ROM:32AE lcall ROM_418D +ROM:32B1 clr A +ROM:32B2 mov DPTR, #0xF840 +ROM:32B5 movx @DPTR, A +ROM:32B6 lcall ROM_4654 +ROM:32B9 mov R7, A +ROM:32BA mov R5, RAM_3 +ROM:32BC lcall ROM_62A4 +ROM:32BF mov DPTR, #0xF832 +ROM:32C2 mov A, R7 +ROM:32C3 movx @DPTR, A +ROM:32C4 mov R5, A +ROM:32C5 mov DPTR, #0xF830 +ROM:32C8 movx A, @DPTR +ROM:32C9 mov R2, A +ROM:32CA lcall ROM_D82B +ROM:32CD inc DPTR +ROM:32CE movx A, @DPTR +ROM:32CF mov R6, A +ROM:32D0 mov DP0L, R3 ; Data Pointer Low Byte +ROM:32D2 mov DP0H, R2 ; Data Pointer High Byte +ROM:32D4 inc DPTR +ROM:32D5 inc DPTR +ROM:32D6 movx A, @DPTR +ROM:32D7 mov R3, A +ROM:32D8 mov A, R3 +ROM:32D9 mov R7, A +ROM:32DA mov DPTR, #0xF834 +ROM:32DD mov A, R6 +ROM:32DE movx @DPTR, A +ROM:32DF inc DPTR +ROM:32E0 mov A, R7 +ROM:32E1 movx @DPTR, A +ROM:32E2 mov DPTR, #0xF830 +ROM:32E5 lcall ROM_D82B +ROM:32E8 inc DPTR +ROM:32E9 inc DPTR +ROM:32EA inc DPTR +ROM:32EB movx A, @DPTR +ROM:32EC mov R6, A +ROM:32ED mov A, R3 +ROM:32EE lcall ROM_5F46 +ROM:32F1 mov R3, A +ROM:32F2 mov A, R3 +ROM:32F3 mov R7, A +ROM:32F4 lcall ROM_D9C1 +ROM:32F7 mov A, R5 +ROM:32F8 mov R7, A +ROM:32F9 xrl A, #1 +ROM:32FB jnz ROM_32FF +ROM:32FD ajmp ROM_3587 +ROM:32FF ; --------------------------------------------------------------------------- +ROM:32FF +ROM:32FF ROM_32FF: ; CODE XREF: ROM_436B-1070↑j +ROM:32FF mov A, R7 +ROM:3300 xrl A, #0x15 +ROM:3302 jnz ROM_330C +ROM:3304 lcall ROM_2FCD +ROM:3307 lcall ROM_A1ED +ROM:330A sjmp ROM_3338 +ROM:330C ; --------------------------------------------------------------------------- +ROM:330C +ROM:330C ROM_330C: ; CODE XREF: ROM_436B-1069↑j +ROM:330C mov DPTR, #0xF832 +ROM:330F movx A, @DPTR +ROM:3310 xrl A, #2 +ROM:3312 jnz ROM_3341 +ROM:3314 lcall ROM_2FCD +ROM:3317 lcall ROM_A1ED +ROM:331A lcall ROM_7165 +ROM:331D jnz ROM_3322 +ROM:331F lcall ROM_D9D3 +ROM:3322 +ROM:3322 ROM_3322: ; CODE XREF: ROM_436B-104E↑j +ROM:3322 acall ROM_327C +ROM:3324 mov R5, A +ROM:3325 acall ROM_3588 +ROM:3327 clr A +ROM:3328 mov DPTR, #0xF563 +ROM:332B movx @DPTR, A +ROM:332C inc DPTR +ROM:332D movx @DPTR, A +ROM:332E lcall ROM_D59C +ROM:3331 jnz ROM_3336 +ROM:3333 inc DPTR +ROM:3334 movx A, @DPTR +ROM:3335 xrl A, R7 +ROM:3336 +ROM:3336 ROM_3336: ; CODE XREF: ROM_436B-103A↑j +ROM:3336 jz ROM_3341 +ROM:3338 +ROM:3338 ROM_3338: ; CODE XREF: ROM_436B-1061↑j +ROM:3338 mov DPTR, #0xFDC6 +ROM:333B mov A, #0xB +ROM:333D movx @DPTR, A +ROM:333E ljmp ROM_2916 +ROM:3341 ; --------------------------------------------------------------------------- +ROM:3341 +ROM:3341 ROM_3341: ; CODE XREF: ROM_436B-1059↑j +ROM:3341 ; ROM_436B:ROM_3336↑j +ROM:3341 lcall ROM_D59C +ROM:3344 jnz ROM_3349 +ROM:3346 inc DPTR +ROM:3347 movx A, @DPTR +ROM:3348 xrl A, R7 +ROM:3349 +ROM:3349 ROM_3349: ; CODE XREF: ROM_436B-1027↑j +ROM:3349 jz ROM_334D +ROM:334B ajmp ROM_3584 +ROM:334D ; --------------------------------------------------------------------------- +ROM:334D +ROM:334D ROM_334D: ; CODE XREF: ROM_436B:ROM_3349↑j +ROM:334D mov DPTR, #0xF832 +ROM:3350 movx A, @DPTR +ROM:3351 xrl A, #2 +ROM:3353 jnz ROM_3357 +ROM:3355 ajmp ROM_3584 +ROM:3357 ; --------------------------------------------------------------------------- +ROM:3357 +ROM:3357 ROM_3357: ; CODE XREF: ROM_436B-1018↑j +ROM:3357 lcall ROM_2FCC +ROM:335A acall SetupWatchdog +ROM:335C lcall code_523 +ROM:335F lcall ROM_7165 +ROM:3362 jnz ROM_3367 +ROM:3364 lcall ROM_D9D3 +ROM:3367 +ROM:3367 ROM_3367: ; CODE XREF: ROM_436B-1009↑j +ROM:3367 acall ROM_327C +ROM:3369 mov R5, A +ROM:336A acall ROM_3588 +ROM:336C mov DPTR, #0xF4A4 +ROM:336F movx A, @DPTR +ROM:3370 mov B, #0x15 ; B Register +ROM:3373 mul AB +ROM:3374 add A, #0xAB +ROM:3376 mov DP0L, A ; Data Pointer Low Byte +ROM:3378 clr A +ROM:3379 addc A, #0xF4 +ROM:337B lcall ROM_9380 +ROM:337E mov DPTR, #0xF49D +ROM:3381 movx A, @DPTR +ROM:3382 xrl A, R6 +ROM:3383 jnz ROM_3388 +ROM:3385 inc DPTR +ROM:3386 movx A, @DPTR +ROM:3387 xrl A, R7 +ROM:3388 +ROM:3388 ROM_3388: ; CODE XREF: ROM_436B-FE8↑j +ROM:3388 jz ROM_33BE +ROM:338A lcall ROM_D40B +ROM:338D lcall code_1E51 +ROM:3390 mov DPTR, #0xF838 +ROM:3393 lcall load_4_bytes_R4_R5_R6_A +ROM:3396 mov R7, A +ROM:3397 lcall code_1F12 +ROM:339A mov DPTR, #0xF838 +ROM:339D lcall load_4_bytes_R4_R5_R6_A +ROM:33A0 lcall ROM_D8ED +ROM:33A3 acall ROM_373B +ROM:33A5 lcall code_1F11 +ROM:33A8 mov DPTR, #0xF838 +ROM:33AB lcall load_4_bytes_R4_R5_R6_A +ROM:33AE lcall ROM_D8F4 +ROM:33B1 acall ROM_373B +ROM:33B3 lcall code_1F11 +ROM:33B6 mov DPTR, #0xF833 +ROM:33B9 mov A, #0x19 +ROM:33BB movx @DPTR, A +ROM:33BC sjmp ROM_3402 +ROM:33BE ; --------------------------------------------------------------------------- +ROM:33BE +ROM:33BE ROM_33BE: ; CODE XREF: ROM_436B:ROM_3388↑j +ROM:33BE mov DPTR, #0xF4A4 +ROM:33C1 movx A, @DPTR +ROM:33C2 lcall ROM_79B9 +ROM:33C5 mov A, #1 +ROM:33C7 movx @DPTR, A +ROM:33C8 mov DPTR, #0xF51D +ROM:33CB lcall load_4_bytes_R4_R5_R6_A +ROM:33CE mov R7, A +ROM:33CF acall ROM_37E3 +ROM:33D1 acall ROM_35E1 +ROM:33D3 lcall ROM_7FDF +ROM:33D6 lcall SetupPinsForEEProm +ROM:33D9 acall ROM_37D1 +ROM:33DB clr A +ROM:33DC addc A, R6 +ROM:33DD lcall code_1F0A +ROM:33E0 acall ROM_37D1 +ROM:33E2 mov A, R6 +ROM:33E3 addc A, #0x10 +ROM:33E5 lcall code_1F0A +ROM:33E8 acall ROM_37D1 +ROM:33EA mov A, R6 +ROM:33EB addc A, #0x20 ; ' ' +ROM:33ED lcall code_1F0A +ROM:33F0 mov DPTR, #0xF4A4 +ROM:33F3 movx A, @DPTR +ROM:33F4 mov R7, A +ROM:33F5 lcall ROM_78C8 +ROM:33F8 mov DPTR, #0xF833 +ROM:33FB mov A, R7 +ROM:33FC movx @DPTR, A +ROM:33FD acall ROM_3291 +ROM:33FF mov R5, A +ROM:3400 acall ROM_3588 +ROM:3402 +ROM:3402 ROM_3402: ; CODE XREF: ROM_436B-FAF↑j +ROM:3402 lcall ROM_628F +ROM:3405 mov DPTR, #0xF833 +ROM:3408 movx A, @DPTR +ROM:3409 jz ROM_340D +ROM:340B ajmp ROM_3575 +ROM:340D ; --------------------------------------------------------------------------- +ROM:340D +ROM:340D ROM_340D: ; CODE XREF: ROM_436B-F62↑j +ROM:340D lcall ROM_5FCC +ROM:3410 jnz ROM_3475 +ROM:3412 mov DPTR, #0xF565 +ROM:3415 movx A, @DPTR +ROM:3416 jnz ROM_3475 +ROM:3418 mov DPTR, #0xF4A4 +ROM:341B movx A, @DPTR +ROM:341C jnz ROM_3475 +ROM:341E mov DPTR, #0xF566 +ROM:3421 movx A, @DPTR +ROM:3422 jnz ROM_3426 +ROM:3424 inc DPTR +ROM:3425 movx A, @DPTR +ROM:3426 +ROM:3426 ROM_3426: ; CODE XREF: ROM_436B-F49↑j +ROM:3426 jz ROM_3475 +ROM:3428 acall ROM_35E1 +ROM:342A mov DPTR, #0xF850 +ROM:342D lcall ROM_9D42 +ROM:3430 mov DPTR, #0xF566 +ROM:3433 movx A, @DPTR +ROM:3434 mov R7, A +ROM:3435 inc DPTR +ROM:3436 movx A, @DPTR +ROM:3437 mov DPTR, #0xF853 +ROM:343A xch A, R7 +ROM:343B movx @DPTR, A +ROM:343C inc DPTR +ROM:343D mov A, R7 +ROM:343E lcall ROM_79C7 +ROM:3441 mov A, #6 +ROM:3443 movx @DPTR, A +ROM:3444 inc DPTR +ROM:3445 mov A, #1 +ROM:3447 movx @DPTR, A +ROM:3448 mov R3, A +ROM:3449 mov R2, #0xF5 +ROM:344B mov R1, #0x6A ; 'j' +ROM:344D lcall ROM_39E2 +ROM:3450 lcall ROM_AA35 +ROM:3453 lcall ROM_5FD3 +ROM:3456 mov DPTR, #0xF568 +ROM:3459 movx A, @DPTR +ROM:345A mov R4, A +ROM:345B inc DPTR +ROM:345C movx A, @DPTR +ROM:345D mov R5, A +ROM:345E clr A +ROM:345F mov DPTR, #0xF846 +ROM:3462 movx @DPTR, A +ROM:3463 lcall ROM_8BB8 +ROM:3466 lcall something_gpio_ROM_AAAA +ROM:3469 acall ROM_3291 +ROM:346B mov R5, A +ROM:346C acall ROM_3588 +ROM:346E clr A +ROM:346F mov DPTR, #0xFEBD +ROM:3472 movx @DPTR, A +ROM:3473 inc DPTR +ROM:3474 movx @DPTR, A +ROM:3475 +ROM:3475 ROM_3475: ; CODE XREF: ROM_436B-F5B↑j +ROM:3475 ; ROM_436B-F55↑j ... +ROM:3475 mov DPTR, #0xF49A +ROM:3478 lcall ROM_A77E +ROM:347B jc ROM_34C4 +ROM:347D inc DPTR +ROM:347E movx A, @DPTR +ROM:347F xrl A, #2 +ROM:3481 jnz ROM_34C4 +ROM:3483 mov DPTR, #0xF4A4 +ROM:3486 movx A, @DPTR +ROM:3487 inc A +ROM:3488 mov R7, A +ROM:3489 mov DPTR, #0xF53B +ROM:348C movx A, @DPTR +ROM:348D cjne A, RAM_7, ROM_3492 +ROM:3490 sjmp ROM_34B5 +ROM:3492 ; --------------------------------------------------------------------------- +ROM:3492 +ROM:3492 ROM_3492: ; CODE XREF: ROM_436B-EDE↑j +ROM:3492 mov DPTR, #0xF53B +ROM:3495 movx A, @DPTR +ROM:3496 jnz ROM_34BD +ROM:3498 mov DPTR, #0xF499 +ROM:349B movx A, @DPTR +ROM:349C mov R7, A +ROM:349D dec A +ROM:349E mov R6, A +ROM:349F mov DPTR, #0xF4A4 +ROM:34A2 movx A, @DPTR +ROM:34A3 mov R5, A +ROM:34A4 cjne A, RAM_6, ROM_34BD +ROM:34A7 mov A, R5 +ROM:34A8 lcall ROM_79B9 +ROM:34AB movx A, @DPTR +ROM:34AC xrl A, #1 +ROM:34AE jnz ROM_34BD +ROM:34B0 mov DPTR, #0xF53B +ROM:34B3 mov A, R7 +ROM:34B4 movx @DPTR, A +ROM:34B5 +ROM:34B5 ROM_34B5: ; CODE XREF: ROM_436B-EDB↑j +ROM:34B5 mov R7, #1 +ROM:34B7 lcall ROM_2153 +ROM:34BA lcall ROM_6FD3 +ROM:34BD +ROM:34BD ROM_34BD: ; CODE XREF: ROM_436B-ED5↑j +ROM:34BD ; ROM_436B-EC7↑j ... +ROM:34BD clr A +ROM:34BE mov DPTR, #0xF833 +ROM:34C1 movx @DPTR, A +ROM:34C2 sjmp ROM_350C +ROM:34C4 ; --------------------------------------------------------------------------- +ROM:34C4 +ROM:34C4 ROM_34C4: ; CODE XREF: ROM_436B-EF0↑j +ROM:34C4 ; ROM_436B-EEA↑j +ROM:34C4 lcall ROM_803A +ROM:34C7 mov DPTR, #0xF840 +ROM:34CA mov A, R7 +ROM:34CB movx @DPTR, A +ROM:34CC mov DPTR, #0xF49C +ROM:34CF movx A, @DPTR +ROM:34D0 xrl A, #1 +ROM:34D2 jz ROM_34D9 +ROM:34D4 lcall ROM_806B +ROM:34D7 jnz ROM_34FB +ROM:34D9 +ROM:34D9 ROM_34D9: ; CODE XREF: ROM_436B-E99↑j +ROM:34D9 lcall ROM_806B +ROM:34DC jnz ROM_34DF +ROM:34DE movx @DPTR, A +ROM:34DF +ROM:34DF ROM_34DF: ; CODE XREF: ROM_436B-E8F↑j +ROM:34DF mov DPTR, #0xF840 +ROM:34E2 movx A, @DPTR +ROM:34E3 mov R7, A +ROM:34E4 lcall ROM_81E5 +ROM:34E7 jnz ROM_350C +ROM:34E9 mov DPTR, #0xF53B +ROM:34EC lcall ROM_214F +ROM:34EF acall ROM_35E1 +ROM:34F1 lcall ROM_6FD3 +ROM:34F4 acall ROM_3291 +ROM:34F6 mov R5, A +ROM:34F7 acall ROM_3588 +ROM:34F9 sjmp ROM_350C +ROM:34FB ; --------------------------------------------------------------------------- +ROM:34FB +ROM:34FB ROM_34FB: ; CODE XREF: ROM_436B-E94↑j +ROM:34FB mov DPTR, #0xF499 +ROM:34FE lcall ROM_81E4 +ROM:3501 mov DPTR, #0xF833 +ROM:3504 jnz ROM_3509 +ROM:3506 movx @DPTR, A +ROM:3507 sjmp ROM_350C +ROM:3509 ; --------------------------------------------------------------------------- +ROM:3509 +ROM:3509 ROM_3509: ; CODE XREF: ROM_436B-E67↑j +ROM:3509 mov A, #0x32 ; '2' +ROM:350B movx @DPTR, A +ROM:350C +ROM:350C ROM_350C: ; CODE XREF: ROM_436B-EA9↑j +ROM:350C ; ROM_436B-E84↑j ... +ROM:350C acall ROM_35E1 +ROM:350E mov R7, #0 +ROM:3510 mov R6, #0x50 ; 'P' +ROM:3512 dec R5 +ROM:3513 mov R4, #0 +ROM:3515 lcall code_1E51 +ROM:3518 mov DPTR, #0xF838 +ROM:351B lcall load_4_bytes_R4_R5_R6_A +ROM:351E mov R7, A +ROM:351F lcall code_1F12 +ROM:3522 mov DPTR, #0xF838 +ROM:3525 lcall load_4_bytes_R4_R5_R6_A +ROM:3528 lcall ROM_D8ED +ROM:352B acall ROM_373B +ROM:352D lcall code_1F11 +ROM:3530 mov DPTR, #0xF838 +ROM:3533 lcall load_4_bytes_R4_R5_R6_A +ROM:3536 lcall ROM_D8F4 +ROM:3539 acall ROM_373B +ROM:353B mov R4, A +ROM:353C lcall ROM_D94C +ROM:353F acall ROM_3291 +ROM:3541 mov R5, A +ROM:3542 acall ROM_3588 +ROM:3544 lcall ROM_D538 +ROM:3547 mov A, #0xAD +ROM:3549 movx @DPTR, A +ROM:354A mov DPTR, #0xF67C +ROM:354D movx A, @DPTR +ROM:354E xrl A, #1 +ROM:3550 jnz ROM_3558 +ROM:3552 mov DPTR, #0xF833 +ROM:3555 mov A, #0x1B +ROM:3557 movx @DPTR, A +ROM:3558 +ROM:3558 ROM_3558: ; CODE XREF: ROM_436B-E1B↑j +ROM:3558 lcall ROM_D9CA +ROM:355B mov DPTR, #0xF66C +ROM:355E lcall load_4_bytes_R4_R5_R6_A +ROM:3561 mov R7, A +ROM:3562 acall ROM_37E3 +ROM:3564 lcall ROM_28F6 +ROM:3567 lcall ROM_2D85 +ROM:356A clr A +ROM:356B mov R7, #0xE8 +ROM:356D mov R6, #3 +ROM:356F mov R5, A +ROM:3570 mov R4, A +ROM:3571 acall ROM_3588 +ROM:3573 sjmp ROM_357E +ROM:3575 ; --------------------------------------------------------------------------- +ROM:3575 +ROM:3575 ROM_3575: ; CODE XREF: ROM_436B-F60↑j +ROM:3575 lcall ROM_D538 +ROM:3578 mov A, #0xAD +ROM:357A movx @DPTR, A +ROM:357B lcall ROM_D9CA +ROM:357E +ROM:357E ROM_357E: ; CODE XREF: ROM_436B-DF8↑j +ROM:357E lcall ROM_6962 +ROM:3581 ljmp ROM_2E66 +ROM:3584 ; --------------------------------------------------------------------------- +ROM:3584 +ROM:3584 ROM_3584: ; CODE XREF: ROM_436B-1020↑j +ROM:3584 ; ROM_436B-1016↑j +ROM:3584 lcall ROM_2FBA +ROM:3587 +ROM:3587 ROM_3587: ; CODE XREF: ROM_436B-106E↑j +ROM:3587 ret +ROM:3587 ; END OF FUNCTION CHUNK FOR ROM_436B +ROM:3588 +ROM:3588 ; =============== S U B R O U T I N E ======================================= +ROM:3588 +ROM:3588 +ROM:3588 ROM_3588: ; CODE XREF: ROM_436B-1046↑p +ROM:3588 ; ROM_436B-1001↑p ... +ROM:3588 clr A +ROM:3589 mov R3, #0x64 ; 'd' +ROM:358B mov R2, A +ROM:358C mov R1, A +ROM:358D mov R0, A +ROM:358E lcall code_A7C +ROM:3591 acall save_4_bytes_R4_R7_to_0xF85A +ROM:3593 mov DPTR, #0xFB7A +ROM:3596 movx A, @DPTR +ROM:3597 jnz ROM_359B +ROM:3599 inc DPTR +ROM:359A movx A, @DPTR +ROM:359B +ROM:359B ROM_359B: ; CODE XREF: ROM_3588+F↑j +ROM:359B jz ROM_35AD +ROM:359D mov DPTR, #0xF85A +ROM:35A0 lcall ROM_578E +ROM:35A3 mov R7, A +ROM:35A4 lcall ROM_8F1E +ROM:35A7 lcall ROM_47CF +ROM:35AA lcall ROM_8B30 +ROM:35AD +ROM:35AD ROM_35AD: ; CODE XREF: ROM_3588:ROM_359B↑j +ROM:35AD mov DPTR, #0xFB80 +ROM:35B0 lcall load_4_bytes_R0_R1_R2_R3 +ROM:35B3 push RAM_0 +ROM:35B5 push RAM_1 +ROM:35B7 push RAM_2 +ROM:35B9 push RAM_3 +ROM:35BB clr A +ROM:35BC mov R3, #0xA +ROM:35BE mov R2, A +ROM:35BF mov R1, A +ROM:35C0 mov R0, A +ROM:35C1 mov DPTR, #0xF85A +ROM:35C4 lcall load_4_bytes_R4_R5_R6_A +ROM:35C7 mov R7, A +ROM:35C8 lcall code_A7C +ROM:35CB pop RAM_3 +ROM:35CD pop RAM_2 +ROM:35CF pop RAM_1 +ROM:35D1 pop RAM_0 +ROM:35D3 mov A, R3 +ROM:35D4 add A, R7 +ROM:35D5 mov R7, A +ROM:35D6 mov A, R2 +ROM:35D7 addc A, R6 +ROM:35D8 lcall ROM_8F67 +ROM:35DB mov DPTR, #0xFB80 +ROM:35DE ljmp save_4_bytes_R4_R7 +ROM:35DE ; End of function ROM_3588 +ROM:35DE +ROM:35E1 +ROM:35E1 ; =============== S U B R O U T I N E ======================================= +ROM:35E1 +ROM:35E1 +ROM:35E1 ROM_35E1: ; CODE XREF: ROM_436B-F9A↑p +ROM:35E1 ; ROM_436B-F43↑p ... +ROM:35E1 clr A +ROM:35E2 mov DPTR, #0xFEBD +ROM:35E5 movx @DPTR, A +ROM:35E6 inc DPTR +ROM:35E7 movx @DPTR, A +ROM:35E8 mov R5, #5 +ROM:35EA mov R7, #1 +ROM:35EA ; End of function ROM_35E1 +ROM:35EA +ROM:35EC +ROM:35EC ; =============== S U B R O U T I N E ======================================= +ROM:35EC +ROM:35EC +ROM:35EC ROM_35EC: ; CODE XREF: ROM_2FBA+F↑j +ROM:35EC ; ROM_327C+B↑p ... +ROM:35EC mov DPTR, #0xFEC4 +ROM:35EF mov A, R5 +ROM:35F0 movx @DPTR, A +ROM:35F1 acall ROM_3742 +ROM:35F1 ; End of function ROM_35EC +ROM:35F1 +ROM:35F3 +ROM:35F3 ; =============== S U B R O U T I N E ======================================= +ROM:35F3 +ROM:35F3 +ROM:35F3 magic_ROM_35F3: ; CODE XREF: ROM_30A0+16↑p +ROM:35F3 acall ROM_375F +ROM:35F5 anl FSR_C1, #0x7E ; unknown reg, page 4 +ROM:35F8 orl FSR_C1, #0x20 +ROM:35FB orl FSR_A1, #1 +ROM:35FE orl FSR_C3, #1 +ROM:3601 orl FSR_C1, #0x40 +ROM:3604 ret +ROM:3604 ; End of function magic_ROM_35F3 +ROM:3604 +ROM:3605 +ROM:3605 ; =============== S U B R O U T I N E ======================================= +ROM:3605 +ROM:3605 +ROM:3605 eeprom_related_ROM_3605: ; CODE XREF: ROM_67A3-3643↑p +ROM:3605 ; ROM_67A3-3606↑p ... +ROM:3605 lcall ROM_CEBA +ROM:3608 mov DPTR, #0xF8A4 +ROM:360B lcall Save_3_bytes_R3_R2_R1 +ROM:360E lcall EEPROM_SPI_TRANSACTION +ROM:3611 clr P1.1 ; Port 1 +ROM:3613 mov R7, #2 +ROM:3615 acall ROM_3726 +ROM:3617 lcall load_4_bytes_R4_R5_R6_A +ROM:361A lcall ROM_67D5 +ROM:361D acall ROM_3726 +ROM:361F lcall load_4_bytes_R4_R5_R6_A +ROM:3622 lcall ROM_A91B +ROM:3625 acall ROM_3726 +ROM:3627 inc DPTR +ROM:3628 inc DPTR +ROM:3629 inc DPTR +ROM:362A movx A, @DPTR +ROM:362B sjmp ROM_3644 +ROM:362D ; --------------------------------------------------------------------------- +ROM:362D +ROM:362D ROM_362D: ; CODE XREF: eeprom_related_ROM_3605+43↓j +ROM:362D mov DPTR, #0xF8A7 +ROM:3630 mov A, #0xFF +ROM:3632 mov B, A ; B Register +ROM:3634 lcall code_991 +ROM:3637 orl A, B ; B Register +ROM:3639 jz ROM_364A +ROM:363B mov DPTR, #0xF8A4 +ROM:363E lcall ROM_D27D +ROM:3641 lcall code_891 +ROM:3644 +ROM:3644 ROM_3644: ; CODE XREF: eeprom_related_ROM_3605+26↑j +ROM:3644 mov R7, A +ROM:3645 lcall DO_SPI_TRANSACTION_ALT +ROM:3648 sjmp ROM_362D +ROM:364A ; --------------------------------------------------------------------------- +ROM:364A +ROM:364A ROM_364A: ; CODE XREF: eeprom_related_ROM_3605+34↑j +ROM:364A setb P1.1 ; Port 1 +ROM:364C ret +ROM:364C ; End of function eeprom_related_ROM_3605 +ROM:364C +ROM:364D +ROM:364D ; =============== S U B R O U T I N E ======================================= +ROM:364D +ROM:364D +ROM:364D ROM_364D: ; CODE XREF: ROM_67A3-3656↑p +ROM:364D ; ROM_67A3:ROM_3187↑p ... +ROM:364D lcall code_1EE1 +ROM:3650 mov DPTR, #0xF898 +ROM:3653 ret +ROM:3653 ; End of function ROM_364D +ROM:3653 +ROM:3654 +ROM:3654 ; =============== S U B R O U T I N E ======================================= +ROM:3654 +ROM:3654 +ROM:3654 ROM_3654: ; CODE XREF: ROM_67A3-3631↑p +ROM:3654 ; ROM_67A3-35F4↑p ... +ROM:3654 mov DPTR, #0xF88B +ROM:3654 ; End of function ROM_3654 +ROM:3654 +ROM:3657 +ROM:3657 ; =============== S U B R O U T I N E ======================================= +ROM:3657 +ROM:3657 +ROM:3657 ROM_3657: ; CODE XREF: ROM_AD6A+204E↓p +ROM:3657 lcall save_4_bytes_R4_R7 +ROM:365A mov DPTR, #0xF898 +ROM:365D ret +ROM:365D ; End of function ROM_3657 +ROM:365D +ROM:365E +ROM:365E ; =============== S U B R O U T I N E ======================================= +ROM:365E +ROM:365E +ROM:365E ROM_365E: ; CODE XREF: ROM_67A3-3649↑p +ROM:365E ; ROM_67A3-35B7↑p +ROM:365E mov DPTR, #0xF89C +ROM:365E ; End of function ROM_365E +ROM:365E +ROM:3661 +ROM:3661 ; =============== S U B R O U T I N E ======================================= +ROM:3661 +ROM:3661 +ROM:3661 ROM_3661: ; CODE XREF: ROM_67A3-360C↑p +ROM:3661 ; ROM_67A3-357A↑p +ROM:3661 movx A, @DPTR +ROM:3662 mov R7, A +ROM:3663 inc DPTR +ROM:3664 movx A, @DPTR +ROM:3665 mov DPTR, #0xF8A7 +ROM:3668 xch A, R7 +ROM:3669 movx @DPTR, A +ROM:366A inc DPTR +ROM:366B mov A, R7 +ROM:366C movx @DPTR, A +ROM:366D mov DPTR, #0xF88B +ROM:3670 ret +ROM:3670 ; End of function ROM_3661 +ROM:3670 +ROM:3671 +ROM:3671 ; =============== S U B R O U T I N E ======================================= +ROM:3671 +ROM:3671 +ROM:3671 ROM_3671: ; CODE XREF: ROM_9B7E-4DE3↓p +ROM:3671 ; ROM_9B7E-4D38↓p ... +ROM:3671 P2DIR = FSR_BB +ROM:3671 P2PULL = FSR_BE +ROM:3671 mov DPTR, #0xF859 +ROM:3674 mov A, #0x19 +ROM:3676 movx @DPTR, A +ROM:3677 lcall unknown_gpio_setup_ROM_9BBD +ROM:367A mov A, R7 +ROM:367B jnz ROM_36D2 +ROM:367D mov DPTR, #0xF67C +ROM:3680 movx @DPTR, A +ROM:3681 acall ROM_37E9 +ROM:3683 jnz Set_P2_1_Rising_int ; P2.1 func disable +ROM:3685 anl P2FUNC, #0xFD ; P2.1 func disable +ROM:3688 orl P2DIR, #2 ; P2.1 as input +ROM:368B orl P2PULL, #2 ; P2.1 pullup enable +ROM:368E orl P2LVLSEL, #2 ; P2.1 PCINT set falling +ROM:3691 sjmp Enable_P2_1_pinchange_interrupt_ROM_369F ; clear pinchange status for P2.1 +ROM:3693 ; --------------------------------------------------------------------------- +ROM:3693 +ROM:3693 Set_P2_1_Rising_int: ; CODE XREF: ROM_3671+12↑j +ROM:3693 anl P2FUNC, #0xFD ; P2.1 func disable +ROM:3696 orl P2DIR, #2 ; P2.1 as input +ROM:3699 anl P2PULL, #0xFD ; P2.1 disable pullup +ROM:369C anl P2LVLSEL, #0xFD ; P2.1 PCINT set rising +ROM:369F +ROM:369F Enable_P2_1_pinchange_interrupt_ROM_369F: +ROM:369F ; CODE XREF: ROM_3671+20↑j +ROM:369F anl P2CHSTA, #0xFD ; clear pinchange status for P2.1 +ROM:36A2 orl P2INTEN, #2 ; P2.1 enable pinchange interrupt +ROM:36A5 anl P2CHSTA, #0xFD ; clear pinchange status for P2.1 +ROM:36A8 acall SetupWatchdog +ROM:36AA mov R7, #0x20 ; ' ' +ROM:36AC mov R6, #0xBF +ROM:36AE mov R5, #2 +ROM:36B0 mov R4, #0 +ROM:36B2 lcall SleepSub +ROM:36B5 mov A, P2CHSTA +ROM:36B7 jnb ACC1, ROM_36C1 ; Accumulator +ROM:36BA clr A +ROM:36BB mov DPTR, #0xF67C +ROM:36BE movx @DPTR, A +ROM:36BF sjmp ROM_36C7 ; P2.1 pinchange status clear +ROM:36C1 ; --------------------------------------------------------------------------- +ROM:36C1 +ROM:36C1 ROM_36C1: ; CODE XREF: ROM_3671+46↑j +ROM:36C1 mov DPTR, #0xF67C +ROM:36C4 mov A, #1 +ROM:36C6 movx @DPTR, A +ROM:36C7 +ROM:36C7 ROM_36C7: ; CODE XREF: ROM_3671+4E↑j +ROM:36C7 anl P2CHSTA, #0xFD ; P2.1 pinchange status clear +ROM:36CA anl P2INTEN, #0xFD ; P2.1 Interrupt disable +ROM:36CD lcall ROM_8C31 +ROM:36D0 sjmp ROM_370B +ROM:36D2 ; --------------------------------------------------------------------------- +ROM:36D2 +ROM:36D2 ROM_36D2: ; CODE XREF: ROM_3671+A↑j +ROM:36D2 ; ROM_3671+83↓j +ROM:36D2 mov DPTR, #0xF859 +ROM:36D5 movx A, @DPTR +ROM:36D6 mov R7, A +ROM:36D7 dec A +ROM:36D8 movx @DPTR, A +ROM:36D9 mov A, R7 +ROM:36DA jz 0x36F6 +ROM:36DC acall ROM_37E9 +ROM:36DE jnz ROM_36E5 +ROM:36E0 jnb P2.1, 0x36F6 ; jump if not busy +ROM:36E3 sjmp ROM_36E8 +ROM:36E5 ; --------------------------------------------------------------------------- +ROM:36E5 +ROM:36E5 ROM_36E5: ; CODE XREF: ROM_3671+6D↑j +ROM:36E5 jb P2.1, 0x36F6 ; Port 2 +ROM:36E8 +ROM:36E8 ROM_36E8: ; CODE XREF: ROM_3671+72↑j +ROM:36E8 acall SetupWatchdog +ROM:36EA lcall load_0x00000032_into_R7_R6_R5_R4 +ROM:36ED lcall SleepSub +ROM:36F0 mov DPTR, #0xF859 +ROM:36F3 movx A, @DPTR +ROM:36F4 jnz ROM_36D2 +ROM:36F6 mov DPTR, #0xF859 ; CODE XREF: ROM_3671+69↑j +ROM:36F6 ; ROM_3671+6F↑j ... +ROM:36F9 movx A, @DPTR +ROM:36FA mov R7, A +ROM:36FB clr C +ROM:36FC mov A, #0x19 +ROM:36FE subb A, R7 +ROM:36FF mov R7, A +ROM:3700 mov R6, #0 +ROM:3702 mov R4, #0 +ROM:3704 mov R5, #0x32 ; '2' +ROM:3706 lcall multiply_and_add_code_CC9 +ROM:3709 acall ROM_3588 +ROM:370B +ROM:370B ROM_370B: ; CODE XREF: ROM_3671+5F↑j +ROM:370B lcall SPI_PINS_ENABLE ; SPI CLK and MOSI as OUT +ROM:370E jnz ROM_3715 ; P1.6 and P1.7 as output +ROM:3710 anl FSR_BA, #0x7F ; P1.7 as output +ROM:3713 sjmp ROM_3718 +ROM:3715 ; --------------------------------------------------------------------------- +ROM:3715 +ROM:3715 ROM_3715: ; CODE XREF: ROM_3671+9D↑j +ROM:3715 anl FSR_BA, #0x3F ; P1.6 and P1.7 as output +ROM:3718 +ROM:3718 ROM_3718: ; CODE XREF: ROM_3671+A2↑j +ROM:3718 anl P2DIR, #0xFA +ROM:371B orl P2DIR, #2 ; P2.1 as input +ROM:371E setb P2.0 ; set to not-reset (high) +ROM:3720 lcall ROM_506B +ROM:3723 setb P1.7 ; deselect epd (high) +ROM:3725 ret +ROM:3725 ; End of function ROM_3671 +ROM:3725 +ROM:3726 +ROM:3726 ; =============== S U B R O U T I N E ======================================= +ROM:3726 +ROM:3726 +ROM:3726 ROM_3726: ; CODE XREF: eeprom_related_ROM_3605+10↑p +ROM:3726 ; eeprom_related_ROM_3605+18↑p ... +ROM:3726 lcall DO_SPI_TRANSACTION_ALT +ROM:3729 mov DPTR, #0xF8A0 +ROM:372C ret +ROM:372C ; End of function ROM_3726 +ROM:372C +ROM:372D +ROM:372D ; =============== S U B R O U T I N E ======================================= +ROM:372D +ROM:372D +ROM:372D ROM_372D: ; CODE XREF: SleepSub+64↓p +ROM:372D ; ROM_8C31+1D↓p ... +ROM:372D lcall code_B40 +ROM:372D ; End of function ROM_372D +ROM:372D +ROM:3730 +ROM:3730 ; =============== S U B R O U T I N E ======================================= +ROM:3730 +ROM:3730 +ROM:3730 save_4_bytes_R4_R7_to_0xF85A: ; CODE XREF: ROM_3588+9↑p +ROM:3730 ; SleepSub↓p ... +ROM:3730 mov DPTR, #0xF85A +ROM:3733 ljmp save_4_bytes_R4_R7 +ROM:3733 ; End of function save_4_bytes_R4_R7_to_0xF85A +ROM:3733 +ROM:3736 +ROM:3736 ; =============== S U B R O U T I N E ======================================= +ROM:3736 +ROM:3736 +ROM:3736 ROM_3736: ; CODE XREF: ROM_6849+C7↓p +ROM:3736 ; ROM_8F6F+49↓p ... +ROM:3736 add A, #1 +ROM:3736 ; End of function ROM_3736 +ROM:3736 +ROM:3738 +ROM:3738 ; =============== S U B R O U T I N E ======================================= +ROM:3738 +ROM:3738 +ROM:3738 ROM_3738: ; CODE XREF: ROM_AD6A+147↓p +ROM:3738 ; ROM_AD6A+1D4↓p ... +ROM:3738 mov R7, A +ROM:3739 clr A +ROM:373A addc A, R6 +ROM:373A ; End of function ROM_3738 +ROM:373A +ROM:373B +ROM:373B ; =============== S U B R O U T I N E ======================================= +ROM:373B +ROM:373B +ROM:373B ROM_373B: ; CODE XREF: ROM_436B-FC8↑p +ROM:373B ; ROM_436B-FBA↑p ... +ROM:373B mov R6, A +ROM:373C clr A +ROM:373D addc A, R5 +ROM:373E mov R5, A +ROM:373F clr A +ROM:3740 addc A, R4 +ROM:3741 ret +ROM:3741 ; End of function ROM_373B +ROM:3741 +ROM:3742 +ROM:3742 ; =============== S U B R O U T I N E ======================================= +ROM:3742 +ROM:3742 +ROM:3742 ROM_3742: ; CODE XREF: ROM_30A0+12↑p +ROM:3742 ; ROM_35EC+5↑p +ROM:3742 anl FSR_C3, #0xFE +ROM:3742 ; End of function ROM_3742 +ROM:3742 +ROM:3745 +ROM:3745 ; =============== S U B R O U T I N E ======================================= +ROM:3745 +ROM:3745 +ROM:3745 ROM_3745: ; CODE XREF: ROM_2FD1↑p +ROM:3745 ; ROM_30A0+37↑p +ROM:3745 anl FSR_C1, #0xDF +ROM:3748 anl FSR_A1, #0xFE +ROM:374B anl FSR_C1, #0xBF +ROM:374E ret +ROM:374E ; End of function ROM_3745 +ROM:374E +ROM:374F +ROM:374F ; =============== S U B R O U T I N E ======================================= +ROM:374F +ROM:374F +ROM:374F ROM_374F: ; CODE XREF: ROM_67A3-3624↑p +ROM:374F ; ROM_67A3-3592↑p +ROM:374F mov DPTR, #0xF898 +ROM:3752 lcall save_4_bytes_R4_R7 +ROM:3755 mov DPTR, #0xF89C +ROM:3755 ; End of function ROM_374F +ROM:3755 +ROM:3758 +ROM:3758 ; =============== S U B R O U T I N E ======================================= +ROM:3758 +ROM:3758 +ROM:3758 ROM_3758: ; CODE XREF: ROM_9CCA-7D33↑p +ROM:3758 ; ROM_67A3-35E0↑p ... +ROM:3758 movx A, @DPTR +ROM:3759 mov R6, A +ROM:375A inc DPTR +ROM:375B movx A, @DPTR +ROM:375C mov R7, A +ROM:375D clr C +ROM:375E ret +ROM:375E ; End of function ROM_3758 +ROM:375E +ROM:375F +ROM:375F ; =============== S U B R O U T I N E ======================================= +ROM:375F +ROM:375F +ROM:375F ROM_375F: ; CODE XREF: magic_ROM_35F3↑p +ROM:375F lcall ROM_DA44 +ROM:3762 mov R6, A +ROM:3763 mov A, R7 +ROM:3764 mov R0, #7 +ROM:3766 +ROM:3766 ROM_3766: ; CODE XREF: ROM_375F+C↓j +ROM:3766 clr C +ROM:3767 rlc A +ROM:3768 xch A, R6 +ROM:3769 rlc A +ROM:376A xch A, R6 +ROM:376B djnz R0, ROM_3766 +ROM:376D mov FSR_C7, A +ROM:376F mov A, R6 +ROM:3770 mov RCAP2H, A ; Timer 2 Capture High Byte +ROM:3772 clr A +ROM:3773 mov FSR_CF, A +ROM:3775 ret +ROM:3775 ; End of function ROM_375F +ROM:3775 +ROM:3776 +ROM:3776 ; =============== S U B R O U T I N E ======================================= +ROM:3776 +ROM:3776 +ROM:3776 ROM_3776: ; CODE XREF: ROM_AD6A+CF5↓p +ROM:3776 ; ROM_AD6A+E12↓p +ROM:3776 add A, #0x5C ; '\' +ROM:3776 ; End of function ROM_3776 +ROM:3776 +ROM:3778 +ROM:3778 ; =============== S U B R O U T I N E ======================================= +ROM:3778 +ROM:3778 +ROM:3778 ROM_3778: ; CODE XREF: ROM_AD6A+10EE↓p +ROM:3778 ; ROM_AD6A+11E5↓p ... +ROM:3778 mov R1, A +ROM:3779 clr A +ROM:377A addc A, R2 +ROM:377B mov R2, A +ROM:377C mov A, R1 +ROM:377D add A, #6 +ROM:377D ; End of function ROM_3778 +ROM:377D +ROM:377F +ROM:377F ; =============== S U B R O U T I N E ======================================= +ROM:377F +ROM:377F +ROM:377F ROM_377F: ; CODE XREF: ROM_AD6A+B38↓p +ROM:377F ; ROM_AD6A+12D5↓p ... +ROM:377F mov R1, A +ROM:3780 clr A +ROM:3781 addc A, R2 +ROM:3782 mov R2, A +ROM:3783 lcall code_BFA +ROM:3783 ; End of function ROM_377F +ROM:3783 +ROM:3786 +ROM:3786 ; =============== S U B R O U T I N E ======================================= +ROM:3786 +ROM:3786 +ROM:3786 ROM_3786: ; CODE XREF: ROM_AD6A+6B2↓p +ROM:3786 ; ROM_AD6A+6FE↓p ... +ROM:3786 mov A, R1 +ROM:3786 ; End of function ROM_3786 +ROM:3786 +ROM:3787 +ROM:3787 ; =============== S U B R O U T I N E ======================================= +ROM:3787 +ROM:3787 +ROM:3787 ROM_3787: ; CODE XREF: ROM_67A3-364B↑p +ROM:3787 ; ROM_67A3-3611↑p ... +ROM:3787 add A, R7 +ROM:3787 ; End of function ROM_3787 +ROM:3787 +ROM:3788 +ROM:3788 ; =============== S U B R O U T I N E ======================================= +ROM:3788 +ROM:3788 +ROM:3788 ROM_3788: ; CODE XREF: ROM_AD6A+2BF↓p +ROM:3788 ; ROM_AD6A+893↓p ... +ROM:3788 mov R1, A +ROM:3789 mov A, R2 +ROM:378A addc A, R6 +ROM:378B mov R2, A +ROM:378C mov A, R3 +ROM:378D addc A, R5 +ROM:378E mov R3, A +ROM:378F ret +ROM:378F ; End of function ROM_3788 +ROM:378F +ROM:3790 +ROM:3790 ; =============== S U B R O U T I N E ======================================= +ROM:3790 +ROM:3790 +ROM:3790 ROM_3790: ; CODE XREF: ROM_AD6A+11E0↓p +ROM:3790 ; ROM_AD6A+12FB↓p ... +ROM:3790 mov R7, A +ROM:3791 mov R0, RAM_1 +ROM:3793 lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:3796 mov A, R7 +ROM:3797 anl A, #1 +ROM:3799 mov R3, A +ROM:379A mov DPTR, #0xF897 +ROM:379A ; End of function ROM_3790 +ROM:379A +ROM:379D +ROM:379D ; =============== S U B R O U T I N E ======================================= +ROM:379D +ROM:379D +ROM:379D ROM_379D: ; CODE XREF: ROM_AD6A+CF2↓p +ROM:379D ; ROM_AD6A+E0F↓p ... +ROM:379D movx A, @DPTR +ROM:379E mov R6, A +ROM:379F inc DPTR +ROM:37A0 movx A, @DPTR +ROM:37A1 cpl A +ROM:37A2 mov R7, A +ROM:37A3 mov A, R6 +ROM:37A4 cpl A +ROM:37A5 mov R6, A +ROM:37A6 rlc A +ROM:37A7 subb A, ACC ; Accumulator +ROM:37A9 mov R5, A +ROM:37AA mov R4, A +ROM:37AB mov A, R3 +ROM:37AC add A, R7 +ROM:37AD mov R7, A +ROM:37AE clr A +ROM:37AF addc A, R6 +ROM:37B0 mov R6, A +ROM:37B1 clr A +ROM:37B2 addc A, R5 +ROM:37B3 mov R5, A +ROM:37B4 clr A +ROM:37B5 addc A, R4 +ROM:37B6 mov R4, A +ROM:37B7 clr A +ROM:37B7 ; End of function ROM_379D +ROM:37B7 +ROM:37B8 +ROM:37B8 ; =============== S U B R O U T I N E ======================================= +ROM:37B8 +ROM:37B8 +ROM:37B8 ROM_37B8: ; CODE XREF: ROM_AD6A+12D0↓p +ROM:37B8 ; ROM_AD6A+13A4↓p +ROM:37B8 mov R3, #2 +ROM:37B8 ; End of function ROM_37B8 +ROM:37B8 +ROM:37BA +ROM:37BA ; =============== S U B R O U T I N E ======================================= +ROM:37BA +ROM:37BA +ROM:37BA ROM_37BA: ; CODE XREF: ROM_AD6A+819↓p +ROM:37BA ; ROM_AD6A+86E↓p ... +ROM:37BA mov R2, A +ROM:37BA ; End of function ROM_37BA +ROM:37BA +ROM:37BB +ROM:37BB ; =============== S U B R O U T I N E ======================================= +ROM:37BB +ROM:37BB +ROM:37BB ROM_37BB: ; CODE XREF: ROM_AD6A+60↓p +ROM:37BB mov R1, A +ROM:37BC mov R0, A +ROM:37BC ; End of function ROM_37BB +ROM:37BC +ROM:37BD +ROM:37BD ; =============== S U B R O U T I N E ======================================= +ROM:37BD +ROM:37BD +ROM:37BD ROM_37BD: ; CODE XREF: ROM_AD6A+6AC↓p +ROM:37BD ; ROM_AD6A+6F8↓p +ROM:37BD lcall code_9F1 +ROM:37BD ; End of function ROM_37BD +ROM:37BD +ROM:37C0 +ROM:37C0 ; =============== S U B R O U T I N E ======================================= +ROM:37C0 +ROM:37C0 +ROM:37C0 ROM_37C0: ; CODE XREF: ROM_ABBC+DE↓p +ROM:37C0 ; ROM_ABBC+E9↓p ... +ROM:37C0 mov DPTR, #0xFE08 +ROM:37C0 ; End of function ROM_37C0 +ROM:37C0 +ROM:37C3 +ROM:37C3 ; =============== S U B R O U T I N E ======================================= +ROM:37C3 +ROM:37C3 +ROM:37C3 ROM_37C3: ; CODE XREF: ROM_9CCA-7D13↑p +ROM:37C3 ; ROM_67A3-364D↑p ... +ROM:37C3 movx A, @DPTR +ROM:37C4 mov R3, A +ROM:37C5 inc DPTR +ROM:37C6 movx A, @DPTR +ROM:37C7 mov R2, A +ROM:37C8 inc DPTR +ROM:37C9 movx A, @DPTR +ROM:37CA ret +ROM:37CA ; End of function ROM_37C3 +ROM:37CA +ROM:37CB +ROM:37CB ; =============== S U B R O U T I N E ======================================= +ROM:37CB +ROM:37CB +ROM:37CB ROM_37CB: ; CODE XREF: ROM_67A3-369E↑p +ROM:37CB ; ROM_67A3-35E5↑p ... +ROM:37CB mov DPTR, #0xF898 +ROM:37CE ljmp save_4_bytes_R4_R7 +ROM:37CE ; End of function ROM_37CB +ROM:37CE +ROM:37D1 +ROM:37D1 ; =============== S U B R O U T I N E ======================================= +ROM:37D1 +ROM:37D1 +ROM:37D1 ROM_37D1: ; CODE XREF: ROM_436B-F92↑p +ROM:37D1 ; ROM_436B-F8B↑p ... +ROM:37D1 mov DPTR, #0xF4A4 +ROM:37D1 ; End of function ROM_37D1 +ROM:37D1 +ROM:37D4 +ROM:37D4 ; =============== S U B R O U T I N E ======================================= +ROM:37D4 +ROM:37D4 +ROM:37D4 ROM_37D4: ; CODE XREF: ROM_39E2+27↓p +ROM:37D4 movx A, @DPTR +ROM:37D5 mov R7, A +ROM:37D6 mov R6, #0 +ROM:37D8 mov R4, #0x30 ; '0' +ROM:37DA mov R5, #0 +ROM:37DC lcall multiply_and_add_code_CC9 +ROM:37DF clr A +ROM:37E0 add A, R7 +ROM:37E1 mov R7, A +ROM:37E2 ret +ROM:37E2 ; End of function ROM_37D4 +ROM:37E2 +ROM:37E3 +ROM:37E3 ; =============== S U B R O U T I N E ======================================= +ROM:37E3 +ROM:37E3 +ROM:37E3 ROM_37E3: ; CODE XREF: ROM_436B-F9C↑p +ROM:37E3 ; ROM_436B-E09↑p ... +ROM:37E3 mov DPTR, #0xF55A +ROM:37E6 ljmp save_4_bytes_R4_R7 +ROM:37E6 ; End of function ROM_37E3 +ROM:37E6 +ROM:37E9 +ROM:37E9 ; =============== S U B R O U T I N E ======================================= +ROM:37E9 +ROM:37E9 +ROM:37E9 ROM_37E9: ; CODE XREF: ROM_3671+10↑p +ROM:37E9 ; ROM_3671+6B↑p ... +ROM:37E9 mov DPTR, #0xFDAB +ROM:37EC movx A, @DPTR +ROM:37ED xrl A, #2 +ROM:37EF ret +ROM:37EF ; End of function ROM_37E9 +ROM:37EF +ROM:37F0 +ROM:37F0 ; =============== S U B R O U T I N E ======================================= +ROM:37F0 +ROM:37F0 +ROM:37F0 ROM_37F0: ; CODE XREF: ROM_D7A0+5↓p +ROM:37F0 mov A, R7 +ROM:37F1 mov R5, A +ROM:37F2 mov R4, #0 +ROM:37F4 xrl A, #3 +ROM:37F6 jnz ROM_381A +ROM:37F8 mov R6, A +ROM:37F9 +ROM:37F9 ROM_37F9: ; CODE XREF: ROM_37F0+28↓j +ROM:37F9 mov A, R6 +ROM:37FA lcall ROM_3859 +ROM:37FD jnc ROM_384E +ROM:37FF mov DPTR, #0xF53B +ROM:3802 movx A, @DPTR +ROM:3803 acall ROM_3859 +ROM:3805 jc ROM_380C +ROM:3807 mov A, #1 +ROM:3809 movx @DPTR, A +ROM:380A sjmp ROM_3812 +ROM:380C ; --------------------------------------------------------------------------- +ROM:380C +ROM:380C ROM_380C: ; CODE XREF: ROM_37F0+15↑j +ROM:380C mov DPTR, #0xF53B +ROM:380F movx A, @DPTR +ROM:3810 inc A +ROM:3811 movx @DPTR, A +ROM:3812 +ROM:3812 ROM_3812: ; CODE XREF: ROM_37F0+1A↑j +ROM:3812 lcall ROM_81E1 +ROM:3815 jz ROM_384E +ROM:3817 inc R6 +ROM:3818 sjmp ROM_37F9 +ROM:381A ; --------------------------------------------------------------------------- +ROM:381A +ROM:381A ROM_381A: ; CODE XREF: ROM_37F0+6↑j +ROM:381A mov A, R5 +ROM:381B xrl A, #2 +ROM:381D orl A, R4 +ROM:381E jnz ROM_384E +ROM:3820 mov R6, A +ROM:3821 +ROM:3821 ROM_3821: ; CODE XREF: ROM_37F0+5A↓j +ROM:3821 mov A, R6 +ROM:3822 acall ROM_3859 +ROM:3824 jnc ROM_384C +ROM:3826 mov DPTR, #0xF53B +ROM:3829 movx A, @DPTR +ROM:382A mov R5, A +ROM:382B lcall ROM_87AF +ROM:382E jc ROM_3836 +ROM:3830 setb C +ROM:3831 mov A, R5 +ROM:3832 acall ROM_385A +ROM:3834 jc ROM_383E +ROM:3836 +ROM:3836 ROM_3836: ; CODE XREF: ROM_37F0+3E↑j +ROM:3836 mov DPTR, #0xF53B +ROM:3839 mov A, #4 +ROM:383B movx @DPTR, A +ROM:383C sjmp ROM_3844 +ROM:383E ; --------------------------------------------------------------------------- +ROM:383E +ROM:383E ROM_383E: ; CODE XREF: ROM_37F0+44↑j +ROM:383E mov DPTR, #0xF53B +ROM:3841 movx A, @DPTR +ROM:3842 dec A +ROM:3843 movx @DPTR, A +ROM:3844 +ROM:3844 ROM_3844: ; CODE XREF: ROM_37F0+4C↑j +ROM:3844 lcall ROM_81E1 +ROM:3847 jz ROM_384C +ROM:3849 inc R6 +ROM:384A sjmp ROM_3821 +ROM:384C ; --------------------------------------------------------------------------- +ROM:384C +ROM:384C ROM_384C: ; CODE XREF: ROM_37F0+34↑j +ROM:384C ; ROM_37F0+57↑j +ROM:384C sjmp ROM_384E +ROM:384E ; --------------------------------------------------------------------------- +ROM:384E +ROM:384E ROM_384E: ; CODE XREF: ROM_37F0+D↑j +ROM:384E ; ROM_37F0+25↑j ... +ROM:384E mov DPTR, #0xF53B +ROM:3851 movx A, @DPTR +ROM:3852 mov R7, A +ROM:3853 ret +ROM:3853 ; End of function ROM_37F0 +ROM:3853 +ROM:3854 +ROM:3854 ; =============== S U B R O U T I N E ======================================= +ROM:3854 +ROM:3854 +ROM:3854 ROM_3854: ; CODE XREF: Radio_Something_Setup_ROM_4B0C:ROM_4B66↓p +ROM:3854 ; Radio_Something_Setup_ROM_4B0C:ROM_4BF1↓p +ROM:3854 mov DPTR, #0xF830 +ROM:3854 ; End of function ROM_3854 +ROM:3854 +ROM:3857 +ROM:3857 ; =============== S U B R O U T I N E ======================================= +ROM:3857 +ROM:3857 +ROM:3857 ROM_3857: ; CODE XREF: ROM_A044-3571↓p +ROM:3857 movx A, @DPTR +ROM:3858 mov R7, A +ROM:3858 ; End of function ROM_3857 +ROM:3858 +ROM:3859 +ROM:3859 ; =============== S U B R O U T I N E ======================================= +ROM:3859 +ROM:3859 +ROM:3859 ROM_3859: ; CODE XREF: ROM_2916+19↑p +ROM:3859 ; ROM_2916+39↑p ... +ROM:3859 clr C +ROM:3859 ; End of function ROM_3859 +ROM:3859 +ROM:385A +ROM:385A ; =============== S U B R O U T I N E ======================================= +ROM:385A +ROM:385A +ROM:385A ROM_385A: ; CODE XREF: ROM:2066↑p +ROM:385A ; ROM:20DB↑p ... +ROM:385A subb A, #4 +ROM:385C mov A, #0x80 +ROM:385E subb A, #0x80 +ROM:3860 ret +ROM:3860 ; End of function ROM_385A +ROM:3860 +ROM:3861 +ROM:3861 ; =============== S U B R O U T I N E ======================================= +ROM:3861 +ROM:3861 +ROM:3861 ROM_3861: ; CODE XREF: ROM_D9D3↓p +ROM:3861 clr A +ROM:3862 mov DPTR, #0xF841 +ROM:3865 acall ROM_3F92 +ROM:3867 inc DPTR +ROM:3868 movx @DPTR, A +ROM:3869 inc DPTR +ROM:386A movx @DPTR, A +ROM:386B mov DPTR, #0xF841 +ROM:386E mov A, #3 +ROM:3870 movx @DPTR, A +ROM:3871 mov DPTR, #0xF55E +ROM:3874 lcall ROM_37C3 +ROM:3877 add A, #3 +ROM:3879 acall ROM_39DB +ROM:387B lcall ROM_47E4 +ROM:387E lcall ROM_D7D4 +ROM:3881 acall ROM_39DB +ROM:3883 lcall ROM_47F1 +ROM:3886 acall ROM_3EB9 +ROM:3888 movx A, @DPTR +ROM:3889 add A, #4 +ROM:388B movx @DPTR, A +ROM:388C mov DPTR, #0xF55E +ROM:388F acall ROM_3EB2 +ROM:3891 mov DPTR, #0xF841 +ROM:3894 movx A, @DPTR +ROM:3895 mov R7, A +ROM:3896 acall ROM_39D9 +ROM:3898 mov DPTR, #0xF49F +ROM:389B acall ROM_3EB9 +ROM:389D mov DPTR, #0xF55E +ROM:38A0 acall ROM_3EB2 +ROM:38A2 mov DPTR, #0xF841 +ROM:38A5 movx A, @DPTR +ROM:38A6 mov R7, A +ROM:38A7 acall ROM_39D9 +ROM:38A9 mov DPTR, #0xF499 +ROM:38AC acall ROM_3EB9 +ROM:38AE mov DPTR, #0xF55E +ROM:38B1 acall ROM_3EB2 +ROM:38B3 mov DPTR, #0xF841 +ROM:38B6 movx A, @DPTR +ROM:38B7 mov R7, A +ROM:38B8 acall ROM_39D9 +ROM:38BA mov R7, A +ROM:38BB mov DPTR, #0xF49A +ROM:38BE acall ROM_3EB9 +ROM:38C0 setb C +ROM:38C1 mov A, R7 +ROM:38C2 acall ROM_385A +ROM:38C4 jc ROM_38C9 +ROM:38C6 mov R7, #0x18 +ROM:38C8 ret +ROM:38C9 ; --------------------------------------------------------------------------- +ROM:38C9 +ROM:38C9 ROM_38C9: ; CODE XREF: ROM_3861+63↑j +ROM:38C9 mov DPTR, #0xF55E +ROM:38CC lcall ROM_37C3 +ROM:38CF mov R1, A +ROM:38D0 mov DPTR, #0xF841 +ROM:38D3 movx A, @DPTR +ROM:38D4 mov R7, A +ROM:38D5 acall ROM_39D9 +ROM:38D7 mov R6, A +ROM:38D8 dec A +ROM:38D9 mov DPTR, #0xF842 +ROM:38DC movx @DPTR, A +ROM:38DD acall ROM_3859 +ROM:38DF jc ROM_38E4 +ROM:38E1 mov R7, #0x18 +ROM:38E3 ret +ROM:38E4 ; --------------------------------------------------------------------------- +ROM:38E4 +ROM:38E4 ROM_38E4: ; CODE XREF: ROM_3861+7E↑j +ROM:38E4 mov DPTR, #0xF842 +ROM:38E7 movx A, @DPTR +ROM:38E8 mov DPTR, #0xF4A4 +ROM:38EB movx @DPTR, A +ROM:38EC mov DPTR, #0xF499 +ROM:38EF movx A, @DPTR +ROM:38F0 cjne A, RAM_6, ROM_38FB +ROM:38F3 mov DPTR, #0xF49C +ROM:38F6 mov A, #1 +ROM:38F8 movx @DPTR, A +ROM:38F9 sjmp ROM_3900 +ROM:38FB ; --------------------------------------------------------------------------- +ROM:38FB +ROM:38FB ROM_38FB: ; CODE XREF: ROM_3861+8F↑j +ROM:38FB clr A +ROM:38FC mov DPTR, #0xF49C +ROM:38FF movx @DPTR, A +ROM:3900 +ROM:3900 ROM_3900: ; CODE XREF: ROM_3861+98↑j +ROM:3900 mov DPTR, #0xF55E +ROM:3903 lcall ROM_37C3 +ROM:3906 mov R1, A +ROM:3907 mov DPTR, #0xF841 +ROM:390A lcall ROM_8713 +ROM:390D push RAM_1 +ROM:390F inc DPTR +ROM:3910 movx A, @DPTR +ROM:3911 mov B, #0x15 ; B Register +ROM:3914 mul AB +ROM:3915 add A, #0xA5 +ROM:3917 mov R1, A +ROM:3918 mov A, #0xF4 +ROM:391A lcall ROM_A26A +ROM:391D pop RAM_1 +ROM:391F mov R6, #0 +ROM:3921 mov R7, #0x11 +ROM:3923 lcall code_86B +ROM:3926 mov DPTR, #0xF841 +ROM:3929 movx A, @DPTR +ROM:392A add A, #0x11 +ROM:392C movx @DPTR, A +ROM:392D inc DPTR +ROM:392E movx A, @DPTR +ROM:392F mov B, #0x15 ; B Register +ROM:3932 mul AB +ROM:3933 add A, #0xB5 +ROM:3935 mov DP0L, A ; Data Pointer Low Byte +ROM:3937 clr A +ROM:3938 addc A, #0xF4 +ROM:393A mov DP0H, A ; Data Pointer High Byte +ROM:393C movx A, @DPTR +ROM:393D xrl A, #0xF0 +ROM:393F mov DPTR, #0xFB7F +ROM:3942 jnz ROM_3947 +ROM:3944 movx @DPTR, A +ROM:3945 sjmp ROM_394A +ROM:3947 ; --------------------------------------------------------------------------- +ROM:3947 +ROM:3947 ROM_3947: ; CODE XREF: ROM_3861+E1↑j +ROM:3947 mov A, #1 +ROM:3949 movx @DPTR, A +ROM:394A +ROM:394A ROM_394A: ; CODE XREF: ROM_3861+E4↑j +ROM:394A lcall ROM_5FCC +ROM:394D jnz ROM_39A4 +ROM:394F lcall ROM_7165 +ROM:3952 jnz ROM_39A4 +ROM:3954 mov DPTR, #0xF55E +ROM:3957 lcall ROM_37C3 +ROM:395A acall ROM_39D1 +ROM:395C mov DPTR, #0xF566 +ROM:395F acall ROM_39C5 +ROM:3961 mov R7, A +ROM:3962 mov DPTR, #0xF566 +ROM:3965 movx A, @DPTR +ROM:3966 movx @DPTR, A +ROM:3967 inc DPTR +ROM:3968 movx A, @DPTR +ROM:3969 orl A, R7 +ROM:396A acall ROM_39C8 +ROM:396C mov DPTR, #0xF568 +ROM:396F acall ROM_39C5 +ROM:3971 mov R7, A +ROM:3972 mov DPTR, #0xF568 +ROM:3975 lcall ROM_A5C3 +ROM:3978 mov DPTR, #0xF843 +ROM:397B mov A, #4 +ROM:397D movx @DPTR, A +ROM:397E mov DPTR, #0xF566 +ROM:3981 movx A, @DPTR +ROM:3982 mov R6, A +ROM:3983 inc DPTR +ROM:3984 movx A, @DPTR +ROM:3985 mov R7, A +ROM:3986 orl A, R6 +ROM:3987 jz ROM_39A4 +ROM:3989 setb C +ROM:398A mov A, R7 +ROM:398B subb A, #0 +ROM:398D mov A, R6 +ROM:398E subb A, #1 +ROM:3990 jnc ROM_39A4 +ROM:3992 mov DPTR, #0xF55E +ROM:3995 acall ROM_3EB2 +ROM:3997 lcall ROM_D6BE +ROM:399A mov R2, A +ROM:399B mov R0, #0x6A ; 'j' +ROM:399D mov R4, #0xF5 +ROM:399F mov R5, #1 +ROM:39A1 lcall code_86B +ROM:39A4 +ROM:39A4 ROM_39A4: ; CODE XREF: ROM_3861+EC↑j +ROM:39A4 ; ROM_3861+F1↑j ... +ROM:39A4 mov DPTR, #0xF843 +ROM:39A7 movx A, @DPTR +ROM:39A8 mov R7, A +ROM:39A9 mov DPTR, #0xF55E +ROM:39AC lcall ROM_37C3 +ROM:39AF mov R1, A +ROM:39B0 lcall ROM_D6BE +ROM:39B3 mov R2, A +ROM:39B4 clr C +ROM:39B5 mov A, R1 +ROM:39B6 subb A, R7 +ROM:39B7 mov R1, A +ROM:39B8 mov A, R2 +ROM:39B9 subb A, #0 +ROM:39BB mov R2, A +ROM:39BC inc DPTR +ROM:39BD lcall ROM_7156 +ROM:39C0 acall Save_3_bytes_R3_R2_R1 +ROM:39C2 mov R7, #0 +ROM:39C4 ret +ROM:39C4 ; End of function ROM_3861 +ROM:39C4 +ROM:39C5 +ROM:39C5 ; =============== S U B R O U T I N E ======================================= +ROM:39C5 +ROM:39C5 +ROM:39C5 ROM_39C5: ; CODE XREF: ROM_3861+FE↑p +ROM:39C5 ; ROM_3861+10E↑p +ROM:39C5 movx @DPTR, A +ROM:39C6 inc DPTR +ROM:39C7 clr A +ROM:39C7 ; End of function ROM_39C5 +ROM:39C7 +ROM:39C8 +ROM:39C8 ; =============== S U B R O U T I N E ======================================= +ROM:39C8 +ROM:39C8 +ROM:39C8 ROM_39C8: ; CODE XREF: ROM_3861+109↑p +ROM:39C8 movx @DPTR, A +ROM:39C9 mov DPTR, #0xF55E +ROM:39CC inc DPTR +ROM:39CD movx A, @DPTR +ROM:39CE mov R2, A +ROM:39CF inc DPTR +ROM:39D0 movx A, @DPTR +ROM:39D0 ; End of function ROM_39C8 +ROM:39D0 +ROM:39D1 +ROM:39D1 ; =============== S U B R O U T I N E ======================================= +ROM:39D1 +ROM:39D1 +ROM:39D1 ROM_39D1: ; CODE XREF: ROM_3861+F9↑p +ROM:39D1 mov R1, A +ROM:39D2 mov DPTR, #0xF841 +ROM:39D2 ; End of function ROM_39D1 +ROM:39D2 +ROM:39D5 +ROM:39D5 ; =============== S U B R O U T I N E ======================================= +ROM:39D5 +ROM:39D5 +ROM:39D5 ROM_39D5: ; CODE XREF: ROM_7AB3+7F↓p +ROM:39D5 ; ROM_7B9E+72↓p +ROM:39D5 movx A, @DPTR +ROM:39D6 mov R7, A +ROM:39D7 inc A +ROM:39D8 movx @DPTR, A +ROM:39D8 ; End of function ROM_39D5 +ROM:39D8 +ROM:39D9 +ROM:39D9 ; =============== S U B R O U T I N E ======================================= +ROM:39D9 +ROM:39D9 +ROM:39D9 ROM_39D9: ; CODE XREF: ROM_3861+35↑p +ROM:39D9 ; ROM_3861+46↑p ... +ROM:39D9 mov A, R1 +ROM:39D9 ; End of function ROM_39D9 +ROM:39D9 +ROM:39DA +ROM:39DA ; =============== S U B R O U T I N E ======================================= +ROM:39DA +ROM:39DA +ROM:39DA ROM_39DA: ; CODE XREF: ROM_6CFA+1F↓p +ROM:39DA add A, R7 +ROM:39DA ; End of function ROM_39DA +ROM:39DA +ROM:39DB +ROM:39DB ; =============== S U B R O U T I N E ======================================= +ROM:39DB +ROM:39DB +ROM:39DB ROM_39DB: ; CODE XREF: ROM_3861+18↑p +ROM:39DB ; ROM_3861+20↑p ... +ROM:39DB mov R1, A +ROM:39DC clr A +ROM:39DD addc A, R2 +ROM:39DE mov R2, A +ROM:39DF ljmp code_891 +ROM:39DF ; End of function ROM_39DB +ROM:39DF +ROM:39E2 +ROM:39E2 ; =============== S U B R O U T I N E ======================================= +ROM:39E2 +ROM:39E2 +ROM:39E2 ROM_39E2: ; CODE XREF: ROM_436B-F1E↑p +ROM:39E2 ; ROM_78C8+C6↓p +ROM:39E2 mov DPTR, #0xF84D +ROM:39E5 acall Save_3_bytes_R3_R2_R1 +ROM:39E7 mov DPTR, #0xF84D +ROM:39EA acall load_3_bytes_R1_R2_A +ROM:39EC mov DPTR, #0xF85A +ROM:39EF xch A, R1 +ROM:39F0 acall Save_3_bytes_A_R2_R1 +ROM:39F2 clr A +ROM:39F3 inc DPTR +ROM:39F4 movx @DPTR, A +ROM:39F5 inc DPTR +ROM:39F6 movx @DPTR, A +ROM:39F7 mov DPTR, #0xF850 +ROM:39FA acall load_3_bytes_R1_R2_A +ROM:39FC mov DPTR, #0xF85F +ROM:39FF xch A, R1 +ROM:3A00 acall Save_3_bytes_A_R2_R1 +ROM:3A02 acall ROM_3FC0 +ROM:3A04 acall ROM_3F92 +ROM:3A06 mov DPTR, #0xF856 +ROM:3A09 lcall ROM_37D4 +ROM:3A0C clr A +ROM:3A0D addc A, R6 +ROM:3A0E mov R6, A +ROM:3A0F mov A, R5 +ROM:3A10 addc A, #3 +ROM:3A12 lcall ROM_718F +ROM:3A15 mov DPTR, #0xF86C +ROM:3A18 mov A, R5 +ROM:3A19 acall Save_3_bytes_A_R2_R1 +ROM:3A1B mov DPTR, #0xF876 +ROM:3A1E mov A, #1 +ROM:3A20 movx @DPTR, A +ROM:3A21 clr A +ROM:3A22 acall ROM_3F93 +ROM:3A24 lcall ROM_DA3C +ROM:3A27 mov DPTR, #0xF858 +ROM:3A2A xch A, R7 +ROM:3A2B movx @DPTR, A +ROM:3A2C inc DPTR +ROM:3A2D mov A, R7 +ROM:3A2E movx @DPTR, A +ROM:3A2F mov DPTR, #0xF858 +ROM:3A32 movx A, @DPTR +ROM:3A33 mov R7, A +ROM:3A34 inc DPTR +ROM:3A35 movx A, @DPTR +ROM:3A36 mov DPTR, #0xF86F +ROM:3A39 xch A, R7 +ROM:3A3A movx @DPTR, A +ROM:3A3B inc DPTR +ROM:3A3C lcall ROM_9D20 +ROM:3A3F mov DPTR, #0xF71C +ROM:3A42 lcall save_4_bytes_R4_R7 +ROM:3A45 lcall ROM_D2F9 +ROM:3A48 mov DPTR, #0xF720 +ROM:3A4B movx A, @DPTR +ROM:3A4C mov R2, A +ROM:3A4D lcall ROM_D82B +ROM:3A50 lcall save_4_bytes_R4_R7 +ROM:3A53 mov R1, RAM_3 +ROM:3A55 mov R3, #1 +ROM:3A57 push RAM_3 +ROM:3A59 push RAM_2 +ROM:3A5B push RAM_1 +ROM:3A5D mov DPTR, #0xF722 +ROM:3A60 lcall ROM_799F +ROM:3A63 mov DPTR, #0xF880 +ROM:3A66 acall Save_3_bytes_R3_R2_R1 +ROM:3A68 clr A +ROM:3A69 mov R7, #0xC4 +ROM:3A6B mov R6, #9 +ROM:3A6D lcall ROM_D514 +ROM:3A70 pop RAM_1 +ROM:3A72 pop RAM_2 +ROM:3A74 pop RAM_3 +ROM:3A76 lcall ROM_CFBB +ROM:3A79 mov DPTR, #0xF875 +ROM:3A7C mov A, R7 +ROM:3A7D movx @DPTR, A +ROM:3A7E rlc A +ROM:3A7F subb A, ACC ; Accumulator +ROM:3A81 orl A, R7 +ROM:3A82 jz ROM_3A87 +ROM:3A84 mov R7, #0x24 ; '$' +ROM:3A86 ret +ROM:3A87 ; --------------------------------------------------------------------------- +ROM:3A87 +ROM:3A87 ROM_3A87: ; CODE XREF: ROM_39E2+A0↑j +ROM:3A87 clr A +ROM:3A88 mov DPTR, #0xF877 +ROM:3A8B movx @DPTR, A +ROM:3A8C +ROM:3A8C ROM_3A8C: ; CODE XREF: ROM_39E2+3BC↓j +ROM:3A8C mov DPTR, #0xF85D +ROM:3A8F movx A, @DPTR +ROM:3A90 jnz ROM_3A94 +ROM:3A92 inc DPTR +ROM:3A93 movx A, @DPTR +ROM:3A94 +ROM:3A94 ROM_3A94: ; CODE XREF: ROM_39E2+AE↑j +ROM:3A94 jnz ROM_3AB9 +ROM:3A96 lcall ROM_D74B +ROM:3A99 subb A, #4 +ROM:3A9B jc ROM_3AA3 +ROM:3A9D mov R6, #4 +ROM:3A9F mov R7, #0 +ROM:3AA1 sjmp ROM_3AA3 +ROM:3AA3 ; --------------------------------------------------------------------------- +ROM:3AA3 +ROM:3AA3 ROM_3AA3: ; CODE XREF: ROM_39E2+B9↑j +ROM:3AA3 ; ROM_39E2+BF↑j +ROM:3AA3 acall ROM_3FD2 +ROM:3AA5 mov DPTR, #0xF87B +ROM:3AA8 movx A, @DPTR +ROM:3AA9 mov R6, A +ROM:3AAA inc DPTR +ROM:3AAB movx A, @DPTR +ROM:3AAC mov R7, A +ROM:3AAD mov DPTR, #0xF85D +ROM:3AB0 mov A, R6 +ROM:3AB1 movx @DPTR, A +ROM:3AB2 inc DPTR +ROM:3AB3 mov A, R7 +ROM:3AB4 movx @DPTR, A +ROM:3AB5 lcall ROM_D73E +ROM:3AB8 movx @DPTR, A +ROM:3AB9 +ROM:3AB9 ROM_3AB9: ; CODE XREF: ROM_39E2:ROM_3A94↑j +ROM:3AB9 mov DPTR, #0xF85D +ROM:3ABC movx A, @DPTR +ROM:3ABD mov R7, A +ROM:3ABE inc DPTR +ROM:3ABF movx A, @DPTR +ROM:3AC0 mov DPTR, #0xF871 +ROM:3AC3 xch A, R7 +ROM:3AC4 movx @DPTR, A +ROM:3AC5 inc DPTR +ROM:3AC6 mov A, R7 +ROM:3AC7 movx @DPTR, A +ROM:3AC8 mov DPTR, #0xF866 +ROM:3ACB movx A, @DPTR +ROM:3ACC mov R7, A +ROM:3ACD inc DPTR +ROM:3ACE movx A, @DPTR +ROM:3ACF mov DPTR, #0xF873 +ROM:3AD2 xch A, R7 +ROM:3AD3 acall ROM_3FDB +ROM:3AD5 jnz ROM_3AD9 +ROM:3AD7 inc DPTR +ROM:3AD8 movx A, @DPTR +ROM:3AD9 +ROM:3AD9 ROM_3AD9: ; CODE XREF: ROM_39E2+F3↑j +ROM:3AD9 mov R7, #0 +ROM:3ADB jz ROM_3ADF +ROM:3ADD mov R7, #2 +ROM:3ADF +ROM:3ADF ROM_3ADF: ; CODE XREF: ROM_39E2+F9↑j +ROM:3ADF mov DPTR, #0xF876 +ROM:3AE2 movx A, @DPTR +ROM:3AE3 xrl A, #1 +ROM:3AE5 jnz ROM_3AED +ROM:3AE7 mov A, R7 +ROM:3AE8 orl A, #1 +ROM:3AEA mov R7, A +ROM:3AEB clr A +ROM:3AEC movx @DPTR, A +ROM:3AED +ROM:3AED ROM_3AED: ; CODE XREF: ROM_39E2+103↑j +ROM:3AED mov DPTR, #0xF720 +ROM:3AF0 lcall ROM_90DD +ROM:3AF3 mov R3, #1 +ROM:3AF5 push RAM_3 +ROM:3AF7 push RAM_2 +ROM:3AF9 push RAM_1 +ROM:3AFB mov DPTR, #0xF85A +ROM:3AFE acall load_3_bytes_R1_R2_A +ROM:3B00 mov DPTR, #0xF880 +ROM:3B03 xch A, R1 +ROM:3B04 acall Save_3_bytes_A_R2_R1 +ROM:3B06 inc DPTR +ROM:3B07 mov A, R3 +ROM:3B08 movx @DPTR, A +ROM:3B09 inc DPTR +ROM:3B0A mov A, #0xF8 +ROM:3B0C movx @DPTR, A +ROM:3B0D inc DPTR +ROM:3B0E mov A, #0x71 ; 'q' +ROM:3B10 movx @DPTR, A +ROM:3B11 mov DPTR, #0xF86C +ROM:3B14 acall load_3_bytes_R1_R2_A +ROM:3B16 mov DPTR, #0xF886 +ROM:3B19 xch A, R1 +ROM:3B1A acall Save_3_bytes_A_R2_R1 +ROM:3B1C mov DPTR, #0xF85F +ROM:3B1F acall load_3_bytes_R1_R2_A +ROM:3B21 mov DPTR, #0xF889 +ROM:3B24 xch A, R1 +ROM:3B25 acall Save_3_bytes_A_R2_R1 +ROM:3B27 inc DPTR +ROM:3B28 mov A, R3 +ROM:3B29 movx @DPTR, A +ROM:3B2A inc DPTR +ROM:3B2B mov A, #0xF8 +ROM:3B2D movx @DPTR, A +ROM:3B2E inc DPTR +ROM:3B2F mov A, #0x73 ; 's' +ROM:3B31 movx @DPTR, A +ROM:3B32 clr A +ROM:3B33 mov R4, A +ROM:3B34 mov R5, A +ROM:3B35 mov R6, A +ROM:3B36 inc DPTR +ROM:3B37 lcall save_4_bytes_R4_R7 +ROM:3B3A pop RAM_1 +ROM:3B3C pop RAM_2 +ROM:3B3E pop RAM_3 +ROM:3B40 lcall ROM_ABBC +ROM:3B43 mov DPTR, #0xF875 +ROM:3B46 mov A, R7 +ROM:3B47 movx @DPTR, A +ROM:3B48 mov DPTR, #0xF873 +ROM:3B4B movx A, @DPTR +ROM:3B4C jnz ROM_3B50 +ROM:3B4E inc DPTR +ROM:3B4F movx A, @DPTR +ROM:3B50 +ROM:3B50 ROM_3B50: ; CODE XREF: ROM_39E2+16A↑j +ROM:3B50 jz ROM_3BCD +ROM:3B52 mov DPTR, #0xF877 +ROM:3B55 movx A, @DPTR +ROM:3B56 jnz ROM_3BCD +ROM:3B58 mov DPTR, #0xF857 +ROM:3B5B movx A, @DPTR +ROM:3B5C jz ROM_3B7B +ROM:3B5E mov DPTR, #0xF850 +ROM:3B61 lcall ROM_37C3 +ROM:3B64 mov R1, A +ROM:3B65 lcall code_891 +ROM:3B68 xrl A, #0x42 +ROM:3B6A jz ROM_3B75 +ROM:3B6C mov A, R1 +ROM:3B6D add A, #1 +ROM:3B6F acall ROM_39DB +ROM:3B71 xrl A, #0x4D +ROM:3B73 jnz ROM_3B78 +ROM:3B75 +ROM:3B75 ROM_3B75: ; CODE XREF: ROM_39E2+188↑j +ROM:3B75 mov R7, #0x2E ; '.' +ROM:3B77 ret +ROM:3B78 ; --------------------------------------------------------------------------- +ROM:3B78 +ROM:3B78 ROM_3B78: ; CODE XREF: ROM_39E2+191↑j +ROM:3B78 mov R7, #0 +ROM:3B7A ret +ROM:3B7B ; --------------------------------------------------------------------------- +ROM:3B7B +ROM:3B7B ROM_3B7B: ; CODE XREF: ROM_39E2+17A↑j +ROM:3B7B mov DPTR, #0xF850 +ROM:3B7E lcall ROM_37C3 +ROM:3B81 mov R1, A +ROM:3B82 lcall code_891 +ROM:3B85 xrl A, #0x42 +ROM:3B87 jnz ROM_3B92 +ROM:3B89 mov A, R1 +ROM:3B8A add A, #1 +ROM:3B8C acall ROM_39DB +ROM:3B8E xrl A, #0x4D +ROM:3B90 jz ROM_3B95 +ROM:3B92 +ROM:3B92 ROM_3B92: ; CODE XREF: ROM_39E2+1A5↑j +ROM:3B92 mov R7, #0x2E ; '.' +ROM:3B94 ret +ROM:3B95 ; --------------------------------------------------------------------------- +ROM:3B95 +ROM:3B95 ROM_3B95: ; CODE XREF: ROM_39E2+1AE↑j +ROM:3B95 mov DPTR, #0xF850 +ROM:3B98 lcall ROM_37C3 +ROM:3B9B add A, #0x1C +ROM:3B9D acall ROM_39DB +ROM:3B9F mov R7, A +ROM:3BA0 mov DPTR, #0xF879 +ROM:3BA3 clr A +ROM:3BA4 movx @DPTR, A +ROM:3BA5 inc DPTR +ROM:3BA6 mov A, R7 +ROM:3BA7 movx @DPTR, A +ROM:3BA8 mov DPTR, #0xF850 +ROM:3BAB inc DPTR +ROM:3BAC movx A, @DPTR +ROM:3BAD mov R2, A +ROM:3BAE inc DPTR +ROM:3BAF movx A, @DPTR +ROM:3BB0 add A, #0x1D +ROM:3BB2 acall ROM_39DB +ROM:3BB4 mov DPTR, #0xF879 +ROM:3BB7 movx A, @DPTR +ROM:3BB8 mov R6, A +ROM:3BB9 inc DPTR +ROM:3BBA movx A, @DPTR +ROM:3BBB mov R7, A +ROM:3BBC mov DPTR, #0xF879 +ROM:3BBF mov A, R6 +ROM:3BC0 movx @DPTR, A +ROM:3BC1 mov R6, A +ROM:3BC2 inc DPTR +ROM:3BC3 mov A, R7 +ROM:3BC4 movx @DPTR, A +ROM:3BC5 xrl A, #1 +ROM:3BC7 orl A, R6 +ROM:3BC8 jz ROM_3BCD +ROM:3BCA mov R7, #0x2D ; '-' +ROM:3BCC ret +ROM:3BCD ; --------------------------------------------------------------------------- +ROM:3BCD +ROM:3BCD ROM_3BCD: ; CODE XREF: ROM_39E2:ROM_3B50↑j +ROM:3BCD ; ROM_39E2+174↑j ... +ROM:3BCD mov DPTR, #0xF873 +ROM:3BD0 movx A, @DPTR +ROM:3BD1 mov R4, A +ROM:3BD2 inc DPTR +ROM:3BD3 movx A, @DPTR +ROM:3BD4 mov R5, A +ROM:3BD5 mov DPTR, #0xF86C +ROM:3BD8 acall load_3_bytes_R1_R2_A +ROM:3BDA mov DPTR, #0xF882 +ROM:3BDD xch A, R1 +ROM:3BDE acall Save_3_bytes_A_R2_R1 +ROM:3BE0 mov DPTR, #0xF868 +ROM:3BE3 movx A, @DPTR +ROM:3BE4 mov R7, A +ROM:3BE5 inc DPTR +ROM:3BE6 movx A, @DPTR +ROM:3BE7 mov DPTR, #0xF885 +ROM:3BEA xch A, R7 +ROM:3BEB movx @DPTR, A +ROM:3BEC inc DPTR +ROM:3BED mov A, R7 +ROM:3BEE movx @DPTR, A +ROM:3BEF mov DPTR, #0xF85F +ROM:3BF2 lcall ROM_37C3 +ROM:3BF5 mov R1, A +ROM:3BF6 lcall ROM_6FF1 +ROM:3BF9 lcall ROM_D74B +ROM:3BFC subb A, #0 +ROM:3BFE jnc ROM_3C02 +ROM:3C00 ajmp ROM_3CEB +ROM:3C02 ; --------------------------------------------------------------------------- +ROM:3C02 +ROM:3C02 ROM_3C02: ; CODE XREF: ROM_39E2+21C↑j +ROM:3C02 mov DPTR, #0xF855 +ROM:3C05 movx A, @DPTR +ROM:3C06 xrl A, #1 +ROM:3C08 jz ROM_3C0C +ROM:3C0A ajmp ROM_3CEB +ROM:3C0C ; --------------------------------------------------------------------------- +ROM:3C0C +ROM:3C0C ROM_3C0C: ; CODE XREF: ROM_39E2+226↑j +ROM:3C0C mov DPTR, #0xF871 +ROM:3C0F movx A, @DPTR +ROM:3C10 mov R4, A +ROM:3C11 inc DPTR +ROM:3C12 movx A, @DPTR +ROM:3C13 mov R5, A +ROM:3C14 subb A, R7 +ROM:3C15 mov A, R4 +ROM:3C16 subb A, R6 +ROM:3C17 jnc ROM_3C1F +ROM:3C19 mov R6, RAM_4 +ROM:3C1B mov R7, RAM_5 +ROM:3C1D sjmp ROM_3C27 +ROM:3C1F ; --------------------------------------------------------------------------- +ROM:3C1F +ROM:3C1F ROM_3C1F: ; CODE XREF: ROM_39E2+235↑j +ROM:3C1F mov DPTR, #0xF86F +ROM:3C22 movx A, @DPTR +ROM:3C23 mov R6, A +ROM:3C24 inc DPTR +ROM:3C25 movx A, @DPTR +ROM:3C26 mov R7, A +ROM:3C27 +ROM:3C27 ROM_3C27: ; CODE XREF: ROM_39E2+23B↑j +ROM:3C27 lcall ROM_D73E +ROM:3C2A movx @DPTR, A +ROM:3C2B mov DPTR, #0xF871 +ROM:3C2E movx A, @DPTR +ROM:3C2F mov R6, A +ROM:3C30 inc DPTR +ROM:3C31 movx A, @DPTR +ROM:3C32 mov R7, A +ROM:3C33 lcall ROM_D731 +ROM:3C36 lcall ROM_D40B +ROM:3C39 mov DPTR, #0xF862 +ROM:3C3C lcall save_4_bytes_R4_R7 +ROM:3C3F mov DPTR, #0xF86A +ROM:3C42 lcall ROM_3758 +ROM:3C45 mov DPTR, #0xF859 +ROM:3C48 movx A, @DPTR +ROM:3C49 subb A, R7 +ROM:3C4A mov R5, A +ROM:3C4B mov DPTR, #0xF858 +ROM:3C4E movx A, @DPTR +ROM:3C4F subb A, R6 +ROM:3C50 acall ROM_3FB9 +ROM:3C52 subb A, #4 +ROM:3C54 jc ROM_3C7D +ROM:3C56 clr A +ROM:3C57 mov R4, A +ROM:3C58 mov R5, A +ROM:3C59 mov DPTR, #0xF862 +ROM:3C5C acall load_3_bytes_R1_R2_A_offset_1 +ROM:3C5E lcall ROM_D889 +ROM:3C61 mov R2, RAM_6 +ROM:3C63 mov R3, RAM_5 +ROM:3C65 push RAM_2 +ROM:3C67 push RAM_1 +ROM:3C69 mov DPTR, #0xF84D +ROM:3C6C acall load_3_bytes_R1_R2_A +ROM:3C6E mov DPTR, #0xF94D +ROM:3C71 xch A, R1 +ROM:3C72 acall Save_3_bytes_A_R2_R1 +ROM:3C74 inc DPTR +ROM:3C75 mov A, #4 +ROM:3C77 movx @DPTR, A +ROM:3C78 inc DPTR +ROM:3C79 mov A, #0x64 ; 'd' +ROM:3C7B sjmp ROM_3CAE +ROM:3C7D ; --------------------------------------------------------------------------- +ROM:3C7D +ROM:3C7D ROM_3C7D: ; CODE XREF: ROM_39E2+272↑j +ROM:3C7D mov DPTR, #0xF86A +ROM:3C80 lcall ROM_3297 +ROM:3C83 mov R5, A +ROM:3C84 mov DPTR, #0xF862 +ROM:3C87 acall load_3_bytes_R1_R2_A_offset_1 +ROM:3C89 lcall ROM_D889 +ROM:3C8C mov R2, RAM_6 +ROM:3C8E mov R3, RAM_5 +ROM:3C90 push RAM_2 +ROM:3C92 push RAM_1 +ROM:3C94 mov DPTR, #0xF84D +ROM:3C97 acall load_3_bytes_R1_R2_A +ROM:3C99 mov DPTR, #0xF94D +ROM:3C9C xch A, R1 +ROM:3C9D acall Save_3_bytes_A_R2_R1 +ROM:3C9F mov DPTR, #0xF86A +ROM:3CA2 lcall ROM_3758 +ROM:3CA5 lcall ROM_D7C0 +ROM:3CA8 mov DPTR, #0xF950 +ROM:3CAB movx @DPTR, A +ROM:3CAC inc DPTR +ROM:3CAD mov A, R7 +ROM:3CAE +ROM:3CAE ROM_3CAE: ; CODE XREF: ROM_39E2+299↑j +ROM:3CAE movx @DPTR, A +ROM:3CAF pop RAM_1 +ROM:3CB1 pop RAM_2 +ROM:3CB3 lcall ROM_78A9 +ROM:3CB6 mov DPTR, #0xF86A +ROM:3CB9 lcall ROM_3758 +ROM:3CBC lcall ROM_D7C0 +ROM:3CBF mov R6, A +ROM:3CC0 clr C +ROM:3CC1 clr A +ROM:3CC2 subb A, R7 +ROM:3CC3 mov A, #4 +ROM:3CC5 subb A, R6 +ROM:3CC6 jnc ROM_3CCE +ROM:3CC8 mov R6, #4 +ROM:3CCA mov R7, #0 +ROM:3CCC sjmp ROM_3CCE +ROM:3CCE ; --------------------------------------------------------------------------- +ROM:3CCE +ROM:3CCE ROM_3CCE: ; CODE XREF: ROM_39E2+2E4↑j +ROM:3CCE ; ROM_39E2+2EA↑j +ROM:3CCE mov DPTR, #0xF85D +ROM:3CD1 mov A, R6 +ROM:3CD2 acall ROM_3FDB +ROM:3CD4 jnz ROM_3CD8 +ROM:3CD6 inc DPTR +ROM:3CD7 movx A, @DPTR +ROM:3CD8 +ROM:3CD8 ROM_3CD8: ; CODE XREF: ROM_39E2+2F2↑j +ROM:3CD8 jnz ROM_3CE0 +ROM:3CDA mov DPTR, #0xF86A +ROM:3CDD movx @DPTR, A +ROM:3CDE inc DPTR +ROM:3CDF movx @DPTR, A +ROM:3CE0 +ROM:3CE0 ROM_3CE0: ; CODE XREF: ROM_39E2:ROM_3CD8↑j +ROM:3CE0 mov DPTR, #0xF84D +ROM:3CE3 acall load_3_bytes_R1_R2_A +ROM:3CE5 mov DPTR, #0xF85A +ROM:3CE8 xch A, R1 +ROM:3CE9 sjmp ROM_3D11 +ROM:3CEB ; --------------------------------------------------------------------------- +ROM:3CEB +ROM:3CEB ROM_3CEB: ; CODE XREF: ROM_39E2+21E↑j +ROM:3CEB ; ROM_39E2+228↑j +ROM:3CEB mov DPTR, #0xF871 +ROM:3CEE lcall ROM_3758 +ROM:3CF1 mov DPTR, #0xF85E +ROM:3CF4 movx A, @DPTR +ROM:3CF5 subb A, R7 +ROM:3CF6 movx @DPTR, A +ROM:3CF7 mov DPTR, #0xF85D +ROM:3CFA movx A, @DPTR +ROM:3CFB subb A, R6 +ROM:3CFC movx @DPTR, A +ROM:3CFD lcall ROM_D731 +ROM:3D00 mov DPTR, #0xF84D +ROM:3D03 lcall ROM_37C3 +ROM:3D06 mov R1, A +ROM:3D07 mov DPTR, #0xF86A +ROM:3D0A lcall ROM_716C +ROM:3D0D mov DPTR, #0xF85A +ROM:3D10 mov A, R3 +ROM:3D11 +ROM:3D11 ROM_3D11: ; CODE XREF: ROM_39E2+307↑j +ROM:3D11 acall Save_3_bytes_A_R2_R1 +ROM:3D13 mov DPTR, #0xF873 +ROM:3D16 lcall ROM_3758 +ROM:3D19 mov DPTR, #0xF867 +ROM:3D1C movx A, @DPTR +ROM:3D1D subb A, R7 +ROM:3D1E movx @DPTR, A +ROM:3D1F mov DPTR, #0xF866 +ROM:3D22 movx A, @DPTR +ROM:3D23 subb A, R6 +ROM:3D24 movx @DPTR, A +ROM:3D25 mov DPTR, #0xF869 +ROM:3D28 movx A, @DPTR +ROM:3D29 add A, R7 +ROM:3D2A movx @DPTR, A +ROM:3D2B mov DPTR, #0xF868 +ROM:3D2E movx A, @DPTR +ROM:3D2F addc A, R6 +ROM:3D30 movx @DPTR, A +ROM:3D31 mov DPTR, #0xF875 +ROM:3D34 movx A, @DPTR +ROM:3D35 mov R5, A +ROM:3D36 rlc A +ROM:3D37 subb A, ACC ; Accumulator +ROM:3D39 acall ROM_3FB9 +ROM:3D3B xrl A, #0x80 +ROM:3D3D subb A, #0x80 +ROM:3D3F jc ROM_3D45 +ROM:3D41 mov A, R7 +ROM:3D42 orl A, R6 +ROM:3D43 jz ROM_3D98 +ROM:3D45 +ROM:3D45 ROM_3D45: ; CODE XREF: ROM_39E2+35D↑j +ROM:3D45 acall ROM_3FD2 +ROM:3D47 clr C +ROM:3D48 subb A, #1 +ROM:3D4A mov A, R6 +ROM:3D4B subb A, #0 +ROM:3D4D jc ROM_3DA0 +ROM:3D4F mov A, R5 +ROM:3D50 cpl A +ROM:3D51 jnz ROM_3D55 +ROM:3D53 mov A, R4 +ROM:3D54 cpl A +ROM:3D55 +ROM:3D55 ROM_3D55: ; CODE XREF: ROM_39E2+36F↑j +ROM:3D55 jz ROM_3D7D +ROM:3D57 mov DPTR, #0xF714 +ROM:3D5A lcall load_4_bytes_R0_R1_R2_R3 +ROM:3D5D mov DPTR, #0xF87B +ROM:3D60 lcall ROM_3297 +ROM:3D63 lcall ROM_3275 +ROM:3D66 lcall ROM_2F7B +ROM:3D69 mov DPTR, #0xF714 +ROM:3D6C lcall save_4_bytes_R4_R7 +ROM:3D6F mov DPTR, #0xF850 +ROM:3D72 acall load_3_bytes_R1_R2_A +ROM:3D74 mov DPTR, #0xF85F +ROM:3D77 xch A, R1 +ROM:3D78 acall Save_3_bytes_A_R2_R1 +ROM:3D7A acall ROM_3FC0 +ROM:3D7C movx @DPTR, A +ROM:3D7D +ROM:3D7D ROM_3D7D: ; CODE XREF: ROM_39E2:ROM_3D55↑j +ROM:3D7D mov DPTR, #0xF875 +ROM:3D80 movx A, @DPTR +ROM:3D81 mov R7, A +ROM:3D82 rlc A +ROM:3D83 subb A, ACC ; Accumulator +ROM:3D85 mov R6, A +ROM:3D86 setb C +ROM:3D87 mov A, R7 +ROM:3D88 subb A, #0 +ROM:3D8A mov A, R6 +ROM:3D8B xrl A, #0x80 +ROM:3D8D subb A, #0x80 +ROM:3D8F jnc ROM_3D98 +ROM:3D91 mov A, R7 +ROM:3D92 orl A, R6 +ROM:3D93 jz ROM_3DA0 +ROM:3D95 mov R7, #0x24 ; '$' +ROM:3D97 ret +ROM:3D98 ; --------------------------------------------------------------------------- +ROM:3D98 +ROM:3D98 ROM_3D98: ; CODE XREF: ROM_39E2+361↑j +ROM:3D98 ; ROM_39E2+3AD↑j +ROM:3D98 mov DPTR, #0xF877 +ROM:3D9B movx A, @DPTR +ROM:3D9C inc A +ROM:3D9D movx @DPTR, A +ROM:3D9E ajmp ROM_3A8C +ROM:3DA0 ; --------------------------------------------------------------------------- +ROM:3DA0 +ROM:3DA0 ROM_3DA0: ; CODE XREF: ROM_39E2+36B↑j +ROM:3DA0 ; ROM_39E2+3B1↑j +ROM:3DA0 mov R7, #0 +ROM:3DA2 ret +ROM:3DA2 ; End of function ROM_39E2 +ROM:3DA2 +ROM:3DA3 +ROM:3DA3 ; =============== S U B R O U T I N E ======================================= +ROM:3DA3 +ROM:3DA3 +ROM:3DA3 Save_5_bytes_R4_R5_R3_R2_R1: ; CODE XREF: ROM_7197+5↓p +ROM:3DA3 ; ROM_755B+4↓p +ROM:3DA3 mov A, R4 +ROM:3DA4 movx @DPTR, A +ROM:3DA5 inc DPTR +ROM:3DA6 mov A, R5 +ROM:3DA6 ; End of function Save_5_bytes_R4_R5_R3_R2_R1 +ROM:3DA6 +ROM:3DA7 +ROM:3DA7 ; =============== S U B R O U T I N E ======================================= +ROM:3DA7 +ROM:3DA7 +ROM:3DA7 Save_4bytes_A_R3_R2_R1: ; CODE XREF: ROM_405D+12↓p +ROM:3DA7 ; ROM_7424+2↓p ... +ROM:3DA7 movx @DPTR, A +ROM:3DA8 inc DPTR +ROM:3DA8 ; End of function Save_4bytes_A_R3_R2_R1 +ROM:3DA8 +ROM:3DA9 +ROM:3DA9 ; =============== S U B R O U T I N E ======================================= +ROM:3DA9 +ROM:3DA9 +ROM:3DA9 Save_3_bytes_R3_R2_R1: ; CODE XREF: ROM_9CCA-7D64↑p +ROM:3DA9 ; ROM_67A3-36A6↑p ... +ROM:3DA9 mov A, R3 +ROM:3DA9 ; End of function Save_3_bytes_R3_R2_R1 +ROM:3DA9 +ROM:3DAA +ROM:3DAA ; =============== S U B R O U T I N E ======================================= +ROM:3DAA +ROM:3DAA +ROM:3DAA Save_3_bytes_A_R2_R1: ; CODE XREF: ROM_39E2+E↑p +ROM:3DAA ; ROM_39E2+1E↑p ... +ROM:3DAA movx @DPTR, A +ROM:3DAB inc DPTR +ROM:3DAC mov A, R2 +ROM:3DAD movx @DPTR, A +ROM:3DAE inc DPTR +ROM:3DAF mov A, R1 +ROM:3DB0 movx @DPTR, A +ROM:3DB1 ret +ROM:3DB1 ; End of function Save_3_bytes_A_R2_R1 +ROM:3DB1 +ROM:3DB2 +ROM:3DB2 ; =============== S U B R O U T I N E ======================================= +ROM:3DB2 +ROM:3DB2 +ROM:3DB2 ROM_3DB2: ; CODE XREF: ROM_AD6A+698↓p +ROM:3DB2 ; ROM_AD6A+F0B↓p ... +ROM:3DB2 add A, #0xFF +ROM:3DB4 mov R7, A +ROM:3DB5 mov A, R6 +ROM:3DB6 addc A, #0xFF +ROM:3DB8 mov R6, A +ROM:3DB9 rlc A +ROM:3DBA subb A, ACC ; Accumulator +ROM:3DBC mov R5, A +ROM:3DBD mov R4, A +ROM:3DBE mov DPTR, #0xFDF3 +ROM:3DBE ; End of function ROM_3DB2 +ROM:3DBE +ROM:3DC1 +ROM:3DC1 ; =============== S U B R O U T I N E ======================================= +ROM:3DC1 +ROM:3DC1 +ROM:3DC1 load_4_bytes_R0_R1_R2_A: ; CODE XREF: ROM_2638+1E↑p +ROM:3DC1 ; ROM_2638+3D↑p ... +ROM:3DC1 movx A, @DPTR +ROM:3DC2 mov R0, A +ROM:3DC2 ; End of function load_4_bytes_R0_R1_R2_A +ROM:3DC2 +ROM:3DC3 +ROM:3DC3 ; =============== S U B R O U T I N E ======================================= +ROM:3DC3 +ROM:3DC3 +ROM:3DC3 load_3_bytes_R1_R2_A_offset_1: ; CODE XREF: ROM_39E2+27A↑p +ROM:3DC3 ; ROM_39E2+2A5↑p +ROM:3DC3 inc DPTR +ROM:3DC3 ; End of function load_3_bytes_R1_R2_A_offset_1 +ROM:3DC3 +ROM:3DC4 +ROM:3DC4 ; =============== S U B R O U T I N E ======================================= +ROM:3DC4 +ROM:3DC4 +ROM:3DC4 load_3_bytes_R1_R2_A: ; CODE XREF: ROM_39E2+8↑p +ROM:3DC4 ; ROM_39E2+18↑p ... +ROM:3DC4 movx A, @DPTR +ROM:3DC5 mov R1, A +ROM:3DC6 inc DPTR +ROM:3DC7 movx A, @DPTR +ROM:3DC8 mov R2, A +ROM:3DC9 inc DPTR +ROM:3DCA movx A, @DPTR +ROM:3DCB ret +ROM:3DCB ; End of function load_3_bytes_R1_R2_A +ROM:3DCB +ROM:3DCC +ROM:3DCC ; =============== S U B R O U T I N E ======================================= +ROM:3DCC +ROM:3DCC +ROM:3DCC ROM_3DCC: ; CODE XREF: ROM_79CE+27↓p +ROM:3DCC mov DPTR, #0xF837 +ROM:3DCF acall Save_3_bytes_R3_R2_R1 +ROM:3DD1 inc DPTR +ROM:3DD2 lcall ROM_37C3 +ROM:3DD5 add A, #1 +ROM:3DD7 acall ROM_39DB +ROM:3DD9 mov R7, A +ROM:3DDA mov DPTR, #0xF840 +ROM:3DDD movx @DPTR, A +ROM:3DDE mov DPTR, #0xF83A +ROM:3DE1 acall ROM_3EB2 +ROM:3DE3 lcall code_891 +ROM:3DE6 mov R6, A +ROM:3DE7 mov DPTR, #0xF841 +ROM:3DEA acall ROM_3FC9 +ROM:3DEC mov A, #0x40 ; '@' +ROM:3DEE movx @DPTR, A +ROM:3DEF inc DPTR +ROM:3DF0 mov A, #0x21 ; '!' +ROM:3DF2 movx @DPTR, A +ROM:3DF3 mov A, R1 +ROM:3DF4 add A, #1 +ROM:3DF6 acall ROM_39DB +ROM:3DF8 mov DPTR, #0xF846 +ROM:3DFB movx @DPTR, A +ROM:3DFC mov DPTR, #0xF83A +ROM:3DFF acall ROM_3EB2 +ROM:3E01 lcall code_891 +ROM:3E04 mov DPTR, #0xF847 +ROM:3E07 movx @DPTR, A +ROM:3E08 mov DPTR, #0xF837 +ROM:3E0B lcall ROM_37C3 +ROM:3E0E mov R1, A +ROM:3E0F lcall code_891 +ROM:3E12 mov R7, A +ROM:3E13 mov DPTR, #0xF848 +ROM:3E16 movx @DPTR, A +ROM:3E17 mov A, R1 +ROM:3E18 add A, #1 +ROM:3E1A acall ROM_39DB +ROM:3E1C mov R6, A +ROM:3E1D mov DPTR, #0xF849 +ROM:3E20 movx @DPTR, A +ROM:3E21 mov DPTR, #0xF837 +ROM:3E24 lcall ROM_8F05 +ROM:3E27 acall ROM_39DB +ROM:3E29 mov DPTR, #0xF84A +ROM:3E2C movx @DPTR, A +ROM:3E2D inc DPTR +ROM:3E2E mov A, #0x24 ; '$' +ROM:3E30 acall ROM_3FC9 +ROM:3E32 mov A, #0x3F ; '?' +ROM:3E34 movx @DPTR, A +ROM:3E35 mov DPTR, #0xF837 +ROM:3E38 acall ROM_3EB2 +ROM:3E3A lcall code_891 +ROM:3E3D mov DPTR, #0xF84F +ROM:3E40 movx @DPTR, A +ROM:3E41 clr A +ROM:3E42 inc DPTR +ROM:3E43 movx @DPTR, A +ROM:3E44 +ROM:3E44 ROM_3E44: ; CODE XREF: ROM_3DCC+A7↓j +ROM:3E44 mov DPTR, #0xF850 +ROM:3E47 acall ROM_3FE4 +ROM:3E49 jnc ROM_3E75 +ROM:3E4B movx A, @DPTR +ROM:3E4C mov R6, A +ROM:3E4D add A, #0x48 ; 'H' +ROM:3E4F mov DP0L, A ; Data Pointer Low Byte +ROM:3E51 clr A +ROM:3E52 addc A, #0xF8 +ROM:3E54 mov DP0H, A ; Data Pointer High Byte +ROM:3E56 movx A, @DPTR +ROM:3E57 mov R5, A +ROM:3E58 mov A, #0x40 ; '@' +ROM:3E5A add A, R6 +ROM:3E5B mov DP0L, A ; Data Pointer Low Byte +ROM:3E5D clr A +ROM:3E5E addc A, #0xF8 +ROM:3E60 mov DP0H, A ; Data Pointer High Byte +ROM:3E62 movx A, @DPTR +ROM:3E63 xrl A, R5 +ROM:3E64 mov R6, A +ROM:3E65 mov DPTR, #0xF83D +ROM:3E68 lcall ROM_37C3 +ROM:3E6B add A, R7 +ROM:3E6C mov R1, A +ROM:3E6D clr A +ROM:3E6E addc A, R2 +ROM:3E6F lcall ROM_D89F +ROM:3E72 movx @DPTR, A +ROM:3E73 sjmp ROM_3E44 +ROM:3E75 ; --------------------------------------------------------------------------- +ROM:3E75 +ROM:3E75 ROM_3E75: ; CODE XREF: ROM_3DCC+7D↑j +ROM:3E75 clr A +ROM:3E76 mov DPTR, #0xF850 +ROM:3E79 movx @DPTR, A +ROM:3E7A +ROM:3E7A ROM_3E7A: ; CODE XREF: ROM_3DCC+E0↓j +ROM:3E7A mov DPTR, #0xF850 +ROM:3E7D movx A, @DPTR +ROM:3E7E acall ROM_3FE6 +ROM:3E80 jnc ROM_3EAE +ROM:3E82 mov DPTR, #0xF83D +ROM:3E85 lcall ROM_37C3 +ROM:3E88 mov R1, A +ROM:3E89 mov DPTR, #0xF850 +ROM:3E8C movx A, @DPTR +ROM:3E8D mov R7, A +ROM:3E8E acall ROM_39D9 +ROM:3E90 mov R6, A +ROM:3E91 mov A, R7 +ROM:3E92 mov R5, A +ROM:3E93 clr C +ROM:3E94 mov A, #0xF +ROM:3E96 subb A, R5 +ROM:3E97 mov R5, A +ROM:3E98 clr A +ROM:3E99 subb A, #0 +ROM:3E9B mov R4, A +ROM:3E9C mov DPTR, #0xF83D +ROM:3E9F inc DPTR +ROM:3EA0 movx A, @DPTR +ROM:3EA1 mov R2, A +ROM:3EA2 inc DPTR +ROM:3EA3 movx A, @DPTR +ROM:3EA4 add A, R5 +ROM:3EA5 mov R1, A +ROM:3EA6 mov A, R2 +ROM:3EA7 addc A, R4 +ROM:3EA8 lcall ROM_D89F +ROM:3EAB movx @DPTR, A +ROM:3EAC sjmp ROM_3E7A +ROM:3EAE ; --------------------------------------------------------------------------- +ROM:3EAE +ROM:3EAE ROM_3EAE: ; CODE XREF: ROM_3DCC+B4↑j +ROM:3EAE ret +ROM:3EAE ; End of function ROM_3DCC +ROM:3EAE +ROM:3EAF +ROM:3EAF ; =============== S U B R O U T I N E ======================================= +ROM:3EAF +ROM:3EAF +ROM:3EAF ROM_3EAF: ; CODE XREF: ROM_AD6A+433↓p +ROM:3EAF ; ROM_AD6A+D7B↓p ... +ROM:3EAF mov DPTR, #0xFE0B +ROM:3EAF ; End of function ROM_3EAF +ROM:3EAF +ROM:3EB2 +ROM:3EB2 ; =============== S U B R O U T I N E ======================================= +ROM:3EB2 +ROM:3EB2 +ROM:3EB2 ROM_3EB2: ; CODE XREF: ROM_3861+2E↑p +ROM:3EB2 ; ROM_3861+3F↑p ... +ROM:3EB2 inc DPTR +ROM:3EB3 movx A, @DPTR +ROM:3EB4 mov R2, A +ROM:3EB5 inc DPTR +ROM:3EB6 movx A, @DPTR +ROM:3EB7 mov R1, A +ROM:3EB8 ret +ROM:3EB8 ; End of function ROM_3EB2 +ROM:3EB8 +ROM:3EB9 +ROM:3EB9 ; =============== S U B R O U T I N E ======================================= +ROM:3EB9 +ROM:3EB9 +ROM:3EB9 ROM_3EB9: ; CODE XREF: ROM_3861+25↑p +ROM:3EB9 ; ROM_3861+3A↑p ... +ROM:3EB9 movx @DPTR, A +ROM:3EBA mov DPTR, #0xF841 +ROM:3EBD movx A, @DPTR +ROM:3EBE inc A +ROM:3EBF movx @DPTR, A +ROM:3EC0 ret +ROM:3EC0 ; End of function ROM_3EB9 +ROM:3EC0 +ROM:3EC1 +ROM:3EC1 ; =============== S U B R O U T I N E ======================================= +ROM:3EC1 +ROM:3EC1 +ROM:3EC1 ROM_3EC1: ; CODE XREF: ROM_8588↓p +ROM:3EC1 mov DPTR, #0xF83E +ROM:3EC4 acall Save_3_bytes_R3_R2_R1 +ROM:3EC6 mov A, R7 +ROM:3EC7 acall ROM_3F8A +ROM:3EC9 lcall ROM_37C3 +ROM:3ECC add A, #1 +ROM:3ECE acall ROM_3F82 +ROM:3ED0 dec R7 +ROM:3ED1 mov DPTR, #0xF83E +ROM:3ED4 lcall ROM_37C3 +ROM:3ED7 add A, #2 +ROM:3ED9 acall ROM_3F82 +ROM:3EDB dec R7 +ROM:3EDC mov DPTR, #0xF83E +ROM:3EDF lcall ROM_37C3 +ROM:3EE2 acall ROM_3F80 +ROM:3EE4 dec R7 +ROM:3EE5 mov DPTR, #0xF83E +ROM:3EE8 lcall ROM_37C3 +ROM:3EEB add A, #4 +ROM:3EED acall ROM_3F82 +ROM:3EEF inc R7 +ROM:3EF0 mov DPTR, #0xF83E +ROM:3EF3 lcall ROM_37C3 +ROM:3EF6 add A, #5 +ROM:3EF8 acall ROM_3F82 +ROM:3EFA dec R7 +ROM:3EFB mov DPTR, #0xF83E +ROM:3EFE lcall ROM_37C3 +ROM:3F01 add A, #6 +ROM:3F03 acall ROM_3F82 +ROM:3F05 dec R7 +ROM:3F06 mov DPTR, #0xF83E +ROM:3F09 lcall ROM_37C3 +ROM:3F0C add A, #7 +ROM:3F0E acall ROM_3F82 +ROM:3F10 add A, #0xE2 +ROM:3F12 mov R6, A +ROM:3F13 mov DPTR, #0xF83E +ROM:3F16 lcall ROM_37C3 +ROM:3F19 add A, #8 +ROM:3F1B mov R1, A +ROM:3F1C clr A +ROM:3F1D addc A, R2 +ROM:3F1E mov R2, A +ROM:3F1F mov A, R6 +ROM:3F20 lcall code_8CC +ROM:3F23 mov A, R7 +ROM:3F24 add A, #0x1E +ROM:3F26 mov R6, A +ROM:3F27 mov DPTR, #0xF83E +ROM:3F2A lcall ROM_37C3 +ROM:3F2D add A, #9 +ROM:3F2F mov R1, A +ROM:3F30 clr A +ROM:3F31 addc A, R2 +ROM:3F32 mov R2, A +ROM:3F33 mov A, R6 +ROM:3F34 lcall code_8CC +ROM:3F37 mov DPTR, #0xF83E +ROM:3F3A lcall ROM_37C3 +ROM:3F3D lcall ROM_8775 +ROM:3F40 mov A, #0x33 ; '3' +ROM:3F42 acall ROM_3F8A +ROM:3F44 lcall ROM_37C3 +ROM:3F47 add A, #0xB +ROM:3F49 acall ROM_3F82 +ROM:3F4B inc R7 +ROM:3F4C mov DPTR, #0xF83E +ROM:3F4F lcall ROM_37C3 +ROM:3F52 add A, #0xC +ROM:3F54 acall ROM_3F82 +ROM:3F56 mov DPTR, #0xF83E +ROM:3F59 lcall ROM_37C3 +ROM:3F5C add A, #0xD +ROM:3F5E mov R1, A +ROM:3F5F clr A +ROM:3F60 addc A, R2 +ROM:3F61 mov R2, A +ROM:3F62 mov A, #0xBA +ROM:3F64 lcall code_8CC +ROM:3F67 mov DPTR, #0xF83E +ROM:3F6A lcall ROM_37C3 +ROM:3F6D add A, #0xE +ROM:3F6F mov R1, A +ROM:3F70 clr A +ROM:3F71 addc A, R2 +ROM:3F72 mov R2, A +ROM:3F73 mov A, #0xDA +ROM:3F75 acall ROM_3F8A +ROM:3F77 lcall ROM_37C3 +ROM:3F7A lcall ROM_8784 +ROM:3F7D ljmp code_8CC +ROM:3F7D ; End of function ROM_3EC1 +ROM:3F7D +ROM:3F80 +ROM:3F80 ; =============== S U B R O U T I N E ======================================= +ROM:3F80 +ROM:3F80 +ROM:3F80 ROM_3F80: ; CODE XREF: ROM_3EC1+21↑p +ROM:3F80 ; ROM_85F8+51↓p ... +ROM:3F80 add A, #3 +ROM:3F80 ; End of function ROM_3F80 +ROM:3F80 +ROM:3F82 +ROM:3F82 ; =============== S U B R O U T I N E ======================================= +ROM:3F82 +ROM:3F82 +ROM:3F82 ROM_3F82: ; CODE XREF: ROM_3EC1+D↑p +ROM:3F82 ; ROM_3EC1+18↑p ... +ROM:3F82 mov R1, A +ROM:3F83 clr A +ROM:3F84 addc A, R2 +ROM:3F85 mov R2, A +ROM:3F86 mov A, R7 +ROM:3F87 ljmp code_8CC +ROM:3F87 ; End of function ROM_3F82 +ROM:3F87 +ROM:3F8A +ROM:3F8A ; =============== S U B R O U T I N E ======================================= +ROM:3F8A +ROM:3F8A +ROM:3F8A ROM_3F8A: ; CODE XREF: ROM_3EC1+6↑p +ROM:3F8A ; ROM_3EC1+81↑p ... +ROM:3F8A lcall code_8CC +ROM:3F8D dec R7 +ROM:3F8E mov DPTR, #0xF83E +ROM:3F91 ret +ROM:3F91 ; End of function ROM_3F8A +ROM:3F91 +ROM:3F92 +ROM:3F92 ; =============== S U B R O U T I N E ======================================= +ROM:3F92 +ROM:3F92 +ROM:3F92 ROM_3F92: ; CODE XREF: ROM_3861+4↑p +ROM:3F92 ; ROM_39E2+22↑p +ROM:3F92 movx @DPTR, A +ROM:3F92 ; End of function ROM_3F92 +ROM:3F92 +ROM:3F93 +ROM:3F93 ; =============== S U B R O U T I N E ======================================= +ROM:3F93 +ROM:3F93 +ROM:3F93 ROM_3F93: ; CODE XREF: ROM_39E2+40↑p +ROM:3F93 ; ROM_AD6A+1808↓p +ROM:3F93 inc DPTR +ROM:3F93 ; End of function ROM_3F93 +ROM:3F93 +ROM:3F94 +ROM:3F94 ; =============== S U B R O U T I N E ======================================= +ROM:3F94 +ROM:3F94 +ROM:3F94 ROM_3F94: ; CODE XREF: ROM_4816-25EE↑p +ROM:3F94 ; ROM_628F+12↓j ... +ROM:3F94 movx @DPTR, A +ROM:3F94 ; End of function ROM_3F94 +ROM:3F94 +ROM:3F95 +ROM:3F95 ; =============== S U B R O U T I N E ======================================= +ROM:3F95 +ROM:3F95 +ROM:3F95 ROM_3F95: ; CODE XREF: ROM_78C8+12↓p +ROM:3F95 inc DPTR +ROM:3F96 movx @DPTR, A +ROM:3F97 inc DPTR +ROM:3F98 movx @DPTR, A +ROM:3F99 inc DPTR +ROM:3F9A movx @DPTR, A +ROM:3F9B ret +ROM:3F9B ; End of function ROM_3F95 +ROM:3F9B +ROM:3F9C +ROM:3F9C ; =============== S U B R O U T I N E ======================================= +ROM:3F9C +ROM:3F9C +ROM:3F9C ROM_3F9C: ; CODE XREF: ROM_7FDF↓p +ROM:3F9C clr A +ROM:3F9D mov R7, A +ROM:3F9E mov R6, A +ROM:3F9F +ROM:3F9F ROM_3F9F: ; CODE XREF: ROM_3F9C+1A↓j +ROM:3F9F mov A, R6 +ROM:3FA0 acall ROM_3859 +ROM:3FA2 jnc ROM_3FB8 +ROM:3FA4 mov A, R6 +ROM:3FA5 lcall ROM_79B9 +ROM:3FA8 movx A, @DPTR +ROM:3FA9 xrl A, #1 +ROM:3FAB jnz ROM_3FB5 +ROM:3FAD inc R7 +ROM:3FAE mov A, R7 +ROM:3FAF acall ROM_3859 +ROM:3FB1 jc ROM_3FB5 +ROM:3FB3 mov R7, #4 +ROM:3FB5 +ROM:3FB5 ROM_3FB5: ; CODE XREF: ROM_3F9C+F↑j +ROM:3FB5 ; ROM_3F9C+15↑j +ROM:3FB5 inc R6 +ROM:3FB6 sjmp ROM_3F9F +ROM:3FB8 ; --------------------------------------------------------------------------- +ROM:3FB8 +ROM:3FB8 ROM_3FB8: ; CODE XREF: ROM_3F9C+6↑j +ROM:3FB8 ret +ROM:3FB8 ; End of function ROM_3F9C +ROM:3FB8 +ROM:3FB9 +ROM:3FB9 ; =============== S U B R O U T I N E ======================================= +ROM:3FB9 +ROM:3FB9 +ROM:3FB9 ROM_3FB9: ; CODE XREF: ROM_39E2+26E↑p +ROM:3FB9 ; ROM_39E2+357↑p ... +ROM:3FB9 mov R4, A +ROM:3FBA setb C +ROM:3FBB mov A, R5 +ROM:3FBC subb A, #0 +ROM:3FBE mov A, R4 +ROM:3FBF ret +ROM:3FBF ; End of function ROM_3FB9 +ROM:3FBF +ROM:3FC0 +ROM:3FC0 ; =============== S U B R O U T I N E ======================================= +ROM:3FC0 +ROM:3FC0 +ROM:3FC0 ROM_3FC0: ; CODE XREF: ROM_39E2+20↑p +ROM:3FC0 ; ROM_39E2+398↑p +ROM:3FC0 mov DPTR, #0xF866 +ROM:3FC3 mov A, #4 +ROM:3FC5 movx @DPTR, A +ROM:3FC6 inc DPTR +ROM:3FC7 clr A +ROM:3FC8 ret +ROM:3FC8 ; End of function ROM_3FC0 +ROM:3FC8 +ROM:3FC9 +ROM:3FC9 ; =============== S U B R O U T I N E ======================================= +ROM:3FC9 +ROM:3FC9 +ROM:3FC9 ROM_3FC9: ; CODE XREF: ROM_3DCC+1E↑p +ROM:3FC9 ; ROM_3DCC+64↑p +ROM:3FC9 movx @DPTR, A +ROM:3FCA inc DPTR +ROM:3FCB mov A, R7 +ROM:3FCC movx @DPTR, A +ROM:3FCD inc DPTR +ROM:3FCE mov A, R6 +ROM:3FCF movx @DPTR, A +ROM:3FD0 inc DPTR +ROM:3FD1 ret +ROM:3FD1 ; End of function ROM_3FC9 +ROM:3FD1 +ROM:3FD2 +ROM:3FD2 ; =============== S U B R O U T I N E ======================================= +ROM:3FD2 +ROM:3FD2 +ROM:3FD2 ROM_3FD2: ; CODE XREF: ROM_39E2:ROM_3AA3↑p +ROM:3FD2 ; ROM_39E2:ROM_3D45↑p +ROM:3FD2 mov DPTR, #0xF87B +ROM:3FD5 mov A, R6 +ROM:3FD6 movx @DPTR, A +ROM:3FD7 inc DPTR +ROM:3FD8 mov A, R7 +ROM:3FD9 movx @DPTR, A +ROM:3FDA ret +ROM:3FDA ; End of function ROM_3FD2 +ROM:3FDA +ROM:3FDB +ROM:3FDB ; =============== S U B R O U T I N E ======================================= +ROM:3FDB +ROM:3FDB +ROM:3FDB ROM_3FDB: ; CODE XREF: ROM_39E2+F1↑p +ROM:3FDB ; ROM_39E2+2F0↑p +ROM:3FDB movx @DPTR, A +ROM:3FDC inc DPTR +ROM:3FDD mov A, R7 +ROM:3FDE movx @DPTR, A +ROM:3FDF mov DPTR, #0xF86F +ROM:3FE2 movx A, @DPTR +ROM:3FE3 ret +ROM:3FE3 ; End of function ROM_3FDB +ROM:3FE3 +ROM:3FE4 +ROM:3FE4 ; =============== S U B R O U T I N E ======================================= +ROM:3FE4 +ROM:3FE4 +ROM:3FE4 ROM_3FE4: ; CODE XREF: ROM_3DCC+7B↑p +ROM:3FE4 ; ROM_6C56+E↓p ... +ROM:3FE4 movx A, @DPTR +ROM:3FE5 mov R7, A +ROM:3FE5 ; End of function ROM_3FE4 +ROM:3FE5 +ROM:3FE6 +ROM:3FE6 ; =============== S U B R O U T I N E ======================================= +ROM:3FE6 +ROM:3FE6 +ROM:3FE6 ROM_3FE6: ; CODE XREF: ROM_3DCC+B2↑p +ROM:3FE6 ; ROM_4EB5+31↓p ... +ROM:3FE6 clr C +ROM:3FE6 ; End of function ROM_3FE6 +ROM:3FE6 +ROM:3FE7 +ROM:3FE7 ; =============== S U B R O U T I N E ======================================= +ROM:3FE7 +ROM:3FE7 +ROM:3FE7 ROM_3FE7: ; CODE XREF: ROM_A044+12↓p +ROM:3FE7 subb A, #8 +ROM:3FE9 mov A, #0x80 +ROM:3FEB subb A, #0x80 +ROM:3FED ret +ROM:3FED ; End of function ROM_3FE7 +ROM:3FED +ROM:3FEE +ROM:3FEE ; =============== S U B R O U T I N E ======================================= +ROM:3FEE +ROM:3FEE +ROM:3FEE ROM_3FEE: ; CODE XREF: ROM_4816-247E↑p +ROM:3FEE clr A +ROM:3FEF mov DPTR, #0xF830 +ROM:3FF2 lcall ROM_806A +ROM:3FF5 jnz ROM_401D +ROM:3FF7 lcall ROM_27FB +ROM:3FFA movx A, @DPTR +ROM:3FFB mov R6, A +ROM:3FFC lcall ROM_4056 +ROM:3FFF jz ROM_404C +ROM:4001 mov A, R7 +ROM:4002 lcall ROM_81E5 +ROM:4005 jnz ROM_400E +ROM:4007 mov DPTR, #0xF53B +ROM:400A mov A, R6 +ROM:400B movx @DPTR, A +ROM:400C sjmp ROM_4016 +ROM:400E ; --------------------------------------------------------------------------- +ROM:400E +ROM:400E ROM_400E: ; CODE XREF: ROM_3FEE+17↑j +ROM:400E mov DPTR, #0xFDD5 +ROM:4011 movx A, @DPTR +ROM:4012 mov DPTR, #0xF53B +ROM:4015 movx @DPTR, A +ROM:4016 +ROM:4016 ROM_4016: ; CODE XREF: ROM_3FEE+1E↑j +ROM:4016 lcall ROM_2799 +ROM:4019 jnz ROM_4047 +ROM:401B sjmp ROM_403D +ROM:401D ; --------------------------------------------------------------------------- +ROM:401D +ROM:401D ROM_401D: ; CODE XREF: ROM_3FEE+7↑j +ROM:401D lcall ROM_2799 +ROM:4020 jnz ROM_4041 +ROM:4022 mov DPTR, #0xF49B +ROM:4025 movx A, @DPTR +ROM:4026 xrl A, #1 +ROM:4028 jnz ROM_4032 +ROM:402A acall ROM_4052 +ROM:402C jz ROM_404C +ROM:402E mov A, R7 +ROM:402F movx @DPTR, A +ROM:4030 sjmp ROM_403D +ROM:4032 ; --------------------------------------------------------------------------- +ROM:4032 +ROM:4032 ROM_4032: ; CODE XREF: ROM_3FEE+3A↑j +ROM:4032 mov DPTR, #0xF53B +ROM:4035 movx A, @DPTR +ROM:4036 xrl A, #1 +ROM:4038 jz ROM_404C +ROM:403A mov A, #1 +ROM:403C movx @DPTR, A +ROM:403D +ROM:403D ROM_403D: ; CODE XREF: ROM_3FEE+2D↑j +ROM:403D ; ROM_3FEE+42↑j +ROM:403D mov R7, #0x83 +ROM:403F sjmp ROM_4049 +ROM:4041 ; --------------------------------------------------------------------------- +ROM:4041 +ROM:4041 ROM_4041: ; CODE XREF: ROM_3FEE+32↑j +ROM:4041 acall ROM_4052 +ROM:4043 jz ROM_404C +ROM:4045 mov A, R7 +ROM:4046 movx @DPTR, A +ROM:4047 +ROM:4047 ROM_4047: ; CODE XREF: ROM_3FEE+2B↑j +ROM:4047 mov R7, #1 +ROM:4049 +ROM:4049 ROM_4049: ; CODE XREF: ROM_3FEE+51↑j +ROM:4049 lcall ROM_2153 +ROM:404C +ROM:404C ROM_404C: ; CODE XREF: ROM_3FEE+11↑j +ROM:404C ; ROM_3FEE+3E↑j ... +ROM:404C mov DPTR, #0xF830 +ROM:404F movx A, @DPTR +ROM:4050 mov R7, A +ROM:4051 ret +ROM:4051 ; End of function ROM_3FEE +ROM:4051 +ROM:4052 +ROM:4052 ; =============== S U B R O U T I N E ======================================= +ROM:4052 +ROM:4052 +ROM:4052 ROM_4052: ; CODE XREF: ROM_3FEE+3C↑p +ROM:4052 ; ROM_3FEE:ROM_4041↑p +ROM:4052 mov DPTR, #0xF499 +ROM:4052 ; End of function ROM_4052 +ROM:4052 +ROM:4055 +ROM:4055 ; =============== S U B R O U T I N E ======================================= +ROM:4055 +ROM:4055 +ROM:4055 ROM_4055: ; CODE XREF: ROM_405D+57↓p +ROM:4055 movx A, @DPTR +ROM:4055 ; End of function ROM_4055 +ROM:4055 +ROM:4056 +ROM:4056 ; =============== S U B R O U T I N E ======================================= +ROM:4056 +ROM:4056 +ROM:4056 ROM_4056: ; CODE XREF: ROM_3FEE+E↑p +ROM:4056 mov R7, A +ROM:4057 mov DPTR, #0xF53B +ROM:405A movx A, @DPTR +ROM:405B xrl A, R7 +ROM:405C ret +ROM:405C ; End of function ROM_4056 +ROM:405C +ROM:405D +ROM:405D ; =============== S U B R O U T I N E ======================================= +ROM:405D +ROM:405D +ROM:405D ROM_405D: ; CODE XREF: ROM_436B-3D↓p +ROM:405D mov DPTR, #0xF837 +ROM:4060 lcall Save_3_bytes_R3_R2_R1 +ROM:4063 clr A +ROM:4064 inc DPTR +ROM:4065 movx @DPTR, A +ROM:4066 inc DPTR +ROM:4067 inc A +ROM:4068 movx @DPTR, A +ROM:4069 clr A +ROM:406A mov DPTR, #0xF840 +ROM:406D movx @DPTR, A +ROM:406E inc DPTR +ROM:406F lcall Save_4bytes_A_R3_R2_R1 +ROM:4072 add A, #0xE +ROM:4074 mov R1, A +ROM:4075 clr A +ROM:4076 addc A, R2 +ROM:4077 mov R2, A +ROM:4078 lcall ROM_90CB +ROM:407B mov DPTR, #0xFDD1 +ROM:407E movx A, @DPTR +ROM:407F jz ROM_4083 +ROM:4081 clr A +ROM:4082 movx @DPTR, A +ROM:4083 +ROM:4083 ROM_4083: ; CODE XREF: ROM_405D+22↑j +ROM:4083 mov DPTR, #0xF837 +ROM:4086 lcall ROM_37C3 +ROM:4089 acall ROM_42CA +ROM:408B mov R6, B ; B Register +ROM:408D cpl A +ROM:408E jnz ROM_4092 +ROM:4090 mov A, R6 +ROM:4091 cpl A +ROM:4092 +ROM:4092 ROM_4092: ; CODE XREF: ROM_405D+31↑j +ROM:4092 jz ROM_40F1 +ROM:4094 clr A +ROM:4095 mov DPTR, #0xF83B +ROM:4098 movx @DPTR, A +ROM:4099 mov A, R6 +ROM:409A cpl A +ROM:409B jnz ROM_40F1 +ROM:409D mov DPTR, #0xF837 +ROM:40A0 acall ROM_42C5 +ROM:40A2 mov R7, A +ROM:40A3 mov DPTR, #0xF840 +ROM:40A6 movx @DPTR, A +ROM:40A7 mov R6, #0 +ROM:40A9 lcall ROM_81D9 +ROM:40AC jc ROM_40F1 +ROM:40AE mov A, R7 +ROM:40AF lcall ROM_7DBB +ROM:40B2 jnc ROM_40F1 +ROM:40B4 acall ROM_4055 +ROM:40B6 jz ROM_40F1 +ROM:40B8 lcall ROM_214F +ROM:40BB mov DPTR, #0xF840 +ROM:40BE movx A, @DPTR +ROM:40BF mov DPTR, #0xF499 +ROM:40C2 movx @DPTR, A +ROM:40C3 mov DPTR, #0xF837 +ROM:40C6 lcall ROM_37C3 +ROM:40C9 add A, #9 +ROM:40CB lcall ROM_87A6 +ROM:40CE mov DPTR, #0xF556 +ROM:40D1 lcall save_4_bytes_R4_R7 +ROM:40D4 lcall ROM_D538 +ROM:40D7 mov A, #0xD1 +ROM:40D9 movx @DPTR, A +ROM:40DA mov DPTR, #0xF556 +ROM:40DD lcall load_4_bytes_R4_R5_R6_A +ROM:40E0 mov R7, A +ROM:40E1 acall ROM_47D7 +ROM:40E3 mov DPTR, #0xF841 +ROM:40E6 movx A, @DPTR +ROM:40E7 mov DPTR, #0xF671 +ROM:40EA movx @DPTR, A +ROM:40EB mov DPTR, #0xF83B +ROM:40EE mov A, #2 +ROM:40F0 movx @DPTR, A +ROM:40F1 +ROM:40F1 ROM_40F1: ; CODE XREF: ROM_405D:ROM_4092↑j +ROM:40F1 ; ROM_405D+3E↑j ... +ROM:40F1 mov DPTR, #0xF842 +ROM:40F4 lcall ROM_37C3 +ROM:40F7 add A, #0x12 +ROM:40F9 lcall ROM_39DB +ROM:40FC mov DPTR, #0xF83A +ROM:40FF movx @DPTR, A +ROM:4100 jz ROM_410F +ROM:4102 lcall ROM_27B1 +ROM:4105 jnz ROM_410F +ROM:4107 mov DPTR, #0xF83A +ROM:410A movx A, @DPTR +ROM:410B mov R7, A +ROM:410C lcall code_1FF4 +ROM:410F +ROM:410F ROM_410F: ; CODE XREF: ROM_405D+A3↑j +ROM:410F ; ROM_405D+A8↑j +ROM:410F mov DPTR, #0xF83B +ROM:4112 movx A, @DPTR +ROM:4113 jnz ROM_411C +ROM:4115 lcall ROM_2F47 +ROM:4118 acall ROM_418D +ROM:411A sjmp ROM_4174 +ROM:411C ; --------------------------------------------------------------------------- +ROM:411C +ROM:411C ROM_411C: ; CODE XREF: ROM_405D+B6↑j +ROM:411C mov DPTR, #0xF83B +ROM:411F movx A, @DPTR +ROM:4120 xrl A, #2 +ROM:4122 jnz ROM_415F +ROM:4124 acall ROM_41A1 +ROM:4126 movx A, @DPTR +ROM:4127 subb A, #0 +ROM:4129 jc ROM_4143 +ROM:412B lcall ROM_935F +ROM:412E mov R6, A +ROM:412F mov A, R7 +ROM:4130 mov R0, #2 +ROM:4132 +ROM:4132 ROM_4132: ; CODE XREF: ROM_405D+DA↓j +ROM:4132 xch A, R6 +ROM:4133 clr C +ROM:4134 rrc A +ROM:4135 xch A, R6 +ROM:4136 rrc A +ROM:4137 djnz R0, ROM_4132 +ROM:4139 mov R5, A +ROM:413A mov R4, RAM_6 +ROM:413C lcall ROM_D7AD +ROM:413F acall ROM_4193 +ROM:4141 sjmp ROM_415B +ROM:4143 ; --------------------------------------------------------------------------- +ROM:4143 +ROM:4143 ROM_4143: ; CODE XREF: ROM_405D+CC↑j +ROM:4143 lcall ROM_935F +ROM:4146 mov R6, A +ROM:4147 mov A, R7 +ROM:4148 mov R0, #2 +ROM:414A +ROM:414A ROM_414A: ; CODE XREF: ROM_405D+F2↓j +ROM:414A xch A, R6 +ROM:414B clr C +ROM:414C rrc A +ROM:414D xch A, R6 +ROM:414E rrc A +ROM:414F djnz R0, ROM_414A +ROM:4151 mov R5, A +ROM:4152 mov R4, RAM_6 +ROM:4154 mov R7, RAM_3 +ROM:4156 mov R6, RAM_2 +ROM:4158 lcall ROM_8F33 +ROM:415B +ROM:415B ROM_415B: ; CODE XREF: ROM_405D+E4↑j +ROM:415B acall ROM_418D +ROM:415D sjmp ROM_4174 +ROM:415F ; --------------------------------------------------------------------------- +ROM:415F +ROM:415F ROM_415F: ; CODE XREF: ROM_405D+C5↑j +ROM:415F acall ROM_419B +ROM:4161 movx A, @DPTR +ROM:4162 subb A, #0 +ROM:4164 jc ROM_416C +ROM:4166 acall ROM_47C9 +ROM:4168 acall ROM_4193 +ROM:416A sjmp ROM_4172 +ROM:416C ; --------------------------------------------------------------------------- +ROM:416C +ROM:416C ROM_416C: ; CODE XREF: ROM_405D+107↑j +ROM:416C lcall ROM_D7E0 +ROM:416F lcall ROM_8F33 +ROM:4172 +ROM:4172 ROM_4172: ; CODE XREF: ROM_405D+10D↑j +ROM:4172 acall ROM_418D +ROM:4174 +ROM:4174 ROM_4174: ; CODE XREF: ROM_405D+BD↑j +ROM:4174 ; ROM_405D+100↑j +ROM:4174 mov DPTR, #0xF83C +ROM:4177 lcall load_4_bytes_R4_R5_R6_A +ROM:417A mov R7, A +ROM:417B clr A +ROM:417C mov R3, #0x64 ; 'd' +ROM:417E lcall ROM_2E5C +ROM:4181 acall ROM_418D +ROM:4183 mov DPTR, #0xF83C +ROM:4186 lcall load_4_bytes_R4_R5_R6_A +ROM:4189 mov R7, A +ROM:418A ljmp ROM_2E66 +ROM:418A ; End of function ROM_405D +ROM:418A +ROM:418D +ROM:418D ; =============== S U B R O U T I N E ======================================= +ROM:418D +ROM:418D +ROM:418D ROM_418D: ; CODE XREF: ROM_436B-10BD↑p +ROM:418D ; ROM_405D+BB↑p ... +ROM:418D mov DPTR, #0xF83C +ROM:4190 ljmp save_4_bytes_R4_R7 +ROM:4190 ; End of function ROM_418D +ROM:4190 +ROM:4193 +ROM:4193 ; =============== S U B R O U T I N E ======================================= +ROM:4193 +ROM:4193 +ROM:4193 ROM_4193: ; CODE XREF: ROM_405D+E2↑p +ROM:4193 ; ROM_405D+10B↑p ... +ROM:4193 mov R6, RAM_4 +ROM:4195 mov R7, RAM_5 +ROM:4197 clr A +ROM:4198 mov R4, A +ROM:4199 mov R5, A +ROM:419A ret +ROM:419A ; End of function ROM_4193 +ROM:419A +ROM:419B +ROM:419B ; =============== S U B R O U T I N E ======================================= +ROM:419B +ROM:419B +ROM:419B ROM_419B: ; CODE XREF: ROM_2916+73↑p +ROM:419B ; ROM_405D:ROM_415F↑p ... +ROM:419B mov DPTR, #0xFDC6 +ROM:419E mov A, #6 +ROM:41A0 movx @DPTR, A +ROM:41A0 ; End of function ROM_419B +ROM:41A0 +ROM:41A1 +ROM:41A1 ; =============== S U B R O U T I N E ======================================= +ROM:41A1 +ROM:41A1 +ROM:41A1 ROM_41A1: ; CODE XREF: ROM_405D+C7↑p +ROM:41A1 mov DPTR, #0xFB7E +ROM:41A4 movx A, @DPTR +ROM:41A5 mov R7, A +ROM:41A6 setb C +ROM:41A6 ; End of function ROM_41A1 +ROM:41A6 +ROM:41A7 +ROM:41A7 ; =============== S U B R O U T I N E ======================================= +ROM:41A7 +ROM:41A7 +ROM:41A7 ROM_41A7: ; CODE XREF: ROM_9211+18↓p +ROM:41A7 mov DPTR, #0xFB7D +ROM:41AA movx A, @DPTR +ROM:41AB subb A, R7 +ROM:41AC mov DPTR, #0xFB7C +ROM:41AF ret +ROM:41AF ; End of function ROM_41A7 +ROM:41AF +ROM:41B0 +ROM:41B0 ; =============== S U B R O U T I N E ======================================= +ROM:41B0 +ROM:41B0 +ROM:41B0 ROM_41B0: ; CODE XREF: ROM_436B-32↓p +ROM:41B0 mov DPTR, #0xF837 +ROM:41B3 lcall Save_3_bytes_R3_R2_R1 +ROM:41B6 clr A +ROM:41B7 inc DPTR +ROM:41B8 movx @DPTR, A +ROM:41B9 mov DPTR, #0xF83F +ROM:41BC lcall Save_3_bytes_R3_R2_R1 +ROM:41BF lcall ROM_D51A +ROM:41C2 lcall ROM_90CB +ROM:41C5 mov DPTR, #0xF83F +ROM:41C8 lcall ROM_37C3 +ROM:41CB add A, #0x30 ; '0' +ROM:41CD lcall ROM_39DB +ROM:41D0 mov DPTR, #0xF83A +ROM:41D3 movx @DPTR, A +ROM:41D4 mov DPTR, #0xF837 +ROM:41D7 lcall ROM_37C3 +ROM:41DA add A, #9 +ROM:41DC mov R1, A +ROM:41DD clr A +ROM:41DE addc A, R2 +ROM:41DF mov R2, A +ROM:41E0 mov DPTR, #0xF544 +ROM:41E3 movx A, @DPTR +ROM:41E4 rrc A +ROM:41E5 rrc A +ROM:41E6 rrc A +ROM:41E7 anl A, #0x1F +ROM:41E9 mov R6, #0 +ROM:41EB add A, R1 +ROM:41EC mov R1, A +ROM:41ED mov A, R6 +ROM:41EE addc A, R2 +ROM:41EF mov R2, A +ROM:41F0 lcall code_891 +ROM:41F3 mov R5, A +ROM:41F4 mov R4, #0 +ROM:41F6 mov DPTR, #0xF544 +ROM:41F9 movx A, @DPTR +ROM:41FA anl A, #7 +ROM:41FC mov R7, A +ROM:41FD mov A, #1 +ROM:41FF mov R0, RAM_7 +ROM:4201 inc R0 +ROM:4202 sjmp ROM_4209 +ROM:4204 ; --------------------------------------------------------------------------- +ROM:4204 +ROM:4204 ROM_4204: ; CODE XREF: ROM_41B0:ROM_4209↓j +ROM:4204 clr C +ROM:4205 rlc A +ROM:4206 xch A, R6 +ROM:4207 rlc A +ROM:4208 xch A, R6 +ROM:4209 +ROM:4209 ROM_4209: ; CODE XREF: ROM_41B0+52↑j +ROM:4209 djnz R0, ROM_4204 +ROM:420B mov R7, A +ROM:420C mov A, R6 +ROM:420D anl A, R4 +ROM:420E mov R6, A +ROM:420F mov A, R7 +ROM:4210 anl A, R5 +ROM:4211 orl A, R6 +ROM:4212 jz ROM_422B +ROM:4214 acall ROM_419B +ROM:4216 movx A, @DPTR +ROM:4217 subb A, #0 +ROM:4219 jc ROM_4221 +ROM:421B acall ROM_47C9 +ROM:421D acall ROM_4193 +ROM:421F sjmp ROM_4227 +ROM:4221 ; --------------------------------------------------------------------------- +ROM:4221 +ROM:4221 ROM_4221: ; CODE XREF: ROM_41B0+69↑j +ROM:4221 lcall ROM_D7E0 +ROM:4224 lcall ROM_8F33 +ROM:4227 +ROM:4227 ROM_4227: ; CODE XREF: ROM_41B0+6F↑j +ROM:4227 acall ROM_42BF +ROM:4229 sjmp ROM_42A6 +ROM:422B ; --------------------------------------------------------------------------- +ROM:422B +ROM:422B ROM_422B: ; CODE XREF: ROM_41B0+62↑j +ROM:422B mov DPTR, #0xF837 +ROM:422E lcall ROM_37C3 +ROM:4231 acall ROM_42CA +ROM:4233 xrl A, #0x87 +ROM:4235 jnz ROM_428A +ROM:4237 mov A, B ; B Register +ROM:4239 mov R7, A +ROM:423A mov DPTR, #0x53C +ROM:423D clr A +ROM:423E movc A, @A+DPTR +ROM:423F xrl A, R7 +ROM:4240 jnz ROM_4243 +ROM:4242 clr A +ROM:4243 +ROM:4243 ROM_4243: ; CODE XREF: ROM_41B0+90↑j +ROM:4243 jz ROM_428A +ROM:4245 mov DPTR, #0xFDC6 +ROM:4248 movx A, @DPTR +ROM:4249 xrl A, #9 +ROM:424B jz ROM_425D +ROM:424D mov A, #9 +ROM:424F movx @DPTR, A +ROM:4250 lcall ROM_35E1 +ROM:4253 lcall ROM_A8DC +ROM:4256 lcall ROM_3291 +ROM:4259 mov R5, A +ROM:425A lcall ROM_3588 +ROM:425D +ROM:425D ROM_425D: ; CODE XREF: ROM_41B0+9B↑j +ROM:425D mov DPTR, #0xFDD1 +ROM:4260 mov A, #1 +ROM:4262 movx @DPTR, A +ROM:4263 mov DPTR, #0xFB7E +ROM:4266 movx A, @DPTR +ROM:4267 mov R1, A +ROM:4268 lcall ROM_938C +ROM:426B setb C +ROM:426C subb A, R7 +ROM:426D mov A, R2 +ROM:426E subb A, #0 +ROM:4270 jc ROM_4279 +ROM:4272 clr A +ROM:4273 mov R7, #0xA +ROM:4275 mov R6, A +ROM:4276 mov R5, A +ROM:4277 sjmp ROM_4285 +ROM:4279 ; --------------------------------------------------------------------------- +ROM:4279 +ROM:4279 ROM_4279: ; CODE XREF: ROM_41B0+C0↑j +ROM:4279 mov A, R1 +ROM:427A clr C +ROM:427B subb A, R3 +ROM:427C mov R7, A +ROM:427D clr A +ROM:427E subb A, R2 +ROM:427F mov R6, A +ROM:4280 acall ROM_47B5 +ROM:4282 lcall ROM_2C5F +ROM:4285 +ROM:4285 ROM_4285: ; CODE XREF: ROM_41B0+C7↑j +ROM:4285 mov R4, A +ROM:4286 acall ROM_42BF +ROM:4288 sjmp ROM_42A6 +ROM:428A ; --------------------------------------------------------------------------- +ROM:428A +ROM:428A ROM_428A: ; CODE XREF: ROM_41B0+85↑j +ROM:428A ; ROM_41B0:ROM_4243↑j +ROM:428A mov DPTR, #0xFDD1 +ROM:428D movx A, @DPTR +ROM:428E jz ROM_4292 +ROM:4290 clr A +ROM:4291 movx @DPTR, A +ROM:4292 +ROM:4292 ROM_4292: ; CODE XREF: ROM_41B0+DE↑j +ROM:4292 mov DPTR, #0xF83A +ROM:4295 movx A, @DPTR +ROM:4296 mov R7, A +ROM:4297 jz ROM_42A1 +ROM:4299 lcall ROM_27B1 +ROM:429C jnz ROM_42A1 +ROM:429E lcall code_1FF4 +ROM:42A1 +ROM:42A1 ROM_42A1: ; CODE XREF: ROM_41B0+E7↑j +ROM:42A1 ; ROM_41B0+EC↑j +ROM:42A1 lcall ROM_2F47 +ROM:42A4 acall ROM_42BF +ROM:42A6 +ROM:42A6 ROM_42A6: ; CODE XREF: ROM_41B0+79↑j +ROM:42A6 ; ROM_41B0+D8↑j +ROM:42A6 mov DPTR, #0xF83B +ROM:42A9 lcall load_4_bytes_R4_R5_R6_A +ROM:42AC mov R7, A +ROM:42AD clr A +ROM:42AE mov R3, #0x64 ; 'd' +ROM:42B0 lcall ROM_2E5C +ROM:42B3 acall ROM_42BF +ROM:42B5 mov DPTR, #0xF83B +ROM:42B8 lcall load_4_bytes_R4_R5_R6_A +ROM:42BB mov R7, A +ROM:42BC ljmp ROM_2E66 +ROM:42BC ; End of function ROM_41B0 +ROM:42BC +ROM:42BF +ROM:42BF ; =============== S U B R O U T I N E ======================================= +ROM:42BF +ROM:42BF +ROM:42BF ROM_42BF: ; CODE XREF: ROM_41B0:ROM_4227↑p +ROM:42BF ; ROM_41B0+D6↑p ... +ROM:42BF mov DPTR, #0xF83B +ROM:42C2 ljmp save_4_bytes_R4_R7 +ROM:42C2 ; End of function ROM_42BF +ROM:42C2 +ROM:42C5 +ROM:42C5 ; =============== S U B R O U T I N E ======================================= +ROM:42C5 +ROM:42C5 +ROM:42C5 ROM_42C5: ; CODE XREF: ROM_405D+43↑p +ROM:42C5 ; ROM_436B-6D↓p +ROM:42C5 inc DPTR +ROM:42C6 movx A, @DPTR +ROM:42C7 mov R2, A +ROM:42C8 inc DPTR +ROM:42C9 movx A, @DPTR +ROM:42C9 ; End of function ROM_42C5 +ROM:42C9 +ROM:42CA +ROM:42CA ; =============== S U B R O U T I N E ======================================= +ROM:42CA +ROM:42CA +ROM:42CA ROM_42CA: ; CODE XREF: ROM_405D+2C↑p +ROM:42CA ; ROM_41B0+81↑p +ROM:42CA add A, #7 +ROM:42CA ; End of function ROM_42CA +ROM:42CA +ROM:42CC +ROM:42CC ; =============== S U B R O U T I N E ======================================= +ROM:42CC +ROM:42CC +ROM:42CC ROM_42CC: ; CODE XREF: ROM_4737+33↓p +ROM:42CC ; ROM_ABBC+11D↓p ... +ROM:42CC mov R1, A +ROM:42CD clr A +ROM:42CE addc A, R2 +ROM:42CF mov R2, A +ROM:42D0 ljmp code_9A7 +ROM:42D0 ; End of function ROM_42CC +ROM:42D0 +ROM:42D3 ; --------------------------------------------------------------------------- +ROM:42D3 ; START OF FUNCTION CHUNK FOR ROM_436B +ROM:42D3 +ROM:42D3 ROM_42D3: ; CODE XREF: ROM_436B+D3↓j +ROM:42D3 mov R2, RAM_6 +ROM:42D5 mov R1, RAM_7 +ROM:42D7 mov R3, #1 +ROM:42D9 mov DPTR, #0xF834 +ROM:42DC lcall Save_3_bytes_R3_R2_R1 +ROM:42DF add A, #2 +ROM:42E1 mov R1, A +ROM:42E2 clr A +ROM:42E3 addc A, R2 +ROM:42E4 mov R2, A +ROM:42E5 acall ROM_4737 +ROM:42E7 mov DPTR, #0xF834 +ROM:42EA lcall ROM_37C3 +ROM:42ED add A, #1 +ROM:42EF lcall ROM_39DB +ROM:42F2 mov R5, A +ROM:42F3 anl A, #0xF +ROM:42F5 add A, #0xB +ROM:42F7 mov DPTR, #0xF53C +ROM:42FA movx @DPTR, A +ROM:42FB mov DPTR, #0xF834 +ROM:42FE acall ROM_42C5 +ROM:4300 mov R7, A +ROM:4301 mov R6, B ; B Register +ROM:4303 cjne R6, #0xFF, ROM_430D +ROM:4306 cjne R7, #0xFF, ROM_430D +ROM:4309 mov A, R5 +ROM:430A acall ROM_47E4 +ROM:430C movx @DPTR, A +ROM:430D +ROM:430D ROM_430D: ; CODE XREF: ROM_436B-68↑j +ROM:430D ; ROM_436B-65↑j +ROM:430D mov DPTR, #0xF834 +ROM:4310 lcall ROM_37C3 +ROM:4313 mov R1, A +ROM:4314 lcall code_891 +ROM:4317 add A, #0x2F ; '/' +ROM:4319 jz ROM_4327 +ROM:431B dec A +ROM:431C jz ROM_4332 +ROM:431E add A, #2 +ROM:4320 jnz ROM_433B +ROM:4322 lcall ROM_91AA +ROM:4325 sjmp ROM_433B +ROM:4327 ; --------------------------------------------------------------------------- +ROM:4327 +ROM:4327 ROM_4327: ; CODE XREF: ROM_436B-52↑j +ROM:4327 mov DPTR, #0xF834 +ROM:432A lcall ROM_37C3 +ROM:432D mov R1, A +ROM:432E acall ROM_405D +ROM:4330 sjmp ROM_433B +ROM:4332 ; --------------------------------------------------------------------------- +ROM:4332 +ROM:4332 ROM_4332: ; CODE XREF: ROM_436B-4F↑j +ROM:4332 mov DPTR, #0xF834 +ROM:4335 lcall ROM_37C3 +ROM:4338 mov R1, A +ROM:4339 acall ROM_41B0 +ROM:433B +ROM:433B ROM_433B: ; CODE XREF: ROM_436B-4B↑j +ROM:433B ; ROM_436B-46↑j ... +ROM:433B mov DPTR, #0xFDD2 +ROM:433E movx A, @DPTR +ROM:433F xrl A, #1 +ROM:4341 jnz ROM_436A +ROM:4343 lcall ROM_695B +ROM:4346 jnz ROM_436A +ROM:4348 acall ROM_47C6 +ROM:434A lcall ROM_9388 +ROM:434D lcall ROM_D655 +ROM:4350 addc A, R4 +ROM:4351 mov R6, A +ROM:4352 clr A +ROM:4353 mov R4, A +ROM:4354 mov R5, A +ROM:4355 acall ROM_47BC +ROM:4357 lcall load_4_bytes_R4_R5_R6_A +ROM:435A mov R7, A +ROM:435B clr A +ROM:435C mov R3, #0x64 ; 'd' +ROM:435E lcall ROM_2E5C +ROM:4361 acall ROM_47BC +ROM:4363 lcall load_4_bytes_R4_R5_R6_A +ROM:4366 mov R7, A +ROM:4367 lcall ROM_2E66 +ROM:436A +ROM:436A ROM_436A: ; CODE XREF: ROM_436B-2A↑j +ROM:436A ; ROM_436B-25↑j +ROM:436A ret +ROM:436A ; END OF FUNCTION CHUNK FOR ROM_436B +ROM:436B +ROM:436B ; =============== S U B R O U T I N E ======================================= +ROM:436B +ROM:436B +ROM:436B ROM_436B: ; CODE XREF: ROM_7B9E+18C↓p +ROM:436B +ROM:436B ; FUNCTION CHUNK AT ROM:2F83 SIZE 00000037 BYTES +ROM:436B ; FUNCTION CHUNK AT ROM:329F SIZE 000002E9 BYTES +ROM:436B ; FUNCTION CHUNK AT ROM:42D3 SIZE 00000098 BYTES +ROM:436B ; FUNCTION CHUNK AT ROM:44E6 SIZE 0000016E BYTES +ROM:436B ; FUNCTION CHUNK AT ROM:465C SIZE 000000D6 BYTES +ROM:436B ; FUNCTION CHUNK AT ROM:63FD SIZE 00000235 BYTES +ROM:436B ; FUNCTION CHUNK AT ROM:D1D9 SIZE 00000056 BYTES +ROM:436B +ROM:436B mov DPTR, #0xF82D +ROM:436E acall ROM_47DD +ROM:4370 inc DPTR +ROM:4371 movx @DPTR, A +ROM:4372 mov DPTR, #0xFDC6 +ROM:4375 movx A, @DPTR +ROM:4376 mov R1, A +ROM:4377 mov R3, A +ROM:4378 mov R2, #0 +ROM:437A xrl A, #0xF +ROM:437C jnz ROM_4383 +ROM:437E acall ROM_47AC +ROM:4380 mov R7, A +ROM:4381 ajmp ROM_465C +ROM:4383 ; --------------------------------------------------------------------------- +ROM:4383 +ROM:4383 ROM_4383: ; CODE XREF: ROM_436B+11↑j +ROM:4383 acall ROM_47AC +ROM:4385 mov R7, A +ROM:4386 add A, #0xA +ROM:4388 acall ROM_44DE +ROM:438A add A, #0x80 +ROM:438C jnz ROM_4390 +ROM:438E ajmp ROM_4478 +ROM:4390 ; --------------------------------------------------------------------------- +ROM:4390 +ROM:4390 ROM_4390: ; CODE XREF: ROM_436B+21↑j +ROM:4390 add A, #0xD9 +ROM:4392 jnz ROM_4396 +ROM:4394 ajmp ROM_4464 +ROM:4396 ; --------------------------------------------------------------------------- +ROM:4396 +ROM:4396 ROM_4396: ; CODE XREF: ROM_436B+27↑j +ROM:4396 add A, #0xFA +ROM:4398 jnz ROM_439C +ROM:439A ajmp ROM_4449 +ROM:439C ; --------------------------------------------------------------------------- +ROM:439C +ROM:439C ROM_439C: ; CODE XREF: ROM_436B+2D↑j +ROM:439C add A, #0xDD +ROM:439E add A, #0xFD +ROM:43A0 jnc ROM_43B6 +ROM:43A2 add A, #0xFB +ROM:43A4 jnz ROM_43A8 +ROM:43A6 ajmp ROM_4440 +ROM:43A8 ; --------------------------------------------------------------------------- +ROM:43A8 +ROM:43A8 ROM_43A8: ; CODE XREF: ROM_436B+39↑j +ROM:43A8 add A, #0xFA +ROM:43AA jnz ROM_43AE +ROM:43AC ajmp ROM_4450 +ROM:43AE ; --------------------------------------------------------------------------- +ROM:43AE +ROM:43AE ROM_43AE: ; CODE XREF: ROM_436B+3F↑j +ROM:43AE add A, #0xE5 +ROM:43B0 jnz ROM_43B4 +ROM:43B2 ajmp ROM_445D +ROM:43B4 ; --------------------------------------------------------------------------- +ROM:43B4 +ROM:43B4 ROM_43B4: ; CODE XREF: ROM_436B+45↑j +ROM:43B4 ajmp ROM_449E +ROM:43B6 ; --------------------------------------------------------------------------- +ROM:43B6 +ROM:43B6 ROM_43B6: ; CODE XREF: ROM_436B+35↑j +ROM:43B6 mov A, R3 +ROM:43B7 xrl A, #8 +ROM:43B9 orl A, R2 +ROM:43BA jz ROM_43C3 +ROM:43BC mov A, R1 +ROM:43BD xrl A, #9 +ROM:43BF jz ROM_43C3 +ROM:43C1 ajmp ROM_449E +ROM:43C3 ; --------------------------------------------------------------------------- +ROM:43C3 +ROM:43C3 ROM_43C3: ; CODE XREF: ROM_436B+4F↑j +ROM:43C3 ; ROM_436B+54↑j +ROM:43C3 mov R2, RAM_6 +ROM:43C5 mov R1, RAM_7 +ROM:43C7 mov R3, #1 +ROM:43C9 acall ROM_47EB +ROM:43CB mov A, R7 +ROM:43CC jz ROM_43D0 +ROM:43CE ajmp ROM_449E +ROM:43D0 ; --------------------------------------------------------------------------- +ROM:43D0 +ROM:43D0 ROM_43D0: ; CODE XREF: ROM_436B+61↑j +ROM:43D0 lcall ROM_2FCD +ROM:43D3 acall ROM_44CB +ROM:43D5 acall ROM_44C2 +ROM:43D7 movx A, @DPTR +ROM:43D8 add A, #0x11 +ROM:43DA mov DPTR, #0xF82F +ROM:43DD movx @DPTR, A +ROM:43DE mov A, R5 +ROM:43DF add A, #0xA +ROM:43E1 acall ROM_44C4 +ROM:43E3 movx A, @DPTR +ROM:43E4 add A, #0x2F ; '/' +ROM:43E6 jz ROM_4404 +ROM:43E8 dec A +ROM:43E9 jz ROM_4419 +ROM:43EB add A, #2 +ROM:43ED jnz ROM_4436 +ROM:43EF mov DPTR, #0xF82F +ROM:43F2 lcall ROM_A1A7 +ROM:43F5 jc ROM_4436 +ROM:43F7 acall ROM_44CB +ROM:43F9 add A, #0x19 +ROM:43FB acall ROM_44C4 +ROM:43FD movx A, @DPTR +ROM:43FE mov R6, A +ROM:43FF mov A, R5 +ROM:4400 add A, #0x1A +ROM:4402 sjmp ROM_4431 +ROM:4404 ; --------------------------------------------------------------------------- +ROM:4404 +ROM:4404 ROM_4404: ; CODE XREF: ROM_436B+7B↑j +ROM:4404 mov DPTR, #0xF82F +ROM:4407 lcall ROM_A19E +ROM:440A jc ROM_4436 +ROM:440C acall ROM_44CB +ROM:440E add A, #0x1D +ROM:4410 acall ROM_44C4 +ROM:4412 movx A, @DPTR +ROM:4413 mov R6, A +ROM:4414 mov A, R5 +ROM:4415 add A, #0x1E +ROM:4417 sjmp ROM_4431 +ROM:4419 ; --------------------------------------------------------------------------- +ROM:4419 +ROM:4419 ROM_4419: ; CODE XREF: ROM_436B+7E↑j +ROM:4419 mov DPTR, #0xF82F +ROM:441C movx A, @DPTR +ROM:441D clr C +ROM:441E subb A, #0x43 ; 'C' +ROM:4420 mov A, #0x80 +ROM:4422 subb A, #0x80 +ROM:4424 jc ROM_4436 +ROM:4426 acall ROM_44CB +ROM:4428 add A, #0x3B ; ';' +ROM:442A acall ROM_44C4 +ROM:442C movx A, @DPTR +ROM:442D mov R6, A +ROM:442E mov A, R5 +ROM:442F add A, #0x3C ; '<' +ROM:4431 +ROM:4431 ROM_4431: ; CODE XREF: ROM_436B+97↑j +ROM:4431 ; ROM_436B+AC↑j +ROM:4431 acall ROM_44C4 +ROM:4433 lcall ROM_A18E +ROM:4436 +ROM:4436 ROM_4436: ; CODE XREF: ROM_436B+82↑j +ROM:4436 ; ROM_436B+8A↑j ... +ROM:4436 acall ROM_44D4 +ROM:4438 mov DPTR, #0xF540 +ROM:443B acall ROM_47B4 +ROM:443D mov R6, A +ROM:443E ajmp ROM_42D3 +ROM:4440 ; --------------------------------------------------------------------------- +ROM:4440 +ROM:4440 ROM_4440: ; CODE XREF: ROM_436B+3B↑j +ROM:4440 lcall ROM_2FCC +ROM:4443 acall ROM_449F +ROM:4445 movx A, @DPTR +ROM:4446 mov R5, A +ROM:4447 ajmp ROM_44E6 +ROM:4449 ; --------------------------------------------------------------------------- +ROM:4449 +ROM:4449 ROM_4449: ; CODE XREF: ROM_436B+2F↑j +ROM:4449 acall ROM_449F +ROM:444B movx A, @DPTR +ROM:444C mov R5, A +ROM:444D ljmp ROM_329F +ROM:4450 ; --------------------------------------------------------------------------- +ROM:4450 +ROM:4450 ROM_4450: ; CODE XREF: ROM_436B+41↑j +ROM:4450 lcall ROM_2FCC +ROM:4453 acall ROM_44D4 +ROM:4455 mov DPTR, #0xF53F +ROM:4458 acall ROM_47B4 +ROM:445A mov R6, A +ROM:445B ajmp ROM_4690 +ROM:445D ; --------------------------------------------------------------------------- +ROM:445D +ROM:445D ROM_445D: ; CODE XREF: ROM_436B+47↑j +ROM:445D acall ROM_449F +ROM:445F movx A, @DPTR +ROM:4460 mov R5, A +ROM:4461 ljmp ROM_2F83 +ROM:4464 ; --------------------------------------------------------------------------- +ROM:4464 +ROM:4464 ROM_4464: ; CODE XREF: ROM_436B+29↑j +ROM:4464 mov DPTR, #0xFDC6 +ROM:4467 movx A, @DPTR +ROM:4468 xrl A, #4 +ROM:446A jz ROM_449E +ROM:446C lcall ROM_27B1 +ROM:446F jnz ROM_449E +ROM:4471 acall ROM_449F +ROM:4473 movx A, @DPTR +ROM:4474 mov R5, A +ROM:4475 ljmp ROM_63FD +ROM:4478 ; --------------------------------------------------------------------------- +ROM:4478 +ROM:4478 ROM_4478: ; CODE XREF: ROM_436B+23↑j +ROM:4478 acall ROM_47AC +ROM:447A add A, #0xB +ROM:447C acall ROM_44DE +ROM:447E mov R7, A +ROM:447F xrl A, #2 +ROM:4481 jz ROM_4488 +ROM:4483 mov A, R7 +ROM:4484 xrl A, #1 +ROM:4486 jnz ROM_449E +ROM:4488 +ROM:4488 ROM_4488: ; CODE XREF: ROM_436B+116↑j +ROM:4488 acall ROM_44CB +ROM:448A add A, #0xC +ROM:448C acall ROM_44C4 +ROM:448E lcall ROM_D4C8 +ROM:4491 acall ROM_44C4 +ROM:4493 lcall ROM_D5BA +ROM:4496 jnz ROM_449E +ROM:4498 mov DPTR, #0xFD30 +ROM:449B movx A, @DPTR +ROM:449C inc A +ROM:449D movx @DPTR, A +ROM:449E +ROM:449E ROM_449E: ; CODE XREF: ROM_436B:ROM_43B4↑j +ROM:449E ; ROM_436B+56↑j ... +ROM:449E ret +ROM:449E ; End of function ROM_436B +ROM:449E +ROM:449F +ROM:449F ; =============== S U B R O U T I N E ======================================= +ROM:449F +ROM:449F +ROM:449F ROM_449F: ; CODE XREF: ROM_436B+D8↑p +ROM:449F ; ROM_436B:ROM_4449↑p ... +ROM:449F mov DPTR, #0xF82D +ROM:44A2 movx A, @DPTR +ROM:44A3 mov R6, A +ROM:44A4 inc DPTR +ROM:44A5 movx A, @DPTR +ROM:44A6 mov R7, A +ROM:44A7 add A, #9 +ROM:44A9 mov DP0L, A ; Data Pointer Low Byte +ROM:44AB clr A +ROM:44AC addc A, R6 +ROM:44AD mov DP0H, A ; Data Pointer High Byte +ROM:44AF movx A, @DPTR +ROM:44B0 mov DPTR, #0xF53F +ROM:44B3 movx @DPTR, A +ROM:44B4 mov A, R7 +ROM:44B5 add A, #0xA +ROM:44B7 mov R7, A +ROM:44B8 clr A +ROM:44B9 addc A, R6 +ROM:44BA mov R6, A +ROM:44BB mov DPTR, #0xF82D +ROM:44BE movx A, @DPTR +ROM:44BF mov R4, A +ROM:44C0 inc DPTR +ROM:44C1 movx A, @DPTR +ROM:44C1 ; End of function ROM_449F +ROM:44C1 +ROM:44C2 +ROM:44C2 ; =============== S U B R O U T I N E ======================================= +ROM:44C2 +ROM:44C2 +ROM:44C2 ROM_44C2: ; CODE XREF: ROM_436B+6A↑p +ROM:44C2 add A, #8 +ROM:44C2 ; End of function ROM_44C2 +ROM:44C2 +ROM:44C4 +ROM:44C4 ; =============== S U B R O U T I N E ======================================= +ROM:44C4 +ROM:44C4 +ROM:44C4 ROM_44C4: ; CODE XREF: ROM_436B+76↑p +ROM:44C4 ; ROM_436B+90↑p ... +ROM:44C4 mov DP0L, A ; Data Pointer Low Byte +ROM:44C6 clr A +ROM:44C7 addc A, R4 +ROM:44C8 mov DP0H, A ; Data Pointer High Byte +ROM:44CA ret +ROM:44CA ; End of function ROM_44C4 +ROM:44CA +ROM:44CB +ROM:44CB ; =============== S U B R O U T I N E ======================================= +ROM:44CB +ROM:44CB +ROM:44CB ROM_44CB: ; CODE XREF: ROM_436B+68↑p +ROM:44CB ; ROM_436B+8C↑p ... +ROM:44CB mov DPTR, #0xF82D +ROM:44CE movx A, @DPTR +ROM:44CF mov R4, A +ROM:44D0 inc DPTR +ROM:44D1 movx A, @DPTR +ROM:44D2 mov R5, A +ROM:44D3 ret +ROM:44D3 ; End of function ROM_44CB +ROM:44D3 +ROM:44D4 +ROM:44D4 ; =============== S U B R O U T I N E ======================================= +ROM:44D4 +ROM:44D4 +ROM:44D4 ROM_44D4: ; CODE XREF: ROM_436B:ROM_4436↑p +ROM:44D4 ; ROM_436B+E8↑p +ROM:44D4 mov DPTR, #0xF82D +ROM:44D7 movx A, @DPTR +ROM:44D8 mov R6, A +ROM:44D9 inc DPTR +ROM:44DA movx A, @DPTR +ROM:44DB mov R7, A +ROM:44DB ; End of function ROM_44D4 +ROM:44DB +ROM:44DC +ROM:44DC ; =============== S U B R O U T I N E ======================================= +ROM:44DC +ROM:44DC +ROM:44DC ROM_44DC: ; CODE XREF: ROM_62A4+5E↓p +ROM:44DC add A, #9 +ROM:44DC ; End of function ROM_44DC +ROM:44DC +ROM:44DE +ROM:44DE ; =============== S U B R O U T I N E ======================================= +ROM:44DE +ROM:44DE +ROM:44DE ROM_44DE: ; CODE XREF: ROM_436B+1D↑p +ROM:44DE ; ROM_436B+111↑p ... +ROM:44DE mov DP0L, A ; Data Pointer Low Byte +ROM:44E0 clr A +ROM:44E1 addc A, R6 +ROM:44E2 mov DP0H, A ; Data Pointer High Byte +ROM:44E4 movx A, @DPTR +ROM:44E5 ret +ROM:44E5 ; End of function ROM_44DE +ROM:44E5 +ROM:44E6 ; --------------------------------------------------------------------------- +ROM:44E6 ; START OF FUNCTION CHUNK FOR ROM_436B +ROM:44E6 +ROM:44E6 ROM_44E6: ; CODE XREF: ROM_436B+DC↑j +ROM:44E6 lcall ROM_6797 +ROM:44E9 lcall ROM_D511 +ROM:44EC mov R0, #0x32 ; '2' +ROM:44EE mov R4, #0xF5 +ROM:44F0 lcall ROM_5D63 +ROM:44F3 mov DPTR, #0xF830 +ROM:44F6 lcall ROM_6B7F +ROM:44F9 inc DPTR +ROM:44FA movx A, @DPTR +ROM:44FB dec A +ROM:44FC jnz ROM_4500 +ROM:44FE ajmp ROM_45F8 +ROM:4500 ; --------------------------------------------------------------------------- +ROM:4500 +ROM:4500 ROM_4500: ; CODE XREF: ROM_436B+191↑j +ROM:4500 add A, #0xFD +ROM:4502 jnz ROM_4506 +ROM:4504 ajmp ROM_45F8 +ROM:4506 ; --------------------------------------------------------------------------- +ROM:4506 +ROM:4506 ROM_4506: ; CODE XREF: ROM_436B+197↑j +ROM:4506 add A, #4 +ROM:4508 jz ROM_450C +ROM:450A ajmp ROM_4651 +ROM:450C ; --------------------------------------------------------------------------- +ROM:450C +ROM:450C ROM_450C: ; CODE XREF: ROM_436B+19D↑j +ROM:450C mov DPTR, #0xF48C +ROM:450F movx A, @DPTR +ROM:4510 anl A, #0x7F +ROM:4512 movx @DPTR, A +ROM:4513 mov DP0L, R5 ; Data Pointer Low Byte +ROM:4515 mov DP0H, R4 ; Data Pointer High Byte +ROM:4517 inc DPTR +ROM:4518 inc DPTR +ROM:4519 movx A, @DPTR +ROM:451A mov DPTR, #0xF547 +ROM:451D movx @DPTR, A +ROM:451E mov A, R5 +ROM:451F add A, #3 +ROM:4521 mov R7, A +ROM:4522 clr A +ROM:4523 addc A, R4 +ROM:4524 acall ROM_4732 +ROM:4526 mov DPTR, #0xFDC6 +ROM:4529 movx A, @DPTR +ROM:452A xrl A, #4 +ROM:452C jz ROM_4530 +ROM:452E ajmp ROM_4651 +ROM:4530 ; --------------------------------------------------------------------------- +ROM:4530 +ROM:4530 ROM_4530: ; CODE XREF: ROM_436B+1C1↑j +ROM:4530 lcall ROM_2D85 +ROM:4533 acall ROM_4654 +ROM:4535 add A, #8 +ROM:4537 acall ROM_44DE +ROM:4539 mov R7, A +ROM:453A setb C +ROM:453B lcall ROM_A780 +ROM:453E jnc ROM_4547 +ROM:4540 mov DPTR, #0xF49B +ROM:4543 mov A, R7 +ROM:4544 movx @DPTR, A +ROM:4545 sjmp ROM_454C +ROM:4547 ; --------------------------------------------------------------------------- +ROM:4547 +ROM:4547 ROM_4547: ; CODE XREF: ROM_436B+1D3↑j +ROM:4547 clr A +ROM:4548 mov DPTR, #0xF49B +ROM:454B movx @DPTR, A +ROM:454C +ROM:454C ROM_454C: ; CODE XREF: ROM_436B+1DA↑j +ROM:454C mov DPTR, #0xF832 +ROM:454F lcall ROM_A263 +ROM:4552 mov R4, A +ROM:4553 inc DPTR +ROM:4554 movx A, @DPTR +ROM:4555 add A, #9 +ROM:4557 acall ROM_44C4 +ROM:4559 movx A, @DPTR +ROM:455A mov R5, A +ROM:455B lcall ROM_79CE +ROM:455E mov DPTR, #0xF830 +ROM:4561 movx A, @DPTR +ROM:4562 mov R4, A +ROM:4563 inc DPTR +ROM:4564 movx A, @DPTR +ROM:4565 mov R5, A +ROM:4566 add A, #0xA +ROM:4568 acall ROM_44C4 +ROM:456A movx A, @DPTR +ROM:456B mov R7, A +ROM:456C acall ROM_47F1 +ROM:456E lcall ROM_DA7C +ROM:4571 mov DPTR, #0xF832 +ROM:4574 movx A, @DPTR +ROM:4575 clr C +ROM:4576 subb A, #0xC +ROM:4578 mov A, #0x80 +ROM:457A subb A, #0x80 +ROM:457C jnc ROM_4580 +ROM:457E sjmp ROM_45A0 +ROM:4580 ; --------------------------------------------------------------------------- +ROM:4580 +ROM:4580 ROM_4580: ; CODE XREF: ROM_436B+211↑j +ROM:4580 mov A, R5 +ROM:4581 add A, #0xB +ROM:4583 acall ROM_44C4 +ROM:4585 movx A, @DPTR +ROM:4586 mov R7, A +ROM:4587 anl A, #0xF +ROM:4589 mov DPTR, #0xF506 +ROM:458C lcall ROM_DA7C +ROM:458F mov DPTR, #0xF506 +ROM:4592 movx A, @DPTR +ROM:4593 setb C +ROM:4594 lcall ROM_23E9 +ROM:4597 jnc ROM_45A0 +ROM:4599 inc DPTR +ROM:459A movx A, @DPTR +ROM:459B lcall ROM_4B05 +ROM:459E jc ROM_45A7 +ROM:45A0 +ROM:45A0 ROM_45A0: ; CODE XREF: ROM_436B+213↑j +ROM:45A0 ; ROM_436B+22C↑j +ROM:45A0 clr A +ROM:45A1 mov DPTR, #0xF506 +ROM:45A4 movx @DPTR, A +ROM:45A5 inc DPTR +ROM:45A6 movx @DPTR, A +ROM:45A7 +ROM:45A7 ROM_45A7: ; CODE XREF: ROM_436B+233↑j +ROM:45A7 mov DPTR, #0xF832 +ROM:45AA movx A, @DPTR +ROM:45AB clr C +ROM:45AC subb A, #0xD +ROM:45AE mov A, #0x80 +ROM:45B0 subb A, #0x80 +ROM:45B2 jnc ROM_45B7 +ROM:45B4 clr A +ROM:45B5 sjmp ROM_45BD +ROM:45B7 ; --------------------------------------------------------------------------- +ROM:45B7 +ROM:45B7 ROM_45B7: ; CODE XREF: ROM_436B+247↑j +ROM:45B7 acall ROM_4654 +ROM:45B9 add A, #0xC +ROM:45BB acall ROM_44DE +ROM:45BD +ROM:45BD ROM_45BD: ; CODE XREF: ROM_436B+24A↑j +ROM:45BD mov DPTR, #0xF509 +ROM:45C0 movx @DPTR, A +ROM:45C1 lcall ROM_D40B +ROM:45C4 mov DPTR, #0xF833 +ROM:45C7 lcall save_4_bytes_R4_R7 +ROM:45CA acall ROM_47A5 +ROM:45CC lcall load_4_bytes_R4_R5_R6_A +ROM:45CF mov R7, A +ROM:45D0 lcall code_1F12 +ROM:45D3 acall ROM_47A5 +ROM:45D5 lcall load_4_bytes_R4_R5_R6_A +ROM:45D8 lcall ROM_D8ED +ROM:45DB lcall ROM_373B +ROM:45DE lcall code_1F11 +ROM:45E1 acall ROM_47A5 +ROM:45E3 lcall load_4_bytes_R4_R5_R6_A +ROM:45E6 lcall ROM_D8F4 +ROM:45E9 lcall ROM_373B +ROM:45EC lcall code_1F11 +ROM:45EF lcall ROM_2E48 +ROM:45F2 lcall ROM_6962 +ROM:45F5 ljmp ROM_2E66 +ROM:45F8 ; --------------------------------------------------------------------------- +ROM:45F8 +ROM:45F8 ROM_45F8: ; CODE XREF: ROM_436B+193↑j +ROM:45F8 ; ROM_436B+199↑j +ROM:45F8 acall ROM_4654 +ROM:45FA mov DP0L, A ; Data Pointer Low Byte +ROM:45FC mov DP0H, R6 ; Data Pointer High Byte +ROM:45FE inc DPTR +ROM:45FF movx A, @DPTR +ROM:4600 xrl A, #4 +ROM:4602 jnz ROM_4609 +ROM:4604 mov DPTR, #0xF67B +ROM:4607 inc A +ROM:4608 movx @DPTR, A +ROM:4609 +ROM:4609 ROM_4609: ; CODE XREF: ROM_436B+297↑j +ROM:4609 acall ROM_4654 +ROM:460B add A, #3 +ROM:460D mov R7, A +ROM:460E clr A +ROM:460F addc A, R6 +ROM:4610 acall ROM_4732 +ROM:4612 lcall ROM_5FCC +ROM:4615 jnz ROM_4633 +ROM:4617 mov DPTR, #0xF565 +ROM:461A movx A, @DPTR +ROM:461B jnz ROM_4633 +ROM:461D lcall ROM_AA35 +ROM:4620 lcall ROM_5FD3 +ROM:4623 mov DPTR, #0xF846 +ROM:4626 mov A, #1 +ROM:4628 movx @DPTR, A +ROM:4629 mov R5, #0x10 +ROM:462B mov R4, #0 +ROM:462D lcall ROM_8BB8 +ROM:4630 lcall something_gpio_ROM_AAAA +ROM:4633 +ROM:4633 ROM_4633: ; CODE XREF: ROM_436B+2AA↑j +ROM:4633 ; ROM_436B+2B0↑j +ROM:4633 lcall ROM_D538 +ROM:4636 mov A, #0xD8 +ROM:4638 movx @DPTR, A +ROM:4639 mov DPTR, #0xF55A +ROM:463C lcall load_4_bytes_R4_R5_R6_A +ROM:463F mov R7, A +ROM:4640 acall ROM_47D7 +ROM:4642 clr A +ROM:4643 mov DPTR, #0xF671 +ROM:4646 movx @DPTR, A +ROM:4647 mov DPTR, #0xF555 +ROM:464A inc A +ROM:464B movx @DPTR, A +ROM:464C mov R7, #3 +ROM:464E ljmp ROM_6936 +ROM:4651 ; --------------------------------------------------------------------------- +ROM:4651 +ROM:4651 ROM_4651: ; CODE XREF: ROM_436B+19F↑j +ROM:4651 ; ROM_436B+1C3↑j +ROM:4651 ljmp ROM_2916 +ROM:4651 ; END OF FUNCTION CHUNK FOR ROM_436B +ROM:4654 +ROM:4654 ; =============== S U B R O U T I N E ======================================= +ROM:4654 +ROM:4654 +ROM:4654 ROM_4654: ; CODE XREF: ROM_436B-10B5↑p +ROM:4654 ; ROM_436B+1C8↑p ... +ROM:4654 mov DPTR, #0xF830 +ROM:4657 movx A, @DPTR +ROM:4658 mov R6, A +ROM:4659 inc DPTR +ROM:465A movx A, @DPTR +ROM:465B ret +ROM:465B ; End of function ROM_4654 +ROM:465B +ROM:465C ; --------------------------------------------------------------------------- +ROM:465C ; START OF FUNCTION CHUNK FOR ROM_436B +ROM:465C +ROM:465C ROM_465C: ; CODE XREF: ROM_436B+16↑j +ROM:465C mov R5, RAM_7 +ROM:465E mov R4, RAM_6 +ROM:4660 mov A, R5 +ROM:4661 add A, #0xA +ROM:4663 acall ROM_44C4 +ROM:4665 movx A, @DPTR +ROM:4666 add A, #0x80 +ROM:4668 jnz ROM_468F +ROM:466A mov A, R5 +ROM:466B add A, #0xB +ROM:466D acall ROM_44C4 +ROM:466F movx A, @DPTR +ROM:4670 mov R7, A +ROM:4671 xrl A, #2 +ROM:4673 jz ROM_467A +ROM:4675 mov A, R7 +ROM:4676 xrl A, #1 +ROM:4678 jnz ROM_468F +ROM:467A +ROM:467A ROM_467A: ; CODE XREF: ROM_436B+308↑j +ROM:467A mov A, R5 +ROM:467B add A, #0xC +ROM:467D acall ROM_44C4 +ROM:467F lcall ROM_D4C8 +ROM:4682 acall ROM_44C4 +ROM:4684 lcall ROM_D5BA +ROM:4687 jnz ROM_468F +ROM:4689 mov DPTR, #0xFD30 +ROM:468C movx A, @DPTR +ROM:468D inc A +ROM:468E movx @DPTR, A +ROM:468F +ROM:468F ROM_468F: ; CODE XREF: ROM_436B+2FD↑j +ROM:468F ; ROM_436B+30D↑j ... +ROM:468F ret +ROM:4690 ; --------------------------------------------------------------------------- +ROM:4690 +ROM:4690 ROM_4690: ; CODE XREF: ROM_436B+F0↑j +ROM:4690 mov DPTR, #0xF830 +ROM:4693 acall ROM_47DD +ROM:4695 lcall code_524 +ROM:4698 lcall ROM_2D85 +ROM:469B mov DPTR, #0xF831 +ROM:469E movx A, @DPTR +ROM:469F add A, #7 +ROM:46A1 mov R7, A +ROM:46A2 mov DPTR, #0xF830 +ROM:46A5 lcall ROM_63F4 +ROM:46A8 acall ROM_4737 +ROM:46AA acall ROM_4654 +ROM:46AC add A, #6 +ROM:46AE acall ROM_44DE +ROM:46B0 mov R7, A +ROM:46B1 acall ROM_47E4 +ROM:46B3 movx @DPTR, A +ROM:46B4 mov A, R7 +ROM:46B5 acall ROM_47F1 +ROM:46B7 lcall ROM_27B0 +ROM:46BA jz ROM_46CF +ROM:46BC clr A +ROM:46BD mov DPTR, #0xF546 +ROM:46C0 movx @DPTR, A +ROM:46C1 lcall ROM_6288 +ROM:46C4 lcall ROM_81F6 +ROM:46C7 mov DPTR, #0xFDC6 +ROM:46CA mov A, #8 +ROM:46CC movx @DPTR, A +ROM:46CD sjmp ROM_470C +ROM:46CF ; --------------------------------------------------------------------------- +ROM:46CF +ROM:46CF ROM_46CF: ; CODE XREF: ROM_436B+34F↑j +ROM:46CF acall ROM_4654 +ROM:46D1 add A, #5 +ROM:46D3 acall ROM_44DE +ROM:46D5 mov DPTR, #0xF546 +ROM:46D8 movx @DPTR, A +ROM:46D9 mov DPTR, #0xFDD0 +ROM:46DC movx A, @DPTR +ROM:46DD mov R7, A +ROM:46DE xrl A, #1 +ROM:46E0 jz ROM_46E7 +ROM:46E2 mov A, R7 +ROM:46E3 xrl A, #2 +ROM:46E5 jnz ROM_46FB +ROM:46E7 +ROM:46E7 ROM_46E7: ; CODE XREF: ROM_436B+375↑j +ROM:46E7 lcall ROM_803A +ROM:46EA mov A, R7 +ROM:46EB lcall ROM_81E5 +ROM:46EE jnz ROM_46FB +ROM:46F0 mov DPTR, #0xF50A +ROM:46F3 inc A +ROM:46F4 movx @DPTR, A +ROM:46F5 mov DPTR, #0xF53B +ROM:46F8 lcall ROM_214F +ROM:46FB +ROM:46FB ROM_46FB: ; CODE XREF: ROM_436B+37A↑j +ROM:46FB ; ROM_436B+383↑j +ROM:46FB mov DPTR, #0xFDD1 +ROM:46FE movx A, @DPTR +ROM:46FF mov DPTR, #0xFDC6 +ROM:4702 jnz ROM_4709 +ROM:4704 mov A, #8 +ROM:4706 movx @DPTR, A +ROM:4707 sjmp ROM_470C +ROM:4709 ; --------------------------------------------------------------------------- +ROM:4709 +ROM:4709 ROM_4709: ; CODE XREF: ROM_436B+397↑j +ROM:4709 mov A, #9 +ROM:470B movx @DPTR, A +ROM:470C +ROM:470C ROM_470C: ; CODE XREF: ROM_436B+362↑j +ROM:470C ; ROM_436B+39C↑j +ROM:470C lcall ROM_2F4D +ROM:470F mov DPTR, #0xF832 +ROM:4712 lcall save_4_bytes_R4_R7 +ROM:4715 mov DPTR, #0xF832 +ROM:4718 lcall load_4_bytes_R4_R5_R6_A +ROM:471B mov R7, A +ROM:471C clr A +ROM:471D mov R3, #0x64 ; 'd' +ROM:471F lcall ROM_2E5C +ROM:4722 mov DPTR, #0xF832 +ROM:4725 lcall save_4_bytes_R4_R7 +ROM:4728 mov DPTR, #0xF832 +ROM:472B lcall load_4_bytes_R4_R5_R6_A +ROM:472E mov R7, A +ROM:472F ljmp ROM_2E66 +ROM:472F ; END OF FUNCTION CHUNK FOR ROM_436B +ROM:4732 +ROM:4732 ; =============== S U B R O U T I N E ======================================= +ROM:4732 +ROM:4732 +ROM:4732 ROM_4732: ; CODE XREF: ROM_436B+1B9↑p +ROM:4732 ; ROM_436B+2A5↑p +ROM:4732 mov R2, A +ROM:4733 mov R1, RAM_7 +ROM:4735 mov R3, #1 +ROM:4735 ; End of function ROM_4732 +ROM:4735 +ROM:4737 +ROM:4737 ; =============== S U B R O U T I N E ======================================= +ROM:4737 +ROM:4737 +ROM:4737 ROM_4737: ; CODE XREF: ROM_436B-86↑p +ROM:4737 ; ROM_436B+33D↑p ... +ROM:4737 mov DPTR, #0xF84B +ROM:473A lcall Save_3_bytes_R3_R2_R1 +ROM:473D mov DPTR, #0xF84B +ROM:4740 lcall ROM_37C3 +ROM:4743 mov R1, A +ROM:4744 lcall ROM_D521 +ROM:4747 setb C +ROM:4748 subb A, #0xB8 +ROM:474A mov A, R6 +ROM:474B subb A, #0xB +ROM:474D jc ROM_4767 +ROM:474F mov DPTR, #0xFB7A +ROM:4752 mov A, #0xB +ROM:4754 movx @DPTR, A +ROM:4755 inc DPTR +ROM:4756 mov A, #0xB8 +ROM:4758 movx @DPTR, A +ROM:4759 mov DPTR, #0xFB7E +ROM:475C mov A, #0x96 +ROM:475E movx @DPTR, A +ROM:475F clr A +ROM:4760 mov DPTR, #0xFB7C +ROM:4763 movx @DPTR, A +ROM:4764 inc DPTR +ROM:4765 movx @DPTR, A +ROM:4766 ret +ROM:4767 ; --------------------------------------------------------------------------- +ROM:4767 +ROM:4767 ROM_4767: ; CODE XREF: ROM_4737+16↑j +ROM:4767 mov A, R1 +ROM:4768 add A, #2 +ROM:476A acall ROM_42CC +ROM:476C mov R5, A +ROM:476D setb C +ROM:476E mov A, R7 +ROM:476F subb A, R5 +ROM:4770 mov A, R6 +ROM:4771 subb A, B ; B Register +ROM:4773 jc ROM_47A4 +ROM:4775 mov DPTR, #0xF84B +ROM:4778 lcall ROM_37C3 +ROM:477B add A, #4 +ROM:477D lcall ROM_39DB +ROM:4780 mov R7, A +ROM:4781 mov DPTR, #0xF84B +ROM:4784 lcall ROM_3EB2 +ROM:4787 lcall code_9A7 +ROM:478A setb C +ROM:478B subb A, R7 +ROM:478C mov A, B ; B Register +ROM:478E subb A, #0 +ROM:4790 jc ROM_47A4 +ROM:4792 mov R0, #0x7A ; 'z' +ROM:4794 mov R4, #0xFB +ROM:4796 mov R5, #1 +ROM:4798 mov DPTR, #0xF84B +ROM:479B inc DPTR +ROM:479C inc DPTR +ROM:479D movx A, @DPTR +ROM:479E lcall ROM_6F87 +ROM:47A1 lcall ROM_929B +ROM:47A4 +ROM:47A4 ROM_47A4: ; CODE XREF: ROM_4737+3C↑j +ROM:47A4 ; ROM_4737+59↑j +ROM:47A4 ret +ROM:47A4 ; End of function ROM_4737 +ROM:47A4 +ROM:47A5 +ROM:47A5 ; =============== S U B R O U T I N E ======================================= +ROM:47A5 +ROM:47A5 +ROM:47A5 ROM_47A5: ; CODE XREF: ROM_436B+25F↑p +ROM:47A5 ; ROM_436B+268↑p ... +ROM:47A5 lcall SetupPinsForEEProm +ROM:47A8 mov DPTR, #0xF833 +ROM:47AB ret +ROM:47AB ; End of function ROM_47A5 +ROM:47AB +ROM:47AC +ROM:47AC ; =============== S U B R O U T I N E ======================================= +ROM:47AC +ROM:47AC +ROM:47AC ROM_47AC: ; CODE XREF: ROM_436B+13↑p +ROM:47AC ; ROM_436B:ROM_4383↑p ... +ROM:47AC mov DPTR, #0xF82D +ROM:47AF movx A, @DPTR +ROM:47B0 mov R6, A +ROM:47B1 inc DPTR +ROM:47B2 movx A, @DPTR +ROM:47B3 ret +ROM:47B3 ; End of function ROM_47AC +ROM:47B3 +ROM:47B4 +ROM:47B4 ; =============== S U B R O U T I N E ======================================= +ROM:47B4 +ROM:47B4 +ROM:47B4 ROM_47B4: ; CODE XREF: ROM_436B+D0↑p +ROM:47B4 ; ROM_436B+ED↑p +ROM:47B4 movx @DPTR, A +ROM:47B4 ; End of function ROM_47B4 +ROM:47B4 +ROM:47B5 +ROM:47B5 ; =============== S U B R O U T I N E ======================================= +ROM:47B5 +ROM:47B5 +ROM:47B5 ROM_47B5: ; CODE XREF: ROM_41B0+D0↑p +ROM:47B5 mov A, R7 +ROM:47B6 add A, #0xA +ROM:47B8 mov R7, A +ROM:47B9 clr A +ROM:47BA addc A, R6 +ROM:47BB ret +ROM:47BB ; End of function ROM_47B5 +ROM:47BB +ROM:47BC +ROM:47BC ; =============== S U B R O U T I N E ======================================= +ROM:47BC +ROM:47BC +ROM:47BC ROM_47BC: ; CODE XREF: ROM_436B-13C6↑p +ROM:47BC ; ROM_436B-13BA↑p ... +ROM:47BC mov DPTR, #0xF830 +ROM:47BF lcall save_4_bytes_R4_R7 +ROM:47C2 mov DPTR, #0xF830 +ROM:47C5 ret +ROM:47C5 ; End of function ROM_47BC +ROM:47C5 +ROM:47C6 +ROM:47C6 ; =============== S U B R O U T I N E ======================================= +ROM:47C6 +ROM:47C6 +ROM:47C6 ROM_47C6: ; CODE XREF: ROM_436B-23↑p +ROM:47C6 ; ROM_9211+30↓p +ROM:47C6 mov A, #6 +ROM:47C8 movx @DPTR, A +ROM:47C8 ; End of function ROM_47C6 +ROM:47C8 +ROM:47C9 +ROM:47C9 ; =============== S U B R O U T I N E ======================================= +ROM:47C9 +ROM:47C9 +ROM:47C9 ROM_47C9: ; CODE XREF: ROM_2916+7B↑p +ROM:47C9 ; ROM_2916:ROM_299B↑p ... +ROM:47C9 lcall j_encryption_something_maybe_code_107D +ROM:47CC mov DPTR, #0xFA9A +ROM:47CC ; End of function ROM_47C9 +ROM:47CC +ROM:47CF +ROM:47CF ; =============== S U B R O U T I N E ======================================= +ROM:47CF +ROM:47CF +ROM:47CF ROM_47CF: ; CODE XREF: ROM_3588+1F↑p +ROM:47CF ; ROM_8C31+7C↓p ... +ROM:47CF movx A, @DPTR +ROM:47D0 mov R4, A +ROM:47D1 inc DPTR +ROM:47D2 movx A, @DPTR +ROM:47D3 mov R5, A +ROM:47D4 ljmp code_8F0 +ROM:47D4 ; End of function ROM_47CF +ROM:47D4 +ROM:47D7 +ROM:47D7 ; =============== S U B R O U T I N E ======================================= +ROM:47D7 +ROM:47D7 +ROM:47D7 ROM_47D7: ; CODE XREF: ROM_405D+84↑p +ROM:47D7 ; ROM_436B+2D5↑p ... +ROM:47D7 mov DPTR, #0xF66C +ROM:47DA ljmp save_4_bytes_R4_R7 +ROM:47DA ; End of function ROM_47D7 +ROM:47DA +ROM:47DD +ROM:47DD ; =============== S U B R O U T I N E ======================================= +ROM:47DD +ROM:47DD +ROM:47DD ROM_47DD: ; CODE XREF: initialize_variables_code_1D51+90↑p +ROM:47DD ; ROM_436B+3↑p ... +ROM:47DD mov A, R6 +ROM:47DE movx @DPTR, A +ROM:47DF inc DPTR +ROM:47E0 mov A, R7 +ROM:47E1 movx @DPTR, A +ROM:47E2 clr A +ROM:47E3 ret +ROM:47E3 ; End of function ROM_47DD +ROM:47E3 +ROM:47E4 +ROM:47E4 ; =============== S U B R O U T I N E ======================================= +ROM:47E4 +ROM:47E4 +ROM:47E4 ROM_47E4: ; CODE XREF: ROM_3861+1A↑p +ROM:47E4 ; ROM_436B-61↑p ... +ROM:47E4 swap A +ROM:47E5 anl A, #0xF +ROM:47E7 mov DPTR, #0xF53E +ROM:47EA ret +ROM:47EA ; End of function ROM_47E4 +ROM:47EA +ROM:47EB +ROM:47EB ; =============== S U B R O U T I N E ======================================= +ROM:47EB +ROM:47EB +ROM:47EB ROM_47EB: ; CODE XREF: ROM_436B+5E↑p +ROM:47EB lcall ROM_D8AA +ROM:47EE ljmp code_E7C +ROM:47EE ; End of function ROM_47EB +ROM:47EE +ROM:47F1 +ROM:47F1 ; =============== S U B R O U T I N E ======================================= +ROM:47F1 +ROM:47F1 +ROM:47F1 ROM_47F1: ; CODE XREF: ROM_3861+22↑p +ROM:47F1 ; ROM_436B+201↑p ... +ROM:47F1 anl A, #0xF +ROM:47F3 add A, #0xB +ROM:47F5 mov DPTR, #0xF53D +ROM:47F8 ret +ROM:47F8 ; End of function ROM_47F1 +ROM:47F8 +ROM:47F9 ; --------------------------------------------------------------------------- +ROM:47F9 ; START OF FUNCTION CHUNK FOR ROM_4816 +ROM:47F9 +ROM:47F9 ROM_47F9: ; CODE XREF: ROM_4816+21↓j +ROM:47F9 mov DPTR, #0xFDC6 +ROM:47FC movx A, @DPTR +ROM:47FD mov R7, A +ROM:47FE xrl A, #0xD +ROM:4800 jz ROM_4807 +ROM:4802 mov A, R7 +ROM:4803 xrl A, #0xE +ROM:4805 jnz ROM_480A +ROM:4807 +ROM:4807 ROM_4807: ; CODE XREF: ROM_4816-16↑j +ROM:4807 lcall ROM_D9DC +ROM:480A +ROM:480A ROM_480A: ; CODE XREF: ROM_4816-11↑j +ROM:480A mov DPTR, #0xFDC6 +ROM:480D movx A, @DPTR +ROM:480E jnz ROM_4813 +ROM:4810 ljmp ROM_614C +ROM:4813 ; --------------------------------------------------------------------------- +ROM:4813 +ROM:4813 ROM_4813: ; CODE XREF: ROM_4816-8↑j +ROM:4813 ljmp ROM_2224 +ROM:4813 ; END OF FUNCTION CHUNK FOR ROM_4816 +ROM:4816 +ROM:4816 ; =============== S U B R O U T I N E ======================================= +ROM:4816 +ROM:4816 +ROM:4816 ROM_4816: ; CODE XREF: ROM_4842+10↓p +ROM:4816 ; ROM_6849+11↓p +ROM:4816 +ROM:4816 ; FUNCTION CHUNK AT ROM:2224 SIZE 000001B2 BYTES +ROM:4816 ; FUNCTION CHUNK AT ROM:23F0 SIZE 0000002D BYTES +ROM:4816 ; FUNCTION CHUNK AT ROM:2607 SIZE 0000000A BYTES +ROM:4816 ; FUNCTION CHUNK AT ROM:2C6F SIZE 00000104 BYTES +ROM:4816 ; FUNCTION CHUNK AT ROM:47F9 SIZE 0000001D BYTES +ROM:4816 +ROM:4816 lcall ROM_6C56 +ROM:4819 lcall ROM_7F7A +ROM:481C jz ROM_4841 +ROM:481E movx A, @DPTR +ROM:481F add A, #0xFE +ROM:4821 jz ROM_4830 +ROM:4823 add A, #0xFE +ROM:4825 jz ROM_482D +ROM:4827 inc A +ROM:4828 jnz ROM_4839 +ROM:482A ljmp ROM_23F0 +ROM:482D ; --------------------------------------------------------------------------- +ROM:482D +ROM:482D ROM_482D: ; CODE XREF: ROM_4816+F↑j +ROM:482D ljmp ROM_2C6F +ROM:4830 ; --------------------------------------------------------------------------- +ROM:4830 +ROM:4830 ROM_4830: ; CODE XREF: ROM_4816+B↑j +ROM:4830 clr A +ROM:4831 mov DPTR, #0xF542 +ROM:4834 movx @DPTR, A +ROM:4835 inc DPTR +ROM:4836 movx @DPTR, A +ROM:4837 sjmp ROM_47F9 +ROM:4839 ; --------------------------------------------------------------------------- +ROM:4839 +ROM:4839 ROM_4839: ; CODE XREF: ROM_4816+12↑j +ROM:4839 mov DPTR, #0xF827 +ROM:483C movx A, @DPTR +ROM:483D mov R7, A +ROM:483E lcall ROM_6E68 +ROM:4841 +ROM:4841 ROM_4841: ; CODE XREF: ROM_4816+6↑j +ROM:4841 ret +ROM:4841 ; End of function ROM_4816 +ROM:4841 +ROM:4842 +ROM:4842 ; =============== S U B R O U T I N E ======================================= +ROM:4842 +ROM:4842 +ROM:4842 ROM_4842: ; CODE XREF: start_0:code_1E4C↑p +ROM:4842 clr A +ROM:4843 mov DPTR, #0xFDD4 +ROM:4846 movx @DPTR, A +ROM:4847 +ROM:4847 ROM_4847: ; CODE XREF: ROM_4842+14↓j +ROM:4847 mov DPTR, #0xFDD4 +ROM:484A movx A, @DPTR +ROM:484B jnz ROM_4858 +ROM:484D lcall ROM_6E5A +ROM:4850 acall ROM_49FD +ROM:4852 acall ROM_4816 +ROM:4854 acall ROM_4859 +ROM:4856 sjmp ROM_4847 +ROM:4858 ; --------------------------------------------------------------------------- +ROM:4858 +ROM:4858 ROM_4858: ; CODE XREF: ROM_4842+9↑j +ROM:4858 ret +ROM:4858 ; End of function ROM_4842 +ROM:4858 +ROM:4859 +ROM:4859 ; =============== S U B R O U T I N E ======================================= +ROM:4859 +ROM:4859 +ROM:4859 ROM_4859: ; CODE XREF: ROM_4842+12↑p +ROM:4859 ; ROM_4859:ROM_486C↓j ... +ROM:4859 lcall ROM_A929 +ROM:485C lcall ROM_D2E9 +ROM:485F jnc ROM_4863 +ROM:4861 ajmp ROM_49D6 +ROM:4863 ; --------------------------------------------------------------------------- +ROM:4863 +ROM:4863 ROM_4863: ; CODE XREF: ROM_4859+6↑j +ROM:4863 mov R5, RAM_7 +ROM:4865 mov DPTR, #0xFD10 +ROM:4868 movx A, @DPTR +ROM:4869 cjne A, #9, ROM_486C +ROM:486C +ROM:486C ROM_486C: ; CODE XREF: ROM_4859+10↑j +ROM:486C jnc ROM_4859 +ROM:486E mov DPTR, #0x4875 +ROM:4871 mov R0, A +ROM:4872 add A, R0 +ROM:4873 add A, R0 +ROM:4874 jmp @A+DPTR +ROM:4874 ; --------------------------------------------------------------------------- +ROM:4875 .byte 2 +ROM:4876 .byte 0x48 ; H +ROM:4877 .byte 0x90 +ROM:4878 .byte 2 +ROM:4879 .byte 0x48 ; H +ROM:487A .byte 0xB1 +ROM:487B .byte 2 +ROM:487C .byte 0x48 ; H +ROM:487D .byte 0xB1 +ROM:487E .byte 2 +ROM:487F .byte 0x48 ; H +ROM:4880 .byte 0xB1 +ROM:4881 .byte 2 +ROM:4882 .byte 0x48 ; H +ROM:4883 .byte 0xB1 +ROM:4884 .byte 2 +ROM:4885 .byte 0x48 ; H +ROM:4886 .byte 0xCB +ROM:4887 .byte 2 +ROM:4888 .byte 0x48 ; H +ROM:4889 .byte 0xEF +ROM:488A .byte 2 +ROM:488B .byte 0x49 ; I +ROM:488C .byte 0xA1 +ROM:488D .byte 2 +ROM:488E .byte 0x49 ; I +ROM:488F .byte 0xBB +ROM:4890 .byte 0x90 +ROM:4891 .byte 0xFD +ROM:4892 .byte 0x11 +ROM:4893 .byte 0xE0 +ROM:4894 .byte 0x60 ; ` +ROM:4895 .byte 2 +ROM:4896 .byte 0x21 ; ! +ROM:4897 .byte 0xC7 +ROM:4898 .byte 0xED +ROM:4899 .byte 0x64 ; d +ROM:489A .byte 2 +ROM:489B .byte 0x60 ; ` +ROM:489C .byte 2 +ROM:489D .byte 0x21 ; ! +ROM:489E .byte 0xC7 +ROM:489F .byte 0x90 +ROM:48A0 .byte 0xFD +ROM:48A1 .byte 0x10 +ROM:48A2 .byte 4 +ROM:48A3 .byte 0xF0 +ROM:48A4 .byte 0x90 +ROM:48A5 .byte 0xFD +ROM:48A6 .byte 0x12 +ROM:48A7 .byte 0xED +ROM:48A8 .byte 0xF0 +ROM:48A9 .byte 0x90 +ROM:48AA .byte 0xFD +ROM:48AB .byte 0x11 +ROM:48AC .byte 0x74 ; t +ROM:48AD .byte 1 +ROM:48AE .byte 0xF0 +ROM:48AF .byte 0x80 +ROM:48B0 .byte 0xA8 +ROM:48B1 .byte 0x90 +ROM:48B2 .byte 0xFD +ROM:48B3 .byte 0x11 +ROM:48B4 .byte 0xE0 +ROM:48B5 .byte 0x24 ; $ +ROM:48B6 .byte 0x42 ; B +ROM:48B7 .byte 0xF5 +ROM:48B8 .byte 0x82 +ROM:48B9 .byte 0xE4 +ROM:48BA .byte 0x34 ; 4 +ROM:48BB .byte 0xFD +ROM:48BC .byte 0xF5 +ROM:48BD .byte 0x83 +ROM:48BE .byte 0xE0 +ROM:48BF .byte 0xB5 +ROM:48C0 .byte 5 +ROM:48C1 .byte 7 +ROM:48C2 .byte 0x90 +ROM:48C3 .byte 0xFD +ROM:48C4 .byte 0x10 +ROM:48C5 .byte 0xE0 +ROM:48C6 .byte 4 +ROM:48C7 .byte 0x21 ; ! +ROM:48C8 .byte 0xAB +ROM:48C9 .byte 0x21 ; ! +ROM:48CA .byte 0xB5 +ROM:48CB .byte 0x90 +ROM:48CC .byte 0xFD +ROM:48CD .byte 0x11 +ROM:48CE .byte 0xE0 +ROM:48CF .byte 0x64 ; d +ROM:48D0 .byte 5 +ROM:48D1 .byte 0x70 ; p +ROM:48D2 .byte 0x1A +ROM:48D3 .byte 0xED +ROM:48D4 .byte 0x12 +ROM:48D5 .byte 0x87 +ROM:48D6 .byte 0x7C ; | +ROM:48D7 .byte 0x50 ; P +ROM:48D8 .byte 0x14 +ROM:48D9 .byte 0x90 +ROM:48DA .byte 0xFD +ROM:48DB .byte 0x10 +ROM:48DC .byte 0x74 ; t +ROM:48DD .byte 6 +ROM:48DE .byte 0xF0 +ROM:48DF .byte 0x31 ; 1 +ROM:48E0 .byte 0xF5 +ROM:48E1 .byte 0xED +ROM:48E2 .byte 0xF0 +ROM:48E3 .byte 0xA3 +ROM:48E4 .byte 0x31 ; 1 +ROM:48E5 .byte 0xD7 +ROM:48E6 .byte 0xE4 +ROM:48E7 .byte 0x90 +ROM:48E8 .byte 0xFD +ROM:48E9 .byte 0x15 +ROM:48EA .byte 0xF0 +ROM:48EB .byte 1 +ROM:48EC .byte 0x59 ; Y +ROM:48ED .byte 0x21 ; ! +ROM:48EE .byte 0xC7 +ROM:48EF .byte 0x90 +ROM:48F0 .byte 0xFD +ROM:48F1 .byte 0x13 +ROM:48F2 .byte 0x12 +ROM:48F3 .byte 0x81 +ROM:48F4 .byte 0xD8 +ROM:48F5 .byte 0x50 ; P +ROM:48F6 .byte 2 +ROM:48F7 .byte 0x21 ; ! +ROM:48F8 .byte 0x9F +ROM:48F9 .byte 0x31 ; 1 +ROM:48FA .byte 0xF5 +ROM:48FB .byte 0xE0 +ROM:48FC .byte 0xFF +ROM:48FD .byte 0xA3 +ROM:48FE .byte 0xE0 +ROM:48FF .byte 0xFE +ROM:4900 .byte 0x6F ; o +ROM:4901 .byte 0x70 ; p +ROM:4902 .byte 0x20 +ROM:4903 .byte 0xEF +ROM:4904 .byte 0x64 ; d +ROM:4905 .byte 1 +ROM:4906 .byte 0x70 ; p +ROM:4907 .byte 0xE +ROM:4908 .byte 0x90 +ROM:4909 .byte 0xFD +ROM:490A .byte 0x16 +ROM:490B .byte 0xED +ROM:490C .byte 0x31 ; 1 +ROM:490D .byte 0xD7 +ROM:490E .byte 0x90 +ROM:490F .byte 0xFD +ROM:4910 .byte 0x10 +ROM:4911 .byte 0x74 ; t +ROM:4912 .byte 7 +ROM:4913 .byte 0xF0 +ROM:4914 .byte 1 +ROM:4915 .byte 0x59 ; Y +ROM:4916 .byte 0x31 ; 1 +ROM:4917 .byte 0xE5 +ROM:4918 .byte 0x90 +ROM:4919 .byte 0xFD +ROM:491A .byte 0x15 +ROM:491B .byte 0xE0 +ROM:491C .byte 4 +ROM:491D .byte 0xF0 +ROM:491E .byte 0x90 +ROM:491F .byte 0xFD +ROM:4920 .byte 0x11 +ROM:4921 .byte 0x80 +ROM:4922 .byte 0xA +ROM:4923 .byte 0xEE +ROM:4924 .byte 0x64 ; d +ROM:4925 .byte 1 +ROM:4926 .byte 0x60 ; ` +ROM:4927 .byte 0x10 +ROM:4928 .byte 0x31 ; 1 +ROM:4929 .byte 0xDF +ROM:492A .byte 0x90 +ROM:492B .byte 0xFD +ROM:492C .byte 0x15 +ROM:492D .byte 0xE0 +ROM:492E .byte 4 +ROM:492F .byte 0xF0 +ROM:4930 .byte 0x90 +ROM:4931 .byte 0xFD +ROM:4932 .byte 0x14 +ROM:4933 .byte 0xE0 +ROM:4934 .byte 0x14 +ROM:4935 .byte 0xF0 +ROM:4936 .byte 1 +ROM:4937 .byte 0x59 ; Y +ROM:4938 .byte 0x31 ; 1 +ROM:4939 .byte 0xDF +ROM:493A .byte 0xE4 +ROM:493B .byte 0x90 +ROM:493C .byte 0xFD +ROM:493D .byte 0x15 +ROM:493E .byte 0xF0 +ROM:493F .byte 0x90 +ROM:4940 .byte 0xFD +ROM:4941 .byte 0x10 +ROM:4942 .byte 0x74 ; t +ROM:4943 .byte 7 +ROM:4944 .byte 0xF0 +ROM:4945 .byte 0x90 +ROM:4946 .byte 0xFD +ROM:4947 .byte 0x16 +ROM:4948 .byte 0xE0 +ROM:4949 .byte 0x90 +ROM:494A .byte 0xFC +ROM:494B .byte 0xFF +ROM:494C .byte 0xF0 +ROM:494D .byte 0x90 +ROM:494E .byte 0xFD +ROM:494F .byte 0x17 +ROM:4950 .byte 0xE0 +ROM:4951 .byte 0x90 +ROM:4952 .byte 0xFD +ROM:4953 .byte 0 +ROM:4954 .byte 0xF0 +ROM:4955 .byte 0x90 +ROM:4956 .byte 0xFD +ROM:4957 .byte 0x18 +ROM:4958 .byte 0xE0 +ROM:4959 .byte 0xFF +ROM:495A .byte 0x90 +ROM:495B .byte 0xFD +ROM:495C .byte 1 +ROM:495D .byte 0x12 +ROM:495E .byte 0x98 +ROM:495F .byte 0x67 ; g +ROM:4960 .byte 0x90 +ROM:4961 .byte 0xFD +ROM:4962 .byte 1 +ROM:4963 .byte 0xF0 +ROM:4964 .byte 0x90 +ROM:4965 .byte 0xFD +ROM:4966 .byte 0x19 +ROM:4967 .byte 0xE0 +ROM:4968 .byte 0xFF +ROM:4969 .byte 0x90 +ROM:496A .byte 0xFD +ROM:496B .byte 1 +ROM:496C .byte 0x12 +ROM:496D .byte 0xA5 +ROM:496E .byte 0xC3 +ROM:496F .byte 0xE4 +ROM:4970 .byte 0x90 +ROM:4971 .byte 0xF8 +ROM:4972 .byte 0x2D ; - +ROM:4973 .byte 0xF0 +ROM:4974 .byte 0x90 +ROM:4975 .byte 0xFD +ROM:4976 .byte 0x13 +ROM:4977 .byte 0xE0 +ROM:4978 .byte 0x24 ; $ +ROM:4979 .byte 0xFC +ROM:497A .byte 0xFF +ROM:497B .byte 0x90 +ROM:497C .byte 0xF8 +ROM:497D .byte 0x2D ; - +ROM:497E .byte 0xE0 +ROM:497F .byte 0xFE +ROM:4980 .byte 0xC3 +ROM:4981 .byte 0x9F +ROM:4982 .byte 0x40 ; @ +ROM:4983 .byte 2 +ROM:4984 .byte 1 +ROM:4985 .byte 0x59 ; Y +ROM:4986 .byte 0x74 ; t +ROM:4987 .byte 0x1A +ROM:4988 .byte 0x2E ; . +ROM:4989 .byte 0xF5 +ROM:498A .byte 0x82 +ROM:498B .byte 0xE4 +ROM:498C .byte 0x34 ; 4 +ROM:498D .byte 0xFD +ROM:498E .byte 0xF5 +ROM:498F .byte 0x83 +ROM:4990 .byte 0xE0 +ROM:4991 .byte 0xFF +ROM:4992 .byte 0x74 ; t +ROM:4993 .byte 3 +ROM:4994 .byte 0x2E ; . +ROM:4995 .byte 0x12 +ROM:4996 .byte 0xDA +ROM:4997 .byte 0x74 ; t +ROM:4998 .byte 0xEF +ROM:4999 .byte 0xF0 +ROM:499A .byte 0x12 +ROM:499B .byte 0x6F ; o +ROM:499C .byte 0x8E +ROM:499D .byte 0x80 +ROM:499E .byte 0xD5 +ROM:499F .byte 0x80 +ROM:49A0 .byte 0x26 ; & +ROM:49A1 .byte 0xED +ROM:49A2 .byte 0x64 ; d +ROM:49A3 .byte 3 +ROM:49A4 .byte 0x70 ; p +ROM:49A5 .byte 0xF +ROM:49A6 .byte 0x90 +ROM:49A7 .byte 0xFD +ROM:49A8 .byte 0x10 +ROM:49A9 .byte 0x74 ; t +ROM:49AA .byte 8 +ROM:49AB .byte 0xF0 +ROM:49AC .byte 0x90 +ROM:49AD .byte 0xFD +ROM:49AE .byte 0x12 +ROM:49AF .byte 0xE0 +ROM:49B0 .byte 0x2D ; - +ROM:49B1 .byte 0x31 ; 1 +ROM:49B2 .byte 0xD7 +ROM:49B3 .byte 1 +ROM:49B4 .byte 0x59 ; Y +ROM:49B5 .byte 0xE4 +ROM:49B6 .byte 0x90 +ROM:49B7 .byte 0xFD +ROM:49B8 .byte 0x11 +ROM:49B9 .byte 0x80 +ROM:49BA .byte 0x14 +ROM:49BB .byte 0x90 +ROM:49BC .byte 0xFD +ROM:49BD .byte 0x12 +ROM:49BE .byte 0xE0 +ROM:49BF .byte 0xB5 +ROM:49C0 .byte 5 +ROM:49C1 .byte 5 +ROM:49C2 .byte 0xE4 +ROM:49C3 .byte 0xFF +ROM:49C4 .byte 0x12 +ROM:49C5 .byte 0x69 ; i +ROM:49C6 .byte 0x36 ; 6 +ROM:49C7 .byte 0xE4 +ROM:49C8 .byte 0x90 +ROM:49C9 .byte 0xFD +ROM:49CA .byte 0x11 +ROM:49CB .byte 0xF0 +ROM:49CC .byte 0x90 +ROM:49CD .byte 0xFD +ROM:49CE .byte 0x15 +ROM:49CF .byte 0xF0 +ROM:49D0 .byte 0x90 +ROM:49D1 .byte 0xFD +ROM:49D2 .byte 0x10 +ROM:49D3 .byte 0xF0 +ROM:49D4 .byte 1 +ROM:49D5 .byte 0x59 ; Y +ROM:49D6 ; --------------------------------------------------------------------------- +ROM:49D6 +ROM:49D6 ROM_49D6: ; CODE XREF: ROM_4859+8↑j +ROM:49D6 ret +ROM:49D6 ; End of function ROM_4859 +ROM:49D6 +ROM:49D6 ; --------------------------------------------------------------------------- +ROM:49D7 .byte 0xF0 +ROM:49D8 .byte 0x90 +ROM:49D9 .byte 0xFD +ROM:49DA .byte 0x11 +ROM:49DB .byte 0xE0 +ROM:49DC .byte 4 +ROM:49DD .byte 0xF0 +ROM:49DE .byte 0x22 ; " +ROM:49DF .byte 0x90 +ROM:49E0 .byte 0xFD +ROM:49E1 .byte 0x11 +ROM:49E2 .byte 0xE0 +ROM:49E3 .byte 4 +ROM:49E4 .byte 0xF0 +ROM:49E5 .byte 0x90 +ROM:49E6 .byte 0xFD +ROM:49E7 .byte 0x15 +ROM:49E8 .byte 0xE0 +ROM:49E9 .byte 0x24 ; $ +ROM:49EA .byte 0x16 +ROM:49EB .byte 0xF5 +ROM:49EC .byte 0x82 +ROM:49ED .byte 0xE4 +ROM:49EE .byte 0x34 ; 4 +ROM:49EF .byte 0xFD +ROM:49F0 .byte 0xF5 +ROM:49F1 .byte 0x83 +ROM:49F2 .byte 0xED +ROM:49F3 .byte 0xF0 +ROM:49F4 .byte 0x22 ; " +ROM:49F5 .byte 0x90 +ROM:49F6 .byte 0xFD +ROM:49F7 .byte 0x12 +ROM:49F8 .byte 0xE0 +ROM:49F9 .byte 0x2D ; - +ROM:49FA .byte 0xF0 +ROM:49FB .byte 0xA3 +ROM:49FC .byte 0x22 ; " +ROM:49FD +ROM:49FD ; =============== S U B R O U T I N E ======================================= +ROM:49FD +ROM:49FD +ROM:49FD ROM_49FD: ; CODE XREF: ROM_4842+E↑p +ROM:49FD ; ROM_6849+E↓p +ROM:49FD +ROM:49FD ; FUNCTION CHUNK AT ROM:83F0 SIZE 000000A4 BYTES +ROM:49FD ; FUNCTION CHUNK AT ROM:A6CD SIZE 00000030 BYTES +ROM:49FD +ROM:49FD lcall ROM_7B9E +ROM:4A00 lcall ROM_84A4 +ROM:4A03 mov A, R7 +ROM:4A04 add A, #0xFE +ROM:4A06 jz ROM_4A11 +ROM:4A08 dec A +ROM:4A09 jz ROM_4A14 +ROM:4A0B add A, #2 +ROM:4A0D jnz ROM_4A17 +ROM:4A0F sjmp ROM_4A18 +ROM:4A11 ; --------------------------------------------------------------------------- +ROM:4A11 +ROM:4A11 ROM_4A11: ; CODE XREF: ROM_49FD+9↑j +ROM:4A11 ljmp ROM_83F0 +ROM:4A14 ; --------------------------------------------------------------------------- +ROM:4A14 +ROM:4A14 ROM_4A14: ; CODE XREF: ROM_49FD+C↑j +ROM:4A14 lcall ROM_A044 +ROM:4A17 +ROM:4A17 ROM_4A17: ; CODE XREF: ROM_49FD+10↑j +ROM:4A17 ret +ROM:4A18 ; --------------------------------------------------------------------------- +ROM:4A18 +ROM:4A18 ROM_4A18: ; CODE XREF: ROM_49FD+12↑j +ROM:4A18 setb C +ROM:4A19 jbc EA, ROM_4A1D ; Interrupt Enable Register 0 +ROM:4A1C clr C +ROM:4A1D +ROM:4A1D ROM_4A1D: ; CODE XREF: ROM_49FD+1C↑j +ROM:4A1D clr A +ROM:4A1E rlc A +ROM:4A1F mov DPTR, #0xF829 +ROM:4A22 movx @DPTR, A +ROM:4A23 lcall ROM_850F +ROM:4A26 mov DPTR, #0xF82A +ROM:4A29 lcall Save_3_bytes_R3_R2_R1 +ROM:4A2C mov DPTR, #0xF82A +ROM:4A2F lcall ROM_37C3 +ROM:4A32 orl A, R2 +ROM:4A33 orl A, R3 +ROM:4A34 jnz ROM_4A38 +ROM:4A36 ajmp ROM_4ADF +ROM:4A38 ; --------------------------------------------------------------------------- +ROM:4A38 +ROM:4A38 ROM_4A38: ; CODE XREF: ROM_49FD+37↑j +ROM:4A38 mov DPTR, #0xF82A +ROM:4A3B inc DPTR +ROM:4A3C inc DPTR +ROM:4A3D movx A, @DPTR +ROM:4A3E add A, #1 +ROM:4A40 lcall ROM_39DB +ROM:4A43 acall ROM_4B04 +ROM:4A45 jnc ROM_4AA6 +ROM:4A47 mov DPTR, #0xF82A +ROM:4A4A inc DPTR +ROM:4A4B movx A, @DPTR +ROM:4A4C mov R2, A +ROM:4A4D inc DPTR +ROM:4A4E movx A, @DPTR +ROM:4A4F add A, #4 +ROM:4A51 mov R1, A +ROM:4A52 clr A +ROM:4A53 addc A, R2 +ROM:4A54 mov R2, A +ROM:4A55 mov R7, RAM_1 +ROM:4A57 mov DPTR, #0xF827 +ROM:4A5A movx @DPTR, A +ROM:4A5B inc DPTR +ROM:4A5C mov A, R7 +ROM:4A5D movx @DPTR, A +ROM:4A5E lcall code_891 +ROM:4A61 mov R5, A +ROM:4A62 acall ROM_4AE4 +ROM:4A64 mov EA, C ; Interrupt Enable Register 0 +ROM:4A66 mov DPTR, #0xF710 +ROM:4A69 movx A, @DPTR +ROM:4A6A mov R7, A +ROM:4A6B mov R0, A +ROM:4A6C mov A, #1 +ROM:4A6E inc R0 +ROM:4A6F sjmp ROM_4A73 +ROM:4A71 ; --------------------------------------------------------------------------- +ROM:4A71 +ROM:4A71 ROM_4A71: ; CODE XREF: ROM_49FD:ROM_4A73↓j +ROM:4A71 clr C +ROM:4A72 rlc A +ROM:4A73 +ROM:4A73 ROM_4A73: ; CODE XREF: ROM_49FD+72↑j +ROM:4A73 djnz R0, ROM_4A71 +ROM:4A75 dec A +ROM:4A76 mov R7, A +ROM:4A77 mov DPTR, #0xDFA3 +ROM:4A7A movx A, @DPTR +ROM:4A7B anl A, R7 +ROM:4A7C inc DPTR +ROM:4A7D movx @DPTR, A +ROM:4A7E mov DPTR, #0xDFA6 +ROM:4A81 mov A, #0xC0 +ROM:4A83 movx @DPTR, A +ROM:4A84 mov DPTR, #0xF711 +ROM:4A87 movx A, @DPTR +ROM:4A88 jnz ROM_4A9B +ROM:4A8A mov DPTR, #0xF82A +ROM:4A8D lcall ROM_37C3 +ROM:4A90 add A, #1 +ROM:4A92 mov R1, A +ROM:4A93 clr A +ROM:4A94 addc A, R2 +ROM:4A95 mov R2, A +ROM:4A96 mov A, #1 +ROM:4A98 lcall code_8AA +ROM:4A9B +ROM:4A9B ROM_4A9B: ; CODE XREF: ROM_49FD+8B↑j +ROM:4A9B mov DPTR, #0xF827 +ROM:4A9E movx A, @DPTR +ROM:4A9F mov R6, A +ROM:4AA0 inc DPTR +ROM:4AA1 movx A, @DPTR +ROM:4AA2 mov R7, A +ROM:4AA3 ljmp RadioTXSomething_ROM_A6CD +ROM:4AA6 ; --------------------------------------------------------------------------- +ROM:4AA6 +ROM:4AA6 ROM_4AA6: ; CODE XREF: ROM_49FD+48↑j +ROM:4AA6 jb RAM_20.1, ROM_4AD7 +ROM:4AA9 mov DPTR, #0xF82D +ROM:4AAC mov A, #1 +ROM:4AAE movx @DPTR, A +ROM:4AAF mov DPTR, #0xF82A +ROM:4AB2 lcall ROM_37C3 +ROM:4AB5 lcall ROM_8775 +ROM:4AB8 mov R0, #0x2E ; '.' +ROM:4ABA mov R4, #0xF8 +ROM:4ABC mov R5, #1 +ROM:4ABE lcall ROM_5D6B +ROM:4AC1 acall ROM_4AE4 +ROM:4AC3 mov EA, C ; Interrupt Enable Register 0 +ROM:4AC5 mov R6, #0xF8 +ROM:4AC7 mov R7, #0x2D ; '-' +ROM:4AC9 lcall ROM_2D8F +ROM:4ACC setb C +ROM:4ACD jbc EA, ROM_4AD1 ; Interrupt Enable Register 0 +ROM:4AD0 clr C +ROM:4AD1 +ROM:4AD1 ROM_4AD1: ; CODE XREF: ROM_49FD+D0↑j +ROM:4AD1 clr A +ROM:4AD2 rlc A +ROM:4AD3 mov DPTR, #0xF829 +ROM:4AD6 movx @DPTR, A +ROM:4AD7 +ROM:4AD7 ROM_4AD7: ; CODE XREF: ROM_49FD:ROM_4AA6↑j +ROM:4AD7 lcall ROM_83E8 +ROM:4ADA jz ROM_4ADF +ROM:4ADC lcall ROM_7F53 +ROM:4ADF +ROM:4ADF ROM_4ADF: ; CODE XREF: ROM_49FD+39↑j +ROM:4ADF ; ROM_49FD+DD↑j +ROM:4ADF acall ROM_4AE4 +ROM:4AE1 mov EA, C ; Interrupt Enable Register 0 +ROM:4AE3 ret +ROM:4AE3 ; End of function ROM_49FD +ROM:4AE3 +ROM:4AE4 +ROM:4AE4 ; =============== S U B R O U T I N E ======================================= +ROM:4AE4 +ROM:4AE4 +ROM:4AE4 ROM_4AE4: ; CODE XREF: ROM_49FD+65↑p +ROM:4AE4 ; ROM_49FD+C4↑p ... +ROM:4AE4 mov DPTR, #0xF829 +ROM:4AE7 movx A, @DPTR +ROM:4AE8 add A, #0xFF +ROM:4AEA ret +ROM:4AEA ; End of function ROM_4AE4 +ROM:4AEA +ROM:4AEB +ROM:4AEB ; =============== S U B R O U T I N E ======================================= +ROM:4AEB +ROM:4AEB +ROM:4AEB ROM_4AEB: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+7B↓p +ROM:4AEB ; Radio_Something_Setup_ROM_4B0C+100↓p +ROM:4AEB anl A, #0xF +ROM:4AED mov R7, A +ROM:4AEE mov DPTR, #0xF834 +ROM:4AF1 movx A, @DPTR +ROM:4AF2 add A, #0x35 ; '5' +ROM:4AF4 mov DP0L, A ; Data Pointer Low Byte +ROM:4AF6 clr A +ROM:4AF7 addc A, #0xF8 +ROM:4AF9 mov DP0H, A ; Data Pointer High Byte +ROM:4AFB mov A, R7 +ROM:4AFC movx @DPTR, A +ROM:4AFD mov DPTR, #0xF834 +ROM:4B00 movx A, @DPTR +ROM:4B01 inc A +ROM:4B02 movx @DPTR, A +ROM:4B02 ; End of function ROM_4AEB +ROM:4B02 +ROM:4B03 +ROM:4B03 ; =============== S U B R O U T I N E ======================================= +ROM:4B03 +ROM:4B03 +ROM:4B03 ROM_4B03: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+A4↓p +ROM:4B03 ; Radio_Something_Setup_ROM_4B0C+129↓p ... +ROM:4B03 movx A, @DPTR +ROM:4B03 ; End of function ROM_4B03 +ROM:4B03 +ROM:4B04 +ROM:4B04 ; =============== S U B R O U T I N E ======================================= +ROM:4B04 +ROM:4B04 +ROM:4B04 ROM_4B04: ; CODE XREF: ROM_49FD+46↑p +ROM:4B04 ; ROM_49FD+3A51↓p ... +ROM:4B04 clr C +ROM:4B04 ; End of function ROM_4B04 +ROM:4B04 +ROM:4B05 +ROM:4B05 ; =============== S U B R O U T I N E ======================================= +ROM:4B05 +ROM:4B05 +ROM:4B05 ROM_4B05: ; CODE XREF: ROM_436B+230↑p +ROM:4B05 ; ROM_A71E+33↓p +ROM:4B05 subb A, #3 +ROM:4B07 mov A, #0x80 +ROM:4B09 subb A, #0x80 +ROM:4B0B ret +ROM:4B0B ; End of function ROM_4B05 +ROM:4B0B +ROM:4B0C +ROM:4B0C ; =============== S U B R O U T I N E ======================================= +ROM:4B0C +ROM:4B0C +ROM:4B0C Radio_Something_Setup_ROM_4B0C: ; CODE XREF: MainRadioSomething_ROM_9F3D+16↓p +ROM:4B0C mov R0, #0x4F ; 'O' +ROM:4B0E mov R4, #0xFE +ROM:4B10 mov R5, #1 +ROM:4B12 mov R3, #0xFF +ROM:4B14 mov R2, #0x1D +ROM:4B16 mov R1, #0x21 ; '!' +ROM:4B18 lcall ROM_6782 +ROM:4B1B mov DPTR, #0xF833 +ROM:4B1E mov A, #0xB +ROM:4B20 movx @DPTR, A +ROM:4B21 +ROM:4B21 ROM_4B21: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+15F↓j +ROM:4B21 mov DPTR, #0xF833 +ROM:4B24 movx A, @DPTR +ROM:4B25 setb C +ROM:4B26 subb A, #0x1A +ROM:4B28 mov A, #0x80 +ROM:4B2A subb A, #0x80 +ROM:4B2C jc ROM_4B30 +ROM:4B2E ajmp ROM_4C6D +ROM:4B30 ; --------------------------------------------------------------------------- +ROM:4B30 +ROM:4B30 ROM_4B30: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+20↑j +ROM:4B30 mov R6, #0 +ROM:4B32 mov R7, #5 +ROM:4B34 mov R5, #0 +ROM:4B36 mov R3, #1 +ROM:4B38 mov R2, #0xF8 +ROM:4B3A mov R1, #0x35 ; '5' +ROM:4B3C lcall code_EA0 +ROM:4B3F clr A +ROM:4B40 mov DPTR, #0xF834 +ROM:4B43 movx @DPTR, A +ROM:4B44 +ROM:4B44 ROM_4B44: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+7D↓j +ROM:4B44 ; Radio_Something_Setup_ROM_4B0C+87↓j +ROM:4B44 mov DPTR, #0xF834 +ROM:4B47 movx A, @DPTR +ROM:4B48 lcall ROM_7DBA +ROM:4B4B jnc ROM_4BBA +ROM:4B4D mov DPTR, #Radio_Channel +ROM:4B50 movx A, @DPTR +ROM:4B51 mov R7, A +ROM:4B52 mov DPTR, #0xDFC0 +ROM:4B55 movx @DPTR, A +ROM:4B56 mov A, R7 +ROM:4B57 mov DPTR, #0x1D16 +ROM:4B5A movc A, @A+DPTR +ROM:4B5B mov DPTR, #0xF832 +ROM:4B5E movx @DPTR, A +ROM:4B5F lcall Radio_RX_CMD_ROM_97C6 +ROM:4B62 mov DPTR, #0xF830 +ROM:4B65 movx @DPTR, A +ROM:4B66 +ROM:4B66 ROM_4B66: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+74↓j +ROM:4B66 lcall ROM_3854 +ROM:4B69 jnc ROM_4B82 +ROM:4B6B mov A, R7 +ROM:4B6C swap A +ROM:4B6D anl A, #0xF0 +ROM:4B6F mov R7, A +ROM:4B70 lcall ROM_D557 +ROM:4B73 jnb ACC2, ROM_4B7E ; Accumulator +ROM:4B76 inc DPTR +ROM:4B77 movx A, @DPTR +ROM:4B78 mov DPTR, #0xF832 +ROM:4B7B movx @DPTR, A +ROM:4B7C sjmp ROM_4B82 +ROM:4B7E ; --------------------------------------------------------------------------- +ROM:4B7E +ROM:4B7E ROM_4B7E: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+67↑j +ROM:4B7E acall ROM_4C6E +ROM:4B80 sjmp ROM_4B66 +ROM:4B82 ; --------------------------------------------------------------------------- +ROM:4B82 +ROM:4B82 ROM_4B82: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+5D↑j +ROM:4B82 ; Radio_Something_Setup_ROM_4B0C+70↑j +ROM:4B82 mov DPTR, #0xF832 +ROM:4B85 movx A, @DPTR +ROM:4B86 swap A +ROM:4B87 acall ROM_4AEB +ROM:4B89 jc ROM_4B44 +ROM:4B8B lcall ROM_D542 +ROM:4B8E +ROM:4B8E ROM_4B8E: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+AC↓j +ROM:4B8E lcall ROM_A260 +ROM:4B91 clr C +ROM:4B92 subb A, R7 +ROM:4B93 jnc ROM_4B44 +ROM:4B95 clr A +ROM:4B96 inc DPTR +ROM:4B97 movx @DPTR, A +ROM:4B98 +ROM:4B98 ROM_4B98: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+A0↓j +ROM:4B98 lcall ROM_D772 +ROM:4B9B jnc ROM_4BAE +ROM:4B9D acall ROM_4C84 +ROM:4B9F cjne A, RAM_7, ROM_4BAA +ROM:4BA2 mov A, #0x3A ; ':' +ROM:4BA4 add A, R6 +ROM:4BA5 acall ROM_4C7C +ROM:4BA7 movx A, @DPTR +ROM:4BA8 inc A +ROM:4BA9 movx @DPTR, A +ROM:4BAA +ROM:4BAA ROM_4BAA: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+93↑j +ROM:4BAA acall ROM_4FE8 +ROM:4BAC sjmp ROM_4B98 +ROM:4BAE ; --------------------------------------------------------------------------- +ROM:4BAE +ROM:4BAE ROM_4BAE: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+8F↑j +ROM:4BAE acall ROM_4C75 +ROM:4BB0 acall ROM_4B03 +ROM:4BB2 jc ROM_4BB6 +ROM:4BB4 sjmp ROM_4BCA +ROM:4BB6 ; --------------------------------------------------------------------------- +ROM:4BB6 +ROM:4BB6 ROM_4BB6: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+A6↑j +ROM:4BB6 acall ROM_4C6E +ROM:4BB8 sjmp ROM_4B8E +ROM:4BBA ; --------------------------------------------------------------------------- +ROM:4BBA +ROM:4BBA ROM_4BBA: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+3F↑j +ROM:4BBA mov DPTR, #0xF834 +ROM:4BBD mov A, #5 +ROM:4BBF movx @DPTR, A +ROM:4BC0 +ROM:4BC0 ROM_4BC0: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+BC↓j +ROM:4BC0 lcall ROM_81D5 +ROM:4BC3 jc ROM_4BD8 +ROM:4BC5 lcall ROM_A770 +ROM:4BC8 jc ROM_4BC0 +ROM:4BCA +ROM:4BCA ROM_4BCA: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+A8↑j +ROM:4BCA mov A, #0x35 ; '5' +ROM:4BCC add A, R7 +ROM:4BCD acall ROM_4C97 +ROM:4BCF swap A +ROM:4BD0 anl A, #0xF0 +ROM:4BD2 mov R7, A +ROM:4BD3 lcall ROM_A689 +ROM:4BD6 mov A, R7 +ROM:4BD7 movx @DPTR, A +ROM:4BD8 +ROM:4BD8 ROM_4BD8: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+B7↑j +ROM:4BD8 clr A +ROM:4BD9 mov DPTR, #0xF834 +ROM:4BDC movx @DPTR, A +ROM:4BDD +ROM:4BDD ROM_4BDD: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+102↓j +ROM:4BDD ; Radio_Something_Setup_ROM_4B0C+10C↓j +ROM:4BDD mov DPTR, #0xF834 +ROM:4BE0 movx A, @DPTR +ROM:4BE1 lcall ROM_7DBA +ROM:4BE4 jnc ROM_4C3F +ROM:4BE6 mov DPTR, #0xDF48 +ROM:4BE9 mov A, #0xC5 +ROM:4BEB movx @DPTR, A +ROM:4BEC clr A +ROM:4BED mov DPTR, #0xF830 +ROM:4BF0 movx @DPTR, A +ROM:4BF1 +ROM:4BF1 ROM_4BF1: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+FA↓j +ROM:4BF1 lcall ROM_3854 +ROM:4BF4 jnc ROM_4C08 +ROM:4BF6 lcall ROM_D557 +ROM:4BF9 jnb ACC2, ROM_4C04 ; Accumulator +ROM:4BFC inc DPTR +ROM:4BFD movx A, @DPTR +ROM:4BFE mov DPTR, #0xF832 +ROM:4C01 movx @DPTR, A +ROM:4C02 sjmp ROM_4C08 +ROM:4C04 ; --------------------------------------------------------------------------- +ROM:4C04 +ROM:4C04 ROM_4C04: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+ED↑j +ROM:4C04 acall ROM_4C6E +ROM:4C06 sjmp ROM_4BF1 +ROM:4C08 ; --------------------------------------------------------------------------- +ROM:4C08 +ROM:4C08 ROM_4C08: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+E8↑j +ROM:4C08 ; Radio_Something_Setup_ROM_4B0C+F6↑j +ROM:4C08 mov DPTR, #0xF832 +ROM:4C0B movx A, @DPTR +ROM:4C0C acall ROM_4AEB +ROM:4C0E jc ROM_4BDD +ROM:4C10 lcall ROM_D542 +ROM:4C13 +ROM:4C13 ROM_4C13: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+131↓j +ROM:4C13 lcall ROM_A260 +ROM:4C16 clr C +ROM:4C17 subb A, R7 +ROM:4C18 jnc ROM_4BDD +ROM:4C1A clr A +ROM:4C1B inc DPTR +ROM:4C1C movx @DPTR, A +ROM:4C1D +ROM:4C1D ROM_4C1D: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+125↓j +ROM:4C1D lcall ROM_D772 +ROM:4C20 jnc ROM_4C33 +ROM:4C22 acall ROM_4C84 +ROM:4C24 cjne A, RAM_7, ROM_4C2F +ROM:4C27 mov A, #0x3A ; ':' +ROM:4C29 add A, R6 +ROM:4C2A acall ROM_4C7C +ROM:4C2C movx A, @DPTR +ROM:4C2D inc A +ROM:4C2E movx @DPTR, A +ROM:4C2F +ROM:4C2F ROM_4C2F: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+118↑j +ROM:4C2F acall ROM_4FE8 +ROM:4C31 sjmp ROM_4C1D +ROM:4C33 ; --------------------------------------------------------------------------- +ROM:4C33 +ROM:4C33 ROM_4C33: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+114↑j +ROM:4C33 acall ROM_4C75 +ROM:4C35 acall ROM_4B03 +ROM:4C37 jc ROM_4C3B +ROM:4C39 sjmp ROM_4C4F +ROM:4C3B ; --------------------------------------------------------------------------- +ROM:4C3B +ROM:4C3B ROM_4C3B: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+12B↑j +ROM:4C3B acall ROM_4C6E +ROM:4C3D sjmp ROM_4C13 +ROM:4C3F ; --------------------------------------------------------------------------- +ROM:4C3F +ROM:4C3F ROM_4C3F: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+D8↑j +ROM:4C3F mov DPTR, #0xF834 +ROM:4C42 mov A, #5 +ROM:4C44 movx @DPTR, A +ROM:4C45 +ROM:4C45 ROM_4C45: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+141↓j +ROM:4C45 lcall ROM_81D5 +ROM:4C48 jc ROM_4C65 +ROM:4C4A lcall ROM_A770 +ROM:4C4D jc ROM_4C45 +ROM:4C4F +ROM:4C4F ROM_4C4F: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+12D↑j +ROM:4C4F lcall ROM_A689 +ROM:4C52 push DP0H ; Data Pointer High Byte +ROM:4C54 push DP0L ; Data Pointer Low Byte +ROM:4C56 movx A, @DPTR +ROM:4C57 mov R6, A +ROM:4C58 mov A, #0x35 ; '5' +ROM:4C5A add A, R7 +ROM:4C5B acall ROM_4C97 +ROM:4C5D mov R7, A +ROM:4C5E mov A, R6 +ROM:4C5F orl A, R7 +ROM:4C60 pop DP0L ; Data Pointer Low Byte +ROM:4C62 pop DP0H ; Data Pointer High Byte +ROM:4C64 movx @DPTR, A +ROM:4C65 +ROM:4C65 ROM_4C65: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+13C↑j +ROM:4C65 mov DPTR, #0xF833 +ROM:4C68 movx A, @DPTR +ROM:4C69 inc A +ROM:4C6A movx @DPTR, A +ROM:4C6B ajmp ROM_4B21 +ROM:4C6D ; --------------------------------------------------------------------------- +ROM:4C6D +ROM:4C6D ROM_4C6D: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+22↑j +ROM:4C6D ret +ROM:4C6D ; End of function Radio_Something_Setup_ROM_4B0C +ROM:4C6D +ROM:4C6E +ROM:4C6E ; =============== S U B R O U T I N E ======================================= +ROM:4C6E +ROM:4C6E +ROM:4C6E ROM_4C6E: ; CODE XREF: Radio_Something_Setup_ROM_4B0C:ROM_4B7E↑p +ROM:4C6E ; Radio_Something_Setup_ROM_4B0C:ROM_4BB6↑p ... +ROM:4C6E mov DPTR, #0xF830 +ROM:4C71 movx A, @DPTR +ROM:4C72 inc A +ROM:4C73 movx @DPTR, A +ROM:4C74 ret +ROM:4C74 ; End of function ROM_4C6E +ROM:4C74 +ROM:4C75 +ROM:4C75 ; =============== S U B R O U T I N E ======================================= +ROM:4C75 +ROM:4C75 +ROM:4C75 ROM_4C75: ; CODE XREF: Radio_Something_Setup_ROM_4B0C:ROM_4BAE↑p +ROM:4C75 ; Radio_Something_Setup_ROM_4B0C:ROM_4C33↑p +ROM:4C75 mov DPTR, #0xF830 +ROM:4C78 movx A, @DPTR +ROM:4C79 mov R7, A +ROM:4C7A add A, #0x3A ; ':' +ROM:4C7A ; End of function ROM_4C75 +ROM:4C7A +ROM:4C7C +ROM:4C7C ; =============== S U B R O U T I N E ======================================= +ROM:4C7C +ROM:4C7C +ROM:4C7C ROM_4C7C: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+99↑p +ROM:4C7C ; Radio_Something_Setup_ROM_4B0C+11E↑p +ROM:4C7C mov DP0L, A ; Data Pointer Low Byte +ROM:4C7E clr A +ROM:4C7F addc A, #0xF8 +ROM:4C81 mov DP0H, A ; Data Pointer High Byte +ROM:4C83 ret +ROM:4C83 ; End of function ROM_4C7C +ROM:4C83 +ROM:4C84 +ROM:4C84 ; =============== S U B R O U T I N E ======================================= +ROM:4C84 +ROM:4C84 +ROM:4C84 ROM_4C84: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+91↑p +ROM:4C84 ; Radio_Something_Setup_ROM_4B0C+116↑p +ROM:4C84 mov A, #0x35 ; '5' +ROM:4C86 add A, R6 +ROM:4C87 mov DP0L, A ; Data Pointer Low Byte +ROM:4C89 clr A +ROM:4C8A addc A, #0xF8 +ROM:4C8C mov DP0H, A ; Data Pointer High Byte +ROM:4C8E movx A, @DPTR +ROM:4C8F mov R7, A +ROM:4C90 mov DPTR, #0xF830 +ROM:4C93 movx A, @DPTR +ROM:4C94 mov R6, A +ROM:4C95 add A, #0x35 ; '5' +ROM:4C95 ; End of function ROM_4C84 +ROM:4C95 +ROM:4C97 +ROM:4C97 ; =============== S U B R O U T I N E ======================================= +ROM:4C97 +ROM:4C97 +ROM:4C97 ROM_4C97: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+C1↑p +ROM:4C97 ; Radio_Something_Setup_ROM_4B0C+14F↑p +ROM:4C97 mov DP0L, A ; Data Pointer Low Byte +ROM:4C99 clr A +ROM:4C9A addc A, #0xF8 +ROM:4C9C mov DP0H, A ; Data Pointer High Byte +ROM:4C9E movx A, @DPTR +ROM:4C9F ret +ROM:4C9F ; End of function ROM_4C97 +ROM:4C9F +ROM:4CA0 +ROM:4CA0 ; =============== S U B R O U T I N E ======================================= +ROM:4CA0 +ROM:4CA0 +ROM:4CA0 ROM_4CA0: ; CODE XREF: ROM_4F9E+9↓p +ROM:4CA0 ; ROM_4F9E+4C64↓p +ROM:4CA0 clr P2.0 ; Port 2 +ROM:4CA2 mov R7, #0x10 +ROM:4CA4 mov R6, #0x27 ; ''' +ROM:4CA6 acall ROM_4CB7 +ROM:4CA8 setb P2.0 ; Port 2 +ROM:4CAA mov R6, #0x27 ; ''' +ROM:4CAC acall ROM_4CB7 +ROM:4CAE mov R7, #0x12 +ROM:4CB0 lcall code_42E +ROM:4CB0 ; End of function ROM_4CA0 +ROM:4CB0 +ROM:4CB3 +ROM:4CB3 ; =============== S U B R O U T I N E ======================================= +ROM:4CB3 +ROM:4CB3 +ROM:4CB3 ROM_4CB3: ; CODE XREF: ROM_755B+4B↓p +ROM:4CB3 ; ROM_755B+ED↓p ... +ROM:4CB3 mov R7, #0x10 +ROM:4CB5 mov R6, #0x27 ; ''' +ROM:4CB5 ; End of function ROM_4CB3 +ROM:4CB5 +ROM:4CB7 +ROM:4CB7 ; =============== S U B R O U T I N E ======================================= +ROM:4CB7 +ROM:4CB7 +ROM:4CB7 ROM_4CB7: ; CODE XREF: code_1ED5+9↑p +ROM:4CB7 ; DO_SPI_TRANSACTION_ALT+9↑p ... +ROM:4CB7 mov R5, RAM_7 +ROM:4CB9 mov R4, RAM_6 +ROM:4CBB clr C +ROM:4CBC mov A, R5 +ROM:4CBD subb A, #0x32 ; '2' +ROM:4CBF mov A, R4 +ROM:4CC0 subb A, #0 +ROM:4CC2 jc ROM_4CD3 +ROM:4CC4 mov A, R5 +ROM:4CC5 mov R0, #2 +ROM:4CC7 +ROM:4CC7 ROM_4CC7: ; CODE XREF: ROM_4CB7+15↓j +ROM:4CC7 xch A, R6 +ROM:4CC8 clr C +ROM:4CC9 rrc A +ROM:4CCA xch A, R6 +ROM:4CCB rrc A +ROM:4CCC djnz R0, ROM_4CC7 +ROM:4CCE add A, R5 +ROM:4CCF mov R5, A +ROM:4CD0 mov A, R6 +ROM:4CD1 addc A, R4 +ROM:4CD2 mov R4, A +ROM:4CD3 +ROM:4CD3 ROM_4CD3: ; CODE XREF: ROM_4CB7+B↑j +ROM:4CD3 mov R6, RAM_4 +ROM:4CD5 mov A, R5 +ROM:4CD6 mov R0, #2 +ROM:4CD8 +ROM:4CD8 ROM_4CD8: ; CODE XREF: ROM_4CB7+26↓j +ROM:4CD8 xch A, R6 +ROM:4CD9 clr C +ROM:4CDA rrc A +ROM:4CDB xch A, R6 +ROM:4CDC rrc A +ROM:4CDD djnz R0, ROM_4CD8 +ROM:4CDF mov R5, A +ROM:4CE0 mov R4, RAM_6 +ROM:4CE2 +ROM:4CE2 ROM_4CE2: ; CODE XREF: ROM_4CB7+39↓j +ROM:4CE2 mov A, R5 +ROM:4CE3 dec R5 +ROM:4CE4 mov R6, RAM_4 +ROM:4CE6 jnz ROM_4CE9 +ROM:4CE8 dec R4 +ROM:4CE9 +ROM:4CE9 ROM_4CE9: ; CODE XREF: ROM_4CB7+2F↑j +ROM:4CE9 orl A, R6 +ROM:4CEA jz ROM_4CF2 +ROM:4CEC nop +ROM:4CED nop +ROM:4CEE nop +ROM:4CEF nop +ROM:4CF0 sjmp ROM_4CE2 +ROM:4CF2 ; --------------------------------------------------------------------------- +ROM:4CF2 +ROM:4CF2 ROM_4CF2: ; CODE XREF: ROM_4CB7+33↑j +ROM:4CF2 ret +ROM:4CF2 ; End of function ROM_4CB7 +ROM:4CF2 +ROM:4CF3 ; --------------------------------------------------------------------------- +ROM:4CF3 ; START OF FUNCTION CHUNK FOR code_42E +ROM:4CF3 ; ADDITIONAL PARENT FUNCTION ROM_4D0B +ROM:4CF3 +ROM:4CF3 EPD_SPI_TRANSACTION: ; CODE XREF: code_42E+2↑j +ROM:4CF3 ; ROM_4D0B+2↓j +ROM:4CF3 clr P1.7 ; Port 1 +ROM:4CF5 lcall DO_SPI_TRANSACTION +ROM:4CF8 setb P1.7 ; Port 1 +ROM:4CFA ret +ROM:4CFA ; END OF FUNCTION CHUNK FOR code_42E +ROM:4CFB +ROM:4CFB ; =============== S U B R O U T I N E ======================================= +ROM:4CFB +ROM:4CFB +ROM:4CFB ROM_4CFB: ; CODE XREF: ROM_4FB6+5↓p +ROM:4CFB ; ROM_5750+5↓p +ROM:4CFB mov R7, #0x4E ; 'N' +ROM:4CFD lcall code_42E +ROM:4D00 clr A +ROM:4D01 mov R7, A +ROM:4D02 acall ROM_4D0B +ROM:4D04 mov R7, #0x4F ; 'O' +ROM:4D04 ; End of function ROM_4CFB +ROM:4D04 +ROM:4D06 +ROM:4D06 ; =============== S U B R O U T I N E ======================================= +ROM:4D06 +ROM:4D06 +ROM:4D06 ROM_4D06: ; CODE XREF: ROM_9B7E-4E21↓p +ROM:4D06 ; ROM_9B7E-4E0D↓p ... +ROM:4D06 lcall code_42E +ROM:4D09 clr A +ROM:4D0A mov R7, A +ROM:4D0A ; End of function ROM_4D06 +ROM:4D0A +ROM:4D0B +ROM:4D0B ; =============== S U B R O U T I N E ======================================= +ROM:4D0B +ROM:4D0B +ROM:4D0B ROM_4D0B: ; CODE XREF: ROM_4CFB+7↑p +ROM:4D0B ; ROM_9B7E-4E68↓p ... +ROM:4D0B +ROM:4D0B ; FUNCTION CHUNK AT ROM:4CF3 SIZE 00000008 BYTES +ROM:4D0B +ROM:4D0B setb P2.2 ; Port 2 +ROM:4D0D sjmp EPD_SPI_TRANSACTION +ROM:4D0D ; End of function ROM_4D0B +ROM:4D0D +ROM:4D0F ; --------------------------------------------------------------------------- +ROM:4D0F ; START OF FUNCTION CHUNK FOR ROM_9B7E +ROM:4D0F +ROM:4D0F ROM_4D0F: ; CODE XREF: ROM_9B7E+12↓j +ROM:4D0F mov R7, #0x74 ; 't' +ROM:4D11 lcall code_42E +ROM:4D14 mov R7, #0x54 ; 'T' +ROM:4D16 acall ROM_4D0B +ROM:4D18 mov R7, #0x7E ; '~' +ROM:4D1A lcall code_42E +ROM:4D1D mov R7, #0x3B ; ';' +ROM:4D1F acall ROM_4D0B +ROM:4D21 mov R7, #0x2B ; '+' +ROM:4D23 lcall code_42E +ROM:4D26 mov R7, #4 +ROM:4D28 acall ROM_4D0B +ROM:4D2A mov R7, #0x63 ; 'c' +ROM:4D2C acall ROM_4D0B +ROM:4D2E mov R7, #0xC +ROM:4D30 lcall code_42E +ROM:4D33 mov R7, #0x8F +ROM:4D35 acall ROM_4D0B +ROM:4D37 mov R7, #0x8F +ROM:4D39 acall ROM_4D0B +ROM:4D3B mov R7, #0x8F +ROM:4D3D acall ROM_4D0B +ROM:4D3F mov R7, #0x3F ; '?' +ROM:4D41 acall ROM_4D0B +ROM:4D43 mov R7, #1 +ROM:4D45 lcall code_42E +ROM:4D48 lcall ROM_D807 +ROM:4D4B add A, #0xFF +ROM:4D4D lcall ROM_55CD +ROM:4D50 mov R7, A +ROM:4D51 acall ROM_4D0B +ROM:4D53 clr A +ROM:4D54 mov R7, A +ROM:4D55 acall ROM_4D0B +ROM:4D57 mov R7, #0x11 +ROM:4D59 acall ROM_4FDA +ROM:4D5B mov R7, #0x44 ; 'D' +ROM:4D5D acall ROM_4D06 +ROM:4D5F lcall code_40F +ROM:4D62 mov R0, #3 +ROM:4D64 +ROM:4D64 ROM_4D64: ; CODE XREF: ROM_9B7E-4E15↓j +ROM:4D64 xch A, R6 +ROM:4D65 clr C +ROM:4D66 rrc A +ROM:4D67 xch A, R6 +ROM:4D68 rrc A +ROM:4D69 djnz R0, ROM_4D64 +ROM:4D6B dec A +ROM:4D6C mov R7, A +ROM:4D6D acall ROM_4D0B +ROM:4D6F mov R7, #0x45 ; 'E' +ROM:4D71 acall ROM_4D06 +ROM:4D73 clr A +ROM:4D74 mov R7, A +ROM:4D75 acall ROM_4D0B +ROM:4D77 lcall ROM_D807 +ROM:4D7A add A, #0xFF +ROM:4D7C lcall ROM_55CD +ROM:4D7F mov R7, A +ROM:4D80 acall ROM_4D0B +ROM:4D82 mov R7, #0x3C ; '<' +ROM:4D84 acall ROM_4FE1 +ROM:4D86 mov R7, #0x18 +ROM:4D88 lcall ROM_D99E +ROM:4D8B mov R7, #0x22 ; '"' +ROM:4D8D lcall code_42E +ROM:4D90 mov R7, #0xB1 +ROM:4D92 acall ROM_4D0B +ROM:4D94 mov R7, #0x20 ; ' ' +ROM:4D96 lcall ROM_5120 +ROM:4D99 clr A +ROM:4D9A mov R7, A +ROM:4D9B lcall ROM_3671 +ROM:4D9E mov R7, #0x1B +ROM:4DA0 lcall code_42E +ROM:4DA3 acall ROM_4EB5 +ROM:4DA5 mov DPTR, #0xFD80 +ROM:4DA8 mov A, R7 +ROM:4DA9 movx @DPTR, A +ROM:4DAA acall ROM_4EB5 +ROM:4DAC mov DPTR, #0xFD81 +ROM:4DAF mov A, R7 +ROM:4DB0 movx @DPTR, A +ROM:4DB1 mov DPTR, #0xFD80 +ROM:4DB4 movx A, @DPTR +ROM:4DB5 anl A, #0x80 +ROM:4DB7 jz ROM_4DBB +ROM:4DB9 clr A +ROM:4DBA movx @DPTR, A +ROM:4DBB +ROM:4DBB ROM_4DBB: ; CODE XREF: ROM_9B7E-4DC7↑j +ROM:4DBB mov DPTR, #0xFD80 +ROM:4DBE movx A, @DPTR +ROM:4DBF lcall ROM_5783 +ROM:4DC2 jnc ROM_4DE6 +ROM:4DC4 mov R7, #0x3D ; '=' +ROM:4DC6 lcall code_42E +ROM:4DC9 mov R7, #9 +ROM:4DCB acall ROM_4D0B +ROM:4DCD mov R7, #9 +ROM:4DCF acall ROM_4D0B +ROM:4DD1 mov R7, #0x3E ; '>' +ROM:4DD3 acall ROM_4FE1 +ROM:4DD5 mov R7, #0x11 +ROM:4DD7 acall ROM_4D0B +ROM:4DD9 mov R7, #0xC +ROM:4DDB acall ROM_4D0B +ROM:4DDD mov R7, #0x3F ; '?' +ROM:4DDF lcall code_42E +ROM:4DE2 mov R7, #7 +ROM:4DE4 acall ROM_4D0B +ROM:4DE6 +ROM:4DE6 ROM_4DE6: ; CODE XREF: ROM_9B7E-4DBC↑j +ROM:4DE6 ret +ROM:4DE7 ; --------------------------------------------------------------------------- +ROM:4DE7 +ROM:4DE7 ROM_4DE7: ; CODE XREF: ROM_9B7E+1A↓j +ROM:4DE7 mov DPTR, #0xF852 +ROM:4DEA mov A, R7 +ROM:4DEB movx @DPTR, A +ROM:4DEC lcall ROM_512D +ROM:4DEF jnz ROM_4E08 +ROM:4DF1 mov DPTR, #0xF853 +ROM:4DF4 inc A +ROM:4DF5 movx @DPTR, A +ROM:4DF6 inc DPTR +ROM:4DF7 mov A, #0x17 +ROM:4DF9 movx @DPTR, A +ROM:4DFA inc DPTR +ROM:4DFB movx @DPTR, A +ROM:4DFC inc DPTR +ROM:4DFD movx @DPTR, A +ROM:4DFE inc DPTR +ROM:4DFF mov A, #0x12 +ROM:4E01 movx @DPTR, A +ROM:4E02 inc DPTR +ROM:4E03 mov A, #0x57 ; 'W' +ROM:4E05 movx @DPTR, A +ROM:4E06 sjmp ROM_4E1E +ROM:4E08 ; --------------------------------------------------------------------------- +ROM:4E08 +ROM:4E08 ROM_4E08: ; CODE XREF: ROM_9B7E-4D8F↑j +ROM:4E08 clr A +ROM:4E09 mov DPTR, #0xF853 +ROM:4E0C movx @DPTR, A +ROM:4E0D inc DPTR +ROM:4E0E mov A, #7 +ROM:4E10 movx @DPTR, A +ROM:4E11 inc DPTR +ROM:4E12 dec A +ROM:4E13 movx @DPTR, A +ROM:4E14 inc DPTR +ROM:4E15 dec A +ROM:4E16 movx @DPTR, A +ROM:4E17 inc DPTR +ROM:4E18 mov A, #8 +ROM:4E1A movx @DPTR, A +ROM:4E1B inc DPTR +ROM:4E1C dec A +ROM:4E1D movx @DPTR, A +ROM:4E1E +ROM:4E1E ROM_4E1E: ; CODE XREF: ROM_9B7E-4D78↑j +ROM:4E1E mov R7, #1 +ROM:4E20 acall ROM_4FDA +ROM:4E22 mov DPTR, #0xF853 +ROM:4E25 movx A, @DPTR +ROM:4E26 mov R7, A +ROM:4E27 acall ROM_4D0B +ROM:4E29 mov R7, #0x2B ; '+' +ROM:4E2B acall ROM_4D0B +ROM:4E2D mov R7, #0x2B ; '+' +ROM:4E2F acall ROM_4D0B +ROM:4E31 mov R7, #8 +ROM:4E33 acall ROM_4D0B +ROM:4E35 mov R7, #6 +ROM:4E37 lcall code_42E +ROM:4E3A acall ROM_4EB0 +ROM:4E3C inc DPTR +ROM:4E3D acall ROM_4EAC +ROM:4E3F mov R7, #4 +ROM:4E41 lcall ROM_5120 +ROM:4E44 mov R7, #1 +ROM:4E46 lcall ROM_3671 +ROM:4E49 clr A +ROM:4E4A mov R7, A +ROM:4E4B lcall code_42E +ROM:4E4E mov R7, #0xCF +ROM:4E50 acall ROM_4D0B +ROM:4E52 mov R7, #0xD +ROM:4E54 acall ROM_4D0B +ROM:4E56 mov R7, #0x61 ; 'a' +ROM:4E58 lcall code_42E +ROM:4E5B mov DPTR, #0xFDB6 +ROM:4E5E acall ROM_4EB0 +ROM:4E60 mov DPTR, #0xFDB4 +ROM:4E63 acall ROM_4EAC +ROM:4E65 mov R7, #0x82 +ROM:4E67 lcall code_42E +ROM:4E6A mov DPTR, #0xF857 +ROM:4E6D movx A, @DPTR +ROM:4E6E mov R7, A +ROM:4E6F acall ROM_4D0B +ROM:4E71 mov R7, #0x50 ; 'P' +ROM:4E73 lcall code_42E +ROM:4E76 acall ROM_4EB0 +ROM:4E78 lcall ROM_512D +ROM:4E7B jz ROM_4EAB +ROM:4E7D mov R7, #0x30 ; '0' +ROM:4E7F lcall code_42E +ROM:4E82 mov DPTR, #0xF852 +ROM:4E85 movx A, @DPTR +ROM:4E86 add A, #0x47 ; 'G' +ROM:4E88 mov DP0L, A ; Data Pointer Low Byte +ROM:4E8A clr A +ROM:4E8B addc A, #0xFD +ROM:4E8D mov DP0H, A ; Data Pointer High Byte +ROM:4E8F movx A, @DPTR +ROM:4E90 mov R7, A +ROM:4E91 acall ROM_4D0B +ROM:4E93 mov DPTR, #0xF852 +ROM:4E96 movx A, @DPTR +ROM:4E97 mov B, #3 ; B Register +ROM:4E9A mul AB +ROM:4E9B add A, #0x74 ; 't' +ROM:4E9D mov DP0L, A ; Data Pointer Low Byte +ROM:4E9F clr A +ROM:4EA0 addc A, #0xFD +ROM:4EA2 mov DP0H, A ; Data Pointer High Byte +ROM:4EA4 lcall ROM_37C3 +ROM:4EA7 mov R1, A +ROM:4EA8 lcall ROM_9C08 +ROM:4EAB +ROM:4EAB ROM_4EAB: ; CODE XREF: ROM_9B7E-4D03↑j +ROM:4EAB ret +ROM:4EAB ; END OF FUNCTION CHUNK FOR ROM_9B7E +ROM:4EAC +ROM:4EAC ; =============== S U B R O U T I N E ======================================= +ROM:4EAC +ROM:4EAC +ROM:4EAC ROM_4EAC: ; CODE XREF: ROM_9B7E-4D41↑p +ROM:4EAC ; ROM_9B7E-4D1B↑p +ROM:4EAC movx A, @DPTR +ROM:4EAD mov R7, A +ROM:4EAE acall ROM_4D0B +ROM:4EAE ; End of function ROM_4EAC +ROM:4EAE +ROM:4EB0 +ROM:4EB0 ; =============== S U B R O U T I N E ======================================= +ROM:4EB0 +ROM:4EB0 +ROM:4EB0 ROM_4EB0: ; CODE XREF: ROM_9B7E-4D44↑p +ROM:4EB0 ; ROM_9B7E-4D20↑p ... +ROM:4EB0 inc DPTR +ROM:4EB1 movx A, @DPTR +ROM:4EB2 mov R7, A +ROM:4EB3 ajmp ROM_4D0B +ROM:4EB3 ; End of function ROM_4EB0 +ROM:4EB3 +ROM:4EB5 +ROM:4EB5 ; =============== S U B R O U T I N E ======================================= +ROM:4EB5 +ROM:4EB5 +ROM:4EB5 ROM_4EB5: ; CODE XREF: ROM_9B7E-4DDB↑p +ROM:4EB5 ; ROM_9B7E-4DD4↑p +ROM:4EB5 clr A +ROM:4EB6 mov R3, A +ROM:4EB7 lcall load_0xFDAA_and_xor_0x01 +ROM:4EBA jnz ROM_4EC0 +ROM:4EBC setb P1.2 ; Port 1 +ROM:4EBE sjmp ROM_4EC2 +ROM:4EC0 ; --------------------------------------------------------------------------- +ROM:4EC0 +ROM:4EC0 ROM_4EC0: ; CODE XREF: ROM_4EB5+5↑j +ROM:4EC0 setb P1.5 ; Port 1 +ROM:4EC2 +ROM:4EC2 ROM_4EC2: ; CODE XREF: ROM_4EB5+9↑j +ROM:4EC2 anl P0FUNC, #0xFC +ROM:4EC5 anl FSR_B9, #0xFC +ROM:4EC8 clr P1.7 ; Port 1 +ROM:4ECA acall ROM_4FCA +ROM:4ECC setb P01 ; Port 0 +ROM:4ECE setb P00 ; Port 0 +ROM:4ED0 mov R6, #0 +ROM:4ED2 acall ROM_4CB7 +ROM:4ED4 clr P00 ; Port 0 +ROM:4ED6 mov R6, #0 +ROM:4ED8 acall ROM_4CB7 +ROM:4EDA orl FSR_B9, #2 +ROM:4EDD mov R7, #3 +ROM:4EDF mov R6, #0 +ROM:4EE1 acall ROM_4CB7 +ROM:4EE3 clr A +ROM:4EE4 mov R2, A +ROM:4EE5 +ROM:4EE5 ROM_4EE5: ; CODE XREF: ROM_4EB5+47↓j +ROM:4EE5 mov A, R2 +ROM:4EE6 lcall ROM_3FE6 +ROM:4EE9 jnc ROM_4EFE +ROM:4EEB mov A, R3 +ROM:4EEC add A, ACC ; Accumulator +ROM:4EEE mov R3, A +ROM:4EEF setb P00 ; Port 0 +ROM:4EF1 jnb P01, ROM_4EF7 ; Port 0 +ROM:4EF4 orl A, #1 +ROM:4EF6 mov R3, A +ROM:4EF7 +ROM:4EF7 ROM_4EF7: ; CODE XREF: ROM_4EB5+3C↑j +ROM:4EF7 clr P00 ; Port 0 +ROM:4EF9 acall ROM_4FCA +ROM:4EFB inc R2 +ROM:4EFC sjmp ROM_4EE5 +ROM:4EFE ; --------------------------------------------------------------------------- +ROM:4EFE +ROM:4EFE ROM_4EFE: ; CODE XREF: ROM_4EB5+34↑j +ROM:4EFE anl FSR_B9, #0xFD +ROM:4F01 clr P01 ; Port 0 +ROM:4F03 acall ROM_4FCA +ROM:4F05 setb P1.7 ; Port 1 +ROM:4F07 mov R6, #0 +ROM:4F09 acall ROM_4CB7 +ROM:4F0B lcall load_0xFDAA_and_xor_0x01 +ROM:4F0E jnz ROM_4F14 +ROM:4F10 clr P1.2 ; Port 1 +ROM:4F12 sjmp ROM_4F16 +ROM:4F14 ; --------------------------------------------------------------------------- +ROM:4F14 +ROM:4F14 ROM_4F14: ; CODE XREF: ROM_4EB5+59↑j +ROM:4F14 clr P1.5 ; Port 1 +ROM:4F16 +ROM:4F16 ROM_4F16: ; CODE XREF: ROM_4EB5+5D↑j +ROM:4F16 lcall ROM_506B +ROM:4F19 mov R7, RAM_3 +ROM:4F1B ret +ROM:4F1B ; End of function ROM_4EB5 +ROM:4F1B +ROM:4F1C +ROM:4F1C ; =============== S U B R O U T I N E ======================================= +ROM:4F1C +ROM:4F1C +ROM:4F1C ROM_4F1C: ; CODE XREF: ROM_569D+29↓p +ROM:4F1C mov R7, #1 +ROM:4F1E lcall ROM_55D4 +ROM:4F21 mov R7, #1 +ROM:4F23 lcall ROM_549C +ROM:4F26 acall ROM_4FB6 +ROM:4F28 mov R5, #2 +ROM:4F2A clr A +ROM:4F2B mov R7, A +ROM:4F2C +ROM:4F2C ROM_4F2C: ; CODE XREF: ROM_569D+3C↓j +ROM:4F2C mov R1, RAM_5 +ROM:4F2E clr A +ROM:4F2F mov DPTR, #0xF85E +ROM:4F32 movx @DPTR, A +ROM:4F33 inc DPTR +ROM:4F34 movx @DPTR, A +ROM:4F35 lcall ROM_9D28 +ROM:4F38 mov DPTR, #0xF85E +ROM:4F3B xch A, R7 +ROM:4F3C movx @DPTR, A +ROM:4F3D inc DPTR +ROM:4F3E mov A, R7 +ROM:4F3F movx @DPTR, A +ROM:4F40 clr A +ROM:4F41 mov R3, A +ROM:4F42 mov R2, A +ROM:4F43 +ROM:4F43 ROM_4F43: ; CODE XREF: ROM_4F1C:ROM_4F84↓j +ROM:4F43 setb C +ROM:4F44 mov DPTR, #0xF85F +ROM:4F47 movx A, @DPTR +ROM:4F48 subb A, R3 +ROM:4F49 mov DPTR, #0xF85E +ROM:4F4C movx A, @DPTR +ROM:4F4D subb A, R2 +ROM:4F4E jc ROM_4F86 +ROM:4F50 mov DPTR, #0xFDAB +ROM:4F53 movx A, @DPTR +ROM:4F54 mov R7, A +ROM:4F55 cpl A +ROM:4F56 jz ROM_4F5B +ROM:4F58 mov A, R7 +ROM:4F59 jnz ROM_4F72 +ROM:4F5B +ROM:4F5B ROM_4F5B: ; CODE XREF: ROM_4F1C+3A↑j +ROM:4F5B mov A, R1 +ROM:4F5C jnz ROM_4F64 +ROM:4F5E acall ROM_4F92 +ROM:4F60 acall ROM_4F87 +ROM:4F62 sjmp ROM_4F6A +ROM:4F64 ; --------------------------------------------------------------------------- +ROM:4F64 +ROM:4F64 ROM_4F64: ; CODE XREF: ROM_4F1C+40↑j +ROM:4F64 acall ROM_4F92 +ROM:4F66 cpl A +ROM:4F67 acall ROM_4F87 +ROM:4F69 cpl A +ROM:4F6A +ROM:4F6A ROM_4F6A: ; CODE XREF: ROM_4F1C+46↑j +ROM:4F6A anl A, #0xF +ROM:4F6C mov R7, A +ROM:4F6D lcall ROM_5191 +ROM:4F70 sjmp ROM_4F7D +ROM:4F72 ; --------------------------------------------------------------------------- +ROM:4F72 +ROM:4F72 ROM_4F72: ; CODE XREF: ROM_4F1C+3D↑j +ROM:4F72 mov A, R1 +ROM:4F73 jnz ROM_4F79 +ROM:4F75 acall ROM_4F92 +ROM:4F77 sjmp ROM_4F7C +ROM:4F79 ; --------------------------------------------------------------------------- +ROM:4F79 +ROM:4F79 ROM_4F79: ; CODE XREF: ROM_4F1C+57↑j +ROM:4F79 acall ROM_4F92 +ROM:4F7B cpl A +ROM:4F7C +ROM:4F7C ROM_4F7C: ; CODE XREF: ROM_4F1C+5B↑j +ROM:4F7C mov R7, A +ROM:4F7D +ROM:4F7D ROM_4F7D: ; CODE XREF: ROM_4F1C+54↑j +ROM:4F7D acall ROM_4D0B +ROM:4F7F inc R3 +ROM:4F80 cjne R3, #0, ROM_4F84 +ROM:4F83 inc R2 +ROM:4F84 +ROM:4F84 ROM_4F84: ; CODE XREF: ROM_4F1C+64↑j +ROM:4F84 sjmp ROM_4F43 +ROM:4F86 ; --------------------------------------------------------------------------- +ROM:4F86 +ROM:4F86 ROM_4F86: ; CODE XREF: ROM_4F1C+32↑j +ROM:4F86 ret +ROM:4F86 ; End of function ROM_4F1C +ROM:4F86 +ROM:4F87 +ROM:4F87 ; =============== S U B R O U T I N E ======================================= +ROM:4F87 +ROM:4F87 +ROM:4F87 ROM_4F87: ; CODE XREF: ROM_4F1C+44↑p +ROM:4F87 ; ROM_4F1C+4B↑p +ROM:4F87 anl A, #0xF0 +ROM:4F89 swap A +ROM:4F8A anl A, #0xF +ROM:4F8C mov R7, A +ROM:4F8D lcall ROM_5191 +ROM:4F90 acall ROM_4D0B +ROM:4F90 ; End of function ROM_4F87 +ROM:4F90 +ROM:4F92 +ROM:4F92 ; =============== S U B R O U T I N E ======================================= +ROM:4F92 +ROM:4F92 +ROM:4F92 ROM_4F92: ; CODE XREF: ROM_4F1C+42↑p +ROM:4F92 ; ROM_4F1C:ROM_4F64↑p ... +ROM:4F92 mov A, #0 +ROM:4F94 add A, R3 +ROM:4F95 mov DP0L, A ; Data Pointer Low Byte +ROM:4F97 mov A, #0xE0 +ROM:4F99 addc A, R2 +ROM:4F9A mov DP0H, A ; Data Pointer High Byte +ROM:4F9C movx A, @DPTR +ROM:4F9D ret +ROM:4F9D ; End of function ROM_4F92 +ROM:4F9D +ROM:4F9E +ROM:4F9E ; =============== S U B R O U T I N E ======================================= +ROM:4F9E +ROM:4F9E +ROM:4F9E ROM_4F9E: ; CODE XREF: ROM_508B+3A↓p +ROM:4F9E ; ROM_9B7E+A↓p +ROM:4F9E +ROM:4F9E ; FUNCTION CHUNK AT ROM:9BEF SIZE 00000019 BYTES +ROM:4F9E +ROM:4F9E setb P1.7 ; Port 1 +ROM:4FA0 setb P2.0 ; Port 2 +ROM:4FA2 lcall ROM_37E9 +ROM:4FA5 jnz ROM_4FAC +ROM:4FA7 acall ROM_4CA0 +ROM:4FA9 ljmp ROM_9BEF +ROM:4FAC ; --------------------------------------------------------------------------- +ROM:4FAC +ROM:4FAC ROM_4FAC: ; CODE XREF: ROM_4F9E+7↑j +ROM:4FAC acall ROM_4FEF +ROM:4FAE lcall ROM_512D +ROM:4FB1 jnz ROM_4FB5 +ROM:4FB3 acall ROM_4FD0 +ROM:4FB5 +ROM:4FB5 ROM_4FB5: ; CODE XREF: ROM_4F9E+13↑j +ROM:4FB5 ret +ROM:4FB5 ; End of function ROM_4F9E +ROM:4FB5 +ROM:4FB6 +ROM:4FB6 ; =============== S U B R O U T I N E ======================================= +ROM:4FB6 +ROM:4FB6 +ROM:4FB6 ROM_4FB6: ; CODE XREF: ROM_4F1C+A↑p +ROM:4FB6 lcall ROM_37E9 +ROM:4FB9 jnz ROM_4FC5 +ROM:4FBB acall ROM_4CFB +ROM:4FBD clr A +ROM:4FBE mov R7, A +ROM:4FBF acall ROM_4D0B +ROM:4FC1 mov R7, #0x26 ; '&' +ROM:4FC3 sjmp ROM_4FC7 +ROM:4FC5 ; --------------------------------------------------------------------------- +ROM:4FC5 +ROM:4FC5 ROM_4FC5: ; CODE XREF: ROM_4FB6+3↑j +ROM:4FC5 mov R7, #0x13 +ROM:4FC7 +ROM:4FC7 ROM_4FC7: ; CODE XREF: ROM_4FB6+D↑j +ROM:4FC7 ljmp code_42E +ROM:4FC7 ; End of function ROM_4FB6 +ROM:4FC7 +ROM:4FCA +ROM:4FCA ; =============== S U B R O U T I N E ======================================= +ROM:4FCA +ROM:4FCA +ROM:4FCA ROM_4FCA: ; CODE XREF: ROM_4EB5+15↑p +ROM:4FCA ; ROM_4EB5+44↑p ... +ROM:4FCA mov R7, #1 +ROM:4FCC mov R6, #0 +ROM:4FCE ajmp ROM_4CB7 +ROM:4FCE ; End of function ROM_4FCA +ROM:4FCE +ROM:4FD0 +ROM:4FD0 ; =============== S U B R O U T I N E ======================================= +ROM:4FD0 +ROM:4FD0 +ROM:4FD0 ROM_4FD0: ; CODE XREF: ROM_4F9E+15↑p +ROM:4FD0 mov R3, #5 +ROM:4FD2 +ROM:4FD2 ROM_4FD2: ; CODE XREF: ROM_4FD0+7↓j +ROM:4FD2 acall ROM_4FEF +ROM:4FD4 jb P2.1, ROM_4FD9 ; Port 2 +ROM:4FD7 djnz R3, ROM_4FD2 +ROM:4FD9 +ROM:4FD9 ROM_4FD9: ; CODE XREF: ROM_4FD0+4↑j +ROM:4FD9 ret +ROM:4FD9 ; End of function ROM_4FD0 +ROM:4FD9 +ROM:4FDA +ROM:4FDA ; =============== S U B R O U T I N E ======================================= +ROM:4FDA +ROM:4FDA +ROM:4FDA ROM_4FDA: ; CODE XREF: ROM_9B7E-4E25↑p +ROM:4FDA ; ROM_9B7E-4D5E↑p +ROM:4FDA lcall code_42E +ROM:4FDD mov R7, #3 +ROM:4FDF ajmp ROM_4D0B +ROM:4FDF ; End of function ROM_4FDA +ROM:4FDF +ROM:4FE1 +ROM:4FE1 ; =============== S U B R O U T I N E ======================================= +ROM:4FE1 +ROM:4FE1 +ROM:4FE1 ROM_4FE1: ; CODE XREF: ROM_9B7E-4DFA↑p +ROM:4FE1 ; ROM_9B7E-4DAB↑p +ROM:4FE1 lcall code_42E +ROM:4FE4 mov R7, #1 +ROM:4FE6 ajmp ROM_4D0B +ROM:4FE6 ; End of function ROM_4FE1 +ROM:4FE6 +ROM:4FE8 +ROM:4FE8 ; =============== S U B R O U T I N E ======================================= +ROM:4FE8 +ROM:4FE8 +ROM:4FE8 ROM_4FE8: ; CODE XREF: Radio_Something_Setup_ROM_4B0C:ROM_4BAA↑p +ROM:4FE8 ; Radio_Something_Setup_ROM_4B0C:ROM_4C2F↑p ... +ROM:4FE8 mov DPTR, #0xF831 +ROM:4FEB movx A, @DPTR +ROM:4FEC inc A +ROM:4FED movx @DPTR, A +ROM:4FEE ret +ROM:4FEE ; End of function ROM_4FE8 +ROM:4FEE +ROM:4FEF +ROM:4FEF ; =============== S U B R O U T I N E ======================================= +ROM:4FEF +ROM:4FEF +ROM:4FEF ROM_4FEF: ; CODE XREF: ROM_4F9E:ROM_4FAC↑p +ROM:4FEF ; ROM_4FD0:ROM_4FD2↑p +ROM:4FEF clr P2.0 ; Port 2 +ROM:4FF1 mov R7, #0xD0 +ROM:4FF3 mov R6, #7 +ROM:4FF5 acall ROM_4CB7 +ROM:4FF7 setb P2.0 ; Port 2 +ROM:4FF9 mov R6, #7 +ROM:4FFB acall ROM_4CB7 +ROM:4FFD setb P1.7 ; Port 1 +ROM:4FFF mov R6, #7 +ROM:5001 ljmp ROM_4CB7 +ROM:5001 ; End of function ROM_4FEF +ROM:5001 +ROM:5004 +ROM:5004 ; =============== S U B R O U T I N E ======================================= +ROM:5004 +ROM:5004 +ROM:5004 gpio_setup_magic_ROM_5004: ; CODE XREF: pretty_early_init_code_1DFD+A↑p +ROM:5004 ; Something_eeprom_ROM_5FE9+9↓p ... +ROM:5004 P0DIR = FSR_B9 +ROM:5004 P0PULL = FSR_BC +ROM:5004 lcall Kill_all_func_ROM_9BE7 +ROM:5007 mov P0DIR, #1 +ROM:500A mov P0, A ; P0 = 0 +ROM:500C mov P0PULL, #1 ; only pullup on P0.0 +ROM:500F acall load_0xFDAA_and_xor_0x01 +ROM:5011 jnz ROM_5030 ; P0.0 = out +ROM:5013 lcall load_0xFEA0_and_xor_0x04 +ROM:5016 jnz ROM_5022 ; P1DIR, P0.0 = OUT +ROM:5018 mov FSR_BA, #0x86 ; P1DIR, 1.1, 1.2, 1.7 = IN +ROM:501B mov P1, A ; Port 1 +ROM:501D mov FSR_BD, #0x86 ; 1.1, 1.2, 1.7 = PULLUP +ROM:5020 sjmp gpio_setup_endROM_5039 ; P2.0, P2.1, P2.2 = in +ROM:5022 ; --------------------------------------------------------------------------- +ROM:5022 +ROM:5022 ROM_5022: ; CODE XREF: gpio_setup_magic_ROM_5004+12↑j +ROM:5022 mov FSR_BA, #0xFE ; P1DIR, P0.0 = OUT +ROM:5025 mov FSR_BD, #0x86 ; P1.1, P1.2, P1.7 = PULLUP +ROM:5028 anl FSR_BD, #0x8F ; ? +ROM:502B anl P1, #0xF7 ; P1.3 = out +ROM:502E sjmp gpio_setup_endROM_5039 ; P2.0, P2.1, P2.2 = in +ROM:5030 ; --------------------------------------------------------------------------- +ROM:5030 +ROM:5030 ROM_5030: ; CODE XREF: gpio_setup_magic_ROM_5004+D↑j +ROM:5030 mov FSR_BA, #0xFE ; P0.0 = out +ROM:5033 clr A +ROM:5034 mov P1, A ; P1 = 0 +ROM:5036 mov FSR_BD, #0xFE ; P1PULL only 0 low? +ROM:5039 +ROM:5039 gpio_setup_endROM_5039: ; CODE XREF: gpio_setup_magic_ROM_5004+1C↑j +ROM:5039 ; gpio_setup_magic_ROM_5004+2A↑j +ROM:5039 mov FSR_BB, #7 ; P2.0, P2.1, P2.2 = in +ROM:503C clr A +ROM:503D mov P2, A ; P2 = 0 +ROM:503F mov FSR_BE, #5 ; P2.0, P2.2 = PULLUP +ROM:5042 ret +ROM:5042 ; End of function gpio_setup_magic_ROM_5004 +ROM:5042 +ROM:5043 +ROM:5043 ; =============== S U B R O U T I N E ======================================= +ROM:5043 +ROM:5043 ; SPI CLK and MOSI as OUT +ROM:5043 +ROM:5043 SPI_PINS_ENABLE: ; CODE XREF: ROM_3671:ROM_370B↑p +ROM:5043 ; ROM_504D↓p +ROM:5043 anl FSR_B9, #0xFC +ROM:5043 ; End of function SPI_PINS_ENABLE +ROM:5043 +ROM:5046 +ROM:5046 ; =============== S U B R O U T I N E ======================================= +ROM:5046 +ROM:5046 +ROM:5046 load_0xFDAA_and_xor_0x01: ; CODE XREF: ROM_4EB5+2↑p +ROM:5046 ; ROM_4EB5+56↑p ... +ROM:5046 mov DPTR, #0xFDAA +ROM:5049 movx A, @DPTR +ROM:504A xrl A, #1 +ROM:504C ret +ROM:504C ; End of function load_0xFDAA_and_xor_0x01 +ROM:504C +ROM:504D +ROM:504D ; =============== S U B R O U T I N E ======================================= +ROM:504D +ROM:504D +ROM:504D ROM_504D: ; CODE XREF: ROM_508B+38↓p +ROM:504D ; ROM_9B7E+7↓p +ROM:504D acall SPI_PINS_ENABLE ; SPI CLK and MOSI as OUT +ROM:504F jnz ROM_5056 +ROM:5051 anl FSR_BA, #0x7B +ROM:5054 sjmp ROM_5059 +ROM:5056 ; --------------------------------------------------------------------------- +ROM:5056 +ROM:5056 ROM_5056: ; CODE XREF: ROM_504D+2↑j +ROM:5056 anl FSR_BA, #0x1F +ROM:5059 +ROM:5059 ROM_5059: ; CODE XREF: ROM_504D+7↑j +ROM:5059 anl FSR_BB, #0xFA +ROM:505C orl FSR_BB, #2 +ROM:505F acall ROM_506B +ROM:5061 acall load_0xFDAA_and_xor_0x01 +ROM:5063 jnz ROM_5068 +ROM:5065 clr P1.2 ; Port 1 +ROM:5067 ret +ROM:5068 ; --------------------------------------------------------------------------- +ROM:5068 +ROM:5068 ROM_5068: ; CODE XREF: ROM_504D+16↑j +ROM:5068 clr P1.5 ; Port 1 +ROM:506A ret +ROM:506A ; End of function ROM_504D +ROM:506A +ROM:506B +ROM:506B ; =============== S U B R O U T I N E ======================================= +ROM:506B +ROM:506B +ROM:506B ROM_506B: ; CODE XREF: ROM_3671+AF↑p +ROM:506B ; ROM_4EB5:ROM_4F16↑p ... +ROM:506B lcall ROM_D91D +ROM:506E acall load_0xFDAA_and_xor_0x01 +ROM:5070 jnz ROM_507C +ROM:5072 anl P0FUNC, #0xF7 +ROM:5075 anl FSR_B9, #0xF7 +ROM:5078 setb P03 ; Port 0 +ROM:507A sjmp ROM_5084 +ROM:507C ; --------------------------------------------------------------------------- +ROM:507C +ROM:507C ROM_507C: ; CODE XREF: ROM_506B+5↑j +ROM:507C anl P1FUNC, #0xBF +ROM:507F anl FSR_BA, #0xBF +ROM:5082 setb P1.6 ; Port 1 +ROM:5084 +ROM:5084 ROM_5084: ; CODE XREF: ROM_506B+F↑j +ROM:5084 orl FSR_BC, #7 +ROM:5087 orl FSR_B7, #8 +ROM:508A ret +ROM:508A ; End of function ROM_506B +ROM:508A +ROM:508B +ROM:508B ; =============== S U B R O U T I N E ======================================= +ROM:508B +ROM:508B +ROM:508B ROM_508B: ; CODE XREF: ROM_2153:ROM_2203↑p +ROM:508B lcall ROM_37E9 +ROM:508E jnz ROM_50B9 +ROM:5090 mov R7, #0x22 ; '"' +ROM:5092 lcall code_42E +ROM:5095 mov R7, #0xC7 +ROM:5097 lcall ROM_4D0B +ROM:509A mov R7, #0x20 ; ' ' +ROM:509C acall ROM_5120 +ROM:509E clr A +ROM:509F mov R7, A +ROM:50A0 lcall ROM_3671 +ROM:50A3 mov DPTR, #0xFD80 +ROM:50A6 movx A, @DPTR +ROM:50A7 acall ROM_5783 +ROM:50A9 jnc ROM_50B0 +ROM:50AB mov R7, #0x72 ; 'r' +ROM:50AD lcall ROM_D99E +ROM:50B0 +ROM:50B0 ROM_50B0: ; CODE XREF: ROM_508B+1E↑j +ROM:50B0 mov R7, #0x10 +ROM:50B2 lcall code_42E +ROM:50B5 mov R7, #1 +ROM:50B7 sjmp ROM_50E8 +ROM:50B9 ; --------------------------------------------------------------------------- +ROM:50B9 +ROM:50B9 ROM_50B9: ; CODE XREF: ROM_508B+3↑j +ROM:50B9 mov R7, #0x12 +ROM:50BB acall ROM_5120 +ROM:50BD clr A +ROM:50BE mov R7, A +ROM:50BF acall ROM_512A +ROM:50C1 jnz ROM_50C8 +ROM:50C3 acall ROM_504D +ROM:50C5 lcall ROM_4F9E +ROM:50C8 +ROM:50C8 ROM_50C8: ; CODE XREF: ROM_508B+36↑j +ROM:50C8 mov R7, #0x50 ; 'P' +ROM:50CA lcall code_42E +ROM:50CD mov R7, #0xF7 +ROM:50CF lcall ROM_4D0B +ROM:50D2 mov R7, #0x82 +ROM:50D4 lcall ROM_4D06 +ROM:50D7 mov R7, #2 +ROM:50D9 acall ROM_5120 +ROM:50DB mov R7, #1 +ROM:50DD acall ROM_512A +ROM:50DF jnz ROM_50EB +ROM:50E1 mov R7, #7 +ROM:50E3 lcall code_42E +ROM:50E6 mov R7, #0xA5 +ROM:50E8 +ROM:50E8 ROM_50E8: ; CODE XREF: ROM_508B+2C↑j +ROM:50E8 lcall ROM_4D0B +ROM:50EB +ROM:50EB ROM_50EB: ; CODE XREF: ROM_508B+54↑j +ROM:50EB mov DPTR, #0xFB80 +ROM:50EE lcall load_4_bytes_R4_R5_R6_A +ROM:50F1 mov R7, A +ROM:50F2 lcall code_533 +ROM:50F5 mov DPTR, #0xF50A +ROM:50F8 movx A, @DPTR +ROM:50F9 xrl A, #1 +ROM:50FB jnz ROM_5111 +ROM:50FD mov DPTR, #0xF50C +ROM:5100 movx A, @DPTR +ROM:5101 inc A +ROM:5102 movx @DPTR, A +ROM:5103 jnz ROM_510B +ROM:5105 mov DPTR, #0xF50B +ROM:5108 movx A, @DPTR +ROM:5109 inc A +ROM:510A movx @DPTR, A +ROM:510B +ROM:510B ROM_510B: ; CODE XREF: ROM_508B+78↑j +ROM:510B clr A +ROM:510C mov DPTR, #0xF50A +ROM:510F movx @DPTR, A +ROM:5110 ret +ROM:5111 ; --------------------------------------------------------------------------- +ROM:5111 +ROM:5111 ROM_5111: ; CODE XREF: ROM_508B+70↑j +ROM:5111 mov DPTR, #0xF50E +ROM:5114 movx A, @DPTR +ROM:5115 inc A +ROM:5116 movx @DPTR, A +ROM:5117 jnz ROM_511F +ROM:5119 mov DPTR, #0xF50D +ROM:511C movx A, @DPTR +ROM:511D inc A +ROM:511E movx @DPTR, A +ROM:511F +ROM:511F ROM_511F: ; CODE XREF: ROM_508B+8C↑j +ROM:511F ret +ROM:511F ; End of function ROM_508B +ROM:511F +ROM:5120 +ROM:5120 ; =============== S U B R O U T I N E ======================================= +ROM:5120 +ROM:5120 +ROM:5120 ROM_5120: ; CODE XREF: ROM_9B7E-4DE8↑p +ROM:5120 ; ROM_9B7E-4D3D↑p ... +ROM:5120 lcall code_42E +ROM:5120 ; End of function ROM_5120 +ROM:5120 +ROM:5123 +ROM:5123 ; =============== S U B R O U T I N E ======================================= +ROM:5123 +ROM:5123 +ROM:5123 ROM_5123: ; CODE XREF: ROM_93F3+18↓p +ROM:5123 ; ROM_AAD2+3↓p +ROM:5123 mov R7, #0xE8 +ROM:5125 mov R6, #3 +ROM:5127 ljmp ROM_4CB7 +ROM:5127 ; End of function ROM_5123 +ROM:5127 +ROM:512A +ROM:512A ; =============== S U B R O U T I N E ======================================= +ROM:512A +ROM:512A +ROM:512A ROM_512A: ; CODE XREF: ROM_508B+34↑p +ROM:512A ; ROM_508B+52↑p +ROM:512A lcall ROM_3671 +ROM:512A ; End of function ROM_512A +ROM:512A +ROM:512D +ROM:512D ; =============== S U B R O U T I N E ======================================= +ROM:512D +ROM:512D +ROM:512D ROM_512D: ; CODE XREF: ROM_9B7E-4D92↑p +ROM:512D ; ROM_9B7E-4D06↑p ... +ROM:512D mov DPTR, #0xFDAB +ROM:5130 movx A, @DPTR +ROM:5131 xrl A, #1 +ROM:5133 ret +ROM:5133 ; End of function ROM_512D +ROM:5133 +ROM:5133 ; --------------------------------------------------------------------------- +ROM:5134 .byte 0xA9 +ROM:5135 .byte 7 +ROM:5136 .byte 0xE4 +ROM:5137 .byte 0xFB +ROM:5138 .byte 0xFA +ROM:5139 .byte 0xD3 +ROM:513A .byte 0x90 +ROM:513B .byte 0xFD +ROM:513C .byte 0xBB +ROM:513D .byte 0xE0 +ROM:513E .byte 0x9B +ROM:513F .byte 0x90 +ROM:5140 .byte 0xFD +ROM:5141 .byte 0xBA +ROM:5142 .byte 0xE0 +ROM:5143 .byte 0x9A +ROM:5144 .byte 0x40 ; @ +ROM:5145 .byte 0x19 +ROM:5146 .byte 0x31 ; 1 +ROM:5147 .byte 0x2D ; - +ROM:5148 .byte 0x60 ; ` +ROM:5149 .byte 9 +ROM:514A .byte 0x31 ; 1 +ROM:514B .byte 0x8D +ROM:514C .byte 0x12 +ROM:514D .byte 0x4D ; M +ROM:514E .byte 0xB +ROM:514F .byte 0x31 ; 1 +ROM:5150 .byte 0x8D +ROM:5151 .byte 0x80 +ROM:5152 .byte 2 +ROM:5153 .byte 0xAF +ROM:5154 .byte 1 +ROM:5155 .byte 0x12 +ROM:5156 .byte 0x4D ; M +ROM:5157 .byte 0xB +ROM:5158 .byte 0xB +ROM:5159 .byte 0xBB +ROM:515A .byte 0 +ROM:515B .byte 1 +ROM:515C .byte 0xA +ROM:515D .byte 0x80 +ROM:515E .byte 0xDA +ROM:515F .byte 0x22 ; " +ROM:5160 .byte 0xAC +ROM:5161 .byte 7 +ROM:5162 .byte 0xF1 +ROM:5163 .byte 0x50 ; P +ROM:5164 .byte 0xEC +ROM:5165 .byte 0x64 ; d +ROM:5166 .byte 0x1F +ROM:5167 .byte 0x70 ; p +ROM:5168 .byte 4 +ROM:5169 .byte 0x7F ;  +ROM:516A .byte 0xFF +ROM:516B .byte 0x80 +ROM:516C .byte 6 +ROM:516D .byte 0xEC +ROM:516E .byte 0x64 ; d +ROM:516F .byte 0x20 +ROM:5170 .byte 0x70 ; p +ROM:5171 .byte 0xA +ROM:5172 .byte 0xFF +ROM:5173 .byte 0x31 ; 1 +ROM:5174 .byte 0x34 ; 4 +ROM:5175 .byte 0x12 +ROM:5176 .byte 0x4F ; O +ROM:5177 .byte 0xB6 +ROM:5178 .byte 0xE4 +ROM:5179 .byte 0xFF +ROM:517A .byte 0x80 +ROM:517B .byte 0xE +ROM:517C .byte 0xEC +ROM:517D .byte 0x64 ; d +ROM:517E .byte 0x21 ; ! +ROM:517F .byte 0x70 ; p +ROM:5180 .byte 0xB +ROM:5181 .byte 0x7F ;  +ROM:5182 .byte 0xFF +ROM:5183 .byte 0x31 ; 1 +ROM:5184 .byte 0x34 ; 4 +ROM:5185 .byte 0x12 +ROM:5186 .byte 0x4F ; O +ROM:5187 .byte 0xB6 +ROM:5188 .byte 0x7F ;  +ROM:5189 .byte 0xFF +ROM:518A .byte 0x31 ; 1 +ROM:518B .byte 0x34 ; 4 +ROM:518C .byte 0x22 ; " +ROM:518D .byte 0xE9 +ROM:518E .byte 0x54 ; T +ROM:518F .byte 0xF +ROM:5190 .byte 0xFF +ROM:5191 +ROM:5191 ; =============== S U B R O U T I N E ======================================= +ROM:5191 +ROM:5191 +ROM:5191 ROM_5191: ; CODE XREF: ROM_4F1C+51↑p +ROM:5191 ; ROM_4F87+6↑p +ROM:5191 clr A +ROM:5192 mov R6, A +ROM:5193 mov A, R7 +ROM:5194 mov R5, #0 +ROM:5196 jnb ACC3, ROM_519B ; Accumulator +ROM:5199 mov R5, #0xC0 +ROM:519B +ROM:519B ROM_519B: ; CODE XREF: ROM_5191+5↑j +ROM:519B mov A, R6 +ROM:519C orl A, R5 +ROM:519D mov R6, A +ROM:519E mov A, R7 +ROM:519F mov R5, #0 +ROM:51A1 jnb ACC2, ROM_51A6 ; Accumulator +ROM:51A4 mov R5, #0x30 ; '0' +ROM:51A6 +ROM:51A6 ROM_51A6: ; CODE XREF: ROM_5191+10↑j +ROM:51A6 mov A, R6 +ROM:51A7 orl A, R5 +ROM:51A8 mov R6, A +ROM:51A9 mov A, R7 +ROM:51AA mov R5, #0 +ROM:51AC jnb ACC1, ROM_51B1 ; Accumulator +ROM:51AF mov R5, #0xC +ROM:51B1 +ROM:51B1 ROM_51B1: ; CODE XREF: ROM_5191+1B↑j +ROM:51B1 mov A, R6 +ROM:51B2 orl A, R5 +ROM:51B3 mov R6, A +ROM:51B4 mov A, R7 +ROM:51B5 mov R7, #0 +ROM:51B7 jnb ACC0, ROM_51BC ; Accumulator +ROM:51BA mov R7, #3 +ROM:51BC +ROM:51BC ROM_51BC: ; CODE XREF: ROM_5191+26↑j +ROM:51BC mov A, R6 +ROM:51BD orl A, R7 +ROM:51BE mov R7, A +ROM:51BF ret +ROM:51BF ; End of function ROM_5191 +ROM:51BF +ROM:51BF ; --------------------------------------------------------------------------- +ROM:51C0 .byte 0x90 +ROM:51C1 .byte 0xF8 +ROM:51C2 .byte 0x52 ; R +ROM:51C3 .byte 0xEF +ROM:51C4 .byte 0xF0 +ROM:51C5 .byte 0x12 +ROM:51C6 .byte 0xD5 +ROM:51C7 .byte 0x11 +ROM:51C8 .byte 0x7F ;  +ROM:51C9 .byte 1 +ROM:51CA .byte 0x7E ; ~ +ROM:51CB .byte 0xB +ROM:51CC .byte 0x31 ; 1 +ROM:51CD .byte 0x2D ; - +ROM:51CE .byte 0x70 ; p +ROM:51CF .byte 8 +ROM:51D0 .byte 0x90 +ROM:51D1 .byte 0xFD +ROM:51D2 .byte 0xB3 +ROM:51D3 .byte 0xE0 +ROM:51D4 .byte 0x64 ; d +ROM:51D5 .byte 0x16 +ROM:51D6 .byte 0x60 ; ` +ROM:51D7 .byte 8 +ROM:51D8 .byte 0x90 +ROM:51D9 .byte 0xFD +ROM:51DA .byte 0xB3 +ROM:51DB .byte 0xE0 +ROM:51DC .byte 0x64 ; d +ROM:51DD .byte 0x22 ; " +ROM:51DE .byte 0x70 ; p +ROM:51DF .byte 4 +ROM:51E0 .byte 0xE4 +ROM:51E1 .byte 0xFF +ROM:51E2 .byte 0x7E ; ~ +ROM:51E3 .byte 7 +ROM:51E4 .byte 0x12 +ROM:51E5 .byte 0x27 ; ' +ROM:51E6 .byte 0xB1 +ROM:51E7 .byte 0x70 ; p +ROM:51E8 .byte 0x53 ; S +ROM:51E9 .byte 0x90 +ROM:51EA .byte 0xF5 +ROM:51EB .byte 0x3B ; ; +ROM:51EC .byte 0xE0 +ROM:51ED .byte 0xFF +ROM:51EE .byte 0x12 +ROM:51EF .byte 0x81 +ROM:51F0 .byte 0xE5 +ROM:51F1 .byte 0x70 ; p +ROM:51F2 .byte 0x49 ; I +ROM:51F3 .byte 0xEF +ROM:51F4 .byte 0x12 +ROM:51F5 .byte 0xD9 +ROM:51F6 .byte 0x7A ; z +ROM:51F7 .byte 0x12 +ROM:51F8 .byte 0xC +ROM:51F9 .byte 0xC9 +ROM:51FA .byte 0x12 +ROM:51FB .byte 0xD6 +ROM:51FC .byte 0xB1 +ROM:51FD .byte 0x3C ; < +ROM:51FE .byte 0xFC +ROM:51FF .byte 0x90 +ROM:5200 .byte 0xF8 +ROM:5201 .byte 0x53 ; S +ROM:5202 .byte 0x12 +ROM:5203 .byte 0xB +ROM:5204 .byte 0xE2 +ROM:5205 .byte 0x90 +ROM:5206 .byte 0xFD +ROM:5207 .byte 0xBA +ROM:5208 .byte 0x12 +ROM:5209 .byte 0x32 ; 2 +ROM:520A .byte 0x97 +ROM:520B .byte 0xFD +ROM:520C .byte 0x90 +ROM:520D .byte 0xF8 +ROM:520E .byte 0x53 ; S +ROM:520F .byte 0x12 +ROM:5210 .byte 0x3D ; = +ROM:5211 .byte 0xC1 +ROM:5212 .byte 0x2F ; / +ROM:5213 .byte 0xFF +ROM:5214 .byte 0xEA +ROM:5215 .byte 0x3E ; > +ROM:5216 .byte 0x12 +ROM:5217 .byte 0x2F ; / +ROM:5218 .byte 0x7B ; { +ROM:5219 .byte 0x12 +ROM:521A .byte 0x9C +ROM:521B .byte 0x3D ; = +ROM:521C .byte 0x90 +ROM:521D .byte 0xF8 +ROM:521E .byte 0x52 ; R +ROM:521F .byte 0xE0 +ROM:5220 .byte 0xFF +ROM:5221 .byte 0x7B ; { +ROM:5222 .byte 1 +ROM:5223 .byte 0xE4 +ROM:5224 .byte 0xFD +ROM:5225 .byte 0x51 ; Q +ROM:5226 .byte 0x54 ; T +ROM:5227 .byte 0x12 +ROM:5228 .byte 0x4F ; O +ROM:5229 .byte 0x1C +ROM:522A .byte 0x90 +ROM:522B .byte 0xF8 +ROM:522C .byte 0x53 ; S +ROM:522D .byte 0x12 +ROM:522E .byte 0x1F +ROM:522F .byte 0xE9 +ROM:5230 .byte 0xFF +ROM:5231 .byte 0x12 +ROM:5232 .byte 0x9C +ROM:5233 .byte 0x3D ; = +ROM:5234 .byte 0x51 ; Q +ROM:5235 .byte 0x4B ; K +ROM:5236 .byte 0xE4 +ROM:5237 .byte 0xFF +ROM:5238 .byte 0xB1 +ROM:5239 .byte 0xD4 +ROM:523A .byte 0x80 +ROM:523B .byte 0xA +ROM:523C .byte 0x12 +ROM:523D .byte 0x9F +ROM:523E .byte 0x30 ; 0 +ROM:523F .byte 0x12 +ROM:5240 .byte 0x5F ; _ +ROM:5241 .byte 0xA3 +ROM:5242 .byte 0xF1 +ROM:5243 .byte 0x95 +ROM:5244 .byte 0x51 ; Q +ROM:5245 .byte 0x4B ; K +ROM:5246 .byte 0xF1 +ROM:5247 .byte 0x46 ; F +ROM:5248 .byte 2 +ROM:5249 .byte 0x4F ; O +ROM:524A .byte 0x2C ; , +ROM:524B .byte 0x90 +ROM:524C .byte 0xF8 +ROM:524D .byte 0x52 ; R +ROM:524E .byte 0xE0 +ROM:524F .byte 0xFF +ROM:5250 .byte 0x7B ; { +ROM:5251 .byte 0xFF +ROM:5252 .byte 0xE4 +ROM:5253 .byte 0xFD +ROM:5254 .byte 0x90 +ROM:5255 .byte 0xF8 +ROM:5256 .byte 0x57 ; W +ROM:5257 .byte 0xEF +ROM:5258 .byte 0xF0 +ROM:5259 .byte 0xE4 +ROM:525A .byte 0x90 +ROM:525B .byte 0xF8 +ROM:525C .byte 0x59 ; Y +ROM:525D .byte 0xF0 +ROM:525E .byte 0xA3 +ROM:525F .byte 0xF0 +ROM:5260 .byte 0x90 +ROM:5261 .byte 0xF8 +ROM:5262 .byte 0x5D ; ] +ROM:5263 .byte 0xF0 +ROM:5264 .byte 0xA3 +ROM:5265 .byte 0xF0 +ROM:5266 .byte 0x90 +ROM:5267 .byte 0xF8 +ROM:5268 .byte 0x61 ; a +ROM:5269 .byte 4 +ROM:526A .byte 0xF0 +ROM:526B .byte 0x6B ; k +ROM:526C .byte 0x70 ; p +ROM:526D .byte 5 +ROM:526E .byte 0xA3 +ROM:526F .byte 4 +ROM:5270 .byte 0xF0 +ROM:5271 .byte 0x80 +ROM:5272 .byte 5 +ROM:5273 .byte 0xE4 +ROM:5274 .byte 0x90 +ROM:5275 .byte 0xF8 +ROM:5276 .byte 0x62 ; b +ROM:5277 .byte 0xF0 +ROM:5278 .byte 0x90 +ROM:5279 .byte 0xF8 +ROM:527A .byte 0x57 ; W +ROM:527B .byte 0xE0 +ROM:527C .byte 0x64 ; d +ROM:527D .byte 0x83 +ROM:527E .byte 0x60 ; ` +ROM:527F .byte 2 +ROM:5280 .byte 0x61 ; a +ROM:5281 .byte 0x15 +ROM:5282 .byte 0x90 +ROM:5283 .byte 0xF8 +ROM:5284 .byte 0x5A ; Z +ROM:5285 .byte 0x74 ; t +ROM:5286 .byte 4 +ROM:5287 .byte 0xF0 +ROM:5288 .byte 0x90 +ROM:5289 .byte 0xFD +ROM:528A .byte 0xB5 +ROM:528B .byte 0xE0 +ROM:528C .byte 0x24 ; $ +ROM:528D .byte 0xF6 +ROM:528E .byte 0xFE +ROM:528F .byte 0xB1 +ROM:5290 .byte 0xCD +ROM:5291 .byte 0x12 +ROM:5292 .byte 0xD8 +ROM:5293 .byte 0xD2 +ROM:5294 .byte 0xE9 +ROM:5295 .byte 0x12 +ROM:5296 .byte 0x7D ; } +ROM:5297 .byte 0xBA +ROM:5298 .byte 0x50 ; P +ROM:5299 .byte 0x38 ; 8 +ROM:529A .byte 0x12 +ROM:529B .byte 0xD4 +ROM:529C .byte 0x92 +ROM:529D .byte 0x91 +ROM:529E .byte 0x66 ; f +ROM:529F .byte 0x71 ; q +ROM:52A0 .byte 0x9F +ROM:52A1 .byte 0xE4 +ROM:52A2 .byte 0x90 +ROM:52A3 .byte 0xF8 +ROM:52A4 .byte 0x58 ; X +ROM:52A5 .byte 0xF0 +ROM:52A6 .byte 0x91 +ROM:52A7 .byte 0x92 +ROM:52A8 .byte 0xC3 +ROM:52A9 .byte 0x9F +ROM:52AA .byte 0x50 ; P +ROM:52AB .byte 0xC +ROM:52AC .byte 0x91 +ROM:52AD .byte 0x7D ; } +ROM:52AE .byte 0x70 ; p +ROM:52AF .byte 2 +ROM:52B0 .byte 0x91 +ROM:52B1 .byte 0x76 ; v +ROM:52B2 .byte 0x91 +ROM:52B3 .byte 0x5E ; ^ +ROM:52B4 .byte 0x91 +ROM:52B5 .byte 0x84 +ROM:52B6 .byte 0x80 +ROM:52B7 .byte 0xEE +ROM:52B8 .byte 0x91 +ROM:52B9 .byte 0x7D ; } +ROM:52BA .byte 0x70 ; p +ROM:52BB .byte 2 +ROM:52BC .byte 0x91 +ROM:52BD .byte 0x76 ; v +ROM:52BE .byte 0x91 +ROM:52BF .byte 0x5E ; ^ +ROM:52C0 .byte 0x71 ; q +ROM:52C1 .byte 0x9F +ROM:52C2 .byte 0x90 +ROM:52C3 .byte 0xF8 +ROM:52C4 .byte 0x5A ; Z +ROM:52C5 .byte 0xE0 +ROM:52C6 .byte 0x14 +ROM:52C7 .byte 0xF0 +ROM:52C8 .byte 0x90 +ROM:52C9 .byte 0xF8 +ROM:52CA .byte 0x59 ; Y +ROM:52CB .byte 0xE0 +ROM:52CC .byte 0x24 ; $ +ROM:52CD .byte 2 +ROM:52CE .byte 0xF0 +ROM:52CF .byte 9 +ROM:52D0 .byte 0x80 +ROM:52D1 .byte 0xC2 +ROM:52D2 .byte 0x12 +ROM:52D3 .byte 0xDA +ROM:52D4 .byte 0x4C ; L +ROM:52D5 .byte 0xA3 +ROM:52D6 .byte 0xE0 +ROM:52D7 .byte 4 +ROM:52D8 .byte 0xF0 +ROM:52D9 .byte 0x79 ; y +ROM:52DA .byte 5 +ROM:52DB .byte 0xF1 +ROM:52DC .byte 0x82 +ROM:52DD .byte 0x40 ; @ +ROM:52DE .byte 2 +ROM:52DF .byte 0x61 ; a +ROM:52E0 .byte 0x9E +ROM:52E1 .byte 0x12 +ROM:52E2 .byte 0xD4 +ROM:52E3 .byte 0x92 +ROM:52E4 .byte 0x91 +ROM:52E5 .byte 0x66 ; f +ROM:52E6 .byte 0x71 ; q +ROM:52E7 .byte 0x9F +ROM:52E8 .byte 0xE4 +ROM:52E9 .byte 0x90 +ROM:52EA .byte 0xF8 +ROM:52EB .byte 0x58 ; X +ROM:52EC .byte 0xF0 +ROM:52ED .byte 0x91 +ROM:52EE .byte 0x92 +ROM:52EF .byte 0xC3 +ROM:52F0 .byte 0x9F +ROM:52F1 .byte 0x50 ; P +ROM:52F2 .byte 0xC +ROM:52F3 .byte 0x91 +ROM:52F4 .byte 0x7D ; } +ROM:52F5 .byte 0x70 ; p +ROM:52F6 .byte 2 +ROM:52F7 .byte 0x91 +ROM:52F8 .byte 0x76 ; v +ROM:52F9 .byte 0x91 +ROM:52FA .byte 0x5E ; ^ +ROM:52FB .byte 0x91 +ROM:52FC .byte 0x84 +ROM:52FD .byte 0x80 +ROM:52FE .byte 0xEE +ROM:52FF .byte 0x91 +ROM:5300 .byte 0x7D ; } +ROM:5301 .byte 0x70 ; p +ROM:5302 .byte 2 +ROM:5303 .byte 0x91 +ROM:5304 .byte 0x76 ; v +ROM:5305 .byte 0x91 +ROM:5306 .byte 0x5E ; ^ +ROM:5307 .byte 0x71 ; q +ROM:5308 .byte 0x9F +ROM:5309 .byte 0x90 +ROM:530A .byte 0xF8 +ROM:530B .byte 0x5A ; Z +ROM:530C .byte 0xE0 +ROM:530D .byte 4 +ROM:530E .byte 0xF0 +ROM:530F .byte 0x12 +ROM:5310 .byte 0xDA +ROM:5311 .byte 0x4C ; L +ROM:5312 .byte 9 +ROM:5313 .byte 0x80 +ROM:5314 .byte 0xC6 +ROM:5315 .byte 0x90 +ROM:5316 .byte 0xF8 +ROM:5317 .byte 0x57 ; W +ROM:5318 .byte 0xE0 +ROM:5319 .byte 0x64 ; d +ROM:531A .byte 0x82 +ROM:531B .byte 0x60 ; ` +ROM:531C .byte 2 +ROM:531D .byte 0x61 ; a +ROM:531E .byte 0x9E +ROM:531F .byte 0x90 +ROM:5320 .byte 0xFD +ROM:5321 .byte 0xB5 +ROM:5322 .byte 0xE0 +ROM:5323 .byte 0x24 ; $ +ROM:5324 .byte 0xFA +ROM:5325 .byte 0xFE +ROM:5326 .byte 0xB1 +ROM:5327 .byte 0xCD +ROM:5328 .byte 0x12 +ROM:5329 .byte 0xD8 +ROM:532A .byte 0xD2 +ROM:532B .byte 0xE9 +ROM:532C .byte 0x12 +ROM:532D .byte 0x7D ; } +ROM:532E .byte 0xBA +ROM:532F .byte 0x50 ; P +ROM:5330 .byte 0x2F ; / +ROM:5331 .byte 0x12 +ROM:5332 .byte 0xD6 +ROM:5333 .byte 0x1E +ROM:5334 .byte 0x91 +ROM:5335 .byte 0x66 ; f +ROM:5336 .byte 0x71 ; q +ROM:5337 .byte 0x9F +ROM:5338 .byte 0x90 +ROM:5339 .byte 0xF8 +ROM:533A .byte 0x58 ; X +ROM:533B .byte 0x74 ; t +ROM:533C .byte 1 +ROM:533D .byte 0xF0 +ROM:533E .byte 0x91 +ROM:533F .byte 0x92 +ROM:5340 .byte 0xD3 +ROM:5341 .byte 0x9F +ROM:5342 .byte 0x50 ; P +ROM:5343 .byte 0xC +ROM:5344 .byte 0x91 +ROM:5345 .byte 0x7D ; } +ROM:5346 .byte 0x70 ; p +ROM:5347 .byte 2 +ROM:5348 .byte 0x91 +ROM:5349 .byte 0x76 ; v +ROM:534A .byte 0x91 +ROM:534B .byte 0x5E ; ^ +ROM:534C .byte 0x91 +ROM:534D .byte 0x84 +ROM:534E .byte 0x80 +ROM:534F .byte 0xEE +ROM:5350 .byte 0x91 +ROM:5351 .byte 0x7D ; } +ROM:5352 .byte 0x70 ; p +ROM:5353 .byte 2 +ROM:5354 .byte 0x91 +ROM:5355 .byte 0x76 ; v +ROM:5356 .byte 0x91 +ROM:5357 .byte 0x5E ; ^ +ROM:5358 .byte 0x71 ; q +ROM:5359 .byte 0x9F +ROM:535A .byte 0x12 +ROM:535B .byte 0x8B +ROM:535C .byte 0xB1 +ROM:535D .byte 9 +ROM:535E .byte 0x80 +ROM:535F .byte 0xCB +ROM:5360 .byte 0x90 +ROM:5361 .byte 0xF8 +ROM:5362 .byte 0x59 ; Y +ROM:5363 .byte 0xE0 +ROM:5364 .byte 0x14 +ROM:5365 .byte 0xF0 +ROM:5366 .byte 0x79 ; y +ROM:5367 .byte 5 +ROM:5368 .byte 0xF1 +ROM:5369 .byte 0x82 +ROM:536A .byte 0x50 ; P +ROM:536B .byte 0x32 ; 2 +ROM:536C .byte 0x12 +ROM:536D .byte 0xD6 +ROM:536E .byte 0x1E +ROM:536F .byte 0x91 +ROM:5370 .byte 0x66 ; f +ROM:5371 .byte 0x71 ; q +ROM:5372 .byte 0x9F +ROM:5373 .byte 0x90 +ROM:5374 .byte 0xF8 +ROM:5375 .byte 0x58 ; X +ROM:5376 .byte 0x74 ; t +ROM:5377 .byte 1 +ROM:5378 .byte 0xF0 +ROM:5379 .byte 0x91 +ROM:537A .byte 0x92 +ROM:537B .byte 0xD3 +ROM:537C .byte 0x9F +ROM:537D .byte 0x50 ; P +ROM:537E .byte 0xC +ROM:537F .byte 0x91 +ROM:5380 .byte 0x7D ; } +ROM:5381 .byte 0x70 ; p +ROM:5382 .byte 2 +ROM:5383 .byte 0x91 +ROM:5384 .byte 0x76 ; v +ROM:5385 .byte 0x91 +ROM:5386 .byte 0x5E ; ^ +ROM:5387 .byte 0x91 +ROM:5388 .byte 0x84 +ROM:5389 .byte 0x80 +ROM:538A .byte 0xEE +ROM:538B .byte 0x91 +ROM:538C .byte 0x7D ; } +ROM:538D .byte 0x70 ; p +ROM:538E .byte 2 +ROM:538F .byte 0x91 +ROM:5390 .byte 0x76 ; v +ROM:5391 .byte 0x91 +ROM:5392 .byte 0x5E ; ^ +ROM:5393 .byte 0x71 ; q +ROM:5394 .byte 0x9F +ROM:5395 .byte 0x90 +ROM:5396 .byte 0xF8 +ROM:5397 .byte 0x59 ; Y +ROM:5398 .byte 0xE0 +ROM:5399 .byte 0x14 +ROM:539A .byte 0xF0 +ROM:539B .byte 9 +ROM:539C .byte 0x80 +ROM:539D .byte 0xCA +ROM:539E .byte 0x22 ; " +ROM:539F .byte 0x90 +ROM:53A0 .byte 0xF8 +ROM:53A1 .byte 0x61 ; a +ROM:53A2 .byte 0xE0 +ROM:53A3 .byte 0xFB +ROM:53A4 +ROM:53A4 ; =============== S U B R O U T I N E ======================================= +ROM:53A4 +ROM:53A4 +ROM:53A4 ROM_53A4: ; CODE XREF: ROM_8B37+5F↓p +ROM:53A4 mov DPTR, #0xF8A4 +ROM:53A7 lcall ROM_8B2B +ROM:53AA inc DPTR +ROM:53AB mov A, R3 +ROM:53AC lcall code_40E +ROM:53AF mov R0, #3 +ROM:53B1 +ROM:53B1 ROM_53B1: ; CODE XREF: ROM_53A4+12↓j +ROM:53B1 xch A, R6 +ROM:53B2 clr C +ROM:53B3 rrc A +ROM:53B4 xch A, R6 +ROM:53B5 rrc A +ROM:53B6 djnz R0, ROM_53B1 +ROM:53B8 mov R2, A +ROM:53B9 mov R7, A +ROM:53BA mov R6, #0 +ROM:53BC mov DPTR, #0xF8A4 +ROM:53BF movx A, @DPTR +ROM:53C0 mov R4, A +ROM:53C1 inc DPTR +ROM:53C2 movx A, @DPTR +ROM:53C3 mov R5, A +ROM:53C4 lcall ROM_DA6C +ROM:53C7 inc DPTR +ROM:53C8 movx A, @DPTR +ROM:53C9 mov R6, A +ROM:53CA inc DPTR +ROM:53CB movx A, @DPTR +ROM:53CC mov R0, #3 +ROM:53CE +ROM:53CE ROM_53CE: ; CODE XREF: ROM_53A4+2F↓j +ROM:53CE xch A, R6 +ROM:53CF clr C +ROM:53D0 rrc A +ROM:53D1 xch A, R6 +ROM:53D2 rrc A +ROM:53D3 djnz R0, ROM_53CE +ROM:53D5 lcall ROM_D813 +ROM:53D8 lcall save_4_bytes_R4_R7 +ROM:53DB mov DPTR, #0xF8A4 +ROM:53DE lcall ROM_3758 +ROM:53E1 lcall ROM_5C88 +ROM:53E4 subb A, R6 +ROM:53E5 xch A, R7 +ROM:53E6 add A, #0xFF +ROM:53E8 xch A, R7 +ROM:53E9 addc A, #0xFF +ROM:53EB mov R5, RAM_7 +ROM:53ED mov R4, A +ROM:53EE mov R7, RAM_2 +ROM:53F0 mov R6, #0 +ROM:53F2 lcall ROM_DA6C +ROM:53F5 mov DPTR, #0xF8A6 +ROM:53F8 movx A, @DPTR +ROM:53F9 mov R6, A +ROM:53FA inc DPTR +ROM:53FB movx A, @DPTR +ROM:53FC mov R0, #3 +ROM:53FE +ROM:53FE ROM_53FE: ; CODE XREF: ROM_53A4+5F↓j +ROM:53FE xch A, R6 +ROM:53FF clr C +ROM:5400 rrc A +ROM:5401 xch A, R6 +ROM:5402 rrc A +ROM:5403 djnz R0, ROM_53FE +ROM:5405 lcall ROM_D813 +ROM:5408 lcall save_4_bytes_R4_R7 +ROM:540B mov A, R3 +ROM:540C jnz ROM_5426 +ROM:540E mov DPTR, #0xF8A9 +ROM:5411 acall ROM_578E +ROM:5413 acall ROM_5778 +ROM:5415 push DP0H ; Data Pointer High Byte +ROM:5417 push DP0L ; Data Pointer Low Byte +ROM:5419 lcall ROM_D3E7 +ROM:541C sjmp ROM_5420 +ROM:541E ; --------------------------------------------------------------------------- +ROM:541E +ROM:541E ROM_541E: ; CODE XREF: ROM_53A4:ROM_5420↓j +ROM:541E clr C +ROM:541F rlc A +ROM:5420 +ROM:5420 ROM_5420: ; CODE XREF: ROM_53A4+78↑j +ROM:5420 djnz R0, ROM_541E +ROM:5422 cpl A +ROM:5423 anl A, R7 +ROM:5424 sjmp ROM_5458 +ROM:5426 ; --------------------------------------------------------------------------- +ROM:5426 +ROM:5426 ROM_5426: ; CODE XREF: ROM_53A4+68↑j +ROM:5426 mov DPTR, #0xF8A8 +ROM:5429 movx A, @DPTR +ROM:542A xrl A, #1 +ROM:542C jnz ROM_5443 +ROM:542E inc DPTR +ROM:542F acall ROM_578E +ROM:5431 acall ROM_5778 +ROM:5433 push DP0H ; Data Pointer High Byte +ROM:5435 push DP0L ; Data Pointer Low Byte +ROM:5437 lcall ROM_D3E7 +ROM:543A sjmp ROM_543E +ROM:543C ; --------------------------------------------------------------------------- +ROM:543C +ROM:543C ROM_543C: ; CODE XREF: ROM_53A4:ROM_543E↓j +ROM:543C clr C +ROM:543D rlc A +ROM:543E +ROM:543E ROM_543E: ; CODE XREF: ROM_53A4+96↑j +ROM:543E djnz R0, ROM_543C +ROM:5440 orl A, R7 +ROM:5441 sjmp ROM_5458 +ROM:5443 ; --------------------------------------------------------------------------- +ROM:5443 +ROM:5443 ROM_5443: ; CODE XREF: ROM_53A4+88↑j +ROM:5443 mov DPTR, #0xF8A9 +ROM:5446 acall ROM_578E +ROM:5448 acall ROM_5778 +ROM:544A push DP0H ; Data Pointer High Byte +ROM:544C push DP0L ; Data Pointer Low Byte +ROM:544E lcall ROM_D3E7 +ROM:5451 sjmp ROM_5455 +ROM:5453 ; --------------------------------------------------------------------------- +ROM:5453 +ROM:5453 ROM_5453: ; CODE XREF: ROM_53A4:ROM_5455↓j +ROM:5453 clr C +ROM:5454 rlc A +ROM:5455 +ROM:5455 ROM_5455: ; CODE XREF: ROM_53A4+AD↑j +ROM:5455 djnz R0, ROM_5453 +ROM:5457 xrl A, R7 +ROM:5458 +ROM:5458 ROM_5458: ; CODE XREF: ROM_53A4+80↑j +ROM:5458 ; ROM_53A4+9D↑j +ROM:5458 pop DP0L ; Data Pointer Low Byte +ROM:545A pop DP0H ; Data Pointer High Byte +ROM:545C movx @DPTR, A +ROM:545D ret +ROM:545D ; End of function ROM_53A4 +ROM:545D +ROM:545D ; --------------------------------------------------------------------------- +ROM:545E .byte 0x90 +ROM:545F .byte 0xF8 +ROM:5460 .byte 0x5F ; _ +ROM:5461 .byte 0xE0 +ROM:5462 .byte 0xFE +ROM:5463 .byte 0xA3 +ROM:5464 .byte 0xE0 +ROM:5465 .byte 0xFF +ROM:5466 .byte 0xE9 +ROM:5467 .byte 0xFD +ROM:5468 .byte 0x90 +ROM:5469 .byte 0xF8 +ROM:546A .byte 0x5E ; ^ +ROM:546B .byte 0xE0 +ROM:546C .byte 0x2D ; - +ROM:546D .byte 0xFD +ROM:546E .byte 0x90 +ROM:546F .byte 0xF8 +ROM:5470 .byte 0x5D ; ] +ROM:5471 .byte 0xE0 +ROM:5472 .byte 0x34 ; 4 +ROM:5473 .byte 0 +ROM:5474 .byte 0xFC +ROM:5475 .byte 0x22 ; " +ROM:5476 .byte 0x90 +ROM:5477 .byte 0xF8 +ROM:5478 .byte 0x5F ; _ +ROM:5479 .byte 0xE0 +ROM:547A .byte 4 +ROM:547B .byte 0xF0 +ROM:547C .byte 0x22 ; " +ROM:547D .byte 0x90 +ROM:547E .byte 0xF8 +ROM:547F .byte 0x60 ; ` +ROM:5480 .byte 0xE0 +ROM:5481 .byte 4 +ROM:5482 .byte 0xF0 +ROM:5483 .byte 0x22 ; " +ROM:5484 .byte 0x90 +ROM:5485 .byte 0xF8 +ROM:5486 .byte 0x62 ; b +ROM:5487 .byte 0xE0 +ROM:5488 .byte 0xFB +ROM:5489 .byte 0x71 ; q +ROM:548A .byte 0xA4 +ROM:548B +ROM:548B ; =============== S U B R O U T I N E ======================================= +ROM:548B +ROM:548B +ROM:548B ROM_548B: ; CODE XREF: ROM_549C+D4↓p +ROM:548B ; ROM_549C+11F↓p +ROM:548B mov DPTR, #0xF858 +ROM:548E movx A, @DPTR +ROM:548F inc A +ROM:5490 movx @DPTR, A +ROM:5491 ret +ROM:5491 ; End of function ROM_548B +ROM:5491 +ROM:5491 ; --------------------------------------------------------------------------- +ROM:5492 .byte 0x90 +ROM:5493 .byte 0xF8 +ROM:5494 .byte 0x59 ; Y +ROM:5495 +ROM:5495 ; =============== S U B R O U T I N E ======================================= +ROM:5495 +ROM:5495 +ROM:5495 ROM_5495: ; CODE XREF: ROM_549C+C4↓p +ROM:5495 ; ROM_549C+10D↓p +ROM:5495 movx A, @DPTR +ROM:5496 mov R7, A +ROM:5497 mov DPTR, #0xF858 +ROM:549A movx A, @DPTR +ROM:549B ret +ROM:549B ; End of function ROM_5495 +ROM:549B +ROM:549C +ROM:549C ; =============== S U B R O U T I N E ======================================= +ROM:549C +ROM:549C +ROM:549C ROM_549C: ; CODE XREF: ROM_4F1C+7↑p +ROM:549C ; ROM_5746+2↓p +ROM:549C mov DPTR, #0xF857 +ROM:549F mov A, R7 +ROM:54A0 movx @DPTR, A +ROM:54A1 mov DPTR, #0xF506 +ROM:54A4 movx A, @DPTR +ROM:54A5 mov R7, A +ROM:54A6 jnz ROM_54AA +ROM:54A8 ajmp ROM_55BF +ROM:54AA ; --------------------------------------------------------------------------- +ROM:54AA +ROM:54AA ROM_54AA: ; CODE XREF: ROM_549C+A↑j +ROM:54AA xrl A, #1 +ROM:54AC jz ROM_54B3 +ROM:54AE mov A, R7 +ROM:54AF xrl A, #4 +ROM:54B1 jnz ROM_54BF +ROM:54B3 +ROM:54B3 ROM_54B3: ; CODE XREF: ROM_549C+10↑j +ROM:54B3 mov DPTR, #0xFEAC +ROM:54B6 lcall ROM_4B03 +ROM:54B9 jnc ROM_54BD +ROM:54BB ajmp ROM_55BF +ROM:54BD ; --------------------------------------------------------------------------- +ROM:54BD +ROM:54BD ROM_54BD: ; CODE XREF: ROM_549C+1D↑j +ROM:54BD sjmp ROM_54EB +ROM:54BF ; --------------------------------------------------------------------------- +ROM:54BF +ROM:54BF ROM_54BF: ; CODE XREF: ROM_549C+15↑j +ROM:54BF mov DPTR, #0xF506 +ROM:54C2 movx A, @DPTR +ROM:54C3 mov R7, A +ROM:54C4 xrl A, #2 +ROM:54C6 jz ROM_54CF +ROM:54C8 mov A, R7 +ROM:54C9 xrl A, #5 +ROM:54CB jz ROM_54CF +ROM:54CD ajmp ROM_55BF +ROM:54CF ; --------------------------------------------------------------------------- +ROM:54CF +ROM:54CF ROM_54CF: ; CODE XREF: ROM_549C+2A↑j +ROM:54CF ; ROM_549C+2F↑j +ROM:54CF lcall ROM_DA64 +ROM:54D2 setb C +ROM:54D3 lcall ROM_A780 +ROM:54D6 jnc ROM_54E4 +ROM:54D8 lcall ROM_DA5C +ROM:54DB mov A, #0x15 +ROM:54DD movx @DPTR, A +ROM:54DE inc DPTR +ROM:54DF mov A, #0x79 ; 'y' +ROM:54E1 movx @DPTR, A +ROM:54E2 sjmp ROM_54F5 +ROM:54E4 ; --------------------------------------------------------------------------- +ROM:54E4 +ROM:54E4 ROM_54E4: ; CODE XREF: ROM_549C+3A↑j +ROM:54E4 lcall ROM_D931 +ROM:54E7 jnc ROM_54EB +ROM:54E9 ajmp ROM_55BF +ROM:54EB ; --------------------------------------------------------------------------- +ROM:54EB +ROM:54EB ROM_54EB: ; CODE XREF: ROM_549C:ROM_54BD↑j +ROM:54EB ; ROM_549C+4B↑j +ROM:54EB lcall ROM_DA5C +ROM:54EE mov A, #0x15 +ROM:54F0 movx @DPTR, A +ROM:54F1 inc DPTR +ROM:54F2 mov A, #0x63 ; 'c' +ROM:54F4 movx @DPTR, A +ROM:54F5 +ROM:54F5 ROM_54F5: ; CODE XREF: ROM_549C+46↑j +ROM:54F5 mov DPTR, #0xF507 +ROM:54F8 movx A, @DPTR +ROM:54F9 mov R5, A +ROM:54FA mov R4, #0 +ROM:54FC xrl A, #1 +ROM:54FE jnz ROM_5513 +ROM:5500 mov DPTR, #0xFDB5 +ROM:5503 movx A, @DPTR +ROM:5504 add A, #0xE3 +ROM:5506 mov R6, A +ROM:5507 acall ROM_55CD +ROM:5509 mov DPTR, #0xF85A +ROM:550C movx @DPTR, A +ROM:550D inc DPTR +ROM:550E xch A, R6 +ROM:550F movx @DPTR, A +ROM:5510 clr A +ROM:5511 sjmp ROM_551F +ROM:5513 ; --------------------------------------------------------------------------- +ROM:5513 +ROM:5513 ROM_5513: ; CODE XREF: ROM_549C+62↑j +ROM:5513 mov A, R5 +ROM:5514 xrl A, #2 +ROM:5516 orl A, R4 +ROM:5517 jnz ROM_5525 +ROM:5519 mov DPTR, #0xF85A +ROM:551C movx @DPTR, A +ROM:551D inc DPTR +ROM:551E movx @DPTR, A +ROM:551F +ROM:551F ROM_551F: ; CODE XREF: ROM_549C+75↑j +ROM:551F inc DPTR +ROM:5520 movx @DPTR, A +ROM:5521 inc DPTR +ROM:5522 movx @DPTR, A +ROM:5523 sjmp ROM_554B +ROM:5525 ; --------------------------------------------------------------------------- +ROM:5525 +ROM:5525 ROM_5525: ; CODE XREF: ROM_549C+7B↑j +ROM:5525 mov DPTR, #0xF507 +ROM:5528 movx A, @DPTR +ROM:5529 xrl A, #3 +ROM:552B jnz ROM_5534 +ROM:552D mov DPTR, #0xF85A +ROM:5530 movx @DPTR, A +ROM:5531 inc DPTR +ROM:5532 sjmp ROM_5543 +ROM:5534 ; --------------------------------------------------------------------------- +ROM:5534 +ROM:5534 ROM_5534: ; CODE XREF: ROM_549C+8F↑j +ROM:5534 mov DPTR, #0xFDB5 +ROM:5537 movx A, @DPTR +ROM:5538 add A, #0xEF +ROM:553A mov R6, A +ROM:553B acall ROM_55CD +ROM:553D mov DPTR, #0xF85A +ROM:5540 movx @DPTR, A +ROM:5541 inc DPTR +ROM:5542 xch A, R6 +ROM:5543 +ROM:5543 ROM_5543: ; CODE XREF: ROM_549C+96↑j +ROM:5543 lcall ROM_D786 +ROM:5546 addc A, #0xFF +ROM:5548 acall ROM_5771 +ROM:554A movx @DPTR, A +ROM:554B +ROM:554B ROM_554B: ; CODE XREF: ROM_549C+87↑j +ROM:554B mov R6, #0 +ROM:554D mov R7, #2 +ROM:554F mov R5, #0xFF +ROM:5551 mov R3, #1 +ROM:5553 mov R2, #0xFE +ROM:5555 mov R1, #0x78 ; 'x' +ROM:5557 lcall code_EA0 +ROM:555A lcall ROM_DA54 +ROM:555D +ROM:555D ROM_555D: ; CODE XREF: ROM_549C+E3↓j +ROM:555D lcall ROM_5FDA +ROM:5560 acall ROM_5495 +ROM:5562 lcall ROM_D645 +ROM:5565 mov R4, A +ROM:5566 mov DPTR, #0xF8A1 +ROM:5569 mov A, #1 +ROM:556B lcall ROM_8BAC +ROM:556E jnz ROM_5572 +ROM:5570 acall ROM_548B +ROM:5572 +ROM:5572 ROM_5572: ; CODE XREF: ROM_549C+D2↑j +ROM:5572 clr C +ROM:5573 mov DPTR, #0xF859 +ROM:5576 movx A, @DPTR +ROM:5577 subb A, #0xB +ROM:5579 mov DPTR, #0xF858 +ROM:557C movx A, @DPTR +ROM:557D subb A, #0 +ROM:557F jc ROM_555D +ROM:5581 lcall ROM_DA54 +ROM:5584 +ROM:5584 ROM_5584: ; CODE XREF: ROM_549C:ROM_55BD↓j +ROM:5584 mov DPTR, #0xF858 +ROM:5587 lcall ROM_3758 +ROM:558A subb A, #0xB +ROM:558C mov A, R6 +ROM:558D subb A, #0 +ROM:558F jnc ROM_55BF +ROM:5591 lcall ROM_D574 +ROM:5594 mov DPTR, #0xF85E +ROM:5597 lcall ROM_37C3 +ROM:559A add A, R7 +ROM:559B mov R1, A +ROM:559C mov A, R2 +ROM:559D addc A, R6 +ROM:559E mov R2, A +ROM:559F mov R0, #0x78 ; 'x' +ROM:55A1 mov R4, #0xFE +ROM:55A3 lcall ROM_663D +ROM:55A6 lcall ROM_5FDA +ROM:55A9 acall ROM_5495 +ROM:55AB lcall ROM_D645 +ROM:55AE mov R4, A +ROM:55AF mov DPTR, #0xF857 +ROM:55B2 movx A, @DPTR +ROM:55B3 mov DPTR, #0xF8A1 +ROM:55B6 lcall ROM_8BAC +ROM:55B9 jnz ROM_55BD +ROM:55BB acall ROM_548B +ROM:55BD +ROM:55BD ROM_55BD: ; CODE XREF: ROM_549C+11D↑j +ROM:55BD sjmp ROM_5584 +ROM:55BF ; --------------------------------------------------------------------------- +ROM:55BF +ROM:55BF ROM_55BF: ; CODE XREF: ROM_549C+C↑j +ROM:55BF ; ROM_549C+1F↑j ... +ROM:55BF ret +ROM:55BF ; End of function ROM_549C +ROM:55BF +ROM:55BF ; --------------------------------------------------------------------------- +ROM:55C0 .byte 0xE4 +ROM:55C1 .byte 0xFD +ROM:55C2 .byte 0x7F ;  +ROM:55C3 .byte 0x82 +ROM:55C4 .byte 0x51 ; Q +ROM:55C5 .byte 0x54 ; T +ROM:55C6 .byte 0x90 +ROM:55C7 .byte 0xFD +ROM:55C8 .byte 0xB5 +ROM:55C9 .byte 0xE0 +ROM:55CA .byte 0x24 ; $ +ROM:55CB .byte 0xE0 +ROM:55CC .byte 0xFF +ROM:55CD +ROM:55CD ; =============== S U B R O U T I N E ======================================= +ROM:55CD +ROM:55CD +ROM:55CD ROM_55CD: ; CODE XREF: ROM_9B7E-4E31↑p +ROM:55CD ; ROM_9B7E-4E02↑p ... +ROM:55CD mov DPTR, #0xFDB4 +ROM:55D0 movx A, @DPTR +ROM:55D1 addc A, #0xFF +ROM:55D3 ret +ROM:55D3 ; End of function ROM_55CD +ROM:55D3 +ROM:55D4 +ROM:55D4 ; =============== S U B R O U T I N E ======================================= +ROM:55D4 +ROM:55D4 +ROM:55D4 ROM_55D4: ; CODE XREF: ROM_4F1C+2↑p +ROM:55D4 ; ROM_569D+38↓p +ROM:55D4 mov DPTR, #0xF857 +ROM:55D7 mov A, R7 +ROM:55D8 movx @DPTR, A +ROM:55D9 mov DPTR, #0xF54C +ROM:55DC movx A, @DPTR +ROM:55DD mov R6, A +ROM:55DE inc DPTR +ROM:55DF movx A, @DPTR +ROM:55E0 mov R3, A +ROM:55E1 mov R2, RAM_6 +ROM:55E3 mov DPTR, #0xF506 +ROM:55E6 lcall ROM_4B03 +ROM:55E9 jnc ROM_55ED +ROM:55EB ajmp ROM_569C +ROM:55ED ; --------------------------------------------------------------------------- +ROM:55ED +ROM:55ED ROM_55ED: ; CODE XREF: ROM_55D4+15↑j +ROM:55ED mov A, R3 +ROM:55EE orl A, R2 +ROM:55EF jnz ROM_55F3 +ROM:55F1 ajmp ROM_569C +ROM:55F3 ; --------------------------------------------------------------------------- +ROM:55F3 +ROM:55F3 ROM_55F3: ; CODE XREF: ROM_55D4+1B↑j +ROM:55F3 mov R4, #3 +ROM:55F5 mov R5, #0xE8 +ROM:55F7 mov R7, RAM_3 +ROM:55F9 lcall ROM_D68A +ROM:55FC mov DPTR, #0xF858 +ROM:55FF movx @DPTR, A +ROM:5600 mov R4, #3 +ROM:5602 mov R5, #0xE8 +ROM:5604 lcall ROM_D7AD +ROM:5607 mov R6, #0 +ROM:5609 mov R7, #0x64 ; 'd' +ROM:560B lcall ROM_D684 +ROM:560E inc DPTR +ROM:560F movx @DPTR, A +ROM:5610 mov R4, #0 +ROM:5612 mov R5, #0x64 ; 'd' +ROM:5614 lcall ROM_D7AD +ROM:5617 mov R6, #0 +ROM:5619 mov R7, #0xA +ROM:561B lcall ROM_D684 +ROM:561E inc DPTR +ROM:561F movx @DPTR, A +ROM:5620 mov R6, RAM_2 +ROM:5622 mov R7, RAM_3 +ROM:5624 mov R4, #0 +ROM:5626 mov R5, #0xA +ROM:5628 lcall code_8F0 +ROM:562B mov A, R5 +ROM:562C add A, #0x30 ; '0' +ROM:562E inc DPTR +ROM:562F movx @DPTR, A +ROM:5630 mov DPTR, #0xF507 +ROM:5633 movx A, @DPTR +ROM:5634 dec A +ROM:5635 jz ROM_564E +ROM:5637 dec A +ROM:5638 jz ROM_565B +ROM:563A dec A +ROM:563B jz ROM_5667 +ROM:563D add A, #3 +ROM:563F jnz ROM_5676 +ROM:5641 mov DPTR, #0xFDB5 +ROM:5644 movx A, @DPTR +ROM:5645 add A, #0xD3 +ROM:5647 mov R6, A +ROM:5648 acall ROM_55CD +ROM:564A acall ROM_5771 +ROM:564C sjmp ROM_566A +ROM:564E ; --------------------------------------------------------------------------- +ROM:564E +ROM:564E ROM_564E: ; CODE XREF: ROM_55D4+61↑j +ROM:564E mov DPTR, #0xFDB5 +ROM:5651 movx A, @DPTR +ROM:5652 add A, #0xC7 +ROM:5654 mov R6, A +ROM:5655 acall ROM_55CD +ROM:5657 acall ROM_5771 +ROM:5659 sjmp ROM_565E +ROM:565B ; --------------------------------------------------------------------------- +ROM:565B +ROM:565B ROM_565B: ; CODE XREF: ROM_55D4+64↑j +ROM:565B lcall ROM_D9AF +ROM:565E +ROM:565E ROM_565E: ; CODE XREF: ROM_55D4+85↑j +ROM:565E movx @DPTR, A +ROM:565F inc DPTR +ROM:5660 clr A +ROM:5661 movx @DPTR, A +ROM:5662 inc DPTR +ROM:5663 inc A +ROM:5664 movx @DPTR, A +ROM:5665 sjmp ROM_5676 +ROM:5667 ; --------------------------------------------------------------------------- +ROM:5667 +ROM:5667 ROM_5667: ; CODE XREF: ROM_55D4+67↑j +ROM:5667 lcall ROM_D9AF +ROM:566A +ROM:566A ROM_566A: ; CODE XREF: ROM_55D4+78↑j +ROM:566A lcall ROM_D786 +ROM:566D addc A, #0xFF +ROM:566F mov DPTR, #0xF85E +ROM:5672 movx @DPTR, A +ROM:5673 inc DPTR +ROM:5674 xch A, R6 +ROM:5675 movx @DPTR, A +ROM:5676 +ROM:5676 ROM_5676: ; CODE XREF: ROM_55D4+6B↑j +ROM:5676 ; ROM_55D4+91↑j +ROM:5676 mov DPTR, #0xF85E +ROM:5679 lcall ROM_5F71 +ROM:567C mov R2, #0xF8 +ROM:567E mov R1, #0x58 ; 'X' +ROM:5680 mov DPTR, #0xF88C +ROM:5683 mov A, #4 +ROM:5685 movx @DPTR, A +ROM:5686 clr A +ROM:5687 inc DPTR +ROM:5688 movx @DPTR, A +ROM:5689 mov DPTR, #0xF857 +ROM:568C movx A, @DPTR +ROM:568D mov DPTR, #0xF88E +ROM:5690 movx @DPTR, A +ROM:5691 mov DPTR, #0xF85C +ROM:5694 movx A, @DPTR +ROM:5695 mov R6, A +ROM:5696 inc DPTR +ROM:5697 movx A, @DPTR +ROM:5698 mov R7, A +ROM:5699 lcall ROM_887C +ROM:569C +ROM:569C ROM_569C: ; CODE XREF: ROM_55D4+17↑j +ROM:569C ; ROM_55D4+1D↑j +ROM:569C ret +ROM:569C ; End of function ROM_55D4 +ROM:569C +ROM:569D +ROM:569D ; =============== S U B R O U T I N E ======================================= +ROM:569D +ROM:569D +ROM:569D ROM_569D: ; CODE XREF: ROM_2153:ROM_21A0↑p +ROM:569D acall ROM_5766 +ROM:569F mov DPTR, #0xF53B +ROM:56A2 movx A, @DPTR +ROM:56A3 lcall ROM_D97A +ROM:56A6 lcall code_8DE +ROM:56A9 lcall ROM_D6B1 +ROM:56AC rlc A +ROM:56AD acall ROM_576A +ROM:56AF mov DPTR, #0xFDBA +ROM:56B2 lcall ROM_3297 +ROM:56B5 mov R5, A +ROM:56B6 mov DPTR, #0xF852 +ROM:56B9 lcall load_4_bytes_R0_R1_R2_A +ROM:56BC add A, R7 +ROM:56BD mov R7, A +ROM:56BE mov A, R2 +ROM:56BF addc A, R6 +ROM:56C0 lcall ROM_2F7B +ROM:56C3 lcall ROM_9C3D +ROM:56C6 lcall ROM_4F1C +ROM:56C9 mov DPTR, #0xF852 +ROM:56CC lcall load_4_bytes_R4_R5_R6_A +ROM:56CF mov R7, A +ROM:56D0 lcall ROM_9C3D +ROM:56D3 clr A +ROM:56D4 mov R7, A +ROM:56D5 acall ROM_55D4 +ROM:56D7 acall ROM_5746 +ROM:56D9 ljmp ROM_4F2C +ROM:56D9 ; End of function ROM_569D +ROM:56D9 +ROM:56D9 ; --------------------------------------------------------------------------- +ROM:56DC .byte 0xF1 +ROM:56DD .byte 0x66 ; f +ROM:56DE .byte 0x12 +ROM:56DF .byte 0x27 ; ' +ROM:56E0 .byte 0xB1 +ROM:56E1 .byte 0x70 ; p +ROM:56E2 .byte 0x56 ; V +ROM:56E3 .byte 0x12 +ROM:56E4 .byte 0xD7 +ROM:56E5 .byte 0x7F ;  +ROM:56E6 .byte 0x70 ; p +ROM:56E7 .byte 0x51 ; Q +ROM:56E8 .byte 0x7F ;  +ROM:56E9 .byte 0x3E ; > +ROM:56EA .byte 0xFE +ROM:56EB .byte 0x7D ; } +ROM:56EC .byte 3 +ROM:56ED .byte 0xF1 +ROM:56EE .byte 0x6A ; j +ROM:56EF .byte 0x90 +ROM:56F0 .byte 0xF8 +ROM:56F1 .byte 0x52 ; R +ROM:56F2 .byte 0x12 +ROM:56F3 .byte 0x1F +ROM:56F4 .byte 0xE9 +ROM:56F5 .byte 0xFF +ROM:56F6 .byte 0x12 +ROM:56F7 .byte 0x9C +ROM:56F8 .byte 0xBA +ROM:56F9 .byte 0x7B ; { +ROM:56FA .byte 0xFF +ROM:56FB .byte 0xB1 +ROM:56FC .byte 0xC0 +ROM:56FD .byte 0xFE +ROM:56FE .byte 0x90 +ROM:56FF .byte 0xF8 +ROM:5700 .byte 0x75 ; u +ROM:5701 .byte 0x74 ; t +ROM:5702 .byte 3 +ROM:5703 .byte 0x12 +ROM:5704 .byte 0x88 +ROM:5705 .byte 0x3C ; < +ROM:5706 .byte 0xF1 +ROM:5707 .byte 0x4A ; J +ROM:5708 .byte 0x12 +ROM:5709 .byte 0x4F ; O +ROM:570A .byte 0x2C ; , +ROM:570B .byte 0x90 +ROM:570C .byte 0xFD +ROM:570D .byte 0xBA +ROM:570E .byte 0x12 +ROM:570F .byte 0x32 ; 2 +ROM:5710 .byte 0x97 +ROM:5711 .byte 0xFD +ROM:5712 .byte 0x90 +ROM:5713 .byte 0xF8 +ROM:5714 .byte 0x52 ; R +ROM:5715 .byte 0x12 +ROM:5716 .byte 0x3D ; = +ROM:5717 .byte 0xC1 +ROM:5718 .byte 0x2F ; / +ROM:5719 .byte 0xFF +ROM:571A .byte 0xEA +ROM:571B .byte 0x3E ; > +ROM:571C .byte 0x12 +ROM:571D .byte 0x2F ; / +ROM:571E .byte 0x7B ; { +ROM:571F .byte 0x12 +ROM:5720 .byte 0x9C +ROM:5721 .byte 0xBA +ROM:5722 .byte 0x7B ; { +ROM:5723 .byte 1 +ROM:5724 .byte 0xB1 +ROM:5725 .byte 0xC0 +ROM:5726 .byte 0xFE +ROM:5727 .byte 0x90 +ROM:5728 .byte 0xF8 +ROM:5729 .byte 0x75 ; u +ROM:572A .byte 0x74 ; t +ROM:572B .byte 1 +ROM:572C .byte 0x12 +ROM:572D .byte 0x88 +ROM:572E .byte 0x3C ; < +ROM:572F .byte 0x12 +ROM:5730 .byte 0x4F ; O +ROM:5731 .byte 0xB6 +ROM:5732 .byte 0x7D ; } +ROM:5733 .byte 2 +ROM:5734 .byte 0xE4 +ROM:5735 .byte 0xFF +ROM:5736 .byte 2 +ROM:5737 .byte 0x4F ; O +ROM:5738 .byte 0x2C ; , +ROM:5739 .byte 0x12 +ROM:573A .byte 0x9F +ROM:573B .byte 0x30 ; 0 +ROM:573C .byte 0x12 +ROM:573D .byte 0x5F ; _ +ROM:573E .byte 0xA3 +ROM:573F .byte 0xF1 +ROM:5740 .byte 0x95 +ROM:5741 .byte 0xF1 +ROM:5742 .byte 0x4A ; J +ROM:5743 .byte 2 +ROM:5744 .byte 0x4F ; O +ROM:5745 .byte 0x2C ; , +ROM:5746 +ROM:5746 ; =============== S U B R O U T I N E ======================================= +ROM:5746 +ROM:5746 +ROM:5746 ROM_5746: ; CODE XREF: ROM_569D+3A↑p +ROM:5746 clr A +ROM:5747 mov R7, A +ROM:5748 acall ROM_549C +ROM:574A acall ROM_5750 +ROM:574C clr A +ROM:574D mov R5, A +ROM:574E mov R7, A +ROM:574F ret +ROM:574F ; End of function ROM_5746 +ROM:574F +ROM:5750 +ROM:5750 ; =============== S U B R O U T I N E ======================================= +ROM:5750 +ROM:5750 +ROM:5750 ROM_5750: ; CODE XREF: ROM_5746+4↑p +ROM:5750 lcall ROM_37E9 +ROM:5753 jnz ROM_5761 +ROM:5755 lcall ROM_4CFB +ROM:5758 clr A +ROM:5759 mov R7, A +ROM:575A lcall ROM_4D0B +ROM:575D mov R7, #0x24 ; '$' +ROM:575F sjmp ROM_5763 +ROM:5761 ; --------------------------------------------------------------------------- +ROM:5761 +ROM:5761 ROM_5761: ; CODE XREF: ROM_5750+3↑j +ROM:5761 mov R7, #0x10 +ROM:5763 +ROM:5763 ROM_5763: ; CODE XREF: ROM_5750+F↑j +ROM:5763 ljmp code_42E +ROM:5763 ; End of function ROM_5750 +ROM:5763 +ROM:5766 +ROM:5766 ; =============== S U B R O U T I N E ======================================= +ROM:5766 +ROM:5766 +ROM:5766 ROM_5766: ; CODE XREF: ROM_569D↑p +ROM:5766 clr A +ROM:5767 mov R7, A +ROM:5768 mov R6, A +ROM:5769 mov R5, A +ROM:5769 ; End of function ROM_5766 +ROM:5769 +ROM:576A +ROM:576A ; =============== S U B R O U T I N E ======================================= +ROM:576A +ROM:576A +ROM:576A ROM_576A: ; CODE XREF: ROM_569D+10↑p +ROM:576A mov R4, A +ROM:576B mov DPTR, #0xF852 +ROM:576E ljmp save_4_bytes_R4_R7 +ROM:576E ; End of function ROM_576A +ROM:576E +ROM:5771 +ROM:5771 ; =============== S U B R O U T I N E ======================================= +ROM:5771 +ROM:5771 +ROM:5771 ROM_5771: ; CODE XREF: ROM_549C+AC↑p +ROM:5771 ; ROM_55D4+76↑p ... +ROM:5771 mov DPTR, #0xF85C +ROM:5774 movx @DPTR, A +ROM:5775 inc DPTR +ROM:5776 xch A, R6 +ROM:5777 ret +ROM:5777 ; End of function ROM_5771 +ROM:5777 +ROM:5778 +ROM:5778 ; =============== S U B R O U T I N E ======================================= +ROM:5778 +ROM:5778 +ROM:5778 ROM_5778: ; CODE XREF: ROM_53A4+6F↑p +ROM:5778 ; ROM_53A4+8D↑p ... +ROM:5778 add A, #0 +ROM:577A mov DP0L, A ; Data Pointer Low Byte +ROM:577C mov A, #0xE0 +ROM:577E addc A, R6 +ROM:577F mov DP0H, A ; Data Pointer High Byte +ROM:5781 ret +ROM:5781 ; End of function ROM_5778 +ROM:5781 +ROM:5781 ; --------------------------------------------------------------------------- +ROM:5782 .byte 0xE9 +ROM:5783 +ROM:5783 ; =============== S U B R O U T I N E ======================================= +ROM:5783 +ROM:5783 +ROM:5783 ROM_5783: ; CODE XREF: ROM_9B7E-4DBF↑p +ROM:5783 ; ROM_508B+1C↑p +ROM:5783 clr C +ROM:5784 subb A, #0xA +ROM:5786 mov A, #0x80 +ROM:5788 subb A, #0x80 +ROM:578A ret +ROM:578A ; End of function ROM_5783 +ROM:578A +ROM:578B +ROM:578B ; =============== S U B R O U T I N E ======================================= +ROM:578B +ROM:578B +ROM:578B ROM_578B: ; CODE XREF: ROM_AD6A:ROM_B20C↓p +ROM:578B ; ROM_AD6A:ROM_B3A1↓p ... +ROM:578B mov DPTR, #0xFDE3 +ROM:578B ; End of function ROM_578B +ROM:578B +ROM:578E +ROM:578E ; =============== S U B R O U T I N E ======================================= +ROM:578E +ROM:578E +ROM:578E ROM_578E: ; CODE XREF: ROM_3588+18↑p +ROM:578E ; ROM_53A4+6D↑p ... +ROM:578E inc DPTR +ROM:578F inc DPTR +ROM:5790 movx A, @DPTR +ROM:5791 mov R6, A +ROM:5792 inc DPTR +ROM:5793 movx A, @DPTR +ROM:5794 ret +ROM:5794 ; End of function ROM_578E +ROM:5794 +ROM:5794 ; --------------------------------------------------------------------------- +ROM:5795 .byte 0xE4 +ROM:5796 .byte 0xFD +ROM:5797 .byte 0xFF +ROM:5798 .byte 0x12 +ROM:5799 .byte 0x4F ; O +ROM:579A .byte 0x2C ; , +ROM:579B .byte 0xE4 +ROM:579C .byte 0xFF +ROM:579D .byte 0x90 +ROM:579E .byte 0xF8 +ROM:579F .byte 0x57 ; W +ROM:57A0 .byte 0xEF +ROM:57A1 .byte 0xF0 +ROM:57A2 .byte 0xE4 +ROM:57A3 .byte 0x90 +ROM:57A4 .byte 0xF8 +ROM:57A5 .byte 0x6A ; j +ROM:57A6 .byte 0xF0 +ROM:57A7 .byte 0xA3 +ROM:57A8 .byte 0x74 ; t +ROM:57A9 .byte 0x19 +ROM:57AA .byte 0x12 +ROM:57AB .byte 0x79 ; y +ROM:57AC .byte 0xC7 +ROM:57AD .byte 0x74 ; t +ROM:57AE .byte 0xB +ROM:57AF .byte 0xF0 +ROM:57B0 .byte 0xE4 +ROM:57B1 .byte 0xA3 +ROM:57B2 .byte 0x12 +ROM:57B3 .byte 0x5F ; _ +ROM:57B4 .byte 0x9A +ROM:57B5 .byte 0x12 +ROM:57B6 .byte 0x8D +ROM:57B7 .byte 0xD5 +ROM:57B8 .byte 0x90 +ROM:57B9 .byte 0xF8 +ROM:57BA .byte 0x6A ; j +ROM:57BB .byte 0xE0 +ROM:57BC .byte 0x24 ; $ +ROM:57BD .byte 0x58 ; X +ROM:57BE .byte 0xF9 +ROM:57BF .byte 0xE4 +ROM:57C0 .byte 0x34 ; 4 +ROM:57C1 .byte 0xF8 +ROM:57C2 .byte 0xA8 +ROM:57C3 .byte 1 +ROM:57C4 .byte 0xFC +ROM:57C5 .byte 0x12 +ROM:57C6 .byte 0xD9 +ROM:57C7 .byte 0xA6 +ROM:57C8 .byte 0x12 +ROM:57C9 .byte 0x5D ; ] +ROM:57CA .byte 0x6B ; k +ROM:57CB .byte 0x90 +ROM:57CC .byte 0xF8 +ROM:57CD .byte 0x6A ; j +ROM:57CE .byte 0xE0 +ROM:57CF .byte 0x24 ; $ +ROM:57D0 .byte 8 +ROM:57D1 .byte 0xF0 +ROM:57D2 .byte 0x12 +ROM:57D3 .byte 0x5C ; \ +ROM:57D4 .byte 0x2A ; * +ROM:57D5 .byte 0x74 ; t +ROM:57D6 .byte 0x33 ; 3 +ROM:57D7 .byte 0xF0 +ROM:57D8 .byte 0x90 +ROM:57D9 .byte 0xF8 +ROM:57DA .byte 0x6A ; j +ROM:57DB .byte 0x12 +ROM:57DC .byte 0x5C ; \ +ROM:57DD .byte 0x2A ; * +ROM:57DE .byte 0x74 ; t +ROM:57DF .byte 0x42 ; B +ROM:57E0 .byte 0xF0 +ROM:57E1 .byte 0x12 +ROM:57E2 .byte 0x5F ; _ +ROM:57E3 .byte 0xCC +ROM:57E4 .byte 0x90 +ROM:57E5 .byte 0xF8 +ROM:57E6 .byte 0x6A ; j +ROM:57E7 .byte 0x70 ; p +ROM:57E8 .byte 8 +ROM:57E9 .byte 0x12 +ROM:57EA .byte 0x5C ; \ +ROM:57EB .byte 0x2A ; * +ROM:57EC .byte 0x74 ; t +ROM:57ED .byte 0x33 ; 3 +ROM:57EE .byte 0xF0 +ROM:57EF .byte 0x80 +ROM:57F0 .byte 6 +ROM:57F1 .byte 0x12 +ROM:57F2 .byte 0x5C ; \ +ROM:57F3 .byte 0x2A ; * +ROM:57F4 .byte 0x74 ; t +ROM:57F5 .byte 0x31 ; 1 +ROM:57F6 .byte 0xF0 +ROM:57F7 .byte 0x90 +ROM:57F8 .byte 0xF8 +ROM:57F9 .byte 0x6A ; j +ROM:57FA .byte 0xE0 +ROM:57FB .byte 0x24 ; $ +ROM:57FC .byte 0x55 ; U +ROM:57FD .byte 0xF5 +ROM:57FE .byte 0x82 +ROM:57FF .byte 0xE4 +ROM:5800 .byte 0x34 ; 4 +ROM:5801 .byte 0xF8 +ROM:5802 .byte 0x91 +ROM:5803 .byte 0x1F +ROM:5804 .byte 0x90 +ROM:5805 .byte 0xF5 +ROM:5806 .byte 0x2A ; * +ROM:5807 .byte 0xF0 +ROM:5808 .byte 0xFB +ROM:5809 .byte 0x90 +ROM:580A .byte 0xF8 +ROM:580B .byte 0x6A ; j +ROM:580C .byte 0xE0 +ROM:580D .byte 0x24 ; $ +ROM:580E .byte 0x56 ; V +ROM:580F .byte 0xF5 +ROM:5810 .byte 0x82 +ROM:5811 .byte 0xE4 +ROM:5812 .byte 0x34 ; 4 +ROM:5813 .byte 0xF8 +ROM:5814 .byte 0xF5 +ROM:5815 .byte 0x83 +ROM:5816 .byte 0xE0 +ROM:5817 .byte 0xFF +ROM:5818 .byte 0x71 ; q +ROM:5819 .byte 0xEB +ROM:581A .byte 0xEF +ROM:581B .byte 0x54 ; T +ROM:581C .byte 0xF +ROM:581D .byte 0x4B ; K +ROM:581E .byte 0x90 +ROM:581F .byte 0xF5 +ROM:5820 .byte 0x2A ; * +ROM:5821 .byte 0xF0 +ROM:5822 .byte 0x90 +ROM:5823 .byte 0xF8 +ROM:5824 .byte 0x6A ; j +ROM:5825 .byte 0xE0 +ROM:5826 .byte 0x24 ; $ +ROM:5827 .byte 0x57 ; W +ROM:5828 .byte 0xF5 +ROM:5829 .byte 0x82 +ROM:582A .byte 0xE4 +ROM:582B .byte 0x34 ; 4 +ROM:582C .byte 0xF8 +ROM:582D .byte 0x91 +ROM:582E .byte 0x1F +ROM:582F .byte 0x90 +ROM:5830 .byte 0xF5 +ROM:5831 .byte 0x2B ; + +ROM:5832 .byte 0xF0 +ROM:5833 .byte 0x7B ; { +ROM:5834 .byte 1 +ROM:5835 .byte 0x7A ; z +ROM:5836 .byte 0xF8 +ROM:5837 .byte 0x79 ; y +ROM:5838 .byte 0x58 ; X +ROM:5839 .byte 0x7D ; } +ROM:583A .byte 0xB +ROM:583B .byte 0x91 +ROM:583C .byte 0x93 +ROM:583D .byte 0xEF +ROM:583E .byte 0xFD +ROM:583F .byte 0xC3 +ROM:5840 .byte 0x74 ; t +ROM:5841 .byte 0x80 +ROM:5842 .byte 0x94 +ROM:5843 .byte 0x80 +ROM:5844 .byte 0x40 ; @ +ROM:5845 .byte 0xB +ROM:5846 .byte 0xED +ROM:5847 .byte 0x12 +ROM:5848 .byte 0x57 ; W +ROM:5849 .byte 0x84 +ROM:584A .byte 0x50 ; P +ROM:584B .byte 5 +ROM:584C .byte 0xEF +ROM:584D .byte 0x24 ; $ +ROM:584E .byte 0x30 ; 0 +ROM:584F .byte 0x80 +ROM:5850 .byte 0x10 +ROM:5851 .byte 0xEF +ROM:5852 .byte 0xFD +ROM:5853 .byte 0x12 +ROM:5854 .byte 0x57 ; W +ROM:5855 .byte 0x83 +ROM:5856 .byte 0x40 ; @ +ROM:5857 .byte 0x18 +ROM:5858 .byte 0xED +ROM:5859 .byte 0x12 +ROM:585A .byte 0xA0 +ROM:585B .byte 0xC1 +ROM:585C .byte 0x50 ; P +ROM:585D .byte 0x12 +ROM:585E .byte 0xEF +ROM:585F .byte 0x24 ; $ +ROM:5860 .byte 0x37 ; 7 +ROM:5861 .byte 0xFF +ROM:5862 .byte 0x90 +ROM:5863 .byte 0xF8 +ROM:5864 .byte 0x6A ; j +ROM:5865 .byte 0xE0 +ROM:5866 .byte 0xFE +ROM:5867 .byte 4 +ROM:5868 .byte 0xF0 +ROM:5869 .byte 0x74 ; t +ROM:586A .byte 0x58 ; X +ROM:586B .byte 0x2E ; . +ROM:586C .byte 0x91 +ROM:586D .byte 0x31 ; 1 +ROM:586E .byte 0xEF +ROM:586F .byte 0xF0 +ROM:5870 .byte 0x90 +ROM:5871 .byte 0xFD +ROM:5872 .byte 0xB6 +ROM:5873 .byte 0x91 +ROM:5874 .byte 0x17 +ROM:5875 .byte 0x24 ; $ +ROM:5876 .byte 0xF6 +ROM:5877 .byte 0xFF +ROM:5878 .byte 0xEE +ROM:5879 .byte 0x34 ; 4 +ROM:587A .byte 0xFF +ROM:587B .byte 0x90 +ROM:587C .byte 0xF8 +ROM:587D .byte 0x6E ; n +ROM:587E .byte 0xF0 +ROM:587F .byte 0xFC +ROM:5880 .byte 0xA3 +ROM:5881 .byte 0xEF +ROM:5882 .byte 0xF0 +ROM:5883 .byte 0xFD +ROM:5884 .byte 0x90 +ROM:5885 .byte 0xF8 +ROM:5886 .byte 0x6A ; j +ROM:5887 .byte 0xE0 +ROM:5888 .byte 0x24 ; $ +ROM:5889 .byte 2 +ROM:588A .byte 0x75 ; u +ROM:588B .byte 0xF0 +ROM:588C .byte 0xC +ROM:588D .byte 0xA4 +ROM:588E .byte 0xC3 +ROM:588F .byte 0x13 +ROM:5890 .byte 0xFB +ROM:5891 .byte 0x91 +ROM:5892 .byte 0x14 +ROM:5893 .byte 0xC3 +ROM:5894 .byte 0x9B +ROM:5895 .byte 0xFF +ROM:5896 .byte 0xEE +ROM:5897 .byte 0x94 +ROM:5898 .byte 0 +ROM:5899 .byte 0x91 +ROM:589A .byte 0x5F ; _ +ROM:589B .byte 0x90 +ROM:589C .byte 0xF8 +ROM:589D .byte 0x77 ; w +ROM:589E .byte 0xF0 +ROM:589F .byte 0x90 +ROM:58A0 .byte 0xF8 +ROM:58A1 .byte 0x6B ; k +ROM:58A2 .byte 0xE0 +ROM:58A3 .byte 0x90 +ROM:58A4 .byte 0xF8 +ROM:58A5 .byte 0x78 ; x +ROM:58A6 .byte 0xF0 +ROM:58A7 .byte 0xE4 +ROM:58A8 .byte 0xA3 +ROM:58A9 .byte 0xF0 +ROM:58AA .byte 0x31 ; 1 +ROM:58AB .byte 0x83 +ROM:58AC .byte 0x12 +ROM:58AD .byte 4 +ROM:58AE .byte 0xF +ROM:58AF .byte 0xFF +ROM:58B0 .byte 0x7C ; | +ROM:58B1 .byte 0 +ROM:58B2 .byte 0x7D ; } +ROM:58B3 .byte 3 +ROM:58B4 .byte 0x12 +ROM:58B5 .byte 8 +ROM:58B6 .byte 0xDE +ROM:58B7 .byte 0xEF +ROM:58B8 .byte 0x78 ; x +ROM:58B9 .byte 2 +ROM:58BA .byte 0xCE +ROM:58BB .byte 0xC3 +ROM:58BC .byte 0x13 +ROM:58BD .byte 0xCE +ROM:58BE .byte 0x13 +ROM:58BF .byte 0xD8 +ROM:58C0 .byte 0xF9 +ROM:58C1 .byte 0xFD +ROM:58C2 .byte 0xAC +ROM:58C3 .byte 6 +ROM:58C4 .byte 0xC0 +ROM:58C5 .byte 5 +ROM:58C6 .byte 0x90 +ROM:58C7 .byte 0xF8 +ROM:58C8 .byte 0x6D ; m +ROM:58C9 .byte 0xE0 +ROM:58CA .byte 0xFF +ROM:58CB .byte 0x90 +ROM:58CC .byte 0xF8 +ROM:58CD .byte 0x6A ; j +ROM:58CE .byte 0xE0 +ROM:58CF .byte 0x8F +ROM:58D0 .byte 0xF0 +ROM:58D1 .byte 0xA4 +ROM:58D2 .byte 0xC3 +ROM:58D3 .byte 0x13 +ROM:58D4 .byte 0xFD +ROM:58D5 .byte 0x91 +ROM:58D6 .byte 0x14 +ROM:58D7 .byte 0xC3 +ROM:58D8 .byte 0x9D +ROM:58D9 .byte 0xFF +ROM:58DA .byte 0xEE +ROM:58DB .byte 0x94 +ROM:58DC .byte 0 +ROM:58DD .byte 0xCF +ROM:58DE .byte 0x24 ; $ +ROM:58DF .byte 5 +ROM:58E0 .byte 0xCF +ROM:58E1 .byte 0x34 ; 4 +ROM:58E2 .byte 0 +ROM:58E3 .byte 0x91 +ROM:58E4 .byte 0x5F ; _ +ROM:58E5 .byte 0x90 +ROM:58E6 .byte 0xF8 +ROM:58E7 .byte 0x8C +ROM:58E8 .byte 0xF0 +ROM:58E9 .byte 0x90 +ROM:58EA .byte 0xF8 +ROM:58EB .byte 0x6C ; l +ROM:58EC .byte 0xE0 +ROM:58ED .byte 0x90 +ROM:58EE .byte 0xF8 +ROM:58EF .byte 0x8D +ROM:58F0 .byte 0xF0 +ROM:58F1 .byte 0xE4 +ROM:58F2 .byte 0xA3 +ROM:58F3 .byte 0xF0 +ROM:58F4 .byte 0xD0 +ROM:58F5 .byte 5 +ROM:58F6 .byte 0x12 +ROM:58F7 .byte 0x88 +ROM:58F8 .byte 0x7C ; | +ROM:58F9 .byte 0x90 +ROM:58FA .byte 0xF8 +ROM:58FB .byte 0x57 ; W +ROM:58FC .byte 0xE0 +ROM:58FD .byte 0x70 ; p +ROM:58FE .byte 0x20 +ROM:58FF .byte 0x91 +ROM:5900 .byte 0x7E ; ~ +ROM:5901 .byte 0x91 +ROM:5902 .byte 0x4B ; K +ROM:5903 .byte 0xFF +ROM:5904 .byte 0xC0 +ROM:5905 .byte 6 +ROM:5906 .byte 0xC0 +ROM:5907 .byte 7 +ROM:5908 .byte 0x12 +ROM:5909 .byte 4 +ROM:590A .byte 0xF +ROM:590B .byte 0x78 ; x +ROM:590C .byte 2 +ROM:590D .byte 0xCE +ROM:590E .byte 0xC3 +ROM:590F .byte 0x13 +ROM:5910 .byte 0xCE +ROM:5911 .byte 0x13 +ROM:5912 .byte 0xD8 +ROM:5913 .byte 0xF9 +ROM:5914 .byte 0x91 +ROM:5915 .byte 0x39 ; 9 +ROM:5916 .byte 0xD0 +ROM:5917 .byte 7 +ROM:5918 .byte 0xD0 +ROM:5919 .byte 6 +ROM:591A .byte 0x12 +ROM:591B .byte 0x88 +ROM:591C .byte 0x41 ; A +ROM:591D .byte 0x80 +ROM:591E .byte 0x30 ; 0 +ROM:591F .byte 0x90 +ROM:5920 .byte 0xF8 +ROM:5921 .byte 0x57 ; W +ROM:5922 .byte 0xE0 +ROM:5923 .byte 0x64 ; d +ROM:5924 .byte 1 +ROM:5925 .byte 0x70 ; p +ROM:5926 .byte 0x28 ; ( +ROM:5927 .byte 0x90 +ROM:5928 .byte 0xFD +ROM:5929 .byte 0xB5 +ROM:592A .byte 0xE0 +ROM:592B .byte 0x24 ; $ +ROM:592C .byte 0x70 ; p +ROM:592D .byte 0x12 +ROM:592E .byte 0x55 ; U +ROM:592F .byte 0xCC +ROM:5930 .byte 0xC3 +ROM:5931 .byte 0x13 +ROM:5932 .byte 0xFE +ROM:5933 .byte 0xEF +ROM:5934 .byte 0x13 +ROM:5935 .byte 0xFF +ROM:5936 .byte 0xC0 +ROM:5937 .byte 6 +ROM:5938 .byte 0xC0 +ROM:5939 .byte 7 +ROM:593A .byte 0x12 +ROM:593B .byte 4 +ROM:593C .byte 0xF +ROM:593D .byte 0x78 ; x +ROM:593E .byte 2 +ROM:593F .byte 0xCE +ROM:5940 .byte 0xC3 +ROM:5941 .byte 0x13 +ROM:5942 .byte 0xCE +ROM:5943 .byte 0x13 +ROM:5944 .byte 0xD8 +ROM:5945 .byte 0xF9 +ROM:5946 .byte 0x91 +ROM:5947 .byte 0x39 ; 9 +ROM:5948 .byte 0xD0 +ROM:5949 .byte 7 +ROM:594A .byte 0xD0 +ROM:594B .byte 6 +ROM:594C .byte 0x12 +ROM:594D .byte 0x8A +ROM:594E .byte 0xAB +ROM:594F .byte 0x90 +ROM:5950 .byte 5 +ROM:5951 .byte 0x3E ; > +ROM:5952 .byte 0x74 ; t +ROM:5953 .byte 1 +ROM:5954 .byte 0x93 +ROM:5955 .byte 0x64 ; d +ROM:5956 .byte 0x34 ; 4 +ROM:5957 .byte 0x70 ; p +ROM:5958 .byte 4 +ROM:5959 .byte 0xE4 +ROM:595A .byte 0x93 +ROM:595B .byte 0x64 ; d +ROM:595C .byte 0x12 +ROM:595D .byte 0x60 ; ` +ROM:595E .byte 0x23 ; # +ROM:595F .byte 0x91 +ROM:5960 .byte 0x7E ; ~ +ROM:5961 .byte 0x91 +ROM:5962 .byte 0x4B ; K +ROM:5963 .byte 0x24 ; $ +ROM:5964 .byte 0x2C ; , +ROM:5965 .byte 0xFF +ROM:5966 .byte 0xE4 +ROM:5967 .byte 0x3E ; > +ROM:5968 .byte 0xFE +ROM:5969 .byte 0xC0 +ROM:596A .byte 6 +ROM:596B .byte 0xC0 +ROM:596C .byte 7 +ROM:596D .byte 0x12 +ROM:596E .byte 4 +ROM:596F .byte 0xF +ROM:5970 .byte 0x78 ; x +ROM:5971 .byte 2 +ROM:5972 .byte 0xCE +ROM:5973 .byte 0xC3 +ROM:5974 .byte 0x13 +ROM:5975 .byte 0xCE +ROM:5976 .byte 0x13 +ROM:5977 .byte 0xD8 +ROM:5978 .byte 0xF9 +ROM:5979 .byte 0x91 +ROM:597A .byte 0x39 ; 9 +ROM:597B .byte 0xD0 +ROM:597C .byte 7 +ROM:597D .byte 0xD0 +ROM:597E .byte 6 +ROM:597F .byte 0x12 +ROM:5980 .byte 0x8A +ROM:5981 .byte 0xD7 +ROM:5982 .byte 0x22 ; " +ROM:5983 .byte 0x90 +ROM:5984 .byte 0xF8 +ROM:5985 .byte 0x72 ; r +ROM:5986 .byte 0x12 +ROM:5987 .byte 0x3D ; = +ROM:5988 .byte 0xA3 +ROM:5989 .byte 0xE4 +ROM:598A .byte 0x90 +ROM:598B .byte 0xF8 +ROM:598C .byte 0x7C ; | +ROM:598D .byte 0xF0 +ROM:598E .byte 0xA3 +ROM:598F .byte 0x12 +ROM:5990 .byte 0x47 ; G +ROM:5991 .byte 0xDD +ROM:5992 .byte 0x7F ;  +ROM:5993 .byte 0x67 ; g +ROM:5994 .byte 0x12 +ROM:5995 .byte 0xD5 +ROM:5996 .byte 0x13 +ROM:5997 .byte 0xE4 +ROM:5998 .byte 0x90 +ROM:5999 .byte 0xF8 +ROM:599A .byte 0x7B ; { +ROM:599B .byte 0xF0 +ROM:599C .byte 0x71 ; q +ROM:599D .byte 0xC1 +ROM:599E .byte 0x50 ; P +ROM:599F .byte 0x2C ; , +ROM:59A0 .byte 0xEF +ROM:59A1 .byte 0x90 +ROM:59A2 .byte 0x15 +ROM:59A3 .byte 0x37 ; 7 +ROM:59A4 .byte 0x93 +ROM:59A5 .byte 0x64 ; d +ROM:59A6 .byte 1 +ROM:59A7 .byte 0x70 ; p +ROM:59A8 .byte 7 +ROM:59A9 .byte 0x71 ; q +ROM:59AA .byte 0x85 +ROM:59AB .byte 4 +ROM:59AC .byte 0x71 ; q +ROM:59AD .byte 0xA3 +ROM:59AE .byte 0x80 +ROM:59AF .byte 0xF +ROM:59B0 .byte 0x90 +ROM:59B1 .byte 0xF8 +ROM:59B2 .byte 0x7B ; { +ROM:59B3 .byte 0xE0 +ROM:59B4 .byte 0x90 +ROM:59B5 .byte 0x15 +ROM:59B6 .byte 0x37 ; 7 +ROM:59B7 .byte 0x93 +ROM:59B8 .byte 0x70 ; p +ROM:59B9 .byte 8 +ROM:59BA .byte 0x71 ; q +ROM:59BB .byte 0x85 +ROM:59BC .byte 4 +ROM:59BD .byte 0xF0 +ROM:59BE .byte 0xA3 +ROM:59BF .byte 0xF0 +ROM:59C0 .byte 0x51 ; Q +ROM:59C1 .byte 0xF3 +ROM:59C2 .byte 0x71 ; q +ROM:59C3 .byte 0xBA +ROM:59C4 .byte 0x70 ; p +ROM:59C5 .byte 2 +ROM:59C6 .byte 0x71 ; q +ROM:59C7 .byte 0xB3 +ROM:59C8 .byte 0x71 ; q +ROM:59C9 .byte 0xAC +ROM:59CA .byte 0x80 +ROM:59CB .byte 0xD0 +ROM:59CC .byte 0xE4 +ROM:59CD .byte 0x90 +ROM:59CE .byte 0xF8 +ROM:59CF .byte 0x7A ; z +ROM:59D0 .byte 0xF0 +ROM:59D1 .byte 0x90 +ROM:59D2 .byte 0xF8 +ROM:59D3 .byte 0x77 ; w +ROM:59D4 .byte 0xE0 +ROM:59D5 .byte 0xFF +ROM:59D6 .byte 0x90 +ROM:59D7 .byte 0xF8 +ROM:59D8 .byte 0x7A ; z +ROM:59D9 .byte 0xE0 +ROM:59DA .byte 0xC3 +ROM:59DB .byte 0x9F +ROM:59DC .byte 0x50 ; P +ROM:59DD .byte 0x72 ; r +ROM:59DE .byte 0x90 +ROM:59DF .byte 0xF8 +ROM:59E0 .byte 0x74 ; t +ROM:59E1 .byte 0x12 +ROM:59E2 .byte 0x37 ; 7 +ROM:59E3 .byte 0xC3 +ROM:59E4 .byte 0xF9 +ROM:59E5 .byte 0x90 +ROM:59E6 .byte 0xF8 +ROM:59E7 .byte 0x7A ; z +ROM:59E8 .byte 0xE0 +ROM:59E9 .byte 0xFF +ROM:59EA .byte 0x12 +ROM:59EB .byte 0x39 ; 9 +ROM:59EC .byte 0xD9 +ROM:59ED .byte 0x24 ; $ +ROM:59EE .byte 0xE0 +ROM:59EF .byte 0x90 +ROM:59F0 .byte 0xF8 +ROM:59F1 .byte 0x7C ; | +ROM:59F2 .byte 0xF0 +ROM:59F3 .byte 0x90 +ROM:59F4 .byte 0xF8 +ROM:59F5 .byte 0x7F ;  +ROM:59F6 .byte 0x12 +ROM:59F7 .byte 0x26 ; & +ROM:59F8 .byte 0x2C ; , +ROM:59F9 .byte 0xC0 +ROM:59FA .byte 0 +ROM:59FB .byte 0x90 +ROM:59FC .byte 0xF8 +ROM:59FD .byte 0x7C ; | +ROM:59FE .byte 0xE0 +ROM:59FF .byte 0xFF +ROM:5A00 .byte 0x7E ; ~ +ROM:5A01 .byte 0 +ROM:5A02 .byte 0x90 +ROM:5A03 .byte 0xF8 +ROM:5A04 .byte 0x7A ; z +ROM:5A05 .byte 0xE0 +ROM:5A06 .byte 4 +ROM:5A07 .byte 0xFD +ROM:5A08 .byte 0x7C ; | +ROM:5A09 .byte 0 +ROM:5A0A .byte 0x12 +ROM:5A0B .byte 8 +ROM:5A0C .byte 0xDE +ROM:5A0D .byte 0x12 +ROM:5A0E .byte 0xD2 +ROM:5A0F .byte 0x9F +ROM:5A10 .byte 0xD0 +ROM:5A11 .byte 0 +ROM:5A12 .byte 0xEB +ROM:5A13 .byte 0x2F ; / +ROM:5A14 .byte 0xFF +ROM:5A15 .byte 0xEA +ROM:5A16 .byte 0x3E ; > +ROM:5A17 .byte 0x12 +ROM:5A18 .byte 0x8F +ROM:5A19 .byte 0x67 ; g +ROM:5A1A .byte 0x91 +ROM:5A1B .byte 0x53 ; S +ROM:5A1C .byte 0x71 ; q +ROM:5A1D .byte 0xC1 +ROM:5A1E .byte 0x50 ; P +ROM:5A1F .byte 0x28 ; ( +ROM:5A20 .byte 0x71 ; q +ROM:5A21 .byte 0xCE +ROM:5A22 .byte 0x64 ; d +ROM:5A23 .byte 1 +ROM:5A24 .byte 0x70 ; p +ROM:5A25 .byte 7 +ROM:5A26 .byte 0x71 ; q +ROM:5A27 .byte 0x85 +ROM:5A28 .byte 4 +ROM:5A29 .byte 0x71 ; q +ROM:5A2A .byte 0xA3 +ROM:5A2B .byte 0x80 +ROM:5A2C .byte 0xE +ROM:5A2D .byte 0x90 +ROM:5A2E .byte 0xF8 +ROM:5A2F .byte 0x7B ; { +ROM:5A30 .byte 0xE0 +ROM:5A31 .byte 0xFF +ROM:5A32 .byte 0x71 ; q +ROM:5A33 .byte 0xCE +ROM:5A34 .byte 0x70 ; p +ROM:5A35 .byte 8 +ROM:5A36 .byte 0x71 ; q +ROM:5A37 .byte 0x85 +ROM:5A38 .byte 4 +ROM:5A39 .byte 0xF0 +ROM:5A3A .byte 0xA3 +ROM:5A3B .byte 0xF0 +ROM:5A3C .byte 0x51 ; Q +ROM:5A3D .byte 0xF3 +ROM:5A3E .byte 0x71 ; q +ROM:5A3F .byte 0xBA +ROM:5A40 .byte 0x70 ; p +ROM:5A41 .byte 2 +ROM:5A42 .byte 0x71 ; q +ROM:5A43 .byte 0xB3 +ROM:5A44 .byte 0x71 ; q +ROM:5A45 .byte 0xAC +ROM:5A46 .byte 0x80 +ROM:5A47 .byte 0xD4 +ROM:5A48 .byte 0x90 +ROM:5A49 .byte 0xF8 +ROM:5A4A .byte 0x7A ; z +ROM:5A4B .byte 0xE0 +ROM:5A4C .byte 4 +ROM:5A4D .byte 0xF0 +ROM:5A4E .byte 0x80 +ROM:5A4F .byte 0x81 +ROM:5A50 .byte 0x90 +ROM:5A51 .byte 0xF8 +ROM:5A52 .byte 0x7F ;  +ROM:5A53 .byte 0x12 +ROM:5A54 .byte 0x1F +ROM:5A55 .byte 0xE9 +ROM:5A56 .byte 0xFF +ROM:5A57 .byte 0xE4 +ROM:5A58 .byte 0x7B ; { +ROM:5A59 .byte 0x67 ; g +ROM:5A5A .byte 0xFA +ROM:5A5B .byte 0x12 +ROM:5A5C .byte 0xD3 +ROM:5A5D .byte 0x72 ; r +ROM:5A5E .byte 0x91 +ROM:5A5F .byte 0x53 ; S +ROM:5A60 .byte 0x90 +ROM:5A61 .byte 0xF8 +ROM:5A62 .byte 0x7B ; { +ROM:5A63 .byte 0xE0 +ROM:5A64 .byte 0x71 ; q +ROM:5A65 .byte 0xC6 +ROM:5A66 .byte 0x50 ; P +ROM:5A67 .byte 0x4F ; O +ROM:5A68 .byte 0x90 +ROM:5A69 .byte 0xF8 +ROM:5A6A .byte 0x7F ;  +ROM:5A6B .byte 0x12 +ROM:5A6C .byte 0x57 ; W +ROM:5A6D .byte 0x8E +ROM:5A6E .byte 0x91 +ROM:5A6F .byte 0x6B ; k +ROM:5A70 .byte 0xC0 +ROM:5A71 .byte 0x83 +ROM:5A72 .byte 0xC0 +ROM:5A73 .byte 0x82 +ROM:5A74 .byte 0x90 +ROM:5A75 .byte 0xF8 +ROM:5A76 .byte 0x7B ; { +ROM:5A77 .byte 0xE0 +ROM:5A78 .byte 0xD0 +ROM:5A79 .byte 0x82 +ROM:5A7A .byte 0xD0 +ROM:5A7B .byte 0x83 +ROM:5A7C .byte 0x25 ; % +ROM:5A7D .byte 0x82 +ROM:5A7E .byte 0x71 ; q +ROM:5A7F .byte 0xE1 +ROM:5A80 .byte 0x64 ; d +ROM:5A81 .byte 1 +ROM:5A82 .byte 0x70 ; p +ROM:5A83 .byte 7 +ROM:5A84 .byte 0x71 ; q +ROM:5A85 .byte 0x85 +ROM:5A86 .byte 4 +ROM:5A87 .byte 0x71 ; q +ROM:5A88 .byte 0xA3 +ROM:5A89 .byte 0x80 +ROM:5A8A .byte 0x1F +ROM:5A8B .byte 0x90 +ROM:5A8C .byte 0xF8 +ROM:5A8D .byte 0x7F ;  +ROM:5A8E .byte 0x12 +ROM:5A8F .byte 0x57 ; W +ROM:5A90 .byte 0x8E +ROM:5A91 .byte 0x91 +ROM:5A92 .byte 0x6B ; k +ROM:5A93 .byte 0xC0 +ROM:5A94 .byte 0x83 +ROM:5A95 .byte 0xC0 +ROM:5A96 .byte 0x82 +ROM:5A97 .byte 0x90 +ROM:5A98 .byte 0xF8 +ROM:5A99 .byte 0x7B ; { +ROM:5A9A .byte 0xE0 +ROM:5A9B .byte 0xD0 +ROM:5A9C .byte 0x82 +ROM:5A9D .byte 0xD0 +ROM:5A9E .byte 0x83 +ROM:5A9F .byte 0x25 ; % +ROM:5AA0 .byte 0x82 +ROM:5AA1 .byte 0x71 ; q +ROM:5AA2 .byte 0xE1 +ROM:5AA3 .byte 0x70 ; p +ROM:5AA4 .byte 8 +ROM:5AA5 .byte 0x71 ; q +ROM:5AA6 .byte 0x85 +ROM:5AA7 .byte 4 +ROM:5AA8 .byte 0xF0 +ROM:5AA9 .byte 0xA3 +ROM:5AAA .byte 0xF0 +ROM:5AAB .byte 0x51 ; Q +ROM:5AAC .byte 0xF3 +ROM:5AAD .byte 0x71 ; q +ROM:5AAE .byte 0xBA +ROM:5AAF .byte 0x70 ; p +ROM:5AB0 .byte 2 +ROM:5AB1 .byte 0x71 ; q +ROM:5AB2 .byte 0xB3 +ROM:5AB3 .byte 0x71 ; q +ROM:5AB4 .byte 0xAC +ROM:5AB5 .byte 0x80 +ROM:5AB6 .byte 0xA9 +ROM:5AB7 .byte 0xE4 +ROM:5AB8 .byte 0x90 +ROM:5AB9 .byte 0xF8 +ROM:5ABA .byte 0x7B ; { +ROM:5ABB .byte 0xF0 +ROM:5ABC .byte 0x71 ; q +ROM:5ABD .byte 0xC1 +ROM:5ABE .byte 0x50 ; P +ROM:5ABF .byte 0x2C ; , +ROM:5AC0 .byte 0xEF +ROM:5AC1 .byte 0x90 +ROM:5AC2 .byte 0x15 +ROM:5AC3 .byte 0x58 ; X +ROM:5AC4 .byte 0x93 +ROM:5AC5 .byte 0x64 ; d +ROM:5AC6 .byte 1 +ROM:5AC7 .byte 0x70 ; p +ROM:5AC8 .byte 7 +ROM:5AC9 .byte 0x71 ; q +ROM:5ACA .byte 0x85 +ROM:5ACB .byte 4 +ROM:5ACC .byte 0x71 ; q +ROM:5ACD .byte 0xA3 +ROM:5ACE .byte 0x80 +ROM:5ACF .byte 0xF +ROM:5AD0 .byte 0x90 +ROM:5AD1 .byte 0xF8 +ROM:5AD2 .byte 0x7B ; { +ROM:5AD3 .byte 0xE0 +ROM:5AD4 .byte 0x90 +ROM:5AD5 .byte 0x15 +ROM:5AD6 .byte 0x58 ; X +ROM:5AD7 .byte 0x93 +ROM:5AD8 .byte 0x70 ; p +ROM:5AD9 .byte 8 +ROM:5ADA .byte 0x71 ; q +ROM:5ADB .byte 0x85 +ROM:5ADC .byte 4 +ROM:5ADD .byte 0xF0 +ROM:5ADE .byte 0xA3 +ROM:5ADF .byte 0xF0 +ROM:5AE0 .byte 0x51 ; Q +ROM:5AE1 .byte 0xF3 +ROM:5AE2 .byte 0x71 ; q +ROM:5AE3 .byte 0xBA +ROM:5AE4 .byte 0x70 ; p +ROM:5AE5 .byte 2 +ROM:5AE6 .byte 0x71 ; q +ROM:5AE7 .byte 0xB3 +ROM:5AE8 .byte 0x71 ; q +ROM:5AE9 .byte 0xAC +ROM:5AEA .byte 0x80 +ROM:5AEB .byte 0xD0 +ROM:5AEC .byte 0x71 ; q +ROM:5AED .byte 0x85 +ROM:5AEE .byte 0x74 ; t +ROM:5AEF .byte 2 +ROM:5AF0 .byte 0x71 ; q +ROM:5AF1 .byte 0xA3 +ROM:5AF2 .byte 0xF0 +ROM:5AF3 .byte 0x90 +ROM:5AF4 .byte 0xF8 +ROM:5AF5 .byte 0x83 +ROM:5AF6 .byte 0x12 +ROM:5AF7 .byte 0x8B +ROM:5AF8 .byte 0x2B ; + +ROM:5AF9 .byte 0xA3 +ROM:5AFA .byte 0xEA +ROM:5AFB .byte 0xF0 +ROM:5AFC .byte 0xA3 +ROM:5AFD .byte 0xEB +ROM:5AFE .byte 0xF0 +ROM:5AFF .byte 0xE4 +ROM:5B00 .byte 0x90 +ROM:5B01 .byte 0xF8 +ROM:5B02 .byte 0x8E +ROM:5B03 .byte 0xF0 +ROM:5B04 .byte 0xA3 +ROM:5B05 .byte 0xF0 +ROM:5B06 .byte 0x90 +ROM:5B07 .byte 0xF8 +ROM:5B08 .byte 0x89 +ROM:5B09 .byte 0x12 +ROM:5B0A .byte 0x37 ; 7 +ROM:5B0B .byte 0x58 ; X +ROM:5B0C .byte 0x90 +ROM:5B0D .byte 0xF8 +ROM:5B0E .byte 0x8F +ROM:5B0F .byte 0xE0 +ROM:5B10 .byte 0x9F +ROM:5B11 .byte 0x90 +ROM:5B12 .byte 0xF8 +ROM:5B13 .byte 0x8E +ROM:5B14 .byte 0xE0 +ROM:5B15 .byte 0x9E +ROM:5B16 .byte 0x50 ; P +ROM:5B17 .byte 0x6C ; l +ROM:5B18 .byte 0xE4 +ROM:5B19 .byte 0x90 +ROM:5B1A .byte 0xF8 +ROM:5B1B .byte 0x8C +ROM:5B1C .byte 0xF0 +ROM:5B1D .byte 0xA3 +ROM:5B1E .byte 0xF0 +ROM:5B1F .byte 0x90 +ROM:5B20 .byte 0xF8 +ROM:5B21 .byte 0x87 +ROM:5B22 .byte 0x12 +ROM:5B23 .byte 0x37 ; 7 +ROM:5B24 .byte 0x58 ; X +ROM:5B25 .byte 0x90 +ROM:5B26 .byte 0xF8 +ROM:5B27 .byte 0x8D +ROM:5B28 .byte 0xE0 +ROM:5B29 .byte 0x9F +ROM:5B2A .byte 0x90 +ROM:5B2B .byte 0xF8 +ROM:5B2C .byte 0x8C +ROM:5B2D .byte 0xE0 +ROM:5B2E .byte 0x9E +ROM:5B2F .byte 0x50 ; P +ROM:5B30 .byte 0x43 ; C +ROM:5B31 .byte 0x90 +ROM:5B32 .byte 0xF8 +ROM:5B33 .byte 0x8E +ROM:5B34 .byte 0xE0 +ROM:5B35 .byte 0xFE +ROM:5B36 .byte 0xA3 +ROM:5B37 .byte 0xE0 +ROM:5B38 .byte 0xFF +ROM:5B39 .byte 0x90 +ROM:5B3A .byte 0xF8 +ROM:5B3B .byte 0x84 +ROM:5B3C .byte 0xE0 +ROM:5B3D .byte 0x2F ; / +ROM:5B3E .byte 0xFF +ROM:5B3F .byte 0x90 +ROM:5B40 .byte 0xF8 +ROM:5B41 .byte 0x83 +ROM:5B42 .byte 0xE0 +ROM:5B43 .byte 0x3E ; > +ROM:5B44 .byte 0xFE +ROM:5B45 .byte 0x90 +ROM:5B46 .byte 0xF8 +ROM:5B47 .byte 0x8C +ROM:5B48 .byte 0xE0 +ROM:5B49 .byte 0xFC +ROM:5B4A .byte 0xA3 +ROM:5B4B .byte 0xE0 +ROM:5B4C .byte 0xFD +ROM:5B4D .byte 0x90 +ROM:5B4E .byte 0xF8 +ROM:5B4F .byte 0x86 +ROM:5B50 .byte 0xE0 +ROM:5B51 .byte 0x2D ; - +ROM:5B52 .byte 0xFD +ROM:5B53 .byte 0x90 +ROM:5B54 .byte 0xF8 +ROM:5B55 .byte 0x85 +ROM:5B56 .byte 0xE0 +ROM:5B57 .byte 0x3C ; < +ROM:5B58 .byte 0xFC +ROM:5B59 .byte 0x90 +ROM:5B5A .byte 0xF8 +ROM:5B5B .byte 0x8B +ROM:5B5C .byte 0xE0 +ROM:5B5D .byte 0xFB +ROM:5B5E .byte 0x12 +ROM:5B5F .byte 0x53 ; S +ROM:5B60 .byte 0xA4 +ROM:5B61 .byte 0x12 +ROM:5B62 .byte 0x30 ; 0 +ROM:5B63 .byte 0xEB +ROM:5B64 .byte 0x90 +ROM:5B65 .byte 0xF8 +ROM:5B66 .byte 0x8D +ROM:5B67 .byte 0xE0 +ROM:5B68 .byte 4 +ROM:5B69 .byte 0xF0 +ROM:5B6A .byte 0x70 ; p +ROM:5B6B .byte 6 +ROM:5B6C .byte 0x90 +ROM:5B6D .byte 0xF8 +ROM:5B6E .byte 0x8C +ROM:5B6F .byte 0xE0 +ROM:5B70 .byte 4 +ROM:5B71 .byte 0xF0 +ROM:5B72 .byte 0x80 +ROM:5B73 .byte 0xAB +ROM:5B74 .byte 0x90 +ROM:5B75 .byte 0xF8 +ROM:5B76 .byte 0x8F +ROM:5B77 .byte 0xE0 +ROM:5B78 .byte 4 +ROM:5B79 .byte 0xF0 +ROM:5B7A .byte 0x70 ; p +ROM:5B7B .byte 6 +ROM:5B7C .byte 0x90 +ROM:5B7D .byte 0xF8 +ROM:5B7E .byte 0x8E +ROM:5B7F .byte 0xE0 +ROM:5B80 .byte 4 +ROM:5B81 .byte 0xF0 +ROM:5B82 .byte 0x80 +ROM:5B83 .byte 0x82 +ROM:5B84 .byte 0x22 ; " +ROM:5B85 .byte 0x90 +ROM:5B86 .byte 0xF8 +ROM:5B87 .byte 0x7D ; } +ROM:5B88 .byte 0xE0 +ROM:5B89 .byte 0xFE +ROM:5B8A .byte 0xA3 +ROM:5B8B .byte 0xE0 +ROM:5B8C .byte 0xFF +ROM:5B8D .byte 0x90 +ROM:5B8E .byte 0xF8 +ROM:5B8F .byte 0x72 ; r +ROM:5B90 .byte 0xE0 +ROM:5B91 .byte 0xFC +ROM:5B92 .byte 0xA3 +ROM:5B93 .byte 0xE0 +ROM:5B94 .byte 0xFD +ROM:5B95 .byte 0x90 +ROM:5B96 .byte 0xF8 +ROM:5B97 .byte 0x78 ; x +ROM:5B98 .byte 0xE0 +ROM:5B99 .byte 0xFB +ROM:5B9A .byte 0x7A ; z +ROM:5B9B .byte 0 +ROM:5B9C .byte 0x90 +ROM:5B9D .byte 0xF8 +ROM:5B9E .byte 0x89 +ROM:5B9F .byte 0xE4 +ROM:5BA0 .byte 0xF0 +ROM:5BA1 .byte 0xA3 +ROM:5BA2 .byte 0x22 ; " +ROM:5BA3 .byte 0xF0 +ROM:5BA4 .byte 0x90 +ROM:5BA5 .byte 0xF8 +ROM:5BA6 .byte 0x79 ; y +ROM:5BA7 .byte 0xE0 +ROM:5BA8 .byte 0x90 +ROM:5BA9 .byte 0xF8 +ROM:5BAA .byte 0x8B +ROM:5BAB .byte 0x22 ; " +ROM:5BAC +ROM:5BAC ; =============== S U B R O U T I N E ======================================= +ROM:5BAC +ROM:5BAC +ROM:5BAC ROM_5BAC: ; CODE XREF: ROM_9CCA-7D06↑p +ROM:5BAC mov DPTR, #0xF87B +ROM:5BAF movx A, @DPTR +ROM:5BB0 inc A +ROM:5BB1 movx @DPTR, A +ROM:5BB2 ret +ROM:5BB2 ; End of function ROM_5BAC +ROM:5BB2 +ROM:5BB2 ; --------------------------------------------------------------------------- +ROM:5BB3 .byte 0x90 +ROM:5BB4 .byte 0xF8 +ROM:5BB5 .byte 0x7D ; } +ROM:5BB6 .byte 0xE0 +ROM:5BB7 .byte 4 +ROM:5BB8 .byte 0xF0 +ROM:5BB9 .byte 0x22 ; " +ROM:5BBA .byte 0x90 +ROM:5BBB .byte 0xF8 +ROM:5BBC .byte 0x7E ; ~ +ROM:5BBD .byte 0xE0 +ROM:5BBE .byte 4 +ROM:5BBF .byte 0xF0 +ROM:5BC0 .byte 0x22 ; " +ROM:5BC1 .byte 0x90 +ROM:5BC2 .byte 0xF8 +ROM:5BC3 .byte 0x7B ; { +ROM:5BC4 .byte 0xE0 +ROM:5BC5 .byte 0xFF +ROM:5BC6 .byte 0xC3 +ROM:5BC7 .byte 0x94 +ROM:5BC8 .byte 0xB +ROM:5BC9 .byte 0x74 ; t +ROM:5BCA .byte 0x80 +ROM:5BCB .byte 0x94 +ROM:5BCC .byte 0x80 +ROM:5BCD .byte 0x22 ; " +ROM:5BCE .byte 0xA3 +ROM:5BCF .byte 0xE0 +ROM:5BD0 .byte 0x75 ; u +ROM:5BD1 .byte 0xF0 +ROM:5BD2 .byte 0xB +ROM:5BD3 .byte 0xA4 +ROM:5BD4 .byte 0x24 ; $ +ROM:5BD5 .byte 0xCA +ROM:5BD6 .byte 0xF5 +ROM:5BD7 .byte 0x82 +ROM:5BD8 .byte 0xE5 +ROM:5BD9 .byte 0xF0 +ROM:5BDA .byte 0x34 ; 4 +ROM:5BDB .byte 0x10 +ROM:5BDC .byte 0xF5 +ROM:5BDD .byte 0x83 +ROM:5BDE .byte 0xE5 +ROM:5BDF .byte 0x82 +ROM:5BE0 .byte 0x2F ; / +ROM:5BE1 .byte 0xF5 +ROM:5BE2 .byte 0x82 +ROM:5BE3 .byte 0xE4 +ROM:5BE4 .byte 0x35 ; 5 +ROM:5BE5 .byte 0x83 +ROM:5BE6 .byte 0xF5 +ROM:5BE7 .byte 0x83 +ROM:5BE8 .byte 0xE4 +ROM:5BE9 .byte 0x93 +ROM:5BEA .byte 0x22 ; " +ROM:5BEB .byte 0x12 +ROM:5BEC .byte 0x99 +ROM:5BED .byte 0xA3 +ROM:5BEE .byte 0x40 ; @ +ROM:5BEF .byte 0xF +ROM:5BF0 .byte 0xED +ROM:5BF1 .byte 0x94 +ROM:5BF2 .byte 0x3A ; : +ROM:5BF3 .byte 0x74 ; t +ROM:5BF4 .byte 0x80 +ROM:5BF5 .byte 0x94 +ROM:5BF6 .byte 0x80 +ROM:5BF7 .byte 0x50 ; P +ROM:5BF8 .byte 6 +ROM:5BF9 .byte 0xEF +ROM:5BFA .byte 0x24 ; $ +ROM:5BFB .byte 0xD0 +ROM:5BFC .byte 0xFE +ROM:5BFD .byte 0x80 +ROM:5BFE .byte 0x12 +ROM:5BFF .byte 0x12 +ROM:5C00 .byte 0x99 +ROM:5C01 .byte 0x99 +ROM:5C02 .byte 0x40 ; @ +ROM:5C03 .byte 0xD +ROM:5C04 .byte 0xED +ROM:5C05 .byte 0x94 +ROM:5C06 .byte 0x47 ; G +ROM:5C07 .byte 0x74 ; t +ROM:5C08 .byte 0x80 +ROM:5C09 .byte 0x94 +ROM:5C0A .byte 0x80 +ROM:5C0B .byte 0x50 ; P +ROM:5C0C .byte 4 +ROM:5C0D .byte 0xEF +ROM:5C0E .byte 0x24 ; $ +ROM:5C0F .byte 0xC9 +ROM:5C10 .byte 0xFE +ROM:5C11 .byte 0xAF +ROM:5C12 .byte 6 +ROM:5C13 .byte 0x22 ; " +ROM:5C14 .byte 0x90 +ROM:5C15 .byte 0xFD +ROM:5C16 .byte 0xB4 +ROM:5C17 .byte 0xE0 +ROM:5C18 .byte 0xC3 +ROM:5C19 .byte 0x13 +ROM:5C1A .byte 0xFE +ROM:5C1B .byte 0xA3 +ROM:5C1C .byte 0xE0 +ROM:5C1D .byte 0x13 +ROM:5C1E .byte 0x22 ; " +ROM:5C1F .byte 0xF5 +ROM:5C20 .byte 0x83 +ROM:5C21 .byte 0xE0 +ROM:5C22 .byte 0xFF +ROM:5C23 .byte 0x71 ; q +ROM:5C24 .byte 0xEB +ROM:5C25 .byte 0xEF +ROM:5C26 .byte 0xC4 +ROM:5C27 .byte 0x54 ; T +ROM:5C28 .byte 0xF0 +ROM:5C29 .byte 0x22 ; " +ROM:5C2A .byte 0xE0 +ROM:5C2B .byte 0xFF +ROM:5C2C .byte 4 +ROM:5C2D .byte 0xF0 +ROM:5C2E .byte 0x74 ; t +ROM:5C2F .byte 0x58 ; X +ROM:5C30 .byte 0x2F ; / +ROM:5C31 .byte 0xF5 +ROM:5C32 .byte 0x82 +ROM:5C33 .byte 0xE4 +ROM:5C34 .byte 0x34 ; 4 +ROM:5C35 .byte 0xF8 +ROM:5C36 .byte 0xF5 +ROM:5C37 .byte 0x83 +ROM:5C38 .byte 0x22 ; " +ROM:5C39 .byte 0x24 ; $ +ROM:5C3A .byte 0xF8 +ROM:5C3B .byte 0xFD +ROM:5C3C .byte 0xEE +ROM:5C3D .byte 0x34 ; 4 +ROM:5C3E .byte 0xFF +ROM:5C3F .byte 0xFC +ROM:5C40 .byte 0x90 +ROM:5C41 .byte 0xF8 +ROM:5C42 .byte 0x6C ; l +ROM:5C43 .byte 0xE0 +ROM:5C44 .byte 0xFB +ROM:5C45 .byte 0xE4 +ROM:5C46 .byte 0x90 +ROM:5C47 .byte 0xF8 +ROM:5C48 .byte 0x75 ; u +ROM:5C49 .byte 0xF0 +ROM:5C4A .byte 0x22 ; " +ROM:5C4B .byte 0x95 +ROM:5C4C .byte 0xF0 +ROM:5C4D .byte 0xC3 +ROM:5C4E .byte 0x13 +ROM:5C4F .byte 0xFE +ROM:5C50 .byte 0xEF +ROM:5C51 .byte 0x13 +ROM:5C52 .byte 0x22 ; " +ROM:5C53 .byte 0x90 +ROM:5C54 .byte 0xF8 +ROM:5C55 .byte 0x7F ;  +ROM:5C56 .byte 0x12 +ROM:5C57 .byte 0xB +ROM:5C58 .byte 0xE2 +ROM:5C59 .byte 0xE4 +ROM:5C5A .byte 0x90 +ROM:5C5B .byte 0xF8 +ROM:5C5C .byte 0x7B ; { +ROM:5C5D .byte 0xF0 +ROM:5C5E .byte 0x22 ; " +ROM:5C5F .byte 0xFE +ROM:5C60 .byte 0x7B ; { +ROM:5C61 .byte 1 +ROM:5C62 .byte 0x7A ; z +ROM:5C63 .byte 0xF8 +ROM:5C64 .byte 0x79 ; y +ROM:5C65 .byte 0x58 ; X +ROM:5C66 .byte 0x90 +ROM:5C67 .byte 0xF8 +ROM:5C68 .byte 0x6A ; j +ROM:5C69 .byte 0xE0 +ROM:5C6A .byte 0x22 ; " +ROM:5C6B .byte 0x90 +ROM:5C6C .byte 0x10 +ROM:5C6D .byte 0xCA +ROM:5C6E .byte 0x75 ; u +ROM:5C6F .byte 0xF0 +ROM:5C70 .byte 0xB +ROM:5C71 .byte 0x12 +ROM:5C72 .byte 0xB +ROM:5C73 .byte 0xEE +ROM:5C74 .byte 0xEE +ROM:5C75 .byte 0x75 ; u +ROM:5C76 .byte 0xF0 +ROM:5C77 .byte 0xB +ROM:5C78 .byte 0xA4 +ROM:5C79 .byte 0x25 ; % +ROM:5C7A .byte 0x83 +ROM:5C7B .byte 0xF5 +ROM:5C7C .byte 0x83 +ROM:5C7D .byte 0x22 ; " +ROM:5C7E .byte 0x90 +ROM:5C7F .byte 0xF8 +ROM:5C80 .byte 0x6D ; m +ROM:5C81 .byte 0xE0 +ROM:5C82 .byte 0x75 ; u +ROM:5C83 .byte 0xF0 +ROM:5C84 .byte 3 +ROM:5C85 .byte 0xA4 +ROM:5C86 .byte 0xFF +ROM:5C87 .byte 0xC3 +ROM:5C88 +ROM:5C88 ; =============== S U B R O U T I N E ======================================= +ROM:5C88 +ROM:5C88 +ROM:5C88 ROM_5C88: ; CODE XREF: ROM_53A4+3D↑p +ROM:5C88 mov DPTR, #0xFDB5 +ROM:5C8B movx A, @DPTR +ROM:5C8C subb A, R7 +ROM:5C8D mov R7, A +ROM:5C8E mov DPTR, #0xFDB4 +ROM:5C91 movx A, @DPTR +ROM:5C92 ret +ROM:5C92 ; End of function ROM_5C88 +ROM:5C92 +ROM:5C92 ; --------------------------------------------------------------------------- +ROM:5C93 .byte 0x90 +ROM:5C94 .byte 0xF8 +ROM:5C95 .byte 0x70 ; p +ROM:5C96 .byte 0x12 +ROM:5C97 .byte 0x3D ; = +ROM:5C98 .byte 0xA9 +ROM:5C99 .byte 0xA3 +ROM:5C9A .byte 0xED +ROM:5C9B .byte 0xF0 +ROM:5C9C .byte 0xE4 +ROM:5C9D .byte 0x91 +ROM:5C9E .byte 0xCB +ROM:5C9F .byte 0xF0 +ROM:5CA0 .byte 0x90 +ROM:5CA1 .byte 0xF8 +ROM:5CA2 .byte 0x73 ; s +ROM:5CA3 .byte 0xF1 +ROM:5CA4 .byte 0xE1 +ROM:5CA5 .byte 0x50 ; P +ROM:5CA6 .byte 0x1C +ROM:5CA7 .byte 0xA3 +ROM:5CA8 .byte 0xE0 +ROM:5CA9 .byte 0xFF +ROM:5CAA .byte 0xC0 +ROM:5CAB .byte 7 +ROM:5CAC .byte 0x90 +ROM:5CAD .byte 0xF8 +ROM:5CAE .byte 0x70 ; p +ROM:5CAF .byte 0x12 +ROM:5CB0 .byte 0x37 ; 7 +ROM:5CB1 .byte 0xC3 +ROM:5CB2 .byte 0x2E ; . +ROM:5CB3 .byte 0x12 +ROM:5CB4 .byte 0x39 ; 9 +ROM:5CB5 .byte 0xDB +ROM:5CB6 .byte 0xFF +ROM:5CB7 .byte 0x71 ; q +ROM:5CB8 .byte 0xEB +ROM:5CB9 .byte 0xD0 +ROM:5CBA .byte 0xE0 +ROM:5CBB .byte 0x6F ; o +ROM:5CBC .byte 0x91 +ROM:5CBD .byte 0xCB +ROM:5CBE .byte 0xE0 +ROM:5CBF .byte 4 +ROM:5CC0 .byte 0xF0 +ROM:5CC1 .byte 0x80 +ROM:5CC2 .byte 0xDD +ROM:5CC3 .byte 0x90 +ROM:5CC4 .byte 0xF8 +ROM:5CC5 .byte 0x75 ; u +ROM:5CC6 .byte 0xE0 +ROM:5CC7 .byte 0x54 ; T +ROM:5CC8 .byte 0xF +ROM:5CC9 .byte 0xFF +ROM:5CCA .byte 0x22 ; " +ROM:5CCB .byte 0x90 +ROM:5CCC .byte 0xF8 +ROM:5CCD .byte 0x75 ; u +ROM:5CCE .byte 0xF0 +ROM:5CCF .byte 0x90 +ROM:5CD0 .byte 0xF8 +ROM:5CD1 .byte 0x74 ; t +ROM:5CD2 .byte 0x22 ; " +ROM:5CD3 .byte 0x78 ; x +ROM:5CD4 .byte 0x52 ; R +ROM:5CD5 .byte 0x7C ; | +ROM:5CD6 .byte 0xF8 +ROM:5CD7 .byte 0x7D ; } +ROM:5CD8 .byte 1 +ROM:5CD9 .byte 0x7B ; { +ROM:5CDA .byte 0xFF +ROM:5CDB .byte 0x7A ; z +ROM:5CDC .byte 0x1B +ROM:5CDD .byte 0x79 ; y +ROM:5CDE .byte 0xB6 +ROM:5CDF .byte 0xB1 +ROM:5CE0 .byte 0x6B ; k +ROM:5CE1 .byte 0x12 +ROM:5CE2 .byte 0x4F ; O +ROM:5CE3 .byte 0xB6 +ROM:5CE4 .byte 0xF1 +ROM:5CE5 .byte 0x9D +ROM:5CE6 .byte 0x12 +ROM:5CE7 .byte 0x4F ; O +ROM:5CE8 .byte 0x28 ; ( +ROM:5CE9 .byte 0x91 +ROM:5CEA .byte 0x14 +ROM:5CEB .byte 0x24 ; $ +ROM:5CEC .byte 0xC4 +ROM:5CED .byte 0xFF +ROM:5CEE .byte 0xEE +ROM:5CEF .byte 0x34 ; 4 +ROM:5CF0 .byte 0xFF +ROM:5CF1 .byte 0x90 +ROM:5CF2 .byte 0xF8 +ROM:5CF3 .byte 0x5A ; Z +ROM:5CF4 .byte 0xF0 +ROM:5CF5 .byte 0xA3 +ROM:5CF6 .byte 0xEF +ROM:5CF7 .byte 0xF0 +ROM:5CF8 .byte 0x90 +ROM:5CF9 .byte 0xFD +ROM:5CFA .byte 0xB6 +ROM:5CFB .byte 0xE0 +ROM:5CFC .byte 0xFA +ROM:5CFD .byte 0xA3 +ROM:5CFE .byte 0xE0 +ROM:5CFF .byte 0xFB +ROM:5D00 .byte 0x7C ; | +ROM:5D01 .byte 0 +ROM:5D02 .byte 0x7D ; } +ROM:5D03 .byte 0xA +ROM:5D04 .byte 0xFF +ROM:5D05 .byte 0xAE +ROM:5D06 .byte 2 +ROM:5D07 .byte 0xB1 +ROM:5D08 .byte 0x5B ; [ +ROM:5D09 .byte 0xEE +ROM:5D0A .byte 0xC3 +ROM:5D0B .byte 0x13 +ROM:5D0C .byte 0xFC +ROM:5D0D .byte 0xEF +ROM:5D0E .byte 0x13 +ROM:5D0F .byte 0xFD +ROM:5D10 .byte 0xEA +ROM:5D11 .byte 0xC3 +ROM:5D12 .byte 0x13 +ROM:5D13 .byte 0xFE +ROM:5D14 .byte 0xEB +ROM:5D15 .byte 0x13 +ROM:5D16 .byte 0xC3 +ROM:5D17 .byte 0x9D +ROM:5D18 .byte 0xFF +ROM:5D19 .byte 0xEE +ROM:5D1A .byte 0x9C +ROM:5D1B .byte 0x90 +ROM:5D1C .byte 0xF8 +ROM:5D1D .byte 0x5C ; \ +ROM:5D1E .byte 0xF0 +ROM:5D1F .byte 0xA3 +ROM:5D20 .byte 0xEF +ROM:5D21 .byte 0xF0 +ROM:5D22 .byte 0x12 +ROM:5D23 .byte 0x8D +ROM:5D24 .byte 0xD5 +ROM:5D25 .byte 0x78 ; x +ROM:5D26 .byte 0x52 ; R +ROM:5D27 .byte 0x7C ; | +ROM:5D28 .byte 0xF8 +ROM:5D29 .byte 0x12 +ROM:5D2A .byte 0xD9 +ROM:5D2B .byte 0xA6 +ROM:5D2C .byte 0xB1 +ROM:5D2D .byte 0x6B ; k +ROM:5D2E .byte 0x12 +ROM:5D2F .byte 4 +ROM:5D30 .byte 0xF +ROM:5D31 .byte 0xFF +ROM:5D32 .byte 0x7C ; | +ROM:5D33 .byte 0 +ROM:5D34 .byte 0x7D ; } +ROM:5D35 .byte 0xA +ROM:5D36 .byte 0xB1 +ROM:5D37 .byte 0x5B ; [ +ROM:5D38 .byte 0x90 +ROM:5D39 .byte 0xF8 +ROM:5D3A .byte 0x78 ; x +ROM:5D3B .byte 0xEF +ROM:5D3C .byte 0xF0 +ROM:5D3D .byte 0xF1 +ROM:5D3E .byte 0xDA +ROM:5D3F .byte 0xE0 +ROM:5D40 .byte 0xFF +ROM:5D41 .byte 0xA3 +ROM:5D42 .byte 0xF1 +ROM:5D43 .byte 0x71 ; q +ROM:5D44 .byte 0x7A ; z +ROM:5D45 .byte 0xF8 +ROM:5D46 .byte 0x79 ; y +ROM:5D47 .byte 0x52 ; R +ROM:5D48 .byte 0x90 +ROM:5D49 .byte 0xF8 +ROM:5D4A .byte 0x77 ; w +ROM:5D4B .byte 0x74 ; t +ROM:5D4C .byte 8 +ROM:5D4D .byte 0xF0 +ROM:5D4E .byte 0xE4 +ROM:5D4F .byte 0x90 +ROM:5D50 .byte 0xF8 +ROM:5D51 .byte 0x79 ; y +ROM:5D52 .byte 0xF0 +ROM:5D53 .byte 0x31 ; 1 +ROM:5D54 .byte 0x83 +ROM:5D55 .byte 0x12 +ROM:5D56 .byte 0x57 ; W +ROM:5D57 .byte 0x4A ; J +ROM:5D58 .byte 2 +ROM:5D59 .byte 0x4F ; O +ROM:5D5A .byte 0x2C ; , +ROM:5D5B .byte 0x12 +ROM:5D5C .byte 8 +ROM:5D5D .byte 0xDE +ROM:5D5E .byte 0x7D ; } +ROM:5D5F .byte 0x32 ; 2 +ROM:5D60 .byte 2 +ROM:5D61 .byte 8 +ROM:5D62 .byte 0xF0 +ROM:5D63 +ROM:5D63 ; =============== S U B R O U T I N E ======================================= +ROM:5D63 +ROM:5D63 +ROM:5D63 ROM_5D63: ; CODE XREF: ROM_436B+185↑p +ROM:5D63 ; ROM_7FDF+1C↓p +ROM:5D63 mov R5, #1 +ROM:5D65 mov R3, #0 +ROM:5D67 mov R2, #0 +ROM:5D69 mov R1, #0x12 +ROM:5D69 ; End of function ROM_5D63 +ROM:5D69 +ROM:5D6B +ROM:5D6B ; =============== S U B R O U T I N E ======================================= +ROM:5D6B +ROM:5D6B +ROM:5D6B ROM_5D6B: ; CODE XREF: ROM_49FD+C1↑p +ROM:5D6B ; ROM_7A07+3A↓p ... +ROM:5D6B mov R6, #0 +ROM:5D6D mov R7, #8 +ROM:5D6F ljmp code_86B +ROM:5D6F ; End of function ROM_5D6B +ROM:5D6F +ROM:5D6F ; --------------------------------------------------------------------------- +ROM:5D72 .byte 0x90 +ROM:5D73 .byte 0xF8 +ROM:5D74 .byte 0x28 ; ( +ROM:5D75 .byte 0xEF +ROM:5D76 .byte 0xF0 +ROM:5D77 .byte 0x78 ; x +ROM:5D78 .byte 0x29 ; ) +ROM:5D79 .byte 0x7C ; | +ROM:5D7A .byte 0xF8 +ROM:5D7B .byte 0x7D ; } +ROM:5D7C .byte 1 +ROM:5D7D .byte 0x7B ; { +ROM:5D7E .byte 0xFF +ROM:5D7F .byte 0x7A ; z +ROM:5D80 .byte 5 +ROM:5D81 .byte 0x79 ; y +ROM:5D82 .byte 8 +ROM:5D83 .byte 0x7E ; ~ +ROM:5D84 .byte 0 +ROM:5D85 .byte 0x7F ;  +ROM:5D86 .byte 0xE +ROM:5D87 .byte 0x12 +ROM:5D88 .byte 8 +ROM:5D89 .byte 0x6B ; k +ROM:5D8A .byte 0x90 +ROM:5D8B .byte 0xF8 +ROM:5D8C .byte 0x29 ; ) +ROM:5D8D .byte 0x74 ; t +ROM:5D8E .byte 0x49 ; I +ROM:5D8F .byte 0xF0 +ROM:5D90 .byte 0xF1 +ROM:5D91 .byte 0xC9 +ROM:5D92 .byte 0x90 +ROM:5D93 .byte 0xF8 +ROM:5D94 .byte 0x28 ; ( +ROM:5D95 .byte 0xE0 +ROM:5D96 .byte 0x64 ; d +ROM:5D97 .byte 6 +ROM:5D98 .byte 0x60 ; ` +ROM:5D99 .byte 2 +ROM:5D9A .byte 0xC1 +ROM:5D9B .byte 0xAD +ROM:5D9C .byte 0x12 +ROM:5D9D .byte 0x6E ; n +ROM:5D9E .byte 0x5A ; Z +ROM:5D9F .byte 0x78 ; x +ROM:5DA0 .byte 0x95 +ROM:5DA1 .byte 0x7C ; | +ROM:5DA2 .byte 0xFD +ROM:5DA3 .byte 0x7D ; } +ROM:5DA4 .byte 1 +ROM:5DA5 .byte 0x7B ; { +ROM:5DA6 .byte 1 +ROM:5DA7 .byte 0x7A ; z +ROM:5DA8 .byte 0xFD +ROM:5DA9 .byte 0x79 ; y +ROM:5DAA .byte 3 +ROM:5DAB .byte 0xB1 +ROM:5DAC .byte 0x6B ; k +ROM:5DAD .byte 0x90 +ROM:5DAE .byte 0xF8 +ROM:5DAF .byte 0x39 ; 9 +ROM:5DB0 .byte 0x12 +ROM:5DB1 .byte 0x80 +ROM:5DB2 .byte 0x27 ; ' +ROM:5DB3 .byte 0x78 ; x +ROM:5DB4 .byte 0x3B ; ; +ROM:5DB5 .byte 0x7C ; | +ROM:5DB6 .byte 0xF8 +ROM:5DB7 .byte 0x7D ; } +ROM:5DB8 .byte 1 +ROM:5DB9 .byte 0x7B ; { +ROM:5DBA .byte 1 +ROM:5DBB .byte 0x7A ; z +ROM:5DBC .byte 0xFD +ROM:5DBD .byte 0x79 ; y +ROM:5DBE .byte 0x95 +ROM:5DBF .byte 0xB1 +ROM:5DC0 .byte 0x6B ; k +ROM:5DC1 .byte 0x90 +ROM:5DC2 .byte 0xFD +ROM:5DC3 .byte 0xB +ROM:5DC4 .byte 0xE0 +ROM:5DC5 .byte 0x90 +ROM:5DC6 .byte 0xF8 +ROM:5DC7 .byte 0x37 ; 7 +ROM:5DC8 .byte 0xF0 +ROM:5DC9 .byte 0x90 +ROM:5DCA .byte 0xF8 +ROM:5DCB .byte 0x43 ; C +ROM:5DCC .byte 0xF0 +ROM:5DCD .byte 0x90 +ROM:5DCE .byte 0xFD +ROM:5DCF .byte 0xC +ROM:5DD0 .byte 0xE0 +ROM:5DD1 .byte 0x90 +ROM:5DD2 .byte 0xF8 +ROM:5DD3 .byte 0x38 ; 8 +ROM:5DD4 .byte 0xF0 +ROM:5DD5 .byte 0x90 +ROM:5DD6 .byte 0xF8 +ROM:5DD7 .byte 0x44 ; D +ROM:5DD8 .byte 0xF0 +ROM:5DD9 .byte 0xA3 +ROM:5DDA .byte 0x74 ; t +ROM:5DDB .byte 0xFF +ROM:5DDC .byte 0xF0 +ROM:5DDD .byte 0x7E ; ~ +ROM:5DDE .byte 0xF8 +ROM:5DDF .byte 0x7F ;  +ROM:5DE0 .byte 0x39 ; 9 +ROM:5DE1 .byte 0x7B ; { +ROM:5DE2 .byte 0x3F ; ? +ROM:5DE3 .byte 0x7D ; } +ROM:5DE4 .byte 0xD +ROM:5DE5 .byte 0x12 +ROM:5DE6 .byte 0x91 +ROM:5DE7 .byte 0xA +ROM:5DE8 .byte 0x12 +ROM:5DE9 .byte 0x4C ; L +ROM:5DEA .byte 0xB3 +ROM:5DEB .byte 0x7E ; ~ +ROM:5DEC .byte 0 +ROM:5DED .byte 0x7F ;  +ROM:5DEE .byte 0xD +ROM:5DEF .byte 0x7D ; } +ROM:5DF0 .byte 0 +ROM:5DF1 .byte 0xF1 +ROM:5DF2 .byte 0x61 ; a +ROM:5DF3 .byte 0x12 +ROM:5DF4 .byte 0xE +ROM:5DF5 .byte 0xA0 +ROM:5DF6 .byte 0xF1 +ROM:5DF7 .byte 0x61 ; a +ROM:5DF8 .byte 0x12 +ROM:5DF9 .byte 0x90 +ROM:5DFA .byte 0xE5 +ROM:5DFB .byte 0x90 +ROM:5DFC .byte 0xF8 +ROM:5DFD .byte 0x2D ; - +ROM:5DFE .byte 0x74 ; t +ROM:5DFF .byte 1 +ROM:5E00 .byte 0xF0 +ROM:5E01 .byte 0x78 ; x +ROM:5E02 .byte 0x3B ; ; +ROM:5E03 .byte 0x7C ; | +ROM:5E04 .byte 0xF8 +ROM:5E05 .byte 0xFD +ROM:5E06 .byte 0xFB +ROM:5E07 .byte 0x7A ; z +ROM:5E08 .byte 0xFD +ROM:5E09 .byte 0x79 ; y +ROM:5E0A .byte 0x95 +ROM:5E0B .byte 0xF1 +ROM:5E0C .byte 0x8D +ROM:5E0D .byte 0x70 ; p +ROM:5E0E .byte 0x25 ; % +ROM:5E0F .byte 0x90 +ROM:5E10 .byte 0xF8 +ROM:5E11 .byte 0x37 ; 7 +ROM:5E12 .byte 0xE0 +ROM:5E13 .byte 0xFF +ROM:5E14 .byte 0x90 +ROM:5E15 .byte 0xF8 +ROM:5E16 .byte 0x43 ; C +ROM:5E17 .byte 0xE0 +ROM:5E18 .byte 0xB5 +ROM:5E19 .byte 7 +ROM:5E1A .byte 0x19 +ROM:5E1B .byte 0x90 +ROM:5E1C .byte 0xF8 +ROM:5E1D .byte 0x38 ; 8 +ROM:5E1E .byte 0xE0 +ROM:5E1F .byte 0xFF +ROM:5E20 .byte 0x90 +ROM:5E21 .byte 0xF8 +ROM:5E22 .byte 0x44 ; D +ROM:5E23 .byte 0xE0 +ROM:5E24 .byte 0xB5 +ROM:5E25 .byte 7 +ROM:5E26 .byte 0xD +ROM:5E27 .byte 0xA3 +ROM:5E28 .byte 0xE0 +ROM:5E29 .byte 0xF4 +ROM:5E2A .byte 0x70 ; p +ROM:5E2B .byte 8 +ROM:5E2C .byte 0x12 +ROM:5E2D .byte 0x95 +ROM:5E2E .byte 0x13 +ROM:5E2F .byte 0x90 +ROM:5E30 .byte 0xF8 +ROM:5E31 .byte 0x2D ; - +ROM:5E32 .byte 0xEF +ROM:5E33 .byte 0xF0 +ROM:5E34 .byte 0x90 +ROM:5E35 .byte 0xF8 +ROM:5E36 .byte 0x2A ; * +ROM:5E37 .byte 0x74 ; t +ROM:5E38 .byte 7 +ROM:5E39 .byte 0xF1 +ROM:5E3A .byte 0x82 +ROM:5E3B .byte 0x78 ; x +ROM:5E3C .byte 0x32 ; 2 +ROM:5E3D .byte 0x7C ; | +ROM:5E3E .byte 0xFD +ROM:5E3F .byte 0xF1 +ROM:5E40 .byte 0x68 ; h +ROM:5E41 .byte 0xFE +ROM:5E42 .byte 0x7F ;  +ROM:5E43 .byte 8 +ROM:5E44 .byte 0x12 +ROM:5E45 .byte 8 +ROM:5E46 .byte 0x6B ; k +ROM:5E47 .byte 0xF1 +ROM:5E48 .byte 0xCC +ROM:5E49 .byte 0x70 ; p +ROM:5E4A .byte 0x59 ; Y +ROM:5E4B .byte 0xFE +ROM:5E4C .byte 0x7F ;  +ROM:5E4D .byte 0x20 +ROM:5E4E .byte 0xF1 +ROM:5E4F .byte 0xA1 +ROM:5E50 .byte 0x12 +ROM:5E51 .byte 0xAA +ROM:5E52 .byte 0x35 ; 5 +ROM:5E53 .byte 0xF1 +ROM:5E54 .byte 0x79 ; y +ROM:5E55 .byte 0x7A ; z +ROM:5E56 .byte 0xFD +ROM:5E57 .byte 0x79 ; y +ROM:5E58 .byte 0x32 ; 2 +ROM:5E59 .byte 0xB1 +ROM:5E5A .byte 0x6B ; k +ROM:5E5B .byte 0x12 +ROM:5E5C .byte 0x77 ; w +ROM:5E5D .byte 0x2B ; + +ROM:5E5E .byte 0xF1 +ROM:5E5F .byte 0xD3 +ROM:5E60 .byte 0x7D ; } +ROM:5E61 .byte 0x10 +ROM:5E62 .byte 0x70 ; p +ROM:5E63 .byte 0xA +ROM:5E64 .byte 0xFC +ROM:5E65 .byte 0x7F ;  +ROM:5E66 .byte 1 +ROM:5E67 .byte 0xF1 +ROM:5E68 .byte 0xAC +ROM:5E69 .byte 0xF +ROM:5E6A .byte 0x7E ; ~ +ROM:5E6B .byte 0 +ROM:5E6C .byte 0x80 +ROM:5E6D .byte 8 +ROM:5E6E .byte 0x7C ; | +ROM:5E6F .byte 0 +ROM:5E70 .byte 0xE4 +ROM:5E71 .byte 0xFF +ROM:5E72 .byte 0xF1 +ROM:5E73 .byte 0xAC +ROM:5E74 .byte 0xE4 +ROM:5E75 .byte 0xFE +ROM:5E76 .byte 0x12 +ROM:5E77 .byte 0x71 ; q +ROM:5E78 .byte 0x97 +ROM:5E79 .byte 0x7F ;  +ROM:5E7A .byte 0 +ROM:5E7B .byte 0x7E ; ~ +ROM:5E7C .byte 0x7D ; } +ROM:5E7D .byte 0x12 +ROM:5E7E .byte 0x4C ; L +ROM:5E7F .byte 0xB7 +ROM:5E80 .byte 0xF1 +ROM:5E81 .byte 0x79 ; y +ROM:5E82 .byte 0x7A ; z +ROM:5E83 .byte 0xE0 +ROM:5E84 .byte 0x79 ; y +ROM:5E85 .byte 0x10 +ROM:5E86 .byte 0x7E ; ~ +ROM:5E87 .byte 0 +ROM:5E88 .byte 0x7F ;  +ROM:5E89 .byte 0x10 +ROM:5E8A .byte 0xF1 +ROM:5E8B .byte 0x91 +ROM:5E8C .byte 0x60 ; ` +ROM:5E8D .byte 0x13 +ROM:5E8E .byte 0x90 +ROM:5E8F .byte 0xF8 +ROM:5E90 .byte 0x2D ; - +ROM:5E91 .byte 0xE0 +ROM:5E92 .byte 0x64 ; d +ROM:5E93 .byte 1 +ROM:5E94 .byte 0x70 ; p +ROM:5E95 .byte 5 +ROM:5E96 .byte 0x74 ; t +ROM:5E97 .byte 3 +ROM:5E98 .byte 0xF0 +ROM:5E99 .byte 0x80 +ROM:5E9A .byte 6 +ROM:5E9B .byte 0x90 +ROM:5E9C .byte 0xF8 +ROM:5E9D .byte 0x2D ; - +ROM:5E9E .byte 0x74 ; t +ROM:5E9F .byte 2 +ROM:5EA0 .byte 0xF0 +ROM:5EA1 .byte 0x12 +ROM:5EA2 .byte 0xAA +ROM:5EA3 .byte 0xAA +ROM:5EA4 .byte 0x12 +ROM:5EA5 .byte 0x6C ; l +ROM:5EA6 .byte 0x20 +ROM:5EA7 .byte 0xF1 +ROM:5EA8 .byte 0x5A ; Z +ROM:5EA9 .byte 0x7D ; } +ROM:5EAA .byte 5 +ROM:5EAB .byte 0x80 +ROM:5EAC .byte 0x60 ; ` +ROM:5EAD .byte 0x90 +ROM:5EAE .byte 0xF8 +ROM:5EAF .byte 0x28 ; ( +ROM:5EB0 .byte 0xE0 +ROM:5EB1 .byte 0x64 ; d +ROM:5EB2 .byte 8 +ROM:5EB3 .byte 0x70 ; p +ROM:5EB4 .byte 0x5E ; ^ +ROM:5EB5 .byte 0xF1 +ROM:5EB6 .byte 0x61 ; a +ROM:5EB7 .byte 0x7D ; } +ROM:5EB8 .byte 0xD +ROM:5EB9 .byte 0xFF +ROM:5EBA .byte 0x7E ; ~ +ROM:5EBB .byte 0xFC +ROM:5EBC .byte 0x12 +ROM:5EBD .byte 0x90 +ROM:5EBE .byte 0xEB +ROM:5EBF .byte 0x90 +ROM:5EC0 .byte 0xF8 +ROM:5EC1 .byte 0x2A ; * +ROM:5EC2 .byte 0x74 ; t +ROM:5EC3 .byte 9 +ROM:5EC4 .byte 0xF1 +ROM:5EC5 .byte 0x82 +ROM:5EC6 .byte 0x12 +ROM:5EC7 .byte 0x6C ; l +ROM:5EC8 .byte 0x20 +ROM:5EC9 .byte 0x90 +ROM:5ECA .byte 0xF8 +ROM:5ECB .byte 0x39 ; 9 +ROM:5ECC .byte 0xE0 +ROM:5ECD .byte 0x64 ; d +ROM:5ECE .byte 0xAD +ROM:5ECF .byte 0x70 ; p +ROM:5ED0 .byte 4 +ROM:5ED1 .byte 0xA3 +ROM:5ED2 .byte 0xE0 +ROM:5ED3 .byte 0x64 ; d +ROM:5ED4 .byte 0xD2 +ROM:5ED5 .byte 0x70 ; p +ROM:5ED6 .byte 0x23 ; # +ROM:5ED7 .byte 0x12 +ROM:5ED8 .byte 0xD5 +ROM:5ED9 .byte 0xDA +ROM:5EDA .byte 0x78 ; x +ROM:5EDB .byte 0x2D ; - +ROM:5EDC .byte 0x7C ; | +ROM:5EDD .byte 0xF8 +ROM:5EDE .byte 0xF1 +ROM:5EDF .byte 0x68 ; h +ROM:5EE0 .byte 0x7E ; ~ +ROM:5EE1 .byte 0 +ROM:5EE2 .byte 0x7F ;  +ROM:5EE3 .byte 0xB +ROM:5EE4 .byte 0x12 +ROM:5EE5 .byte 8 +ROM:5EE6 .byte 0x6B ; k +ROM:5EE7 .byte 0xF1 +ROM:5EE8 .byte 0x5A ; Z +ROM:5EE9 .byte 0x7D ; } +ROM:5EEA .byte 0xF +ROM:5EEB .byte 0x12 +ROM:5EEC .byte 0x6C ; l +ROM:5EED .byte 0xFA +ROM:5EEE .byte 0x12 +ROM:5EEF .byte 0x4C ; L +ROM:5EF0 .byte 0xB3 +ROM:5EF1 .byte 0xF1 +ROM:5EF2 .byte 0x6A ; j +ROM:5EF3 .byte 0xF1 +ROM:5EF4 .byte 0x14 +ROM:5EF5 .byte 0x7F ;  +ROM:5EF6 .byte 0x64 ; d +ROM:5EF7 .byte 2 +ROM:5EF8 .byte 0x21 ; ! +ROM:5EF9 .byte 0x53 ; S +ROM:5EFA .byte 0x7E ; ~ +ROM:5EFB .byte 0 +ROM:5EFC .byte 0x7F ;  +ROM:5EFD .byte 0xA +ROM:5EFE .byte 0x7D ; } +ROM:5EFF .byte 0xFF +ROM:5F00 .byte 0x7B ; { +ROM:5F01 .byte 1 +ROM:5F02 .byte 0x7A ; z +ROM:5F03 .byte 0xF8 +ROM:5F04 .byte 0x79 ; y +ROM:5F05 .byte 0x2D ; - +ROM:5F06 .byte 0x12 +ROM:5F07 .byte 0xE +ROM:5F08 .byte 0xA0 +ROM:5F09 .byte 0xF1 +ROM:5F0A .byte 0x5A ; Z +ROM:5F0B .byte 0x7D ; } +ROM:5F0C .byte 0xE +ROM:5F0D .byte 0x12 +ROM:5F0E .byte 0x6C ; l +ROM:5F0F .byte 0xFA +ROM:5F10 .byte 0x12 +ROM:5F11 .byte 0x4C ; L +ROM:5F12 .byte 0xB3 +ROM:5F13 .byte 0x22 ; " +ROM:5F14 +ROM:5F14 ; =============== S U B R O U T I N E ======================================= +ROM:5F14 +ROM:5F14 +ROM:5F14 ROM_5F14: ; CODE XREF: ROM_2E9D+47↑p +ROM:5F14 mov A, R1 +ROM:5F15 add A, #7 +ROM:5F17 acall ROM_5F48 +ROM:5F19 mov R0, #0xA +ROM:5F1B mov @R0, A +ROM:5F1C mov A, R1 +ROM:5F1D add A, #6 +ROM:5F1F acall ROM_5F48 +ROM:5F21 inc R0 +ROM:5F22 mov @R0, A +ROM:5F23 mov A, R1 +ROM:5F24 add A, #5 +ROM:5F26 acall ROM_5F48 +ROM:5F28 inc R0 +ROM:5F29 mov @R0, A +ROM:5F2A mov A, R1 +ROM:5F2B acall ROM_5F46 +ROM:5F2D acall ROM_5F53 +ROM:5F2F inc DPTR +ROM:5F30 acall ROM_5F50 +ROM:5F32 acall ROM_5F50 +ROM:5F34 acall ROM_5F51 +ROM:5F36 movx A, @DPTR +ROM:5F37 inc R0 +ROM:5F38 mov @R0, A +ROM:5F39 mov R0, #0x88 +ROM:5F3B mov R4, #0xDF +ROM:5F3D mov R5, #1 +ROM:5F3F mov R6, #0 +ROM:5F41 mov R7, #8 +ROM:5F43 ljmp code_86B +ROM:5F43 ; End of function ROM_5F14 +ROM:5F43 +ROM:5F46 +ROM:5F46 ; =============== S U B R O U T I N E ======================================= +ROM:5F46 +ROM:5F46 +ROM:5F46 ROM_5F46: ; CODE XREF: ROM_436B-107D↑p +ROM:5F46 ; ROM_5F14+17↑p +ROM:5F46 add A, #4 +ROM:5F46 ; End of function ROM_5F46 +ROM:5F46 +ROM:5F48 +ROM:5F48 ; =============== S U B R O U T I N E ======================================= +ROM:5F48 +ROM:5F48 +ROM:5F48 ROM_5F48: ; CODE XREF: ROM_5F14+3↑p +ROM:5F48 ; ROM_5F14+B↑p ... +ROM:5F48 mov DP0L, A ; Data Pointer Low Byte +ROM:5F4A clr A +ROM:5F4B addc A, R2 +ROM:5F4C mov DP0H, A ; Data Pointer High Byte +ROM:5F4E movx A, @DPTR +ROM:5F4F ret +ROM:5F4F ; End of function ROM_5F48 +ROM:5F4F +ROM:5F50 +ROM:5F50 ; =============== S U B R O U T I N E ======================================= +ROM:5F50 +ROM:5F50 +ROM:5F50 ROM_5F50: ; CODE XREF: ROM_5F14+1C↑p +ROM:5F50 ; ROM_5F14+1E↑p +ROM:5F50 inc DPTR +ROM:5F50 ; End of function ROM_5F50 +ROM:5F50 +ROM:5F51 +ROM:5F51 ; =============== S U B R O U T I N E ======================================= +ROM:5F51 +ROM:5F51 +ROM:5F51 ROM_5F51: ; CODE XREF: ROM_5F14+20↑p +ROM:5F51 inc DPTR +ROM:5F52 movx A, @DPTR +ROM:5F52 ; End of function ROM_5F51 +ROM:5F52 +ROM:5F53 +ROM:5F53 ; =============== S U B R O U T I N E ======================================= +ROM:5F53 +ROM:5F53 +ROM:5F53 ROM_5F53: ; CODE XREF: ROM_5F14+19↑p +ROM:5F53 inc R0 +ROM:5F54 mov @R0, A +ROM:5F55 mov DP0L, R1 ; Data Pointer Low Byte +ROM:5F57 mov DP0H, R2 ; Data Pointer High Byte +ROM:5F59 ret +ROM:5F59 ; End of function ROM_5F53 +ROM:5F59 +ROM:5F59 ; --------------------------------------------------------------------------- +ROM:5F5A .byte 0x7B ; { +ROM:5F5B .byte 1 +ROM:5F5C .byte 0x7A ; z +ROM:5F5D .byte 0xF8 +ROM:5F5E .byte 0x79 ; y +ROM:5F5F .byte 0x29 ; ) +ROM:5F60 .byte 0x22 ; " +ROM:5F61 .byte 0x7B ; { +ROM:5F62 .byte 1 +ROM:5F63 .byte 0x7A ; z +ROM:5F64 .byte 0xF8 +ROM:5F65 .byte 0x79 ; y +ROM:5F66 .byte 0x39 ; 9 +ROM:5F67 .byte 0x22 ; " +ROM:5F68 .byte 0x7D ; } +ROM:5F69 .byte 1 +ROM:5F6A .byte 0x7B ; { +ROM:5F6B .byte 1 +ROM:5F6C .byte 0x7A ; z +ROM:5F6D .byte 0xF8 +ROM:5F6E .byte 0x79 ; y +ROM:5F6F .byte 0x3B ; ; +ROM:5F70 .byte 0x22 ; " +ROM:5F71 +ROM:5F71 ; =============== S U B R O U T I N E ======================================= +ROM:5F71 +ROM:5F71 +ROM:5F71 ROM_5F71: ; CODE XREF: ROM_55D4+A5↑p +ROM:5F71 ; ROM_8BB8+5F↓p ... +ROM:5F71 movx A, @DPTR +ROM:5F72 mov R4, A +ROM:5F73 inc DPTR +ROM:5F74 movx A, @DPTR +ROM:5F75 mov R5, A +ROM:5F76 mov R3, #1 +ROM:5F78 ret +ROM:5F78 ; End of function ROM_5F71 +ROM:5F78 +ROM:5F78 ; --------------------------------------------------------------------------- +ROM:5F79 .byte 0x78 ; x +ROM:5F7A .byte 0 +ROM:5F7B .byte 0x7C ; | +ROM:5F7C .byte 0xE0 +ROM:5F7D .byte 0x7D ; } +ROM:5F7E .byte 1 +ROM:5F7F .byte 0x7B ; { +ROM:5F80 .byte 1 +ROM:5F81 .byte 0x22 ; " +ROM:5F82 .byte 0xF0 +ROM:5F83 .byte 0xE4 +ROM:5F84 .byte 0x90 +ROM:5F85 .byte 0xF8 +ROM:5F86 .byte 0x2C ; , +ROM:5F87 .byte 0xF0 +ROM:5F88 .byte 0x90 +ROM:5F89 .byte 0xF8 +ROM:5F8A .byte 0x2B ; + +ROM:5F8B .byte 0xF0 +ROM:5F8C .byte 0x22 ; " +ROM:5F8D +ROM:5F8D ; =============== S U B R O U T I N E ======================================= +ROM:5F8D +ROM:5F8D +ROM:5F8D ROM_5F8D: ; CODE XREF: ROM_A044-3504↓p +ROM:5F8D mov R6, #0 +ROM:5F8F mov R7, #8 +ROM:5F91 lcall code_E7C +ROM:5F94 mov A, R7 +ROM:5F95 rlc A +ROM:5F96 subb A, ACC ; Accumulator +ROM:5F98 orl A, R7 +ROM:5F99 ret +ROM:5F99 ; End of function ROM_5F8D +ROM:5F99 +ROM:5F9A +ROM:5F9A ; =============== S U B R O U T I N E ======================================= +ROM:5F9A +ROM:5F9A +ROM:5F9A ROM_5F9A: ; CODE XREF: ROM_9C3D+1D↓p +ROM:5F9A movx @DPTR, A +ROM:5F9B inc DPTR +ROM:5F9C movx @DPTR, A +ROM:5F9D mov R6, #0x13 +ROM:5F9F mov R7, #0x88 +ROM:5FA1 mov R5, #0xFF +ROM:5FA3 mov R3, #1 +ROM:5FA5 mov R2, #0xE0 +ROM:5FA7 mov R1, #0 +ROM:5FA9 ljmp code_EA0 +ROM:5FA9 ; End of function ROM_5F9A +ROM:5FA9 +ROM:5FA9 ; --------------------------------------------------------------------------- +ROM:5FAC .byte 0xFE +ROM:5FAD .byte 0x12 +ROM:5FAE .byte 0x75 ; u +ROM:5FAF .byte 0x5B ; [ +ROM:5FB0 .byte 0x7F ;  +ROM:5FB1 .byte 0 +ROM:5FB2 .byte 0x7E ; ~ +ROM:5FB3 .byte 0x7D ; } +ROM:5FB4 .byte 0x12 +ROM:5FB5 .byte 0x4C ; L +ROM:5FB6 .byte 0xB7 +ROM:5FB7 .byte 0x7B ; { +ROM:5FB8 .byte 1 +ROM:5FB9 .byte 0x7A ; z +ROM:5FBA .byte 0xE0 +ROM:5FBB .byte 0x79 ; y +ROM:5FBC .byte 0x10 +ROM:5FBD .byte 0x7D ; } +ROM:5FBE .byte 0x10 +ROM:5FBF .byte 0x7C ; | +ROM:5FC0 .byte 0 +ROM:5FC1 .byte 0x22 ; " +ROM:5FC2 +ROM:5FC2 ; =============== S U B R O U T I N E ======================================= +ROM:5FC2 +ROM:5FC2 +ROM:5FC2 ROM_5FC2: ; CODE XREF: ROM_79CE+24↓p +ROM:5FC2 ; ROM_7A07+37↓p +ROM:5FC2 mov R3, #0 +ROM:5FC4 mov R2, #0 +ROM:5FC6 mov R1, #0xA +ROM:5FC8 ret +ROM:5FC8 ; End of function ROM_5FC2 +ROM:5FC8 +ROM:5FC9 +ROM:5FC9 ; =============== S U B R O U T I N E ======================================= +ROM:5FC9 +ROM:5FC9 ; Attributes: thunk +ROM:5FC9 +ROM:5FC9 ROM_5FC9: ; CODE XREF: ROM_6BA0+4E↓p +ROM:5FC9 ljmp code_426 +ROM:5FC9 ; End of function ROM_5FC9 +ROM:5FC9 +ROM:5FCC +ROM:5FCC ; =============== S U B R O U T I N E ======================================= +ROM:5FCC +ROM:5FCC +ROM:5FCC ROM_5FCC: ; CODE XREF: start_0+19E9↑p +ROM:5FCC ; ROM_436B:ROM_340D↑p ... +ROM:5FCC mov DPTR, #0xFDB1 +ROM:5FCF movx A, @DPTR +ROM:5FD0 xrl A, #1 +ROM:5FD2 ret +ROM:5FD2 ; End of function ROM_5FCC +ROM:5FD2 +ROM:5FD3 +ROM:5FD3 ; =============== S U B R O U T I N E ======================================= +ROM:5FD3 +ROM:5FD3 +ROM:5FD3 ROM_5FD3: ; CODE XREF: ROM_436B-F18↑p +ROM:5FD3 ; ROM_436B+2B5↑p +ROM:5FD3 mov R3, #1 +ROM:5FD5 mov R2, #0xE0 +ROM:5FD7 mov R1, #0 +ROM:5FD9 ret +ROM:5FD9 ; End of function ROM_5FD3 +ROM:5FD9 +ROM:5FDA +ROM:5FDA ; =============== S U B R O U T I N E ======================================= +ROM:5FDA +ROM:5FDA +ROM:5FDA ROM_5FDA: ; CODE XREF: ROM_549C:ROM_555D↑p +ROM:5FDA ; ROM_549C+10A↑p +ROM:5FDA mov DPTR, #0xF85A +ROM:5FDD movx A, @DPTR +ROM:5FDE mov R6, A +ROM:5FDF inc DPTR +ROM:5FE0 ret +ROM:5FE0 ; End of function ROM_5FDA +ROM:5FE0 +ROM:5FE1 +ROM:5FE1 ; =============== S U B R O U T I N E ======================================= +ROM:5FE1 +ROM:5FE1 +ROM:5FE1 ROM_5FE1: ; CODE XREF: ROM_A044-360A↓p +ROM:5FE1 ; ROM_85BB+F↓p +ROM:5FE1 movx A, @DPTR +ROM:5FE2 mov R7, A +ROM:5FE3 inc DPTR +ROM:5FE4 movx A, @DPTR +ROM:5FE5 mov R6, A +ROM:5FE6 clr C +ROM:5FE7 subb A, R7 +ROM:5FE8 ret +ROM:5FE8 ; End of function ROM_5FE1 +ROM:5FE8 +ROM:5FE9 +ROM:5FE9 ; =============== S U B R O U T I N E ======================================= +ROM:5FE9 +ROM:5FE9 +ROM:5FE9 Something_eeprom_ROM_5FE9: ; CODE XREF: ROM_6849:ROM_68FD↓p +ROM:5FE9 ; ROM_99AD+14↓p ... +ROM:5FE9 lcall ROM_2638 +ROM:5FEC lcall SetupPinsForEEProm +ROM:5FEF lcall eeprom_spi_transaction_code_436 +ROM:5FF2 lcall gpio_setup_magic_ROM_5004 +ROM:5FF5 mov DPTR, #0xFDAC +ROM:5FF8 lcall load_4_bytes_R4_R5_R6_A +ROM:5FFB mov R7, A +ROM:5FFC sjmp SleepSub +ROM:5FFC ; End of function Something_eeprom_ROM_5FE9 +ROM:5FFC +ROM:5FFE +ROM:5FFE ; =============== S U B R O U T I N E ======================================= +ROM:5FFE +ROM:5FFE +ROM:5FFE ROM_5FFE: ; CODE XREF: ROM_4816-24A8↑p +ROM:5FFE mov DPTR, #0xDFF4 +ROM:6001 movx A, @DPTR +ROM:6002 anl A, #0xFB +ROM:6004 movx @DPTR, A +ROM:6005 lcall gpio_setup_magic_ROM_5004 +ROM:6008 clr A +ROM:6009 mov R7, #0x10 +ROM:600B mov R6, #0x27 ; ''' +ROM:600D mov R5, A +ROM:600E mov R4, A +ROM:600E ; End of function ROM_5FFE +ROM:600E +ROM:600F +ROM:600F ; =============== S U B R O U T I N E ======================================= +ROM:600F +ROM:600F +ROM:600F SleepSub: ; CODE XREF: ROM_3671+41↑p +ROM:600F ; ROM_3671+7C↑p ... +ROM:600F REG_UNK_C1 = FSR_C1 +ROM:600F TCON2 = FSR_CF +ROM:600F CONFIG_PAGE = FSR_FF +ROM:600F lcall save_4_bytes_R4_R7_to_0xF85A +ROM:6012 mov R7, #0xC0 +ROM:6014 mov R6, #4 +ROM:6016 mov R5, #0x77 ; 'w' +ROM:6018 mov R4, #0 +ROM:601A mov DPTR, #0xF85A +ROM:601D lcall load_4_bytes_R0_R1_R2_R3 +ROM:6020 setb C +ROM:6021 lcall code_B1C +ROM:6024 jc ROM_603D +ROM:6026 mov DPTR, #0xF48C +ROM:6029 movx A, @DPTR +ROM:602A xrl A, #0x80 +ROM:602C jnz ROM_6030 +ROM:602E inc DPTR +ROM:602F movx A, @DPTR +ROM:6030 +ROM:6030 ROM_6030: ; CODE XREF: SleepSub+1D↑j +ROM:6030 jz ROM_603D +ROM:6032 mov R7, #0xE0 +ROM:6034 mov R6, #0x93 +ROM:6036 mov R5, #4 +ROM:6038 mov R4, #0 +ROM:603A lcall save_4_bytes_R4_R7_to_0xF85A +ROM:603D +ROM:603D ROM_603D: ; CODE XREF: SleepSub+15↑j +ROM:603D ; SleepSub:ROM_6030↑j +ROM:603D clr EA ; Interrupt Enable Register 0 +ROM:603F mov DPTR, #Radio_IRQ4_Pending +ROM:6042 clr A +ROM:6043 movx @DPTR, A +ROM:6044 anl REG_UNK_C1, #0x7E +ROM:6047 anl TCON, #0xDF ; Timer Control Register +ROM:604A mov CONFIG_PAGE, #4 +ROM:604D mov TCON2, A +ROM:604F mov CONFIG_PAGE, A +ROM:6051 lcall RadioCommand_0xCA_0xC5 +ROM:6054 acall Watchdog_ROM_6101 +ROM:6056 clr A +ROM:6057 mov R7, A +ROM:6058 mov R6, #0x80 +ROM:605A mov R5, A +ROM:605B mov R4, A +ROM:605C mov DPTR, #0xF85A +ROM:605F lcall load_4_bytes_R0_R1_R2_R3 +ROM:6062 clr C +ROM:6063 lcall code_B1C +ROM:6066 mov DPTR, #0xF85A +ROM:6069 movx A, @DPTR +ROM:606A mov R4, A +ROM:606B jnc ROM_607E +ROM:606D lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:6070 mov R7, A +ROM:6071 mov R0, #5 +ROM:6073 lcall ROM_372D +ROM:6076 mov DPTR, #0xF85E +ROM:6079 mov A, #0x56 ; 'V' +ROM:607B movx @DPTR, A +ROM:607C sjmp ROM_6091 +ROM:607E ; --------------------------------------------------------------------------- +ROM:607E +ROM:607E ROM_607E: ; CODE XREF: SleepSub+5C↑j +ROM:607E lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:6081 mov R7, A +ROM:6082 lcall ROM_27A8 +ROM:6085 lcall code_A7C +ROM:6088 lcall save_4_bytes_R4_R7_to_0xF85A +ROM:608B mov DPTR, #0xF85E +ROM:608E mov A, #0x16 +ROM:6090 movx @DPTR, A +ROM:6091 +ROM:6091 ROM_6091: ; CODE XREF: SleepSub+6D↑j +ROM:6091 mov R7, #0xFF +ROM:6093 mov R6, #0xFF +ROM:6095 mov R5, #0xF +ROM:6097 mov R4, #0 +ROM:6099 mov DPTR, #0xF85A +ROM:609C lcall load_4_bytes_R0_R1_R2_R3 +ROM:609F setb C +ROM:60A0 lcall code_B1C +ROM:60A3 jc PrepareSleepTimer +ROM:60A5 mov DPTR, #SleepTimerLow +ROM:60A8 mov A, #0xFF +ROM:60AA movx @DPTR, A +ROM:60AB mov DPTR, #SleepTimerMid +ROM:60AE movx @DPTR, A +ROM:60AF sjmp EnterSleep +ROM:60B1 ; --------------------------------------------------------------------------- +ROM:60B1 +ROM:60B1 PrepareSleepTimer: ; CODE XREF: SleepSub+94↑j +ROM:60B1 mov DPTR, #0xF85A +ROM:60B4 inc DPTR +ROM:60B5 inc DPTR +ROM:60B6 inc DPTR +ROM:60B7 movx A, @DPTR +ROM:60B8 mov DPTR, #SleepTimerLow +ROM:60BB movx @DPTR, A +ROM:60BC mov DPTR, #0xF85A +ROM:60BF inc DPTR +ROM:60C0 inc DPTR +ROM:60C1 movx A, @DPTR +ROM:60C2 mov R6, A +ROM:60C3 mov A, R6 +ROM:60C4 mov DPTR, #SleepTimerMid +ROM:60C7 movx @DPTR, A +ROM:60C8 mov DPTR, #0xF85A +ROM:60CB lcall load_4_bytes_R4_R5_R6_A +ROM:60CE acall ROM_67D5 +ROM:60D0 mov A, R7 +ROM:60D1 anl A, #0xF +ROM:60D3 +ROM:60D3 EnterSleep: ; CODE XREF: SleepSub+A0↑j +ROM:60D3 mov DPTR, #0xDFD9 ; Load SleepTimerHigh reg +ROM:60D6 movx @DPTR, A +ROM:60D7 nop +ROM:60D8 mov DPTR, #0xDFF4 ; load RadioPowerCtl +ROM:60DB movx A, @DPTR +ROM:60DC orl A, #0x60 +ROM:60DE movx @DPTR, A ; set bits 5 and 6 in powerctrl reg +ROM:60DF nop +ROM:60E0 nop +ROM:60E1 nop +ROM:60E2 nop +ROM:60E3 mov DPTR, #0xF85E +ROM:60E6 movx A, @DPTR +ROM:60E7 mov DPTR, #0xDFF3 ; Set sleeptimer settings +ROM:60EA movx @DPTR, A +ROM:60EB nop +ROM:60EC nop +ROM:60ED nop +ROM:60EE nop +ROM:60EF movx A, @DPTR +ROM:60F0 orl A, #0x80 +ROM:60F2 movx @DPTR, A +ROM:60F3 nop +ROM:60F4 nop +ROM:60F5 inc DPTR ; go to RadioPowerCtl 0xDFF4 +ROM:60F6 mov A, #0x44 ; 'D' +ROM:60F8 movx @DPTR, A +ROM:60F9 nop +ROM:60FA nop +ROM:60FB lcall SetupWatchdog +ROM:60FE setb EA ; Interrupt Enable Register 0 +ROM:6100 ret +ROM:6100 ; End of function SleepSub +ROM:6100 +ROM:6101 +ROM:6101 ; =============== S U B R O U T I N E ======================================= +ROM:6101 +ROM:6101 +ROM:6101 Watchdog_ROM_6101: ; CODE XREF: SleepSub+45↑p +ROM:6101 WDTRSTVALL = FSR_BC +ROM:6101 WDTRSTVALM = FSR_BD +ROM:6101 WDTRSTVALH = FSR_BE +ROM:6101 WDTENA = FSR_BA +ROM:6101 CONFIG_PAGE = FSR_FF +ROM:6101 acall EnableWatchdog +ROM:6103 mov WDTRSTVALL, #0xC8 +ROM:6106 mov WDTRSTVALM, #0xFE +ROM:6109 +ROM:6109 Watchdog_ROM_6109: ; CODE XREF: Watchdog_ROM_6112+6↓j +ROM:6109 mov WDTRSTVALH, #0xFF +ROM:610C mov WDTENA, #1 +ROM:610F mov CONFIG_PAGE, R7 ; restore config page from R7 +ROM:6111 ret +ROM:6111 ; End of function Watchdog_ROM_6101 +ROM:6111 +ROM:6112 +ROM:6112 ; =============== S U B R O U T I N E ======================================= +ROM:6112 +ROM:6112 +ROM:6112 Watchdog_ROM_6112: ; CODE XREF: wdt_radioreset_clk_ROM_9692↓p +ROM:6112 WDTRSTVALL = FSR_BC +ROM:6112 WDTRSTVALM = FSR_BD +ROM:6112 acall EnableWatchdog +ROM:6114 mov WDTRSTVALL, A +ROM:6116 mov WDTRSTVALM, A +ROM:6118 sjmp Watchdog_ROM_6109 +ROM:6118 ; End of function Watchdog_ROM_6112 +ROM:6118 +ROM:611A +ROM:611A ; =============== S U B R O U T I N E ======================================= +ROM:611A +ROM:611A +ROM:611A EnableWatchdog: ; CODE XREF: SetupWatchdog↑p +ROM:611A ; Watchdog_ROM_6101↑p ... +ROM:611A ConfigPage = FSR_FF +ROM:611A mov R7, ConfigPage +ROM:611C mov ConfigPage, #4 +ROM:611F orl FSR_BF, #0x80 +ROM:6122 clr A +ROM:6123 mov FSR_BA, A +ROM:6125 mov FSR_BB, A +ROM:6127 ret +ROM:6127 ; End of function EnableWatchdog +ROM:6127 +ROM:6127 ; --------------------------------------------------------------------------- +ROM:6128 .byte 0x31 ; 1 +ROM:6129 .byte 0x1A +ROM:612A .byte 0x12 +ROM:612B .byte 0xD6 +ROM:612C .byte 0xE8 +ROM:612D .byte 0x8F +ROM:612E .byte 0xFF +ROM:612F .byte 0x22 ; " +ROM:6130 .byte 0x90 +ROM:6131 .byte 0xF8 +ROM:6132 .byte 0x34 ; 4 +ROM:6133 .byte 0x31 ; 1 +ROM:6134 .byte 0xD0 +ROM:6135 .byte 0x12 +ROM:6136 .byte 0x30 ; 0 +ROM:6137 .byte 0xEB +ROM:6138 .byte 0x12 +ROM:6139 .byte 0x50 ; P +ROM:613A .byte 4 +ROM:613B .byte 0xE4 +ROM:613C .byte 0x12 +ROM:613D .byte 0xD8 +ROM:613E .byte 0xFB +ROM:613F .byte 0x11 +ROM:6140 .byte 0xF +ROM:6141 .byte 0xC2 +ROM:6142 .byte 0xAF +ROM:6143 .byte 0x31 ; 1 +ROM:6144 .byte 0x6A ; j +ROM:6145 .byte 0x31 ; 1 +ROM:6146 .byte 0x63 ; c +ROM:6147 .byte 0x12 +ROM:6148 .byte 4 +ROM:6149 .byte 0x36 ; 6 +ROM:614A .byte 0x31 ; 1 +ROM:614B .byte 0x63 ; c +ROM:614C +ROM:614C ; =============== S U B R O U T I N E ======================================= +ROM:614C +ROM:614C +ROM:614C ROM_614C: ; CODE XREF: ROM_4816-6↑j +ROM:614C ; ROM_7B6C+8↓p ... +ROM:614C mov FSR_FF, #4 +ROM:614F mov FSR_BF, #0x80 +ROM:6152 mov FSR_BE, #0xFF +ROM:6155 mov FSR_BD, #0xFF +ROM:6158 mov FSR_BC, #0xFF +ROM:615B mov FSR_BB, #0xFF +ROM:615E mov FSR_BA, #1 +ROM:6161 +ROM:6161 ROM_6161: ; CODE XREF: ROM_614C:ROM_6161↓j +ROM:6161 sjmp ROM_6161 +ROM:6161 ; End of function ROM_614C +ROM:6161 +ROM:6161 ; --------------------------------------------------------------------------- +ROM:6163 .byte 0x7F ;  +ROM:6164 .byte 0xE8 +ROM:6165 .byte 0x7E ; ~ +ROM:6166 .byte 0xFD +ROM:6167 .byte 2 +ROM:6168 .byte 0x4C ; L +ROM:6169 .byte 0xB7 +ROM:616A .byte 0x90 +ROM:616B .byte 0xF8 +ROM:616C .byte 0x36 ; 6 +ROM:616D .byte 0xE5 +ROM:616E .byte 0xFF +ROM:616F .byte 0xF0 +ROM:6170 .byte 0x75 ; u +ROM:6171 .byte 0xFF +ROM:6172 .byte 4 +ROM:6173 .byte 0xC2 +ROM:6174 .byte 0xAD +ROM:6175 .byte 0x31 ; 1 +ROM:6176 .byte 0xCD +ROM:6177 .byte 0x31 ; 1 +ROM:6178 .byte 0x28 ; ( +ROM:6179 .byte 0x90 +ROM:617A .byte 0xFE +ROM:617B .byte 0x8E +ROM:617C .byte 0xE0 +ROM:617D .byte 0xFE +ROM:617E .byte 0xA3 +ROM:617F .byte 0xE0 +ROM:6180 .byte 0xAA +ROM:6181 .byte 6 +ROM:6182 .byte 0xF8 +ROM:6183 .byte 0xAC +ROM:6184 .byte 2 +ROM:6185 .byte 0x7D ; } +ROM:6186 .byte 1 +ROM:6187 .byte 0x31 ; 1 +ROM:6188 .byte 0xC2 +ROM:6189 .byte 0x12 +ROM:618A .byte 8 +ROM:618B .byte 0x6B ; k +ROM:618C .byte 0x43 ; C +ROM:618D .byte 0xC7 +ROM:618E .byte 0x38 ; 8 +ROM:618F .byte 0x75 ; u +ROM:6190 .byte 0xDF +ROM:6191 .byte 3 +ROM:6192 .byte 0xE4 +ROM:6193 .byte 0xF5 +ROM:6194 .byte 0xD8 +ROM:6195 .byte 0xF5 +ROM:6196 .byte 0xDB +ROM:6197 .byte 0xF5 +ROM:6198 .byte 0xDC +ROM:6199 .byte 0x75 ; u +ROM:619A .byte 0xDD +ROM:619B .byte 0xFF +ROM:619C .byte 0xF5 +ROM:619D .byte 0xDE +ROM:619E .byte 0x12 +ROM:619F .byte 0x91 +ROM:61A0 .byte 0x8B +ROM:61A1 .byte 0 +ROM:61A2 .byte 0xE5 +ROM:61A3 .byte 0xCF +ROM:61A4 .byte 0x30 ; 0 +ROM:61A5 .byte 0xE3 +ROM:61A6 .byte 0xFB +ROM:61A7 .byte 0 +ROM:61A8 .byte 0x53 ; S +ROM:61A9 .byte 0xCF +ROM:61AA .byte 0xB7 +ROM:61AB .byte 0x53 ; S +ROM:61AC .byte 0xC7 +ROM:61AD .byte 0xEF +ROM:61AE .byte 0x78 ; x +ROM:61AF .byte 0 +ROM:61B0 .byte 0x7C ; | +ROM:61B1 .byte 0 +ROM:61B2 .byte 0x7D ; } +ROM:61B3 .byte 0xFF +ROM:61B4 .byte 0x31 ; 1 +ROM:61B5 .byte 0xC2 +ROM:61B6 .byte 0x12 +ROM:61B7 .byte 0x5F ; _ +ROM:61B8 .byte 0x91 +ROM:61B9 .byte 0x70 ; p +ROM:61BA .byte 0xBE +ROM:61BB .byte 0x90 +ROM:61BC .byte 0xF8 +ROM:61BD .byte 0x36 ; 6 +ROM:61BE .byte 0xE0 +ROM:61BF .byte 0xF5 +ROM:61C0 .byte 0xFF +ROM:61C1 .byte 0x22 ; " +ROM:61C2 .byte 0x7B ; { +ROM:61C3 .byte 0xFF +ROM:61C4 .byte 0x7A ; z +ROM:61C5 .byte 0xE8 +ROM:61C6 .byte 0x79 ; y +ROM:61C7 .byte 0 +ROM:61C8 .byte 0x7E ; ~ +ROM:61C9 .byte 1 +ROM:61CA .byte 0x7F ;  +ROM:61CB .byte 0 +ROM:61CC .byte 0x22 ; " +ROM:61CD .byte 0x90 +ROM:61CE .byte 0xFE +ROM:61CF .byte 0x8E +ROM:61D0 +ROM:61D0 ; =============== S U B R O U T I N E ======================================= +ROM:61D0 +ROM:61D0 +ROM:61D0 ROM_61D0: ; CODE XREF: ROM_61D7+A7↓p +ROM:61D0 mov A, #0xE4 +ROM:61D2 movx @DPTR, A +ROM:61D3 inc DPTR +ROM:61D4 clr A +ROM:61D5 movx @DPTR, A +ROM:61D6 ret +ROM:61D6 ; End of function ROM_61D0 +ROM:61D6 +ROM:61D7 +ROM:61D7 ; =============== S U B R O U T I N E ======================================= +ROM:61D7 +ROM:61D7 +ROM:61D7 ROM_61D7: ; CODE XREF: ROM_2E9D+3E↑p +ROM:61D7 mov R6, #0 +ROM:61D9 mov R7, #0x29 ; ')' +ROM:61DB mov R5, #0 +ROM:61DD mov R3, #1 +ROM:61DF mov R2, #0xF5 +ROM:61E1 mov R1, #0x3C ; '<' +ROM:61E3 lcall code_EA0 +ROM:61E6 mov DPTR, #0xFDA7 +ROM:61E9 movx A, @DPTR +ROM:61EA mov DPTR, #0xF545 +ROM:61ED movx @DPTR, A +ROM:61EE mov DPTR, #0xFDA8 +ROM:61F1 movx A, @DPTR +ROM:61F2 mov DPTR, #0xF544 +ROM:61F5 movx @DPTR, A +ROM:61F6 acall ROM_6790 +ROM:61F8 mov R3, #1 +ROM:61FA mov R2, #0xF4 +ROM:61FC mov R1, #0x88 +ROM:61FE lcall code_EA0 +ROM:6201 mov R6, #0 +ROM:6203 mov R7, #0x1F +ROM:6205 mov R5, #0 +ROM:6207 mov R3, #1 +ROM:6209 mov R2, #0xF5 +ROM:620B mov R1, #0xF +ROM:620D lcall code_EA0 +ROM:6210 mov R6, #0 +ROM:6212 mov R7, #0xD +ROM:6214 mov R5, #0 +ROM:6216 mov R3, #1 +ROM:6218 mov R2, #0xF6 +ROM:621A mov R1, #0x6A ; 'j' +ROM:621C lcall code_EA0 +ROM:621F lcall load_PANID_ROM_8F14 +ROM:6222 mov R7, A +ROM:6223 acall setup_panID_ROM_6737 +ROM:6225 lcall ROM_882C +ROM:6228 mov DPTR, #0xF48A +ROM:622B movx @DPTR, A +ROM:622C acall ROM_67C9 +ROM:622E mov DPTR, #0xF48B +ROM:6231 mov A, R7 +ROM:6232 movx @DPTR, A +ROM:6233 mov DPTR, #0xF50F +ROM:6236 mov A, #0xDA +ROM:6238 movx @DPTR, A +ROM:6239 acall ROM_6288 +ROM:623B lcall ROM_81F6 +ROM:623E mov DPTR, #0xF510 +ROM:6241 mov A, #0x87 +ROM:6243 movx @DPTR, A +ROM:6244 mov DPTR, #0xF66A +ROM:6247 mov A, #0xDD +ROM:6249 movx @DPTR, A +ROM:624A acall ROM_6288 +ROM:624C lcall ROM_47D7 +ROM:624F mov DPTR, #0xF66B +ROM:6252 mov A, #0x87 +ROM:6254 movx @DPTR, A +ROM:6255 acall ROM_6288 +ROM:6257 lcall ROM_37E3 +ROM:625A lcall ROM_D971 +ROM:625D clr A +ROM:625E mov DPTR, #0xF552 +ROM:6261 movx @DPTR, A +ROM:6262 lcall ROM_93E4 +ROM:6265 clr A +ROM:6266 mov DPTR, #0xF50A +ROM:6269 movx @DPTR, A +ROM:626A mov DPTR, #0xF48F +ROM:626D inc A +ROM:626E movx @DPTR, A +ROM:626F acall ROM_6744 +ROM:6271 clr A +ROM:6272 mov DPTR, #0xF508 +ROM:6275 movx @DPTR, A +ROM:6276 mov R3, #1 +ROM:6278 mov DPTR, #0xF55E +ROM:627B inc A +ROM:627C movx @DPTR, A +ROM:627D inc DPTR +ROM:627E acall ROM_61D0 +ROM:6280 acall ROM_628F +ROM:6282 lcall load_values_ROM_D709 +ROM:6285 ljmp code_EA0 +ROM:6285 ; End of function ROM_61D7 +ROM:6285 +ROM:6288 +ROM:6288 ; =============== S U B R O U T I N E ======================================= +ROM:6288 +ROM:6288 +ROM:6288 ROM_6288: ; CODE XREF: ROM_2E9D:ROM_2F3F↑p +ROM:6288 ; ROM_436B+356↑p ... +ROM:6288 mov A, #0xFF +ROM:628A mov R7, A +ROM:628B mov R6, A +ROM:628C mov R5, A +ROM:628D mov R4, A +ROM:628E ret +ROM:628E ; End of function ROM_6288 +ROM:628E +ROM:628F +ROM:628F ; =============== S U B R O U T I N E ======================================= +ROM:628F +ROM:628F +ROM:628F ROM_628F: ; CODE XREF: ROM_2916+131↑p +ROM:628F ; ROM_2916:ROM_2A95↑p ... +ROM:628F acall ROM_6288 +ROM:6291 mov DPTR, #0xF51D +ROM:6294 lcall save_4_bytes_R4_R7 +ROM:6297 clr A +ROM:6298 mov DPTR, #0xF521 +ROM:629B movx @DPTR, A +ROM:629C inc DPTR +ROM:629D movx @DPTR, A +ROM:629E mov DPTR, #0xF561 +ROM:62A1 ljmp ROM_3F94 +ROM:62A1 ; End of function ROM_628F +ROM:62A1 +ROM:62A4 +ROM:62A4 ; =============== S U B R O U T I N E ======================================= +ROM:62A4 +ROM:62A4 +ROM:62A4 ROM_62A4: ; CODE XREF: ROM_436B-10AF↑p +ROM:62A4 mov DPTR, #0xF841 +ROM:62A7 acall ROM_679A +ROM:62A9 clr A +ROM:62AA lcall ROM_30E7 +ROM:62AD mov DPTR, #0xF842 +ROM:62B0 movx A, @DPTR +ROM:62B1 add A, #3 +ROM:62B3 acall ROM_63F0 +ROM:62B5 mov R0, #0x44 ; 'D' +ROM:62B7 mov R4, #0xF8 +ROM:62B9 acall ROM_663D +ROM:62BB mov DPTR, #0xF844 +ROM:62BE movx A, @DPTR +ROM:62BF jnz ROM_62C3 +ROM:62C1 inc DPTR +ROM:62C2 movx A, @DPTR +ROM:62C3 +ROM:62C3 ROM_62C3: ; CODE XREF: ROM_62A4+1B↑j +ROM:62C3 jnz ROM_631D +ROM:62C5 acall ROM_628F +ROM:62C7 mov DPTR, #0xF842 +ROM:62CA movx A, @DPTR +ROM:62CB add A, #0xB +ROM:62CD acall ROM_63F0 +ROM:62CF mov R0, #0x1D +ROM:62D1 mov R4, #0xF5 +ROM:62D3 acall ROM_6646 +ROM:62D5 acall ROM_6657 +ROM:62D7 add A, #0x10 +ROM:62D9 lcall ROM_44DE +ROM:62DC mov DPTR, #0xF522 +ROM:62DF movx @DPTR, A +ROM:62E0 mov R0, #0x6C ; 'l' +ROM:62E2 mov R4, #0xF6 +ROM:62E4 mov R5, #1 +ROM:62E6 mov R3, #1 +ROM:62E8 mov R2, #0xF5 +ROM:62EA mov R1, #0x1D +ROM:62EC acall ROM_6648 +ROM:62EE acall ROM_63DB +ROM:62F0 acall ROM_6639 +ROM:62F2 mov DPTR, #0xF842 +ROM:62F5 movx A, @DPTR +ROM:62F6 add A, #7 +ROM:62F8 acall ROM_63F0 +ROM:62FA mov R0, #0x46 ; 'F' +ROM:62FC mov R4, #0xF8 +ROM:62FE acall ROM_663D +ROM:6300 acall ROM_6657 +ROM:6302 lcall ROM_44DC +ROM:6305 acall ROM_6669 +ROM:6307 lcall ROM_4737 +ROM:630A clr A +ROM:630B mov R7, A +ROM:630C mov R6, A +ROM:630D mov R5, A +ROM:630E mov R4, A +ROM:630F mov DPTR, #0xF52E +ROM:6312 lcall save_4_bytes_R4_R7 +ROM:6315 mov DPTR, #0xF4A1 +ROM:6318 mov A, #1 +ROM:631A movx @DPTR, A +ROM:631B sjmp ROM_6339 +ROM:631D ; --------------------------------------------------------------------------- +ROM:631D +ROM:631D ROM_631D: ; CODE XREF: ROM_62A4:ROM_62C3↑j +ROM:631D acall ROM_63DB +ROM:631F acall ROM_6639 +ROM:6321 mov DPTR, #0xFB7A +ROM:6324 movx A, @DPTR +ROM:6325 mov R7, A +ROM:6326 inc DPTR +ROM:6327 movx A, @DPTR +ROM:6328 mov DPTR, #0xF846 +ROM:632B xch A, R7 +ROM:632C movx @DPTR, A +ROM:632D inc DPTR +ROM:632E mov A, R7 +ROM:632F movx @DPTR, A +ROM:6330 mov DPTR, #0xFB7E +ROM:6333 movx A, @DPTR +ROM:6334 acall ROM_6669 +ROM:6336 lcall ROM_4737 +ROM:6339 +ROM:6339 ROM_6339: ; CODE XREF: ROM_62A4+77↑j +ROM:6339 mov DPTR, #0xF561 +ROM:633C movx A, @DPTR +ROM:633D mov R4, A +ROM:633E inc DPTR +ROM:633F movx A, @DPTR +ROM:6340 mov R5, A +ROM:6341 mov DPTR, #0xF844 +ROM:6344 movx A, @DPTR +ROM:6345 mov R2, A +ROM:6346 inc DPTR +ROM:6347 movx A, @DPTR +ROM:6348 mov R3, A +ROM:6349 clr C +ROM:634A subb A, R5 +ROM:634B mov A, R2 +ROM:634C subb A, R4 +ROM:634D jnc ROM_6352 +ROM:634F mov R7, #1 +ROM:6351 ret +ROM:6352 ; --------------------------------------------------------------------------- +ROM:6352 +ROM:6352 ROM_6352: ; CODE XREF: ROM_62A4+A9↑j +ROM:6352 setb C +ROM:6353 mov A, R3 +ROM:6354 subb A, R5 +ROM:6355 mov A, R2 +ROM:6356 subb A, R4 +ROM:6357 jc ROM_635C +ROM:6359 mov R7, #0x15 +ROM:635B ret +ROM:635C ; --------------------------------------------------------------------------- +ROM:635C +ROM:635C ROM_635C: ; CODE XREF: ROM_62A4+B3↑j +ROM:635C mov DPTR, #0xF843 +ROM:635F movx A, @DPTR +ROM:6360 add A, #0xF9 +ROM:6362 mov R3, A +ROM:6363 mov R5, A +ROM:6364 mov DPTR, #0xF564 +ROM:6367 movx A, @DPTR +ROM:6368 add A, R5 +ROM:6369 mov R5, A +ROM:636A mov DPTR, #0xF563 +ROM:636D movx A, @DPTR +ROM:636E addc A, #0 +ROM:6370 lcall ROM_3FB9 +ROM:6373 subb A, #0x10 +ROM:6375 jc ROM_637A +ROM:6377 mov R7, #2 +ROM:6379 ret +ROM:637A ; --------------------------------------------------------------------------- +ROM:637A +ROM:637A ROM_637A: ; CODE XREF: ROM_62A4+D1↑j +ROM:637A mov DPTR, #0xF844 +ROM:637D movx A, @DPTR +ROM:637E mov R4, A +ROM:637F inc DPTR +ROM:6380 movx A, @DPTR +ROM:6381 mov R5, A +ROM:6382 add A, #1 +ROM:6384 mov R6, A +ROM:6385 clr A +ROM:6386 addc A, R4 +ROM:6387 mov DPTR, #0xF561 +ROM:638A movx @DPTR, A +ROM:638B inc DPTR +ROM:638C xch A, R6 +ROM:638D movx @DPTR, A +ROM:638E mov A, R5 +ROM:638F inc A +ROM:6390 mov DPTR, #0xF521 +ROM:6393 movx @DPTR, A +ROM:6394 mov A, R3 +ROM:6395 mov R7, A +ROM:6396 mov R6, #0 +ROM:6398 mov DPTR, #0xF842 +ROM:639B movx A, @DPTR +ROM:639C add A, #7 +ROM:639E mov R5, A +ROM:639F mov DPTR, #0xF841 +ROM:63A2 lcall ROM_90C2 +ROM:63A5 push RAM_3 +ROM:63A7 push RAM_2 +ROM:63A9 push RAM_1 +ROM:63AB mov DPTR, #0xF55E +ROM:63AE lcall ROM_37C3 +ROM:63B1 mov R1, A +ROM:63B2 mov DPTR, #0xF563 +ROM:63B5 lcall ROM_7714 +ROM:63B8 lcall ROM_90B9 +ROM:63BB pop RAM_1 +ROM:63BD pop RAM_2 +ROM:63BF pop RAM_3 +ROM:63C1 lcall code_86B +ROM:63C4 mov DPTR, #0xF843 +ROM:63C7 movx A, @DPTR +ROM:63C8 add A, #0xF9 +ROM:63CA mov R7, A +ROM:63CB mov DPTR, #0xF564 +ROM:63CE movx A, @DPTR +ROM:63CF add A, R7 +ROM:63D0 movx @DPTR, A +ROM:63D1 mov DPTR, #0xF563 +ROM:63D4 movx A, @DPTR +ROM:63D5 addc A, #0 +ROM:63D7 movx @DPTR, A +ROM:63D8 mov R7, #0 +ROM:63DA ret +ROM:63DA ; End of function ROM_62A4 +ROM:63DA +ROM:63DB +ROM:63DB ; =============== S U B R O U T I N E ======================================= +ROM:63DB +ROM:63DB +ROM:63DB ROM_63DB: ; CODE XREF: ROM_62A4+4A↑p +ROM:63DB ; ROM_62A4:ROM_631D↑p +ROM:63DB mov R6, #0 +ROM:63DD mov R7, #5 +ROM:63DF mov R5, #0 +ROM:63E1 mov R3, #1 +ROM:63E3 mov R2, #0xF8 +ROM:63E5 mov R1, #0x46 ; 'F' +ROM:63E7 lcall code_EA0 +ROM:63EA mov DPTR, #0xF842 +ROM:63ED movx A, @DPTR +ROM:63EE add A, #5 +ROM:63EE ; End of function ROM_63DB +ROM:63EE +ROM:63F0 +ROM:63F0 ; =============== S U B R O U T I N E ======================================= +ROM:63F0 +ROM:63F0 +ROM:63F0 ROM_63F0: ; CODE XREF: ROM_62A4+F↑p +ROM:63F0 ; ROM_62A4+29↑p ... +ROM:63F0 mov R7, A +ROM:63F1 mov DPTR, #0xF841 +ROM:63F1 ; End of function ROM_63F0 +ROM:63F1 +ROM:63F4 +ROM:63F4 ; =============== S U B R O U T I N E ======================================= +ROM:63F4 +ROM:63F4 +ROM:63F4 ROM_63F4: ; CODE XREF: ROM_436B+33A↑p +ROM:63F4 ; ROM_436B+20A7↓p ... +ROM:63F4 movx A, @DPTR +ROM:63F4 ; End of function ROM_63F4 +ROM:63F4 +ROM:63F5 +ROM:63F5 ; =============== S U B R O U T I N E ======================================= +ROM:63F5 +ROM:63F5 +ROM:63F5 ROM_63F5: ; CODE XREF: ROM_A044-3518↓p +ROM:63F5 ; ROM_A044-350D↓p ... +ROM:63F5 addc A, #0 +ROM:63F7 mov R2, A +ROM:63F8 mov R1, RAM_7 +ROM:63FA mov R3, #1 +ROM:63FC ret +ROM:63FC ; End of function ROM_63F5 +ROM:63FC +ROM:63FD ; --------------------------------------------------------------------------- +ROM:63FD ; START OF FUNCTION CHUNK FOR ROM_436B +ROM:63FD +ROM:63FD ROM_63FD: ; CODE XREF: ROM_436B+10A↑j +ROM:63FD acall ROM_6797 +ROM:63FF lcall ROM_D511 +ROM:6402 lcall SetupWatchdog +ROM:6405 lcall ROM_2FD1 +ROM:6408 mov DPTR, #0xF831 +ROM:640B movx A, @DPTR +ROM:640C add A, #3 +ROM:640E mov R7, A +ROM:640F mov DPTR, #0xF830 +ROM:6412 acall ROM_63F4 +ROM:6414 mov R0, #0x9C +ROM:6416 mov R4, #0xFB +ROM:6418 acall ROM_663D +ROM:641A mov DPTR, #0xF831 +ROM:641D movx A, @DPTR +ROM:641E add A, #1 +ROM:6420 mov R7, A +ROM:6421 mov DPTR, #0xF830 +ROM:6424 acall ROM_63F4 +ROM:6426 mov R0, #0x98 +ROM:6428 mov R4, #0xFB +ROM:642A acall ROM_663D +ROM:642C lcall ROM_D983 +ROM:642F setb C +ROM:6430 mov DPTR, #0xFC60 +ROM:6433 movx A, @DPTR +ROM:6434 subb A, R7 +ROM:6435 mov DPTR, #0xFC5F +ROM:6438 movx A, @DPTR +ROM:6439 subb A, R6 +ROM:643A jc ROM_6442 +ROM:643C mov DPTR, #0xFC61 +ROM:643F movx A, @DPTR +ROM:6440 inc A +ROM:6441 movx @DPTR, A +ROM:6442 +ROM:6442 ROM_6442: ; CODE XREF: ROM_436B+20CF↑j +ROM:6442 mov DPTR, #0xFB9C +ROM:6445 movx A, @DPTR +ROM:6446 mov R7, A +ROM:6447 inc DPTR +ROM:6448 movx A, @DPTR +ROM:6449 mov DPTR, #0xFC5F +ROM:644C xch A, R7 +ROM:644D movx @DPTR, A +ROM:644E inc DPTR +ROM:644F mov A, R7 +ROM:6450 movx @DPTR, A +ROM:6451 clr C +ROM:6452 mov DPTR, #0xFB9D +ROM:6455 movx A, @DPTR +ROM:6456 subb A, #0x59 ; 'Y' +ROM:6458 mov DPTR, #0xFB9C +ROM:645B movx A, @DPTR +ROM:645C subb A, #2 +ROM:645E jnc ROM_64AC +ROM:6460 movx A, @DPTR +ROM:6461 mov R4, A +ROM:6462 inc DPTR +ROM:6463 movx A, @DPTR +ROM:6464 mov R5, A +ROM:6465 mov R6, RAM_4 +ROM:6467 mov R0, #3 +ROM:6469 +ROM:6469 ROM_6469: ; CODE XREF: ROM_436B+2103↓j +ROM:6469 xch A, R6 +ROM:646A clr C +ROM:646B rrc A +ROM:646C xch A, R6 +ROM:646D rrc A +ROM:646E djnz R0, ROM_6469 +ROM:6470 mov R3, A +ROM:6471 mov A, R5 +ROM:6472 anl A, #7 +ROM:6474 lcall ROM_D335 +ROM:6477 sjmp ROM_647E +ROM:6479 ; --------------------------------------------------------------------------- +ROM:6479 +ROM:6479 ROM_6479: ; CODE XREF: ROM_436B:ROM_647E↓j +ROM:6479 clr C +ROM:647A rlc A +ROM:647B xch A, R6 +ROM:647C rlc A +ROM:647D xch A, R6 +ROM:647E +ROM:647E ROM_647E: ; CODE XREF: ROM_436B+210C↑j +ROM:647E djnz R0, ROM_6479 +ROM:6480 acall ROM_6674 +ROM:6482 movx A, @DPTR +ROM:6483 mov R5, A +ROM:6484 mov A, R7 +ROM:6485 anl A, R5 +ROM:6486 jz ROM_648A +ROM:6488 ajmp ROM_6632 +ROM:648A ; --------------------------------------------------------------------------- +ROM:648A +ROM:648A ROM_648A: ; CODE XREF: ROM_436B+211B↑j +ROM:648A acall ROM_6675 +ROM:648C push DP0H ; Data Pointer High Byte +ROM:648E push DP0L ; Data Pointer Low Byte +ROM:6490 movx A, @DPTR +ROM:6491 mov R7, A +ROM:6492 mov DPTR, #0xFB9C +ROM:6495 inc DPTR +ROM:6496 movx A, @DPTR +ROM:6497 anl A, #7 +ROM:6499 mov R6, A +ROM:649A mov R0, A +ROM:649B mov A, #1 +ROM:649D inc R0 +ROM:649E sjmp ROM_64A2 +ROM:64A0 ; --------------------------------------------------------------------------- +ROM:64A0 +ROM:64A0 ROM_64A0: ; CODE XREF: ROM_436B:ROM_64A2↓j +ROM:64A0 clr C +ROM:64A1 rlc A +ROM:64A2 +ROM:64A2 ROM_64A2: ; CODE XREF: ROM_436B+2133↑j +ROM:64A2 djnz R0, ROM_64A0 +ROM:64A4 orl A, R7 +ROM:64A5 pop DP0L ; Data Pointer Low Byte +ROM:64A7 pop DP0H ; Data Pointer High Byte +ROM:64A9 movx @DPTR, A +ROM:64AA sjmp ROM_64B3 +ROM:64AC ; --------------------------------------------------------------------------- +ROM:64AC +ROM:64AC ROM_64AC: ; CODE XREF: ROM_436B+20F3↑j +ROM:64AC mov DPTR, #0xFBA0 +ROM:64AF mov A, #0x1D +ROM:64B1 sjmp ROM_6515 +ROM:64B3 ; --------------------------------------------------------------------------- +ROM:64B3 +ROM:64B3 ROM_64B3: ; CODE XREF: ROM_436B+213F↑j +ROM:64B3 mov DPTR, #0xFBA0 +ROM:64B6 mov A, #1 +ROM:64B8 movx @DPTR, A +ROM:64B9 mov DPTR, #0xFB9C +ROM:64BC movx A, @DPTR +ROM:64BD jnz ROM_64C1 +ROM:64BF inc DPTR +ROM:64C0 movx A, @DPTR +ROM:64C1 +ROM:64C1 ROM_64C1: ; CODE XREF: ROM_436B+2152↑j +ROM:64C1 jnz ROM_6538 +ROM:64C3 mov DPTR, #0xF832 +ROM:64C6 movx A, @DPTR +ROM:64C7 add A, #0xE0 +ROM:64C9 mov DPTR, #0xFC51 +ROM:64CC movx @DPTR, A +ROM:64CD mov DPTR, #0xF831 +ROM:64D0 movx A, @DPTR +ROM:64D1 add A, #0x1A +ROM:64D3 mov R7, A +ROM:64D4 mov DPTR, #0xF830 +ROM:64D7 acall ROM_63F4 +ROM:64D9 mov R0, #0x88 +ROM:64DB mov R4, #0xFB +ROM:64DD acall ROM_6646 +ROM:64DF mov DPTR, #0xF831 +ROM:64E2 movx A, @DPTR +ROM:64E3 add A, #0xC +ROM:64E5 mov R7, A +ROM:64E6 mov DPTR, #0xF830 +ROM:64E9 acall ROM_63F4 +ROM:64EB mov R0, #0x33 ; '3' +ROM:64ED mov R4, #0xF8 +ROM:64EF acall ROM_6646 +ROM:64F1 lcall ROM_4654 +ROM:64F4 add A, #5 +ROM:64F6 lcall ROM_44DE +ROM:64F9 xrl A, #0x87 +ROM:64FB jnz ROM_6510 +ROM:64FD mov DPTR, #0xFDC0 +ROM:6500 lcall load_4_bytes_R4_R5_R6_A +ROM:6503 mov R7, A +ROM:6504 mov DPTR, #0xF833 +ROM:6507 lcall load_4_bytes_R0_R1_R2_R3 +ROM:650A clr C +ROM:650B lcall code_B1C +ROM:650E jz ROM_6518 +ROM:6510 +ROM:6510 ROM_6510: ; CODE XREF: ROM_436B+2190↑j +ROM:6510 mov DPTR, #0xFBA0 +ROM:6513 mov A, #0x2E ; '.' +ROM:6515 +ROM:6515 ROM_6515: ; CODE XREF: ROM_436B+2146↑j +ROM:6515 movx @DPTR, A +ROM:6516 ajmp ROM_662F +ROM:6518 ; --------------------------------------------------------------------------- +ROM:6518 +ROM:6518 ROM_6518: ; CODE XREF: ROM_436B+21A3↑j +ROM:6518 mov DPTR, #0xF831 +ROM:651B movx A, @DPTR +ROM:651C add A, #6 +ROM:651E mov R7, A +ROM:651F mov DPTR, #0xF830 +ROM:6522 acall ROM_63F4 +ROM:6524 mov R0, #0x54 ; 'T' +ROM:6526 mov R4, #0xFC +ROM:6528 mov R5, #1 +ROM:652A lcall ROM_6F87 +ROM:652D mov R3, #1 +ROM:652F mov R2, #0xFC +ROM:6531 mov R1, #0x54 ; 'T' +ROM:6533 lcall ROM_4737 +ROM:6536 sjmp ROM_6542 +ROM:6538 ; --------------------------------------------------------------------------- +ROM:6538 +ROM:6538 ROM_6538: ; CODE XREF: ROM_436B:ROM_64C1↑j +ROM:6538 mov DPTR, #0xF832 +ROM:653B movx A, @DPTR +ROM:653C add A, #0xFB +ROM:653E mov DPTR, #0xFC51 +ROM:6541 movx @DPTR, A +ROM:6542 +ROM:6542 ROM_6542: ; CODE XREF: ROM_436B+21CB↑j +ROM:6542 mov DPTR, #0xFC51 +ROM:6545 movx A, @DPTR +ROM:6546 setb C +ROM:6547 subb A, #0x64 ; 'd' +ROM:6549 mov A, #0x80 +ROM:654B subb A, #0x80 +ROM:654D jc ROM_6552 +ROM:654F mov A, #0x63 ; 'c' +ROM:6551 movx @DPTR, A +ROM:6552 +ROM:6552 ROM_6552: ; CODE XREF: ROM_436B+21E2↑j +ROM:6552 mov DPTR, #0xFB9C +ROM:6555 movx A, @DPTR +ROM:6556 jnz ROM_655A +ROM:6558 inc DPTR +ROM:6559 movx A, @DPTR +ROM:655A +ROM:655A ROM_655A: ; CODE XREF: ROM_436B+21EB↑j +ROM:655A jnz ROM_6573 +ROM:655C mov DPTR, #0xFB9B +ROM:655F movx A, @DPTR +ROM:6560 add A, #0x46 ; 'F' +ROM:6562 acall ROM_664F +ROM:6564 movx @DPTR, A +ROM:6565 clr A +ROM:6566 mov R7, A +ROM:6567 mov R6, #0x70 ; 'p' +ROM:6569 mov R5, A +ROM:656A lcall ROM_9F0B +ROM:656D acall ROM_665F +ROM:656F add A, #0x20 ; ' ' +ROM:6571 sjmp ROM_65AC +ROM:6573 ; --------------------------------------------------------------------------- +ROM:6573 +ROM:6573 ROM_6573: ; CODE XREF: ROM_436B:ROM_655A↑j +ROM:6573 lcall ROM_9EDB +ROM:6576 mov R6, A +ROM:6577 mov DPTR, #0xFB9C +ROM:657A movx A, @DPTR +ROM:657B xrl A, R6 +ROM:657C jnz ROM_6581 +ROM:657E inc DPTR +ROM:657F movx A, @DPTR +ROM:6580 xrl A, R7 +ROM:6581 +ROM:6581 ROM_6581: ; CODE XREF: ROM_436B+2211↑j +ROM:6581 jnz ROM_659C +ROM:6583 mov DPTR, #0xFC51 +ROM:6586 movx A, @DPTR +ROM:6587 mov R7, A +ROM:6588 mov DPTR, #0xFB9B +ROM:658B movx A, @DPTR +ROM:658C add A, R7 +ROM:658D acall ROM_664F +ROM:658F movx @DPTR, A +ROM:6590 clr A +ROM:6591 mov R4, A +ROM:6592 mov R5, A +ROM:6593 mov R6, A +ROM:6594 mov DPTR, #0xFC62 +ROM:6597 lcall save_4_bytes_R4_R7 +ROM:659A sjmp ROM_65A5 +ROM:659C ; --------------------------------------------------------------------------- +ROM:659C +ROM:659C ROM_659C: ; CODE XREF: ROM_436B:ROM_6581↑j +ROM:659C mov DPTR, #0xFB9B +ROM:659F movx A, @DPTR +ROM:65A0 add A, #0x61 ; 'a' +ROM:65A2 acall ROM_664F +ROM:65A4 movx @DPTR, A +ROM:65A5 +ROM:65A5 ROM_65A5: ; CODE XREF: ROM_436B+222F↑j +ROM:65A5 lcall ROM_9EE9 +ROM:65A8 acall ROM_665F +ROM:65AA add A, #5 +ROM:65AC +ROM:65AC ROM_65AC: ; CODE XREF: ROM_436B+2206↑j +ROM:65AC mov R7, A +ROM:65AD mov DPTR, #0xF830 +ROM:65B0 acall ROM_63F4 +ROM:65B2 mov DPTR, #0xFC51 +ROM:65B5 movx A, @DPTR +ROM:65B6 mov R7, A +ROM:65B7 mov DPTR, #0xF83E +ROM:65BA clr A +ROM:65BB lcall ROM_9F12 +ROM:65BE lcall load_4_bytes_R4_R5_R6_A +ROM:65C1 mov R7, A +ROM:65C2 acall ROM_67A3 +ROM:65C4 acall ROM_6680 +ROM:65C6 mov DPTR, #0xFB95 +ROM:65C9 movx A, @DPTR +ROM:65CA inc A +ROM:65CB movx @DPTR, A +ROM:65CC jnz ROM_65D4 +ROM:65CE mov DPTR, #0xFB94 +ROM:65D1 movx A, @DPTR +ROM:65D2 inc A +ROM:65D3 movx @DPTR, A +ROM:65D4 +ROM:65D4 ROM_65D4: ; CODE XREF: ROM_436B+2261↑j +ROM:65D4 mov DPTR, #0xFB97 +ROM:65D7 movx A, @DPTR +ROM:65D8 inc A +ROM:65D9 movx @DPTR, A +ROM:65DA jnz ROM_65E2 +ROM:65DC mov DPTR, #0xFB96 +ROM:65DF movx A, @DPTR +ROM:65E0 inc A +ROM:65E1 movx @DPTR, A +ROM:65E2 +ROM:65E2 ROM_65E2: ; CODE XREF: ROM_436B+226F↑j +ROM:65E2 mov DPTR, #0xFB98 +ROM:65E5 movx A, @DPTR +ROM:65E6 mov R6, A +ROM:65E7 inc DPTR +ROM:65E8 movx A, @DPTR +ROM:65E9 mov R7, A +ROM:65EA mov DPTR, #0xFB96 +ROM:65ED movx A, @DPTR +ROM:65EE xrl A, R6 +ROM:65EF jnz ROM_65F4 +ROM:65F1 inc DPTR +ROM:65F2 movx A, @DPTR +ROM:65F3 xrl A, R7 +ROM:65F4 +ROM:65F4 ROM_65F4: ; CODE XREF: ROM_436B+2284↑j +ROM:65F4 jnz ROM_6632 +ROM:65F6 mov R7, A +ROM:65F7 lcall ROM_27D4 +ROM:65FA lcall ROM_9D4E +ROM:65FD mov A, #0xA5 +ROM:65FF mov R7, A +ROM:6600 mov R6, A +ROM:6601 mov R5, A +ROM:6602 mov R4, A +ROM:6603 mov DPTR, #0xFC59 +ROM:6606 lcall save_4_bytes_R4_R7 +ROM:6609 mov DPTR, #0xFB9A +ROM:660C movx A, @DPTR +ROM:660D mov R7, A +ROM:660E inc DPTR +ROM:660F movx A, @DPTR +ROM:6610 mov DPTR, #0xFC5D +ROM:6613 xch A, R7 +ROM:6614 movx @DPTR, A +ROM:6615 inc DPTR +ROM:6616 mov A, R7 +ROM:6617 movx @DPTR, A +ROM:6618 clr A +ROM:6619 mov R7, #0xFA +ROM:661B mov R6, #0x6F ; 'o' +ROM:661D mov R5, A +ROM:661E mov R4, A +ROM:661F mov R3, #1 +ROM:6621 mov R2, #0xFC +ROM:6623 mov R1, #0x59 ; 'Y' +ROM:6625 mov DPTR, #0xF83E +ROM:6628 movx @DPTR, A +ROM:6629 inc DPTR +ROM:662A mov A, #6 +ROM:662C movx @DPTR, A +ROM:662D acall ROM_67A3 +ROM:662F +ROM:662F ROM_662F: ; CODE XREF: ROM_436B+21AB↑j +ROM:662F ljmp ROM_D1D9 +ROM:662F ; END OF FUNCTION CHUNK FOR ROM_436B +ROM:6632 +ROM:6632 ; =============== S U B R O U T I N E ======================================= +ROM:6632 +ROM:6632 +ROM:6632 ROM_6632: ; CODE XREF: ROM_436B+211D↑j +ROM:6632 ; ROM_436B:ROM_65F4↑j ... +ROM:6632 mov R5, #4 +ROM:6634 mov R7, #0xFA +ROM:6636 ljmp ROM_2FC0 +ROM:6636 ; End of function ROM_6632 +ROM:6636 +ROM:6639 +ROM:6639 ; =============== S U B R O U T I N E ======================================= +ROM:6639 +ROM:6639 +ROM:6639 ROM_6639: ; CODE XREF: ROM_62A4+4C↑p +ROM:6639 ; ROM_62A4+7B↑p +ROM:6639 mov R0, #0x48 ; 'H' +ROM:663B mov R4, #0xF8 +ROM:663B ; End of function ROM_6639 +ROM:663B +ROM:663D +ROM:663D ; =============== S U B R O U T I N E ======================================= +ROM:663D +ROM:663D +ROM:663D ROM_663D: ; CODE XREF: ROM_549C+107↑p +ROM:663D ; ROM_62A4+15↑p ... +ROM:663D mov R5, #1 +ROM:663F mov R6, #0 +ROM:6641 mov R7, #2 +ROM:6643 ljmp code_86B +ROM:6643 ; End of function ROM_663D +ROM:6643 +ROM:6646 +ROM:6646 ; =============== S U B R O U T I N E ======================================= +ROM:6646 +ROM:6646 +ROM:6646 ROM_6646: ; CODE XREF: ROM_62A4+2F↑p +ROM:6646 ; ROM_436B+2172↑p ... +ROM:6646 mov R5, #1 +ROM:6646 ; End of function ROM_6646 +ROM:6646 +ROM:6648 +ROM:6648 ; =============== S U B R O U T I N E ======================================= +ROM:6648 +ROM:6648 +ROM:6648 ROM_6648: ; CODE XREF: ROM_62A4+48↑p +ROM:6648 mov R6, #0 +ROM:664A mov R7, #4 +ROM:664C ljmp code_86B +ROM:664C ; End of function ROM_6648 +ROM:664C +ROM:664F +ROM:664F ; =============== S U B R O U T I N E ======================================= +ROM:664F +ROM:664F +ROM:664F ROM_664F: ; CODE XREF: ROM_436B+21F7↑p +ROM:664F ; ROM_436B+2222↑p ... +ROM:664F movx @DPTR, A +ROM:6650 mov DPTR, #0xFB9A +ROM:6653 movx A, @DPTR +ROM:6654 addc A, #0 +ROM:6656 ret +ROM:6656 ; End of function ROM_664F +ROM:6656 +ROM:6657 +ROM:6657 ; =============== S U B R O U T I N E ======================================= +ROM:6657 +ROM:6657 +ROM:6657 ROM_6657: ; CODE XREF: ROM_62A4+31↑p +ROM:6657 ; ROM_62A4+5C↑p +ROM:6657 mov DPTR, #0xF841 +ROM:665A movx A, @DPTR +ROM:665B mov R6, A +ROM:665C inc DPTR +ROM:665D movx A, @DPTR +ROM:665E ret +ROM:665E ; End of function ROM_6657 +ROM:665E +ROM:665F +ROM:665F ; =============== S U B R O U T I N E ======================================= +ROM:665F +ROM:665F +ROM:665F ROM_665F: ; CODE XREF: ROM_436B+2202↑p +ROM:665F ; ROM_436B+223D↑p +ROM:665F clr A +ROM:6660 mov R7, A +ROM:6661 lcall ROM_27D4 +ROM:6664 mov DPTR, #0xF831 +ROM:6667 movx A, @DPTR +ROM:6668 ret +ROM:6668 ; End of function ROM_665F +ROM:6668 +ROM:6669 +ROM:6669 ; =============== S U B R O U T I N E ======================================= +ROM:6669 +ROM:6669 +ROM:6669 ROM_6669: ; CODE XREF: ROM_62A4+61↑p +ROM:6669 ; ROM_62A4+90↑p +ROM:6669 mov DPTR, #0xF84A +ROM:666C movx @DPTR, A +ROM:666D mov R3, #1 +ROM:666F mov R2, #0xF8 +ROM:6671 mov R1, #0x46 ; 'F' +ROM:6673 ret +ROM:6673 ; End of function ROM_6669 +ROM:6673 +ROM:6674 +ROM:6674 ; =============== S U B R O U T I N E ======================================= +ROM:6674 +ROM:6674 +ROM:6674 ROM_6674: ; CODE XREF: ROM_436B+2115↑p +ROM:6674 ; ROM_9D4E+28↓p +ROM:6674 mov R7, A +ROM:6674 ; End of function ROM_6674 +ROM:6674 +ROM:6675 +ROM:6675 ; =============== S U B R O U T I N E ======================================= +ROM:6675 +ROM:6675 +ROM:6675 ROM_6675: ; CODE XREF: ROM_436B:ROM_648A↑p +ROM:6675 mov A, #0xA1 +ROM:6677 add A, R3 +ROM:6677 ; End of function ROM_6675 +ROM:6677 +ROM:6678 +ROM:6678 ; =============== S U B R O U T I N E ======================================= +ROM:6678 +ROM:6678 +ROM:6678 ROM_6678: ; CODE XREF: ROM_9D4E+6C↓p +ROM:6678 mov DP0L, A ; Data Pointer Low Byte +ROM:667A clr A +ROM:667B addc A, #0xFB +ROM:667D mov DP0H, A ; Data Pointer High Byte +ROM:667F ret +ROM:667F ; End of function ROM_6678 +ROM:667F +ROM:6680 +ROM:6680 ; =============== S U B R O U T I N E ======================================= +ROM:6680 +ROM:6680 +ROM:6680 ROM_6680: ; CODE XREF: ROM_436B+2259↑p +ROM:6680 mov R7, #1 +ROM:6682 lcall ROM_27D4 +ROM:6685 mov DPTR, #0xF53C +ROM:6688 movx A, @DPTR +ROM:6689 mov R7, A +ROM:6689 ; End of function ROM_6680 +ROM:6689 +ROM:668A +ROM:668A ; =============== S U B R O U T I N E ======================================= +ROM:668A +ROM:668A +ROM:668A ROM_668A: ; CODE XREF: ROM_30A0+C↑p +ROM:668A ; ROM_A044+65↓p ... +ROM:668A mov R6, RAM_7 +ROM:668C mov A, R6 +ROM:668D add A, #0xF5 +ROM:668F lcall ROM_A0C0 +ROM:6692 jnc ROM_669C +ROM:6694 lcall ROM_A647 +ROM:6697 mov DPTR, #0xF712 +ROM:669A mov A, R7 +ROM:669B movx @DPTR, A +ROM:669C +ROM:669C ROM_669C: ; CODE XREF: ROM_668A+8↑j +ROM:669C ret +ROM:669C ; End of function ROM_668A +ROM:669C +ROM:669C ; --------------------------------------------------------------------------- +ROM:669D .byte 0x90 +ROM:669E .byte 0xF8 +ROM:669F .byte 0x28 ; ( +ROM:66A0 .byte 0xEF +ROM:66A1 .byte 0xF0 +ROM:66A2 .byte 0xA3 +ROM:66A3 .byte 0xED +ROM:66A4 .byte 0xF0 +ROM:66A5 .byte 0xF1 +ROM:66A6 .byte 0x89 +ROM:66A7 .byte 0x7B ; { +ROM:66A8 .byte 0xFF +ROM:66A9 .byte 0x7A ; z +ROM:66AA .byte 4 +ROM:66AB .byte 0x79 ; y +ROM:66AC .byte 0xF7 +ROM:66AD .byte 0xD1 +ROM:66AE .byte 0x48 ; H +ROM:66AF .byte 0xF1 +ROM:66B0 .byte 0x90 +ROM:66B1 .byte 0x7B ; { +ROM:66B2 .byte 1 +ROM:66B3 .byte 0x7A ; z +ROM:66B4 .byte 0xFD +ROM:66B5 .byte 0x79 ; y +ROM:66B6 .byte 0x3A ; : +ROM:66B7 .byte 0x12 +ROM:66B8 .byte 0xE +ROM:66B9 .byte 0xA0 +ROM:66BA .byte 0x90 +ROM:66BB .byte 0xFD +ROM:66BC .byte 3 +ROM:66BD .byte 0xE0 +ROM:66BE .byte 0x90 +ROM:66BF .byte 0xFD +ROM:66C0 .byte 0x3B ; ; +ROM:66C1 .byte 0xF0 +ROM:66C2 .byte 0x90 +ROM:66C3 .byte 0xFD +ROM:66C4 .byte 4 +ROM:66C5 .byte 0xE0 +ROM:66C6 .byte 0x90 +ROM:66C7 .byte 0xFD +ROM:66C8 .byte 0x3A ; : +ROM:66C9 .byte 0x12 +ROM:66CA .byte 0x98 +ROM:66CB .byte 0x5D ; ] +ROM:66CC .byte 0xE4 +ROM:66CD .byte 0x90 +ROM:66CE .byte 0xFD +ROM:66CF .byte 0x30 ; 0 +ROM:66D0 .byte 0xF0 +ROM:66D1 .byte 0xA3 +ROM:66D2 .byte 0xF0 +ROM:66D3 .byte 0x90 +ROM:66D4 .byte 0xFD +ROM:66D5 .byte 0x2E ; . +ROM:66D6 .byte 0xF0 +ROM:66D7 .byte 0xA3 +ROM:66D8 .byte 0xF0 +ROM:66D9 .byte 0xFF +ROM:66DA .byte 0xFE +ROM:66DB .byte 0xFD +ROM:66DC .byte 0xFC +ROM:66DD .byte 0x90 +ROM:66DE .byte 0xFD +ROM:66DF .byte 0x2A ; * +ROM:66E0 .byte 0x12 +ROM:66E1 .byte 0xB +ROM:66E2 .byte 0xE2 +ROM:66E3 .byte 0x90 +ROM:66E4 .byte 0xFD +ROM:66E5 .byte 1 +ROM:66E6 .byte 0x12 +ROM:66E7 .byte 0x6F ; o +ROM:66E8 .byte 0xB9 +ROM:66E9 .byte 0x70 ; p +ROM:66EA .byte 0x40 ; @ +ROM:66EB .byte 0x12 +ROM:66EC .byte 0x6F ; o +ROM:66ED .byte 0xAE +ROM:66EE .byte 0x70 ; p +ROM:66EF .byte 0x3B ; ; +ROM:66F0 .byte 0x90 +ROM:66F1 .byte 0xF8 +ROM:66F2 .byte 0x29 ; ) +ROM:66F3 .byte 0xE0 +ROM:66F4 .byte 0x24 ; $ +ROM:66F5 .byte 0xFD +ROM:66F6 .byte 0x60 ; ` +ROM:66F7 .byte 0x21 ; ! +ROM:66F8 .byte 0x24 ; $ +ROM:66F9 .byte 2 +ROM:66FA .byte 0x70 ; p +ROM:66FB .byte 0x2F ; / +ROM:66FC .byte 0x90 +ROM:66FD .byte 0xFD +ROM:66FE .byte 6 +ROM:66FF .byte 0xE0 +ROM:6700 .byte 0xFF +ROM:6701 .byte 0x90 +ROM:6702 .byte 0xFD +ROM:6703 .byte 0x30 ; 0 +ROM:6704 .byte 0x12 +ROM:6705 .byte 0x98 +ROM:6706 .byte 0x67 ; g +ROM:6707 .byte 0x90 +ROM:6708 .byte 0xFD +ROM:6709 .byte 0x30 ; 0 +ROM:670A .byte 0xF0 +ROM:670B .byte 0x90 +ROM:670C .byte 0xFD +ROM:670D .byte 7 +ROM:670E .byte 0x12 +ROM:670F .byte 0xD6 +ROM:6710 .byte 0x91 +ROM:6711 .byte 0x12 +ROM:6712 .byte 0x27 ; ' +ROM:6713 .byte 0xB8 +ROM:6714 .byte 0x7F ;  +ROM:6715 .byte 1 +ROM:6716 .byte 2 +ROM:6717 .byte 0x69 ; i +ROM:6718 .byte 0x36 ; 6 +ROM:6719 .byte 0x90 +ROM:671A .byte 0xFC +ROM:671B .byte 0xFD +ROM:671C .byte 0xF1 +ROM:671D .byte 0x32 ; 2 +ROM:671E .byte 0x12 +ROM:671F .byte 0x27 ; ' +ROM:6720 .byte 0xB8 +ROM:6721 .byte 0x90 +ROM:6722 .byte 0xF8 +ROM:6723 .byte 0x28 ; ( +ROM:6724 .byte 0xE0 +ROM:6725 .byte 0xFF +ROM:6726 .byte 0xE4 +ROM:6727 .byte 0xFD +ROM:6728 .byte 0x12 +ROM:6729 .byte 0x94 +ROM:672A .byte 0x11 +ROM:672B .byte 0x22 ; " +ROM:672C +ROM:672C ; =============== S U B R O U T I N E ======================================= +ROM:672C +ROM:672C +ROM:672C ROM_672C: ; CODE XREF: ROM_A044-3515↓p +ROM:672C ; ROM_784C+39↓p +ROM:672C lcall ROM_D8AA +ROM:672F ljmp code_86B +ROM:672F ; End of function ROM_672C +ROM:672F +ROM:672F ; --------------------------------------------------------------------------- +ROM:6732 .byte 0xE0 +ROM:6733 .byte 0xFE +ROM:6734 .byte 0xA3 +ROM:6735 .byte 0xE0 +ROM:6736 .byte 0xFF +ROM:6737 +ROM:6737 ; =============== S U B R O U T I N E ======================================= +ROM:6737 +ROM:6737 +ROM:6737 setup_panID_ROM_6737: ; CODE XREF: ROM_61D7+4C↑p +ROM:6737 mov RAM_8, R6 +ROM:6739 mov RAM_9, R7 +ROM:673B mov DPTR, #0xDF90 +ROM:673E mov A, R6 +ROM:673F movx @DPTR, A +ROM:6740 inc DPTR +ROM:6741 mov A, R7 +ROM:6742 movx @DPTR, A +ROM:6743 ret +ROM:6743 ; End of function setup_panID_ROM_6737 +ROM:6743 +ROM:6744 +ROM:6744 ; =============== S U B R O U T I N E ======================================= +ROM:6744 +ROM:6744 +ROM:6744 ROM_6744: ; CODE XREF: ROM_61D7+98↑p +ROM:6744 acall ROM_6789 +ROM:6746 mov R3, #0xFF +ROM:6748 mov R2, #0x1D +ROM:674A mov R1, #0x31 ; '1' +ROM:674C acall ROM_6782 +ROM:674E mov R0, #0x3A ; ':' +ROM:6750 mov R4, #0xF8 +ROM:6752 mov R5, #1 +ROM:6754 mov R3, #0xFF +ROM:6756 mov R2, #0x1D +ROM:6758 mov R1, #0x41 ; 'A' +ROM:675A acall ROM_6782 +ROM:675C mov R0, #0x11 +ROM:675E mov R4, #0xFE +ROM:6760 mov R5, #1 +ROM:6762 mov R3, #1 +ROM:6764 mov R2, #0xF8 +ROM:6766 mov R1, #0x2A ; '*' +ROM:6768 acall ROM_6782 +ROM:676A mov R0, #0x21 ; '!' +ROM:676C mov R4, #0xFE +ROM:676E mov R5, #1 +ROM:6770 mov R3, #1 +ROM:6772 mov R2, #0xF8 +ROM:6774 mov R1, #0x3A ; ':' +ROM:6776 acall ROM_6782 +ROM:6778 mov DPTR, #0xFE31 +ROM:677B mov A, #1 +ROM:677D movx @DPTR, A +ROM:677E clr A +ROM:677F inc DPTR +ROM:6780 movx @DPTR, A +ROM:6781 ret +ROM:6781 ; End of function ROM_6744 +ROM:6781 +ROM:6782 +ROM:6782 ; =============== S U B R O U T I N E ======================================= +ROM:6782 +ROM:6782 +ROM:6782 ROM_6782: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+C↑p +ROM:6782 ; ROM_6744+8↑p ... +ROM:6782 mov R6, #0 +ROM:6784 mov R7, #0x10 +ROM:6786 ljmp code_86B +ROM:6786 ; End of function ROM_6782 +ROM:6786 +ROM:6789 +ROM:6789 ; =============== S U B R O U T I N E ======================================= +ROM:6789 +ROM:6789 +ROM:6789 ROM_6789: ; CODE XREF: ROM_6744↑p +ROM:6789 ; ROM_6BA0↓p +ROM:6789 mov R0, #0x2A ; '*' +ROM:678B mov R4, #0xF8 +ROM:678D mov R5, #1 +ROM:678F ret +ROM:678F ; End of function ROM_6789 +ROM:678F +ROM:6790 +ROM:6790 ; =============== S U B R O U T I N E ======================================= +ROM:6790 +ROM:6790 +ROM:6790 ROM_6790: ; CODE XREF: ROM_61D7+1F↑p +ROM:6790 mov R6, #0 +ROM:6792 mov R7, #8 +ROM:6794 mov R5, #0 +ROM:6796 ret +ROM:6796 ; End of function ROM_6790 +ROM:6796 +ROM:6797 +ROM:6797 ; =============== S U B R O U T I N E ======================================= +ROM:6797 +ROM:6797 +ROM:6797 ROM_6797: ; CODE XREF: ROM_436B:ROM_44E6↑p +ROM:6797 ; ROM_436B:ROM_63FD↑p +ROM:6797 mov DPTR, #0xF830 +ROM:6797 ; End of function ROM_6797 +ROM:6797 +ROM:679A +ROM:679A ; =============== S U B R O U T I N E ======================================= +ROM:679A +ROM:679A +ROM:679A ROM_679A: ; CODE XREF: ROM_62A4+3↑p +ROM:679A ; ROM_A044-3631↓p ... +ROM:679A mov A, R6 +ROM:679B movx @DPTR, A +ROM:679C inc DPTR +ROM:679D mov A, R7 +ROM:679E movx @DPTR, A +ROM:679F inc DPTR +ROM:67A0 mov A, R5 +ROM:67A1 movx @DPTR, A +ROM:67A2 ret +ROM:67A2 ; End of function ROM_679A +ROM:67A2 +ROM:67A3 +ROM:67A3 ; =============== S U B R O U T I N E ======================================= +ROM:67A3 +ROM:67A3 +ROM:67A3 ROM_67A3: ; CODE XREF: ROM_436B+2257↑p +ROM:67A3 ; ROM_436B+22C2↑p +ROM:67A3 +ROM:67A3 ; FUNCTION CHUNK AT ROM:30F4 SIZE 00000181 BYTES +ROM:67A3 +ROM:67A3 acall ROM_67CF +ROM:67A5 mov DPTR, #0xF83B +ROM:67A8 lcall Save_3_bytes_R3_R2_R1 +ROM:67AB lcall SetupPinsForEEProm +ROM:67AE mov DPTR, #0xF83B +ROM:67B1 lcall ROM_37C3 +ROM:67B4 lcall ROM_9CF6 +ROM:67B7 mov DPTR, #0xF892 +ROM:67BA xch A, R7 +ROM:67BB movx @DPTR, A +ROM:67BC inc DPTR +ROM:67BD mov A, R7 +ROM:67BE movx @DPTR, A +ROM:67BF mov DPTR, #0xF837 +ROM:67C2 lcall load_4_bytes_R4_R5_R6_A +ROM:67C5 mov R7, A +ROM:67C6 ljmp ROM_30F4 +ROM:67C6 ; End of function ROM_67A3 +ROM:67C6 +ROM:67C9 +ROM:67C9 ; =============== S U B R O U T I N E ======================================= +ROM:67C9 +ROM:67C9 +ROM:67C9 ROM_67C9: ; CODE XREF: ROM_61D7+55↑p +ROM:67C9 mov DPTR, #0xFFE6 +ROM:67CC movx A, @DPTR +ROM:67CD mov R7, A +ROM:67CE ret +ROM:67CE ; End of function ROM_67C9 +ROM:67CE +ROM:67CF +ROM:67CF ; =============== S U B R O U T I N E ======================================= +ROM:67CF +ROM:67CF +ROM:67CF ROM_67CF: ; CODE XREF: ROM_67A3↑p +ROM:67CF ; ROM_91AA+2E↓p ... +ROM:67CF mov DPTR, #0xF837 +ROM:67D2 ljmp save_4_bytes_R4_R7 +ROM:67D2 ; End of function ROM_67CF +ROM:67D2 +ROM:67D5 +ROM:67D5 ; =============== S U B R O U T I N E ======================================= +ROM:67D5 +ROM:67D5 +ROM:67D5 ROM_67D5: ; CODE XREF: code_1F13+18↑p +ROM:67D5 ; ROM_9CCA-7D58↑p ... +ROM:67D5 mov R7, A +ROM:67D6 mov R0, #0x10 +ROM:67D8 ljmp rotate_4_bytes_R4_R7_by_R0_rotations +ROM:67D8 ; End of function ROM_67D5 +ROM:67D8 +ROM:67DB +ROM:67DB ; =============== S U B R O U T I N E ======================================= +ROM:67DB +ROM:67DB +ROM:67DB ROM_67DB: ; CODE XREF: ROM_6849:ROM_68C4↓p +ROM:67DB mov DPTR, #0xF506 +ROM:67DE movx A, @DPTR +ROM:67DF jz ROM_683A +ROM:67E1 xrl A, #3 +ROM:67E3 jz ROM_683A +ROM:67E5 mov DPTR, #0xFEAC +ROM:67E8 movx A, @DPTR +ROM:67E9 xrl A, #3 +ROM:67EB jnz ROM_6814 +ROM:67ED lcall ROM_6842 +ROM:67F0 jnz ROM_67F6 +ROM:67F2 mov R7, #0x8D +ROM:67F4 sjmp ROM_680A +ROM:67F6 ; --------------------------------------------------------------------------- +ROM:67F6 +ROM:67F6 ROM_67F6: ; CODE XREF: ROM_67DB+15↑j +ROM:67F6 lcall ROM_683B +ROM:67F9 jnz ROM_67FF +ROM:67FB mov R7, #0x82 +ROM:67FD sjmp ROM_680A +ROM:67FF ; --------------------------------------------------------------------------- +ROM:67FF +ROM:67FF ROM_67FF: ; CODE XREF: ROM_67DB+1E↑j +ROM:67FF lcall ROM_2799 +ROM:6802 jnz ROM_6808 +ROM:6804 mov R7, #0x83 +ROM:6806 sjmp ROM_680A +ROM:6808 ; --------------------------------------------------------------------------- +ROM:6808 +ROM:6808 ROM_6808: ; CODE XREF: ROM_67DB+27↑j +ROM:6808 mov R7, #1 +ROM:680A +ROM:680A ROM_680A: ; CODE XREF: ROM_67DB+19↑j +ROM:680A ; ROM_67DB+22↑j ... +ROM:680A lcall ROM_2153 +ROM:680D mov DPTR, #0xFEAC +ROM:6810 mov A, #4 +ROM:6812 sjmp ROM_6835 +ROM:6814 ; --------------------------------------------------------------------------- +ROM:6814 +ROM:6814 ROM_6814: ; CODE XREF: ROM_67DB+10↑j +ROM:6814 mov DPTR, #0xFEAC +ROM:6817 movx A, @DPTR +ROM:6818 jnz ROM_683A +ROM:681A acall ROM_683B +ROM:681C jnz ROM_6822 +ROM:681E mov R7, #0x82 +ROM:6820 sjmp ROM_682D +ROM:6822 ; --------------------------------------------------------------------------- +ROM:6822 +ROM:6822 ROM_6822: ; CODE XREF: ROM_67DB+41↑j +ROM:6822 lcall ROM_2799 +ROM:6825 jnz ROM_682B +ROM:6827 mov R7, #0x83 +ROM:6829 sjmp ROM_682D +ROM:682B ; --------------------------------------------------------------------------- +ROM:682B +ROM:682B ROM_682B: ; CODE XREF: ROM_67DB+4A↑j +ROM:682B mov R7, #1 +ROM:682D +ROM:682D ROM_682D: ; CODE XREF: ROM_67DB+45↑j +ROM:682D ; ROM_67DB+4E↑j +ROM:682D lcall ROM_2153 +ROM:6830 mov DPTR, #0xFEAC +ROM:6833 mov A, #1 +ROM:6835 +ROM:6835 ROM_6835: ; CODE XREF: ROM_67DB+37↑j +ROM:6835 movx @DPTR, A +ROM:6836 mov DPTR, #0xFFE8 +ROM:6839 movx @DPTR, A +ROM:683A +ROM:683A ROM_683A: ; CODE XREF: ROM_67DB+4↑j +ROM:683A ; ROM_67DB+8↑j ... +ROM:683A ret +ROM:683A ; End of function ROM_67DB +ROM:683A +ROM:683B +ROM:683B ; =============== S U B R O U T I N E ======================================= +ROM:683B +ROM:683B +ROM:683B ROM_683B: ; CODE XREF: ROM_4816:ROM_22AE↑p +ROM:683B ; ROM_4816:ROM_233F↑p ... +ROM:683B mov DPTR, #0xFDD0 +ROM:683E movx A, @DPTR +ROM:683F xrl A, #2 +ROM:6841 ret +ROM:6841 ; End of function ROM_683B +ROM:6841 +ROM:6842 +ROM:6842 ; =============== S U B R O U T I N E ======================================= +ROM:6842 +ROM:6842 +ROM:6842 ROM_6842: ; CODE XREF: ROM:2032↑p +ROM:6842 ; ROM_2D8F+3F↑p ... +ROM:6842 mov DPTR, #0xF506 +ROM:6845 movx A, @DPTR +ROM:6846 xrl A, #6 +ROM:6848 ret +ROM:6848 ; End of function ROM_6842 +ROM:6848 +ROM:6849 +ROM:6849 ; =============== S U B R O U T I N E ======================================= +ROM:6849 +ROM:6849 +ROM:6849 ROM_6849: ; CODE XREF: start_0:code_1E47↑p +ROM:6849 clr A +ROM:684A mov DPTR, #0xF824 +ROM:684D movx @DPTR, A +ROM:684E lcall ROM_30E7 +ROM:6851 +ROM:6851 ROM_6851: ; CODE XREF: ROM_6849+16↓j +ROM:6851 ; ROM_6849+26↓j ... +ROM:6851 mov DPTR, #0xFDD4 +ROM:6854 movx A, @DPTR +ROM:6855 jnz ROM_687E +ROM:6857 lcall ROM_49FD +ROM:685A lcall ROM_4816 +ROM:685D acall ROM_695B +ROM:685F jnz ROM_6851 +ROM:6861 mov DPTR, #0xF826 +ROM:6864 movx A, @DPTR +ROM:6865 inc A +ROM:6866 movx @DPTR, A +ROM:6867 movx A, @DPTR +ROM:6868 setb C +ROM:6869 subb A, #0xFA +ROM:686B mov A, #0x80 +ROM:686D subb A, #0x80 +ROM:686F jc ROM_6851 +ROM:6871 clr A +ROM:6872 movx @DPTR, A +ROM:6873 mov R7, A +ROM:6874 lcall ROM_27D4 +ROM:6877 mov R7, #1 +ROM:6879 lcall ROM_D833 +ROM:687C sjmp ROM_6851 +ROM:687E ; --------------------------------------------------------------------------- +ROM:687E +ROM:687E ROM_687E: ; CODE XREF: ROM_6849+C↑j +ROM:687E mov DPTR, #0xF541 +ROM:6881 movx A, @DPTR +ROM:6882 xrl A, #1 +ROM:6884 jnz ROM_6893 +ROM:6886 lcall ROM_27B1 +ROM:6889 jnz ROM_688E +ROM:688B lcall code_1E6A +ROM:688E +ROM:688E ROM_688E: ; CODE XREF: ROM_6849+40↑j +ROM:688E mov R7, #0x18 +ROM:6890 lcall code_1FF4 +ROM:6893 +ROM:6893 ROM_6893: ; CODE XREF: ROM_6849+3B↑j +ROM:6893 mov DPTR, #0xFDD3 +ROM:6896 movx A, @DPTR +ROM:6897 xrl A, #1 +ROM:6899 jnz ROM_68C4 +ROM:689B lcall ROM_9A40 +ROM:689E mov DPTR, #0xF824 +ROM:68A1 lcall ROM_9B72 +ROM:68A4 mov DPTR, #0xF824 +ROM:68A7 lcall ROM_D34A +ROM:68AA jc ROM_68C4 +ROM:68AC lcall ROM_27B1 +ROM:68AF jnz ROM_68C4 +ROM:68B1 lcall ROM_2799 +ROM:68B4 jnz ROM_68BA +ROM:68B6 mov R7, #0x83 +ROM:68B8 sjmp ROM_68BC +ROM:68BA ; --------------------------------------------------------------------------- +ROM:68BA +ROM:68BA ROM_68BA: ; CODE XREF: ROM_6849+6B↑j +ROM:68BA mov R7, #1 +ROM:68BC +ROM:68BC ROM_68BC: ; CODE XREF: ROM_6849+6F↑j +ROM:68BC lcall ROM_2153 +ROM:68BF clr A +ROM:68C0 mov DPTR, #0xFDD3 +ROM:68C3 movx @DPTR, A +ROM:68C4 +ROM:68C4 ROM_68C4: ; CODE XREF: ROM_6849+50↑j +ROM:68C4 ; ROM_6849+61↑j ... +ROM:68C4 lcall ROM_67DB +ROM:68C7 mov DPTR, #0xFEAC +ROM:68CA movx A, @DPTR +ROM:68CB mov R7, A +ROM:68CC xrl A, #4 +ROM:68CE jz ROM_68D5 +ROM:68D0 mov A, R7 +ROM:68D1 xrl A, #1 +ROM:68D3 jnz ROM_68DE +ROM:68D5 +ROM:68D5 ROM_68D5: ; CODE XREF: ROM_6849+85↑j +ROM:68D5 acall ROM_695B +ROM:68D7 jnz ROM_68DE +ROM:68D9 mov A, #6 +ROM:68DB lcall ROM_2E62 +ROM:68DE +ROM:68DE ROM_68DE: ; CODE XREF: ROM_6849+8A↑j +ROM:68DE ; ROM_6849+8E↑j +ROM:68DE mov DPTR, #0xF53A +ROM:68E1 movx A, @DPTR +ROM:68E2 xrl A, #1 +ROM:68E4 jnz ROM_6902 +ROM:68E6 lcall ROM_6288 +ROM:68E9 lcall ROM_27F5 +ROM:68EC mov DPTR, #0xF48C +ROM:68EF mov A, #0x80 +ROM:68F1 movx @DPTR, A +ROM:68F2 inc DPTR +ROM:68F3 clr A +ROM:68F4 movx @DPTR, A +ROM:68F5 mov DPTR, #0xFDC7 +ROM:68F8 movx @DPTR, A +ROM:68F9 mov R7, A +ROM:68FA lcall ROM_28FE +ROM:68FD +ROM:68FD ROM_68FD: ; CODE XREF: ROM_6849+B7↓j +ROM:68FD lcall Something_eeprom_ROM_5FE9 +ROM:6900 sjmp ROM_68FD +ROM:6902 ; --------------------------------------------------------------------------- +ROM:6902 +ROM:6902 ROM_6902: ; CODE XREF: ROM_6849+9B↑j +ROM:6902 lcall ROM_D4AC +ROM:6905 clr A +ROM:6906 mov R7, A +ROM:6907 lcall ROM_A7D1 +ROM:690A mov DPTR, #0xF518 +ROM:690D lcall load_4_bytes_R4_R5_R6_A +ROM:6910 lcall ROM_3736 +ROM:6913 mov R4, A +ROM:6914 mov DPTR, #0xF518 +ROM:6917 lcall save_4_bytes_R4_R7 +ROM:691A lcall Radio_Unk_Cmd_ROM_97BE +ROM:691D lcall ROM_2815 +ROM:6920 mov A, R7 +ROM:6921 jz ROM_692A +ROM:6923 lcall ROM_8C31 +ROM:6926 mov R7, #2 +ROM:6928 sjmp ROM_6936 +ROM:692A ; --------------------------------------------------------------------------- +ROM:692A +ROM:692A ROM_692A: ; CODE XREF: ROM_6849+D8↑j +ROM:692A mov DPTR, #0xFDAC +ROM:692D lcall load_4_bytes_R4_R5_R6_A +ROM:6930 mov R7, A +ROM:6931 lcall ROM_3588 +ROM:6934 mov R7, #3 +ROM:6934 ; End of function ROM_6849 +ROM:6934 +ROM:6936 +ROM:6936 ; =============== S U B R O U T I N E ======================================= +ROM:6936 +ROM:6936 +ROM:6936 ROM_6936: ; CODE XREF: ROM_2E9D+9C↑p +ROM:6936 ; ROM_436B+2E3↑j ... +ROM:6936 setb C +ROM:6937 jbc EA, ROM_693B ; Interrupt Enable Register 0 +ROM:693A clr C +ROM:693B +ROM:693B ROM_693B: ; CODE XREF: ROM_6936+1↑j +ROM:693B clr A +ROM:693C rlc A +ROM:693D mov DPTR, #0xFEC0 +ROM:6940 movx @DPTR, A +ROM:6941 mov DPTR, #0xFEC1 +ROM:6944 lcall ROM_A1B3 +ROM:6947 sjmp ROM_694B +ROM:6949 ; --------------------------------------------------------------------------- +ROM:6949 +ROM:6949 ROM_6949: ; CODE XREF: ROM_6936:ROM_694B↓j +ROM:6949 clr C +ROM:694A rlc A +ROM:694B +ROM:694B ROM_694B: ; CODE XREF: ROM_6936+11↑j +ROM:694B djnz R0, ROM_6949 +ROM:694D orl A, R6 +ROM:694E mov DPTR, #0xFEC1 +ROM:6951 movx @DPTR, A +ROM:6952 mov DPTR, #0xFEC0 +ROM:6955 movx A, @DPTR +ROM:6956 add A, #0xFF +ROM:6958 mov EA, C ; Interrupt Enable Register 0 +ROM:695A ret +ROM:695A ; End of function ROM_6936 +ROM:695A +ROM:695B +ROM:695B ; =============== S U B R O U T I N E ======================================= +ROM:695B +ROM:695B +ROM:695B ROM_695B: ; CODE XREF: ROM_4816:ROM_23AC↑p +ROM:695B ; ROM_436B-28↑p ... +ROM:695B mov DPTR, #0xFDC6 +ROM:695E movx A, @DPTR +ROM:695F xrl A, #8 +ROM:6961 ret +ROM:6961 ; End of function ROM_695B +ROM:6961 +ROM:6962 +ROM:6962 ; =============== S U B R O U T I N E ======================================= +ROM:6962 +ROM:6962 +ROM:6962 ROM_6962: ; CODE XREF: ROM_4816:ROM_225D↑p +ROM:6962 ; ROM_4816-25A4↑p ... +ROM:6962 lcall j_encryption_something_maybe_code_107D +ROM:6965 mov R6, #0 +ROM:6967 mov A, R7 +ROM:6968 anl A, #0x1E +ROM:696A mov R7, A +ROM:696B clr A +ROM:696C mov R4, A +ROM:696D mov R5, A +ROM:696E mov DPTR, #0xF849 +ROM:6971 lcall save_4_bytes_R4_R7 +ROM:6974 mov DPTR, #0xFB7A +ROM:6977 movx A, @DPTR +ROM:6978 jnz ROM_697C +ROM:697A inc DPTR +ROM:697B movx A, @DPTR +ROM:697C +ROM:697C ROM_697C: ; CODE XREF: ROM_6962+16↑j +ROM:697C jnz ROM_698C +ROM:697E mov DPTR, #0xF849 +ROM:6981 lcall ROM_578E +ROM:6984 add A, #0x14 +ROM:6986 mov R7, A +ROM:6987 clr A +ROM:6988 acall ROM_69FC +ROM:698A sjmp ROM_69F2 +ROM:698C ; --------------------------------------------------------------------------- +ROM:698C +ROM:698C ROM_698C: ; CODE XREF: ROM_6962:ROM_697C↑j +ROM:698C mov DPTR, #0xFB7E +ROM:698F movx A, @DPTR +ROM:6990 mov R1, A +ROM:6991 mov R7, A +ROM:6992 mov DPTR, #0xFB7C +ROM:6995 movx A, @DPTR +ROM:6996 mov R4, A +ROM:6997 inc DPTR +ROM:6998 movx A, @DPTR +ROM:6999 mov R5, A +ROM:699A setb C +ROM:699B subb A, R7 +ROM:699C mov A, R4 +ROM:699D subb A, #0 +ROM:699F jnc ROM_69B1 +ROM:69A1 mov A, R1 +ROM:69A2 clr C +ROM:69A3 subb A, R5 +ROM:69A4 mov R7, A +ROM:69A5 clr A +ROM:69A6 subb A, R4 +ROM:69A7 acall ROM_6A05 +ROM:69A9 lcall ROM_578E +ROM:69AC add A, R3 +ROM:69AD mov R7, A +ROM:69AE mov A, R2 +ROM:69AF sjmp ROM_69F0 +ROM:69B1 ; --------------------------------------------------------------------------- +ROM:69B1 +ROM:69B1 ROM_69B1: ; CODE XREF: ROM_6962+3D↑j +ROM:69B1 mov DPTR, #0xFB7B +ROM:69B4 movx A, @DPTR +ROM:69B5 add A, #0xCE +ROM:69B7 mov R7, A +ROM:69B8 mov DPTR, #0xFB7A +ROM:69BB movx A, @DPTR +ROM:69BC addc A, #0xFF +ROM:69BE mov R6, A +ROM:69BF lcall ROM_938D +ROM:69C2 clr C +ROM:69C3 subb A, R7 +ROM:69C4 mov A, R2 +ROM:69C5 subb A, R6 +ROM:69C6 jnc ROM_69D4 +ROM:69C8 mov DPTR, #0xF849 +ROM:69CB lcall ROM_578E +ROM:69CE add A, #0x1E +ROM:69D0 mov R7, A +ROM:69D1 clr A +ROM:69D2 sjmp ROM_69F0 +ROM:69D4 ; --------------------------------------------------------------------------- +ROM:69D4 +ROM:69D4 ROM_69D4: ; CODE XREF: ROM_6962+64↑j +ROM:69D4 clr C +ROM:69D5 mov DPTR, #0xFB7B +ROM:69D8 movx A, @DPTR +ROM:69D9 subb A, R3 +ROM:69DA mov R7, A +ROM:69DB mov DPTR, #0xFB7A +ROM:69DE movx A, @DPTR +ROM:69DF subb A, R2 +ROM:69E0 mov R6, A +ROM:69E1 mov A, R1 +ROM:69E2 mov R4, #0 +ROM:69E4 add A, R7 +ROM:69E5 mov R7, A +ROM:69E6 mov A, R4 +ROM:69E7 addc A, R6 +ROM:69E8 acall ROM_6A05 +ROM:69EA lcall ROM_578E +ROM:69ED add A, R3 +ROM:69EE mov R7, A +ROM:69EF mov A, R2 +ROM:69F0 +ROM:69F0 ROM_69F0: ; CODE XREF: ROM_6962+4D↑j +ROM:69F0 ; ROM_6962+70↑j +ROM:69F0 acall ROM_69FC +ROM:69F2 +ROM:69F2 ROM_69F2: ; CODE XREF: ROM_6962+28↑j +ROM:69F2 mov DPTR, #0xF847 +ROM:69F5 acall ROM_6F95 +ROM:69F7 mov R5, #0x64 ; 'd' +ROM:69F9 ljmp multiply_and_add_code_CC9 +ROM:69F9 ; End of function ROM_6962 +ROM:69F9 +ROM:69FC +ROM:69FC ; =============== S U B R O U T I N E ======================================= +ROM:69FC +ROM:69FC +ROM:69FC ROM_69FC: ; CODE XREF: ROM_6962+26↑p +ROM:69FC ; ROM_6962:ROM_69F0↑p +ROM:69FC addc A, R6 +ROM:69FD mov DPTR, #0xF847 +ROM:6A00 movx @DPTR, A +ROM:6A01 inc DPTR +ROM:6A02 mov A, R7 +ROM:6A03 movx @DPTR, A +ROM:6A04 ret +ROM:6A04 ; End of function ROM_69FC +ROM:6A04 +ROM:6A05 +ROM:6A05 ; =============== S U B R O U T I N E ======================================= +ROM:6A05 +ROM:6A05 +ROM:6A05 ROM_6A05: ; CODE XREF: ROM_6962+45↑p +ROM:6A05 ; ROM_6962+86↑p +ROM:6A05 xch A, R7 +ROM:6A06 add A, #1 +ROM:6A08 mov R3, A +ROM:6A09 clr A +ROM:6A0A addc A, R7 +ROM:6A0B mov R2, A +ROM:6A0C mov DPTR, #0xF849 +ROM:6A0F ret +ROM:6A0F ; End of function ROM_6A05 +ROM:6A0F +ROM:6A10 ; --------------------------------------------------------------------------- +ROM:6A10 ; START OF FUNCTION CHUNK FOR ROM_A044 +ROM:6A10 +ROM:6A10 ROM_6A10: ; CODE XREF: ROM_A044+54↓j +ROM:6A10 mov DPTR, #0xF827 +ROM:6A13 lcall ROM_679A +ROM:6A16 jnz ROM_6A1F +ROM:6A18 mov DPTR, #0xF82E +ROM:6A1B movx @DPTR, A +ROM:6A1C ljmp ROM_2916 +ROM:6A1F ; --------------------------------------------------------------------------- +ROM:6A1F +ROM:6A1F ROM_6A1F: ; CODE XREF: ROM_A044-362E↑j +ROM:6A1F clr A +ROM:6A20 mov DPTR, #0xF82F +ROM:6A23 movx @DPTR, A +ROM:6A24 mov DPTR, #0xF82B +ROM:6A27 inc A +ROM:6A28 movx @DPTR, A +ROM:6A29 +ROM:6A29 ROM_6A29: ; CODE XREF: ROM_A044-355A↓j +ROM:6A29 mov DPTR, #0xF829 +ROM:6A2C acall ROM_6B66 +ROM:6A2E clr C +ROM:6A2F subb A, R7 +ROM:6A30 jc ROM_6A34 +ROM:6A32 ajmp ROM_6AEC +ROM:6A34 ; --------------------------------------------------------------------------- +ROM:6A34 +ROM:6A34 ROM_6A34: ; CODE XREF: ROM_A044-3614↑j +ROM:6A34 clr A +ROM:6A35 inc DPTR +ROM:6A36 movx @DPTR, A +ROM:6A37 +ROM:6A37 ROM_6A37: ; CODE XREF: ROM_A044-3576↓j +ROM:6A37 mov DPTR, #0xF82B +ROM:6A3A lcall ROM_5FE1 +ROM:6A3D jc ROM_6A41 +ROM:6A3F ajmp ROM_6AD0 +ROM:6A41 ; --------------------------------------------------------------------------- +ROM:6A41 +ROM:6A41 ROM_6A41: ; CODE XREF: ROM_A044-3607↑j +ROM:6A41 mov A, R6 +ROM:6A42 lcall ROM_3859 +ROM:6A45 jc ROM_6A49 +ROM:6A47 ajmp ROM_6AD0 +ROM:6A49 ; --------------------------------------------------------------------------- +ROM:6A49 +ROM:6A49 ROM_6A49: ; CODE XREF: ROM_A044-35FF↑j +ROM:6A49 acall ROM_6B7C +ROM:6A4B push DP0H ; Data Pointer High Byte +ROM:6A4D push DP0L ; Data Pointer Low Byte +ROM:6A4F mov DPTR, #0xF82C +ROM:6A52 movx A, @DPTR +ROM:6A53 add A, #0x2F ; '/' +ROM:6A55 acall ROM_6B74 +ROM:6A57 movx A, @DPTR +ROM:6A58 pop DP0L ; Data Pointer Low Byte +ROM:6A5A pop DP0H ; Data Pointer High Byte +ROM:6A5C mov B, #0xF ; B Register +ROM:6A5F lcall code_BEE +ROM:6A62 movx A, @DPTR +ROM:6A63 mov R6, A +ROM:6A64 mov DP0L, R5 ; Data Pointer Low Byte +ROM:6A66 mov DP0H, R4 ; Data Pointer High Byte +ROM:6A68 acall ROM_6B6D +ROM:6A6A movx A, @DPTR +ROM:6A6B mov R7, A +ROM:6A6C mov A, R6 +ROM:6A6D setb C +ROM:6A6E subb A, R7 +ROM:6A6F jc ROM_6AC8 +ROM:6A71 acall ROM_6B63 +ROM:6A73 subb A, R7 +ROM:6A74 mov R5, A +ROM:6A75 mov R4, #0 +ROM:6A77 mov R6, RAM_4 +ROM:6A79 push RAM_5 +ROM:6A7B mov A, #0x2F ; '/' +ROM:6A7D add A, R7 +ROM:6A7E mov R1, A +ROM:6A7F clr A +ROM:6A80 addc A, #0xF8 +ROM:6A82 mov R2, A +ROM:6A83 mov R3, #1 +ROM:6A85 push RAM_1 +ROM:6A87 inc DPTR +ROM:6A88 movx A, @DPTR +ROM:6A89 add A, #0x38 ; '8' +ROM:6A8B mov R1, A +ROM:6A8C clr A +ROM:6A8D addc A, #0xF8 +ROM:6A8F mov R0, RAM_1 +ROM:6A91 mov R4, A +ROM:6A92 mov R5, #1 +ROM:6A94 pop RAM_1 +ROM:6A96 pop RAM_7 +ROM:6A98 lcall code_86B +ROM:6A9B acall ROM_6B63 +ROM:6A9D clr C +ROM:6A9E subb A, R7 +ROM:6A9F mov R5, A +ROM:6AA0 mov R4, #0 +ROM:6AA2 mov R6, RAM_4 +ROM:6AA4 push RAM_5 +ROM:6AA6 mov A, #0x38 ; '8' +ROM:6AA8 add A, R7 +ROM:6AA9 mov R1, A +ROM:6AAA clr A +ROM:6AAB addc A, #0xF8 +ROM:6AAD mov R2, A +ROM:6AAE mov R3, #1 +ROM:6AB0 push RAM_1 +ROM:6AB2 inc DPTR +ROM:6AB3 movx A, @DPTR +ROM:6AB4 add A, #0x30 ; '0' +ROM:6AB6 mov R1, A +ROM:6AB7 clr A +ROM:6AB8 addc A, #0xF8 +ROM:6ABA mov R0, RAM_1 +ROM:6ABC mov R4, A +ROM:6ABD mov R5, #1 +ROM:6ABF pop RAM_1 +ROM:6AC1 pop RAM_7 +ROM:6AC3 lcall code_86B +ROM:6AC6 sjmp ROM_6AD0 +ROM:6AC8 ; --------------------------------------------------------------------------- +ROM:6AC8 +ROM:6AC8 ROM_6AC8: ; CODE XREF: ROM_A044-35D5↑j +ROM:6AC8 mov DPTR, #0xF82C +ROM:6ACB movx A, @DPTR +ROM:6ACC inc A +ROM:6ACD movx @DPTR, A +ROM:6ACE ajmp ROM_6A37 +ROM:6AD0 ; --------------------------------------------------------------------------- +ROM:6AD0 +ROM:6AD0 ROM_6AD0: ; CODE XREF: ROM_A044-3605↑j +ROM:6AD0 ; ROM_A044-35FD↑j ... +ROM:6AD0 mov DPTR, #0xF82C +ROM:6AD3 lcall ROM_3857 +ROM:6AD6 jnc ROM_6AE4 +ROM:6AD8 mov DPTR, #0xF82B +ROM:6ADB movx A, @DPTR +ROM:6ADC mov R6, A +ROM:6ADD mov A, #0x2F ; '/' +ROM:6ADF add A, R7 +ROM:6AE0 acall ROM_6B74 +ROM:6AE2 mov A, R6 +ROM:6AE3 movx @DPTR, A +ROM:6AE4 +ROM:6AE4 ROM_6AE4: ; CODE XREF: ROM_A044-356E↑j +ROM:6AE4 mov DPTR, #0xF82B +ROM:6AE7 movx A, @DPTR +ROM:6AE8 inc A +ROM:6AE9 movx @DPTR, A +ROM:6AEA ajmp ROM_6A29 +ROM:6AEC ; --------------------------------------------------------------------------- +ROM:6AEC +ROM:6AEC ROM_6AEC: ; CODE XREF: ROM_A044-3612↑j +ROM:6AEC clr A +ROM:6AED mov DPTR, #0xF82D +ROM:6AF0 movx @DPTR, A +ROM:6AF1 mov DPTR, #0xF829 +ROM:6AF4 movx A, @DPTR +ROM:6AF5 mov R7, A +ROM:6AF6 setb C +ROM:6AF7 lcall ROM_385A +ROM:6AFA mov DPTR, #0xF82E +ROM:6AFD jc ROM_6B04 +ROM:6AFF mov A, #4 +ROM:6B01 movx @DPTR, A +ROM:6B02 sjmp ROM_6B06 +ROM:6B04 ; --------------------------------------------------------------------------- +ROM:6B04 +ROM:6B04 ROM_6B04: ; CODE XREF: ROM_A044-3547↑j +ROM:6B04 mov A, R7 +ROM:6B05 movx @DPTR, A +ROM:6B06 +ROM:6B06 ROM_6B06: ; CODE XREF: ROM_A044-3542↑j +ROM:6B06 lcall ROM_2D85 +ROM:6B09 mov DPTR, #0xF82F +ROM:6B0C movx A, @DPTR +ROM:6B0D mov R7, A +ROM:6B0E mov DPTR, #0xF82A +ROM:6B11 movx @DPTR, A +ROM:6B12 acall ROM_6B7C +ROM:6B14 acall ROM_6B6D +ROM:6B16 inc DPTR +ROM:6B17 movx A, @DPTR +ROM:6B18 mov DPTR, #0xF53C +ROM:6B1B movx @DPTR, A +ROM:6B1C mov A, R7 +ROM:6B1D mov B, #0xF ; B Register +ROM:6B20 mul AB +ROM:6B21 mov R7, A +ROM:6B22 mov A, R5 +ROM:6B23 add A, R7 +ROM:6B24 mov R7, A +ROM:6B25 mov A, R4 +ROM:6B26 addc A, B ; B Register +ROM:6B28 xch A, R7 +ROM:6B29 add A, #2 +ROM:6B2B xch A, R7 +ROM:6B2C lcall ROM_63F5 +ROM:6B2F lcall ROM_672C +ROM:6B32 acall ROM_6B89 +ROM:6B34 add A, #2 +ROM:6B36 xch A, R7 +ROM:6B37 lcall ROM_63F5 +ROM:6B3A mov R0, #0x32 ; '2' +ROM:6B3C mov R4, #0xF5 +ROM:6B3E mov R5, #1 +ROM:6B40 lcall ROM_5F8D +ROM:6B43 mov DPTR, #0xF48F +ROM:6B46 jnz ROM_6B4B +ROM:6B48 movx @DPTR, A +ROM:6B49 sjmp ROM_6B4E +ROM:6B4B ; --------------------------------------------------------------------------- +ROM:6B4B +ROM:6B4B ROM_6B4B: ; CODE XREF: ROM_A044-34FE↑j +ROM:6B4B mov A, #1 +ROM:6B4D movx @DPTR, A +ROM:6B4E +ROM:6B4E ROM_6B4E: ; CODE XREF: ROM_A044-34FB↑j +ROM:6B4E acall ROM_6B89 +ROM:6B50 add A, #0xA +ROM:6B52 xch A, R7 +ROM:6B53 lcall ROM_63F5 +ROM:6B56 lcall ROM_4737 +ROM:6B59 lcall ROM_D93B +ROM:6B5C clr A +ROM:6B5D mov DPTR, #0xFE32 +ROM:6B60 ljmp ROM_2E62 +ROM:6B60 ; END OF FUNCTION CHUNK FOR ROM_A044 +ROM:6B63 +ROM:6B63 ; =============== S U B R O U T I N E ======================================= +ROM:6B63 +ROM:6B63 +ROM:6B63 ROM_6B63: ; CODE XREF: ROM_A044-35D3↑p +ROM:6B63 ; ROM_A044-35A9↑p +ROM:6B63 mov DPTR, #0xF82C +ROM:6B63 ; End of function ROM_6B63 +ROM:6B63 +ROM:6B66 +ROM:6B66 ; =============== S U B R O U T I N E ======================================= +ROM:6B66 +ROM:6B66 +ROM:6B66 ROM_6B66: ; CODE XREF: ROM_A044-3618↑p +ROM:6B66 movx A, @DPTR +ROM:6B67 mov R7, A +ROM:6B68 mov DPTR, #0xF82B +ROM:6B6B movx A, @DPTR +ROM:6B6C ret +ROM:6B6C ; End of function ROM_6B66 +ROM:6B6C +ROM:6B6D +ROM:6B6D ; =============== S U B R O U T I N E ======================================= +ROM:6B6D +ROM:6B6D +ROM:6B6D ROM_6B6D: ; CODE XREF: ROM_A044-35DC↑p +ROM:6B6D ; ROM_A044-3530↑p +ROM:6B6D mov B, #0xF ; B Register +ROM:6B70 mov A, R7 +ROM:6B71 ljmp code_BEE +ROM:6B71 ; End of function ROM_6B6D +ROM:6B71 +ROM:6B74 +ROM:6B74 ; =============== S U B R O U T I N E ======================================= +ROM:6B74 +ROM:6B74 +ROM:6B74 ROM_6B74: ; CODE XREF: ROM_A044-35EF↑p +ROM:6B74 ; ROM_A044-3564↑p +ROM:6B74 mov DP0L, A ; Data Pointer Low Byte +ROM:6B76 clr A +ROM:6B77 addc A, #0xF8 +ROM:6B79 mov DP0H, A ; Data Pointer High Byte +ROM:6B7B ret +ROM:6B7B ; End of function ROM_6B74 +ROM:6B7B +ROM:6B7C +ROM:6B7C ; =============== S U B R O U T I N E ======================================= +ROM:6B7C +ROM:6B7C +ROM:6B7C ROM_6B7C: ; CODE XREF: ROM_A044:ROM_6A49↑p +ROM:6B7C ; ROM_A044-3532↑p +ROM:6B7C mov DPTR, #0xF827 +ROM:6B7C ; End of function ROM_6B7C +ROM:6B7C +ROM:6B7F +ROM:6B7F ; =============== S U B R O U T I N E ======================================= +ROM:6B7F +ROM:6B7F +ROM:6B7F ROM_6B7F: ; CODE XREF: ROM_436B+18B↑p +ROM:6B7F movx A, @DPTR +ROM:6B80 mov R4, A +ROM:6B81 inc DPTR +ROM:6B82 movx A, @DPTR +ROM:6B83 mov R5, A +ROM:6B84 mov DP0L, A ; Data Pointer Low Byte +ROM:6B86 mov DP0H, R4 ; Data Pointer High Byte +ROM:6B88 ret +ROM:6B88 ; End of function ROM_6B7F +ROM:6B88 +ROM:6B89 +ROM:6B89 ; =============== S U B R O U T I N E ======================================= +ROM:6B89 +ROM:6B89 +ROM:6B89 ROM_6B89: ; CODE XREF: ROM_A044-3512↑p +ROM:6B89 ; ROM_A044:ROM_6B4E↑p +ROM:6B89 mov DPTR, #0xF82A +ROM:6B8C movx A, @DPTR +ROM:6B8D mov B, #0xF ; B Register +ROM:6B90 mul AB +ROM:6B91 mov R7, A +ROM:6B92 mov DPTR, #0xF828 +ROM:6B95 movx A, @DPTR +ROM:6B96 add A, R7 +ROM:6B97 mov R7, A +ROM:6B98 mov DPTR, #0xF827 +ROM:6B9B movx A, @DPTR +ROM:6B9C addc A, B ; B Register +ROM:6B9E xch A, R7 +ROM:6B9F ret +ROM:6B9F ; End of function ROM_6B89 +ROM:6B9F +ROM:6BA0 +ROM:6BA0 ; =============== S U B R O U T I N E ======================================= +ROM:6BA0 +ROM:6BA0 +ROM:6BA0 ROM_6BA0: ; CODE XREF: ROM_6C02+10↓p +ROM:6BA0 lcall ROM_6789 +ROM:6BA3 mov R3, #0xFF +ROM:6BA5 mov R2, #4 +ROM:6BA7 mov R1, #0xFB +ROM:6BA9 mov R6, #0 +ROM:6BAB mov R7, #3 +ROM:6BAD lcall code_86B +ROM:6BB0 acall UART_SETUP_ROM_6C20 +ROM:6BB2 mov DPTR, #0xFCFC +ROM:6BB5 mov A, #0x1A +ROM:6BB7 movx @DPTR, A +ROM:6BB8 mov R6, #0 +ROM:6BBA mov R7, A +ROM:6BBB mov R5, #0 +ROM:6BBD mov R3, #1 +ROM:6BBF mov R2, #0xFD +ROM:6BC1 mov R1, #0x10 +ROM:6BC3 lcall code_EA0 +ROM:6BC6 clr A +ROM:6BC7 mov DPTR, #0xFD10 +ROM:6BCA movx @DPTR, A +ROM:6BCB mov R3, #1 +ROM:6BCD mov R2, #0xF8 +ROM:6BCF mov R1, #0x2A ; '*' +ROM:6BD1 mov R5, #3 +ROM:6BD3 acall ROM_6CFA +ROM:6BD5 lcall ROM_6632 +ROM:6BD8 +ROM:6BD8 ROM_6BD8: ; CODE XREF: ROM_6BA0+43↓j +ROM:6BD8 acall ROM_6C56 +ROM:6BDA mov R4, RAM_7 +ROM:6BDC mov A, R4 +ROM:6BDD cpl A +ROM:6BDE jnz ROM_6BE5 +ROM:6BE0 lcall ROM_4859 +ROM:6BE3 sjmp ROM_6BD8 +ROM:6BE5 ; --------------------------------------------------------------------------- +ROM:6BE5 +ROM:6BE5 ROM_6BE5: ; CODE XREF: ROM_6BA0+3E↑j +ROM:6BE5 mov A, R4 +ROM:6BE6 jnz ROM_6BFF +ROM:6BE8 mov DPTR, #0xFDC6 +ROM:6BEB mov A, #0xF +ROM:6BED movx @DPTR, A +ROM:6BEE lcall ROM_5FC9 +ROM:6BF1 mov R7, #0xFF +ROM:6BF3 lcall ROM_2E76 +ROM:6BF6 clr A +ROM:6BF7 mov R7, A +ROM:6BF8 acall ROM_6936 +ROM:6BFA acall ROM_6F9D +ROM:6BFC mov R7, #0 +ROM:6BFE ret +ROM:6BFF ; --------------------------------------------------------------------------- +ROM:6BFF +ROM:6BFF ROM_6BFF: ; CODE XREF: ROM_6BA0+46↑j +ROM:6BFF mov R7, #1 +ROM:6C01 ret +ROM:6C01 ; End of function ROM_6BA0 +ROM:6C01 +ROM:6C02 +ROM:6C02 ; =============== S U B R O U T I N E ======================================= +ROM:6C02 +ROM:6C02 +ROM:6C02 ROM_6C02: ; CODE XREF: ROM_2E9D+B↑p +ROM:6C02 anl P1FUNC, #0xFE +ROM:6C05 orl FSR_BA, #1 +ROM:6C08 orl FSR_BD, #1 +ROM:6C0B nop +ROM:6C0C nop +ROM:6C0D +ROM:6C0D ROM_6C0D: ; CODE XREF: ROM_6C02+13↓j +ROM:6C0D jb P1.0, ROM_6C1A ; Port 1 +ROM:6C10 acall ROM_6E5A +ROM:6C12 acall ROM_6BA0 +ROM:6C14 mov A, R7 +ROM:6C15 jnz ROM_6C0D +ROM:6C17 mov R7, #1 +ROM:6C19 ret +ROM:6C1A ; --------------------------------------------------------------------------- +ROM:6C1A +ROM:6C1A ROM_6C1A: ; CODE XREF: ROM_6C02:ROM_6C0D↑j +ROM:6C1A lcall SetupWatchdog +ROM:6C1D mov R7, #0 +ROM:6C1F ret +ROM:6C1F ; End of function ROM_6C02 +ROM:6C1F +ROM:6C20 +ROM:6C20 ; =============== S U B R O U T I N E ======================================= +ROM:6C20 +ROM:6C20 +ROM:6C20 UART_SETUP_ROM_6C20: ; CODE XREF: ROM_2916:ROM_2ADA↑p +ROM:6C20 ; ROM_6BA0+10↑p ... +ROM:6C20 clr A +ROM:6C21 mov DPTR, #0xF98E +ROM:6C24 movx @DPTR, A +ROM:6C25 mov DPTR, #0xF990 +ROM:6C28 movx @DPTR, A +ROM:6C29 mov DPTR, #0xF992 +ROM:6C2C movx @DPTR, A +ROM:6C2D mov DPTR, #0xF98F +ROM:6C30 movx @DPTR, A +ROM:6C31 mov DPTR, #0xF991 +ROM:6C34 movx @DPTR, A +ROM:6C35 mov DPTR, #0xF993 +ROM:6C38 movx @DPTR, A +ROM:6C39 setb RAM_20.3 +ROM:6C3B orl P0FUNC, #0xC0 ; enable uart tx/rx +ROM:6C3E orl FSR_B9, #0x80 ; P0.7 as input +ROM:6C41 anl FSR_B9, #0xBF ; P0.6 as output +ROM:6C44 mov FSR_9B, A ; uart divisor H = 0 +ROM:6C46 mov FSR_9A, #0x89 ; uart divisor L = 0x89 +ROM:6C49 mov SCON, #0x10 ; Serial Port Control +ROM:6C4C clr SCON.1 ; Serial Port Control +ROM:6C4E clr SCON.0 ; Serial Port Control +ROM:6C50 orl FSR_B7, #0x20 ; enable uart clock +ROM:6C53 setb EX0 ; Interrupt Enable Register 0 +ROM:6C55 ret +ROM:6C55 ; End of function UART_SETUP_ROM_6C20 +ROM:6C55 +ROM:6C56 +ROM:6C56 ; =============== S U B R O U T I N E ======================================= +ROM:6C56 +ROM:6C56 +ROM:6C56 ROM_6C56: ; CODE XREF: ROM_4816↑p +ROM:6C56 ; ROM_6BA0:ROM_6BD8↑p +ROM:6C56 mov DPTR, #0xFEC1 +ROM:6C59 movx A, @DPTR +ROM:6C5A jz ROM_6C9D +ROM:6C5C clr A +ROM:6C5D mov DPTR, #0xF82D +ROM:6C60 movx @DPTR, A +ROM:6C61 +ROM:6C61 ROM_6C61: ; CODE XREF: ROM_6C56+45↓j +ROM:6C61 mov DPTR, #0xF82D +ROM:6C64 lcall ROM_3FE4 +ROM:6C67 jnc ROM_6C9D +ROM:6C69 jbc EA, ROM_6C6D ; Interrupt Enable Register 0 +ROM:6C6C clr C +ROM:6C6D +ROM:6C6D ROM_6C6D: ; CODE XREF: ROM_6C56+13↑j +ROM:6C6D clr A +ROM:6C6E rlc A +ROM:6C6F mov DPTR, #0xF82E +ROM:6C72 movx @DPTR, A +ROM:6C73 mov R0, RAM_7 +ROM:6C75 mov A, #1 +ROM:6C77 inc R0 +ROM:6C78 sjmp ROM_6C7C +ROM:6C7A ; --------------------------------------------------------------------------- +ROM:6C7A +ROM:6C7A ROM_6C7A: ; CODE XREF: ROM_6C56:ROM_6C7C↓j +ROM:6C7A clr C +ROM:6C7B rlc A +ROM:6C7C +ROM:6C7C ROM_6C7C: ; CODE XREF: ROM_6C56+22↑j +ROM:6C7C djnz R0, ROM_6C7A +ROM:6C7E mov R6, A +ROM:6C7F mov DPTR, #0xFEC1 +ROM:6C82 movx A, @DPTR +ROM:6C83 anl A, R6 +ROM:6C84 jz ROM_6C97 +ROM:6C86 movx A, @DPTR +ROM:6C87 mov R5, A +ROM:6C88 mov DPTR, #0xF82D +ROM:6C8B lcall ROM_8794 +ROM:6C8E mov DPTR, #0xFEC1 +ROM:6C91 movx @DPTR, A +ROM:6C92 acall ROM_6CA0 +ROM:6C94 mov R7, RAM_3 +ROM:6C96 ret +ROM:6C97 ; --------------------------------------------------------------------------- +ROM:6C97 +ROM:6C97 ROM_6C97: ; CODE XREF: ROM_6C56+2E↑j +ROM:6C97 acall ROM_6CA0 +ROM:6C99 acall ROM_6F8E +ROM:6C9B sjmp ROM_6C61 +ROM:6C9D ; --------------------------------------------------------------------------- +ROM:6C9D +ROM:6C9D ROM_6C9D: ; CODE XREF: ROM_6C56+4↑j +ROM:6C9D ; ROM_6C56+11↑j +ROM:6C9D mov R7, #0xFF +ROM:6C9F ret +ROM:6C9F ; End of function ROM_6C56 +ROM:6C9F +ROM:6CA0 +ROM:6CA0 ; =============== S U B R O U T I N E ======================================= +ROM:6CA0 +ROM:6CA0 +ROM:6CA0 ROM_6CA0: ; CODE XREF: ROM_6C56+3C↑p +ROM:6CA0 ; ROM_6C56:ROM_6C97↑p +ROM:6CA0 mov DPTR, #0xF82E +ROM:6CA3 movx A, @DPTR +ROM:6CA4 add A, #0xFF +ROM:6CA6 mov EA, C ; Interrupt Enable Register 0 +ROM:6CA8 ret +ROM:6CA8 ; End of function ROM_6CA0 +ROM:6CA8 +ROM:6CA8 ; --------------------------------------------------------------------------- +ROM:6CA9 .byte 0xF1 +ROM:6CAA .byte 0xA5 +ROM:6CAB .byte 0x7A ; z +ROM:6CAC .byte 4 +ROM:6CAD .byte 0x79 ; y +ROM:6CAE .byte 0xFE +ROM:6CAF .byte 0xF1 +ROM:6CB0 .byte 0x87 +ROM:6CB1 .byte 0xD1 +ROM:6CB2 .byte 0xF7 +ROM:6CB3 .byte 0x70 ; p +ROM:6CB4 .byte 0x44 ; D +ROM:6CB5 .byte 0xF1 +ROM:6CB6 .byte 0xB8 +ROM:6CB7 .byte 0x70 ; p +ROM:6CB8 .byte 0x40 ; @ +ROM:6CB9 .byte 0xF1 +ROM:6CBA .byte 0xAE +ROM:6CBB .byte 0x70 ; p +ROM:6CBC .byte 0x3C ; < +ROM:6CBD .byte 0x12 +ROM:6CBE .byte 0x5F ; _ +ROM:6CBF .byte 0xFE +ROM:6CC0 .byte 0xD1 +ROM:6CC1 .byte 0x5A ; Z +ROM:6CC2 .byte 0x90 +ROM:6CC3 .byte 0xDF +ROM:6CC4 .byte 0xFB +ROM:6CC5 .byte 0xE0 +ROM:6CC6 .byte 0x30 ; 0 +ROM:6CC7 .byte 0xE1 +ROM:6CC8 .byte 7 +ROM:6CC9 .byte 0xE4 +ROM:6CCA .byte 0x90 +ROM:6CCB .byte 0xF8 +ROM:6CCC .byte 0x2C ; , +ROM:6CCD .byte 0xF0 +ROM:6CCE .byte 0x80 +ROM:6CCF .byte 6 +ROM:6CD0 .byte 0x90 +ROM:6CD1 .byte 0xF8 +ROM:6CD2 .byte 0x2C ; , +ROM:6CD3 .byte 0x74 ; t +ROM:6CD4 .byte 1 +ROM:6CD5 .byte 0xF0 +ROM:6CD6 .byte 0x91 +ROM:6CD7 .byte 0x20 +ROM:6CD8 .byte 0xE4 +ROM:6CD9 .byte 0xFB +ROM:6CDA .byte 0xEB +ROM:6CDB .byte 0xC3 +ROM:6CDC .byte 0x12 +ROM:6CDD .byte 0x87 +ROM:6CDE .byte 0x7D ; } +ROM:6CDF .byte 0x50 ; P +ROM:6CE0 .byte 6 +ROM:6CE1 .byte 0x12 +ROM:6CE2 .byte 0xAA +ROM:6CE3 .byte 0x39 ; 9 +ROM:6CE4 .byte 0xB +ROM:6CE5 .byte 0x80 +ROM:6CE6 .byte 0xF3 +ROM:6CE7 .byte 0x7F ;  +ROM:6CE8 .byte 1 +ROM:6CE9 .byte 0x12 +ROM:6CEA .byte 0x27 ; ' +ROM:6CEB .byte 0xD4 +ROM:6CEC .byte 0x90 +ROM:6CED .byte 0xF8 +ROM:6CEE .byte 0x28 ; ( +ROM:6CEF .byte 0x74 ; t +ROM:6CF0 .byte 0x48 ; H +ROM:6CF1 .byte 0xF1 +ROM:6CF2 .byte 0x37 ; 7 +ROM:6CF3 .byte 0xF1 +ROM:6CF4 .byte 0x30 ; 0 +ROM:6CF5 .byte 0x7D ; } +ROM:6CF6 .byte 5 +ROM:6CF7 .byte 0x91 +ROM:6CF8 .byte 0xFA +ROM:6CF9 .byte 0x22 ; " +ROM:6CFA +ROM:6CFA ; =============== S U B R O U T I N E ======================================= +ROM:6CFA +ROM:6CFA +ROM:6CFA ROM_6CFA: ; CODE XREF: ROM_6BA0+33↑p +ROM:6CFA ; ROM_9487-25↓j +ROM:6CFA mov DPTR, #0xF846 +ROM:6CFD lcall Save_3_bytes_R3_R2_R1 +ROM:6D00 inc DPTR +ROM:6D01 mov A, R5 +ROM:6D02 movx @DPTR, A +ROM:6D03 add A, #0x14 +ROM:6D05 inc DPTR +ROM:6D06 movx @DPTR, A +ROM:6D07 clr A +ROM:6D08 mov R7, A +ROM:6D09 +ROM:6D09 ROM_6D09: ; CODE XREF: ROM_6CFA+2A↓j +ROM:6D09 mov DPTR, #0xF849 +ROM:6D0C movx A, @DPTR +ROM:6D0D mov R6, A +ROM:6D0E mov A, R7 +ROM:6D0F clr C +ROM:6D10 subb A, R6 +ROM:6D11 jnc ROM_6D26 +ROM:6D13 mov DPTR, #0xF846 +ROM:6D16 lcall ROM_37C3 +ROM:6D19 lcall ROM_39DA +ROM:6D1C mov R6, A +ROM:6D1D mov DPTR, #0xF84A +ROM:6D20 movx A, @DPTR +ROM:6D21 add A, R6 +ROM:6D22 movx @DPTR, A +ROM:6D23 inc R7 +ROM:6D24 sjmp ROM_6D09 +ROM:6D26 ; --------------------------------------------------------------------------- +ROM:6D26 +ROM:6D26 ROM_6D26: ; CODE XREF: ROM_6CFA+17↑j +ROM:6D26 mov DPTR, #0xFCE3 +ROM:6D29 mov A, #2 +ROM:6D2B movx @DPTR, A +ROM:6D2C inc DPTR +ROM:6D2D mov A, #0x43 ; 'C' +ROM:6D2F movx @DPTR, A +ROM:6D30 inc DPTR +ROM:6D31 mov A, #0x41 ; 'A' +ROM:6D33 movx @DPTR, A +ROM:6D34 inc DPTR +ROM:6D35 mov A, #0x46 ; 'F' +ROM:6D37 movx @DPTR, A +ROM:6D38 inc DPTR +ROM:6D39 dec A +ROM:6D3A movx @DPTR, A +ROM:6D3B mov DPTR, #0xF849 +ROM:6D3E movx A, @DPTR +ROM:6D3F mov R7, A +ROM:6D40 mov DPTR, #0xFCE8 +ROM:6D43 movx @DPTR, A +ROM:6D44 mov R6, #0 +ROM:6D46 mov R0, #0xE9 +ROM:6D48 mov R4, #0xFC +ROM:6D4A mov R5, #1 +ROM:6D4C mov DPTR, #0xF846 +ROM:6D4F lcall ROM_37C3 +ROM:6D52 mov R1, A +ROM:6D53 lcall code_86B +ROM:6D56 mov DPTR, #0xF849 +ROM:6D59 movx A, @DPTR +ROM:6D5A mov R7, A +ROM:6D5B add A, #0xE9 +ROM:6D5D mov DP0L, A ; Data Pointer Low Byte +ROM:6D5F clr A +ROM:6D60 addc A, #0xFC +ROM:6D62 mov DP0H, A ; Data Pointer High Byte +ROM:6D64 mov A, #3 +ROM:6D66 movx @DPTR, A +ROM:6D67 mov DPTR, #0xF84A +ROM:6D6A movx A, @DPTR +ROM:6D6B mov R6, A +ROM:6D6C mov A, #0xEA +ROM:6D6E add A, R7 +ROM:6D6F mov DP0L, A ; Data Pointer Low Byte +ROM:6D71 clr A +ROM:6D72 addc A, #0xFC +ROM:6D74 mov DP0H, A ; Data Pointer High Byte +ROM:6D76 mov A, R6 +ROM:6D77 movx @DPTR, A +ROM:6D78 mov R3, #1 +ROM:6D7A mov R2, #0xFC +ROM:6D7C mov R1, #0xE3 +ROM:6D7E +ROM:6D7E ROM_6D7E: ; CODE XREF: ROM_6E68+33↓j +ROM:6D7E mov DPTR, #0xF849 +ROM:6D81 movx A, @DPTR +ROM:6D82 add A, #8 +ROM:6D84 mov R5, A +ROM:6D85 mov DPTR, #0xF84B +ROM:6D88 lcall Save_3_bytes_R3_R2_R1 +ROM:6D8B +ROM:6D8B ROM_6D8B: ; CODE XREF: ROM_6CFA+A4↓j +ROM:6D8B mov R7, RAM_5 +ROM:6D8D dec R5 +ROM:6D8E mov A, R7 +ROM:6D8F jz ROM_6DA0 +ROM:6D91 mov DPTR, #0xF84B +ROM:6D94 lcall ROM_D27D +ROM:6D97 lcall code_891 +ROM:6D9A mov R7, A +ROM:6D9B lcall ROM_A96C +ROM:6D9E sjmp ROM_6D8B +ROM:6DA0 ; --------------------------------------------------------------------------- +ROM:6DA0 +ROM:6DA0 ROM_6DA0: ; CODE XREF: ROM_6CFA+95↑j +ROM:6DA0 ret +ROM:6DA0 ; End of function ROM_6CFA +ROM:6DA0 +ROM:6DA0 ; --------------------------------------------------------------------------- +ROM:6DA1 .byte 0xF1 +ROM:6DA2 .byte 0xA5 +ROM:6DA3 .byte 0x7A ; z +ROM:6DA4 .byte 5 +ROM:6DA5 .byte 0x79 ; y +ROM:6DA6 .byte 3 +ROM:6DA7 .byte 0xF1 +ROM:6DA8 .byte 0x87 +ROM:6DA9 .byte 0xD1 +ROM:6DAA .byte 0xF7 +ROM:6DAB .byte 0x60 ; ` +ROM:6DAC .byte 2 +ROM:6DAD .byte 0xC1 +ROM:6DAE .byte 0x59 ; Y +ROM:6DAF .byte 0xF1 +ROM:6DB0 .byte 0xB8 +ROM:6DB1 .byte 0x60 ; ` +ROM:6DB2 .byte 2 +ROM:6DB3 .byte 0xC1 +ROM:6DB4 .byte 0x59 ; Y +ROM:6DB5 .byte 0xF1 +ROM:6DB6 .byte 0xAE +ROM:6DB7 .byte 0x60 ; ` +ROM:6DB8 .byte 2 +ROM:6DB9 .byte 0xC1 +ROM:6DBA .byte 0x59 ; Y +ROM:6DBB .byte 0x90 +ROM:6DBC .byte 0xFD +ROM:6DBD .byte 0x30 ; 0 +ROM:6DBE .byte 0xF0 +ROM:6DBF .byte 0xA3 +ROM:6DC0 .byte 0xF0 +ROM:6DC1 .byte 0x90 +ROM:6DC2 .byte 0xF8 +ROM:6DC3 .byte 0x2D ; - +ROM:6DC4 .byte 4 +ROM:6DC5 .byte 0xF0 +ROM:6DC6 .byte 0x90 +ROM:6DC7 .byte 0xF8 +ROM:6DC8 .byte 0x2D ; - +ROM:6DC9 .byte 0xE0 +ROM:6DCA .byte 0xFD +ROM:6DCB .byte 0x12 +ROM:6DCC .byte 0x4B ; K +ROM:6DCD .byte 4 +ROM:6DCE .byte 0x50 ; P +ROM:6DCF .byte 0x19 +ROM:6DD0 .byte 0x90 +ROM:6DD1 .byte 0xFD +ROM:6DD2 .byte 0x31 ; 1 +ROM:6DD3 .byte 0xE0 +ROM:6DD4 .byte 0xF8 +ROM:6DD5 .byte 0xE4 +ROM:6DD6 .byte 0xF0 +ROM:6DD7 .byte 0xE8 +ROM:6DD8 .byte 0x90 +ROM:6DD9 .byte 0xFD +ROM:6DDA .byte 0x30 ; 0 +ROM:6DDB .byte 0xF0 +ROM:6DDC .byte 0x74 ; t +ROM:6DDD .byte 3 +ROM:6DDE .byte 0x2D ; - +ROM:6DDF .byte 0x12 +ROM:6DE0 .byte 0xDA +ROM:6DE1 .byte 0x74 ; t +ROM:6DE2 .byte 0x12 +ROM:6DE3 .byte 0xD6 +ROM:6DE4 .byte 0x91 +ROM:6DE5 .byte 0xF1 +ROM:6DE6 .byte 0x8E +ROM:6DE7 .byte 0x80 +ROM:6DE8 .byte 0xDD +ROM:6DE9 .byte 0x90 +ROM:6DEA .byte 0xF8 +ROM:6DEB .byte 0x28 ; ( +ROM:6DEC .byte 0x74 ; t +ROM:6DED .byte 0x43 ; C +ROM:6DEE .byte 0xF1 +ROM:6DEF .byte 0x37 ; 7 +ROM:6DF0 .byte 0xE4 +ROM:6DF1 .byte 0xA3 +ROM:6DF2 .byte 0xF0 +ROM:6DF3 .byte 0x90 +ROM:6DF4 .byte 0xFD +ROM:6DF5 .byte 3 +ROM:6DF6 .byte 0xE0 +ROM:6DF7 .byte 0x90 +ROM:6DF8 .byte 0xF8 +ROM:6DF9 .byte 0x2D ; - +ROM:6DFA .byte 0xF0 +ROM:6DFB .byte 0x24 ; $ +ROM:6DFC .byte 0xFC +ROM:6DFD .byte 0x50 ; P +ROM:6DFE .byte 2 +ROM:6DFF .byte 0x80 +ROM:6E00 .byte 0x58 ; X +ROM:6E01 .byte 0xF1 +ROM:6E02 .byte 0x30 ; 0 +ROM:6E03 .byte 0x7D ; } +ROM:6E04 .byte 5 +ROM:6E05 .byte 0x91 +ROM:6E06 .byte 0xFA +ROM:6E07 .byte 0x12 +ROM:6E08 .byte 0x91 +ROM:6E09 .byte 0x9B +ROM:6E0A .byte 0x90 +ROM:6E0B .byte 0xF8 +ROM:6E0C .byte 0x2D ; - +ROM:6E0D .byte 0xE0 +ROM:6E0E .byte 0x14 +ROM:6E0F .byte 0x60 ; ` +ROM:6E10 .byte 0xE +ROM:6E11 .byte 0x14 +ROM:6E12 .byte 0x60 ; ` +ROM:6E13 .byte 0x12 +ROM:6E14 .byte 0x14 +ROM:6E15 .byte 0x60 ; ` +ROM:6E16 .byte 0x25 ; % +ROM:6E17 .byte 0x24 ; $ +ROM:6E18 .byte 3 +ROM:6E19 .byte 0x70 ; p +ROM:6E1A ; --------------------------------------------------------------------------- +ROM:6E1A ; START OF FUNCTION CHUNK FOR ROM_6E68 +ROM:6E1A +ROM:6E1A ROM_6E1A: ; CODE XREF: ROM_6E68+2F↓j +ROM:6E1A addc A, R6 +ROM:6E1B clr A +ROM:6E1C mov R7, A +ROM:6E1D sjmp ROM_6E21 +ROM:6E1D ; END OF FUNCTION CHUNK FOR ROM_6E68 +ROM:6E1D ; --------------------------------------------------------------------------- +ROM:6E1F .byte 0x7F ;  +ROM:6E20 .byte 1 +ROM:6E21 ; --------------------------------------------------------------------------- +ROM:6E21 ; START OF FUNCTION CHUNK FOR ROM_6E68 +ROM:6E21 +ROM:6E21 ROM_6E21: ; CODE XREF: ROM_6E68-4B↑j +ROM:6E21 lcall ROM_27D4 +ROM:6E24 sjmp ROM_6E31 +ROM:6E24 ; END OF FUNCTION CHUNK FOR ROM_6E68 +ROM:6E24 ; --------------------------------------------------------------------------- +ROM:6E26 .byte 0x7F ;  +ROM:6E27 .byte 1 +ROM:6E28 .byte 0x12 +ROM:6E29 .byte 0x27 ; ' +ROM:6E2A .byte 0xD4 +ROM:6E2B .byte 0x12 +ROM:6E2C .byte 0x96 +ROM:6E2D .byte 0xB7 +ROM:6E2E .byte 0x74 ; t +ROM:6E2F .byte 0x10 +ROM:6E30 .byte 0xF0 +ROM:6E31 ; --------------------------------------------------------------------------- +ROM:6E31 ; START OF FUNCTION CHUNK FOR ROM_6E68 +ROM:6E31 +ROM:6E31 ROM_6E31: ; CODE XREF: ROM_6E68-44↑j +ROM:6E31 mov DPTR, #0xFD30 +ROM:6E34 inc DPTR +ROM:6E35 movx A, @DPTR +ROM:6E36 mov R7, A +ROM:6E37 lcall ROM_93F3 +ROM:6E3A sjmp ROM_6E52 +ROM:6E3A ; END OF FUNCTION CHUNK FOR ROM_6E68 +ROM:6E3A ; --------------------------------------------------------------------------- +ROM:6E3C .byte 0x12 +ROM:6E3D .byte 0x50 ; P +ROM:6E3E .byte 4 +ROM:6E3F .byte 0x90 +ROM:6E40 .byte 0xFD +ROM:6E41 .byte 0x30 ; 0 +ROM:6E42 .byte 0xF1 +ROM:6E43 .byte 0x95 +ROM:6E44 .byte 0x7D ; } +ROM:6E45 .byte 0x64 ; d +ROM:6E46 .byte 0x12 +ROM:6E47 .byte 8 +ROM:6E48 .byte 0xDE +ROM:6E49 .byte 0xE4 +ROM:6E4A .byte 0xFD +ROM:6E4B .byte 0x12 +ROM:6E4C .byte 0x60 ; ` +ROM:6E4D .byte 0xF +ROM:6E4E .byte 0xD1 +ROM:6E4F .byte 0x5A ; Z +ROM:6E50 .byte 0xF1 +ROM:6E51 .byte 0x9D +ROM:6E52 ; --------------------------------------------------------------------------- +ROM:6E52 ; START OF FUNCTION CHUNK FOR ROM_6E68 +ROM:6E52 +ROM:6E52 ROM_6E52: ; CODE XREF: ROM_6E68-2E↑j +ROM:6E52 mov R7, #1 +ROM:6E54 lcall ROM_27D4 +ROM:6E57 acall UART_SETUP_ROM_6C20 +ROM:6E59 ret +ROM:6E59 ; END OF FUNCTION CHUNK FOR ROM_6E68 +ROM:6E5A +ROM:6E5A ; =============== S U B R O U T I N E ======================================= +ROM:6E5A +ROM:6E5A +ROM:6E5A ROM_6E5A: ; CODE XREF: ROM_4842+B↑p +ROM:6E5A ; ROM_6C02+E↑p +ROM:6E5A mov R7, FSR_FF +ROM:6E5C mov FSR_FF, #4 +ROM:6E5F clr A +ROM:6E60 mov FSR_BA, A +ROM:6E62 anl FSR_BF, #0x7F +ROM:6E65 mov FSR_FF, R7 +ROM:6E67 ret +ROM:6E67 ; End of function ROM_6E5A +ROM:6E67 +ROM:6E68 +ROM:6E68 ; =============== S U B R O U T I N E ======================================= +ROM:6E68 +ROM:6E68 +ROM:6E68 ROM_6E68: ; CODE XREF: ROM_4816+28↑p +ROM:6E68 +ROM:6E68 ; FUNCTION CHUNK AT ROM:6E1A SIZE 00000005 BYTES +ROM:6E68 ; FUNCTION CHUNK AT ROM:6E21 SIZE 00000005 BYTES +ROM:6E68 ; FUNCTION CHUNK AT ROM:6E31 SIZE 0000000B BYTES +ROM:6E68 ; FUNCTION CHUNK AT ROM:6E52 SIZE 00000008 BYTES +ROM:6E68 +ROM:6E68 mov A, R7 +ROM:6E69 dec A +ROM:6E6A jz ROM_6ED4 +ROM:6E6C inc A +ROM:6E6D jnz ROM_6EDC +ROM:6E6F mov DPTR, #0xFCFF +ROM:6E72 movx A, @DPTR +ROM:6E73 lcall code_C69 +ROM:6E76 xrl A, R6 +ROM:6E77 mov R1, RAM_41 +ROM:6E79 xrl A, R6 +ROM:6E7A subb A, R2 +ROM:6E7B orl RAM_6E, #0x98 +ROM:6E7E orl A, R0 +ROM:6E7F xrl A, R6 +ROM:6E80 mov R3, RAM_49 +ROM:6E82 xrl A, R6 +ROM:6E83 subb A, R6 +ROM:6E84 anl RAM_6E, A +ROM:6E86 subb A, R6 +ROM:6E87 anl A, #0x6E +ROM:6E89 subb A, R4 +ROM:6E8A anl A, RAM_6E +ROM:6E8C swap A +ROM:6E8D anl A, @R0 +ROM:6E8E xrl A, R6 +ROM:6E8F xch A, @R1 +ROM:6E90 anl A, R1 +ROM:6E91 xrl A, R6 +ROM:6E92 xch A, R3 +ROM:6E93 anl A, R2 +ROM:6E94 nop +ROM:6E95 nop +ROM:6E96 xrl A, R6 +ROM:6E97 djnz R4, ROM_6E1A +ROM:6E99 mov R1, FSR_A1 +ROM:6E9B ajmp ROM_6D7E+2 +ROM:6E9B ; --------------------------------------------------------------------------- +ROM:6E9D .byte 0x3F ; ? +ROM:6E9E .byte 0x90 +ROM:6E9F .byte 0xFC +ROM:6EA0 .byte 0xFF +ROM:6EA1 .byte 0xE0 +ROM:6EA2 .byte 0xFF +ROM:6EA3 .byte 0xA3 +ROM:6EA4 .byte 0xE0 +ROM:6EA5 .byte 0xFD +ROM:6EA6 .byte 2 +ROM:6EA7 .byte 0x66 ; f +ROM:6EA8 .byte 0x9D +ROM:6EA9 .byte 0x80 +ROM:6EAA .byte 0x53 ; S +ROM:6EAB .byte 0x90 +ROM:6EAC .byte 0xFD +ROM:6EAD .byte 0 +ROM:6EAE .byte 0xE0 +ROM:6EAF .byte 0xFF +ROM:6EB0 .byte 0x64 ; d +ROM:6EB1 .byte 6 +ROM:6EB2 .byte 0x60 ; ` +ROM:6EB3 .byte 5 +ROM:6EB4 .byte 0xEF +ROM:6EB5 .byte 0x64 ; d +ROM:6EB6 .byte 8 +ROM:6EB7 .byte 0x70 ; p +ROM:6EB8 .byte 8 +ROM:6EB9 .byte 0x90 +ROM:6EBA .byte 0xFD +ROM:6EBB .byte 0 +ROM:6EBC .byte 0xE0 +ROM:6EBD .byte 0xFF +ROM:6EBE .byte 2 +ROM:6EBF .byte 0x5D ; ] +ROM:6EC0 .byte 0x72 ; r +ROM:6EC1 .byte 2 +ROM:6EC2 .byte 0x97 +ROM:6EC3 .byte 0xCE +ROM:6EC4 .byte 2 +ROM:6EC5 .byte 0x95 +ROM:6EC6 .byte 0xF4 +ROM:6EC7 .byte 0xF1 +ROM:6EC8 .byte 0x7A ; z +ROM:6EC9 .byte 0x80 +ROM:6ECA .byte 2 +ROM:6ECB .byte 0xF1 +ROM:6ECC .byte 0x81 +ROM:6ECD .byte 0x7F ;  +ROM:6ECE .byte 0x10 +ROM:6ECF .byte 0x7E ; ~ +ROM:6ED0 .byte 0x27 ; ' +ROM:6ED1 .byte 2 +ROM:6ED2 .byte 0x4C ; L +ROM:6ED3 .byte 0xB7 +ROM:6ED4 ; --------------------------------------------------------------------------- +ROM:6ED4 +ROM:6ED4 ROM_6ED4: ; CODE XREF: ROM_6E68+2↑j +ROM:6ED4 mov DPTR, #0xFCFF +ROM:6ED7 movx A, @DPTR +ROM:6ED8 mov R7, A +ROM:6ED9 lcall ROM_9487 +ROM:6EDC +ROM:6EDC ROM_6EDC: ; CODE XREF: ROM_6E68+5↑j +ROM:6EDC ret +ROM:6EDC ; End of function ROM_6E68 +ROM:6EDC +ROM:6EDC ; --------------------------------------------------------------------------- +ROM:6EDD .byte 0xD1 +ROM:6EDE .byte 0xF7 +ROM:6EDF .byte 0x70 ; p +ROM:6EE0 .byte 0x15 +ROM:6EE1 .byte 0x90 +ROM:6EE2 .byte 0xF8 +ROM:6EE3 .byte 0x28 ; ( +ROM:6EE4 .byte 0x74 ; t +ROM:6EE5 .byte 0x55 ; U +ROM:6EE6 .byte 0xF0 +ROM:6EE7 .byte 0xA3 +ROM:6EE8 .byte 0x74 ; t +ROM:6EE9 .byte 2 +ROM:6EEA .byte 0x12 +ROM:6EEB .byte 0x88 +ROM:6EEC .byte 0x31 ; 1 +ROM:6EED .byte 0x90 +ROM:6EEE .byte 0xF8 +ROM:6EEF .byte 0x2B ; + +ROM:6EF0 .byte 0xF1 +ROM:6EF1 .byte 0x2F ; / +ROM:6EF2 .byte 0x7D ; } +ROM:6EF3 .byte 4 +ROM:6EF4 .byte 0x91 +ROM:6EF5 .byte 0xFA +ROM:6EF6 .byte 0x22 ; " +ROM:6EF7 .byte 0x90 +ROM:6EF8 .byte 0xFD +ROM:6EF9 .byte 0 +ROM:6EFA .byte 0xE0 +ROM:6EFB .byte 0x64 ; d +ROM:6EFC .byte 1 +ROM:6EFD .byte 0x22 ; " +ROM:6EFE .byte 0xD1 +ROM:6EFF .byte 0xF7 +ROM:6F00 .byte 0x70 ; p +ROM:6F01 .byte 0x20 +ROM:6F02 .byte 0x90 +ROM:6F03 .byte 0xF8 +ROM:6F04 .byte 0x28 ; ( +ROM:6F05 .byte 0x74 ; t +ROM:6F06 .byte 0x41 ; A +ROM:6F07 .byte 0xF1 +ROM:6F08 .byte 0x37 ; 7 +ROM:6F09 .byte 0x90 +ROM:6F0A .byte 0xFD +ROM:6F0B .byte 0x3B ; ; +ROM:6F0C .byte 0xE0 +ROM:6F0D .byte 0x90 +ROM:6F0E .byte 0xF8 +ROM:6F0F .byte 0x2C ; , +ROM:6F10 .byte 0xF0 +ROM:6F11 .byte 0x90 +ROM:6F12 .byte 0xFD +ROM:6F13 .byte 0x3A ; : +ROM:6F14 .byte 0xE0 +ROM:6F15 .byte 0x90 +ROM:6F16 .byte 0xF8 +ROM:6F17 .byte 0x2D ; - +ROM:6F18 .byte 0xF0 +ROM:6F19 .byte 0x90 +ROM:6F1A .byte 0xFD +ROM:6F1B .byte 0x30 ; 0 +ROM:6F1C .byte 0xF1 +ROM:6F1D .byte 0x23 ; # +ROM:6F1E .byte 0x7D ; } +ROM:6F1F .byte 8 +ROM:6F20 .byte 0x91 +ROM:6F21 .byte 0xFA +ROM:6F22 .byte 0x22 ; " +ROM:6F23 .byte 0xE0 +ROM:6F24 .byte 0xFC +ROM:6F25 .byte 0xA3 +ROM:6F26 .byte 0xE0 +ROM:6F27 .byte 0xFD +ROM:6F28 .byte 0xEC +ROM:6F29 .byte 0x90 +ROM:6F2A .byte 0xF8 +ROM:6F2B .byte 0x2E ; . +ROM:6F2C .byte 0xF0 +ROM:6F2D .byte 0xA3 +ROM:6F2E .byte 0xED +ROM:6F2F +ROM:6F2F ; =============== S U B R O U T I N E ======================================= +ROM:6F2F +ROM:6F2F +ROM:6F2F ROM_6F2F: ; CODE XREF: ROM_9487+66↓p +ROM:6F2F movx @DPTR, A +ROM:6F30 mov R3, #1 +ROM:6F32 mov R2, #0xF8 +ROM:6F34 mov R1, #0x28 ; '(' +ROM:6F36 ret +ROM:6F36 ; End of function ROM_6F2F +ROM:6F36 +ROM:6F36 ; --------------------------------------------------------------------------- +ROM:6F37 .byte 0xF0 +ROM:6F38 .byte 0xA3 +ROM:6F39 .byte 0x74 ; t +ROM:6F3A .byte 2 +ROM:6F3B .byte 0xF0 +ROM:6F3C .byte 0x90 +ROM:6F3D .byte 0xFD +ROM:6F3E .byte 0x38 ; 8 +ROM:6F3F .byte 0xE0 +ROM:6F40 .byte 0x90 +ROM:6F41 .byte 0xF8 +ROM:6F42 .byte 0x2A ; * +ROM:6F43 .byte 0xF0 +ROM:6F44 .byte 0x90 +ROM:6F45 .byte 0xFD +ROM:6F46 .byte 0x39 ; 9 +ROM:6F47 .byte 0xE0 +ROM:6F48 .byte 0x90 +ROM:6F49 .byte 0xF8 +ROM:6F4A .byte 0x2B ; + +ROM:6F4B .byte 0xF0 +ROM:6F4C .byte 0x22 ; " +ROM:6F4D .byte 0x90 +ROM:6F4E .byte 0xF8 +ROM:6F4F .byte 0x28 ; ( +ROM:6F50 .byte 0xEF +ROM:6F51 .byte 0xF0 +ROM:6F52 .byte 0xA3 +ROM:6F53 .byte 0x74 ; t +ROM:6F54 .byte 2 +ROM:6F55 .byte 0xF0 +ROM:6F56 .byte 0x90 +ROM:6F57 .byte 0xFD +ROM:6F58 .byte 1 +ROM:6F59 .byte 0xE0 +ROM:6F5A .byte 0xFE +ROM:6F5B .byte 0xA3 +ROM:6F5C .byte 0xE0 +ROM:6F5D .byte 0x90 +ROM:6F5E .byte 0xF8 +ROM:6F5F .byte 0x2A ; * +ROM:6F60 .byte 0xF0 +ROM:6F61 .byte 0xEE +ROM:6F62 .byte 0xA3 +ROM:6F63 .byte 0xF0 +ROM:6F64 .byte 0x90 +ROM:6F65 .byte 0xF5 +ROM:6F66 .byte 0xB +ROM:6F67 .byte 0x12 +ROM:6F68 .byte 0x76 ; v +ROM:6F69 .byte 0x63 ; c +ROM:6F6A .byte 0x90 +ROM:6F6B .byte 0xF8 +ROM:6F6C .byte 0x2C ; , +ROM:6F6D .byte 0xF0 +ROM:6F6E .byte 0xA3 +ROM:6F6F .byte 0xED +ROM:6F70 .byte 0xF0 +ROM:6F71 .byte 0x90 +ROM:6F72 .byte 0xF5 +ROM:6F73 .byte 0xD +ROM:6F74 .byte 0xF1 +ROM:6F75 .byte 0x23 ; # +ROM:6F76 .byte 0x7D ; } +ROM:6F77 .byte 8 +ROM:6F78 .byte 0x81 +ROM:6F79 .byte 0xFA +ROM:6F7A .byte 0x12 +ROM:6F7B .byte 0x77 ; w +ROM:6F7C .byte 0xDC +ROM:6F7D .byte 0x7F ;  +ROM:6F7E .byte 0x59 ; Y +ROM:6F7F .byte 0x80 +ROM:6F80 .byte 0xCC +ROM:6F81 .byte 0xF1 +ROM:6F82 .byte 0xC6 +ROM:6F83 .byte 0x7F ;  +ROM:6F84 .byte 0x5A ; Z +ROM:6F85 .byte 0x80 +ROM:6F86 .byte 0xC6 +ROM:6F87 +ROM:6F87 ; =============== S U B R O U T I N E ======================================= +ROM:6F87 +ROM:6F87 +ROM:6F87 ROM_6F87: ; CODE XREF: ROM_4737+67↑p +ROM:6F87 ; ROM_436B+21BF↑p ... +ROM:6F87 mov R6, #0 +ROM:6F89 mov R7, #5 +ROM:6F8B ljmp code_86B +ROM:6F8B ; End of function ROM_6F87 +ROM:6F8B +ROM:6F8E +ROM:6F8E ; =============== S U B R O U T I N E ======================================= +ROM:6F8E +ROM:6F8E +ROM:6F8E ROM_6F8E: ; CODE XREF: ROM_6C56+43↑p +ROM:6F8E mov DPTR, #0xF82D +ROM:6F91 movx A, @DPTR +ROM:6F92 inc A +ROM:6F93 movx @DPTR, A +ROM:6F94 ret +ROM:6F94 ; End of function ROM_6F8E +ROM:6F94 +ROM:6F95 +ROM:6F95 ; =============== S U B R O U T I N E ======================================= +ROM:6F95 +ROM:6F95 +ROM:6F95 ROM_6F95: ; CODE XREF: ROM_6962+93↑p +ROM:6F95 ; ROM_9A40+FF↓p +ROM:6F95 movx A, @DPTR +ROM:6F96 mov R6, A +ROM:6F97 inc DPTR +ROM:6F98 movx A, @DPTR +ROM:6F99 mov R7, A +ROM:6F9A mov R4, #0 +ROM:6F9C ret +ROM:6F9C ; End of function ROM_6F95 +ROM:6F9C +ROM:6F9D +ROM:6F9D ; =============== S U B R O U T I N E ======================================= +ROM:6F9D +ROM:6F9D +ROM:6F9D ROM_6F9D: ; CODE XREF: ROM_6BA0+5A↑p +ROM:6F9D mov DPTR, #0xDFF4 +ROM:6FA0 movx A, @DPTR +ROM:6FA1 anl A, #0xFB +ROM:6FA3 movx @DPTR, A +ROM:6FA4 ret +ROM:6FA4 ; End of function ROM_6F9D +ROM:6FA4 +ROM:6FA4 ; --------------------------------------------------------------------------- +ROM:6FA5 .byte 0x78 ; x +ROM:6FA6 .byte 0x28 ; ( +ROM:6FA7 .byte 0x7C ; | +ROM:6FA8 .byte 0xF8 +ROM:6FA9 .byte 0x7D ; } +ROM:6FAA .byte 1 +ROM:6FAB .byte 0x7B ; { +ROM:6FAC .byte 0xFF +ROM:6FAD .byte 0x22 ; " +ROM:6FAE .byte 0xEE +ROM:6FAF .byte 0xFF +ROM:6FB0 .byte 0x90 +ROM:6FB1 .byte 0xFD +ROM:6FB2 .byte 0x38 ; 8 +ROM:6FB3 .byte 0xE0 +ROM:6FB4 .byte 0xFE +ROM:6FB5 .byte 0xEF +ROM:6FB6 .byte 0x6E ; n +ROM:6FB7 .byte 0x22 ; " +ROM:6FB8 .byte 0xA3 +ROM:6FB9 .byte 0xE0 +ROM:6FBA .byte 0xFE +ROM:6FBB .byte 0xA3 +ROM:6FBC .byte 0xE0 +ROM:6FBD .byte 0xFD +ROM:6FBE .byte 0x90 +ROM:6FBF .byte 0xFD +ROM:6FC0 .byte 0x39 ; 9 +ROM:6FC1 .byte 0xE0 +ROM:6FC2 .byte 0xFC +ROM:6FC3 .byte 0xED +ROM:6FC4 .byte 0x6C ; l +ROM:6FC5 .byte 0x22 ; " +ROM:6FC6 .byte 0xE4 +ROM:6FC7 .byte 0x90 +ROM:6FC8 .byte 0xF5 +ROM:6FC9 .byte 0xD +ROM:6FCA .byte 0xF0 +ROM:6FCB .byte 0xA3 +ROM:6FCC .byte 0xF0 +ROM:6FCD .byte 0x90 +ROM:6FCE .byte 0xF5 +ROM:6FCF .byte 0xB +ROM:6FD0 .byte 0xF0 +ROM:6FD1 .byte 0xA3 +ROM:6FD2 .byte 0xF0 +ROM:6FD3 +ROM:6FD3 ; =============== S U B R O U T I N E ======================================= +ROM:6FD3 +ROM:6FD3 +ROM:6FD3 ROM_6FD3: ; CODE XREF: ROM_436B-EB1↑p +ROM:6FD3 ; ROM_436B-E7A↑p +ROM:6FD3 lcall SetupPinsForEEProm +ROM:6FD6 clr A +ROM:6FD7 mov R7, A +ROM:6FD8 mov R6, #0x10 +ROM:6FDA mov R5, A +ROM:6FDB mov R4, A +ROM:6FDC lcall code_1F13 +ROM:6FDF mov DPTR, #0xF882 +ROM:6FE2 clr A +ROM:6FE3 movx @DPTR, A +ROM:6FE4 inc DPTR +ROM:6FE5 mov A, #0x10 +ROM:6FE7 lcall ROM_802F +ROM:6FEA mov R2, #0xF5 +ROM:6FEC mov R1, #0xB +ROM:6FEE mov R5, #4 +ROM:6FF0 mov R4, A +ROM:6FF0 ; End of function ROM_6FD3 +ROM:6FF0 +ROM:6FF1 +ROM:6FF1 ; =============== S U B R O U T I N E ======================================= +ROM:6FF1 +ROM:6FF1 +ROM:6FF1 ROM_6FF1: ; CODE XREF: ROM_39E2+214↑p +ROM:6FF1 ; ROM_702C+D9↓p ... +ROM:6FF1 +ROM:6FF1 ; FUNCTION CHUNK AT ROM:30F4 SIZE 00000181 BYTES +ROM:6FF1 +ROM:6FF1 mov DPTR, #0xF87D +ROM:6FF4 lcall Save_3_bytes_R3_R2_R1 +ROM:6FF7 lcall ROM_8B30 +ROM:6FFA inc DPTR +ROM:6FFB lcall ROM_37C3 +ROM:6FFE mov R1, A +ROM:6FFF inc DPTR +ROM:7000 lcall ROM_716C +ROM:7003 mov R7, RAM_1 +ROM:7005 mov R6, A +ROM:7006 mov R5, RAM_3 +ROM:7008 mov R4, #0 +ROM:700A inc DPTR +ROM:700B lcall save_4_bytes_R4_R7 +ROM:700E lcall SetupPinsForEEProm +ROM:7011 mov DPTR, #0xF87D +ROM:7014 lcall ROM_37C3 +ROM:7017 lcall ROM_9CF6 +ROM:701A mov DPTR, #0xF892 +ROM:701D xch A, R7 +ROM:701E movx @DPTR, A +ROM:701F inc DPTR +ROM:7020 mov A, R7 +ROM:7021 movx @DPTR, A +ROM:7022 mov DPTR, #0xF887 +ROM:7025 lcall load_4_bytes_R4_R5_R6_A +ROM:7028 mov R7, A +ROM:7029 ljmp ROM_30F4 +ROM:7029 ; End of function ROM_6FF1 +ROM:7029 +ROM:702C +ROM:702C ; =============== S U B R O U T I N E ======================================= +ROM:702C +ROM:702C +ROM:702C ROM_702C: ; CODE XREF: ROM_327C+12↑p +ROM:702C clr A +ROM:702D mov DPTR, #0xF841 +ROM:7030 movx @DPTR, A +ROM:7031 inc DPTR +ROM:7032 movx @DPTR, A +ROM:7033 inc DPTR +ROM:7034 movx @DPTR, A +ROM:7035 mov A, R7 +ROM:7036 movx @DPTR, A +ROM:7037 acall ROM_7165 +ROM:7039 jnz ROM_7059 +ROM:703B mov A, #0xFF +ROM:703D mov DPTR, #0xF49D +ROM:7040 movx @DPTR, A +ROM:7041 inc DPTR +ROM:7042 movx @DPTR, A +ROM:7043 mov DPTR, #0xF564 +ROM:7046 movx A, @DPTR +ROM:7047 add A, #0xE4 +ROM:7049 mov R6, A +ROM:704A mov DPTR, #0xF563 +ROM:704D movx A, @DPTR +ROM:704E addc A, #0xFF +ROM:7050 mov DPTR, #0xF841 +ROM:7053 movx @DPTR, A +ROM:7054 inc DPTR +ROM:7055 xch A, R6 +ROM:7056 movx @DPTR, A +ROM:7057 sjmp ROM_7074 +ROM:7059 ; --------------------------------------------------------------------------- +ROM:7059 +ROM:7059 ROM_7059: ; CODE XREF: ROM_702C+D↑j +ROM:7059 mov DPTR, #0xF563 +ROM:705C movx A, @DPTR +ROM:705D mov R7, A +ROM:705E inc DPTR +ROM:705F movx A, @DPTR +ROM:7060 mov DPTR, #0xF841 +ROM:7063 xch A, R7 +ROM:7064 movx @DPTR, A +ROM:7065 inc DPTR +ROM:7066 mov A, R7 +ROM:7067 movx @DPTR, A +ROM:7068 mov DPTR, #0xF55E +ROM:706B lcall ROM_37C3 +ROM:706E mov R1, A +ROM:706F acall ROM_7153 +ROM:7071 lcall Save_3_bytes_R3_R2_R1 +ROM:7074 +ROM:7074 ROM_7074: ; CODE XREF: ROM_702C+2B↑j +ROM:7074 clr A +ROM:7075 mov DPTR, #0xF844 +ROM:7078 movx @DPTR, A +ROM:7079 inc DPTR +ROM:707A movx @DPTR, A +ROM:707B +ROM:707B ROM_707B: ; CODE XREF: ROM_702C:ROM_70B3↓j +ROM:707B mov DPTR, #0xF841 +ROM:707E lcall ROM_3758 +ROM:7081 mov DPTR, #0xF845 +ROM:7084 movx A, @DPTR +ROM:7085 subb A, R7 +ROM:7086 mov DPTR, #0xF844 +ROM:7089 movx A, @DPTR +ROM:708A subb A, R6 +ROM:708B jnc ROM_70B5 +ROM:708D acall ROM_7153 +ROM:708F lcall ROM_37C3 +ROM:7092 mov R1, A +ROM:7093 mov DPTR, #0xF844 +ROM:7096 acall ROM_716C +ROM:7098 lcall code_891 +ROM:709B mov R7, A +ROM:709C mov DPTR, #0xF49D +ROM:709F movx A, @DPTR +ROM:70A0 movx @DPTR, A +ROM:70A1 inc DPTR +ROM:70A2 movx A, @DPTR +ROM:70A3 xrl A, R7 +ROM:70A4 movx @DPTR, A +ROM:70A5 mov DPTR, #0xF845 +ROM:70A8 movx A, @DPTR +ROM:70A9 inc A +ROM:70AA movx @DPTR, A +ROM:70AB jnz ROM_70B3 +ROM:70AD mov DPTR, #0xF844 +ROM:70B0 movx A, @DPTR +ROM:70B1 inc A +ROM:70B2 movx @DPTR, A +ROM:70B3 +ROM:70B3 ROM_70B3: ; CODE XREF: ROM_702C+7F↑j +ROM:70B3 sjmp ROM_707B +ROM:70B5 ; --------------------------------------------------------------------------- +ROM:70B5 +ROM:70B5 ROM_70B5: ; CODE XREF: ROM_702C+5F↑j +ROM:70B5 lcall ROM_5FCC +ROM:70B8 jnz ROM_710F +ROM:70BA acall ROM_7165 +ROM:70BC jnz ROM_710F +ROM:70BE mov DPTR, #0xF567 +ROM:70C1 movx A, @DPTR +ROM:70C2 add A, #4 +ROM:70C4 mov R7, A +ROM:70C5 mov DPTR, #0xF566 +ROM:70C8 movx A, @DPTR +ROM:70C9 addc A, #0 +ROM:70CB mov R6, A +ROM:70CC clr C +ROM:70CD mov DPTR, #0xF842 +ROM:70D0 movx A, @DPTR +ROM:70D1 subb A, R7 +ROM:70D2 movx @DPTR, A +ROM:70D3 mov DPTR, #0xF841 +ROM:70D6 movx A, @DPTR +ROM:70D7 subb A, R6 +ROM:70D8 movx @DPTR, A +ROM:70D9 acall ROM_7153 +ROM:70DB lcall ROM_37C3 +ROM:70DE mov R1, A +ROM:70DF mov DPTR, #0xF566 +ROM:70E2 acall ROM_716C +ROM:70E4 mov A, R1 +ROM:70E5 add A, #4 +ROM:70E7 mov R1, A +ROM:70E8 clr A +ROM:70E9 addc A, R2 +ROM:70EA mov R2, A +ROM:70EB push RAM_2 +ROM:70ED push RAM_1 +ROM:70EF mov DPTR, #0xF52E +ROM:70F2 lcall load_4_bytes_R4_R5_R6_A +ROM:70F5 acall ROM_7185 +ROM:70F7 mov DPTR, #0xF882 +ROM:70FA mov A, R5 +ROM:70FB lcall Save_3_bytes_A_R2_R1 +ROM:70FE acall ROM_7178 +ROM:7100 mov R5, A +ROM:7101 pop RAM_1 +ROM:7103 pop RAM_2 +ROM:7105 lcall ROM_6FF1 +ROM:7108 clr A +ROM:7109 mov DPTR, #0xF4A1 +ROM:710C movx @DPTR, A +ROM:710D sjmp ROM_7137 +ROM:710F ; --------------------------------------------------------------------------- +ROM:710F +ROM:710F ROM_710F: ; CODE XREF: ROM_702C+8C↑j +ROM:710F ; ROM_702C+90↑j +ROM:710F acall ROM_7165 +ROM:7111 jnz ROM_7114 +ROM:7113 movx @DPTR, A +ROM:7114 +ROM:7114 ROM_7114: ; CODE XREF: ROM_702C+E5↑j +ROM:7114 acall ROM_7153 +ROM:7116 lcall ROM_37C3 +ROM:7119 mov R1, A +ROM:711A push RAM_2 +ROM:711C push RAM_1 +ROM:711E mov DPTR, #0xF52E +ROM:7121 lcall load_4_bytes_R4_R5_R6_A +ROM:7124 acall ROM_7185 +ROM:7126 mov DPTR, #0xF882 +ROM:7129 mov A, R5 +ROM:712A lcall Save_3_bytes_A_R2_R1 +ROM:712D acall ROM_7178 +ROM:712F mov R5, A +ROM:7130 pop RAM_1 +ROM:7132 pop RAM_2 +ROM:7134 lcall ROM_6FF1 +ROM:7137 +ROM:7137 ROM_7137: ; CODE XREF: ROM_702C+E1↑j +ROM:7137 mov DPTR, #0xF52E +ROM:713A lcall load_4_bytes_R0_R1_R2_R3 +ROM:713D mov DPTR, #0xF841 +ROM:7140 lcall ROM_3297 +ROM:7143 lcall ROM_3275 +ROM:7146 lcall ROM_2F7B +ROM:7149 mov DPTR, #0xF52E +ROM:714C lcall save_4_bytes_R4_R7 +ROM:714F clr A +ROM:7150 mov R6, A +ROM:7151 mov R7, A +ROM:7152 ret +ROM:7152 ; End of function ROM_702C +ROM:7152 +ROM:7153 +ROM:7153 ; =============== S U B R O U T I N E ======================================= +ROM:7153 +ROM:7153 +ROM:7153 ROM_7153: ; CODE XREF: ROM_702C+43↑p +ROM:7153 ; ROM_702C+61↑p ... +ROM:7153 mov DPTR, #0xF843 +ROM:7153 ; End of function ROM_7153 +ROM:7153 +ROM:7156 +ROM:7156 ; =============== S U B R O U T I N E ======================================= +ROM:7156 +ROM:7156 +ROM:7156 ROM_7156: ; CODE XREF: ROM_3861+15C↑p +ROM:7156 movx A, @DPTR +ROM:7157 mov B, #0x15 ; B Register +ROM:715A mul AB +ROM:715B add A, #0xB7 +ROM:715D mov DP0L, A ; Data Pointer Low Byte +ROM:715F clr A +ROM:7160 addc A, #0xF4 +ROM:7162 mov DP0H, A ; Data Pointer High Byte +ROM:7164 ret +ROM:7164 ; End of function ROM_7156 +ROM:7164 +ROM:7165 +ROM:7165 ; =============== S U B R O U T I N E ======================================= +ROM:7165 +ROM:7165 +ROM:7165 ROM_7165: ; CODE XREF: ROM_436B-1051↑p +ROM:7165 ; ROM_436B-100C↑p ... +ROM:7165 mov DPTR, #0xF4A1 +ROM:7168 movx A, @DPTR +ROM:7169 xrl A, #1 +ROM:716B ret +ROM:716B ; End of function ROM_7165 +ROM:716B +ROM:716C +ROM:716C ; =============== S U B R O U T I N E ======================================= +ROM:716C +ROM:716C +ROM:716C ROM_716C: ; CODE XREF: ROM_39E2+328↑p +ROM:716C ; ROM_6FF1+F↑p ... +ROM:716C movx A, @DPTR +ROM:716D mov R6, A +ROM:716E inc DPTR +ROM:716F movx A, @DPTR +ROM:7170 mov R7, A +ROM:7170 ; End of function ROM_716C +ROM:7170 +ROM:7171 +ROM:7171 ; =============== S U B R O U T I N E ======================================= +ROM:7171 +ROM:7171 +ROM:7171 ROM_7171: ; CODE XREF: ROM_AD6A+81F↓p +ROM:7171 ; ROM_AD6A+BAC↓p ... +ROM:7171 mov A, R1 +ROM:7172 add A, R7 +ROM:7173 mov R1, A +ROM:7174 mov A, R2 +ROM:7175 addc A, R6 +ROM:7176 mov R2, A +ROM:7177 ret +ROM:7177 ; End of function ROM_7171 +ROM:7177 +ROM:7178 +ROM:7178 ; =============== S U B R O U T I N E ======================================= +ROM:7178 +ROM:7178 +ROM:7178 ROM_7178: ; CODE XREF: ROM_702C+D2↑p +ROM:7178 ; ROM_702C+101↑p +ROM:7178 clr A +ROM:7179 inc DPTR +ROM:717A movx @DPTR, A +ROM:717B inc DPTR +ROM:717C movx @DPTR, A +ROM:717D mov DPTR, #0xF841 +ROM:7180 movx A, @DPTR +ROM:7181 mov R4, A +ROM:7182 inc DPTR +ROM:7183 movx A, @DPTR +ROM:7184 ret +ROM:7184 ; End of function ROM_7178 +ROM:7184 +ROM:7185 +ROM:7185 ; =============== S U B R O U T I N E ======================================= +ROM:7185 +ROM:7185 +ROM:7185 ROM_7185: ; CODE XREF: ROM_702C+C9↑p +ROM:7185 ; ROM_702C+F8↑p +ROM:7185 add A, #0 +ROM:7187 mov R7, A +ROM:7188 mov A, R6 +ROM:7189 addc A, #0x50 ; 'P' +ROM:718B mov R6, A +ROM:718C mov A, R5 +ROM:718D addc A, #4 +ROM:718D ; End of function ROM_7185 +ROM:718D +ROM:718F +ROM:718F ; =============== S U B R O U T I N E ======================================= +ROM:718F +ROM:718F +ROM:718F ROM_718F: ; CODE XREF: ROM_39E2+30↑p +ROM:718F mov R5, A +ROM:7190 clr A +ROM:7191 addc A, R4 +ROM:7192 mov R1, RAM_7 +ROM:7194 mov R2, RAM_6 +ROM:7196 ret +ROM:7196 ; End of function ROM_718F +ROM:7196 +ROM:7197 +ROM:7197 ; =============== S U B R O U T I N E ======================================= +ROM:7197 +ROM:7197 +ROM:7197 ROM_7197: ; CODE XREF: ROM_766A+22↓p +ROM:7197 ; ROM_766A+40↓p +ROM:7197 lcall ROM_91A2 +ROM:719A movx @DPTR, A +ROM:719B inc DPTR +ROM:719C lcall Save_5_bytes_R4_R5_R3_R2_R1 +ROM:719F acall load_0xFEA0_and_xor_0x04 +ROM:71A1 jnz ROM_71F2 +ROM:71A3 mov DPTR, #0xF846 +ROM:71A6 movx A, @DPTR +ROM:71A7 mov R7, A +ROM:71A8 inc DPTR +ROM:71A9 movx A, @DPTR +ROM:71AA mov DPTR, #0xF84F +ROM:71AD acall ROM_76F8 +ROM:71AF mov DPTR, #0xF84D +ROM:71B2 movx @DPTR, A +ROM:71B3 inc DPTR +ROM:71B4 movx @DPTR, A +ROM:71B5 +ROM:71B5 ROM_71B5: ; CODE XREF: ROM_7197+59↓j +ROM:71B5 mov DPTR, #0xF848 +ROM:71B8 lcall ROM_3758 +ROM:71BB lcall ROM_D87E +ROM:71BE jc ROM_71C2 +ROM:71C0 ajmp ROM_728F +ROM:71C2 ; --------------------------------------------------------------------------- +ROM:71C2 +ROM:71C2 ROM_71C2: ; CODE XREF: ROM_7197+27↑j +ROM:71C2 mov DPTR, #0xF84F +ROM:71C5 inc DPTR +ROM:71C6 movx A, @DPTR +ROM:71C7 mov R5, A +ROM:71C8 mov DPTR, #0xF84A +ROM:71CB lcall ROM_37C3 +ROM:71CE mov R1, A +ROM:71CF mov DPTR, #0xF851 +ROM:71D2 acall ROM_716C +ROM:71D4 mov DPTR, #0xF859 +ROM:71D7 lcall Save_3_bytes_R3_R2_R1 +ROM:71DA mov R3, #0x10 +ROM:71DC mov R2, #0 +ROM:71DE mov R7, #0x55 ; 'U' +ROM:71E0 acall ROM_770B +ROM:71E2 inc A +ROM:71E3 movx @DPTR, A +ROM:71E4 jnz ROM_71EC +ROM:71E6 mov DPTR, #0xF84F +ROM:71E9 movx A, @DPTR +ROM:71EA inc A +ROM:71EB movx @DPTR, A +ROM:71EC +ROM:71EC ROM_71EC: ; CODE XREF: ROM_7197+4D↑j +ROM:71EC lcall ROM_D43C +ROM:71EF movx @DPTR, A +ROM:71F0 sjmp ROM_71B5 +ROM:71F2 ; --------------------------------------------------------------------------- +ROM:71F2 +ROM:71F2 ROM_71F2: ; CODE XREF: ROM_7197+A↑j +ROM:71F2 acall ROM_77C5 +ROM:71F4 jz ROM_71F8 +ROM:71F6 ajmp ROM_728F +ROM:71F8 ; --------------------------------------------------------------------------- +ROM:71F8 +ROM:71F8 ROM_71F8: ; CODE XREF: ROM_7197+5D↑j +ROM:71F8 acall ROM_77A7 +ROM:71FA mov DPTR, #0xF847 +ROM:71FD lcall ROM_D995 +ROM:7200 mov DPTR, #0xF846 +ROM:7203 movx A, @DPTR +ROM:7204 swap A +ROM:7205 anl A, #0xF0 +ROM:7207 orl A, R0 +ROM:7208 mov DPTR, #0xF84F +ROM:720B movx @DPTR, A +ROM:720C inc DPTR +ROM:720D xch A, R6 +ROM:720E acall ROM_76FC +ROM:7210 mov DPTR, #0xF84D +ROM:7213 movx @DPTR, A +ROM:7214 inc DPTR +ROM:7215 movx @DPTR, A +ROM:7216 +ROM:7216 ROM_7216: ; CODE XREF: ROM_7197+F3↓j +ROM:7216 mov DPTR, #0xF848 +ROM:7219 lcall ROM_3758 +ROM:721C lcall ROM_D87E +ROM:721F jnc ROM_728C +ROM:7221 mov DPTR, #0xF84F +ROM:7224 acall ROM_7663 +ROM:7226 mov R7, A +ROM:7227 mov DPTR, #0xF853 +ROM:722A acall ROM_77D4 +ROM:722C jnz ROM_7236 +ROM:722E mov DPTR, #0xF853 +ROM:7231 mov A, #0x40 ; '@' +ROM:7233 movx @DPTR, A +ROM:7234 sjmp ROM_725E +ROM:7236 ; --------------------------------------------------------------------------- +ROM:7236 +ROM:7236 ROM_7236: ; CODE XREF: ROM_7197+95↑j +ROM:7236 mov A, R7 +ROM:7237 xrl A, #1 +ROM:7239 orl A, R6 +ROM:723A jnz ROM_7244 +ROM:723C mov DPTR, #0xF853 +ROM:723F mov A, #0x41 ; 'A' +ROM:7241 movx @DPTR, A +ROM:7242 sjmp ROM_725E +ROM:7244 ; --------------------------------------------------------------------------- +ROM:7244 +ROM:7244 ROM_7244: ; CODE XREF: ROM_7197+A3↑j +ROM:7244 mov A, R7 +ROM:7245 xrl A, #2 +ROM:7247 orl A, R6 +ROM:7248 jnz ROM_7252 +ROM:724A mov DPTR, #0xF853 +ROM:724D mov A, #0x42 ; 'B' +ROM:724F movx @DPTR, A +ROM:7250 sjmp ROM_725E +ROM:7252 ; --------------------------------------------------------------------------- +ROM:7252 +ROM:7252 ROM_7252: ; CODE XREF: ROM_7197+B1↑j +ROM:7252 mov A, R7 +ROM:7253 xrl A, #3 +ROM:7255 orl A, R6 +ROM:7256 jnz ROM_725E +ROM:7258 mov DPTR, #0xF853 +ROM:725B mov A, #0x43 ; 'C' +ROM:725D movx @DPTR, A +ROM:725E +ROM:725E ROM_725E: ; CODE XREF: ROM_7197+9D↑j +ROM:725E ; ROM_7197+AB↑j ... +ROM:725E lcall ROM_DA3C +ROM:7261 mov R5, A +ROM:7262 mov DPTR, #0xF84A +ROM:7265 lcall ROM_37C3 +ROM:7268 mov R1, A +ROM:7269 mov DPTR, #0xF851 +ROM:726C lcall ROM_D765 +ROM:726F mov R2, A +ROM:7270 mov DPTR, #0xF859 +ROM:7273 lcall Save_3_bytes_R3_R2_R1 +ROM:7276 mov R3, #0x10 +ROM:7278 mov R2, #0 +ROM:727A acall ROM_770B +ROM:727C add A, #0x10 +ROM:727E movx @DPTR, A +ROM:727F mov DPTR, #0xF84F +ROM:7282 movx A, @DPTR +ROM:7283 addc A, #0 +ROM:7285 movx @DPTR, A +ROM:7286 lcall ROM_D43C +ROM:7289 movx @DPTR, A +ROM:728A sjmp ROM_7216 +ROM:728C ; --------------------------------------------------------------------------- +ROM:728C +ROM:728C ROM_728C: ; CODE XREF: ROM_7197+88↑j +ROM:728C lcall ROM_AB09 +ROM:728F +ROM:728F ROM_728F: ; CODE XREF: ROM_7197+29↑j +ROM:728F ; ROM_7197+5F↑j +ROM:728F ret +ROM:728F ; End of function ROM_7197 +ROM:728F +ROM:7290 +ROM:7290 ; =============== S U B R O U T I N E ======================================= +ROM:7290 +ROM:7290 +ROM:7290 ROM_7290: ; CODE XREF: ROM_770B↓p +ROM:7290 ; ROM_AA40+1F↓p ... +ROM:7290 mov DPTR, #0xF856 +ROM:7293 mov A, R5 +ROM:7294 movx @DPTR, A +ROM:7295 inc DPTR +ROM:7296 mov A, R2 +ROM:7297 movx @DPTR, A +ROM:7298 inc DPTR +ROM:7299 mov A, R3 +ROM:729A movx @DPTR, A +ROM:729B mov A, R7 +ROM:729C add A, ACC ; Accumulator +ROM:729E mov DPTR, #0xF85E +ROM:72A1 movx @DPTR, A +ROM:72A2 mov A, R7 +ROM:72A3 xrl A, #0x55 +ROM:72A5 jnz ROM_72D7 +ROM:72A7 acall ROM_73A9 +ROM:72A9 acall ROM_771C +ROM:72AB acall ROM_732A +ROM:72AD acall ROM_731C +ROM:72AF acall ROM_73A9 +ROM:72B1 acall ROM_7732 +ROM:72B3 +ROM:72B3 ROM_72B3: ; CODE XREF: ROM_7290:ROM_72D5↓j +ROM:72B3 mov DPTR, #0xF857 +ROM:72B6 lcall ROM_3758 +ROM:72B9 lcall ROM_D852 +ROM:72BC jnc ROM_731C +ROM:72BE acall ROM_73F9 +ROM:72C0 lcall ROM_37C3 +ROM:72C3 acall ROM_7712 +ROM:72C5 acall ROM_741C +ROM:72C7 mov DPTR, #0xF85D +ROM:72CA movx A, @DPTR +ROM:72CB inc A +ROM:72CC movx @DPTR, A +ROM:72CD jnz ROM_72D5 +ROM:72CF mov DPTR, #0xF85C +ROM:72D2 movx A, @DPTR +ROM:72D3 inc A +ROM:72D4 movx @DPTR, A +ROM:72D5 +ROM:72D5 ROM_72D5: ; CODE XREF: ROM_7290+3D↑j +ROM:72D5 sjmp ROM_72B3 +ROM:72D7 ; --------------------------------------------------------------------------- +ROM:72D7 +ROM:72D7 ROM_72D7: ; CODE XREF: ROM_7290+15↑j +ROM:72D7 acall ROM_73A9 +ROM:72D9 mov DPTR, #0xF85E +ROM:72DC acall ROM_771C +ROM:72DE acall ROM_732A +ROM:72E0 acall ROM_7401 +ROM:72E2 acall ROM_7732 +ROM:72E4 +ROM:72E4 ROM_72E4: ; CODE XREF: ROM_7290:ROM_730F↓j +ROM:72E4 mov DPTR, #0xF858 +ROM:72E7 movx A, @DPTR +ROM:72E8 add A, #0xFF +ROM:72EA mov R7, A +ROM:72EB mov DPTR, #0xF857 +ROM:72EE movx A, @DPTR +ROM:72EF addc A, #0xFF +ROM:72F1 mov R6, A +ROM:72F2 clr C +ROM:72F3 lcall ROM_D852 +ROM:72F6 jnc ROM_7311 +ROM:72F8 acall ROM_73F9 +ROM:72FA lcall ROM_37C3 +ROM:72FD acall ROM_7712 +ROM:72FF acall ROM_741C +ROM:7301 mov DPTR, #0xF85D +ROM:7304 movx A, @DPTR +ROM:7305 inc A +ROM:7306 movx @DPTR, A +ROM:7307 jnz ROM_730F +ROM:7309 mov DPTR, #0xF85C +ROM:730C movx A, @DPTR +ROM:730D inc A +ROM:730E movx @DPTR, A +ROM:730F +ROM:730F ROM_730F: ; CODE XREF: ROM_7290+77↑j +ROM:730F sjmp ROM_72E4 +ROM:7311 ; --------------------------------------------------------------------------- +ROM:7311 +ROM:7311 ROM_7311: ; CODE XREF: ROM_7290+66↑j +ROM:7311 clr A +ROM:7312 mov R7, A +ROM:7313 acall ROM_73FB +ROM:7315 lcall ROM_37C3 +ROM:7318 acall ROM_7712 +ROM:731A acall ROM_741C +ROM:731A ; End of function ROM_7290 +ROM:731A +ROM:731C +ROM:731C ; =============== S U B R O U T I N E ======================================= +ROM:731C +ROM:731C +ROM:731C ROM_731C: ; CODE XREF: ROM_7290+1D↑p +ROM:731C ; ROM_7290+2C↑j ... +ROM:731C acall ROM_73F5 +ROM:731E clr P1.4 ; Port 1 +ROM:7320 clr P1.5 ; Port 1 +ROM:7322 setb P1.4 ; Port 1 +ROM:7324 acall ROM_7365 +ROM:7326 setb P1.5 ; Port 1 +ROM:7328 sjmp ROM_7365 +ROM:7328 ; End of function ROM_731C +ROM:7328 +ROM:732A +ROM:732A ; =============== S U B R O U T I N E ======================================= +ROM:732A +ROM:732A +ROM:732A ROM_732A: ; CODE XREF: ROM_7290+1B↑p +ROM:732A ; ROM_7290+4E↑p ... +ROM:732A acall ROM_73F5 +ROM:732C clr A +ROM:732D mov R6, A +ROM:732E +ROM:732E ROM_732E: ; CODE XREF: ROM_732A+1D↓j +ROM:732E mov A, R6 +ROM:732F lcall ROM_3FE6 +ROM:7332 jnc ROM_7349 +ROM:7334 mov A, R7 +ROM:7335 jnb ACC7, ROM_733C ; Accumulator +ROM:7338 setb P1.5 ; Port 1 +ROM:733A sjmp ROM_733E +ROM:733C ; --------------------------------------------------------------------------- +ROM:733C +ROM:733C ROM_733C: ; CODE XREF: ROM_732A+B↑j +ROM:733C clr P1.5 ; Port 1 +ROM:733E +ROM:733E ROM_733E: ; CODE XREF: ROM_732A+10↑j +ROM:733E acall ROM_735D +ROM:7340 acall ROM_7365 +ROM:7342 mov A, R7 +ROM:7343 add A, ACC ; Accumulator +ROM:7345 mov R7, A +ROM:7346 inc R6 +ROM:7347 sjmp ROM_732E +ROM:7349 ; --------------------------------------------------------------------------- +ROM:7349 +ROM:7349 ROM_7349: ; CODE XREF: ROM_732A+8↑j +ROM:7349 acall ROM_77C1 +ROM:734B acall ROM_77B5 +ROM:734D mov R6, RAM_7 +ROM:734F clr P1.4 ; Port 1 +ROM:7351 acall ROM_7365 +ROM:7353 acall ROM_7365 +ROM:7355 mov A, R7 +ROM:7356 mov R7, #0 +ROM:7358 jnz ROM_735C +ROM:735A mov R7, #1 +ROM:735C +ROM:735C ROM_735C: ; CODE XREF: ROM_732A+2E↑j +ROM:735C ret +ROM:735C ; End of function ROM_732A +ROM:735C +ROM:735D +ROM:735D ; =============== S U B R O U T I N E ======================================= +ROM:735D +ROM:735D +ROM:735D ROM_735D: ; CODE XREF: ROM_732A:ROM_733E↑p +ROM:735D ; ROM_736A+2E↓p ... +ROM:735D acall ROM_7365 +ROM:735F setb P1.4 ; Port 1 +ROM:7361 acall ROM_7365 +ROM:7363 clr P1.4 ; Port 1 +ROM:7363 ; End of function ROM_735D +ROM:7363 +ROM:7365 +ROM:7365 ; =============== S U B R O U T I N E ======================================= +ROM:7365 +ROM:7365 +ROM:7365 ROM_7365: ; CODE XREF: ROM_731C+8↑p +ROM:7365 ; ROM_731C+C↑j ... +ROM:7365 nop +ROM:7366 nop +ROM:7367 nop +ROM:7368 nop +ROM:7369 ret +ROM:7369 ; End of function ROM_7365 +ROM:7369 +ROM:736A +ROM:736A ; =============== S U B R O U T I N E ======================================= +ROM:736A +ROM:736A +ROM:736A ROM_736A: ; CODE XREF: ROM_73FB↓p +ROM:736A mov R6, RAM_7 +ROM:736C clr A +ROM:736D mov R5, A +ROM:736E acall ROM_77C1 +ROM:7370 mov R4, A +ROM:7371 +ROM:7371 ROM_7371: ; CODE XREF: ROM_736A+21↓j +ROM:7371 mov A, R4 +ROM:7372 lcall ROM_3FE6 +ROM:7375 jnc ROM_738D +ROM:7377 mov A, R5 +ROM:7378 add A, ACC ; Accumulator +ROM:737A mov R5, A +ROM:737B acall ROM_77B5 +ROM:737D mov A, R7 +ROM:737E jz ROM_7384 +ROM:7380 mov A, R5 +ROM:7381 orl A, #1 +ROM:7383 mov R5, A +ROM:7384 +ROM:7384 ROM_7384: ; CODE XREF: ROM_736A+14↑j +ROM:7384 clr P1.4 ; Port 1 +ROM:7386 acall ROM_7365 +ROM:7388 acall ROM_7365 +ROM:738A inc R4 +ROM:738B sjmp ROM_7371 +ROM:738D ; --------------------------------------------------------------------------- +ROM:738D +ROM:738D ROM_738D: ; CODE XREF: ROM_736A+B↑j +ROM:738D mov R7, RAM_6 +ROM:738F mov A, R7 +ROM:7390 xrl A, #1 +ROM:7392 jnz ROM_739E +ROM:7394 acall ROM_73F5 +ROM:7396 clr P1.5 ; Port 1 +ROM:7398 acall ROM_735D +ROM:739A setb P1.5 ; Port 1 +ROM:739C sjmp ROM_73A6 +ROM:739E ; --------------------------------------------------------------------------- +ROM:739E +ROM:739E ROM_739E: ; CODE XREF: ROM_736A+28↑j +ROM:739E acall ROM_73F5 +ROM:73A0 setb P1.5 ; Port 1 +ROM:73A2 acall ROM_735D +ROM:73A4 clr P1.5 ; Port 1 +ROM:73A6 +ROM:73A6 ROM_73A6: ; CODE XREF: ROM_736A+32↑j +ROM:73A6 mov R7, RAM_5 +ROM:73A8 ret +ROM:73A8 ; End of function ROM_736A +ROM:73A8 +ROM:73A9 +ROM:73A9 ; =============== S U B R O U T I N E ======================================= +ROM:73A9 +ROM:73A9 +ROM:73A9 ROM_73A9: ; CODE XREF: ROM_7290+17↑p +ROM:73A9 ; ROM_7290+1F↑p ... +ROM:73A9 setb P1.5 ; Port 1 +ROM:73AB setb P1.4 ; Port 1 +ROM:73AD acall ROM_7365 +ROM:73AF clr P1.5 ; Port 1 +ROM:73B1 acall ROM_7365 +ROM:73B3 clr P1.4 ; Port 1 +ROM:73B5 sjmp ROM_7365 +ROM:73B5 ; End of function ROM_73A9 +ROM:73B5 +ROM:73B7 +ROM:73B7 ; =============== S U B R O U T I N E ======================================= +ROM:73B7 +ROM:73B7 +ROM:73B7 ROM_73B7: ; CODE XREF: ROM_755B+49↓p +ROM:73B7 ; ROM_755B+EB↓p ... +ROM:73B7 mov DPTR, #0xF97B +ROM:73BA mov A, R3 +ROM:73BB movx @DPTR, A +ROM:73BC mov A, R7 +ROM:73BD add A, ACC ; Accumulator +ROM:73BF mov R7, A +ROM:73C0 acall ROM_73A9 +ROM:73C2 acall ROM_732A +ROM:73C4 mov R7, RAM_5 +ROM:73C6 acall ROM_732A +ROM:73C8 clr A +ROM:73C9 mov R5, A +ROM:73CA mov R4, A +ROM:73CB +ROM:73CB ROM_73CB: ; CODE XREF: ROM_73B7:ROM_73F1↓j +ROM:73CB mov DPTR, #0xF97B +ROM:73CE movx A, @DPTR +ROM:73CF mov R7, A +ROM:73D0 clr C +ROM:73D1 mov A, R5 +ROM:73D2 subb A, R7 +ROM:73D3 mov A, R4 +ROM:73D4 subb A, #0 +ROM:73D6 jnc ROM_73F3 +ROM:73D8 mov DPTR, #0xF97F +ROM:73DB movx A, @DPTR +ROM:73DC jnz ROM_73E8 +ROM:73DE mov DPTR, #0xF97C +ROM:73E1 lcall ROM_37C3 +ROM:73E4 acall ROM_7703 +ROM:73E6 sjmp ROM_73E9 +ROM:73E8 ; --------------------------------------------------------------------------- +ROM:73E8 +ROM:73E8 ROM_73E8: ; CODE XREF: ROM_73B7+25↑j +ROM:73E8 clr A +ROM:73E9 +ROM:73E9 ROM_73E9: ; CODE XREF: ROM_73B7+2F↑j +ROM:73E9 mov R7, A +ROM:73EA acall ROM_732A +ROM:73EC inc R5 +ROM:73ED cjne R5, #0, ROM_73F1 +ROM:73F0 inc R4 +ROM:73F1 +ROM:73F1 ROM_73F1: ; CODE XREF: ROM_73B7+36↑j +ROM:73F1 sjmp ROM_73CB +ROM:73F3 ; --------------------------------------------------------------------------- +ROM:73F3 +ROM:73F3 ROM_73F3: ; CODE XREF: ROM_73B7+1F↑j +ROM:73F3 ajmp ROM_731C +ROM:73F3 ; End of function ROM_73B7 +ROM:73F3 +ROM:73F5 +ROM:73F5 ; =============== S U B R O U T I N E ======================================= +ROM:73F5 +ROM:73F5 +ROM:73F5 ROM_73F5: ; CODE XREF: ROM_731C↑p +ROM:73F5 ; ROM_732A↑p ... +ROM:73F5 anl FSR_BA, #0xDF +ROM:73F8 ret +ROM:73F8 ; End of function ROM_73F5 +ROM:73F8 +ROM:73F9 +ROM:73F9 ; =============== S U B R O U T I N E ======================================= +ROM:73F9 +ROM:73F9 +ROM:73F9 ROM_73F9: ; CODE XREF: ROM_7290+2E↑p +ROM:73F9 ; ROM_7290+68↑p +ROM:73F9 mov R7, #1 +ROM:73F9 ; End of function ROM_73F9 +ROM:73F9 +ROM:73FB +ROM:73FB ; =============== S U B R O U T I N E ======================================= +ROM:73FB +ROM:73FB +ROM:73FB ROM_73FB: ; CODE XREF: ROM_7290+83↑p +ROM:73FB acall ROM_736A +ROM:73FD mov DPTR, #0xF859 +ROM:7400 ret +ROM:7400 ; End of function ROM_73FB +ROM:7400 +ROM:7401 +ROM:7401 ; =============== S U B R O U T I N E ======================================= +ROM:7401 +ROM:7401 +ROM:7401 ROM_7401: ; CODE XREF: ROM_7290+50↑p +ROM:7401 setb P1.4 ; Port 1 +ROM:7403 acall ROM_7365 +ROM:7405 acall ROM_73F5 +ROM:7407 acall ROM_7365 +ROM:7409 clr P1.4 ; Port 1 +ROM:740B ajmp ROM_7365 +ROM:740B ; End of function ROM_7401 +ROM:740B +ROM:740D +ROM:740D ; =============== S U B R O U T I N E ======================================= +ROM:740D +ROM:740D +ROM:740D ROM_740D: ; CODE XREF: ROM_7424+37↓p +ROM:740D ; ROM_7424+4F↓p ... +ROM:740D mov R1, A +ROM:740E mov DPTR, #0xF975 +ROM:7411 clr A +ROM:7412 mov B, #1 ; B Register +ROM:7415 lcall code_991 +ROM:7418 mov R4, A +ROM:7419 mov A, R1 +ROM:741A add A, B ; B Register +ROM:741A ; End of function ROM_740D +ROM:741A +ROM:741C +ROM:741C ; =============== S U B R O U T I N E ======================================= +ROM:741C +ROM:741C +ROM:741C ROM_741C: ; CODE XREF: ROM_9CCA-7D09↑p +ROM:741C ; ROM_7290+35↑p ... +ROM:741C mov R1, A +ROM:741D mov A, R2 +ROM:741E addc A, R4 +ROM:741F mov R2, A +ROM:7420 mov A, R7 +ROM:7421 ljmp code_8CC +ROM:7421 ; End of function ROM_741C +ROM:7421 +ROM:7424 +ROM:7424 ; =============== S U B R O U T I N E ======================================= +ROM:7424 +ROM:7424 +ROM:7424 ROM_7424: ; CODE XREF: ROM_8BB8+4C↓p +ROM:7424 acall ROM_77CC +ROM:7426 lcall Save_4bytes_A_R3_R2_R1 +ROM:7429 clr A +ROM:742A mov DPTR, #0xF973 +ROM:742D lcall ROM_3F94 +ROM:7430 mov R0, #0x77 ; 'w' +ROM:7432 mov R4, #0xF9 +ROM:7434 mov R5, #1 +ROM:7436 mov R3, #0xFF +ROM:7438 mov R2, #0x1C +ROM:743A mov R1, #0xFF +ROM:743C mov R6, A +ROM:743D acall ROM_7726 +ROM:743F jnz ROM_748D +ROM:7441 mov DPTR, #0xF96E +ROM:7444 lcall ROM_37C3 +ROM:7447 lcall ROM_D588 +ROM:744A mov A, #3 +ROM:744C lcall code_8CC +ROM:744F mov DPTR, #0xF969 +ROM:7452 inc DPTR +ROM:7453 movx A, @DPTR +ROM:7454 mov R7, A +ROM:7455 mov DPTR, #0xF96E +ROM:7458 lcall ROM_37C3 +ROM:745B acall ROM_740D +ROM:745D acall ROM_7553 +ROM:745F +ROM:745F ROM_745F: ; CODE XREF: ROM_7424:ROM_747B↓j +ROM:745F lcall ROM_9B5D +ROM:7462 jnc ROM_747D +ROM:7464 mov DPTR, #0xF96B +ROM:7467 lcall ROM_37C3 +ROM:746A acall ROM_7703 +ROM:746C mov R7, A +ROM:746D mov DPTR, #0xF96E +ROM:7470 lcall ROM_37C3 +ROM:7473 acall ROM_740D +ROM:7475 acall ROM_7541 +ROM:7477 jnz ROM_747B +ROM:7479 acall ROM_7548 +ROM:747B +ROM:747B ROM_747B: ; CODE XREF: ROM_7424+53↑j +ROM:747B sjmp ROM_745F +ROM:747D ; --------------------------------------------------------------------------- +ROM:747D +ROM:747D ROM_747D: ; CODE XREF: ROM_7424+3E↑j +ROM:747D mov DPTR, #0xF96E +ROM:7480 lcall ROM_37C3 +ROM:7483 lcall ROM_D588 +ROM:7486 mov A, #0xFE +ROM:7488 lcall code_8CC +ROM:748B ajmp ROM_7538 +ROM:748D ; --------------------------------------------------------------------------- +ROM:748D +ROM:748D ROM_748D: ; CODE XREF: ROM_7424+1B↑j +ROM:748D setb C +ROM:748E mov DPTR, #0xF96A +ROM:7491 movx A, @DPTR +ROM:7492 subb A, #0xF0 +ROM:7494 mov DPTR, #0xF969 +ROM:7497 movx A, @DPTR +ROM:7498 subb A, #0 +ROM:749A jc ROM_74B9 +ROM:749C acall ROM_7663 +ROM:749E swap A +ROM:749F mov R0, A +ROM:74A0 anl A, #0xF0 +ROM:74A2 xch A, R0 +ROM:74A3 mov A, R5 +ROM:74A4 swap A +ROM:74A5 anl A, #0xF +ROM:74A7 orl A, R0 +ROM:74A8 mov R7, A +ROM:74A9 mov A, R5 +ROM:74AA anl A, #0xF +ROM:74AC jz ROM_74B2 +ROM:74AE inc R7 +ROM:74AF cjne R7, #0, ROM_74B2 +ROM:74B2 +ROM:74B2 ROM_74B2: ; CODE XREF: ROM_7424+88↑j +ROM:74B2 ; ROM_7424+8B↑j +ROM:74B2 mov DPTR, #0xF97B +ROM:74B5 mov A, R7 +ROM:74B6 movx @DPTR, A +ROM:74B7 sjmp ROM_74BF +ROM:74B9 ; --------------------------------------------------------------------------- +ROM:74B9 +ROM:74B9 ROM_74B9: ; CODE XREF: ROM_7424+76↑j +ROM:74B9 mov DPTR, #0xF97B +ROM:74BC mov A, #0xF +ROM:74BE movx @DPTR, A +ROM:74BF +ROM:74BF ROM_74BF: ; CODE XREF: ROM_7424+93↑j +ROM:74BF mov DPTR, #0xF969 +ROM:74C2 acall ROM_7663 +ROM:74C4 mov DPTR, #0xF983 +ROM:74C7 acall ROM_754F +ROM:74C9 +ROM:74C9 ROM_74C9: ; CODE XREF: ROM_7424:ROM_74EC↓j +ROM:74C9 mov DPTR, #0xF971 +ROM:74CC lcall ROM_3758 +ROM:74CF subb A, #0xE +ROM:74D1 mov A, R6 +ROM:74D2 subb A, #0 +ROM:74D4 jnc ROM_74EE +ROM:74D6 lcall ROM_D758 +ROM:74D9 mov DPTR, #0xF974 +ROM:74DC movx A, @DPTR +ROM:74DD add A, R7 +ROM:74DE movx @DPTR, A +ROM:74DF mov DPTR, #0xF973 +ROM:74E2 movx A, @DPTR +ROM:74E3 addc A, #0 +ROM:74E5 movx @DPTR, A +ROM:74E6 acall ROM_7541 +ROM:74E8 jnz ROM_74EC +ROM:74EA acall ROM_7548 +ROM:74EC +ROM:74EC ROM_74EC: ; CODE XREF: ROM_7424+C4↑j +ROM:74EC sjmp ROM_74C9 +ROM:74EE ; --------------------------------------------------------------------------- +ROM:74EE +ROM:74EE ROM_74EE: ; CODE XREF: ROM_7424+B0↑j +ROM:74EE mov DPTR, #0xF973 +ROM:74F1 acall ROM_7663 +ROM:74F3 mov DPTR, #0xF985 +ROM:74F6 acall ROM_754F +ROM:74F8 +ROM:74F8 ROM_74F8: ; CODE XREF: ROM_7424:ROM_7516↓j +ROM:74F8 mov DPTR, #0xF971 +ROM:74FB lcall ROM_3758 +ROM:74FE subb A, #0x10 +ROM:7500 mov A, R6 +ROM:7501 subb A, #0 +ROM:7503 jnc ROM_7518 +ROM:7505 lcall ROM_D758 +ROM:7508 mov DPTR, #0xF96E +ROM:750B lcall ROM_37C3 +ROM:750E acall ROM_740D +ROM:7510 acall ROM_7541 +ROM:7512 jnz ROM_7516 +ROM:7514 acall ROM_7548 +ROM:7516 +ROM:7516 ROM_7516: ; CODE XREF: ROM_7424+EE↑j +ROM:7516 sjmp ROM_74F8 +ROM:7518 ; --------------------------------------------------------------------------- +ROM:7518 +ROM:7518 ROM_7518: ; CODE XREF: ROM_7424+DF↑j +ROM:7518 acall ROM_7553 +ROM:751A +ROM:751A ROM_751A: ; CODE XREF: ROM_7424:ROM_7536↓j +ROM:751A lcall ROM_9B5D +ROM:751D jnc ROM_7538 +ROM:751F mov DPTR, #0xF96B +ROM:7522 lcall ROM_37C3 +ROM:7525 acall ROM_7703 +ROM:7527 mov R7, A +ROM:7528 mov DPTR, #0xF96E +ROM:752B lcall ROM_37C3 +ROM:752E acall ROM_740D +ROM:7530 acall ROM_7541 +ROM:7532 jnz ROM_7536 +ROM:7534 acall ROM_7548 +ROM:7536 +ROM:7536 ROM_7536: ; CODE XREF: ROM_7424+10E↑j +ROM:7536 sjmp ROM_751A +ROM:7538 ; --------------------------------------------------------------------------- +ROM:7538 +ROM:7538 ROM_7538: ; CODE XREF: ROM_7424+67↑j +ROM:7538 ; ROM_7424+F9↑j +ROM:7538 mov DPTR, #0xF975 +ROM:753B movx A, @DPTR +ROM:753C mov R6, A +ROM:753D inc DPTR +ROM:753E movx A, @DPTR +ROM:753F mov R7, A +ROM:7540 ret +ROM:7540 ; End of function ROM_7424 +ROM:7540 +ROM:7541 +ROM:7541 ; =============== S U B R O U T I N E ======================================= +ROM:7541 +ROM:7541 +ROM:7541 ROM_7541: ; CODE XREF: ROM_7424+51↑p +ROM:7541 ; ROM_7424+C2↑p ... +ROM:7541 mov DPTR, #0xF972 +ROM:7544 movx A, @DPTR +ROM:7545 inc A +ROM:7546 movx @DPTR, A +ROM:7547 ret +ROM:7547 ; End of function ROM_7541 +ROM:7547 +ROM:7548 +ROM:7548 ; =============== S U B R O U T I N E ======================================= +ROM:7548 +ROM:7548 +ROM:7548 ROM_7548: ; CODE XREF: ROM_7424+55↑p +ROM:7548 ; ROM_7424+C6↑p ... +ROM:7548 mov DPTR, #0xF971 +ROM:754B movx A, @DPTR +ROM:754C inc A +ROM:754D movx @DPTR, A +ROM:754E ret +ROM:754E ; End of function ROM_7548 +ROM:754E +ROM:754F +ROM:754F ; =============== S U B R O U T I N E ======================================= +ROM:754F +ROM:754F +ROM:754F ROM_754F: ; CODE XREF: ROM_7424+A3↑p +ROM:754F ; ROM_7424+D2↑p +ROM:754F movx @DPTR, A +ROM:7550 inc DPTR +ROM:7551 mov A, R5 +ROM:7552 movx @DPTR, A +ROM:7552 ; End of function ROM_754F +ROM:7552 +ROM:7553 +ROM:7553 ; =============== S U B R O U T I N E ======================================= +ROM:7553 +ROM:7553 +ROM:7553 ROM_7553: ; CODE XREF: ROM_7424+39↑p +ROM:7553 ; ROM_7424:ROM_7518↑p +ROM:7553 clr A +ROM:7554 mov DPTR, #0xF971 +ROM:7557 movx @DPTR, A +ROM:7558 inc DPTR +ROM:7559 movx @DPTR, A +ROM:755A ret +ROM:755A ; End of function ROM_7553 +ROM:755A +ROM:755B +ROM:755B ; =============== S U B R O U T I N E ======================================= +ROM:755B +ROM:755B +ROM:755B ROM_755B: ; CODE XREF: ROM_766A+63↓p +ROM:755B ; ROM_766A:ROM_76EA↓j ... +ROM:755B acall ROM_77CC +ROM:755D movx @DPTR, A +ROM:755E inc DPTR +ROM:755F lcall Save_5_bytes_R4_R5_R3_R2_R1 +ROM:7562 acall load_0xFEA0_and_xor_0x04 +ROM:7564 jnz ROM_75B9 +ROM:7566 mov DPTR, #0xF969 +ROM:7569 movx A, @DPTR +ROM:756A mov R7, A +ROM:756B inc DPTR +ROM:756C movx A, @DPTR +ROM:756D mov DPTR, #0xF972 +ROM:7570 acall ROM_76F8 +ROM:7572 mov DPTR, #0xF970 +ROM:7575 movx @DPTR, A +ROM:7576 inc DPTR +ROM:7577 movx @DPTR, A +ROM:7578 +ROM:7578 ROM_7578: ; CODE XREF: ROM_755B+5C↓j +ROM:7578 mov DPTR, #0xF96B +ROM:757B lcall ROM_3758 +ROM:757E lcall ROM_D873 +ROM:7581 jc ROM_7585 +ROM:7583 ajmp ROM_7662 +ROM:7585 ; --------------------------------------------------------------------------- +ROM:7585 +ROM:7585 ROM_7585: ; CODE XREF: ROM_755B+26↑j +ROM:7585 mov DPTR, #0xF972 +ROM:7588 inc DPTR +ROM:7589 movx A, @DPTR +ROM:758A mov R5, A +ROM:758B mov DPTR, #0xF96D +ROM:758E lcall ROM_37C3 +ROM:7591 mov R1, A +ROM:7592 mov DPTR, #0xF974 +ROM:7595 acall ROM_716C +ROM:7597 mov DPTR, #0xF97C +ROM:759A lcall Save_3_bytes_R3_R2_R1 +ROM:759D clr A +ROM:759E inc DPTR +ROM:759F movx @DPTR, A +ROM:75A0 mov R3, #0x10 +ROM:75A2 mov R7, #0x55 ; 'U' +ROM:75A4 acall ROM_73B7 +ROM:75A6 lcall ROM_4CB3 +ROM:75A9 mov DPTR, #0xF973 +ROM:75AC movx A, @DPTR +ROM:75AD inc A +ROM:75AE movx @DPTR, A +ROM:75AF jnz ROM_75B3 +ROM:75B1 acall ROM_7541 +ROM:75B3 +ROM:75B3 ROM_75B3: ; CODE XREF: ROM_755B+54↑j +ROM:75B3 lcall ROM_D458 +ROM:75B6 movx @DPTR, A +ROM:75B7 sjmp ROM_7578 +ROM:75B9 ; --------------------------------------------------------------------------- +ROM:75B9 +ROM:75B9 ROM_75B9: ; CODE XREF: ROM_755B+9↑j +ROM:75B9 acall ROM_77C5 +ROM:75BB jz ROM_75BF +ROM:75BD ajmp ROM_7662 +ROM:75BF ; --------------------------------------------------------------------------- +ROM:75BF +ROM:75BF ROM_75BF: ; CODE XREF: ROM_755B+60↑j +ROM:75BF acall ROM_77A7 +ROM:75C1 mov DPTR, #0xF96A +ROM:75C4 lcall ROM_D995 +ROM:75C7 mov DPTR, #0xF969 +ROM:75CA movx A, @DPTR +ROM:75CB swap A +ROM:75CC anl A, #0xF0 +ROM:75CE orl A, R0 +ROM:75CF mov DPTR, #0xF972 +ROM:75D2 movx @DPTR, A +ROM:75D3 inc DPTR +ROM:75D4 xch A, R6 +ROM:75D5 acall ROM_76FC +ROM:75D7 mov DPTR, #0xF970 +ROM:75DA movx @DPTR, A +ROM:75DB inc DPTR +ROM:75DC movx @DPTR, A +ROM:75DD +ROM:75DD ROM_75DD: ; CODE XREF: ROM_755B+102↓j +ROM:75DD mov DPTR, #0xF96B +ROM:75E0 lcall ROM_3758 +ROM:75E3 lcall ROM_D873 +ROM:75E6 jnc ROM_765F +ROM:75E8 mov DPTR, #0xF972 +ROM:75EB acall ROM_7663 +ROM:75ED mov R7, A +ROM:75EE mov DPTR, #0xF976 +ROM:75F1 acall ROM_77D4 +ROM:75F3 jnz ROM_75FD +ROM:75F5 mov DPTR, #0xF976 +ROM:75F8 mov A, #0x40 ; '@' +ROM:75FA movx @DPTR, A +ROM:75FB sjmp ROM_7625 +ROM:75FD ; --------------------------------------------------------------------------- +ROM:75FD +ROM:75FD ROM_75FD: ; CODE XREF: ROM_755B+98↑j +ROM:75FD mov A, R7 +ROM:75FE xrl A, #1 +ROM:7600 orl A, R6 +ROM:7601 jnz ROM_760B +ROM:7603 mov DPTR, #0xF976 +ROM:7606 mov A, #0x41 ; 'A' +ROM:7608 movx @DPTR, A +ROM:7609 sjmp ROM_7625 +ROM:760B ; --------------------------------------------------------------------------- +ROM:760B +ROM:760B ROM_760B: ; CODE XREF: ROM_755B+A6↑j +ROM:760B mov A, R7 +ROM:760C xrl A, #2 +ROM:760E orl A, R6 +ROM:760F jnz ROM_7619 +ROM:7611 mov DPTR, #0xF976 +ROM:7614 mov A, #0x42 ; 'B' +ROM:7616 movx @DPTR, A +ROM:7617 sjmp ROM_7625 +ROM:7619 ; --------------------------------------------------------------------------- +ROM:7619 +ROM:7619 ROM_7619: ; CODE XREF: ROM_755B+B4↑j +ROM:7619 mov A, R7 +ROM:761A xrl A, #3 +ROM:761C orl A, R6 +ROM:761D jnz ROM_7625 +ROM:761F mov DPTR, #0xF976 +ROM:7622 mov A, #0x43 ; 'C' +ROM:7624 movx @DPTR, A +ROM:7625 +ROM:7625 ROM_7625: ; CODE XREF: ROM_755B+A0↑j +ROM:7625 ; ROM_755B+AE↑j ... +ROM:7625 mov DPTR, #0xF976 +ROM:7628 movx A, @DPTR +ROM:7629 mov R7, A +ROM:762A inc DPTR +ROM:762B movx A, @DPTR +ROM:762C mov R5, A +ROM:762D mov DPTR, #0xF96D +ROM:7630 lcall ROM_37C3 +ROM:7633 mov R1, A +ROM:7634 mov DPTR, #0xF974 +ROM:7637 lcall ROM_D765 +ROM:763A mov R2, A +ROM:763B mov DPTR, #0xF97C +ROM:763E lcall Save_3_bytes_R3_R2_R1 +ROM:7641 clr A +ROM:7642 inc DPTR +ROM:7643 movx @DPTR, A +ROM:7644 mov R3, #0x10 +ROM:7646 acall ROM_73B7 +ROM:7648 lcall ROM_4CB3 +ROM:764B mov DPTR, #0xF973 +ROM:764E movx A, @DPTR +ROM:764F add A, #0x10 +ROM:7651 movx @DPTR, A +ROM:7652 mov DPTR, #0xF972 +ROM:7655 movx A, @DPTR +ROM:7656 addc A, #0 +ROM:7658 movx @DPTR, A +ROM:7659 lcall ROM_D458 +ROM:765C movx @DPTR, A +ROM:765D ajmp ROM_75DD +ROM:765F ; --------------------------------------------------------------------------- +ROM:765F +ROM:765F ROM_765F: ; CODE XREF: ROM_755B+8B↑j +ROM:765F lcall ROM_AB09 +ROM:7662 +ROM:7662 ROM_7662: ; CODE XREF: ROM_755B+28↑j +ROM:7662 ; ROM_755B+62↑j +ROM:7662 ret +ROM:7662 ; End of function ROM_755B +ROM:7662 +ROM:7663 +ROM:7663 ; =============== S U B R O U T I N E ======================================= +ROM:7663 +ROM:7663 +ROM:7663 ROM_7663: ; CODE XREF: ROM_7197+8D↑p +ROM:7663 ; ROM_7424+78↑p ... +ROM:7663 movx A, @DPTR +ROM:7664 mov R4, A +ROM:7665 inc DPTR +ROM:7666 movx A, @DPTR +ROM:7667 mov R5, A +ROM:7668 mov A, R4 +ROM:7669 ret +ROM:7669 ; End of function ROM_7663 +ROM:7669 +ROM:766A +ROM:766A ; =============== S U B R O U T I N E ======================================= +ROM:766A +ROM:766A +ROM:766A ROM_766A: ; CODE XREF: ROM_AA40+64↓p +ROM:766A mov DPTR, #0xF835 +ROM:766D mov A, R7 +ROM:766E movx @DPTR, A +ROM:766F mov R0, #0x36 ; '6' +ROM:7671 mov R4, #0xF8 +ROM:7673 mov R5, #1 +ROM:7675 mov R3, #0xFF +ROM:7677 mov R2, #0x1C +ROM:7679 mov R1, #0xDF +ROM:767B mov R6, #0 +ROM:767D acall ROM_7726 +ROM:767F jnz ROM_76A4 +ROM:7681 mov R3, #1 +ROM:7683 mov R2, #0xF8 +ROM:7685 mov R1, #0x36 ; '6' +ROM:7687 mov R5, #0x10 +ROM:7689 mov R4, A +ROM:768A mov R7, A +ROM:768B mov R6, A +ROM:768C acall ROM_7197 +ROM:768E mov DPTR, #0xF835 +ROM:7691 movx A, @DPTR +ROM:7692 add A, ACC ; Accumulator +ROM:7694 inc DPTR +ROM:7695 movx @DPTR, A +ROM:7696 mov DPTR, #0xF840 +ROM:7699 mov A, #0xFF +ROM:769B movx @DPTR, A +ROM:769C inc DPTR +ROM:769D acall ROM_76EC +ROM:769F clr A +ROM:76A0 mov R7, A +ROM:76A1 mov R6, A +ROM:76A2 sjmp ROM_76EA +ROM:76A4 ; --------------------------------------------------------------------------- +ROM:76A4 +ROM:76A4 ROM_76A4: ; CODE XREF: ROM_766A+15↑j +ROM:76A4 acall ROM_76ED +ROM:76A6 mov R7, #0x3D ; '=' +ROM:76A8 mov R6, #0 +ROM:76AA acall ROM_7197 +ROM:76AC clr A +ROM:76AD mov R7, A +ROM:76AE +ROM:76AE ROM_76AE: ; CODE XREF: ROM_766A+5B↓j +ROM:76AE mov A, R7 +ROM:76AF lcall ROM_3FE6 +ROM:76B2 jnc ROM_76C7 +ROM:76B4 mov A, R7 +ROM:76B5 add A, #0xA0 +ROM:76B7 mov R6, A +ROM:76B8 mov A, #0x36 ; '6' +ROM:76BA add A, R7 +ROM:76BB mov DP0L, A ; Data Pointer Low Byte +ROM:76BD clr A +ROM:76BE addc A, #0xF8 +ROM:76C0 mov DP0H, A ; Data Pointer High Byte +ROM:76C2 mov A, R6 +ROM:76C3 movx @DPTR, A +ROM:76C4 inc R7 +ROM:76C5 sjmp ROM_76AE +ROM:76C7 ; --------------------------------------------------------------------------- +ROM:76C7 +ROM:76C7 ROM_76C7: ; CODE XREF: ROM_766A+48↑j +ROM:76C7 acall ROM_76ED +ROM:76C9 mov R7, #0x3D ; '=' +ROM:76CB mov R6, #0 +ROM:76CD acall ROM_755B +ROM:76CF mov R6, #0 +ROM:76D1 mov R7, #0x10 +ROM:76D3 mov R5, #0xFF +ROM:76D5 mov R3, #1 +ROM:76D7 mov R2, #0xF8 +ROM:76D9 mov R1, #0x36 ; '6' +ROM:76DB lcall code_EA0 +ROM:76DE mov DPTR, #0xF83D +ROM:76E1 movx A, @DPTR +ROM:76E2 anl A, #0x1F +ROM:76E4 acall ROM_76EC +ROM:76E6 mov R7, #0x3F ; '?' +ROM:76E8 mov R6, #0 +ROM:76EA +ROM:76EA ROM_76EA: ; CODE XREF: ROM_766A+38↑j +ROM:76EA ajmp ROM_755B +ROM:76EA ; End of function ROM_766A +ROM:76EA +ROM:76EC +ROM:76EC ; =============== S U B R O U T I N E ======================================= +ROM:76EC +ROM:76EC +ROM:76EC ROM_76EC: ; CODE XREF: ROM_766A+33↑p +ROM:76EC ; ROM_766A+7A↑p +ROM:76EC movx @DPTR, A +ROM:76EC ; End of function ROM_76EC +ROM:76EC +ROM:76ED +ROM:76ED ; =============== S U B R O U T I N E ======================================= +ROM:76ED +ROM:76ED +ROM:76ED ROM_76ED: ; CODE XREF: ROM_766A:ROM_76A4↑p +ROM:76ED ; ROM_766A:ROM_76C7↑p +ROM:76ED mov R3, #1 +ROM:76EF mov R2, #0xF8 +ROM:76F1 mov R1, #0x36 ; '6' +ROM:76F3 mov R5, #0x10 +ROM:76F5 mov R4, #0 +ROM:76F7 ret +ROM:76F7 ; End of function ROM_76ED +ROM:76F7 +ROM:76F8 +ROM:76F8 ; =============== S U B R O U T I N E ======================================= +ROM:76F8 +ROM:76F8 +ROM:76F8 ROM_76F8: ; CODE XREF: ROM_7197+16↑p +ROM:76F8 ; ROM_755B+15↑p +ROM:76F8 xch A, R7 +ROM:76F9 movx @DPTR, A +ROM:76FA inc DPTR +ROM:76FA ; End of function ROM_76F8 +ROM:76FA +ROM:76FB +ROM:76FB ; =============== S U B R O U T I N E ======================================= +ROM:76FB +ROM:76FB +ROM:76FB ROM_76FB: ; CODE XREF: ROM_2153+3↑p +ROM:76FB mov A, R7 +ROM:76FB ; End of function ROM_76FB +ROM:76FB +ROM:76FC +ROM:76FC ; =============== S U B R O U T I N E ======================================= +ROM:76FC +ROM:76FC +ROM:76FC ROM_76FC: ; CODE XREF: ROM_7197+77↑p +ROM:76FC ; ROM_755B+7A↑p +ROM:76FC movx @DPTR, A +ROM:76FD clr A +ROM:76FE inc DPTR +ROM:76FF movx @DPTR, A +ROM:7700 inc DPTR +ROM:7701 movx @DPTR, A +ROM:7702 ret +ROM:7702 ; End of function ROM_76FC +ROM:7702 +ROM:7703 +ROM:7703 ; =============== S U B R O U T I N E ======================================= +ROM:7703 +ROM:7703 +ROM:7703 ROM_7703: ; CODE XREF: ROM_73B7+2D↑p +ROM:7703 ; ROM_7424+46↑p ... +ROM:7703 add A, R5 +ROM:7704 mov R1, A +ROM:7705 mov A, R2 +ROM:7706 addc A, R4 +ROM:7707 mov R2, A +ROM:7708 ljmp code_891 +ROM:7708 ; End of function ROM_7703 +ROM:7708 +ROM:770B +ROM:770B ; =============== S U B R O U T I N E ======================================= +ROM:770B +ROM:770B +ROM:770B ROM_770B: ; CODE XREF: ROM_7197+49↑p +ROM:770B ; ROM_7197+E3↑p +ROM:770B acall ROM_7290 +ROM:770D mov DPTR, #0xF850 +ROM:7710 movx A, @DPTR +ROM:7711 ret +ROM:7711 ; End of function ROM_770B +ROM:7711 +ROM:7712 +ROM:7712 ; =============== S U B R O U T I N E ======================================= +ROM:7712 +ROM:7712 +ROM:7712 ROM_7712: ; CODE XREF: ROM_7290+33↑p +ROM:7712 ; ROM_7290+6D↑p ... +ROM:7712 mov R1, A +ROM:7713 inc DPTR +ROM:7713 ; End of function ROM_7712 +ROM:7713 +ROM:7714 +ROM:7714 ; =============== S U B R O U T I N E ======================================= +ROM:7714 +ROM:7714 +ROM:7714 ROM_7714: ; CODE XREF: ROM_9CCA-7D0C↑p +ROM:7714 ; ROM_62A4+111↑p ... +ROM:7714 movx A, @DPTR +ROM:7715 mov R4, A +ROM:7716 inc DPTR +ROM:7717 movx A, @DPTR +ROM:7718 mov R5, A +ROM:7719 mov A, R1 +ROM:771A add A, R5 +ROM:771B ret +ROM:771B ; End of function ROM_7714 +ROM:771B +ROM:771C +ROM:771C ; =============== S U B R O U T I N E ======================================= +ROM:771C +ROM:771C +ROM:771C ROM_771C: ; CODE XREF: ROM_7290+19↑p +ROM:771C ; ROM_7290+4C↑p +ROM:771C movx A, @DPTR +ROM:771D mov R7, A +ROM:771E acall ROM_732A +ROM:7720 mov DPTR, #0xF856 +ROM:7723 movx A, @DPTR +ROM:7724 mov R7, A +ROM:7725 ret +ROM:7725 ; End of function ROM_771C +ROM:7725 +ROM:7726 +ROM:7726 ; =============== S U B R O U T I N E ======================================= +ROM:7726 +ROM:7726 +ROM:7726 ROM_7726: ; CODE XREF: ROM_7424+19↑p +ROM:7726 ; ROM_766A+13↑p +ROM:7726 mov R7, #0x10 +ROM:7728 lcall code_86B +ROM:7728 ; End of function ROM_7726 +ROM:7728 +ROM:772B +ROM:772B ; =============== S U B R O U T I N E ======================================= +ROM:772B +ROM:772B +ROM:772B load_0xFEA0_and_xor_0x04: ; CODE XREF: gpio_setup_magic_ROM_5004+F↑p +ROM:772B ; ROM_7197+8↑p ... +ROM:772B mov DPTR, #0xFEA0 +ROM:772E movx A, @DPTR +ROM:772F xrl A, #4 +ROM:7731 ret +ROM:7731 ; End of function load_0xFEA0_and_xor_0x04 +ROM:7731 +ROM:7732 +ROM:7732 ; =============== S U B R O U T I N E ======================================= +ROM:7732 +ROM:7732 +ROM:7732 ROM_7732: ; CODE XREF: ROM_7290+21↑p +ROM:7732 ; ROM_7290+52↑p +ROM:7732 mov DPTR, #0xF85E +ROM:7735 movx A, @DPTR +ROM:7736 orl A, #1 +ROM:7738 mov R7, A +ROM:7739 acall ROM_732A +ROM:773B clr A +ROM:773C mov DPTR, #0xF85C +ROM:773F movx @DPTR, A +ROM:7740 inc DPTR +ROM:7741 movx @DPTR, A +ROM:7742 ret +ROM:7742 ; End of function ROM_7732 +ROM:7742 +ROM:7743 ; --------------------------------------------------------------------------- +ROM:7743 ; START OF FUNCTION CHUNK FOR ROM_78A9 +ROM:7743 ; ADDITIONAL PARENT FUNCTION ROM_9CFD +ROM:7743 +ROM:7743 ROM_7743: ; CODE XREF: ROM_78A9+1C↓j +ROM:7743 ; ROM_9CFD+20↓j +ROM:7743 mov DPTR, #0xF956 +ROM:7746 lcall save_4_bytes_R4_R7 +ROM:7749 mov DPTR, #0xF95A +ROM:774C lcall Save_3_bytes_R3_R2_R1 +ROM:774F clr P1.1 ; Port 1 +ROM:7751 mov R7, #3 +ROM:7753 acall ROM_77AE +ROM:7755 lcall load_4_bytes_R4_R5_R6_A +ROM:7758 lcall ROM_67D5 +ROM:775B acall ROM_77AE +ROM:775D lcall load_4_bytes_R4_R5_R6_A +ROM:7760 lcall ROM_A91B +ROM:7763 acall ROM_77AE +ROM:7765 lcall ROM_A921 +ROM:7768 clr A +ROM:7769 mov DPTR, #0xF95F +ROM:776C movx @DPTR, A +ROM:776D inc DPTR +ROM:776E movx @DPTR, A +ROM:776F +ROM:776F ROM_776F: ; CODE XREF: ROM_78A9:ROM_77A2↓j +ROM:776F mov DPTR, #0xF95D +ROM:7772 lcall ROM_3758 +ROM:7775 mov DPTR, #0xF960 +ROM:7778 movx A, @DPTR +ROM:7779 subb A, R7 +ROM:777A mov DPTR, #0xF95F +ROM:777D movx A, @DPTR +ROM:777E subb A, R6 +ROM:777F jnc ROM_77A4 +ROM:7781 clr A +ROM:7782 mov R7, A +ROM:7783 lcall DO_SPI_TRANSACTION_ALT +ROM:7786 mov DPTR, #0xF95A +ROM:7789 lcall ROM_37C3 +ROM:778C mov R1, A +ROM:778D mov DPTR, #0xF95F +ROM:7790 acall ROM_7714 +ROM:7792 acall ROM_741C +ROM:7794 mov DPTR, #0xF960 +ROM:7797 movx A, @DPTR +ROM:7798 inc A +ROM:7799 movx @DPTR, A +ROM:779A jnz ROM_77A2 +ROM:779C mov DPTR, #0xF95F +ROM:779F movx A, @DPTR +ROM:77A0 inc A +ROM:77A1 movx @DPTR, A +ROM:77A2 +ROM:77A2 ROM_77A2: ; CODE XREF: ROM_78A9-10F↑j +ROM:77A2 sjmp ROM_776F +ROM:77A4 ; --------------------------------------------------------------------------- +ROM:77A4 +ROM:77A4 ROM_77A4: ; CODE XREF: ROM_78A9-12A↑j +ROM:77A4 setb P1.1 ; Port 1 +ROM:77A6 ret +ROM:77A6 ; END OF FUNCTION CHUNK FOR ROM_78A9 +ROM:77A7 +ROM:77A7 ; =============== S U B R O U T I N E ======================================= +ROM:77A7 +ROM:77A7 +ROM:77A7 ROM_77A7: ; CODE XREF: ROM_7197:ROM_71F8↑p +ROM:77A7 ; ROM_755B:ROM_75BF↑p ... +ROM:77A7 mov R5, #4 +ROM:77A9 mov R7, #0x21 ; '!' +ROM:77AB ljmp ROM_AB0D +ROM:77AB ; End of function ROM_77A7 +ROM:77AB +ROM:77AE +ROM:77AE ; =============== S U B R O U T I N E ======================================= +ROM:77AE +ROM:77AE +ROM:77AE ROM_77AE: ; CODE XREF: ROM_78A9-156↑p +ROM:77AE ; ROM_78A9-14E↑p ... +ROM:77AE lcall DO_SPI_TRANSACTION_ALT +ROM:77B1 mov DPTR, #0xF956 +ROM:77B4 ret +ROM:77B4 ; End of function ROM_77AE +ROM:77B4 +ROM:77B5 +ROM:77B5 ; =============== S U B R O U T I N E ======================================= +ROM:77B5 +ROM:77B5 +ROM:77B5 ROM_77B5: ; CODE XREF: ROM_732A+21↑p +ROM:77B5 ; ROM_736A+11↑p +ROM:77B5 setb P1.4 ; Port 1 +ROM:77B7 acall ROM_7365 +ROM:77B9 mov R7, #0 +ROM:77BB jnb P1.5, ROM_77C0 ; Port 1 +ROM:77BE mov R7, #1 +ROM:77C0 +ROM:77C0 ROM_77C0: ; CODE XREF: ROM_77B5+6↑j +ROM:77C0 ret +ROM:77C0 ; End of function ROM_77B5 +ROM:77C0 +ROM:77C1 +ROM:77C1 ; =============== S U B R O U T I N E ======================================= +ROM:77C1 +ROM:77C1 +ROM:77C1 ROM_77C1: ; CODE XREF: ROM_732A:ROM_7349↑p +ROM:77C1 ; ROM_736A+4↑p +ROM:77C1 orl FSR_BA, #0x20 +ROM:77C4 ret +ROM:77C4 ; End of function ROM_77C1 +ROM:77C4 +ROM:77C5 +ROM:77C5 ; =============== S U B R O U T I N E ======================================= +ROM:77C5 +ROM:77C5 +ROM:77C5 ROM_77C5: ; CODE XREF: ROM_7197:ROM_71F2↑p +ROM:77C5 ; ROM_755B:ROM_75B9↑p +ROM:77C5 mov DPTR, #0xFEA0 +ROM:77C8 movx A, @DPTR +ROM:77C9 xrl A, #0x42 +ROM:77CB ret +ROM:77CB ; End of function ROM_77C5 +ROM:77CB +ROM:77CC +ROM:77CC ; =============== S U B R O U T I N E ======================================= +ROM:77CC +ROM:77CC +ROM:77CC ROM_77CC: ; CODE XREF: ROM_7424↑p +ROM:77CC ; ROM_755B↑p +ROM:77CC mov DPTR, #0xF969 +ROM:77CF mov A, R6 +ROM:77D0 movx @DPTR, A +ROM:77D1 inc DPTR +ROM:77D2 mov A, R7 +ROM:77D3 ret +ROM:77D3 ; End of function ROM_77CC +ROM:77D3 +ROM:77D4 +ROM:77D4 ; =============== S U B R O U T I N E ======================================= +ROM:77D4 +ROM:77D4 +ROM:77D4 ROM_77D4: ; CODE XREF: ROM_7197+93↑p +ROM:77D4 ; ROM_755B+96↑p +ROM:77D4 movx @DPTR, A +ROM:77D5 inc DPTR +ROM:77D6 mov A, R5 +ROM:77D7 movx @DPTR, A +ROM:77D8 mov R6, #0 +ROM:77DA mov A, R7 +ROM:77DB ret +ROM:77DB ; End of function ROM_77D4 +ROM:77DB +ROM:77DC +ROM:77DC ; =============== S U B R O U T I N E ======================================= +ROM:77DC +ROM:77DC +ROM:77DC ROM_77DC: ; CODE XREF: ROM_784C+1↓p +ROM:77DC lcall ROM_87B6 +ROM:77DF mov R2, #0xF8 +ROM:77E1 mov R1, #0x31 ; '1' +ROM:77E3 lcall code_EA0 +ROM:77E6 mov R3, #0 +ROM:77E8 mov R2, #0x10 +ROM:77EA mov R1, #0 +ROM:77EC push RAM_3 +ROM:77EE inc R3 +ROM:77EF mov DPTR, #0xF94D +ROM:77F2 mov A, R3 +ROM:77F3 movx @DPTR, A +ROM:77F4 inc DPTR +ROM:77F5 mov A, #0xF8 +ROM:77F7 movx @DPTR, A +ROM:77F8 inc DPTR +ROM:77F9 mov A, #0x31 ; '1' +ROM:77FB movx @DPTR, A +ROM:77FC inc DPTR +ROM:77FD clr A +ROM:77FE movx @DPTR, A +ROM:77FF inc DPTR +ROM:7800 mov A, #4 +ROM:7802 movx @DPTR, A +ROM:7803 pop RAM_3 +ROM:7805 acall ROM_78A9 +ROM:7807 mov DPTR, #0xF833 +ROM:780A movx A, @DPTR +ROM:780B cjne A, #0xFF, ROM_781A +ROM:780E inc DPTR +ROM:780F movx A, @DPTR +ROM:7810 cjne A, #0xFF, ROM_781A +ROM:7813 clr A +ROM:7814 mov DPTR, #0xF833 +ROM:7817 movx @DPTR, A +ROM:7818 inc DPTR +ROM:7819 movx @DPTR, A +ROM:781A +ROM:781A ROM_781A: ; CODE XREF: ROM_77DC+2F↑j +ROM:781A ; ROM_77DC+34↑j +ROM:781A mov DPTR, #0xF831 +ROM:781D movx A, @DPTR +ROM:781E cjne A, #0xFF, ROM_782D +ROM:7821 inc DPTR +ROM:7822 movx A, @DPTR +ROM:7823 cjne A, #0xFF, ROM_782D +ROM:7826 clr A +ROM:7827 mov DPTR, #0xF831 +ROM:782A movx @DPTR, A +ROM:782B inc DPTR +ROM:782C movx @DPTR, A +ROM:782D +ROM:782D ROM_782D: ; CODE XREF: ROM_77DC+42↑j +ROM:782D ; ROM_77DC+47↑j +ROM:782D mov DPTR, #0xF833 +ROM:7830 movx A, @DPTR +ROM:7831 mov R7, A +ROM:7832 inc DPTR +ROM:7833 movx A, @DPTR +ROM:7834 mov DPTR, #0xF50D +ROM:7837 xch A, R7 +ROM:7838 movx @DPTR, A +ROM:7839 inc DPTR +ROM:783A mov A, R7 +ROM:783B movx @DPTR, A +ROM:783C mov DPTR, #0xF831 +ROM:783F movx A, @DPTR +ROM:7840 mov R7, A +ROM:7841 inc DPTR +ROM:7842 movx A, @DPTR +ROM:7843 mov DPTR, #0xF50B +ROM:7846 xch A, R7 +ROM:7847 movx @DPTR, A +ROM:7848 inc DPTR +ROM:7849 mov A, R7 +ROM:784A movx @DPTR, A +ROM:784B ret +ROM:784B ; End of function ROM_77DC +ROM:784B +ROM:784C +ROM:784C ; =============== S U B R O U T I N E ======================================= +ROM:784C +ROM:784C +ROM:784C ROM_784C: ; CODE XREF: ROM_281F+55↑p +ROM:784C ; ROM_281F+C8↑p +ROM:784C movx @DPTR, A +ROM:784D lcall ROM_77DC +ROM:7850 clr A +ROM:7851 mov DPTR, #0xF831 +ROM:7854 movx @DPTR, A +ROM:7855 mov R3, A +ROM:7856 mov R2, #0x20 ; ' ' +ROM:7858 mov R1, A +ROM:7859 push RAM_3 +ROM:785B mov DPTR, #0xF94D +ROM:785E inc A +ROM:785F movx @DPTR, A +ROM:7860 inc DPTR +ROM:7861 mov A, #0xF4 +ROM:7863 movx @DPTR, A +ROM:7864 inc DPTR +ROM:7865 mov A, #0x99 +ROM:7867 movx @DPTR, A +ROM:7868 inc DPTR +ROM:7869 clr A +ROM:786A movx @DPTR, A +ROM:786B inc DPTR +ROM:786C mov A, #0x71 ; 'q' +ROM:786E movx @DPTR, A +ROM:786F pop RAM_3 +ROM:7871 acall ROM_78A9 +ROM:7873 mov DPTR, #0xF501 +ROM:7876 movx A, @DPTR +ROM:7877 cjne A, #0xAD, ROM_789E +ROM:787A inc DPTR +ROM:787B movx A, @DPTR +ROM:787C cjne A, #0xD2, ROM_789E +ROM:787F mov R3, #1 +ROM:7881 mov R2, #0xF4 +ROM:7883 mov R1, #0xF9 +ROM:7885 lcall ROM_672C +ROM:7888 mov DPTR, #0xF503 +ROM:788B movx A, @DPTR +ROM:788C mov DPTR, #0xF53C +ROM:788F movx @DPTR, A +ROM:7890 mov DPTR, #0xF504 +ROM:7893 movx A, @DPTR +ROM:7894 mov DPTR, #0xF53D +ROM:7897 movx @DPTR, A +ROM:7898 mov DPTR, #0xF831 +ROM:789B mov A, #1 +ROM:789D movx @DPTR, A +ROM:789E +ROM:789E ROM_789E: ; CODE XREF: ROM_784C+2B↑j +ROM:789E ; ROM_784C+30↑j +ROM:789E clr A +ROM:789F mov DPTR, #0xF508 +ROM:78A2 movx @DPTR, A +ROM:78A3 mov DPTR, #0xF831 +ROM:78A6 movx A, @DPTR +ROM:78A7 mov R7, A +ROM:78A8 ret +ROM:78A8 ; End of function ROM_784C +ROM:78A8 +ROM:78A9 +ROM:78A9 ; =============== S U B R O U T I N E ======================================= +ROM:78A9 +ROM:78A9 +ROM:78A9 ROM_78A9: ; CODE XREF: ROM_39E2+2D1↑p +ROM:78A9 ; ROM_77DC+29↑p ... +ROM:78A9 +ROM:78A9 ; FUNCTION CHUNK AT ROM:7743 SIZE 00000064 BYTES +ROM:78A9 +ROM:78A9 lcall ROM_9D39 +ROM:78AC mov DPTR, #0xF952 +ROM:78AF lcall code_1ED5 +ROM:78B2 mov DPTR, #0xF94D +ROM:78B5 lcall ROM_37C3 +ROM:78B8 lcall ROM_9CF6 +ROM:78BB lcall ROM_9D30 +ROM:78BE mov DPTR, #0xF952 +ROM:78C1 lcall load_4_bytes_R4_R5_R6_A +ROM:78C4 mov R7, A +ROM:78C5 ljmp ROM_7743 +ROM:78C5 ; End of function ROM_78A9 +ROM:78C5 +ROM:78C8 +ROM:78C8 ; =============== S U B R O U T I N E ======================================= +ROM:78C8 +ROM:78C8 +ROM:78C8 ROM_78C8: ; CODE XREF: ROM_436B-F76↑p +ROM:78C8 mov DPTR, #0xF841 +ROM:78CB mov A, R7 +ROM:78CC movx @DPTR, A +ROM:78CD mov DPTR, #0xF846 +ROM:78D0 mov A, #0xE4 +ROM:78D2 movx @DPTR, A +ROM:78D3 inc DPTR +ROM:78D4 mov A, #0x64 ; 'd' +ROM:78D6 lcall ROM_9D44 +ROM:78D9 clr A +ROM:78DA lcall ROM_3F95 +ROM:78DD mov DPTR, #0xF841 +ROM:78E0 movx A, @DPTR +ROM:78E1 mov R6, A +ROM:78E2 acall ROM_79B9 +ROM:78E4 movx A, @DPTR +ROM:78E5 xrl A, #1 +ROM:78E7 jz ROM_78EC +ROM:78E9 mov R7, #0x32 ; '2' +ROM:78EB ret +ROM:78EC ; --------------------------------------------------------------------------- +ROM:78EC +ROM:78EC ROM_78EC: ; CODE XREF: ROM_78C8+1F↑j +ROM:78EC mov A, R6 +ROM:78ED mov B, #0x15 ; B Register +ROM:78F0 mul AB +ROM:78F1 add A, #0xA6 +ROM:78F3 mov DP0L, A ; Data Pointer Low Byte +ROM:78F5 clr A +ROM:78F6 addc A, #0xF4 +ROM:78F8 mov DP0H, A ; Data Pointer High Byte +ROM:78FA movx A, @DPTR +ROM:78FB xrl A, #2 +ROM:78FD jz ROM_7902 +ROM:78FF mov R7, #0x22 ; '"' +ROM:7901 ret +ROM:7902 ; --------------------------------------------------------------------------- +ROM:7902 +ROM:7902 ROM_7902: ; CODE XREF: ROM_78C8+35↑j +ROM:7902 lcall ROM_D40B +ROM:7905 lcall ROM_2C43 +ROM:7908 acall ROM_79A7 +ROM:790A movx A, @DPTR +ROM:790B mov R6, A +ROM:790C inc DPTR +ROM:790D movx A, @DPTR +ROM:790E setb C +ROM:790F subb A, #0 +ROM:7911 mov A, R6 +ROM:7912 subb A, #4 +ROM:7914 mov DPTR, #0xF842 +ROM:7917 jc ROM_7938 +ROM:7919 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:791C mov R1, A +ROM:791D mov R2, RAM_6 +ROM:791F mov R3, RAM_5 +ROM:7921 push RAM_2 +ROM:7923 push RAM_1 +ROM:7925 acall ROM_799C +ROM:7927 mov DPTR, #0xF94D +ROM:792A mov A, #1 +ROM:792C lcall Save_3_bytes_A_R2_R1 +ROM:792F inc DPTR +ROM:7930 mov A, #4 +ROM:7932 movx @DPTR, A +ROM:7933 inc DPTR +ROM:7934 mov A, #0x64 ; 'd' +ROM:7936 sjmp ROM_7953 +ROM:7938 ; --------------------------------------------------------------------------- +ROM:7938 +ROM:7938 ROM_7938: ; CODE XREF: ROM_78C8+4F↑j +ROM:7938 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:793B mov R1, A +ROM:793C mov R2, RAM_6 +ROM:793E mov R3, RAM_5 +ROM:7940 push RAM_2 +ROM:7942 push RAM_1 +ROM:7944 acall ROM_799C +ROM:7946 mov DPTR, #0xF94D +ROM:7949 mov A, #1 +ROM:794B lcall Save_3_bytes_A_R2_R1 +ROM:794E acall ROM_79A7 +ROM:7950 lcall ROM_CF91 +ROM:7953 +ROM:7953 ROM_7953: ; CODE XREF: ROM_78C8+6E↑j +ROM:7953 movx @DPTR, A +ROM:7954 pop RAM_1 +ROM:7956 pop RAM_2 +ROM:7958 acall ROM_78A9 +ROM:795A acall ROM_799C +ROM:795C mov R3, #1 +ROM:795E push RAM_3 +ROM:7960 push RAM_2 +ROM:7962 push RAM_1 +ROM:7964 mov DPTR, #0xF846 +ROM:7967 acall ROM_799F +ROM:7969 mov DPTR, #0xF850 +ROM:796C lcall Save_3_bytes_R3_R2_R1 +ROM:796F mov DPTR, #0xF841 +ROM:7972 movx A, @DPTR +ROM:7973 mov R7, A +ROM:7974 acall ROM_79AB +ROM:7976 movx A, @DPTR +ROM:7977 mov R5, A +ROM:7978 inc DPTR +ROM:7979 movx A, @DPTR +ROM:797A mov DPTR, #0xF853 +ROM:797D xch A, R5 +ROM:797E movx @DPTR, A +ROM:797F inc DPTR +ROM:7980 mov A, R5 +ROM:7981 acall ROM_79C7 +ROM:7983 mov A, R7 +ROM:7984 movx @DPTR, A +ROM:7985 clr A +ROM:7986 inc DPTR +ROM:7987 movx @DPTR, A +ROM:7988 pop RAM_1 +ROM:798A pop RAM_2 +ROM:798C pop RAM_3 +ROM:798E lcall ROM_39E2 +ROM:7991 mov DPTR, #0xF84C +ROM:7994 mov A, R7 +ROM:7995 movx @DPTR, A +ROM:7996 lcall SetupWatchdog +ROM:7999 movx A, @DPTR +ROM:799A mov R7, A +ROM:799B ret +ROM:799B ; End of function ROM_78C8 +ROM:799B +ROM:799C +ROM:799C ; =============== S U B R O U T I N E ======================================= +ROM:799C +ROM:799C +ROM:799C ROM_799C: ; CODE XREF: ROM_78C8+5D↑p +ROM:799C ; ROM_78C8+7C↑p ... +ROM:799C mov DPTR, #0xF848 +ROM:799C ; End of function ROM_799C +ROM:799C +ROM:799F +ROM:799F ; =============== S U B R O U T I N E ======================================= +ROM:799F +ROM:799F +ROM:799F ROM_799F: ; CODE XREF: ROM_39E2+7E↑p +ROM:799F ; ROM_78C8+9F↑p +ROM:799F movx A, @DPTR +ROM:79A0 mov R6, A +ROM:79A1 inc DPTR +ROM:79A2 movx A, @DPTR +ROM:79A3 mov R2, RAM_6 +ROM:79A5 mov R1, A +ROM:79A6 ret +ROM:79A6 ; End of function ROM_799F +ROM:79A6 +ROM:79A7 +ROM:79A7 ; =============== S U B R O U T I N E ======================================= +ROM:79A7 +ROM:79A7 +ROM:79A7 ROM_79A7: ; CODE XREF: ROM_78C8+40↑p +ROM:79A7 ; ROM_78C8+86↑p +ROM:79A7 mov DPTR, #0xF841 +ROM:79AA movx A, @DPTR +ROM:79AA ; End of function ROM_79A7 +ROM:79AA +ROM:79AB +ROM:79AB ; =============== S U B R O U T I N E ======================================= +ROM:79AB +ROM:79AB +ROM:79AB ROM_79AB: ; CODE XREF: ROM_78C8+AC↑p +ROM:79AB mov B, #0x15 ; B Register +ROM:79AE mul AB +ROM:79AF add A, #0xA7 +ROM:79B1 mov DP0L, A ; Data Pointer Low Byte +ROM:79B3 clr A +ROM:79B4 addc A, #0xF4 +ROM:79B6 mov DP0H, A ; Data Pointer High Byte +ROM:79B8 ret +ROM:79B8 ; End of function ROM_79AB +ROM:79B8 +ROM:79B9 +ROM:79B9 ; =============== S U B R O U T I N E ======================================= +ROM:79B9 +ROM:79B9 +ROM:79B9 ROM_79B9: ; CODE XREF: ROM_436B-FA9↑p +ROM:79B9 ; ROM_436B-EC3↑p ... +ROM:79B9 mov B, #0x15 ; B Register +ROM:79BC mul AB +ROM:79BD add A, #0xB6 +ROM:79BF mov DP0L, A ; Data Pointer Low Byte +ROM:79C1 clr A +ROM:79C2 addc A, #0xF4 +ROM:79C4 mov DP0H, A ; Data Pointer High Byte +ROM:79C6 ret +ROM:79C6 ; End of function ROM_79B9 +ROM:79C6 +ROM:79C7 +ROM:79C7 ; =============== S U B R O U T I N E ======================================= +ROM:79C7 +ROM:79C7 +ROM:79C7 ROM_79C7: ; CODE XREF: initialize_variables_code_1D51+50↑p +ROM:79C7 ; ROM_436B-F2D↑p ... +ROM:79C7 movx @DPTR, A +ROM:79C8 inc DPTR +ROM:79C9 mov A, #1 +ROM:79CB movx @DPTR, A +ROM:79CC inc DPTR +ROM:79CD ret +ROM:79CD ; End of function ROM_79C7 +ROM:79CD +ROM:79CE +ROM:79CE ; =============== S U B R O U T I N E ======================================= +ROM:79CE +ROM:79CE +ROM:79CE ROM_79CE: ; CODE XREF: ROM_436B+1F0↑p +ROM:79CE mov A, R7 +ROM:79CF xrl A, #0xB +ROM:79D1 jnz ROM_7A01 +ROM:79D3 mov R7, RAM_5 +ROM:79D5 mov DPTR, #0xFE32 +ROM:79D8 mov A, R7 +ROM:79D9 movx @DPTR, A +ROM:79DA xrl A, #1 +ROM:79DC jnz ROM_7A06 +ROM:79DE mov DPTR, #0xF83A +ROM:79E1 movx @DPTR, A +ROM:79E2 inc DPTR +ROM:79E3 mov A, #0 +ROM:79E5 movx @DPTR, A +ROM:79E6 inc DPTR +ROM:79E7 mov A, #0x12 +ROM:79E9 acall ROM_79C7 +ROM:79EB mov A, #0xFE +ROM:79ED movx @DPTR, A +ROM:79EE inc DPTR +ROM:79EF mov A, #0x11 +ROM:79F1 movx @DPTR, A +ROM:79F2 lcall ROM_5FC2 +ROM:79F5 lcall ROM_3DCC +ROM:79F8 mov R3, #1 +ROM:79FA mov R2, #0xFE +ROM:79FC mov R1, #0x11 +ROM:79FE ljmp ROM_85F8 +ROM:7A01 ; --------------------------------------------------------------------------- +ROM:7A01 +ROM:7A01 ROM_7A01: ; CODE XREF: ROM_79CE+3↑j +ROM:7A01 clr A +ROM:7A02 mov DPTR, #0xFE32 +ROM:7A05 movx @DPTR, A +ROM:7A06 +ROM:7A06 ROM_7A06: ; CODE XREF: ROM_79CE+E↑j +ROM:7A06 ret +ROM:7A06 ; End of function ROM_79CE +ROM:7A06 +ROM:7A07 +ROM:7A07 ; =============== S U B R O U T I N E ======================================= +ROM:7A07 +ROM:7A07 +ROM:7A07 ROM_7A07: ; CODE XREF: ROM_9487+6B↓p +ROM:7A07 mov DPTR, #0xF830 +ROM:7A0A lcall Save_3_bytes_R3_R2_R1 +ROM:7A0D inc DPTR +ROM:7A0E mov A, R5 +ROM:7A0F movx @DPTR, A +ROM:7A10 lcall ROM_83AD +ROM:7A13 mov DPTR, #0xF834 +ROM:7A16 mov A, R7 +ROM:7A17 movx @DPTR, A +ROM:7A18 cpl A +ROM:7A19 jnz ROM_7A1E +ROM:7A1B mov R7, #0xFF +ROM:7A1D ret +ROM:7A1E ; --------------------------------------------------------------------------- +ROM:7A1E +ROM:7A1E ROM_7A1E: ; CODE XREF: ROM_7A07+12↑j +ROM:7A1E mov DPTR, #0xF833 +ROM:7A21 movx A, @DPTR +ROM:7A22 add A, #0x11 +ROM:7A24 mov DPTR, #0xF724 +ROM:7A27 acall ROM_79C7 +ROM:7A29 mov A, #0xC8 +ROM:7A2B movx @DPTR, A +ROM:7A2C inc RAM_1A +ROM:7A2E inc DPTR +ROM:7A2F mov A, RAM_1A +ROM:7A31 movx @DPTR, A +ROM:7A32 inc DPTR +ROM:7A33 mov A, #0xFF +ROM:7A35 lcall ROM_3F94 +ROM:7A38 mov R0, #0x2C ; ',' +ROM:7A3A mov R4, #0xF7 +ROM:7A3C mov R5, #1 +ROM:7A3E lcall ROM_5FC2 +ROM:7A41 lcall ROM_5D6B +ROM:7A44 mov DPTR, #0xF833 +ROM:7A47 movx A, @DPTR +ROM:7A48 mov R7, A +ROM:7A49 mov R6, #0 +ROM:7A4B mov DPTR, #0xF830 +ROM:7A4E lcall ROM_3EB2 +ROM:7A51 mov R3, #1 +ROM:7A53 mov R0, #0x34 ; '4' +ROM:7A55 mov R4, #0xF7 +ROM:7A57 mov R5, #1 +ROM:7A59 lcall code_86B +ROM:7A5C mov DPTR, #0xF833 +ROM:7A5F movx A, @DPTR +ROM:7A60 add A, #0x11 +ROM:7A62 mov R7, A +ROM:7A63 mov R6, #0 +ROM:7A65 push RAM_6 +ROM:7A67 push RAM_7 +ROM:7A69 acall ROM_7F92 +ROM:7A6B lcall ROM_37C3 +ROM:7A6E acall ROM_7F5B +ROM:7A70 pop RAM_7 +ROM:7A72 pop RAM_6 +ROM:7A74 acall ROM_7F73 +ROM:7A76 lcall ROM_37C3 +ROM:7A79 mov R1, A +ROM:7A7A mov DPTR, #0xF834 +ROM:7A7D acall ROM_7D77 +ROM:7A7F lcall ROM_D41B +ROM:7A82 lcall ROM_37C3 +ROM:7A85 lcall ROM_D394 +ROM:7A88 lcall ROM_37C3 +ROM:7A8B lcall ROM_D3D4 +ROM:7A8E jbc EA, ROM_7A92 ; Interrupt Enable Register 0 +ROM:7A91 clr C +ROM:7A92 +ROM:7A92 ROM_7A92: ; CODE XREF: ROM_7A07+87↑j +ROM:7A92 clr A +ROM:7A93 rlc A +ROM:7A94 mov DPTR, #0xF835 +ROM:7A97 movx @DPTR, A +ROM:7A98 mov DPTR, #0xF834 +ROM:7A9B acall ROM_7EBA +ROM:7A9D xrl A, #1 +ROM:7A9F jnz ROM_7AA3 +ROM:7AA1 acall ROM_7F53 +ROM:7AA3 +ROM:7AA3 ROM_7AA3: ; CODE XREF: ROM_7A07+98↑j +ROM:7AA3 acall ROM_7AAA +ROM:7AA5 mov R7, #0 +ROM:7AA7 ret +ROM:7AA7 ; End of function ROM_7A07 +ROM:7AA7 +ROM:7AA8 +ROM:7AA8 ; =============== S U B R O U T I N E ======================================= +ROM:7AA8 +ROM:7AA8 +ROM:7AA8 ROM_7AA8: ; CODE XREF: ROM_7AB3+35↓p +ROM:7AA8 ; ROM_7AB3+61↓p +ROM:7AA8 acall ROM_7B6C +ROM:7AA8 ; End of function ROM_7AA8 +ROM:7AA8 +ROM:7AAA +ROM:7AAA ; =============== S U B R O U T I N E ======================================= +ROM:7AAA +ROM:7AAA +ROM:7AAA ROM_7AAA: ; CODE XREF: ROM_7A07:ROM_7AA3↑p +ROM:7AAA ; ROM_7AB3+15↓p +ROM:7AAA mov DPTR, #0xF835 +ROM:7AAD movx A, @DPTR +ROM:7AAE add A, #0xFF +ROM:7AB0 mov EA, C ; Interrupt Enable Register 0 +ROM:7AB2 ret +ROM:7AB2 ; End of function ROM_7AAA +ROM:7AB2 +ROM:7AB3 +ROM:7AB3 ; =============== S U B R O U T I N E ======================================= +ROM:7AB3 +ROM:7AB3 +ROM:7AB3 ROM_7AB3: ; CODE XREF: ROM_30A0+25↑p +ROM:7AB3 ; ROM_7AB3+37↓j ... +ROM:7AB3 setb C +ROM:7AB4 jbc EA, ROM_7AB8 ; Interrupt Enable Register 0 +ROM:7AB7 clr C +ROM:7AB8 +ROM:7AB8 ROM_7AB8: ; CODE XREF: ROM_7AB3+1↑j +ROM:7AB8 clr A +ROM:7AB9 rlc A +ROM:7ABA mov DPTR, #0xF835 +ROM:7ABD movx @DPTR, A +ROM:7ABE acall ROM_7D88 +ROM:7AC0 mov DPTR, #0xF831 +ROM:7AC3 mov A, R7 +ROM:7AC4 movx @DPTR, A +ROM:7AC5 cpl A +ROM:7AC6 jnz ROM_7ACD +ROM:7AC8 acall ROM_7AAA +ROM:7ACA mov R7, #0 +ROM:7ACC ret +ROM:7ACD ; --------------------------------------------------------------------------- +ROM:7ACD +ROM:7ACD ROM_7ACD: ; CODE XREF: ROM_7AB3+13↑j +ROM:7ACD mov DPTR, #0xFE33 +ROM:7AD0 lcall ROM_37C3 +ROM:7AD3 mov R1, A +ROM:7AD4 mov DPTR, #0xF831 +ROM:7AD7 movx A, @DPTR +ROM:7AD8 mov R7, A +ROM:7AD9 mov B, #0x80 ; B Register +ROM:7ADC acall ROM_7D7C +ROM:7ADE lcall code_891 +ROM:7AE1 mov DPTR, #0xF832 +ROM:7AE4 acall ROM_7E0E +ROM:7AE6 jc ROM_7AEC +ROM:7AE8 acall ROM_7AA8 +ROM:7AEA sjmp ROM_7AB3 +ROM:7AEC ; --------------------------------------------------------------------------- +ROM:7AEC +ROM:7AEC ROM_7AEC: ; CODE XREF: ROM_7AB3+33↑j +ROM:7AEC mov DPTR, #0xF832 +ROM:7AEF movx A, @DPTR +ROM:7AF0 inc A +ROM:7AF1 mov R7, A +ROM:7AF2 mov R6, #0 +ROM:7AF4 push RAM_6 +ROM:7AF6 push RAM_7 +ROM:7AF8 mov DPTR, #0xF831 +ROM:7AFB acall ROM_7D4C +ROM:7AFD lcall ROM_37C3 +ROM:7B00 acall ROM_7D37 +ROM:7B02 mov R0, #0xA4 +ROM:7B04 mov R4, #0xF7 +ROM:7B06 mov R5, #1 +ROM:7B08 pop RAM_7 +ROM:7B0A pop RAM_6 +ROM:7B0C lcall code_86B +ROM:7B0F mov DPTR, #0xF831 +ROM:7B12 movx A, @DPTR +ROM:7B13 mov R7, A +ROM:7B14 acall ROM_7AA8 +ROM:7B16 acall ROM_7F81 +ROM:7B18 mov DPTR, #0xF832 +ROM:7B1B acall ROM_7FA9 +ROM:7B1D jb ACC7, ROM_7B28 ; Accumulator +ROM:7B20 mov DPTR, #0xFE5F +ROM:7B23 movx A, @DPTR +ROM:7B24 inc A +ROM:7B25 movx @DPTR, A +ROM:7B26 sjmp ROM_7AB3 +ROM:7B28 ; --------------------------------------------------------------------------- +ROM:7B28 +ROM:7B28 ROM_7B28: ; CODE XREF: ROM_7AB3+6A↑j +ROM:7B28 mov DPTR, #0xFE64 +ROM:7B2B lcall ROM_37C3 +ROM:7B2E mov R1, A +ROM:7B2F mov DPTR, #0xFE5F +ROM:7B32 lcall ROM_39D5 +ROM:7B35 mov DPTR, #0xF834 +ROM:7B38 movx @DPTR, A +ROM:7B39 mov DPTR, #0xF831 +ROM:7B3C acall ROM_7D4C +ROM:7B3E lcall ROM_37C3 +ROM:7B41 acall ROM_7D37 +ROM:7B43 mov A, R1 +ROM:7B44 add A, #2 +ROM:7B46 lcall ROM_39DB +ROM:7B49 anl A, #0xCC +ROM:7B4B mov DPTR, #0xF833 +ROM:7B4E acall ROM_7F89 +ROM:7B50 jz ROM_7B54 +ROM:7B52 ajmp ROM_7AB3 +ROM:7B54 ; --------------------------------------------------------------------------- +ROM:7B54 +ROM:7B54 ROM_7B54: ; CODE XREF: ROM_7AB3+9D↑j +ROM:7B54 mov DPTR, #0xF833 +ROM:7B57 movx A, @DPTR +ROM:7B58 xrl A, #0x88 +ROM:7B5A jz ROM_7B5E +ROM:7B5C ajmp ROM_7AB3 +ROM:7B5E ; --------------------------------------------------------------------------- +ROM:7B5E +ROM:7B5E ROM_7B5E: ; CODE XREF: ROM_7AB3+A7↑j +ROM:7B5E mov DPTR, #0xF7AE +ROM:7B61 movx A, @DPTR +ROM:7B62 xrl A, #0x19 +ROM:7B64 jz ROM_7B68 +ROM:7B66 ajmp ROM_7AB3 +ROM:7B68 ; --------------------------------------------------------------------------- +ROM:7B68 +ROM:7B68 ROM_7B68: ; CODE XREF: ROM_7AB3+B1↑j +ROM:7B68 inc DPTR +ROM:7B69 movx A, @DPTR +ROM:7B6A mov R7, A +ROM:7B6B ret +ROM:7B6B ; End of function ROM_7AB3 +ROM:7B6B +ROM:7B6C +ROM:7B6C ; =============== S U B R O U T I N E ======================================= +ROM:7B6C +ROM:7B6C +ROM:7B6C ROM_7B6C: ; CODE XREF: ROM_7AA8↑p +ROM:7B6C ; ROM_7D3E↓p ... +ROM:7B6C mov DPTR, #0xFE4B +ROM:7B6F lcall ROM_23E7 +ROM:7B72 jc ROM_7B77 +ROM:7B74 lcall ROM_614C +ROM:7B77 +ROM:7B77 ROM_7B77: ; CODE XREF: ROM_7B6C+6↑j +ROM:7B77 mov DPTR, #0xFE4B +ROM:7B7A movx A, @DPTR +ROM:7B7B mov R6, A +ROM:7B7C mov DPTR, #0xFE4A +ROM:7B7F movx A, @DPTR +ROM:7B80 add A, R6 +ROM:7B81 mov R5, A +ROM:7B82 mov R4, #0 +ROM:7B84 setb C +ROM:7B85 acall ROM_7DBB +ROM:7B87 jc ROM_7B8B +ROM:7B89 clr A +ROM:7B8A mov R5, A +ROM:7B8B +ROM:7B8B ROM_7B8B: ; CODE XREF: ROM_7B6C+1B↑j +ROM:7B8B mov A, #0x44 ; 'D' +ROM:7B8D add A, R5 +ROM:7B8E mov DP0L, A ; Data Pointer Low Byte +ROM:7B90 mov A, #0xFE +ROM:7B92 addc A, R4 +ROM:7B93 mov DP0H, A ; Data Pointer High Byte +ROM:7B95 mov A, R7 +ROM:7B96 movx @DPTR, A +ROM:7B97 mov DPTR, #0xFE4B +ROM:7B9A movx A, @DPTR +ROM:7B9B inc A +ROM:7B9C movx @DPTR, A +ROM:7B9D ret +ROM:7B9D ; End of function ROM_7B6C +ROM:7B9D +ROM:7B9E +ROM:7B9E ; =============== S U B R O U T I N E ======================================= +ROM:7B9E +ROM:7B9E +ROM:7B9E ROM_7B9E: ; CODE XREF: ROM_49FD↑p +ROM:7B9E ; ROM_7B9E+30↓j ... +ROM:7B9E setb C +ROM:7B9F jbc EA, ROM_7BA3 ; Interrupt Enable Register 0 +ROM:7BA2 clr C +ROM:7BA3 +ROM:7BA3 ROM_7BA3: ; CODE XREF: ROM_7B9E+1↑j +ROM:7BA3 clr A +ROM:7BA4 rlc A +ROM:7BA5 mov DPTR, #0xF82B +ROM:7BA8 movx @DPTR, A +ROM:7BA9 acall ROM_7D88 +ROM:7BAB acall ROM_7F7A +ROM:7BAD jnz ROM_7BB1 +ROM:7BAF ajmp ROM_7D40 +ROM:7BB1 ; --------------------------------------------------------------------------- +ROM:7BB1 +ROM:7BB1 ROM_7BB1: ; CODE XREF: ROM_7B9E+F↑j +ROM:7BB1 mov DPTR, #0xFE33 +ROM:7BB4 lcall ROM_37C3 +ROM:7BB7 mov R1, A +ROM:7BB8 mov DPTR, #0xF827 +ROM:7BBB movx A, @DPTR +ROM:7BBC mov R7, A +ROM:7BBD mov B, #0x80 ; B Register +ROM:7BC0 acall ROM_7D7C +ROM:7BC2 lcall code_891 +ROM:7BC5 mov DPTR, #0xF828 +ROM:7BC8 acall ROM_7E0E +ROM:7BCA jc ROM_7BD0 +ROM:7BCC acall ROM_7D3E +ROM:7BCE sjmp ROM_7B9E +ROM:7BD0 ; --------------------------------------------------------------------------- +ROM:7BD0 +ROM:7BD0 ROM_7BD0: ; CODE XREF: ROM_7B9E+2C↑j +ROM:7BD0 mov DPTR, #0xF828 +ROM:7BD3 movx A, @DPTR +ROM:7BD4 inc A +ROM:7BD5 mov R7, A +ROM:7BD6 mov R6, #0 +ROM:7BD8 push RAM_6 +ROM:7BDA push RAM_7 +ROM:7BDC acall ROM_7D49 +ROM:7BDE lcall ROM_37C3 +ROM:7BE1 acall ROM_7D37 +ROM:7BE3 mov R0, #0xA4 +ROM:7BE5 mov R4, #0xF7 +ROM:7BE7 mov R5, #1 +ROM:7BE9 pop RAM_7 +ROM:7BEB pop RAM_6 +ROM:7BED lcall code_86B +ROM:7BF0 mov DPTR, #0xF827 +ROM:7BF3 movx A, @DPTR +ROM:7BF4 mov R7, A +ROM:7BF5 acall ROM_7D3E +ROM:7BF7 acall ROM_7F81 +ROM:7BF9 mov DPTR, #0xF828 +ROM:7BFC acall ROM_7FA9 +ROM:7BFE jb ACC7, ROM_7C06 ; Accumulator +ROM:7C01 mov DPTR, #0xFE5F +ROM:7C04 ajmp ROM_7D06 +ROM:7C06 ; --------------------------------------------------------------------------- +ROM:7C06 +ROM:7C06 ROM_7C06: ; CODE XREF: ROM_7B9E+60↑j +ROM:7C06 mov DPTR, #0xFE64 +ROM:7C09 lcall ROM_37C3 +ROM:7C0C mov R1, A +ROM:7C0D mov DPTR, #0xFE5F +ROM:7C10 lcall ROM_39D5 +ROM:7C13 mov DPTR, #0xF82A +ROM:7C16 movx @DPTR, A +ROM:7C17 acall ROM_7D49 +ROM:7C19 lcall ROM_37C3 +ROM:7C1C acall ROM_7D37 +ROM:7C1E mov A, R1 +ROM:7C1F add A, #2 +ROM:7C21 lcall ROM_39DB +ROM:7C24 anl A, #0xCC +ROM:7C26 mov DPTR, #0xF829 +ROM:7C29 acall ROM_7F89 +ROM:7C2B jz ROM_7C2F +ROM:7C2D ajmp ROM_7B9E +ROM:7C2F ; --------------------------------------------------------------------------- +ROM:7C2F +ROM:7C2F ROM_7C2F: ; CODE XREF: ROM_7B9E+8D↑j +ROM:7C2F jb RAM_20.1, ROM_7C91 +ROM:7C32 mov DPTR, #0xF829 +ROM:7C35 movx A, @DPTR +ROM:7C36 xrl A, #0xCC +ROM:7C38 jnz ROM_7C91 +ROM:7C3A mov R2, #0xF7 +ROM:7C3C mov R1, #0xB2 +ROM:7C3E mov R3, #1 +ROM:7C40 mov R0, #0x7E ; '~' +ROM:7C42 mov R4, #0xF6 +ROM:7C44 mov R5, #1 +ROM:7C46 mov R6, A +ROM:7C47 mov R7, #8 +ROM:7C49 lcall code_86B +ROM:7C4C acall ROM_7D6A +ROM:7C4E add A, #0xE9 +ROM:7C50 mov DPTR, #0xF686 +ROM:7C53 movx @DPTR, A +ROM:7C54 mov DPTR, #0xFE32 +ROM:7C57 movx A, @DPTR +ROM:7C58 xrl A, #1 +ROM:7C5A jnz ROM_7C84 +ROM:7C5C mov DPTR, #0xFDB2 +ROM:7C5F movx A, @DPTR +ROM:7C60 xrl A, #1 +ROM:7C62 jnz ROM_7C84 +ROM:7C64 mov DPTR, #0xF7A6 +ROM:7C67 movx A, @DPTR +ROM:7C68 anl A, #0x10 +ROM:7C6A xrl A, #0x10 +ROM:7C6C jnz ROM_7C84 +ROM:7C6E mov R3, #1 +ROM:7C70 mov R2, #0xF7 +ROM:7C72 mov R1, #0xBA +ROM:7C74 mov DPTR, #0xF686 +ROM:7C77 movx A, @DPTR +ROM:7C78 mov R5, A +ROM:7C79 mov DPTR, #0xF7A7 +ROM:7C7C movx A, @DPTR +ROM:7C7D mov DPTR, #0xF831 +ROM:7C80 movx @DPTR, A +ROM:7C81 lcall ROM_859C +ROM:7C84 +ROM:7C84 ROM_7C84: ; CODE XREF: ROM_7B9E+BC↑j +ROM:7C84 ; ROM_7B9E+C4↑j ... +ROM:7C84 mov DPTR, #0xF686 +ROM:7C87 movx A, @DPTR +ROM:7C88 mov R7, A +ROM:7C89 acall ROM_7D5F +ROM:7C8B mov R2, #0xF7 +ROM:7C8D mov R1, #0xBA +ROM:7C8F ajmp ROM_7D23 +ROM:7C91 ; --------------------------------------------------------------------------- +ROM:7C91 +ROM:7C91 ROM_7C91: ; CODE XREF: ROM_7B9E:ROM_7C2F↑j +ROM:7C91 ; ROM_7B9E+9A↑j +ROM:7C91 mov DPTR, #0xF829 +ROM:7C94 movx A, @DPTR +ROM:7C95 xrl A, #0xC8 +ROM:7C97 jz ROM_7C9B +ROM:7C99 ajmp ROM_7D2F +ROM:7C9B ; --------------------------------------------------------------------------- +ROM:7C9B +ROM:7C9B ROM_7C9B: ; CODE XREF: ROM_7B9E+F9↑j +ROM:7C9B jnb RAM_20.1, ROM_7D0B +ROM:7C9E mov DPTR, #0xFCE1 +ROM:7CA1 movx A, @DPTR +ROM:7CA2 lcall ROM_3FE6 +ROM:7CA5 jc ROM_7CB3 +ROM:7CA7 clr A +ROM:7CA8 mov R7, A +ROM:7CA9 lcall ROM_27D4 +ROM:7CAC mov R7, #3 +ROM:7CAE lcall ROM_A023 +ROM:7CB1 ajmp ROM_7B9E +ROM:7CB3 ; --------------------------------------------------------------------------- +ROM:7CB3 +ROM:7CB3 ROM_7CB3: ; CODE XREF: ROM_7B9E+107↑j +ROM:7CB3 mov DPTR, #0xF82A +ROM:7CB6 movx A, @DPTR +ROM:7CB7 mov DPTR, #0xF724 +ROM:7CBA movx @DPTR, A +ROM:7CBB acall ROM_7D58 +ROM:7CBD lcall ROM_A225 +ROM:7CC0 mov A, R7 +ROM:7CC1 jz ROM_7CC5 +ROM:7CC3 ajmp ROM_7B9E +ROM:7CC5 ; --------------------------------------------------------------------------- +ROM:7CC5 +ROM:7CC5 ROM_7CC5: ; CODE XREF: ROM_7B9E+123↑j +ROM:7CC5 mov DPTR, #0xF7B4 +ROM:7CC8 movx A, @DPTR +ROM:7CC9 mov R7, A +ROM:7CCA mov DPTR, #0xF82C +ROM:7CCD movx @DPTR, A +ROM:7CCE mov DPTR, #0xF828 +ROM:7CD1 movx A, @DPTR +ROM:7CD2 mov R5, A +ROM:7CD3 lcall ROM_A114 +ROM:7CD6 mov R0, #0x26 ; '&' +ROM:7CD8 mov R4, #0xF7 +ROM:7CDA acall ROM_7D56 +ROM:7CDC lcall ROM_5D6B +ROM:7CDF mov R0, #0x2E ; '.' +ROM:7CE1 mov R4, #0xF7 +ROM:7CE3 mov R5, #1 +ROM:7CE5 mov R3, #1 +ROM:7CE7 mov R2, #0xF7 +ROM:7CE9 mov R1, #0xB6 +ROM:7CEB lcall ROM_6F87 +ROM:7CEE mov DPTR, #0xFCE1 +ROM:7CF1 movx A, @DPTR +ROM:7CF2 mov B, #0xF ; B Register +ROM:7CF5 mul AB +ROM:7CF6 add A, #0x69 ; 'i' +ROM:7CF8 mov R1, A +ROM:7CF9 mov A, #0xFC +ROM:7CFB lcall ROM_A26A +ROM:7CFE acall ROM_7F6C +ROM:7D00 lcall ROM_8EFE +ROM:7D03 mov DPTR, #0xFCE1 +ROM:7D06 +ROM:7D06 ROM_7D06: ; CODE XREF: ROM_7B9E+66↑j +ROM:7D06 movx A, @DPTR +ROM:7D07 inc A +ROM:7D08 movx @DPTR, A +ROM:7D09 ajmp ROM_7B9E +ROM:7D0B ; --------------------------------------------------------------------------- +ROM:7D0B +ROM:7D0B ROM_7D0B: ; CODE XREF: ROM_7B9E:ROM_7C9B↑j +ROM:7D0B mov R0, #0x7E ; '~' +ROM:7D0D mov R4, #0xF6 +ROM:7D0F acall ROM_7D56 +ROM:7D11 lcall ROM_5D6B +ROM:7D14 acall ROM_7D6A +ROM:7D16 add A, #0xEF +ROM:7D18 mov R7, A +ROM:7D19 mov DPTR, #0xF686 +ROM:7D1C movx @DPTR, A +ROM:7D1D acall ROM_7D5F +ROM:7D1F mov R2, #0xF7 +ROM:7D21 mov R1, #0xB4 +ROM:7D23 +ROM:7D23 ROM_7D23: ; CODE XREF: ROM_7B9E+F1↑j +ROM:7D23 lcall code_86B +ROM:7D26 mov R6, #0xF6 +ROM:7D28 mov R7, #0x7E ; '~' +ROM:7D2A lcall ROM_436B +ROM:7D2D ajmp ROM_7B9E +ROM:7D2F ; --------------------------------------------------------------------------- +ROM:7D2F +ROM:7D2F ROM_7D2F: ; CODE XREF: ROM_7B9E+FB↑j +ROM:7D2F mov DPTR, #0xF829 +ROM:7D32 movx A, @DPTR +ROM:7D33 xrl A, #0x88 +ROM:7D35 ajmp ROM_7B9E +ROM:7D35 ; End of function ROM_7B9E +ROM:7D35 +ROM:7D37 +ROM:7D37 ; =============== S U B R O U T I N E ======================================= +ROM:7D37 +ROM:7D37 +ROM:7D37 ROM_7D37: ; CODE XREF: ROM_7AB3+4D↑p +ROM:7D37 ; ROM_7AB3+8E↑p ... +ROM:7D37 add A, R7 +ROM:7D38 mov R1, A +ROM:7D39 mov A, R2 +ROM:7D3A addc A, B ; B Register +ROM:7D3C mov R2, A +ROM:7D3D ret +ROM:7D3D ; End of function ROM_7D37 +ROM:7D3D +ROM:7D3E +ROM:7D3E ; =============== S U B R O U T I N E ======================================= +ROM:7D3E +ROM:7D3E +ROM:7D3E ROM_7D3E: ; CODE XREF: ROM_7B9E+2E↑p +ROM:7D3E ; ROM_7B9E+57↑p +ROM:7D3E acall ROM_7B6C +ROM:7D40 +ROM:7D40 ROM_7D40: ; CODE XREF: ROM_7B9E+11↑j +ROM:7D40 mov DPTR, #0xF82B +ROM:7D43 movx A, @DPTR +ROM:7D44 add A, #0xFF +ROM:7D46 mov EA, C ; Interrupt Enable Register 0 +ROM:7D48 ret +ROM:7D48 ; End of function ROM_7D3E +ROM:7D48 +ROM:7D49 +ROM:7D49 ; =============== S U B R O U T I N E ======================================= +ROM:7D49 +ROM:7D49 +ROM:7D49 ROM_7D49: ; CODE XREF: ROM_7B9E+3E↑p +ROM:7D49 ; ROM_7B9E+79↑p +ROM:7D49 mov DPTR, #0xF827 +ROM:7D49 ; End of function ROM_7D49 +ROM:7D49 +ROM:7D4C +ROM:7D4C ; =============== S U B R O U T I N E ======================================= +ROM:7D4C +ROM:7D4C +ROM:7D4C ROM_7D4C: ; CODE XREF: ROM_7AB3+48↑p +ROM:7D4C ; ROM_7AB3+89↑p ... +ROM:7D4C movx A, @DPTR +ROM:7D4D mov B, #0x80 ; B Register +ROM:7D50 mul AB +ROM:7D51 mov R7, A +ROM:7D52 mov DPTR, #0xFE33 +ROM:7D55 ret +ROM:7D55 ; End of function ROM_7D4C +ROM:7D55 +ROM:7D56 +ROM:7D56 ; =============== S U B R O U T I N E ======================================= +ROM:7D56 +ROM:7D56 +ROM:7D56 ROM_7D56: ; CODE XREF: ROM_7B9E+13C↑p +ROM:7D56 ; ROM_7B9E+171↑p +ROM:7D56 mov R5, #1 +ROM:7D56 ; End of function ROM_7D56 +ROM:7D56 +ROM:7D58 +ROM:7D58 ; =============== S U B R O U T I N E ======================================= +ROM:7D58 +ROM:7D58 +ROM:7D58 ROM_7D58: ; CODE XREF: ROM_7B9E+11D↑p +ROM:7D58 mov R3, #1 +ROM:7D5A mov R2, #0xF7 +ROM:7D5C mov R1, #0xAC +ROM:7D5E ret +ROM:7D5E ; End of function ROM_7D58 +ROM:7D5E +ROM:7D5F +ROM:7D5F ; =============== S U B R O U T I N E ======================================= +ROM:7D5F +ROM:7D5F +ROM:7D5F ROM_7D5F: ; CODE XREF: ROM_7B9E+EB↑p +ROM:7D5F ; ROM_7B9E+17F↑p +ROM:7D5F mov R6, #0 +ROM:7D61 mov R0, #0x88 +ROM:7D63 mov R4, #0xF6 +ROM:7D65 mov R5, #1 +ROM:7D67 mov R3, #1 +ROM:7D69 ret +ROM:7D69 ; End of function ROM_7D5F +ROM:7D69 +ROM:7D6A +ROM:7D6A ; =============== S U B R O U T I N E ======================================= +ROM:7D6A +ROM:7D6A +ROM:7D6A ROM_7D6A: ; CODE XREF: ROM_7B9E+AE↑p +ROM:7D6A ; ROM_7B9E+176↑p +ROM:7D6A mov DPTR, #0xF82A +ROM:7D6D movx A, @DPTR +ROM:7D6E mov DPTR, #0xF687 +ROM:7D71 movx @DPTR, A +ROM:7D72 mov DPTR, #0xF828 +ROM:7D75 movx A, @DPTR +ROM:7D76 ret +ROM:7D76 ; End of function ROM_7D6A +ROM:7D76 +ROM:7D77 +ROM:7D77 ; =============== S U B R O U T I N E ======================================= +ROM:7D77 +ROM:7D77 +ROM:7D77 ROM_7D77: ; CODE XREF: ROM_7A07+76↑p +ROM:7D77 ; ROM_7EE1+43↓p +ROM:7D77 movx A, @DPTR +ROM:7D78 mov R7, A +ROM:7D79 mov B, #0x44 ; 'D' ; B Register +ROM:7D79 ; End of function ROM_7D77 +ROM:7D79 +ROM:7D7C +ROM:7D7C ; =============== S U B R O U T I N E ======================================= +ROM:7D7C +ROM:7D7C +ROM:7D7C ROM_7D7C: ; CODE XREF: ROM_7AB3+29↑p +ROM:7D7C ; ROM_7B9E+22↑p +ROM:7D7C mul AB +ROM:7D7D mov DP0L, A ; Data Pointer Low Byte +ROM:7D7F mov A, R1 +ROM:7D80 add A, DP0L ; Data Pointer Low Byte +ROM:7D82 mov R1, A +ROM:7D83 mov A, R2 +ROM:7D84 addc A, B ; B Register +ROM:7D86 mov R2, A +ROM:7D87 ret +ROM:7D87 ; End of function ROM_7D7C +ROM:7D87 +ROM:7D88 +ROM:7D88 ; =============== S U B R O U T I N E ======================================= +ROM:7D88 +ROM:7D88 +ROM:7D88 ROM_7D88: ; CODE XREF: ROM_7AB3+B↑p +ROM:7D88 ; ROM_7B9E+B↑p +ROM:7D88 mov DPTR, #0xFE40 +ROM:7D8B movx A, @DPTR +ROM:7D8C jnz ROM_7D91 +ROM:7D8E mov R7, #0xFF +ROM:7D90 ret +ROM:7D91 ; --------------------------------------------------------------------------- +ROM:7D91 +ROM:7D91 ROM_7D91: ; CODE XREF: ROM_7D88+4↑j +ROM:7D91 mov DPTR, #0xFE3F +ROM:7D94 movx A, @DPTR +ROM:7D95 add A, #0x39 ; '9' +ROM:7D97 mov DP0L, A ; Data Pointer Low Byte +ROM:7D99 clr A +ROM:7D9A addc A, #0xFE +ROM:7D9C mov DP0H, A ; Data Pointer High Byte +ROM:7D9E movx A, @DPTR +ROM:7D9F mov R7, A +ROM:7DA0 mov DPTR, #0xFE3F +ROM:7DA3 movx A, @DPTR +ROM:7DA4 inc A +ROM:7DA5 movx @DPTR, A +ROM:7DA6 movx A, @DPTR +ROM:7DA7 setb C +ROM:7DA8 acall ROM_7DBB +ROM:7DAA jc ROM_7DAE +ROM:7DAC clr A +ROM:7DAD movx @DPTR, A +ROM:7DAE +ROM:7DAE ROM_7DAE: ; CODE XREF: ROM_7D88+22↑j +ROM:7DAE mov DPTR, #0xFE40 +ROM:7DB1 movx A, @DPTR +ROM:7DB2 dec A +ROM:7DB3 movx @DPTR, A +ROM:7DB4 ret +ROM:7DB4 ; End of function ROM_7D88 +ROM:7DB4 +ROM:7DB5 +ROM:7DB5 ; =============== S U B R O U T I N E ======================================= +ROM:7DB5 +ROM:7DB5 +ROM:7DB5 ROM_7DB5: ; CODE XREF: ROM_A7D1:ROM_A7F0↓p +ROM:7DB5 ; ROM_A7D1:ROM_A81C↓p +ROM:7DB5 mov DPTR, #0xF854 +ROM:7DB8 movx A, @DPTR +ROM:7DB9 mov R7, A +ROM:7DB9 ; End of function ROM_7DB5 +ROM:7DB9 +ROM:7DBA +ROM:7DBA ; =============== S U B R O U T I N E ======================================= +ROM:7DBA +ROM:7DBA +ROM:7DBA ROM_7DBA: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+3C↑p +ROM:7DBA ; Radio_Something_Setup_ROM_4B0C+D5↑p ... +ROM:7DBA clr C +ROM:7DBA ; End of function ROM_7DBA +ROM:7DBA +ROM:7DBB +ROM:7DBB ; =============== S U B R O U T I N E ======================================= +ROM:7DBB +ROM:7DBB +ROM:7DBB ROM_7DBB: ; CODE XREF: ROM_405D+52↑p +ROM:7DBB ; ROM_7B6C+19↑p ... +ROM:7DBB subb A, #5 +ROM:7DBD mov A, #0x80 +ROM:7DBF subb A, #0x80 +ROM:7DC1 ret +ROM:7DC1 ; End of function ROM_7DBB +ROM:7DC1 +ROM:7DC2 +ROM:7DC2 ; =============== S U B R O U T I N E ======================================= +ROM:7DC2 +ROM:7DC2 +ROM:7DC2 ROM_7DC2: ; CODE XREF: timint2_0+30↓p +ROM:7DC2 lcall ROM_A3F4 +ROM:7DC5 mov DPTR, #0xF988 +ROM:7DC8 mov A, R7 +ROM:7DC9 movx @DPTR, A +ROM:7DCA cpl A +ROM:7DCB jz ROM_7E0D +ROM:7DCD mov DPTR, #0xE000 +ROM:7DD0 movx A, @DPTR +ROM:7DD1 mov R3, A +ROM:7DD2 acall ROM_7E0F +ROM:7DD4 jc ROM_7DDD +ROM:7DD6 mov DPTR, #0xF988 +ROM:7DD9 movx A, @DPTR +ROM:7DDA mov R7, A +ROM:7DDB ajmp ROM_7B6C +ROM:7DDD ; --------------------------------------------------------------------------- +ROM:7DDD +ROM:7DDD ROM_7DDD: ; CODE XREF: ROM_7DC2+12↑j +ROM:7DDD mov A, R3 +ROM:7DDE inc A +ROM:7DDF mov R7, A +ROM:7DE0 mov R6, #0 +ROM:7DE2 push RAM_6 +ROM:7DE4 push RAM_7 +ROM:7DE6 mov DPTR, #0xF988 +ROM:7DE9 acall ROM_7D4C +ROM:7DEB lcall ROM_37C3 +ROM:7DEE add A, R7 +ROM:7DEF mov R1, A +ROM:7DF0 mov A, R2 +ROM:7DF1 addc A, B ; B Register +ROM:7DF3 mov R0, RAM_1 +ROM:7DF5 mov R4, A +ROM:7DF6 mov R5, RAM_3 +ROM:7DF8 mov R3, #1 +ROM:7DFA mov R2, #0xE0 +ROM:7DFC mov R1, #0 +ROM:7DFE pop RAM_7 +ROM:7E00 pop RAM_6 +ROM:7E02 lcall code_86B +ROM:7E05 mov DPTR, #0xF988 +ROM:7E08 movx A, @DPTR +ROM:7E09 mov R7, A +ROM:7E0A lcall ROM_A422 +ROM:7E0D +ROM:7E0D ROM_7E0D: ; CODE XREF: ROM_7DC2+9↑j +ROM:7E0D ret +ROM:7E0D ; End of function ROM_7DC2 +ROM:7E0D +ROM:7E0E +ROM:7E0E ; =============== S U B R O U T I N E ======================================= +ROM:7E0E +ROM:7E0E +ROM:7E0E ROM_7E0E: ; CODE XREF: ROM_7AB3+31↑p +ROM:7E0E ; ROM_7B9E+2A↑p +ROM:7E0E movx @DPTR, A +ROM:7E0E ; End of function ROM_7E0E +ROM:7E0E +ROM:7E0F +ROM:7E0F ; =============== S U B R O U T I N E ======================================= +ROM:7E0F +ROM:7E0F +ROM:7E0F ROM_7E0F: ; CODE XREF: ROM_7DC2+10↑p +ROM:7E0F ; Radio_init_something_ROM_A332+3↓p +ROM:7E0F setb C +ROM:7E10 subb A, #0x7F +ROM:7E12 mov A, #0x80 +ROM:7E14 subb A, #0x80 +ROM:7E16 ret +ROM:7E16 ; End of function ROM_7E0F +ROM:7E16 +ROM:7E17 +ROM:7E17 ; =============== S U B R O U T I N E ======================================= +ROM:7E17 +ROM:7E17 +ROM:7E17 Initialize_more_variables_ROM_7E17: ; CODE XREF: pretty_early_init_code_1DFD+13↑p +ROM:7E17 clr A +ROM:7E18 mov DPTR, #0xFEA6 +ROM:7E1B movx @DPTR, A +ROM:7E1C inc DPTR +ROM:7E1D mov A, #5 +ROM:7E1F movx @DPTR, A +ROM:7E20 inc DPTR +ROM:7E21 mov A, #0x14 +ROM:7E23 movx @DPTR, A +ROM:7E24 inc DPTR +ROM:7E25 mov A, #9 +ROM:7E27 movx @DPTR, A +ROM:7E28 inc DPTR +ROM:7E29 mov A, #0x18 +ROM:7E2B movx @DPTR, A +ROM:7E2C mov DPTR, #0xFE8D +ROM:7E2F movx A, @DPTR +ROM:7E30 mov R7, A +ROM:7E31 cpl A +ROM:7E32 jz ROM_7E9A +ROM:7E34 clr C +ROM:7E35 mov A, R7 +ROM:7E36 subb A, #0x17 +ROM:7E38 mov A, #0x80 +ROM:7E3A subb A, #0x80 +ROM:7E3C jnc ROM_7E6D +ROM:7E3E clr C +ROM:7E3F mov A, #0x17 +ROM:7E41 subb A, R7 +ROM:7E42 mov DPTR, #0xFEA6 +ROM:7E45 movx @DPTR, A +ROM:7E46 acall ROM_7DBA +ROM:7E48 jc ROM_7E4D +ROM:7E4A mov A, #5 +ROM:7E4C movx @DPTR, A +ROM:7E4D +ROM:7E4D ROM_7E4D: ; CODE XREF: Initialize_more_variables_ROM_7E17+31↑j +ROM:7E4D mov DPTR, #0xFEA7 +ROM:7E50 movx A, @DPTR +ROM:7E51 mov R7, A +ROM:7E52 mov DPTR, #0xFEA6 +ROM:7E55 movx A, @DPTR +ROM:7E56 mov R6, A +ROM:7E57 clr C +ROM:7E58 mov A, R7 +ROM:7E59 subb A, R6 +ROM:7E5A inc DPTR +ROM:7E5B acall ROM_7EB2 +ROM:7E5D mov DPTR, #0xFEA8 +ROM:7E60 acall ROM_7EB2 +ROM:7E62 mov DPTR, #0xFEA9 +ROM:7E65 acall ROM_7EB2 +ROM:7E67 mov DPTR, #0xFEAA +ROM:7E6A movx @DPTR, A +ROM:7E6B sjmp ROM_7E9A +ROM:7E6D ; --------------------------------------------------------------------------- +ROM:7E6D +ROM:7E6D ROM_7E6D: ; CODE XREF: Initialize_more_variables_ROM_7E17+25↑j +ROM:7E6D mov DPTR, #0xFE8D +ROM:7E70 movx A, @DPTR +ROM:7E71 add A, #0xE9 +ROM:7E73 mov DPTR, #0xFEA6 +ROM:7E76 movx @DPTR, A +ROM:7E77 lcall ROM_A768 +ROM:7E7A jc ROM_7E7F +ROM:7E7C mov A, #7 +ROM:7E7E movx @DPTR, A +ROM:7E7F +ROM:7E7F ROM_7E7F: ; CODE XREF: Initialize_more_variables_ROM_7E17+63↑j +ROM:7E7F mov DPTR, #0xFEA6 +ROM:7E82 movx A, @DPTR +ROM:7E83 mov R7, A +ROM:7E84 inc DPTR +ROM:7E85 movx A, @DPTR +ROM:7E86 add A, R7 +ROM:7E87 movx @DPTR, A +ROM:7E88 mov DPTR, #0xFEA8 +ROM:7E8B movx A, @DPTR +ROM:7E8C add A, R7 +ROM:7E8D movx @DPTR, A +ROM:7E8E mov DPTR, #0xFEA9 +ROM:7E91 movx A, @DPTR +ROM:7E92 add A, R7 +ROM:7E93 movx @DPTR, A +ROM:7E94 mov DPTR, #0xFEAA +ROM:7E97 movx A, @DPTR +ROM:7E98 add A, R7 +ROM:7E99 movx @DPTR, A +ROM:7E9A +ROM:7E9A ROM_7E9A: ; CODE XREF: Initialize_more_variables_ROM_7E17+1B↑j +ROM:7E9A ; Initialize_more_variables_ROM_7E17+54↑j +ROM:7E9A mov DPTR, #0xFEA8 +ROM:7E9D movx A, @DPTR +ROM:7E9E mov DPTR, #0xFEAB +ROM:7EA1 movx @DPTR, A +ROM:7EA2 mov DPTR, #0xFEAA +ROM:7EA5 movx A, @DPTR +ROM:7EA6 mov DPTR, #0xFEAE +ROM:7EA9 movx @DPTR, A +ROM:7EAA clr A +ROM:7EAB mov DPTR, #0xFEAC +ROM:7EAE movx @DPTR, A +ROM:7EAF inc DPTR +ROM:7EB0 movx @DPTR, A +ROM:7EB1 ret +ROM:7EB1 ; End of function Initialize_more_variables_ROM_7E17 +ROM:7EB1 +ROM:7EB2 +ROM:7EB2 ; =============== S U B R O U T I N E ======================================= +ROM:7EB2 +ROM:7EB2 +ROM:7EB2 ROM_7EB2: ; CODE XREF: Initialize_more_variables_ROM_7E17+44↑p +ROM:7EB2 ; Initialize_more_variables_ROM_7E17+49↑p ... +ROM:7EB2 movx @DPTR, A +ROM:7EB3 inc DPTR +ROM:7EB4 movx A, @DPTR +ROM:7EB5 mov R7, A +ROM:7EB6 clr C +ROM:7EB7 mov A, R7 +ROM:7EB8 subb A, R6 +ROM:7EB9 ret +ROM:7EB9 ; End of function ROM_7EB2 +ROM:7EB9 +ROM:7EBA +ROM:7EBA ; =============== S U B R O U T I N E ======================================= +ROM:7EBA +ROM:7EBA +ROM:7EBA ROM_7EBA: ; CODE XREF: ROM_7A07+94↑p +ROM:7EBA ; ROM_7EE1+61↓p +ROM:7EBA movx A, @DPTR +ROM:7EBB mov R7, A +ROM:7EBC acall ROM_7EC0 +ROM:7EBE mov A, R7 +ROM:7EBF ret +ROM:7EBF ; End of function ROM_7EBA +ROM:7EBF +ROM:7EC0 +ROM:7EC0 ; =============== S U B R O U T I N E ======================================= +ROM:7EC0 +ROM:7EC0 +ROM:7EC0 ROM_7EC0: ; CODE XREF: ROM_7EBA+2↑p +ROM:7EC0 mov DPTR, #0xFE43 +ROM:7EC3 lcall ROM_87AD +ROM:7EC6 jc ROM_7ECB +ROM:7EC8 lcall ROM_614C +ROM:7ECB +ROM:7ECB ROM_7ECB: ; CODE XREF: ROM_7EC0+6↑j +ROM:7ECB clr A +ROM:7ECC mov R4, A +ROM:7ECD add A, #0x41 ; 'A' +ROM:7ECF mov DP0L, A ; Data Pointer Low Byte +ROM:7ED1 mov A, R4 +ROM:7ED2 addc A, #0xFE +ROM:7ED4 mov DP0H, A ; Data Pointer High Byte +ROM:7ED6 mov A, R7 +ROM:7ED7 movx @DPTR, A +ROM:7ED8 mov DPTR, #0xFE43 +ROM:7EDB movx A, @DPTR +ROM:7EDC inc A +ROM:7EDD movx @DPTR, A +ROM:7EDE movx A, @DPTR +ROM:7EDF mov R7, A +ROM:7EE0 ret +ROM:7EE0 ; End of function ROM_7EC0 +ROM:7EE0 +ROM:7EE1 +ROM:7EE1 ; =============== S U B R O U T I N E ======================================= +ROM:7EE1 +ROM:7EE1 +ROM:7EE1 ROM_7EE1: ; CODE XREF: ROM_A044+68↓p +ROM:7EE1 lcall ROM_83AD +ROM:7EE4 acall ROM_7F7A +ROM:7EE6 jz ROM_7F52 +ROM:7EE8 mov DPTR, #0xF724 +ROM:7EEB mov A, #0xD +ROM:7EED movx @DPTR, A +ROM:7EEE inc DPTR +ROM:7EEF mov A, #0x41 ; 'A' +ROM:7EF1 movx @DPTR, A +ROM:7EF2 inc DPTR +ROM:7EF3 mov A, #0x88 +ROM:7EF5 lcall ROM_8F0D +ROM:7EF8 lcall ROM_878C +ROM:7EFB inc DPTR +ROM:7EFC mov A, #0xFF +ROM:7EFE movx @DPTR, A +ROM:7EFF inc DPTR +ROM:7F00 movx @DPTR, A +ROM:7F01 inc DPTR +ROM:7F02 mov A, #0xAF +ROM:7F04 movx @DPTR, A +ROM:7F05 inc DPTR +ROM:7F06 mov A, #0x10 +ROM:7F08 acall ROM_7FA2 +ROM:7F0A mov A, #0x87 +ROM:7F0C movx @DPTR, A +ROM:7F0D mov DPTR, #0xF827 +ROM:7F10 acall ROM_7F93 +ROM:7F12 lcall ROM_37C3 +ROM:7F15 acall ROM_7F5B +ROM:7F17 mov R6, #0 +ROM:7F19 mov R7, #0xC +ROM:7F1B acall ROM_7F73 +ROM:7F1D lcall ROM_37C3 +ROM:7F20 mov R1, A +ROM:7F21 mov DPTR, #0xF827 +ROM:7F24 acall ROM_7D77 +ROM:7F26 lcall ROM_D41B +ROM:7F29 lcall ROM_37C3 +ROM:7F2C lcall ROM_D394 +ROM:7F2F lcall ROM_37C3 +ROM:7F32 lcall ROM_D3D4 +ROM:7F35 jbc EA, ROM_7F39 ; Interrupt Enable Register 0 +ROM:7F38 clr C +ROM:7F39 +ROM:7F39 ROM_7F39: ; CODE XREF: ROM_7EE1+54↑j +ROM:7F39 clr A +ROM:7F3A rlc A +ROM:7F3B mov DPTR, #0xF828 +ROM:7F3E movx @DPTR, A +ROM:7F3F mov DPTR, #0xF827 +ROM:7F42 acall ROM_7EBA +ROM:7F44 xrl A, #1 +ROM:7F46 jnz ROM_7F4A +ROM:7F48 acall ROM_7F53 +ROM:7F4A +ROM:7F4A ROM_7F4A: ; CODE XREF: ROM_7EE1+65↑j +ROM:7F4A mov DPTR, #0xF828 +ROM:7F4D movx A, @DPTR +ROM:7F4E add A, #0xFF +ROM:7F50 mov EA, C ; Interrupt Enable Register 0 +ROM:7F52 +ROM:7F52 ROM_7F52: ; CODE XREF: ROM_7EE1+5↑j +ROM:7F52 ret +ROM:7F52 ; End of function ROM_7EE1 +ROM:7F52 +ROM:7F53 +ROM:7F53 ; =============== S U B R O U T I N E ======================================= +ROM:7F53 +ROM:7F53 +ROM:7F53 ROM_7F53: ; CODE XREF: ROM_49FD+DF↑p +ROM:7F53 ; ROM_7A07+9A↑p ... +ROM:7F53 mov DPTR, #0xFEC3 +ROM:7F56 movx A, @DPTR +ROM:7F57 orl A, #2 +ROM:7F59 movx @DPTR, A +ROM:7F5A ret +ROM:7F5A ; End of function ROM_7F53 +ROM:7F5A +ROM:7F5B +ROM:7F5B ; =============== S U B R O U T I N E ======================================= +ROM:7F5B +ROM:7F5B +ROM:7F5B ROM_7F5B: ; CODE XREF: ROM_7A07+67↑p +ROM:7F5B ; ROM_7EE1+34↑p +ROM:7F5B add A, R7 +ROM:7F5C mov R1, A +ROM:7F5D mov A, R2 +ROM:7F5E addc A, B ; B Register +ROM:7F60 mov R2, A +ROM:7F61 mov A, R1 +ROM:7F62 add A, #4 +ROM:7F64 mov R1, A +ROM:7F65 clr A +ROM:7F66 addc A, R2 +ROM:7F67 mov R0, RAM_1 +ROM:7F69 mov R4, A +ROM:7F6A mov R5, RAM_3 +ROM:7F6A ; End of function ROM_7F5B +ROM:7F6A +ROM:7F6C +ROM:7F6C ; =============== S U B R O U T I N E ======================================= +ROM:7F6C +ROM:7F6C +ROM:7F6C ROM_7F6C: ; CODE XREF: ROM_7B9E+160↑p +ROM:7F6C mov R3, #1 +ROM:7F6E mov R2, #0xF7 +ROM:7F70 mov R1, #0x24 ; '$' +ROM:7F72 ret +ROM:7F72 ; End of function ROM_7F6C +ROM:7F72 +ROM:7F73 +ROM:7F73 ; =============== S U B R O U T I N E ======================================= +ROM:7F73 +ROM:7F73 +ROM:7F73 ROM_7F73: ; CODE XREF: ROM_7A07+6D↑p +ROM:7F73 ; ROM_7EE1+3A↑p +ROM:7F73 lcall code_86B +ROM:7F76 mov DPTR, #0xFE36 +ROM:7F79 ret +ROM:7F79 ; End of function ROM_7F73 +ROM:7F79 +ROM:7F7A +ROM:7F7A ; =============== S U B R O U T I N E ======================================= +ROM:7F7A +ROM:7F7A +ROM:7F7A ROM_7F7A: ; CODE XREF: ROM_4816+3↑p +ROM:7F7A ; ROM_7B9E+D↑p ... +ROM:7F7A mov DPTR, #0xF827 +ROM:7F7D mov A, R7 +ROM:7F7E movx @DPTR, A +ROM:7F7F cpl A +ROM:7F80 ret +ROM:7F80 ; End of function ROM_7F7A +ROM:7F80 +ROM:7F81 +ROM:7F81 ; =============== S U B R O U T I N E ======================================= +ROM:7F81 +ROM:7F81 +ROM:7F81 ROM_7F81: ; CODE XREF: ROM_7AB3+63↑p +ROM:7F81 ; ROM_7B9E+59↑p +ROM:7F81 mov DPTR, #0xFE5F +ROM:7F84 movx A, @DPTR +ROM:7F85 anl A, #7 +ROM:7F87 movx @DPTR, A +ROM:7F88 ret +ROM:7F88 ; End of function ROM_7F81 +ROM:7F88 +ROM:7F89 +ROM:7F89 ; =============== S U B R O U T I N E ======================================= +ROM:7F89 +ROM:7F89 +ROM:7F89 ROM_7F89: ; CODE XREF: ROM_7AB3+9B↑p +ROM:7F89 ; ROM_7B9E+8B↑p +ROM:7F89 movx @DPTR, A +ROM:7F8A mov DPTR, #0xF7A5 +ROM:7F8D movx A, @DPTR +ROM:7F8E anl A, #7 +ROM:7F90 dec A +ROM:7F91 ret +ROM:7F91 ; End of function ROM_7F89 +ROM:7F91 +ROM:7F92 +ROM:7F92 ; =============== S U B R O U T I N E ======================================= +ROM:7F92 +ROM:7F92 +ROM:7F92 ROM_7F92: ; CODE XREF: ROM_7A07+62↑p +ROM:7F92 inc DPTR +ROM:7F92 ; End of function ROM_7F92 +ROM:7F92 +ROM:7F93 +ROM:7F93 ; =============== S U B R O U T I N E ======================================= +ROM:7F93 +ROM:7F93 +ROM:7F93 ROM_7F93: ; CODE XREF: ROM_7EE1+2F↑p +ROM:7F93 ; ROM_850F+A↓p +ROM:7F93 movx A, @DPTR +ROM:7F94 mov B, #0x44 ; 'D' ; B Register +ROM:7F97 mul AB +ROM:7F98 mov R7, A +ROM:7F99 mov DPTR, #0xFE36 +ROM:7F9C ret +ROM:7F9C ; End of function ROM_7F93 +ROM:7F9C +ROM:7F9D +ROM:7F9D ; =============== S U B R O U T I N E ======================================= +ROM:7F9D +ROM:7F9D +ROM:7F9D ROM_7F9D: ; CODE XREF: ROM_A0C8+9↓p +ROM:7F9D ; ROM_A1ED↓p +ROM:7F9D mov DPTR, #0xFE33 +ROM:7F9D ; End of function ROM_7F9D +ROM:7F9D +ROM:7FA0 +ROM:7FA0 ; =============== S U B R O U T I N E ======================================= +ROM:7FA0 +ROM:7FA0 +ROM:7FA0 ROM_7FA0: ; CODE XREF: MainRadioSomething_ROM_9F3D+3↓p +ROM:7FA0 ; ROM_A0C8+3↓p +ROM:7FA0 mov A, #1 +ROM:7FA0 ; End of function ROM_7FA0 +ROM:7FA0 +ROM:7FA2 +ROM:7FA2 ; =============== S U B R O U T I N E ======================================= +ROM:7FA2 +ROM:7FA2 +ROM:7FA2 ROM_7FA2: ; CODE XREF: ROM_7EE1+27↑p +ROM:7FA2 ; Init_Radio_ROM_7FB5+6↓p +ROM:7FA2 movx @DPTR, A +ROM:7FA3 inc DPTR +ROM:7FA4 mov A, #0xE0 +ROM:7FA6 movx @DPTR, A +ROM:7FA7 inc DPTR +ROM:7FA8 ret +ROM:7FA8 ; End of function ROM_7FA2 +ROM:7FA8 +ROM:7FA9 +ROM:7FA9 ; =============== S U B R O U T I N E ======================================= +ROM:7FA9 +ROM:7FA9 +ROM:7FA9 ROM_7FA9: ; CODE XREF: ROM_7AB3+68↑p +ROM:7FA9 ; ROM_7B9E+5E↑p +ROM:7FA9 movx A, @DPTR +ROM:7FAA add A, #0xA4 +ROM:7FAC mov DP0L, A ; Data Pointer Low Byte +ROM:7FAE clr A +ROM:7FAF addc A, #0xF7 +ROM:7FB1 mov DP0H, A ; Data Pointer High Byte +ROM:7FB3 movx A, @DPTR +ROM:7FB4 ret +ROM:7FB4 ; End of function ROM_7FA9 +ROM:7FB4 +ROM:7FB5 +ROM:7FB5 ; =============== S U B R O U T I N E ======================================= +ROM:7FB5 +ROM:7FB5 +ROM:7FB5 Init_Radio_ROM_7FB5: ; CODE XREF: MainRadioSomething_ROM_9F3D+C↓p +ROM:7FB5 clr A +ROM:7FB6 mov DPTR, #0xFE5F +ROM:7FB9 movx @DPTR, A +ROM:7FBA inc DPTR +ROM:7FBB acall ROM_7FA2 +ROM:7FBD clr A +ROM:7FBE movx @DPTR, A +ROM:7FBF lcall Setup_Radio_Regs_ROM_A6FD +ROM:7FC2 lcall Single_Radio_Cmd_ROM_97B7 +ROM:7FC5 lcall WriteRadioCalibration_ROM_96BE +ROM:7FC8 mov DPTR, #0xDFA6 +ROM:7FCB mov A, #0xC0 +ROM:7FCD movx @DPTR, A +ROM:7FCE mov DPTR, #0xDF48 +ROM:7FD1 mov A, #0xC8 +ROM:7FD3 movx @DPTR, A ; flush RX and receive +ROM:7FD4 dec A +ROM:7FD5 movx @DPTR, A ; flush TX fifo +ROM:7FD6 dec A +ROM:7FD7 movx @DPTR, A +ROM:7FD8 mov DPTR, #0xDFAF +ROM:7FDB mov A, #0x60 ; '`' +ROM:7FDD movx @DPTR, A +ROM:7FDE ret +ROM:7FDE ; End of function Init_Radio_ROM_7FB5 +ROM:7FDE +ROM:7FDF +ROM:7FDF ; =============== S U B R O U T I N E ======================================= +ROM:7FDF +ROM:7FDF +ROM:7FDF ROM_7FDF: ; CODE XREF: ROM_436B-F98↑p +ROM:7FDF lcall ROM_3F9C +ROM:7FE2 mov DPTR, #0xF49A +ROM:7FE5 mov A, R7 +ROM:7FE6 movx @DPTR, A +ROM:7FE7 mov DPTR, #0xF53C +ROM:7FEA movx A, @DPTR +ROM:7FEB mov DPTR, #0xF503 +ROM:7FEE movx @DPTR, A +ROM:7FEF mov DPTR, #0xF53D +ROM:7FF2 movx A, @DPTR +ROM:7FF3 mov DPTR, #0xF504 +ROM:7FF6 movx @DPTR, A +ROM:7FF7 mov R0, #0xF9 +ROM:7FF9 mov R4, #0xF4 +ROM:7FFB lcall ROM_5D63 +ROM:7FFE mov DPTR, #0xF501 +ROM:8001 lcall ROM_8027 +ROM:8004 lcall SetupPinsForEEProm +ROM:8007 clr A +ROM:8008 mov R7, A +ROM:8009 mov R6, #0x20 ; ' ' +ROM:800B mov R5, A +ROM:800C mov R4, A +ROM:800D lcall code_1F13 +ROM:8010 mov DPTR, #0xF882 +ROM:8013 clr A +ROM:8014 movx @DPTR, A +ROM:8015 inc DPTR +ROM:8016 mov A, #0x20 ; ' ' +ROM:8018 acall ROM_802F +ROM:801A mov R2, #0xF4 +ROM:801C mov R1, #0x99 +ROM:801E mov R5, #0x71 ; 'q' +ROM:8020 mov R4, A +ROM:8021 lcall ROM_6FF1 +ROM:8024 ljmp SetupWatchdog +ROM:8024 ; End of function ROM_7FDF +ROM:8024 +ROM:8027 +ROM:8027 ; =============== S U B R O U T I N E ======================================= +ROM:8027 +ROM:8027 +ROM:8027 ROM_8027: ; CODE XREF: ROM_7FDF+22↑p +ROM:8027 mov A, #0xAD +ROM:8029 movx @DPTR, A +ROM:802A inc DPTR +ROM:802B mov A, #0xD2 +ROM:802D movx @DPTR, A +ROM:802E ret +ROM:802E ; End of function ROM_8027 +ROM:802E +ROM:802F +ROM:802F ; =============== S U B R O U T I N E ======================================= +ROM:802F +ROM:802F +ROM:802F ROM_802F: ; CODE XREF: ROM_6FD3+14↑p +ROM:802F ; ROM_7FDF+39↑p +ROM:802F movx @DPTR, A +ROM:8030 inc DPTR +ROM:8031 clr A +ROM:8032 movx @DPTR, A +ROM:8033 inc DPTR +ROM:8034 movx @DPTR, A +ROM:8035 inc DPTR +ROM:8036 movx @DPTR, A +ROM:8037 mov R3, #1 +ROM:8039 ret +ROM:8039 ; End of function ROM_802F +ROM:8039 +ROM:803A +ROM:803A ; =============== S U B R O U T I N E ======================================= +ROM:803A +ROM:803A +ROM:803A ROM_803A: ; CODE XREF: ROM_436B:ROM_34C4↑p +ROM:803A ; ROM_436B:ROM_46E7↑p +ROM:803A acall ROM_806B +ROM:803C jnz ROM_805C +ROM:803E mov DPTR, #0xFB7F +ROM:8041 movx A, @DPTR +ROM:8042 xrl A, #1 +ROM:8044 jnz ROM_8057 +ROM:8046 movx @DPTR, A +ROM:8047 mov DPTR, #0xFB86 +ROM:804A movx A, @DPTR +ROM:804B inc A +ROM:804C movx @DPTR, A +ROM:804D acall ROM_8072 +ROM:804F clr C +ROM:8050 subb A, R7 +ROM:8051 jc ROM_805C +ROM:8053 acall ROM_81A5 +ROM:8055 sjmp ROM_805C +ROM:8057 ; --------------------------------------------------------------------------- +ROM:8057 +ROM:8057 ROM_8057: ; CODE XREF: ROM_803A+A↑j +ROM:8057 lcall ROM_27FB +ROM:805A sjmp ROM_805F +ROM:805C ; --------------------------------------------------------------------------- +ROM:805C +ROM:805C ROM_805C: ; CODE XREF: ROM_803A+2↑j +ROM:805C ; ROM_803A+17↑j ... +ROM:805C mov DPTR, #0xF499 +ROM:805F +ROM:805F ROM_805F: ; CODE XREF: ROM_803A+20↑j +ROM:805F movx A, @DPTR +ROM:8060 mov DPTR, #0xF841 +ROM:8063 movx @DPTR, A +ROM:8064 mov DPTR, #0xF841 +ROM:8067 movx A, @DPTR +ROM:8068 mov R7, A +ROM:8069 ret +ROM:8069 ; End of function ROM_803A +ROM:8069 +ROM:806A +ROM:806A ; =============== S U B R O U T I N E ======================================= +ROM:806A +ROM:806A +ROM:806A ROM_806A: ; CODE XREF: ROM_3FEE+4↑p +ROM:806A ; ROM_807C+9↓p +ROM:806A movx @DPTR, A +ROM:806A ; End of function ROM_806A +ROM:806A +ROM:806B +ROM:806B ; =============== S U B R O U T I N E ======================================= +ROM:806B +ROM:806B +ROM:806B ROM_806B: ; CODE XREF: ROM_436B-E97↑p +ROM:806B ; ROM_436B:ROM_34D9↑p ... +ROM:806B mov DPTR, #0xFB87 +ROM:806E movx A, @DPTR +ROM:806F xrl A, #1 +ROM:8071 ret +ROM:8071 ; End of function ROM_806B +ROM:8071 +ROM:8072 +ROM:8072 ; =============== S U B R O U T I N E ======================================= +ROM:8072 +ROM:8072 +ROM:8072 ROM_8072: ; CODE XREF: ROM_803A+13↑p +ROM:8072 ; ROM_807C:ROM_8131↓p ... +ROM:8072 mov DPTR, #0xFB85 +ROM:8075 movx A, @DPTR +ROM:8076 mov R7, A +ROM:8077 mov DPTR, #0xFB86 +ROM:807A movx A, @DPTR +ROM:807B ret +ROM:807B ; End of function ROM_8072 +ROM:807B +ROM:807C +ROM:807C ; =============== S U B R O U T I N E ======================================= +ROM:807C +ROM:807C +ROM:807C ROM_807C: ; CODE XREF: ROM_436B-13D5↑p +ROM:807C clr A +ROM:807D mov DPTR, #0xF835 +ROM:8080 movx @DPTR, A +ROM:8081 mov R7, A +ROM:8082 inc DPTR +ROM:8083 movx @DPTR, A +ROM:8084 inc DPTR +ROM:8085 acall ROM_806A +ROM:8087 jnz ROM_80A4 +ROM:8089 mov DPTR, #0xF499 +ROM:808C movx A, @DPTR +ROM:808D mov R6, A +ROM:808E mov R7, A +ROM:808F acall ROM_81E5 +ROM:8091 jnz ROM_809F +ROM:8093 mov DPTR, #0xF835 +ROM:8096 inc A +ROM:8097 movx @DPTR, A +ROM:8098 mov DPTR, #0xF53B +ROM:809B mov A, R6 +ROM:809C movx @DPTR, A +ROM:809D sjmp ROM_80A4 +ROM:809F ; --------------------------------------------------------------------------- +ROM:809F +ROM:809F ROM_809F: ; CODE XREF: ROM_807C+15↑j +ROM:809F clr A +ROM:80A0 mov DPTR, #0xF835 +ROM:80A3 movx @DPTR, A +ROM:80A4 +ROM:80A4 ROM_80A4: ; CODE XREF: ROM_807C+B↑j +ROM:80A4 ; ROM_807C+21↑j +ROM:80A4 acall ROM_81A5 +ROM:80A6 mov DPTR, #0xF55E +ROM:80A9 lcall ROM_37C3 +ROM:80AC add A, #7 +ROM:80AE lcall ROM_39DB +ROM:80B1 lcall ROM_47F1 +ROM:80B4 lcall ROM_D7D4 +ROM:80B7 acall ROM_87A6 +ROM:80B9 acall ROM_81F6 +ROM:80BB lcall ROM_37E3 +ROM:80BE lcall ROM_47D7 +ROM:80C1 mov DPTR, #0xF55E +ROM:80C4 lcall ROM_37C3 +ROM:80C7 add A, #0x13 +ROM:80C9 lcall ROM_39DB +ROM:80CC mov R7, A +ROM:80CD mov DPTR, #0xFB85 +ROM:80D0 movx @DPTR, A +ROM:80D1 acall ROM_877C +ROM:80D3 jnc ROM_80DA +ROM:80D5 mov A, R7 +ROM:80D6 acall ROM_81DA +ROM:80D8 jnc ROM_80E1 +ROM:80DA +ROM:80DA ROM_80DA: ; CODE XREF: ROM_807C+57↑j +ROM:80DA clr A +ROM:80DB mov DPTR, #0xFB85 +ROM:80DE movx @DPTR, A +ROM:80DF ajmp ROM_8165 +ROM:80E1 ; --------------------------------------------------------------------------- +ROM:80E1 +ROM:80E1 ROM_80E1: ; CODE XREF: ROM_807C+5C↑j +ROM:80E1 clr A +ROM:80E2 mov DPTR, #0xF834 +ROM:80E5 movx @DPTR, A +ROM:80E6 +ROM:80E6 ROM_80E6: ; CODE XREF: ROM_807C+AE↓j +ROM:80E6 mov DPTR, #0xFB85 +ROM:80E9 movx A, @DPTR +ROM:80EA mov R7, A +ROM:80EB mov DPTR, #0xF834 +ROM:80EE movx A, @DPTR +ROM:80EF mov R6, A +ROM:80F0 clr C +ROM:80F1 subb A, R7 +ROM:80F2 jnc ROM_812C +ROM:80F4 mov A, R6 +ROM:80F5 mov B, #0xA ; B Register +ROM:80F8 mul AB +ROM:80F9 mov R7, A +ROM:80FA mov R6, B ; B Register +ROM:80FC add A, #0x14 +ROM:80FE mov R5, A +ROM:80FF clr A +ROM:8100 addc A, R6 +ROM:8101 mov R4, A +ROM:8102 mov DPTR, #0xF55E +ROM:8105 lcall ROM_37C3 +ROM:8108 add A, R5 +ROM:8109 mov R1, A +ROM:810A mov A, R2 +ROM:810B addc A, R4 +ROM:810C mov R2, A +ROM:810D push RAM_1 +ROM:810F mov A, #0xA8 +ROM:8111 add A, R7 +ROM:8112 mov R1, A +ROM:8113 mov A, #0xFA +ROM:8115 addc A, R6 +ROM:8116 mov R0, RAM_1 +ROM:8118 mov R4, A +ROM:8119 mov R5, #1 +ROM:811B pop RAM_1 +ROM:811D mov R6, #0 +ROM:811F mov R7, #0xA +ROM:8121 lcall code_86B +ROM:8124 mov DPTR, #0xF834 +ROM:8127 movx A, @DPTR +ROM:8128 inc A +ROM:8129 movx @DPTR, A +ROM:812A sjmp ROM_80E6 +ROM:812C ; --------------------------------------------------------------------------- +ROM:812C +ROM:812C ROM_812C: ; CODE XREF: ROM_807C+76↑j +ROM:812C clr A +ROM:812D mov DPTR, #0xFB86 +ROM:8130 movx @DPTR, A +ROM:8131 +ROM:8131 ROM_8131: ; CODE XREF: ROM_807C+DF↓j +ROM:8131 acall ROM_8072 +ROM:8133 mov R6, A +ROM:8134 clr C +ROM:8135 subb A, R7 +ROM:8136 jnc ROM_815D +ROM:8138 mov A, R6 +ROM:8139 acall ROM_81C7 +ROM:813B lcall load_4_bytes_R0_R1_R2_R3 +ROM:813E mov A, R6 +ROM:813F lcall ROM_2786 +ROM:8142 lcall load_4_bytes_R4_R5_R6_A +ROM:8145 add A, R3 +ROM:8146 lcall ROM_2F78 +ROM:8149 mov DPTR, #0xFB80 +ROM:814C lcall load_4_bytes_R0_R1_R2_R3 +ROM:814F clr C +ROM:8150 lcall code_B1C +ROM:8153 jc ROM_815D +ROM:8155 mov DPTR, #0xFB86 +ROM:8158 movx A, @DPTR +ROM:8159 inc A +ROM:815A movx @DPTR, A +ROM:815B sjmp ROM_8131 +ROM:815D ; --------------------------------------------------------------------------- +ROM:815D +ROM:815D ROM_815D: ; CODE XREF: ROM_807C+BA↑j +ROM:815D ; ROM_807C+D7↑j +ROM:815D acall ROM_8072 +ROM:815F clr C +ROM:8160 subb A, R7 +ROM:8161 jc ROM_8165 +ROM:8163 acall ROM_81A5 +ROM:8165 +ROM:8165 ROM_8165: ; CODE XREF: ROM_807C+63↑j +ROM:8165 ; ROM_807C+E5↑j +ROM:8165 mov DPTR, #0xF835 +ROM:8168 movx A, @DPTR +ROM:8169 mov R7, A +ROM:816A ret +ROM:816A ; End of function ROM_807C +ROM:816A +ROM:816B +ROM:816B ; =============== S U B R O U T I N E ======================================= +ROM:816B +ROM:816B +ROM:816B ROM_816B: ; CODE XREF: ROM_4816-25CB↑p +ROM:816B ; ROM_2916+147↑p ... +ROM:816B lcall ROM_2D85 +ROM:816E lcall ROM_93E4 +ROM:8171 mov DPTR, #0xF48C +ROM:8174 mov A, #0x80 +ROM:8176 movx @DPTR, A +ROM:8177 inc DPTR +ROM:8178 clr A +ROM:8179 movx @DPTR, A +ROM:817A mov DPTR, #0xF541 +ROM:817D movx @DPTR, A +ROM:817E inc DPTR +ROM:817F movx @DPTR, A +ROM:8180 inc DPTR +ROM:8181 movx @DPTR, A +ROM:8182 mov DPTR, #0xF546 +ROM:8185 movx @DPTR, A +ROM:8186 mov A, #0xFF +ROM:8188 mov DPTR, #0xF553 +ROM:818B movx @DPTR, A +ROM:818C inc DPTR +ROM:818D movx @DPTR, A +ROM:818E clr A +ROM:818F mov R7, A +ROM:8190 lcall code_52D +ROM:8193 mov DPTR, #0xFDC6 +ROM:8196 mov A, #2 +ROM:8198 movx @DPTR, A +ROM:8199 clr A +ROM:819A mov DPTR, #0xFE32 +ROM:819D movx @DPTR, A +ROM:819E mov DPTR, #0xFDC7 +ROM:81A1 movx @DPTR, A +ROM:81A2 lcall ROM_28FE +ROM:81A2 ; End of function ROM_816B +ROM:81A2 +ROM:81A5 +ROM:81A5 ; =============== S U B R O U T I N E ======================================= +ROM:81A5 +ROM:81A5 +ROM:81A5 ROM_81A5: ; CODE XREF: ROM_803A+19↑p +ROM:81A5 ; ROM_807C:ROM_80A4↑p ... +ROM:81A5 mov R6, #0 +ROM:81A7 mov R7, #0xD2 +ROM:81A9 mov R5, #0 +ROM:81AB mov R3, #1 +ROM:81AD mov R2, #0xFA +ROM:81AF mov R1, #0xA8 +ROM:81B1 lcall code_EA0 +ROM:81B4 clr A +ROM:81B5 mov DPTR, #0xFB86 +ROM:81B8 movx @DPTR, A +ROM:81B9 mov DPTR, #0xFB85 +ROM:81BC movx @DPTR, A +ROM:81BD mov DPTR, #0xFB87 +ROM:81C0 movx @DPTR, A +ROM:81C1 ret +ROM:81C1 ; End of function ROM_81A5 +ROM:81C1 +ROM:81C2 +ROM:81C2 ; =============== S U B R O U T I N E ======================================= +ROM:81C2 +ROM:81C2 +ROM:81C2 ROM_81C2: ; CODE XREF: ROM_2638:ROM_268D↑p +ROM:81C2 ; ROM_2638:ROM_26B5↑p ... +ROM:81C2 mov DPTR, #0xFB86 +ROM:81C5 movx A, @DPTR +ROM:81C6 mov R7, A +ROM:81C6 ; End of function ROM_81C2 +ROM:81C6 +ROM:81C7 +ROM:81C7 ; =============== S U B R O U T I N E ======================================= +ROM:81C7 +ROM:81C7 +ROM:81C7 ROM_81C7: ; CODE XREF: ROM_2638+34↑p +ROM:81C7 ; ROM_807C+BD↑p +ROM:81C7 mov B, #0xA ; B Register +ROM:81CA mul AB +ROM:81CB add A, #0xAE +ROM:81CD mov DP0L, A ; Data Pointer Low Byte +ROM:81CF clr A +ROM:81D0 addc A, #0xFA +ROM:81D2 mov DP0H, A ; Data Pointer High Byte +ROM:81D4 ret +ROM:81D4 ; End of function ROM_81C7 +ROM:81D4 +ROM:81D5 +ROM:81D5 ; =============== S U B R O U T I N E ======================================= +ROM:81D5 +ROM:81D5 +ROM:81D5 ROM_81D5: ; CODE XREF: Radio_Something_Setup_ROM_4B0C:ROM_4BC0↑p +ROM:81D5 ; Radio_Something_Setup_ROM_4B0C:ROM_4C45↑p +ROM:81D5 mov DPTR, #0xF834 +ROM:81D8 movx A, @DPTR +ROM:81D8 ; End of function ROM_81D5 +ROM:81D8 +ROM:81D9 +ROM:81D9 ; =============== S U B R O U T I N E ======================================= +ROM:81D9 +ROM:81D9 +ROM:81D9 ROM_81D9: ; CODE XREF: ROM_405D+4C↑p +ROM:81D9 setb C +ROM:81D9 ; End of function ROM_81D9 +ROM:81D9 +ROM:81DA +ROM:81DA ; =============== S U B R O U T I N E ======================================= +ROM:81DA +ROM:81DA +ROM:81DA ROM_81DA: ; CODE XREF: ROM_807C+5A↑p +ROM:81DA subb A, #0 +ROM:81DC mov A, #0x80 +ROM:81DE subb A, #0x80 +ROM:81E0 ret +ROM:81E0 ; End of function ROM_81DA +ROM:81E0 +ROM:81E1 +ROM:81E1 ; =============== S U B R O U T I N E ======================================= +ROM:81E1 +ROM:81E1 +ROM:81E1 ROM_81E1: ; CODE XREF: ROM_4816:ROM_22A7↑p +ROM:81E1 ; ROM_4816:ROM_2338↑p ... +ROM:81E1 mov DPTR, #0xF53B +ROM:81E1 ; End of function ROM_81E1 +ROM:81E1 +ROM:81E4 +ROM:81E4 ; =============== S U B R O U T I N E ======================================= +ROM:81E4 +ROM:81E4 +ROM:81E4 ROM_81E4: ; CODE XREF: ROM_436B-E6D↑p +ROM:81E4 movx A, @DPTR +ROM:81E4 ; End of function ROM_81E4 +ROM:81E4 +ROM:81E5 +ROM:81E5 ; =============== S U B R O U T I N E ======================================= +ROM:81E5 +ROM:81E5 +ROM:81E5 ROM_81E5: ; CODE XREF: ROM_2916+1A3↑p +ROM:81E5 ; ROM_436B-E87↑p ... +ROM:81E5 mov B, #0x15 ; B Register +ROM:81E8 mul AB +ROM:81E9 add A, #0xA1 +ROM:81EB mov DP0L, A ; Data Pointer Low Byte +ROM:81ED clr A +ROM:81EE addc A, #0xF4 +ROM:81F0 mov DP0H, A ; Data Pointer High Byte +ROM:81F2 movx A, @DPTR +ROM:81F3 xrl A, #1 +ROM:81F5 ret +ROM:81F5 ; End of function ROM_81E5 +ROM:81F5 +ROM:81F6 +ROM:81F6 ; =============== S U B R O U T I N E ======================================= +ROM:81F6 +ROM:81F6 +ROM:81F6 ROM_81F6: ; CODE XREF: ROM_436B+359↑p +ROM:81F6 ; ROM_61D7+64↑p ... +ROM:81F6 mov DPTR, #0xF514 +ROM:81F9 ljmp save_4_bytes_R4_R7 +ROM:81F9 ; End of function ROM_81F6 +ROM:81F9 +ROM:81F9 ; --------------------------------------------------------------------------- +ROM:81FC .byte 0x90 +ROM:81FD .byte 0xF5 +ROM:81FE .byte 0xF +ROM:81FF .byte 0x74 ; t +ROM:8200 .byte 0xAA +ROM:8201 .byte 0xF0 +ROM:8202 .byte 0xE4 +ROM:8203 .byte 0x90 +ROM:8204 .byte 0xF6 +ROM:8205 .byte 0x7A ; z +ROM:8206 .byte 0xF0 +ROM:8207 .byte 0x90 +ROM:8208 .byte 0xF5 +ROM:8209 .byte 0x10 +ROM:820A .byte 0x12 +ROM:820B .byte 0x88 +ROM:820C .byte 0x33 ; 3 +ROM:820D .byte 0x90 +ROM:820E .byte 0xF5 +ROM:820F .byte 0x11 +ROM:8210 .byte 0xF0 +ROM:8211 .byte 0x90 +ROM:8212 .byte 0xF5 +ROM:8213 .byte 0x40 ; @ +ROM:8214 .byte 0xE0 +ROM:8215 .byte 0x90 +ROM:8216 .byte 0xF5 +ROM:8217 .byte 0x12 +ROM:8218 .byte 0xF0 +ROM:8219 .byte 0x90 +ROM:821A .byte 0xF5 +ROM:821B .byte 0x3F ; ? +ROM:821C .byte 0xE0 +ROM:821D .byte 0x90 +ROM:821E .byte 0xF5 +ROM:821F .byte 0x13 +ROM:8220 .byte 0xF0 +ROM:8221 .byte 0x90 +ROM:8222 .byte 0xF5 +ROM:8223 .byte 0x5A ; Z +ROM:8224 .byte 0x12 +ROM:8225 .byte 0x1F +ROM:8226 .byte 0xE9 +ROM:8227 .byte 0xFF +ROM:8228 .byte 0x31 ; 1 +ROM:8229 .byte 0xF6 +ROM:822A .byte 0xF1 +ROM:822B .byte 0xB6 +ROM:822C .byte 0x7A ; z +ROM:822D .byte 0xF4 +ROM:822E .byte 0x79 ; y +ROM:822F .byte 0x91 +ROM:8230 .byte 0x12 +ROM:8231 .byte 0xE +ROM:8232 .byte 0xA0 +ROM:8233 .byte 0xF1 +ROM:8234 .byte 0xBF +ROM:8235 .byte 0xC3 +ROM:8236 .byte 0x9F +ROM:8237 .byte 0xC4 +ROM:8238 .byte 0x54 ; T +ROM:8239 .byte 0xF0 +ROM:823A .byte 0xFF +ROM:823B .byte 0x90 +ROM:823C .byte 0xFE +ROM:823D .byte 0xA9 +ROM:823E .byte 0xE0 +ROM:823F .byte 0xFE +ROM:8240 .byte 0x90 +ROM:8241 .byte 0xFE +ROM:8242 .byte 0xAE +ROM:8243 .byte 0xE0 +ROM:8244 .byte 0xC3 +ROM:8245 .byte 0x9E +ROM:8246 .byte 0x54 ; T +ROM:8247 .byte 0xF +ROM:8248 .byte 0x4F ; O +ROM:8249 .byte 0xFF +ROM:824A .byte 0x90 +ROM:824B .byte 0xF5 +ROM:824C .byte 0x1C +ROM:824D .byte 0xF0 +ROM:824E .byte 0x90 +ROM:824F .byte 0xF5 +ROM:8250 .byte 6 +ROM:8251 .byte 0xE0 +ROM:8252 .byte 0x70 ; p +ROM:8253 .byte 7 +ROM:8254 .byte 0x90 +ROM:8255 .byte 0xF5 +ROM:8256 .byte 0x1C +ROM:8257 .byte 0xEF +ROM:8258 .byte 0xF0 +ROM:8259 .byte 0x80 +ROM:825A .byte 0x1F +ROM:825B .byte 0x90 +ROM:825C .byte 0xFE +ROM:825D .byte 0xAC +ROM:825E .byte 0x12 +ROM:825F .byte 0x4B ; K +ROM:8260 .byte 3 +ROM:8261 .byte 0x40 ; @ +ROM:8262 .byte 0xA +ROM:8263 .byte 0x90 +ROM:8264 .byte 0xF5 +ROM:8265 .byte 0x1C +ROM:8266 .byte 0xE0 +ROM:8267 .byte 0x70 ; p +ROM:8268 .byte 0x11 +ROM:8269 .byte 4 +ROM:826A .byte 0xF0 +ROM:826B .byte 0x80 +ROM:826C .byte 0xD +ROM:826D .byte 0x90 +ROM:826E .byte 0xF5 +ROM:826F .byte 0x1C +ROM:8270 .byte 0xE0 +ROM:8271 .byte 0xFF +ROM:8272 .byte 0x54 ; T +ROM:8273 .byte 0xF0 +ROM:8274 .byte 0x70 ; p +ROM:8275 .byte 4 +ROM:8276 .byte 0xEF +ROM:8277 .byte 0x44 ; D +ROM:8278 .byte 0x10 +ROM:8279 .byte 0xF0 +ROM:827A .byte 0x90 +ROM:827B .byte 0xF5 +ROM:827C .byte 0x3B ; ; +ROM:827D .byte 0xE0 +ROM:827E .byte 0xC4 +ROM:827F .byte 0x54 ; T +ROM:8280 .byte 0xF0 +ROM:8281 .byte 0xFF +ROM:8282 .byte 0x90 +ROM:8283 .byte 0xF4 +ROM:8284 .byte 0x9A +ROM:8285 .byte 0xE0 +ROM:8286 .byte 0x4F ; O +ROM:8287 .byte 0x90 +ROM:8288 .byte 0xF5 +ROM:8289 .byte 0x23 ; # +ROM:828A .byte 0xF0 +ROM:828B .byte 0x90 +ROM:828C .byte 0xF5 +ROM:828D .byte 0xB +ROM:828E .byte 0xE0 +ROM:828F .byte 0xFF +ROM:8290 .byte 0xA3 +ROM:8291 .byte 0xE0 +ROM:8292 .byte 0x90 +ROM:8293 .byte 0xF5 +ROM:8294 .byte 0x25 ; % +ROM:8295 .byte 0xCF +ROM:8296 .byte 0xF0 +ROM:8297 .byte 0xA3 +ROM:8298 .byte 0xEF +ROM:8299 .byte 0xF0 +ROM:829A .byte 0x90 +ROM:829B .byte 0xF5 +ROM:829C .byte 0xD +ROM:829D .byte 0xE0 +ROM:829E .byte 0xFF +ROM:829F .byte 0xA3 +ROM:82A0 .byte 0xE0 +ROM:82A1 .byte 0x90 +ROM:82A2 .byte 0xF5 +ROM:82A3 .byte 0x27 ; ' +ROM:82A4 .byte 0xCF +ROM:82A5 .byte 0xF0 +ROM:82A6 .byte 0xA3 +ROM:82A7 .byte 0xEF +ROM:82A8 .byte 0xF0 +ROM:82A9 .byte 0x71 ; q +ROM:82AA .byte 0xA0 +ROM:82AB .byte 0x90 +ROM:82AC .byte 0xF5 +ROM:82AD .byte 0x29 ; ) +ROM:82AE .byte 0xEF +ROM:82AF .byte 0xF0 +ROM:82B0 .byte 0xE4 +ROM:82B1 .byte 0x90 +ROM:82B2 .byte 0xFD +ROM:82B3 .byte 0xD2 +ROM:82B4 .byte 0xF0 +ROM:82B5 .byte 0x7B ; { +ROM:82B6 .byte 1 +ROM:82B7 .byte 0x7A ; z +ROM:82B8 .byte 0xF5 +ROM:82B9 .byte 0x79 ; y +ROM:82BA .byte 0xF +ROM:82BB .byte 0x7D ; } +ROM:82BC .byte 0x1F +ROM:82BD .byte 0x90 +ROM:82BE .byte 0xF8 +ROM:82BF .byte 0x34 ; 4 +ROM:82C0 .byte 0x12 +ROM:82C1 .byte 0x3D ; = +ROM:82C2 .byte 0xA9 +ROM:82C3 .byte 0xA3 +ROM:82C4 .byte 0xED +ROM:82C5 .byte 0xF0 +ROM:82C6 .byte 0x71 ; q +ROM:82C7 .byte 0xAD +ROM:82C8 .byte 0x90 +ROM:82C9 .byte 0xF8 +ROM:82CA .byte 0x38 ; 8 +ROM:82CB .byte 0xEF +ROM:82CC .byte 0xF0 +ROM:82CD .byte 0xF4 +ROM:82CE .byte 0x70 ; p +ROM:82CF .byte 3 +ROM:82D0 .byte 0x7F ;  +ROM:82D1 .byte 0xFF +ROM:82D2 .byte 0x22 ; " +ROM:82D3 .byte 0x90 +ROM:82D4 .byte 0xF8 +ROM:82D5 .byte 0x37 ; 7 +ROM:82D6 .byte 0xE0 +ROM:82D7 .byte 0x24 ; $ +ROM:82D8 .byte 0x17 +ROM:82D9 .byte 0x90 +ROM:82DA .byte 0xF7 +ROM:82DB .byte 0x24 ; $ +ROM:82DC .byte 0xF0 +ROM:82DD .byte 0xA3 +ROM:82DE .byte 0x74 ; t +ROM:82DF .byte 0x61 ; a +ROM:82E0 .byte 0xF0 +ROM:82E1 .byte 0xA3 +ROM:82E2 .byte 0x74 ; t +ROM:82E3 .byte 0xCC +ROM:82E4 .byte 0x12 +ROM:82E5 .byte 0x8F +ROM:82E6 .byte 0xD +ROM:82E7 .byte 0xF1 +ROM:82E8 .byte 0x8C +ROM:82E9 .byte 0x78 ; x +ROM:82EA .byte 0x2A ; * +ROM:82EB .byte 0x7C ; | +ROM:82EC .byte 0xF7 +ROM:82ED .byte 0x12 +ROM:82EE .byte 0x5D ; ] +ROM:82EF .byte 0x63 ; c +ROM:82F0 .byte 0x78 ; x +ROM:82F1 .byte 0x32 ; 2 +ROM:82F2 .byte 0x7C ; | +ROM:82F3 .byte 0xF7 +ROM:82F4 .byte 0x7D ; } +ROM:82F5 .byte 1 +ROM:82F6 .byte 0x12 +ROM:82F7 .byte 0x5F ; _ +ROM:82F8 .byte 0xC2 +ROM:82F9 .byte 0x12 +ROM:82FA .byte 0x5D ; ] +ROM:82FB .byte 0x6B ; k +ROM:82FC .byte 0x90 +ROM:82FD .byte 0xF8 +ROM:82FE .byte 0x37 ; 7 +ROM:82FF .byte 0xF1 +ROM:8300 .byte 0x9C +ROM:8301 .byte 0x12 +ROM:8302 .byte 0x3E ; > +ROM:8303 .byte 0xB2 +ROM:8304 .byte 0x7B ; { +ROM:8305 .byte 1 +ROM:8306 .byte 0x78 ; x +ROM:8307 .byte 0x3A ; : +ROM:8308 .byte 0x7C ; | +ROM:8309 .byte 0xF7 +ROM:830A .byte 0x7D ; } +ROM:830B .byte 1 +ROM:830C .byte 0x12 +ROM:830D .byte 8 +ROM:830E .byte 0x6B ; k +ROM:830F .byte 0x90 +ROM:8310 .byte 0xFE +ROM:8311 .byte 0x32 ; 2 +ROM:8312 .byte 0xE0 +ROM:8313 .byte 0x64 ; d +ROM:8314 .byte 1 +ROM:8315 .byte 0x70 ; p +ROM:8316 .byte 0x2F ; / +ROM:8317 .byte 0x90 +ROM:8318 .byte 0xFD +ROM:8319 .byte 0xB2 +ROM:831A .byte 0xE0 +ROM:831B .byte 0x64 ; d +ROM:831C .byte 1 +ROM:831D .byte 0x70 ; p +ROM:831E .byte 0x27 ; ' +ROM:831F .byte 0x90 +ROM:8320 .byte 0xF7 +ROM:8321 .byte 0x3A ; : +ROM:8322 .byte 0xE0 +ROM:8323 .byte 0xFF +ROM:8324 .byte 0x64 ; d +ROM:8325 .byte 0xDA +ROM:8326 .byte 0x60 ; ` +ROM:8327 .byte 0xA +ROM:8328 .byte 0xEF +ROM:8329 .byte 0x64 ; d +ROM:832A .byte 0xAA +ROM:832B .byte 0x60 ; ` +ROM:832C .byte 5 +ROM:832D .byte 0xEF +ROM:832E .byte 0x64 ; d +ROM:832F .byte 0xF4 +ROM:8330 .byte 0x70 ; p +ROM:8331 .byte 0x14 +ROM:8332 .byte 0x7B ; { +ROM:8333 .byte 1 +ROM:8334 .byte 0x7A ; z +ROM:8335 .byte 0xF7 +ROM:8336 .byte 0x79 ; y +ROM:8337 .byte 0x3A ; : +ROM:8338 .byte 0x90 +ROM:8339 .byte 0xF8 +ROM:833A .byte 0x37 ; 7 +ROM:833B .byte 0xE0 +ROM:833C .byte 0xFD +ROM:833D .byte 0xB1 +ROM:833E .byte 0x35 ; 5 +ROM:833F .byte 0x90 +ROM:8340 .byte 0xF7 +ROM:8341 .byte 0x26 ; & +ROM:8342 .byte 0xE0 +ROM:8343 .byte 0x44 ; D +ROM:8344 .byte 0x10 +ROM:8345 .byte 0xF0 +ROM:8346 .byte 0x90 +ROM:8347 .byte 0xF8 +ROM:8348 .byte 0x37 ; 7 +ROM:8349 .byte 0xE0 +ROM:834A .byte 0x24 ; $ +ROM:834B .byte 0x17 +ROM:834C .byte 0xFF +ROM:834D .byte 0x7E ; ~ +ROM:834E .byte 0 +ROM:834F .byte 0xC0 +ROM:8350 .byte 6 +ROM:8351 .byte 0xC0 +ROM:8352 .byte 7 +ROM:8353 .byte 0x12 +ROM:8354 .byte 0x7F ;  +ROM:8355 .byte 0x92 +ROM:8356 .byte 0x12 +ROM:8357 .byte 0x37 ; 7 +ROM:8358 .byte 0xC3 +ROM:8359 .byte 0x12 +ROM:835A .byte 0x7F ;  +ROM:835B .byte 0x5B ; [ +ROM:835C .byte 0xD0 +ROM:835D .byte 7 +ROM:835E .byte 0xD0 +ROM:835F .byte 6 +ROM:8360 .byte 0x12 +ROM:8361 .byte 0x7F ;  +ROM:8362 .byte 0x73 ; s +ROM:8363 .byte 0x12 +ROM:8364 .byte 0x37 ; 7 +ROM:8365 .byte 0xC3 +ROM:8366 .byte 0xF9 +ROM:8367 .byte 0x90 +ROM:8368 .byte 0xF8 +ROM:8369 .byte 0x38 ; 8 +ROM:836A .byte 0x12 +ROM:836B .byte 0x7D ; } +ROM:836C .byte 0x77 ; w +ROM:836D .byte 0x74 ; t +ROM:836E .byte 0x40 ; @ +ROM:836F .byte 0x12 +ROM:8370 .byte 0xD4 +ROM:8371 .byte 0x1D +ROM:8372 .byte 0x12 +ROM:8373 .byte 0x37 ; 7 +ROM:8374 .byte 0xC3 +ROM:8375 .byte 0x12 +ROM:8376 .byte 0xD3 +ROM:8377 .byte 0x94 +ROM:8378 .byte 0x12 +ROM:8379 .byte 0x37 ; 7 +ROM:837A .byte 0xC3 +ROM:837B .byte 0x12 +ROM:837C .byte 0xD3 +ROM:837D .byte 0xD4 +ROM:837E .byte 0x10 +ROM:837F .byte 0xAF +ROM:8380 .byte 1 +ROM:8381 .byte 0xC3 +ROM:8382 .byte 0xE4 +ROM:8383 .byte 0x33 ; 3 +ROM:8384 .byte 0x90 +ROM:8385 .byte 0xF8 +ROM:8386 .byte 0x39 ; 9 +ROM:8387 .byte 0xF0 +ROM:8388 .byte 0x90 +ROM:8389 .byte 0xF8 +ROM:838A .byte 0x38 ; 8 +ROM:838B .byte 0x12 +ROM:838C .byte 0x7E ; ~ +ROM:838D .byte 0xBA +ROM:838E .byte 0x64 ; d +ROM:838F .byte 1 +ROM:8390 .byte 0x70 ; p +ROM:8391 .byte 3 +ROM:8392 .byte 0x12 +ROM:8393 .byte 0x7F ;  +ROM:8394 .byte 0x53 ; S +ROM:8395 .byte 0x90 +ROM:8396 .byte 0xF8 +ROM:8397 .byte 0x39 ; 9 +ROM:8398 .byte 0xE0 +ROM:8399 .byte 0x24 ; $ +ROM:839A .byte 0xFF +ROM:839B .byte 0x92 +ROM:839C .byte 0xAF +ROM:839D .byte 0x7F ;  +ROM:839E .byte 0 +ROM:839F .byte 0x22 ; " +ROM:83A0 .byte 0xE4 +ROM:83A1 .byte 0xFF +ROM:83A2 .byte 0xFE +ROM:83A3 .byte 0x12 +ROM:83A4 .byte 0x9A +ROM:83A5 .byte 0x40 ; @ +ROM:83A6 .byte 0x7C ; | +ROM:83A7 .byte 0 +ROM:83A8 .byte 0x7D ; } +ROM:83A9 .byte 0xA +ROM:83AA .byte 2 +ROM:83AB .byte 9 +ROM:83AC .byte 0x45 ; E +ROM:83AD +ROM:83AD ; =============== S U B R O U T I N E ======================================= +ROM:83AD +ROM:83AD +ROM:83AD ROM_83AD: ; CODE XREF: ROM_7A07+9↑p +ROM:83AD ; ROM_7EE1↑p +ROM:83AD mov DPTR, #0xFE4E +ROM:83B0 movx A, @DPTR +ROM:83B1 jnz ROM_83B6 +ROM:83B3 mov R7, #0xFF +ROM:83B5 ret +ROM:83B6 ; --------------------------------------------------------------------------- +ROM:83B6 +ROM:83B6 ROM_83B6: ; CODE XREF: ROM_83AD+4↑j +ROM:83B6 mov DPTR, #0xFE4D +ROM:83B9 movx A, @DPTR +ROM:83BA add A, #0x4C ; 'L' +ROM:83BC mov DP0L, A ; Data Pointer Low Byte +ROM:83BE clr A +ROM:83BF addc A, #0xFE +ROM:83C1 mov DP0H, A ; Data Pointer High Byte +ROM:83C3 movx A, @DPTR +ROM:83C4 mov R5, A +ROM:83C5 mov DPTR, #0xFE4D +ROM:83C8 +ROM:83C8 ROM_83C8: ; CODE XREF: ROM_83D4+12↓j +ROM:83C8 movx A, @DPTR +ROM:83C9 inc A +ROM:83CA movx @DPTR, A +ROM:83CB clr A +ROM:83CC movx @DPTR, A +ROM:83CD inc DPTR +ROM:83CE movx A, @DPTR +ROM:83CF dec A +ROM:83D0 movx @DPTR, A +ROM:83D1 mov R7, RAM_5 +ROM:83D3 ret +ROM:83D3 ; End of function ROM_83AD +ROM:83D3 +ROM:83D4 +ROM:83D4 ; =============== S U B R O U T I N E ======================================= +ROM:83D4 +ROM:83D4 +ROM:83D4 ROM_83D4: ; CODE XREF: ROM_83E8↓p +ROM:83D4 mov DPTR, #0xFE43 +ROM:83D7 movx A, @DPTR +ROM:83D8 jnz ROM_83DD +ROM:83DA lcall ROM_614C +ROM:83DD +ROM:83DD ROM_83DD: ; CODE XREF: ROM_83D4+4↑j +ROM:83DD acall ROM_8529 +ROM:83DF mov DP0H, A ; Data Pointer High Byte +ROM:83E1 movx A, @DPTR +ROM:83E2 mov R5, A +ROM:83E3 mov DPTR, #0xFE42 +ROM:83E6 sjmp ROM_83C8 +ROM:83E6 ; End of function ROM_83D4 +ROM:83E6 +ROM:83E8 +ROM:83E8 ; =============== S U B R O U T I N E ======================================= +ROM:83E8 +ROM:83E8 +ROM:83E8 ROM_83E8: ; CODE XREF: ROM_49FD:ROM_4AD7↑p +ROM:83E8 ; ROM_49FD:ROM_848D↓p +ROM:83E8 acall ROM_83D4 +ROM:83EA acall ROM_84EB +ROM:83EC acall ROM_8509 +ROM:83EE mov A, R7 +ROM:83EF ret +ROM:83EF ; End of function ROM_83E8 +ROM:83EF +ROM:83F0 ; --------------------------------------------------------------------------- +ROM:83F0 ; START OF FUNCTION CHUNK FOR ROM_49FD +ROM:83F0 +ROM:83F0 ROM_83F0: ; CODE XREF: ROM_49FD:ROM_4A11↑j +ROM:83F0 setb C +ROM:83F1 jbc EA, ROM_83F5 ; Interrupt Enable Register 0 +ROM:83F4 clr C +ROM:83F5 +ROM:83F5 ROM_83F5: ; CODE XREF: ROM_49FD+39F4↑j +ROM:83F5 acall ROM_849D +ROM:83F7 acall ROM_850F +ROM:83F9 mov DPTR, #0xF828 +ROM:83FC lcall Save_3_bytes_R3_R2_R1 +ROM:83FF mov DPTR, #0xF828 +ROM:8402 lcall ROM_37C3 +ROM:8405 orl A, R2 +ROM:8406 orl A, R3 +ROM:8407 jnz ROM_840B +ROM:8409 ajmp ROM_8494 +ROM:840B ; --------------------------------------------------------------------------- +ROM:840B +ROM:840B ROM_840B: ; CODE XREF: ROM_49FD+3A0A↑j +ROM:840B clr A +ROM:840C inc DPTR +ROM:840D movx @DPTR, A +ROM:840E mov DPTR, #0xF828 +ROM:8411 inc DPTR +ROM:8412 inc DPTR +ROM:8413 movx A, @DPTR +ROM:8414 add A, #3 +ROM:8416 lcall ROM_39DB +ROM:8419 mov R7, A +ROM:841A anl A, #0x14 +ROM:841C jnz ROM_845E +ROM:841E mov A, R7 +ROM:841F jnb ACC5, ROM_8440 ; Accumulator +ROM:8422 mov DPTR, #0xF713 +ROM:8425 movx A, @DPTR +ROM:8426 mov R7, A +ROM:8427 mov DPTR, #0xF711 +ROM:842A movx A, @DPTR +ROM:842B clr C +ROM:842C subb A, R7 +ROM:842D jnc ROM_8440 +ROM:842F movx A, @DPTR +ROM:8430 inc A +ROM:8431 movx @DPTR, A +ROM:8432 mov DPTR, #0xF710 +ROM:8435 movx A, @DPTR +ROM:8436 lcall ROM_7DBA +ROM:8439 jnc ROM_8453 +ROM:843B movx A, @DPTR +ROM:843C inc A +ROM:843D movx @DPTR, A +ROM:843E sjmp ROM_8453 +ROM:8440 ; --------------------------------------------------------------------------- +ROM:8440 +ROM:8440 ROM_8440: ; CODE XREF: ROM_49FD+3A22↑j +ROM:8440 ; ROM_49FD+3A30↑j +ROM:8440 lcall ROM_2D73 +ROM:8443 mov DPTR, #0xF828 +ROM:8446 lcall ROM_37C3 +ROM:8449 add A, #1 +ROM:844B lcall ROM_39DB +ROM:844E lcall ROM_4B04 +ROM:8451 jnc ROM_8458 +ROM:8453 +ROM:8453 ROM_8453: ; CODE XREF: ROM_49FD+3A3C↑j +ROM:8453 ; ROM_49FD+3A41↑j +ROM:8453 lcall ROM_7F53 +ROM:8456 sjmp ROM_8494 +ROM:8458 ; --------------------------------------------------------------------------- +ROM:8458 +ROM:8458 ROM_8458: ; CODE XREF: ROM_49FD+3A54↑j +ROM:8458 mov DPTR, #0xF82B +ROM:845B mov A, #1 +ROM:845D movx @DPTR, A +ROM:845E +ROM:845E ROM_845E: ; CODE XREF: ROM_49FD+3A1F↑j +ROM:845E lcall ROM_2D73 +ROM:8461 jb RAM_20.1, ROM_848D +ROM:8464 acall ROM_8494 +ROM:8466 mov DPTR, #0xF82B +ROM:8469 movx A, @DPTR +ROM:846A mov DPTR, #0xF700 +ROM:846D movx @DPTR, A +ROM:846E mov DPTR, #0xF828 +ROM:8471 lcall ROM_37C3 +ROM:8474 acall ROM_8775 +ROM:8476 mov R0, #1 +ROM:8478 mov R4, #0xF7 +ROM:847A mov R5, #1 +ROM:847C lcall ROM_5D6B +ROM:847F mov R6, #0xF7 +ROM:8481 mov R7, #0 +ROM:8483 lcall ROM_2D8F +ROM:8486 setb C +ROM:8487 jbc EA, ROM_848B ; Interrupt Enable Register 0 +ROM:848A clr C +ROM:848B +ROM:848B ROM_848B: ; CODE XREF: ROM_49FD+3A8A↑j +ROM:848B acall ROM_849D +ROM:848D +ROM:848D ROM_848D: ; CODE XREF: ROM_49FD+3A64↑j +ROM:848D acall ROM_83E8 +ROM:848F jz ROM_8494 +ROM:8491 lcall ROM_7F53 +ROM:8491 ; END OF FUNCTION CHUNK FOR ROM_49FD +ROM:8494 +ROM:8494 ; =============== S U B R O U T I N E ======================================= +ROM:8494 +ROM:8494 +ROM:8494 ROM_8494: ; CODE XREF: ROM_49FD+3A0C↑j +ROM:8494 ; ROM_49FD+3A59↑j ... +ROM:8494 mov DPTR, #0xF827 +ROM:8497 movx A, @DPTR +ROM:8498 add A, #0xFF +ROM:849A mov EA, C ; Interrupt Enable Register 0 +ROM:849C ret +ROM:849C ; End of function ROM_8494 +ROM:849C +ROM:849D +ROM:849D ; =============== S U B R O U T I N E ======================================= +ROM:849D +ROM:849D +ROM:849D ROM_849D: ; CODE XREF: ROM_49FD:ROM_83F5↑p +ROM:849D ; ROM_49FD:ROM_848B↑p ... +ROM:849D clr A +ROM:849E rlc A +ROM:849F mov DPTR, #0xF827 +ROM:84A2 movx @DPTR, A +ROM:84A3 ret +ROM:84A3 ; End of function ROM_849D +ROM:84A3 +ROM:84A4 +ROM:84A4 ; =============== S U B R O U T I N E ======================================= +ROM:84A4 +ROM:84A4 +ROM:84A4 ROM_84A4: ; CODE XREF: ROM_49FD+3↑p +ROM:84A4 mov DPTR, #0xFEC3 +ROM:84A7 movx A, @DPTR +ROM:84A8 jz ROM_84E8 +ROM:84AA clr A +ROM:84AB mov DPTR, #0xF828 +ROM:84AE movx @DPTR, A +ROM:84AF +ROM:84AF ROM_84AF: ; CODE XREF: ROM_84A4+42↓j +ROM:84AF mov DPTR, #0xF828 +ROM:84B2 lcall ROM_3FE4 +ROM:84B5 jnc ROM_84E8 +ROM:84B7 jbc EA, ROM_84BB ; Interrupt Enable Register 0 +ROM:84BA clr C +ROM:84BB +ROM:84BB ROM_84BB: ; CODE XREF: ROM_84A4+13↑j +ROM:84BB acall ROM_849D +ROM:84BD mov R0, RAM_7 +ROM:84BF mov A, #1 +ROM:84C1 inc R0 +ROM:84C2 sjmp ROM_84C6 +ROM:84C4 ; --------------------------------------------------------------------------- +ROM:84C4 +ROM:84C4 ROM_84C4: ; CODE XREF: ROM_84A4:ROM_84C6↓j +ROM:84C4 clr C +ROM:84C5 rlc A +ROM:84C6 +ROM:84C6 ROM_84C6: ; CODE XREF: ROM_84A4+1E↑j +ROM:84C6 djnz R0, ROM_84C4 +ROM:84C8 mov R6, A +ROM:84C9 mov DPTR, #0xFEC3 +ROM:84CC movx A, @DPTR +ROM:84CD anl A, R6 +ROM:84CE jz ROM_84E0 +ROM:84D0 movx A, @DPTR +ROM:84D1 mov R5, A +ROM:84D2 mov DPTR, #0xF828 +ROM:84D5 acall ROM_8794 +ROM:84D7 mov DPTR, #0xFEC3 +ROM:84DA movx @DPTR, A +ROM:84DB acall ROM_8494 +ROM:84DD mov R7, RAM_3 +ROM:84DF ret +ROM:84E0 ; --------------------------------------------------------------------------- +ROM:84E0 +ROM:84E0 ROM_84E0: ; CODE XREF: ROM_84A4+2A↑j +ROM:84E0 acall ROM_8494 +ROM:84E2 inc DPTR +ROM:84E3 movx A, @DPTR +ROM:84E4 inc A +ROM:84E5 movx @DPTR, A +ROM:84E6 sjmp ROM_84AF +ROM:84E8 ; --------------------------------------------------------------------------- +ROM:84E8 +ROM:84E8 ROM_84E8: ; CODE XREF: ROM_84A4+4↑j +ROM:84E8 ; ROM_84A4+11↑j +ROM:84E8 mov R7, #0xFF +ROM:84EA ret +ROM:84EA ; End of function ROM_84A4 +ROM:84EA +ROM:84EB +ROM:84EB ; =============== S U B R O U T I N E ======================================= +ROM:84EB +ROM:84EB +ROM:84EB ROM_84EB: ; CODE XREF: ROM_83E8+2↑p +ROM:84EB ; ROM_A0C8+2A↓p +ROM:84EB mov DPTR, #0xFE4E +ROM:84EE acall ROM_87AD +ROM:84F0 jc ROM_84F5 +ROM:84F2 lcall ROM_614C +ROM:84F5 +ROM:84F5 ROM_84F5: ; CODE XREF: ROM_84EB+5↑j +ROM:84F5 clr A +ROM:84F6 mov R4, A +ROM:84F7 add A, #0x4C ; 'L' +ROM:84F9 mov DP0L, A ; Data Pointer Low Byte +ROM:84FB mov A, R4 +ROM:84FC addc A, #0xFE +ROM:84FE mov DP0H, A ; Data Pointer High Byte +ROM:8500 mov A, R7 +ROM:8501 movx @DPTR, A +ROM:8502 mov DPTR, #0xFE4E +ROM:8505 movx A, @DPTR +ROM:8506 inc A +ROM:8507 movx @DPTR, A +ROM:8508 ret +ROM:8508 ; End of function ROM_84EB +ROM:8508 +ROM:8509 +ROM:8509 ; =============== S U B R O U T I N E ======================================= +ROM:8509 +ROM:8509 +ROM:8509 ROM_8509: ; CODE XREF: ROM_83E8+4↑p +ROM:8509 mov DPTR, #0xFE43 +ROM:850C movx A, @DPTR +ROM:850D mov R7, A +ROM:850E ret +ROM:850E ; End of function ROM_8509 +ROM:850E +ROM:850F +ROM:850F ; =============== S U B R O U T I N E ======================================= +ROM:850F +ROM:850F +ROM:850F ROM_850F: ; CODE XREF: ROM_49FD+26↑p +ROM:850F ; ROM_49FD+39FA↑p ... +ROM:850F mov DPTR, #0xFE43 +ROM:8512 movx A, @DPTR +ROM:8513 jz ROM_8522 +ROM:8515 acall ROM_8529 +ROM:8517 mov DP0H, A ; Data Pointer High Byte +ROM:8519 lcall ROM_7F93 +ROM:851C lcall ROM_37C3 +ROM:851F ljmp ROM_7D37 +ROM:8522 ; --------------------------------------------------------------------------- +ROM:8522 +ROM:8522 ROM_8522: ; CODE XREF: ROM_850F+4↑j +ROM:8522 mov R3, #0 +ROM:8524 mov R2, #0 +ROM:8526 mov R1, #0 +ROM:8528 ret +ROM:8528 ; End of function ROM_850F +ROM:8528 +ROM:8529 +ROM:8529 ; =============== S U B R O U T I N E ======================================= +ROM:8529 +ROM:8529 +ROM:8529 ROM_8529: ; CODE XREF: ROM_83D4:ROM_83DD↑p +ROM:8529 ; ROM_850F+6↑p +ROM:8529 mov DPTR, #0xFE42 +ROM:852C movx A, @DPTR +ROM:852D add A, #0x41 ; 'A' +ROM:852F mov DP0L, A ; Data Pointer Low Byte +ROM:8531 clr A +ROM:8532 addc A, #0xFE +ROM:8534 ret +ROM:8534 ; End of function ROM_8529 +ROM:8534 +ROM:8534 ; --------------------------------------------------------------------------- +ROM:8535 .byte 0x90 +ROM:8536 .byte 0xF8 +ROM:8537 .byte 0x3A ; : +ROM:8538 .byte 0x12 +ROM:8539 .byte 0x3D ; = +ROM:853A .byte 0xA9 +ROM:853B .byte 0xA3 +ROM:853C .byte 0xED +ROM:853D .byte 0xF0 +ROM:853E .byte 0xF1 +ROM:853F .byte 0xC +ROM:8540 .byte 0xAF +ROM:8541 .byte 0x1A +ROM:8542 .byte 0xB1 +ROM:8543 .byte 0x88 +ROM:8544 .byte 0x70 ; p +ROM:8545 .byte 0xC +ROM:8546 .byte 0x90 +ROM:8547 .byte 0xF8 +ROM:8548 .byte 0x3A ; : +ROM:8549 .byte 0x12 +ROM:854A .byte 0x37 ; 7 +ROM:854B .byte 0xC3 +ROM:854C .byte 0xF9 +ROM:854D .byte 0xA3 +ROM:854E .byte 0xE0 +ROM:854F .byte 0xFD +ROM:8550 .byte 0xB1 +ROM:8551 .byte 0xBB +ROM:8552 .byte 0x22 ; " +ROM:8553 +ROM:8553 ; =============== S U B R O U T I N E ======================================= +ROM:8553 +ROM:8553 +ROM:8553 ROM_8553: ; CODE XREF: ROM_8588+B↓p +ROM:8553 lcall ROM_D249 +ROM:8556 mov R3, #1 +ROM:8558 mov R2, #0xFE +ROM:855A mov R1, #0x11 +ROM:855C acall ROM_871E +ROM:855E acall ROM_870C +ROM:8560 mov R7, #0xFD +ROM:8560 ; End of function ROM_8553 +ROM:8560 +ROM:8562 +ROM:8562 ; =============== S U B R O U T I N E ======================================= +ROM:8562 +ROM:8562 +ROM:8562 More_OTA_ROM_8562: ; CODE XREF: ROM_85BB+20↓p +ROM:8562 ; ROM_871E+2↓j +ROM:8562 mov DPTR, #0xF843 +ROM:8565 mov A, R7 +ROM:8566 movx @DPTR, A +ROM:8567 inc DPTR +ROM:8568 acall ROM_8742 +ROM:856A mov DPTR, #0xF843 +ROM:856D movx A, @DPTR +ROM:856E mov FSR_DB, A +ROM:8570 mov FSR_DC, #0xDD +ROM:8573 mov A, R7 +ROM:8574 mov FSR_D9, A +ROM:8576 mov A, R6 +ROM:8577 mov FSR_DA, A +ROM:8579 orl FSR_C7, #8 +ROM:857C mov FSR_DF, #2 +ROM:857F acall ROM_874D +ROM:8581 mov DPTR, #0xF844 +ROM:8584 movx A, @DPTR +ROM:8585 mov FSR_FF, A +ROM:8587 ret +ROM:8587 ; End of function More_OTA_ROM_8562 +ROM:8587 +ROM:8588 +ROM:8588 ; =============== S U B R O U T I N E ======================================= +ROM:8588 +ROM:8588 +ROM:8588 ROM_8588: ; CODE XREF: ROM_859C+E↓p +ROM:8588 lcall ROM_3EC1 +ROM:858B mov R3, #1 +ROM:858D mov R2, #0xFE +ROM:858F mov R1, #0x21 ; '!' +ROM:8591 acall ROM_85F8 +ROM:8593 acall ROM_8553 +ROM:8595 mov DPTR, #0xFE31 +ROM:8598 movx A, @DPTR +ROM:8599 xrl A, #1 +ROM:859B ret +ROM:859B ; End of function ROM_8588 +ROM:859B +ROM:859C +ROM:859C ; =============== S U B R O U T I N E ======================================= +ROM:859C +ROM:859C +ROM:859C ROM_859C: ; CODE XREF: ROM_7B9E+E3↑p +ROM:859C mov DPTR, #0xF82D +ROM:859F lcall Save_3_bytes_R3_R2_R1 +ROM:85A2 inc DPTR +ROM:85A3 mov A, R5 +ROM:85A4 movx @DPTR, A +ROM:85A5 inc DPTR +ROM:85A6 movx A, @DPTR +ROM:85A7 mov R7, A +ROM:85A8 acall ROM_870C +ROM:85AA acall ROM_8588 +ROM:85AC jnz ROM_85BA +ROM:85AE mov DPTR, #0xF82D +ROM:85B1 lcall ROM_37C3 +ROM:85B4 mov R1, A +ROM:85B5 inc DPTR +ROM:85B6 movx A, @DPTR +ROM:85B7 mov R5, A +ROM:85B8 acall ROM_85BB +ROM:85BA +ROM:85BA ROM_85BA: ; CODE XREF: ROM_859C+10↑j +ROM:85BA ret +ROM:85BA ; End of function ROM_859C +ROM:85BA +ROM:85BB +ROM:85BB ; =============== S U B R O U T I N E ======================================= +ROM:85BB +ROM:85BB +ROM:85BB ROM_85BB: ; CODE XREF: ROM_859C+1C↑p +ROM:85BB mov DPTR, #0xF83E +ROM:85BE lcall Save_3_bytes_R3_R2_R1 +ROM:85C1 inc DPTR +ROM:85C2 mov A, R5 +ROM:85C3 movx @DPTR, A +ROM:85C4 clr A +ROM:85C5 inc DPTR +ROM:85C6 movx @DPTR, A +ROM:85C7 +ROM:85C7 ROM_85C7: ; CODE XREF: ROM_85BB+3A↓j +ROM:85C7 mov DPTR, #0xF841 +ROM:85CA lcall ROM_5FE1 +ROM:85CD jnc ROM_85F7 +ROM:85CF mov DPTR, #0xF83E +ROM:85D2 lcall ROM_37C3 +ROM:85D5 mov R1, A +ROM:85D6 mov A, R6 +ROM:85D7 acall ROM_8714 +ROM:85D9 mov R7, #0xFB +ROM:85DB acall More_OTA_ROM_8562 +ROM:85DD lcall ROM_D239 +ROM:85E0 mov DPTR, #0xF83E +ROM:85E3 lcall ROM_37C3 +ROM:85E6 mov R1, A +ROM:85E7 mov DPTR, #0xF842 +ROM:85EA acall ROM_8713 +ROM:85EC acall ROM_8722 +ROM:85EE mov DPTR, #0xF842 +ROM:85F1 movx A, @DPTR +ROM:85F2 add A, #0x10 +ROM:85F4 movx @DPTR, A +ROM:85F5 sjmp ROM_85C7 +ROM:85F7 ; --------------------------------------------------------------------------- +ROM:85F7 +ROM:85F7 ROM_85F7: ; CODE XREF: ROM_85BB+12↑j +ROM:85F7 ret +ROM:85F7 ; End of function ROM_85BB +ROM:85F7 +ROM:85F8 +ROM:85F8 ; =============== S U B R O U T I N E ======================================= +ROM:85F8 +ROM:85F8 +ROM:85F8 ROM_85F8: ; CODE XREF: ROM_79CE+30↑j +ROM:85F8 ; ROM_8588+9↑p +ROM:85F8 mov DPTR, #0xF83E +ROM:85FB lcall Save_3_bytes_R3_R2_R1 +ROM:85FE mov R0, #0x41 ; 'A' +ROM:8600 mov R4, #0xF8 +ROM:8602 mov R5, #1 +ROM:8604 mov DPTR, #0xF83E +ROM:8607 lcall ROM_37C3 +ROM:860A mov R1, A +ROM:860B lcall ROM_6782 +ROM:860E mov DPTR, #0xF84D +ROM:8611 movx A, @DPTR +ROM:8612 mov R7, A +ROM:8613 mov DPTR, #0xF83E +ROM:8616 lcall ROM_37C3 +ROM:8619 mov R1, A +ROM:861A mov A, R7 +ROM:861B lcall code_8CC +ROM:861E mov DPTR, #0xF84E +ROM:8621 movx A, @DPTR +ROM:8622 mov R7, A +ROM:8623 mov DPTR, #0xF83E +ROM:8626 lcall ROM_37C3 +ROM:8629 add A, #1 +ROM:862B lcall ROM_3F82 +ROM:862E mov DPTR, #0xF84F +ROM:8631 movx A, @DPTR +ROM:8632 mov R7, A +ROM:8633 mov DPTR, #0xF83E +ROM:8636 lcall ROM_37C3 +ROM:8639 add A, #2 +ROM:863B lcall ROM_3F82 +ROM:863E mov DPTR, #0xF850 +ROM:8641 movx A, @DPTR +ROM:8642 mov R7, A +ROM:8643 mov DPTR, #0xF83E +ROM:8646 lcall ROM_37C3 +ROM:8649 lcall ROM_3F80 +ROM:864C mov DPTR, #0xF849 +ROM:864F movx A, @DPTR +ROM:8650 mov R7, A +ROM:8651 mov DPTR, #0xF83E +ROM:8654 lcall ROM_37C3 +ROM:8657 add A, #4 +ROM:8659 lcall ROM_3F82 +ROM:865C mov DPTR, #0xF84A +ROM:865F movx A, @DPTR +ROM:8660 mov R7, A +ROM:8661 mov DPTR, #0xF83E +ROM:8664 lcall ROM_37C3 +ROM:8667 add A, #5 +ROM:8669 lcall ROM_3F82 +ROM:866C mov DPTR, #0xF84B +ROM:866F movx A, @DPTR +ROM:8670 mov R7, A +ROM:8671 mov DPTR, #0xF83E +ROM:8674 lcall ROM_37C3 +ROM:8677 add A, #6 +ROM:8679 lcall ROM_3F82 +ROM:867C mov DPTR, #0xF84C +ROM:867F movx A, @DPTR +ROM:8680 mov R7, A +ROM:8681 mov DPTR, #0xF83E +ROM:8684 lcall ROM_37C3 +ROM:8687 add A, #7 +ROM:8689 lcall ROM_3F82 +ROM:868C mov DPTR, #0xF845 +ROM:868F movx A, @DPTR +ROM:8690 mov R7, A +ROM:8691 mov DPTR, #0xF83E +ROM:8694 lcall ROM_37C3 +ROM:8697 add A, #8 +ROM:8699 lcall ROM_3F82 +ROM:869C mov DPTR, #0xF846 +ROM:869F movx A, @DPTR +ROM:86A0 mov R7, A +ROM:86A1 mov DPTR, #0xF83E +ROM:86A4 lcall ROM_37C3 +ROM:86A7 add A, #9 +ROM:86A9 lcall ROM_3F82 +ROM:86AC mov DPTR, #0xF847 +ROM:86AF movx A, @DPTR +ROM:86B0 mov R7, A +ROM:86B1 mov DPTR, #0xF83E +ROM:86B4 lcall ROM_37C3 +ROM:86B7 add A, #0xA +ROM:86B9 lcall ROM_3F82 +ROM:86BC mov DPTR, #0xF848 +ROM:86BF movx A, @DPTR +ROM:86C0 mov R7, A +ROM:86C1 mov DPTR, #0xF83E +ROM:86C4 lcall ROM_37C3 +ROM:86C7 add A, #0xB +ROM:86C9 lcall ROM_3F82 +ROM:86CC mov DPTR, #0xF841 +ROM:86CF movx A, @DPTR +ROM:86D0 mov R7, A +ROM:86D1 mov DPTR, #0xF83E +ROM:86D4 lcall ROM_37C3 +ROM:86D7 add A, #0xC +ROM:86D9 lcall ROM_3F82 +ROM:86DC mov DPTR, #0xF842 +ROM:86DF movx A, @DPTR +ROM:86E0 mov R7, A +ROM:86E1 mov DPTR, #0xF83E +ROM:86E4 lcall ROM_37C3 +ROM:86E7 add A, #0xD +ROM:86E9 lcall ROM_3F82 +ROM:86EC mov DPTR, #0xF843 +ROM:86EF movx A, @DPTR +ROM:86F0 mov R7, A +ROM:86F1 mov DPTR, #0xF83E +ROM:86F4 lcall ROM_37C3 +ROM:86F7 add A, #0xE +ROM:86F9 lcall ROM_3F82 +ROM:86FC mov DPTR, #0xF844 +ROM:86FF movx A, @DPTR +ROM:8700 mov R7, A +ROM:8701 mov DPTR, #0xF83E +ROM:8704 lcall ROM_37C3 +ROM:8707 acall ROM_8784 +ROM:8709 ljmp code_8CC +ROM:8709 ; End of function ROM_85F8 +ROM:8709 +ROM:870C +ROM:870C ; =============== S U B R O U T I N E ======================================= +ROM:870C +ROM:870C +ROM:870C ROM_870C: ; CODE XREF: ROM_8553+B↑p +ROM:870C ; ROM_859C+C↑p +ROM:870C mov R3, #1 +ROM:870E mov R2, #0xFE +ROM:8710 mov R1, #0x21 ; '!' +ROM:8712 ret +ROM:8712 ; End of function ROM_870C +ROM:8712 +ROM:8713 +ROM:8713 ; =============== S U B R O U T I N E ======================================= +ROM:8713 +ROM:8713 +ROM:8713 ROM_8713: ; CODE XREF: ROM_3861+A9↑p +ROM:8713 ; ROM_85BB+2F↑p +ROM:8713 movx A, @DPTR +ROM:8713 ; End of function ROM_8713 +ROM:8713 +ROM:8714 +ROM:8714 ; =============== S U B R O U T I N E ======================================= +ROM:8714 +ROM:8714 +ROM:8714 ROM_8714: ; CODE XREF: ROM_85BB+1C↑p +ROM:8714 mov R7, A +ROM:8715 mov R6, #0 +ROM:8717 mov A, R1 +ROM:8718 add A, R7 +ROM:8719 mov R1, A +ROM:871A mov A, R6 +ROM:871B addc A, R2 +ROM:871C mov R2, A +ROM:871D ret +ROM:871D ; End of function ROM_8714 +ROM:871D +ROM:871E +ROM:871E ; =============== S U B R O U T I N E ======================================= +ROM:871E +ROM:871E +ROM:871E ROM_871E: ; CODE XREF: ROM_8553+9↑p +ROM:871E mov R7, #0xFC +ROM:8720 ajmp More_OTA_ROM_8562 +ROM:8720 ; End of function ROM_871E +ROM:8720 +ROM:8722 +ROM:8722 ; =============== S U B R O U T I N E ======================================= +ROM:8722 +ROM:8722 +ROM:8722 ROM_8722: ; CODE XREF: ROM_85BB+31↑p +ROM:8722 mov DPTR, #0xF843 +ROM:8725 acall ROM_8742 +ROM:8727 mov A, R7 +ROM:8728 mov FSR_DB, A +ROM:872A mov A, R6 +ROM:872B mov FSR_DC, A +ROM:872D mov FSR_D9, #0xFE +ROM:8730 mov FSR_DA, #0xDD +ROM:8733 orl FSR_C7, #8 +ROM:8736 mov FSR_DF, #1 +ROM:8739 acall ROM_874D +ROM:873B mov DPTR, #0xF843 +ROM:873E movx A, @DPTR +ROM:873F mov FSR_FF, A +ROM:8741 ret +ROM:8741 ; End of function ROM_8722 +ROM:8741 +ROM:8742 +ROM:8742 ; =============== S U B R O U T I N E ======================================= +ROM:8742 +ROM:8742 +ROM:8742 ROM_8742: ; CODE XREF: More_OTA_ROM_8562+6↑p +ROM:8742 ; ROM_8722+3↑p +ROM:8742 mov A, FSR_FF +ROM:8744 movx @DPTR, A +ROM:8745 mov R6, RAM_2 +ROM:8747 mov R7, RAM_1 +ROM:8749 orl FSR_FF, #4 +ROM:874C ret +ROM:874C ; End of function ROM_8742 +ROM:874C +ROM:874D +ROM:874D ; =============== S U B R O U T I N E ======================================= +ROM:874D +ROM:874D +ROM:874D ROM_874D: ; CODE XREF: More_OTA_ROM_8562+1D↑p +ROM:874D ; ROM_8722+17↑p +ROM:874D mov R7, FSR_FF +ROM:874F clr ET2 ; Interrupt Enable Register 0 +ROM:8751 anl FSR_FF, #0xFB +ROM:8754 orl FSR_D7, #8 +ROM:8757 orl FSR_FF, #4 +ROM:875A +ROM:875A ROM_875A: ; CODE XREF: ROM_874D+F↓j +ROM:875A mov A, FSR_CF +ROM:875C jz ROM_875A +ROM:875E mov A, FSR_CF +ROM:8760 jb ACC7, ROM_876D ; Accumulator +ROM:8763 mov A, FSR_CF +ROM:8765 jnb ACC2, ROM_876D ; Accumulator +ROM:8768 anl FSR_CF, #0xFB +ROM:876B sjmp ROM_8770 +ROM:876D ; --------------------------------------------------------------------------- +ROM:876D +ROM:876D ROM_876D: ; CODE XREF: ROM_874D+13↑j +ROM:876D ; ROM_874D+18↑j +ROM:876D clr A +ROM:876E mov FSR_CF, A +ROM:8770 +ROM:8770 ROM_8770: ; CODE XREF: ROM_874D+1E↑j +ROM:8770 setb ET2 ; Interrupt Enable Register 0 +ROM:8772 mov FSR_FF, R7 +ROM:8774 ret +ROM:8774 ; End of function ROM_874D +ROM:8774 +ROM:8775 +ROM:8775 ; =============== S U B R O U T I N E ======================================= +ROM:8775 +ROM:8775 +ROM:8775 ROM_8775: ; CODE XREF: ROM_3EC1+7C↑p +ROM:8775 ; ROM_49FD+B8↑p ... +ROM:8775 add A, #0xA +ROM:8777 mov R1, A +ROM:8778 clr A +ROM:8779 addc A, R2 +ROM:877A mov R2, A +ROM:877B ret +ROM:877B ; End of function ROM_8775 +ROM:877B +ROM:877C +ROM:877C ; =============== S U B R O U T I N E ======================================= +ROM:877C +ROM:877C +ROM:877C ROM_877C: ; CODE XREF: ROM_807C+55↑p +ROM:877C setb C +ROM:877D subb A, #0x14 +ROM:877F mov A, #0x80 +ROM:8781 subb A, #0x80 +ROM:8783 ret +ROM:8783 ; End of function ROM_877C +ROM:8783 +ROM:8784 +ROM:8784 ; =============== S U B R O U T I N E ======================================= +ROM:8784 +ROM:8784 +ROM:8784 ROM_8784: ; CODE XREF: ROM_3EC1+B9↑p +ROM:8784 ; ROM_85F8+10F↑p +ROM:8784 add A, #0xF +ROM:8786 mov R1, A +ROM:8787 clr A +ROM:8788 addc A, R2 +ROM:8789 mov R2, A +ROM:878A mov A, R7 +ROM:878B ret +ROM:878B ; End of function ROM_8784 +ROM:878B +ROM:878C +ROM:878C ; =============== S U B R O U T I N E ======================================= +ROM:878C +ROM:878C +ROM:878C ROM_878C: ; CODE XREF: ROM_7EE1+17↑p +ROM:878C mov DPTR, #0xF728 +ROM:878F movx @DPTR, A +ROM:8790 mov A, R6 +ROM:8791 inc DPTR +ROM:8792 movx @DPTR, A +ROM:8793 ret +ROM:8793 ; End of function ROM_878C +ROM:8793 +ROM:8794 +ROM:8794 ; =============== S U B R O U T I N E ======================================= +ROM:8794 +ROM:8794 +ROM:8794 ROM_8794: ; CODE XREF: ROM_6C56+35↑p +ROM:8794 ; ROM_84A4+31↑p +ROM:8794 movx A, @DPTR +ROM:8795 mov R3, A +ROM:8796 mov A, R6 +ROM:8797 cpl A +ROM:8798 mov R6, A +ROM:8799 mov A, R5 +ROM:879A anl A, R6 +ROM:879B ret +ROM:879B ; End of function ROM_8794 +ROM:879B +ROM:879C +ROM:879C ; =============== S U B R O U T I N E ======================================= +ROM:879C +ROM:879C +ROM:879C ROM_879C: ; CODE XREF: ROM_8FCC+5F↓p +ROM:879C movx A, @DPTR +ROM:879D mov R7, A +ROM:879E mov R6, #0 +ROM:87A0 mov DPTR, #0xF834 +ROM:87A3 ret +ROM:87A3 ; End of function ROM_879C +ROM:87A3 +ROM:87A4 +ROM:87A4 ; =============== S U B R O U T I N E ======================================= +ROM:87A4 +ROM:87A4 +ROM:87A4 ROM_87A4: ; CODE XREF: ROM_AD6A+51E↓p +ROM:87A4 ; ROM_AD6A+538↓p ... +ROM:87A4 add A, #0x18 +ROM:87A4 ; End of function ROM_87A4 +ROM:87A4 +ROM:87A6 +ROM:87A6 ; =============== S U B R O U T I N E ======================================= +ROM:87A6 +ROM:87A6 +ROM:87A6 ROM_87A6: ; CODE XREF: ROM_405D+6E↑p +ROM:87A6 ; ROM_807C+3B↑p ... +ROM:87A6 mov R1, A +ROM:87A7 clr A +ROM:87A8 addc A, R2 +ROM:87A9 mov R2, A +ROM:87AA ljmp code_B53 +ROM:87AA ; End of function ROM_87A6 +ROM:87AA +ROM:87AD +ROM:87AD ; =============== S U B R O U T I N E ======================================= +ROM:87AD +ROM:87AD +ROM:87AD ROM_87AD: ; CODE XREF: ROM_7EC0+3↑p +ROM:87AD ; ROM_84EB+3↑p +ROM:87AD movx A, @DPTR +ROM:87AD ; End of function ROM_87AD +ROM:87AD +ROM:87AE +ROM:87AE ; =============== S U B R O U T I N E ======================================= +ROM:87AE +ROM:87AE +ROM:87AE ROM_87AE: ; CODE XREF: ROM_9A40+1D↓p +ROM:87AE ; ROM_A0C8+25↓p +ROM:87AE clr C +ROM:87AE ; End of function ROM_87AE +ROM:87AE +ROM:87AF +ROM:87AF ; =============== S U B R O U T I N E ======================================= +ROM:87AF +ROM:87AF +ROM:87AF ROM_87AF: ; CODE XREF: ROM_37F0+3B↑p +ROM:87AF subb A, #1 +ROM:87B1 mov A, #0x80 +ROM:87B3 subb A, #0x80 +ROM:87B5 ret +ROM:87B5 ; End of function ROM_87AF +ROM:87B5 +ROM:87B6 +ROM:87B6 ; =============== S U B R O U T I N E ======================================= +ROM:87B6 +ROM:87B6 +ROM:87B6 ROM_87B6: ; CODE XREF: ROM_77DC↑p +ROM:87B6 mov R6, #0 +ROM:87B8 mov R7, #4 +ROM:87BA mov R5, #0 +ROM:87BC mov R3, #1 +ROM:87BE ret +ROM:87BE ; End of function ROM_87B6 +ROM:87BE +ROM:87BF +ROM:87BF ; =============== S U B R O U T I N E ======================================= +ROM:87BF +ROM:87BF +ROM:87BF ROM_87BF: ; CODE XREF: ROM_A71E+6↓p +ROM:87BF mov DPTR, #0xFEA7 +ROM:87C2 movx A, @DPTR +ROM:87C3 mov R7, A +ROM:87C4 mov DPTR, #0xFEAB +ROM:87C7 movx A, @DPTR +ROM:87C8 ret +ROM:87C8 ; End of function ROM_87BF +ROM:87C8 +ROM:87C8 ; --------------------------------------------------------------------------- +ROM:87C9 .byte 0x90 +ROM:87CA .byte 0xF6 +ROM:87CB .byte 0x6A ; j +ROM:87CC .byte 0x74 ; t +ROM:87CD .byte 0xF4 +ROM:87CE .byte 0xF0 +ROM:87CF .byte 0xA3 +ROM:87D0 .byte 0x74 ; t +ROM:87D1 .byte 0x87 +ROM:87D2 .byte 0xF0 +ROM:87D3 .byte 0x7E ; ~ +ROM:87D4 .byte 0 +ROM:87D5 .byte 0x7F ;  +ROM:87D6 .byte 5 +ROM:87D7 .byte 0x7D ; } +ROM:87D8 .byte 0xBB +ROM:87D9 .byte 0x7B ; { +ROM:87DA .byte 1 +ROM:87DB .byte 0x7A ; z +ROM:87DC .byte 0xF6 +ROM:87DD .byte 0x79 ; y +ROM:87DE .byte 0x72 ; r +ROM:87DF .byte 0x12 +ROM:87E0 .byte 0xE +ROM:87E1 .byte 0xA0 +ROM:87E2 .byte 0x78 ; x +ROM:87E3 .byte 0x72 ; r +ROM:87E4 .byte 0x7C ; | +ROM:87E5 .byte 0xF6 +ROM:87E6 .byte 0x7D ; } +ROM:87E7 .byte 1 +ROM:87E8 .byte 0x7B ; { +ROM:87E9 .byte 1 +ROM:87EA .byte 0x7A ; z +ROM:87EB .byte 0xFE +ROM:87EC .byte 0x79 ; y +ROM:87ED .byte 0xA1 +ROM:87EE .byte 0x12 +ROM:87EF .byte 0x6F ; o +ROM:87F0 .byte 0x87 +ROM:87F1 .byte 0x7B ; { +ROM:87F2 .byte 1 +ROM:87F3 .byte 0x7A ; z +ROM:87F4 .byte 0xF6 +ROM:87F5 .byte 0x79 ; y +ROM:87F6 .byte 0x6A ; j +ROM:87F7 .byte 0x7D ; } +ROM:87F8 .byte 0xD +ROM:87F9 .byte 0x51 ; Q +ROM:87FA .byte 0xBD +ROM:87FB .byte 0xEF +ROM:87FC .byte 0x60 ; ` +ROM:87FD .byte 3 +ROM:87FE .byte 0x12 +ROM:87FF .byte 0x29 ; ) +ROM:8800 .byte 0x16 +ROM:8801 .byte 0x22 ; " +ROM:8802 .byte 0x11 +ROM:8803 .byte 0x2C ; , +ROM:8804 .byte 0x90 +ROM:8805 .byte 0xF4 +ROM:8806 .byte 0x8A +ROM:8807 .byte 0xF0 +ROM:8808 .byte 0x90 +ROM:8809 .byte 0xF5 +ROM:880A .byte 0x42 ; B +ROM:880B .byte 0xE0 +ROM:880C .byte 0x54 ; T +ROM:880D .byte 0x7F ;  +ROM:880E .byte 0xFE +ROM:880F .byte 0xA3 +ROM:8810 .byte 0xE0 +ROM:8811 .byte 0xFF +ROM:8812 .byte 0x90 +ROM:8813 .byte 0xF4 +ROM:8814 .byte 0x8C +ROM:8815 .byte 0xE0 +ROM:8816 .byte 0x4E ; N +ROM:8817 .byte 0xF0 +ROM:8818 .byte 0xA3 +ROM:8819 .byte 0xE0 +ROM:881A .byte 0x4F ; O +ROM:881B .byte 0xF0 +ROM:881C .byte 0xE4 +ROM:881D .byte 0x90 +ROM:881E .byte 0xFE +ROM:881F .byte 0x32 ; 2 +ROM:8820 .byte 0xF0 +ROM:8821 .byte 0x7B ; { +ROM:8822 .byte 1 +ROM:8823 .byte 0x7A ; z +ROM:8824 .byte 0xF4 +ROM:8825 .byte 0x79 ; y +ROM:8826 .byte 0x88 +ROM:8827 .byte 0x7D ; } +ROM:8828 .byte 8 +ROM:8829 .byte 2 +ROM:882A .byte 0x82 +ROM:882B .byte 0xBD +ROM:882C +ROM:882C ; =============== S U B R O U T I N E ======================================= +ROM:882C +ROM:882C +ROM:882C ROM_882C: ; CODE XREF: ROM_61D7+4E↑p +ROM:882C mov DPTR, #0xF488 +ROM:882F mov A, #0xD7 +ROM:8831 movx @DPTR, A +ROM:8832 inc DPTR +ROM:8833 mov A, #0x87 +ROM:8835 movx @DPTR, A +ROM:8836 mov DPTR, #0x53C +ROM:8839 clr A +ROM:883A movc A, @A+DPTR +ROM:883B ret +ROM:883B ; End of function ROM_882C +ROM:883B +ROM:883B ; --------------------------------------------------------------------------- +ROM:883C .byte 0xF0 +ROM:883D .byte 0xE4 +ROM:883E .byte 0xFB +ROM:883F .byte 0xFD +ROM:8840 .byte 0xFC +ROM:8841 .byte 0x90 +ROM:8842 .byte 0xF8 +ROM:8843 .byte 0x70 ; p +ROM:8844 .byte 0xEE +ROM:8845 .byte 0xF0 +ROM:8846 .byte 0xA3 +ROM:8847 .byte 0xEF +ROM:8848 .byte 0xF0 +ROM:8849 .byte 0x90 +ROM:884A .byte 0xF8 +ROM:884B .byte 0x74 ; t +ROM:884C .byte 0xEB +ROM:884D .byte 0x11 +ROM:884E .byte 0x35 ; 5 +ROM:884F .byte 0xFF +ROM:8850 .byte 0x75 ; u +ROM:8851 .byte 0xF0 +ROM:8852 .byte 0x64 ; d +ROM:8853 .byte 0x84 +ROM:8854 .byte 0x24 ; $ +ROM:8855 .byte 0x30 ; 0 +ROM:8856 .byte 0x90 +ROM:8857 .byte 0xF8 +ROM:8858 .byte 0x76 ; v +ROM:8859 .byte 0xF0 +ROM:885A .byte 0xEF +ROM:885B .byte 0x75 ; u +ROM:885C .byte 0xF0 +ROM:885D .byte 0x64 ; d +ROM:885E .byte 0x84 +ROM:885F .byte 0xE5 +ROM:8860 .byte 0xF0 +ROM:8861 .byte 0x75 ; u +ROM:8862 .byte 0xF0 +ROM:8863 .byte 0xA +ROM:8864 .byte 0x84 +ROM:8865 .byte 0x24 ; $ +ROM:8866 .byte 0x30 ; 0 +ROM:8867 .byte 0xA3 +ROM:8868 .byte 0xF0 +ROM:8869 .byte 0xEF +ROM:886A .byte 0x75 ; u +ROM:886B .byte 0xF0 +ROM:886C .byte 0xA +ROM:886D .byte 0x84 +ROM:886E .byte 0xE5 +ROM:886F .byte 0xF0 +ROM:8870 .byte 0x24 ; $ +ROM:8871 .byte 0x30 ; 0 +ROM:8872 .byte 0xA3 +ROM:8873 .byte 0xF0 +ROM:8874 .byte 0x7B ; { +ROM:8875 .byte 1 +ROM:8876 .byte 0x51 ; Q +ROM:8877 .byte 0xCF +ROM:8878 .byte 0x74 ; t +ROM:8879 .byte 3 +ROM:887A .byte 0x71 ; q +ROM:887B .byte 0x11 +ROM:887C +ROM:887C ; =============== S U B R O U T I N E ======================================= +ROM:887C +ROM:887C +ROM:887C ROM_887C: ; CODE XREF: ROM_55D4+C5↑p +ROM:887C mov DPTR, #0xF885 +ROM:887F mov A, R6 +ROM:8880 movx @DPTR, A +ROM:8881 inc DPTR +ROM:8882 mov A, R7 +ROM:8883 movx @DPTR, A +ROM:8884 mov DPTR, #0xF889 +ROM:8887 lcall Save_3_bytes_R3_R2_R1 +ROM:888A clr A +ROM:888B mov DPTR, #0xF891 +ROM:888E movx @DPTR, A +ROM:888F mov R7, RAM_5 +ROM:8891 mov DPTR, #0xF898 +ROM:8894 mov A, R4 +ROM:8895 movx @DPTR, A +ROM:8896 inc DPTR +ROM:8897 mov A, R7 +ROM:8898 movx @DPTR, A +ROM:8899 mov DPTR, #0xF885 +ROM:889C movx A, @DPTR +ROM:889D mov R7, A +ROM:889E inc DPTR +ROM:889F movx A, @DPTR +ROM:88A0 mov DPTR, #0xF896 +ROM:88A3 xch A, R7 +ROM:88A4 movx @DPTR, A +ROM:88A5 inc DPTR +ROM:88A6 mov A, R7 +ROM:88A7 movx @DPTR, A +ROM:88A8 mov DPTR, #0xF88D +ROM:88AB movx A, @DPTR +ROM:88AC mov R7, A +ROM:88AD mov R6, #0 +ROM:88AF jnz ROM_88BC +ROM:88B1 mov DPTR, #0xF89A +ROM:88B4 inc A +ROM:88B5 movx @DPTR, A +ROM:88B6 inc DPTR +ROM:88B7 mov A, #0xA +ROM:88B9 movx @DPTR, A +ROM:88BA sjmp ROM_88D5 +ROM:88BC ; --------------------------------------------------------------------------- +ROM:88BC +ROM:88BC ROM_88BC: ; CODE XREF: ROM_887C+33↑j +ROM:88BC mov A, R7 +ROM:88BD xrl A, #1 +ROM:88BF orl A, R6 +ROM:88C0 jnz ROM_88CE +ROM:88C2 mov DPTR, #0xF89A +ROM:88C5 mov A, #2 +ROM:88C7 movx @DPTR, A +ROM:88C8 inc DPTR +ROM:88C9 mov A, #0x10 +ROM:88CB movx @DPTR, A +ROM:88CC sjmp ROM_88D5 +ROM:88CE ; --------------------------------------------------------------------------- +ROM:88CE +ROM:88CE ROM_88CE: ; CODE XREF: ROM_887C+44↑j +ROM:88CE clr A +ROM:88CF mov DPTR, #0xF89A +ROM:88D2 movx @DPTR, A +ROM:88D3 inc DPTR +ROM:88D4 movx @DPTR, A +ROM:88D5 +ROM:88D5 ROM_88D5: ; CODE XREF: ROM_887C+3E↑j +ROM:88D5 ; ROM_887C+50↑j +ROM:88D5 clr A +ROM:88D6 mov DPTR, #0xF890 +ROM:88D9 movx @DPTR, A +ROM:88DA +ROM:88DA ROM_88DA: ; CODE XREF: ROM_887C+203↓j +ROM:88DA mov DPTR, #0xF88C +ROM:88DD movx A, @DPTR +ROM:88DE mov R7, A +ROM:88DF mov DPTR, #0xF890 +ROM:88E2 movx A, @DPTR +ROM:88E3 clr C +ROM:88E4 subb A, R7 +ROM:88E5 jc ROM_88E9 +ROM:88E7 ajmp ROM_8A81 +ROM:88E9 ; --------------------------------------------------------------------------- +ROM:88E9 +ROM:88E9 ROM_88E9: ; CODE XREF: ROM_887C+69↑j +ROM:88E9 lcall SetupWatchdog +ROM:88EC mov DPTR, #0xF889 +ROM:88EF lcall ROM_37C3 +ROM:88F2 mov R1, A +ROM:88F3 mov DPTR, #0xF890 +ROM:88F6 movx A, @DPTR +ROM:88F7 mov R7, A +ROM:88F8 lcall ROM_39D9 +ROM:88FB mov R7, A +ROM:88FC lcall ROM_98C3 +ROM:88FF mov DPTR, #0xF894 +ROM:8902 mov A, R6 +ROM:8903 movx @DPTR, A +ROM:8904 inc DPTR +ROM:8905 mov A, R7 +ROM:8906 movx @DPTR, A +ROM:8907 mov DPTR, #0xF894 +ROM:890A lcall ROM_7663 +ROM:890D mov R6, #0 +ROM:890F anl A, #0xF +ROM:8911 mov R7, A +ROM:8912 xrl A, #1 +ROM:8914 jnz ROM_892C +ROM:8916 mov DPTR, #0xF88D +ROM:8919 movx A, @DPTR +ROM:891A jnz ROM_8922 +ROM:891C mov A, R5 +ROM:891D mov DPTR, #0x159E +ROM:8920 sjmp ROM_8947 +ROM:8922 ; --------------------------------------------------------------------------- +ROM:8922 +ROM:8922 ROM_8922: ; CODE XREF: ROM_887C+9E↑j +ROM:8922 mov DPTR, #0xF894 +ROM:8925 inc DPTR +ROM:8926 movx A, @DPTR +ROM:8927 mov DPTR, #0x15B9 +ROM:892A sjmp ROM_8947 +ROM:892C ; --------------------------------------------------------------------------- +ROM:892C +ROM:892C ROM_892C: ; CODE XREF: ROM_887C+98↑j +ROM:892C mov A, R7 +ROM:892D xrl A, #2 +ROM:892F orl A, R6 +ROM:8930 jnz ROM_894C +ROM:8932 mov DPTR, #0xF88D +ROM:8935 movx A, @DPTR +ROM:8936 mov DPTR, #0xF894 +ROM:8939 jnz ROM_8942 +ROM:893B inc DPTR +ROM:893C movx A, @DPTR +ROM:893D mov DPTR, #0x15A8 +ROM:8940 sjmp ROM_8947 +ROM:8942 ; --------------------------------------------------------------------------- +ROM:8942 +ROM:8942 ROM_8942: ; CODE XREF: ROM_887C+BD↑j +ROM:8942 inc DPTR +ROM:8943 movx A, @DPTR +ROM:8944 mov DPTR, #0x15C3 +ROM:8947 +ROM:8947 ROM_8947: ; CODE XREF: ROM_887C+A4↑j +ROM:8947 ; ROM_887C+AE↑j ... +ROM:8947 movc A, @A+DPTR +ROM:8948 mov DPTR, #0xF891 +ROM:894B movx @DPTR, A +ROM:894C +ROM:894C ROM_894C: ; CODE XREF: ROM_887C+B4↑j +ROM:894C mov DPTR, #0xF891 +ROM:894F movx A, @DPTR +ROM:8950 mov R7, A +ROM:8951 mov R5, A +ROM:8952 mov DPTR, #0xF897 +ROM:8955 movx A, @DPTR +ROM:8956 add A, R5 +ROM:8957 mov R5, A +ROM:8958 mov DPTR, #0xF896 +ROM:895B movx A, @DPTR +ROM:895C addc A, #0 +ROM:895E mov R4, A +ROM:895F clr C +ROM:8960 mov DPTR, #0xFDB5 +ROM:8963 movx A, @DPTR +ROM:8964 subb A, R5 +ROM:8965 mov DPTR, #0xFDB4 +ROM:8968 movx A, @DPTR +ROM:8969 subb A, R4 +ROM:896A jnc ROM_896E +ROM:896C ajmp ROM_8A81 +ROM:896E ; --------------------------------------------------------------------------- +ROM:896E +ROM:896E ROM_896E: ; CODE XREF: ROM_887C+EE↑j +ROM:896E mov A, R7 +ROM:896F jnz ROM_8973 +ROM:8971 ajmp ROM_8A81 +ROM:8973 ; --------------------------------------------------------------------------- +ROM:8973 +ROM:8973 ROM_8973: ; CODE XREF: ROM_887C+F3↑j +ROM:8973 clr A +ROM:8974 mov DPTR, #0xF88F +ROM:8977 movx @DPTR, A +ROM:8978 +ROM:8978 ROM_8978: ; CODE XREF: ROM_887C+1E9↓j +ROM:8978 mov DPTR, #0xF89B +ROM:897B acall ROM_8A82 +ROM:897D clr C +ROM:897E subb A, R7 +ROM:897F jc ROM_8983 +ROM:8981 ajmp ROM_8A67 +ROM:8983 ; --------------------------------------------------------------------------- +ROM:8983 +ROM:8983 ROM_8983: ; CODE XREF: ROM_887C+103↑j +ROM:8983 clr A +ROM:8984 mov R5, A +ROM:8985 +ROM:8985 ROM_8985: ; CODE XREF: ROM_887C+1A0↓j +ROM:8985 mov DPTR, #0xF89A +ROM:8988 movx A, @DPTR +ROM:8989 mov R1, A +ROM:898A mov A, R5 +ROM:898B clr C +ROM:898C subb A, R1 +ROM:898D jc ROM_8991 +ROM:898F ajmp ROM_8A1E +ROM:8991 ; --------------------------------------------------------------------------- +ROM:8991 +ROM:8991 ROM_8991: ; CODE XREF: ROM_887C+111↑j +ROM:8991 mov DPTR, #0xF894 +ROM:8994 movx A, @DPTR +ROM:8995 mov R6, A +ROM:8996 inc DPTR +ROM:8997 movx A, @DPTR +ROM:8998 mov R4, A +ROM:8999 mov A, R6 +ROM:899A anl A, #0xF +ROM:899C xrl A, #1 +ROM:899E jnz ROM_89D0 +ROM:89A0 mov DPTR, #0xF88D +ROM:89A3 movx A, @DPTR +ROM:89A4 mov DPTR, #0xF88F +ROM:89A7 jnz ROM_89BC +ROM:89A9 movx A, @DPTR +ROM:89AA mov B, R1 ; B Register +ROM:89AC acall ROM_8A91 +ROM:89AE add A, #0xD4 +ROM:89B0 mov DP0L, A ; Data Pointer Low Byte +ROM:89B2 clr A +ROM:89B3 addc A, #0x15 +ROM:89B5 acall ROM_8A89 +ROM:89B7 clr A +ROM:89B8 addc A, DP0H ; Data Pointer High Byte +ROM:89BA sjmp ROM_8A0A +ROM:89BC ; --------------------------------------------------------------------------- +ROM:89BC +ROM:89BC ROM_89BC: ; CODE XREF: ROM_887C+12B↑j +ROM:89BC movx A, @DPTR +ROM:89BD mov B, R1 ; B Register +ROM:89BF acall ROM_8A9A +ROM:89C1 add A, #0xE2 +ROM:89C3 mov DP0L, A ; Data Pointer Low Byte +ROM:89C5 mov A, B ; B Register +ROM:89C7 addc A, #0x16 +ROM:89C9 acall ROM_8A89 +ROM:89CB mov A, DP0H ; Data Pointer High Byte +ROM:89CD addc A, R6 +ROM:89CE sjmp ROM_8A0A +ROM:89D0 ; --------------------------------------------------------------------------- +ROM:89D0 +ROM:89D0 ROM_89D0: ; CODE XREF: ROM_887C+122↑j +ROM:89D0 mov DPTR, #0xF894 +ROM:89D3 movx A, @DPTR +ROM:89D4 anl A, #0xF +ROM:89D6 xrl A, #2 +ROM:89D8 jnz ROM_8A1B +ROM:89DA mov DPTR, #0xF88D +ROM:89DD movx A, @DPTR +ROM:89DE mov DPTR, #0xF89A +ROM:89E1 jnz ROM_89F7 +ROM:89E3 acall ROM_8A82 +ROM:89E5 mov B, R7 ; B Register +ROM:89E7 acall ROM_8A91 +ROM:89E9 add A, #0x38 ; '8' +ROM:89EB mov DP0L, A ; Data Pointer Low Byte +ROM:89ED clr A +ROM:89EE addc A, #0x16 +ROM:89F0 acall ROM_8A89 +ROM:89F2 clr A +ROM:89F3 addc A, DP0H ; Data Pointer High Byte +ROM:89F5 sjmp ROM_8A0A +ROM:89F7 ; --------------------------------------------------------------------------- +ROM:89F7 +ROM:89F7 ROM_89F7: ; CODE XREF: ROM_887C+165↑j +ROM:89F7 acall ROM_8A82 +ROM:89F9 mov B, R7 ; B Register +ROM:89FB acall ROM_8A9A +ROM:89FD add A, #0x22 ; '"' +ROM:89FF mov DP0L, A ; Data Pointer Low Byte +ROM:8A01 mov A, B ; B Register +ROM:8A03 addc A, #0x18 +ROM:8A05 acall ROM_8A89 +ROM:8A07 mov A, DP0H ; Data Pointer High Byte +ROM:8A09 addc A, R6 +ROM:8A0A +ROM:8A0A ROM_8A0A: ; CODE XREF: ROM_887C+13E↑j +ROM:8A0A ; ROM_887C+152↑j ... +ROM:8A0A mov DP0H, A ; Data Pointer High Byte +ROM:8A0C clr A +ROM:8A0D movc A, @A+DPTR +ROM:8A0E mov R7, A +ROM:8A0F mov A, #0x92 +ROM:8A11 add A, R5 +ROM:8A12 mov DP0L, A ; Data Pointer Low Byte +ROM:8A14 clr A +ROM:8A15 addc A, #0xF8 +ROM:8A17 mov DP0H, A ; Data Pointer High Byte +ROM:8A19 mov A, R7 +ROM:8A1A movx @DPTR, A +ROM:8A1B +ROM:8A1B ROM_8A1B: ; CODE XREF: ROM_887C+15C↑j +ROM:8A1B inc R5 +ROM:8A1C ajmp ROM_8985 +ROM:8A1E ; --------------------------------------------------------------------------- +ROM:8A1E +ROM:8A1E ROM_8A1E: ; CODE XREF: ROM_887C+113↑j +ROM:8A1E mov DPTR, #0xF89A +ROM:8A21 movx A, @DPTR +ROM:8A22 mov R7, A +ROM:8A23 setb C +ROM:8A24 lcall ROM_23E9 +ROM:8A27 jnc ROM_8A5F +ROM:8A29 mov R6, #0 +ROM:8A2B mov R0, #0x78 ; 'x' +ROM:8A2D mov R4, #0xFE +ROM:8A2F mov R5, #1 +ROM:8A31 mov R3, #1 +ROM:8A33 mov R2, #0xF8 +ROM:8A35 mov R1, #0x92 +ROM:8A37 lcall code_86B +ROM:8A3A mov DPTR, #0xF896 +ROM:8A3D movx A, @DPTR +ROM:8A3E mov R6, A +ROM:8A3F inc DPTR +ROM:8A40 acall ROM_8A82 +ROM:8A42 mov R5, A +ROM:8A43 mov DPTR, #0xF899 +ROM:8A46 movx A, @DPTR +ROM:8A47 add A, R5 +ROM:8A48 mov R5, A +ROM:8A49 mov DPTR, #0xF898 +ROM:8A4C movx A, @DPTR +ROM:8A4D addc A, #0 +ROM:8A4F mov R4, A +ROM:8A50 mov DPTR, #0xF89A +ROM:8A53 movx A, @DPTR +ROM:8A54 mov R3, A +ROM:8A55 mov DPTR, #0xF88E +ROM:8A58 movx A, @DPTR +ROM:8A59 mov DPTR, #0xF8A1 +ROM:8A5C movx @DPTR, A +ROM:8A5D acall ROM_8B37 +ROM:8A5F +ROM:8A5F ROM_8A5F: ; CODE XREF: ROM_887C+1AB↑j +ROM:8A5F mov DPTR, #0xF88F +ROM:8A62 movx A, @DPTR +ROM:8A63 inc A +ROM:8A64 movx @DPTR, A +ROM:8A65 ajmp ROM_8978 +ROM:8A67 ; --------------------------------------------------------------------------- +ROM:8A67 +ROM:8A67 ROM_8A67: ; CODE XREF: ROM_887C+105↑j +ROM:8A67 mov DPTR, #0xF891 +ROM:8A6A movx A, @DPTR +ROM:8A6B mov R7, A +ROM:8A6C mov DPTR, #0xF897 +ROM:8A6F movx A, @DPTR +ROM:8A70 add A, R7 +ROM:8A71 movx @DPTR, A +ROM:8A72 mov DPTR, #0xF896 +ROM:8A75 movx A, @DPTR +ROM:8A76 addc A, #0 +ROM:8A78 movx @DPTR, A +ROM:8A79 mov DPTR, #0xF890 +ROM:8A7C movx A, @DPTR +ROM:8A7D inc A +ROM:8A7E movx @DPTR, A +ROM:8A7F ajmp ROM_88DA +ROM:8A81 ; --------------------------------------------------------------------------- +ROM:8A81 +ROM:8A81 ROM_8A81: ; CODE XREF: ROM_887C+6B↑j +ROM:8A81 ; ROM_887C+F0↑j ... +ROM:8A81 ret +ROM:8A81 ; End of function ROM_887C +ROM:8A81 +ROM:8A82 +ROM:8A82 ; =============== S U B R O U T I N E ======================================= +ROM:8A82 +ROM:8A82 +ROM:8A82 ROM_8A82: ; CODE XREF: ROM_887C+FF↑p +ROM:8A82 ; ROM_887C+167↑p ... +ROM:8A82 movx A, @DPTR +ROM:8A83 mov R7, A +ROM:8A84 mov DPTR, #0xF88F +ROM:8A87 movx A, @DPTR +ROM:8A88 ret +ROM:8A88 ; End of function ROM_8A82 +ROM:8A88 +ROM:8A89 +ROM:8A89 ; =============== S U B R O U T I N E ======================================= +ROM:8A89 +ROM:8A89 +ROM:8A89 ROM_8A89: ; CODE XREF: ROM_887C+139↑p +ROM:8A89 ; ROM_887C+14D↑p ... +ROM:8A89 mov DP0H, A ; Data Pointer High Byte +ROM:8A8B mov A, DP0L ; Data Pointer Low Byte +ROM:8A8D add A, R7 +ROM:8A8E mov DP0L, A ; Data Pointer Low Byte +ROM:8A90 ret +ROM:8A90 ; End of function ROM_8A89 +ROM:8A90 +ROM:8A91 +ROM:8A91 ; =============== S U B R O U T I N E ======================================= +ROM:8A91 +ROM:8A91 +ROM:8A91 ROM_8A91: ; CODE XREF: ROM_887C+130↑p +ROM:8A91 ; ROM_887C+16B↑p +ROM:8A91 mul AB +ROM:8A92 add A, R5 +ROM:8A93 mov R7, A +ROM:8A94 mov A, R4 +ROM:8A95 mov B, #0xA ; B Register +ROM:8A98 mul AB +ROM:8A99 ret +ROM:8A99 ; End of function ROM_8A91 +ROM:8A99 +ROM:8A9A +ROM:8A9A ; =============== S U B R O U T I N E ======================================= +ROM:8A9A +ROM:8A9A +ROM:8A9A ROM_8A9A: ; CODE XREF: ROM_887C+143↑p +ROM:8A9A ; ROM_887C+17F↑p +ROM:8A9A mul AB +ROM:8A9B mov R7, A +ROM:8A9C mov A, R5 +ROM:8A9D mov R2, #0 +ROM:8A9F add A, R7 +ROM:8AA0 mov R7, A +ROM:8AA1 mov A, R2 +ROM:8AA2 addc A, B ; B Register +ROM:8AA4 mov R6, A +ROM:8AA5 mov B, #0x20 ; ' ' ; B Register +ROM:8AA8 mov A, R4 +ROM:8AA9 mul AB +ROM:8AAA ret +ROM:8AAA ; End of function ROM_8A9A +ROM:8AAA +ROM:8AAA ; --------------------------------------------------------------------------- +ROM:8AAB .byte 0x90 +ROM:8AAC .byte 0xF8 +ROM:8AAD .byte 0x70 ; p +ROM:8AAE .byte 0x71 ; q +ROM:8AAF .byte 0x2B ; + +ROM:8AB0 .byte 0xA3 +ROM:8AB1 .byte 0xEB +ROM:8AB2 .byte 0xF0 +ROM:8AB3 .byte 0x78 ; x +ROM:8AB4 .byte 0x76 ; v +ROM:8AB5 .byte 0x7C ; | +ROM:8AB6 .byte 0xF8 +ROM:8AB7 .byte 0x7D ; } +ROM:8AB8 .byte 1 +ROM:8AB9 .byte 0x7B ; { +ROM:8ABA .byte 0xFF +ROM:8ABB .byte 0x7A ; z +ROM:8ABC .byte 0x15 +ROM:8ABD .byte 0x79 ; y +ROM:8ABE .byte 0x8F +ROM:8ABF .byte 0xD1 +ROM:8AC0 .byte 0xFE +ROM:8AC1 .byte 0x90 +ROM:8AC2 .byte 0xF8 +ROM:8AC3 .byte 0x72 ; r +ROM:8AC4 .byte 0x12 +ROM:8AC5 .byte 0x5F ; _ +ROM:8AC6 .byte 0x71 ; q +ROM:8AC7 .byte 0x51 ; Q +ROM:8AC8 .byte 0xCF +ROM:8AC9 .byte 0x74 ; t +ROM:8ACA .byte 0xF +ROM:8ACB .byte 0x71 ; q +ROM:8ACC .byte 0x11 +ROM:8ACD .byte 1 +ROM:8ACE .byte 0x7C ; | +ROM:8ACF .byte 0x7A ; z +ROM:8AD0 .byte 0xF8 +ROM:8AD1 .byte 0x79 ; y +ROM:8AD2 .byte 0x76 ; v +ROM:8AD3 .byte 0x90 +ROM:8AD4 .byte 0xF8 +ROM:8AD5 .byte 0x8C +ROM:8AD6 .byte 0x22 ; " +ROM:8AD7 .byte 0x90 +ROM:8AD8 .byte 0xF8 +ROM:8AD9 .byte 0x70 ; p +ROM:8ADA .byte 0x71 ; q +ROM:8ADB .byte 0x2B ; + +ROM:8ADC .byte 0xA3 +ROM:8ADD .byte 0xEB +ROM:8ADE .byte 0xF1 +ROM:8ADF .byte 0x13 +ROM:8AE0 .byte 0xFD +ROM:8AE1 .byte 0xAC +ROM:8AE2 .byte 6 +ROM:8AE3 .byte 0xEC +ROM:8AE4 .byte 0x90 +ROM:8AE5 .byte 0xF8 +ROM:8AE6 .byte 0x7A ; z +ROM:8AE7 .byte 0xF0 +ROM:8AE8 .byte 0xED +ROM:8AE9 .byte 0xA3 +ROM:8AEA .byte 0xF0 +ROM:8AEB .byte 0x90 +ROM:8AEC .byte 0xF8 +ROM:8AED .byte 0x82 +ROM:8AEE .byte 0x74 ; t +ROM:8AEF .byte 1 +ROM:8AF0 .byte 0xF0 +ROM:8AF1 .byte 0xA3 +ROM:8AF2 .byte 0x74 ; t +ROM:8AF3 .byte 0xF8 +ROM:8AF4 .byte 0xF0 +ROM:8AF5 .byte 0xA3 +ROM:8AF6 .byte 0x74 ; t +ROM:8AF7 .byte 0x76 ; v +ROM:8AF8 .byte 0xF0 +ROM:8AF9 .byte 0x7B ; { +ROM:8AFA .byte 1 +ROM:8AFB .byte 0x7A ; z +ROM:8AFC .byte 0xF8 +ROM:8AFD .byte 0x79 ; y +ROM:8AFE .byte 0x7A ; z +ROM:8AFF .byte 0x7D ; } +ROM:8B00 .byte 2 +ROM:8B01 .byte 0x91 +ROM:8B02 .byte 0xFE +ROM:8B03 .byte 0x90 +ROM:8B04 .byte 0xF8 +ROM:8B05 .byte 0x72 ; r +ROM:8B06 .byte 0x12 +ROM:8B07 .byte 0x5F ; _ +ROM:8B08 .byte 0x71 ; q +ROM:8B09 .byte 0x51 ; Q +ROM:8B0A .byte 0xCF +ROM:8B0B .byte 0x74 ; t +ROM:8B0C .byte 4 +ROM:8B0D .byte 0x71 ; q +ROM:8B0E .byte 0x11 +ROM:8B0F .byte 1 +ROM:8B10 .byte 0x7C ; | +ROM:8B11 .byte 0xF0 +ROM:8B12 .byte 0x90 +ROM:8B13 .byte 0xF8 +ROM:8B14 .byte 0x74 ; t +ROM:8B15 .byte 0xE0 +ROM:8B16 .byte 0x90 +ROM:8B17 .byte 0xF8 +ROM:8B18 .byte 0x8D +ROM:8B19 .byte 0xF0 +ROM:8B1A .byte 0x90 +ROM:8B1B .byte 0xF8 +ROM:8B1C .byte 0x75 ; u +ROM:8B1D .byte 0xE0 +ROM:8B1E .byte 0x90 +ROM:8B1F .byte 0xF8 +ROM:8B20 .byte 0x8E +ROM:8B21 .byte 0xF0 +ROM:8B22 .byte 0x90 +ROM:8B23 .byte 0xF8 +ROM:8B24 .byte 0x70 ; p +ROM:8B25 .byte 0xE0 +ROM:8B26 .byte 0xFE +ROM:8B27 .byte 0xA3 +ROM:8B28 .byte 0xE0 +ROM:8B29 .byte 0xFF +ROM:8B2A .byte 0x22 ; " +ROM:8B2B +ROM:8B2B ; =============== S U B R O U T I N E ======================================= +ROM:8B2B +ROM:8B2B +ROM:8B2B ROM_8B2B: ; CODE XREF: ROM_53A4+3↑p +ROM:8B2B ; ROM_8B37+3↓p +ROM:8B2B mov A, R6 +ROM:8B2B ; End of function ROM_8B2B +ROM:8B2B +ROM:8B2C +ROM:8B2C ; =============== S U B R O U T I N E ======================================= +ROM:8B2C +ROM:8B2C +ROM:8B2C ROM_8B2C: ; CODE XREF: ROM_AD6A+1847↓p +ROM:8B2C movx @DPTR, A +ROM:8B2D inc DPTR +ROM:8B2E mov A, R7 +ROM:8B2F movx @DPTR, A +ROM:8B2F ; End of function ROM_8B2C +ROM:8B2F +ROM:8B30 +ROM:8B30 ; =============== S U B R O U T I N E ======================================= +ROM:8B30 +ROM:8B30 +ROM:8B30 ROM_8B30: ; CODE XREF: ROM_3588+22↑p +ROM:8B30 ; ROM_6FF1+6↑p ... +ROM:8B30 inc DPTR +ROM:8B31 mov A, R4 +ROM:8B32 movx @DPTR, A +ROM:8B33 inc DPTR +ROM:8B34 mov A, R5 +ROM:8B35 movx @DPTR, A +ROM:8B36 ret +ROM:8B36 ; End of function ROM_8B30 +ROM:8B36 +ROM:8B37 +ROM:8B37 ; =============== S U B R O U T I N E ======================================= +ROM:8B37 +ROM:8B37 +ROM:8B37 ROM_8B37: ; CODE XREF: ROM_887C+1E1↑p +ROM:8B37 ; ROM_8BAC+3↓p +ROM:8B37 mov DPTR, #0xF89C +ROM:8B3A acall ROM_8B2B +ROM:8B3C inc DPTR +ROM:8B3D mov A, R3 +ROM:8B3E movx @DPTR, A +ROM:8B3F clr A +ROM:8B40 mov R1, A +ROM:8B41 +ROM:8B41 ROM_8B41: ; CODE XREF: ROM_8B37+72↓j +ROM:8B41 mov DPTR, #0xF8A0 +ROM:8B44 movx A, @DPTR +ROM:8B45 mov R7, A +ROM:8B46 mov A, R1 +ROM:8B47 clr C +ROM:8B48 subb A, R7 +ROM:8B49 jnc ROM_8BAB +ROM:8B4B mov A, #0x78 ; 'x' +ROM:8B4D add A, R1 +ROM:8B4E mov DP0L, A ; Data Pointer Low Byte +ROM:8B50 clr A +ROM:8B51 addc A, #0xFE +ROM:8B53 mov DP0H, A ; Data Pointer High Byte +ROM:8B55 movx A, @DPTR +ROM:8B56 mov DPTR, #0xF8A3 +ROM:8B59 movx @DPTR, A +ROM:8B5A clr A +ROM:8B5B mov DPTR, #0xF8A2 +ROM:8B5E movx @DPTR, A +ROM:8B5F +ROM:8B5F ROM_8B5F: ; CODE XREF: ROM_8B37+6F↓j +ROM:8B5F mov DPTR, #0xF8A2 +ROM:8B62 lcall ROM_3FE4 +ROM:8B65 jnc ROM_8BA8 +ROM:8B67 inc DPTR +ROM:8B68 movx A, @DPTR +ROM:8B69 swap A +ROM:8B6A rrc A +ROM:8B6B rrc A +ROM:8B6C rrc A +ROM:8B6D anl A, #1 +ROM:8B6F jz ROM_8B99 +ROM:8B71 mov DPTR, #0xF89D +ROM:8B74 movx A, @DPTR +ROM:8B75 add A, R7 +ROM:8B76 mov R5, A +ROM:8B77 mov DPTR, #0xF89C +ROM:8B7A movx A, @DPTR +ROM:8B7B addc A, #0 +ROM:8B7D mov R4, A +ROM:8B7E mov A, R1 +ROM:8B7F mov B, #8 ; B Register +ROM:8B82 mul AB +ROM:8B83 add A, R5 +ROM:8B84 mov R7, A +ROM:8B85 mov A, B ; B Register +ROM:8B87 addc A, R4 +ROM:8B88 mov R6, A +ROM:8B89 mov DPTR, #0xF89E +ROM:8B8C movx A, @DPTR +ROM:8B8D mov R4, A +ROM:8B8E inc DPTR +ROM:8B8F movx A, @DPTR +ROM:8B90 mov R5, A +ROM:8B91 mov DPTR, #0xF8A1 +ROM:8B94 movx A, @DPTR +ROM:8B95 mov R3, A +ROM:8B96 lcall ROM_53A4 +ROM:8B99 +ROM:8B99 ROM_8B99: ; CODE XREF: ROM_8B37+38↑j +ROM:8B99 mov DPTR, #0xF8A3 +ROM:8B9C movx A, @DPTR +ROM:8B9D add A, ACC ; Accumulator +ROM:8B9F movx @DPTR, A +ROM:8BA0 mov DPTR, #0xF8A2 +ROM:8BA3 movx A, @DPTR +ROM:8BA4 inc A +ROM:8BA5 movx @DPTR, A +ROM:8BA6 sjmp ROM_8B5F +ROM:8BA8 ; --------------------------------------------------------------------------- +ROM:8BA8 +ROM:8BA8 ROM_8BA8: ; CODE XREF: ROM_8B37+2E↑j +ROM:8BA8 inc R1 +ROM:8BA9 sjmp ROM_8B41 +ROM:8BAB ; --------------------------------------------------------------------------- +ROM:8BAB +ROM:8BAB ROM_8BAB: ; CODE XREF: ROM_8B37+12↑j +ROM:8BAB ret +ROM:8BAB ; End of function ROM_8B37 +ROM:8BAB +ROM:8BAC +ROM:8BAC ; =============== S U B R O U T I N E ======================================= +ROM:8BAC +ROM:8BAC +ROM:8BAC ROM_8BAC: ; CODE XREF: ROM_549C+CF↑p +ROM:8BAC ; ROM_549C+11A↑p +ROM:8BAC movx @DPTR, A +ROM:8BAD mov R3, #2 +ROM:8BAF acall ROM_8B37 +ROM:8BB1 mov DPTR, #0xF859 +ROM:8BB4 movx A, @DPTR +ROM:8BB5 inc A +ROM:8BB6 movx @DPTR, A +ROM:8BB7 ret +ROM:8BB7 ; End of function ROM_8BAC +ROM:8BB7 +ROM:8BB8 +ROM:8BB8 ; =============== S U B R O U T I N E ======================================= +ROM:8BB8 +ROM:8BB8 +ROM:8BB8 ROM_8BB8: ; CODE XREF: ROM_436B-F08↑p +ROM:8BB8 ; ROM_436B+2C2↑p +ROM:8BB8 mov DPTR, #0xF841 +ROM:8BBB lcall Save_3_bytes_R3_R2_R1 +ROM:8BBE acall ROM_8B30 +ROM:8BC0 inc DPTR +ROM:8BC1 movx A, @DPTR +ROM:8BC2 xrl A, #1 +ROM:8BC4 jnz ROM_8BDF +ROM:8BC6 mov R6, A +ROM:8BC7 mov R7, #0x10 +ROM:8BC9 mov R5, #0xFF +ROM:8BCB mov R3, #1 +ROM:8BCD mov R2, #0xF8 +ROM:8BCF mov R1, #0x49 ; 'I' +ROM:8BD1 lcall code_EA0 +ROM:8BD4 mov DPTR, #0xF847 +ROM:8BD7 clr A +ROM:8BD8 movx @DPTR, A +ROM:8BD9 inc DPTR +ROM:8BDA mov A, #0x10 +ROM:8BDC movx @DPTR, A +ROM:8BDD sjmp ROM_8C0F +ROM:8BDF ; --------------------------------------------------------------------------- +ROM:8BDF +ROM:8BDF ROM_8BDF: ; CODE XREF: ROM_8BB8+C↑j +ROM:8BDF mov DPTR, #0xF841 +ROM:8BE2 lcall ROM_37C3 +ROM:8BE5 add A, #1 +ROM:8BE7 lcall ROM_39DB +ROM:8BEA mov R7, A +ROM:8BEB mov R6, #0 +ROM:8BED mov DPTR, #0xF841 +ROM:8BF0 acall ROM_8F05 +ROM:8BF2 mov R1, A +ROM:8BF3 clr A +ROM:8BF4 addc A, R2 +ROM:8BF5 mov R2, A +ROM:8BF6 mov DPTR, #0xF96E +ROM:8BF9 mov A, #1 +ROM:8BFB movx @DPTR, A +ROM:8BFC inc DPTR +ROM:8BFD mov A, #0xF8 +ROM:8BFF movx @DPTR, A +ROM:8C00 inc DPTR +ROM:8C01 mov A, #0x49 ; 'I' +ROM:8C03 movx @DPTR, A +ROM:8C04 lcall ROM_7424 +ROM:8C07 mov DPTR, #0xF847 +ROM:8C0A mov A, R6 +ROM:8C0B movx @DPTR, A +ROM:8C0C inc DPTR +ROM:8C0D mov A, R7 +ROM:8C0E movx @DPTR, A +ROM:8C0F +ROM:8C0F ROM_8C0F: ; CODE XREF: ROM_8BB8+25↑j +ROM:8C0F lcall load_0xFEA0_and_xor_0x04 +ROM:8C12 mov DPTR, #0xF847 +ROM:8C15 jnz ROM_8C24 +ROM:8C17 lcall ROM_5F71 +ROM:8C1A mov R2, #0xF8 +ROM:8C1C mov R1, #0x49 ; 'I' +ROM:8C1E mov R7, #1 +ROM:8C20 mov R6, #0 +ROM:8C22 sjmp ROM_8C2E +ROM:8C24 ; --------------------------------------------------------------------------- +ROM:8C24 +ROM:8C24 ROM_8C24: ; CODE XREF: ROM_8BB8+5D↑j +ROM:8C24 lcall ROM_5F71 +ROM:8C27 mov R2, #0xF8 +ROM:8C29 mov R1, #0x49 ; 'I' +ROM:8C2B clr A +ROM:8C2C mov R7, A +ROM:8C2D mov R6, A +ROM:8C2E +ROM:8C2E ROM_8C2E: ; CODE XREF: ROM_8BB8+6A↑j +ROM:8C2E ljmp ROM_755B +ROM:8C2E ; End of function ROM_8BB8 +ROM:8C2E +ROM:8C31 +ROM:8C31 ; =============== S U B R O U T I N E ======================================= +ROM:8C31 +ROM:8C31 +ROM:8C31 ROM_8C31: ; CODE XREF: ROM_4816-24A2↑p +ROM:8C31 ; ROM_3671+5C↑p ... +ROM:8C31 mov DPTR, #0xFB7A +ROM:8C34 movx A, @DPTR +ROM:8C35 jnz ROM_8C39 +ROM:8C37 inc DPTR +ROM:8C38 movx A, @DPTR +ROM:8C39 +ROM:8C39 ROM_8C39: ; CODE XREF: ROM_8C31+4↑j +ROM:8C39 jnz ROM_8C3D +ROM:8C3B ajmp ROM_8CEB +ROM:8C3D ; --------------------------------------------------------------------------- +ROM:8C3D +ROM:8C3D ROM_8C3D: ; CODE XREF: ROM_8C31:ROM_8C39↑j +ROM:8C3D mov DPTR, #0xDFE3 +ROM:8C40 acall ROM_8EB5 +ROM:8C42 lcall save_4_bytes_R4_R7_to_0xF85A +ROM:8C45 mov DPTR, #0xF85A +ROM:8C48 lcall load_4_bytes_R4_R5_R6_A +ROM:8C4B mov R7, A +ROM:8C4C mov R0, #8 +ROM:8C4E lcall ROM_372D +ROM:8C51 mov DPTR, #0xF85A +ROM:8C54 lcall load_4_bytes_R0_R1_R2_R3 +ROM:8C57 mov DPTR, #0xDFE4 +ROM:8C5A acall ROM_8CEC +ROM:8C5C lcall save_4_bytes_R4_R7_to_0xF85A +ROM:8C5F mov DPTR, #0xF85A +ROM:8C62 lcall load_4_bytes_R4_R5_R6_A +ROM:8C65 mov R7, A +ROM:8C66 mov R0, #8 +ROM:8C68 lcall ROM_372D +ROM:8C6B mov DPTR, #0xF85A +ROM:8C6E lcall load_4_bytes_R0_R1_R2_R3 +ROM:8C71 mov DPTR, #0xDFE5 +ROM:8C74 acall ROM_8CEC +ROM:8C76 lcall save_4_bytes_R4_R7_to_0xF85A +ROM:8C79 mov DPTR, #0xDFF3 +ROM:8C7C movx A, @DPTR +ROM:8C7D mov DPTR, #0xF85A +ROM:8C80 jnb ACC6, ROM_8C8E ; Accumulator +ROM:8C83 lcall load_4_bytes_R4_R5_R6_A +ROM:8C86 mov R7, A +ROM:8C87 mov R0, #5 +ROM:8C89 lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:8C8C sjmp ROM_8C98 +ROM:8C8E ; --------------------------------------------------------------------------- +ROM:8C8E +ROM:8C8E ROM_8C8E: ; CODE XREF: ROM_8C31+4F↑j +ROM:8C8E lcall load_4_bytes_R4_R5_R6_A +ROM:8C91 mov R7, A +ROM:8C92 lcall ROM_27A8 +ROM:8C95 lcall code_9F1 +ROM:8C98 +ROM:8C98 ROM_8C98: ; CODE XREF: ROM_8C31+5B↑j +ROM:8C98 lcall save_4_bytes_R4_R7_to_0xF85A +ROM:8C9B clr A +ROM:8C9C mov R3, #0x64 ; 'd' +ROM:8C9E mov R2, A +ROM:8C9F mov R1, A +ROM:8CA0 mov R0, A +ROM:8CA1 mov DPTR, #0xF85A +ROM:8CA4 lcall load_4_bytes_R4_R5_R6_A +ROM:8CA7 mov R7, A +ROM:8CA8 lcall code_A7C +ROM:8CAB acall ROM_8F1E +ROM:8CAD lcall ROM_47CF +ROM:8CB0 acall ROM_8B30 +ROM:8CB2 mov DPTR, #0xFB80 +ROM:8CB5 lcall load_4_bytes_R0_R1_R2_R3 +ROM:8CB8 push RAM_0 +ROM:8CBA push RAM_1 +ROM:8CBC push RAM_2 +ROM:8CBE push RAM_3 +ROM:8CC0 lcall ROM_27A8 +ROM:8CC3 mov DPTR, #0xF85A +ROM:8CC6 lcall load_4_bytes_R4_R5_R6_A +ROM:8CC9 mov R7, A +ROM:8CCA lcall code_A7C +ROM:8CCD pop RAM_3 +ROM:8CCF pop RAM_2 +ROM:8CD1 pop RAM_1 +ROM:8CD3 pop RAM_0 +ROM:8CD5 mov A, R3 +ROM:8CD6 add A, R7 +ROM:8CD7 mov R7, A +ROM:8CD8 mov A, R2 +ROM:8CD9 addc A, R6 +ROM:8CDA acall ROM_8F67 +ROM:8CDC mov DPTR, #0xFB80 +ROM:8CDF lcall save_4_bytes_R4_R7 +ROM:8CE2 mov DPTR, #0xF85A +ROM:8CE5 lcall load_4_bytes_R4_R5_R6_A +ROM:8CE8 mov R7, A +ROM:8CE9 acall ROM_8CF8 +ROM:8CEB +ROM:8CEB ROM_8CEB: ; CODE XREF: ROM_8C31+A↑j +ROM:8CEB ret +ROM:8CEB ; End of function ROM_8C31 +ROM:8CEB +ROM:8CEC +ROM:8CEC ; =============== S U B R O U T I N E ======================================= +ROM:8CEC +ROM:8CEC +ROM:8CEC ROM_8CEC: ; CODE XREF: ROM_8C31+29↑p +ROM:8CEC ; ROM_8C31+43↑p +ROM:8CEC movx A, @DPTR +ROM:8CED mov R7, A +ROM:8CEE mov A, R3 +ROM:8CEF orl A, R7 +ROM:8CEF ; End of function ROM_8CEC +ROM:8CEF +ROM:8CF0 +ROM:8CF0 ; =============== S U B R O U T I N E ======================================= +ROM:8CF0 +ROM:8CF0 +ROM:8CF0 ROM_8CF0: ; CODE XREF: ROM_8F6F+3B↓p +ROM:8CF0 mov R7, A +ROM:8CF1 mov A, R2 +ROM:8CF2 mov R6, A +ROM:8CF3 mov A, R1 +ROM:8CF4 mov R5, A +ROM:8CF5 mov A, R0 +ROM:8CF6 mov R4, A +ROM:8CF7 ret +ROM:8CF7 ; End of function ROM_8CF0 +ROM:8CF7 +ROM:8CF8 +ROM:8CF8 ; =============== S U B R O U T I N E ======================================= +ROM:8CF8 +ROM:8CF8 +ROM:8CF8 ROM_8CF8: ; CODE XREF: ROM_8C31+B8↑p +ROM:8CF8 mov DPTR, #0xF495 +ROM:8CFB ljmp save_4_bytes_R4_R7 +ROM:8CFB ; End of function ROM_8CF8 +ROM:8CFB +ROM:8CFB ; --------------------------------------------------------------------------- +ROM:8CFE .byte 0x90 +ROM:8CFF .byte 0xF8 +ROM:8D00 .byte 0x7E ; ~ +ROM:8D01 .byte 0x12 +ROM:8D02 .byte 0x3D ; = +ROM:8D03 .byte 0xA9 +ROM:8D04 .byte 0xD1 +ROM:8D05 .byte 0xF6 +ROM:8D06 .byte 0xA1 +ROM:8D07 .byte 0xB0 +ROM:8D08 .byte 0x90 +ROM:8D09 .byte 0xF8 +ROM:8D0A .byte 0x81 +ROM:8D0B .byte 0xD1 +ROM:8D0C .byte 0xB5 +ROM:8D0D .byte 0x90 +ROM:8D0E .byte 0xF8 +ROM:8D0F .byte 0x85 +ROM:8D10 .byte 0x12 +ROM:8D11 .byte 0x26 ; & +ROM:8D12 .byte 0x2C ; , +ROM:8D13 .byte 0xC3 +ROM:8D14 .byte 0x12 +ROM:8D15 .byte 0xB +ROM:8D16 .byte 0x1C +ROM:8D17 .byte 0x40 ; @ +ROM:8D18 .byte 2 +ROM:8D19 .byte 0xA1 +ROM:8D1A .byte 0xB9 +ROM:8D1B .byte 0x90 +ROM:8D1C .byte 0xF8 +ROM:8D1D .byte 0x85 +ROM:8D1E .byte 0x12 +ROM:8D1F .byte 0x1F +ROM:8D20 .byte 0xEB +ROM:8D21 .byte 0xFF +ROM:8D22 .byte 0x90 +ROM:8D23 .byte 0xF8 +ROM:8D24 .byte 0x7E ; ~ +ROM:8D25 .byte 0x12 +ROM:8D26 .byte 0x37 ; 7 +ROM:8D27 .byte 0xC3 +ROM:8D28 .byte 0x12 +ROM:8D29 .byte 0x37 ; 7 +ROM:8D2A .byte 0x87 +ROM:8D2B .byte 0x12 +ROM:8D2C .byte 8 +ROM:8D2D .byte 0x91 +ROM:8D2E .byte 0xC4 +ROM:8D2F .byte 0xB1 +ROM:8D30 .byte 0xC9 +ROM:8D31 .byte 0x94 +ROM:8D32 .byte 0x80 +ROM:8D33 .byte 0x50 ; P +ROM:8D34 .byte 6 +ROM:8D35 .byte 0xE0 +ROM:8D36 .byte 0x24 ; $ +ROM:8D37 .byte 0x30 ; 0 +ROM:8D38 .byte 0xF0 +ROM:8D39 .byte 0x80 +ROM:8D3A .byte 2 +ROM:8D3B .byte 0xB1 +ROM:8D3C .byte 0xC1 +ROM:8D3D .byte 0x90 +ROM:8D3E .byte 0xF8 +ROM:8D3F .byte 0x89 +ROM:8D40 .byte 0xE0 +ROM:8D41 .byte 0xFF +ROM:8D42 .byte 0xC0 +ROM:8D43 .byte 7 +ROM:8D44 .byte 0xB1 +ROM:8D45 .byte 0xBA +ROM:8D46 .byte 0x90 +ROM:8D47 .byte 0xF8 +ROM:8D48 .byte 0x85 +ROM:8D49 .byte 0x12 +ROM:8D4A .byte 0x26 ; & +ROM:8D4B .byte 0x2C ; , +ROM:8D4C .byte 0x12 +ROM:8D4D .byte 9 +ROM:8D4E .byte 0xF1 +ROM:8D4F .byte 0x90 +ROM:8D50 .byte 0xF8 +ROM:8D51 .byte 0x82 +ROM:8D52 .byte 0x12 +ROM:8D53 .byte 0x37 ; 7 +ROM:8D54 .byte 0xC3 +ROM:8D55 .byte 0x12 +ROM:8D56 .byte 0x37 ; 7 +ROM:8D57 .byte 0x87 +ROM:8D58 .byte 0xD0 +ROM:8D59 .byte 0xE0 +ROM:8D5A .byte 0x12 +ROM:8D5B .byte 8 +ROM:8D5C .byte 0xCC +ROM:8D5D .byte 0x90 +ROM:8D5E .byte 0xF8 +ROM:8D5F .byte 0x85 +ROM:8D60 .byte 0x12 +ROM:8D61 .byte 0x1F +ROM:8D62 .byte 0xEB +ROM:8D63 .byte 0xFF +ROM:8D64 .byte 0x90 +ROM:8D65 .byte 0xF8 +ROM:8D66 .byte 0x7E ; ~ +ROM:8D67 .byte 0x12 +ROM:8D68 .byte 0x37 ; 7 +ROM:8D69 .byte 0xC3 +ROM:8D6A .byte 0x12 +ROM:8D6B .byte 0x37 ; 7 +ROM:8D6C .byte 0x87 +ROM:8D6D .byte 0x12 +ROM:8D6E .byte 8 +ROM:8D6F .byte 0x91 +ROM:8D70 .byte 0xB1 +ROM:8D71 .byte 0xC9 +ROM:8D72 .byte 0x94 +ROM:8D73 .byte 0x80 +ROM:8D74 .byte 0x50 ; P +ROM:8D75 .byte 6 +ROM:8D76 .byte 0xE0 +ROM:8D77 .byte 0x24 ; $ +ROM:8D78 .byte 0x30 ; 0 +ROM:8D79 .byte 0xF0 +ROM:8D7A .byte 0x80 +ROM:8D7B .byte 2 +ROM:8D7C .byte 0xB1 +ROM:8D7D .byte 0xC1 +ROM:8D7E .byte 0x90 +ROM:8D7F .byte 0xF8 +ROM:8D80 .byte 0x89 +ROM:8D81 .byte 0xE0 +ROM:8D82 .byte 0xFF +ROM:8D83 .byte 0xC0 +ROM:8D84 .byte 7 +ROM:8D85 .byte 0xB1 +ROM:8D86 .byte 0xBA +ROM:8D87 .byte 0x90 +ROM:8D88 .byte 0xF8 +ROM:8D89 .byte 0x85 +ROM:8D8A .byte 0x12 +ROM:8D8B .byte 0x26 ; & +ROM:8D8C .byte 0x2C ; , +ROM:8D8D .byte 0x12 +ROM:8D8E .byte 9 +ROM:8D8F .byte 0xF1 +ROM:8D90 .byte 0xEF +ROM:8D91 .byte 0x24 ; $ +ROM:8D92 .byte 1 +ROM:8D93 .byte 0xFF +ROM:8D94 .byte 0xE4 +ROM:8D95 .byte 0x3E ; > +ROM:8D96 .byte 0xFE +ROM:8D97 .byte 0x90 +ROM:8D98 .byte 0xF8 +ROM:8D99 .byte 0x82 +ROM:8D9A .byte 0x12 +ROM:8D9B .byte 0x37 ; 7 +ROM:8D9C .byte 0xC3 +ROM:8D9D .byte 0x2F ; / +ROM:8D9E .byte 0xF9 +ROM:8D9F .byte 0xEA +ROM:8DA0 .byte 0x3E ; > +ROM:8DA1 .byte 0xFA +ROM:8DA2 .byte 0xD0 +ROM:8DA3 .byte 0xE0 +ROM:8DA4 .byte 0x12 +ROM:8DA5 .byte 8 +ROM:8DA6 .byte 0xCC +ROM:8DA7 .byte 0x90 +ROM:8DA8 .byte 0xF8 +ROM:8DA9 .byte 0x85 +ROM:8DAA .byte 0x12 +ROM:8DAB .byte 0x1F +ROM:8DAC .byte 0xE9 +ROM:8DAD .byte 0x12 +ROM:8DAE .byte 0x37 ; 7 +ROM:8DAF .byte 0x36 ; 6 +ROM:8DB0 .byte 0xFC +ROM:8DB1 .byte 0x90 +ROM:8DB2 .byte 0xF8 +ROM:8DB3 .byte 0x85 +ROM:8DB4 .byte 0x12 +ROM:8DB5 .byte 0xB +ROM:8DB6 .byte 0xE2 +ROM:8DB7 .byte 0xA1 +ROM:8DB8 .byte 8 +ROM:8DB9 .byte 0x22 ; " +ROM:8DBA +ROM:8DBA ; =============== S U B R O U T I N E ======================================= +ROM:8DBA +ROM:8DBA +ROM:8DBA Set_R7_R4_To_0x02: ; CODE XREF: ROM_AD6A+AD9↓p +ROM:8DBA clr A +ROM:8DBB mov R7, #2 +ROM:8DBD mov R6, A +ROM:8DBE mov R5, A +ROM:8DBF mov R4, A +ROM:8DC0 ret +ROM:8DC0 ; End of function Set_R7_R4_To_0x02 +ROM:8DC0 +ROM:8DC0 ; --------------------------------------------------------------------------- +ROM:8DC1 .byte 0x90 +ROM:8DC2 .byte 0xF8 +ROM:8DC3 .byte 0x89 +ROM:8DC4 .byte 0xE0 +ROM:8DC5 .byte 0x24 ; $ +ROM:8DC6 .byte 0x37 ; 7 +ROM:8DC7 .byte 0xF0 +ROM:8DC8 .byte 0x22 ; " +ROM:8DC9 .byte 0x54 ; T +ROM:8DCA .byte 0xF +ROM:8DCB .byte 0x90 +ROM:8DCC .byte 0xF8 +ROM:8DCD .byte 0x89 +ROM:8DCE .byte 0xF0 +ROM:8DCF .byte 0xD3 +ROM:8DD0 .byte 0x94 +ROM:8DD1 .byte 9 +ROM:8DD2 .byte 0x74 ; t +ROM:8DD3 .byte 0x80 +ROM:8DD4 .byte 0x22 ; " +ROM:8DD5 .byte 0x12 +ROM:8DD6 .byte 5 +ROM:8DD7 .byte 0x39 ; 9 +ROM:8DD8 .byte 0x90 +ROM:8DD9 .byte 0xF8 +ROM:8DDA .byte 0x74 ; t +ROM:8DDB .byte 0x74 ; t +ROM:8DDC .byte 1 +ROM:8DDD .byte 0xF0 +ROM:8DDE .byte 0xA3 +ROM:8DDF .byte 0x74 ; t +ROM:8DE0 .byte 0xFE +ROM:8DE1 .byte 0xF0 +ROM:8DE2 .byte 0xA3 +ROM:8DE3 .byte 0x74 ; t +ROM:8DE4 .byte 0x68 ; h +ROM:8DE5 .byte 0xF0 +ROM:8DE6 .byte 0x7D ; } +ROM:8DE7 .byte 8 +ROM:8DE8 .byte 0x90 +ROM:8DE9 .byte 0xF8 +ROM:8DEA .byte 0x70 ; p +ROM:8DEB .byte 0x12 +ROM:8DEC .byte 0x3D ; = +ROM:8DED .byte 0xA9 +ROM:8DEE .byte 0xD1 +ROM:8DEF .byte 0xF6 +ROM:8DF0 .byte 0xC1 +ROM:8DF1 .byte 0xAB +ROM:8DF2 .byte 0x90 +ROM:8DF3 .byte 0xF8 +ROM:8DF4 .byte 0x73 ; s +ROM:8DF5 .byte 0xD1 +ROM:8DF6 .byte 0xB5 +ROM:8DF7 .byte 0x90 +ROM:8DF8 .byte 0xF8 +ROM:8DF9 .byte 0x77 ; w +ROM:8DFA .byte 0x12 +ROM:8DFB .byte 0x26 ; & +ROM:8DFC .byte 0x2C ; , +ROM:8DFD .byte 0xC3 +ROM:8DFE .byte 0x12 +ROM:8DFF .byte 0xB +ROM:8E00 .byte 0x1C +ROM:8E01 .byte 0x40 ; @ +ROM:8E02 .byte 2 +ROM:8E03 .byte 0xC1 +ROM:8E04 .byte 0xB4 +ROM:8E05 .byte 0x90 +ROM:8E06 .byte 0xF8 +ROM:8E07 .byte 0x77 ; w +ROM:8E08 .byte 0x12 +ROM:8E09 .byte 0x1F +ROM:8E0A .byte 0xEB +ROM:8E0B .byte 0xFF +ROM:8E0C .byte 0x90 +ROM:8E0D .byte 0xF8 +ROM:8E0E .byte 0x70 ; p +ROM:8E0F .byte 0x12 +ROM:8E10 .byte 0x37 ; 7 +ROM:8E11 .byte 0xC3 +ROM:8E12 .byte 0x12 +ROM:8E13 .byte 0x37 ; 7 +ROM:8E14 .byte 0x87 +ROM:8E15 .byte 0x12 +ROM:8E16 .byte 8 +ROM:8E17 .byte 0x91 +ROM:8E18 .byte 0xC4 +ROM:8E19 .byte 0xD1 +ROM:8E1A .byte 0xDF +ROM:8E1B .byte 0x12 +ROM:8E1C .byte 0x26 ; & +ROM:8E1D .byte 0x2C ; , +ROM:8E1E .byte 0xD1 +ROM:8E1F .byte 0xD5 +ROM:8E20 .byte 0x50 ; P +ROM:8E21 .byte 7 +ROM:8E22 .byte 0x12 +ROM:8E23 .byte 0x1F +ROM:8E24 .byte 0xEB +ROM:8E25 .byte 0x24 ; $ +ROM:8E26 .byte 0x30 ; 0 +ROM:8E27 .byte 0x80 +ROM:8E28 .byte 5 +ROM:8E29 .byte 0x12 +ROM:8E2A .byte 0x1F +ROM:8E2B .byte 0xEB +ROM:8E2C .byte 0x24 ; $ +ROM:8E2D .byte 0x37 ; 7 +ROM:8E2E .byte 0x12 +ROM:8E2F .byte 0x37 ; 7 +ROM:8E30 .byte 0x38 ; 8 +ROM:8E31 .byte 0xD1 +ROM:8E32 .byte 0xBC +ROM:8E33 .byte 0xD1 +ROM:8E34 .byte 0xCC +ROM:8E35 .byte 0xC0 +ROM:8E36 .byte 7 +ROM:8E37 .byte 0xB1 +ROM:8E38 .byte 0xBA +ROM:8E39 .byte 0x90 +ROM:8E3A .byte 0xF8 +ROM:8E3B .byte 0x77 ; w +ROM:8E3C .byte 0x12 +ROM:8E3D .byte 0x26 ; & +ROM:8E3E .byte 0x2C ; , +ROM:8E3F .byte 0x12 +ROM:8E40 .byte 9 +ROM:8E41 .byte 0xF1 +ROM:8E42 .byte 0xC3 +ROM:8E43 .byte 0x74 ; t +ROM:8E44 .byte 0xE +ROM:8E45 .byte 0xD1 +ROM:8E46 .byte 0xC3 +ROM:8E47 .byte 0x12 +ROM:8E48 .byte 0x37 ; 7 +ROM:8E49 .byte 0xC3 +ROM:8E4A .byte 0x2F ; / +ROM:8E4B .byte 0xF9 +ROM:8E4C .byte 0xEA +ROM:8E4D .byte 0x3E ; > +ROM:8E4E .byte 0xFA +ROM:8E4F .byte 0xD0 +ROM:8E50 .byte 0xE0 +ROM:8E51 .byte 0x12 +ROM:8E52 .byte 8 +ROM:8E53 .byte 0xCC +ROM:8E54 .byte 0x90 +ROM:8E55 .byte 0xF8 +ROM:8E56 .byte 0x77 ; w +ROM:8E57 .byte 0x12 +ROM:8E58 .byte 0x1F +ROM:8E59 .byte 0xEB +ROM:8E5A .byte 0xFF +ROM:8E5B .byte 0x90 +ROM:8E5C .byte 0xF8 +ROM:8E5D .byte 0x70 ; p +ROM:8E5E .byte 0x12 +ROM:8E5F .byte 0x37 ; 7 +ROM:8E60 .byte 0xC3 +ROM:8E61 .byte 0x12 +ROM:8E62 .byte 0x37 ; 7 +ROM:8E63 .byte 0x87 +ROM:8E64 .byte 0x12 +ROM:8E65 .byte 8 +ROM:8E66 .byte 0x91 +ROM:8E67 .byte 0xD1 +ROM:8E68 .byte 0xDF +ROM:8E69 .byte 0x12 +ROM:8E6A .byte 0x26 ; & +ROM:8E6B .byte 0x2C ; , +ROM:8E6C .byte 0xD1 +ROM:8E6D .byte 0xD5 +ROM:8E6E .byte 0x50 ; P +ROM:8E6F .byte 7 +ROM:8E70 .byte 0x12 +ROM:8E71 .byte 0x1F +ROM:8E72 .byte 0xEB +ROM:8E73 .byte 0x24 ; $ +ROM:8E74 .byte 0x30 ; 0 +ROM:8E75 .byte 0x80 +ROM:8E76 .byte 5 +ROM:8E77 .byte 0x12 +ROM:8E78 .byte 0x1F +ROM:8E79 .byte 0xEB +ROM:8E7A .byte 0x24 ; $ +ROM:8E7B .byte 0x37 ; 7 +ROM:8E7C .byte 0x12 +ROM:8E7D .byte 0x37 ; 7 +ROM:8E7E .byte 0x38 ; 8 +ROM:8E7F .byte 0xD1 +ROM:8E80 .byte 0xBC +ROM:8E81 .byte 0xD1 +ROM:8E82 .byte 0xCC +ROM:8E83 .byte 0xC0 +ROM:8E84 .byte 7 +ROM:8E85 .byte 0xB1 +ROM:8E86 .byte 0xBA +ROM:8E87 .byte 0x90 +ROM:8E88 .byte 0xF8 +ROM:8E89 .byte 0x77 ; w +ROM:8E8A .byte 0x12 +ROM:8E8B .byte 0x26 ; & +ROM:8E8C .byte 0x2C ; , +ROM:8E8D .byte 0x12 +ROM:8E8E .byte 9 +ROM:8E8F .byte 0xF1 +ROM:8E90 .byte 0xC3 +ROM:8E91 .byte 0x74 ; t +ROM:8E92 .byte 0xF +ROM:8E93 .byte 0xD1 +ROM:8E94 .byte 0xC3 +ROM:8E95 .byte 0x12 +ROM:8E96 .byte 0x37 ; 7 +ROM:8E97 .byte 0xC3 +ROM:8E98 .byte 0x2F ; / +ROM:8E99 .byte 0xF9 +ROM:8E9A .byte 0xEA +ROM:8E9B .byte 0x3E ; > +ROM:8E9C .byte 0xFA +ROM:8E9D .byte 0xD0 +ROM:8E9E .byte 0xE0 +ROM:8E9F .byte 0x12 +ROM:8EA0 .byte 8 +ROM:8EA1 .byte 0xCC +ROM:8EA2 .byte 0x90 +ROM:8EA3 .byte 0xF8 +ROM:8EA4 .byte 0x77 ; w +ROM:8EA5 .byte 0x12 +ROM:8EA6 .byte 0x1F +ROM:8EA7 .byte 0xE9 +ROM:8EA8 .byte 0x12 +ROM:8EA9 .byte 0x37 ; 7 +ROM:8EAA .byte 0x36 ; 6 +ROM:8EAB .byte 0xFC +ROM:8EAC .byte 0x90 +ROM:8EAD .byte 0xF8 +ROM:8EAE .byte 0x77 ; w +ROM:8EAF .byte 0x12 +ROM:8EB0 .byte 0xB +ROM:8EB1 .byte 0xE2 +ROM:8EB2 .byte 0xA1 +ROM:8EB3 .byte 0xF2 +ROM:8EB4 .byte 0x22 ; " +ROM:8EB5 +ROM:8EB5 ; =============== S U B R O U T I N E ======================================= +ROM:8EB5 +ROM:8EB5 +ROM:8EB5 ROM_8EB5: ; CODE XREF: ROM_8C31+F↑p +ROM:8EB5 movx A, @DPTR +ROM:8EB6 mov R7, A +ROM:8EB7 clr A +ROM:8EB8 mov R4, A +ROM:8EB9 mov R5, A +ROM:8EBA mov R6, A +ROM:8EBB ret +ROM:8EBB ; End of function ROM_8EB5 +ROM:8EBB +ROM:8EBB ; --------------------------------------------------------------------------- +ROM:8EBC .byte 0xFC +ROM:8EBD .byte 0x90 +ROM:8EBE .byte 0xF8 +ROM:8EBF .byte 0x7B ; { +ROM:8EC0 .byte 2 +ROM:8EC1 .byte 0xB +ROM:8EC2 .byte 0xE2 +ROM:8EC3 .byte 0x9F +ROM:8EC4 .byte 0xFF +ROM:8EC5 .byte 0xE4 +ROM:8EC6 .byte 0x9E +ROM:8EC7 .byte 0xFE +ROM:8EC8 .byte 0x90 +ROM:8EC9 .byte 0xF8 +ROM:8ECA .byte 0x74 ; t +ROM:8ECB .byte 0x22 ; " +ROM:8ECC .byte 0x90 +ROM:8ECD .byte 0xF8 +ROM:8ECE .byte 0x7B ; { +ROM:8ECF .byte 0xA3 +ROM:8ED0 .byte 0xA3 +ROM:8ED1 .byte 0xA3 +ROM:8ED2 .byte 0xE0 +ROM:8ED3 .byte 0xFF +ROM:8ED4 .byte 0x22 ; " +ROM:8ED5 .byte 0xD3 +ROM:8ED6 .byte 0x12 +ROM:8ED7 .byte 0xB +ROM:8ED8 .byte 0x1C +ROM:8ED9 .byte 0x90 +ROM:8EDA .byte 0xF8 +ROM:8EDB .byte 0x7B ; { +ROM:8EDC .byte 0xE0 +ROM:8EDD .byte 0xFC +ROM:8EDE .byte 0x22 ; " +ROM:8EDF .byte 0x54 ; T +ROM:8EE0 .byte 0xF +ROM:8EE1 .byte 0xFF +ROM:8EE2 .byte 0xE4 +ROM:8EE3 .byte 0xFC +ROM:8EE4 .byte 0xFD +ROM:8EE5 .byte 0xFE +ROM:8EE6 .byte 0x90 +ROM:8EE7 .byte 0xF8 +ROM:8EE8 .byte 0x7B ; { +ROM:8EE9 .byte 0x12 +ROM:8EEA .byte 0xB +ROM:8EEB .byte 0xE2 +ROM:8EEC .byte 0xE4 +ROM:8EED .byte 0x7F ;  +ROM:8EEE .byte 9 +ROM:8EEF .byte 0xFE +ROM:8EF0 .byte 0xFD +ROM:8EF1 .byte 0xFC +ROM:8EF2 .byte 0x90 +ROM:8EF3 .byte 0xF8 +ROM:8EF4 .byte 0x7B ; { +ROM:8EF5 .byte 0x22 ; " +ROM:8EF6 .byte 0xA3 +ROM:8EF7 .byte 0xED +ROM:8EF8 .byte 0xF0 +ROM:8EF9 .byte 0xE4 +ROM:8EFA .byte 0xFF +ROM:8EFB .byte 0xFE +ROM:8EFC .byte 0xFD +ROM:8EFD .byte 0x22 ; " +ROM:8EFE +ROM:8EFE ; =============== S U B R O U T I N E ======================================= +ROM:8EFE +ROM:8EFE +ROM:8EFE ROM_8EFE: ; CODE XREF: ROM_7B9E+162↑p +ROM:8EFE mov R6, #0 +ROM:8F00 mov R7, #0xF +ROM:8F02 ljmp code_86B +ROM:8F02 ; End of function ROM_8EFE +ROM:8F02 +ROM:8F05 +ROM:8F05 ; =============== S U B R O U T I N E ======================================= +ROM:8F05 +ROM:8F05 +ROM:8F05 ROM_8F05: ; CODE XREF: ROM_3DCC+58↑p +ROM:8F05 ; ROM_8BB8+38↑p +ROM:8F05 inc DPTR +ROM:8F06 movx A, @DPTR +ROM:8F07 mov R2, A +ROM:8F08 inc DPTR +ROM:8F09 movx A, @DPTR +ROM:8F0A add A, #2 +ROM:8F0C ret +ROM:8F0C ; End of function ROM_8F05 +ROM:8F0C +ROM:8F0D +ROM:8F0D ; =============== S U B R O U T I N E ======================================= +ROM:8F0D +ROM:8F0D +ROM:8F0D ROM_8F0D: ; CODE XREF: ROM_7EE1+14↑p +ROM:8F0D movx @DPTR, A +ROM:8F0E inc RAM_1A +ROM:8F10 inc DPTR +ROM:8F11 mov A, RAM_1A +ROM:8F13 movx @DPTR, A +ROM:8F13 ; End of function ROM_8F0D +ROM:8F13 +ROM:8F14 +ROM:8F14 ; =============== S U B R O U T I N E ======================================= +ROM:8F14 +ROM:8F14 +ROM:8F14 load_PANID_ROM_8F14: ; CODE XREF: ROM_61D7+48↑p +ROM:8F14 mov DPTR, #0x53E +ROM:8F17 clr A +ROM:8F18 movc A, @A+DPTR +ROM:8F19 mov R6, A +ROM:8F1A mov A, #1 +ROM:8F1C movc A, @A+DPTR +ROM:8F1D ret +ROM:8F1D ; End of function load_PANID_ROM_8F14 +ROM:8F1D +ROM:8F1E +ROM:8F1E ; =============== S U B R O U T I N E ======================================= +ROM:8F1E +ROM:8F1E +ROM:8F1E ROM_8F1E: ; CODE XREF: ROM_3588+1C↑p +ROM:8F1E ; ROM_8C31+7A↑p +ROM:8F1E mov DPTR, #0xFB7D +ROM:8F21 movx A, @DPTR +ROM:8F22 add A, R7 +ROM:8F23 movx @DPTR, A +ROM:8F24 mov DPTR, #0xFB7C +ROM:8F27 movx A, @DPTR +ROM:8F28 addc A, R6 +ROM:8F29 movx @DPTR, A +ROM:8F2A movx A, @DPTR +ROM:8F2B mov R6, A +ROM:8F2C inc DPTR +ROM:8F2D movx A, @DPTR +ROM:8F2E mov R7, A +ROM:8F2F mov DPTR, #0xFB7A +ROM:8F32 ret +ROM:8F32 ; End of function ROM_8F1E +ROM:8F32 +ROM:8F33 +ROM:8F33 ; =============== S U B R O U T I N E ======================================= +ROM:8F33 +ROM:8F33 +ROM:8F33 ROM_8F33: ; CODE XREF: ROM_405D+FB↑p +ROM:8F33 ; ROM_405D+112↑p ... +ROM:8F33 lcall code_8F0 +ROM:8F36 mov R6, RAM_4 +ROM:8F38 mov R7, RAM_5 +ROM:8F3A mov R3, RAM_7 +ROM:8F3C mov R2, RAM_6 +ROM:8F3E clr A +ROM:8F3F mov R1, A +ROM:8F40 mov R0, A +ROM:8F41 mov DPTR, #0xFB7E +ROM:8F44 movx A, @DPTR +ROM:8F45 mov R7, A +ROM:8F46 mov DPTR, #0xFB7C +ROM:8F49 movx A, @DPTR +ROM:8F4A mov R4, A +ROM:8F4B inc DPTR +ROM:8F4C movx A, @DPTR +ROM:8F4D mov R5, A +ROM:8F4E clr C +ROM:8F4F mov A, R7 +ROM:8F50 subb A, R5 +ROM:8F51 mov R7, A +ROM:8F52 clr A +ROM:8F53 subb A, R4 +ROM:8F54 mov R6, A +ROM:8F55 mov A, R7 +ROM:8F56 add A, #0xA +ROM:8F58 mov R7, A +ROM:8F59 clr A +ROM:8F5A addc A, R6 +ROM:8F5B mov R6, A +ROM:8F5C clr A +ROM:8F5D rlc A +ROM:8F5E mov R5, A +ROM:8F5F clr A +ROM:8F60 rlc A +ROM:8F61 mov R4, A +ROM:8F62 mov A, R7 +ROM:8F63 add A, R3 +ROM:8F64 mov R7, A +ROM:8F65 mov A, R6 +ROM:8F66 addc A, R2 +ROM:8F66 ; End of function ROM_8F33 +ROM:8F66 +ROM:8F67 +ROM:8F67 ; =============== S U B R O U T I N E ======================================= +ROM:8F67 +ROM:8F67 +ROM:8F67 ROM_8F67: ; CODE XREF: ROM_2638+25↑p +ROM:8F67 ; ROM_2638+44↑p ... +ROM:8F67 mov R6, A +ROM:8F68 mov A, R1 +ROM:8F69 addc A, R5 +ROM:8F6A mov R5, A +ROM:8F6B mov A, R0 +ROM:8F6C addc A, R4 +ROM:8F6D mov R4, A +ROM:8F6E ret +ROM:8F6E ; End of function ROM_8F67 +ROM:8F6E +ROM:8F6F +ROM:8F6F ; =============== S U B R O U T I N E ======================================= +ROM:8F6F +ROM:8F6F +ROM:8F6F ROM_8F6F: ; CODE XREF: ROM_9D4E+158↓p +ROM:8F6F mov DPTR, #0xF839 +ROM:8F72 lcall ROM_47DD +ROM:8F75 mov R7, A +ROM:8F76 mov R6, A +ROM:8F77 mov R5, A +ROM:8F78 sjmp ROM_8FBB +ROM:8F7A ; --------------------------------------------------------------------------- +ROM:8F7A +ROM:8F7A ROM_8F7A: ; CODE XREF: ROM_8F6F+53↓j +ROM:8F7A mov DPTR, #0xF83B +ROM:8F7D lcall load_4_bytes_R4_R5_R6_A +ROM:8F80 mov R7, A +ROM:8F81 mov DPTR, #0xF843 +ROM:8F84 lcall load_4_bytes_R0_R1_R2_R3 +ROM:8F87 clr C +ROM:8F88 lcall code_B1C +ROM:8F8B jnc ROM_8FC4 +ROM:8F8D mov DPTR, #0xF83F +ROM:8F90 lcall load_4_bytes_R0_R1_R2_R3 +ROM:8F93 inc DPTR +ROM:8F94 lcall ROM_578E +ROM:8F97 mov R7, A +ROM:8F98 mov DPTR, #0xF839 +ROM:8F9B movx A, @DPTR +ROM:8F9C mov R4, A +ROM:8F9D inc DPTR +ROM:8F9E movx A, @DPTR +ROM:8F9F add A, R7 +ROM:8FA0 mov DP0L, A ; Data Pointer Low Byte +ROM:8FA2 mov A, R4 +ROM:8FA3 addc A, R6 +ROM:8FA4 mov DP0H, A ; Data Pointer High Byte +ROM:8FA6 movx A, @DPTR +ROM:8FA7 mov R7, A +ROM:8FA8 mov A, R3 +ROM:8FA9 xrl A, R7 +ROM:8FAA acall ROM_8CF0 +ROM:8FAC mov DPTR, #0xF83F +ROM:8FAF lcall save_4_bytes_R4_R7 +ROM:8FB2 mov DPTR, #0xF843 +ROM:8FB5 lcall load_4_bytes_R4_R5_R6_A +ROM:8FB8 lcall ROM_3736 +ROM:8FBB +ROM:8FBB ROM_8FBB: ; CODE XREF: ROM_8F6F+9↑j +ROM:8FBB mov R4, A +ROM:8FBC mov DPTR, #0xF843 +ROM:8FBF lcall save_4_bytes_R4_R7 +ROM:8FC2 sjmp ROM_8F7A +ROM:8FC4 ; --------------------------------------------------------------------------- +ROM:8FC4 +ROM:8FC4 ROM_8FC4: ; CODE XREF: ROM_8F6F+1C↑j +ROM:8FC4 mov DPTR, #0xF83F +ROM:8FC7 lcall load_4_bytes_R4_R5_R6_A +ROM:8FCA mov R7, A +ROM:8FCB ret +ROM:8FCB ; End of function ROM_8F6F +ROM:8FCB +ROM:8FCC +ROM:8FCC ; =============== S U B R O U T I N E ======================================= +ROM:8FCC +ROM:8FCC +ROM:8FCC ROM_8FCC: ; CODE XREF: ROM_436B:ROM_2F83↑p +ROM:8FCC mov DPTR, #0xF834 +ROM:8FCF lcall ROM_679A +ROM:8FD2 clr A +ROM:8FD3 mov DPTR, #0xF838 +ROM:8FD6 movx @DPTR, A +ROM:8FD7 mov DPTR, #0xF834 +ROM:8FDA movx A, @DPTR +ROM:8FDB mov R6, A +ROM:8FDC inc DPTR +ROM:8FDD movx A, @DPTR +ROM:8FDE mov R7, A +ROM:8FDF mov DP0L, A ; Data Pointer Low Byte +ROM:8FE1 mov DP0H, R6 ; Data Pointer High Byte +ROM:8FE3 inc DPTR +ROM:8FE4 movx A, @DPTR +ROM:8FE5 mov DPTR, #0xF837 +ROM:8FE8 movx @DPTR, A +ROM:8FE9 mov DP0L, R7 ; Data Pointer Low Byte +ROM:8FEB mov DP0H, R6 ; Data Pointer High Byte +ROM:8FED inc DPTR +ROM:8FEE inc DPTR +ROM:8FEF movx A, @DPTR +ROM:8FF0 mov R7, A +ROM:8FF1 mov DPTR, #0xF491 +ROM:8FF4 movx A, @DPTR +ROM:8FF5 mov R6, A +ROM:8FF6 mov A, R7 +ROM:8FF7 setb C +ROM:8FF8 subb A, R6 +ROM:8FF9 jnc ROM_8FFE +ROM:8FFB ljmp ROM_90B6 +ROM:8FFE ; --------------------------------------------------------------------------- +ROM:8FFE +ROM:8FFE ROM_8FFE: ; CODE XREF: ROM_8FCC+2D↑j +ROM:8FFE mov A, R7 +ROM:8FFF movx @DPTR, A +ROM:9000 inc DPTR +ROM:9001 movx A, @DPTR +ROM:9002 inc A +ROM:9003 movx @DPTR, A +ROM:9004 mov A, R7 +ROM:9005 xrl A, #1 +ROM:9007 jnz ROM_9057 +ROM:9009 mov DPTR, #0xF835 +ROM:900C movx A, @DPTR +ROM:900D add A, #8 +ROM:900F mov R7, A +ROM:9010 mov DPTR, #0xF834 +ROM:9013 lcall ROM_63F4 +ROM:9016 lcall ROM_4737 +ROM:9019 mov DPTR, #0xF835 +ROM:901C movx A, @DPTR +ROM:901D add A, #0xD +ROM:901F mov R7, A +ROM:9020 mov DPTR, #0xF834 +ROM:9023 lcall ROM_63F4 +ROM:9026 acall ROM_90CB +ROM:9028 mov DPTR, #0xF836 +ROM:902B lcall ROM_879C +ROM:902E acall ROM_90DD +ROM:9030 mov R3, #1 +ROM:9032 push RAM_3 +ROM:9034 push RAM_2 +ROM:9036 mov DPTR, #0xF55E +ROM:9039 lcall ROM_37C3 +ROM:903C mov R0, A +ROM:903D mov R4, RAM_2 +ROM:903F mov R5, RAM_3 +ROM:9041 pop RAM_2 +ROM:9043 pop RAM_3 +ROM:9045 lcall code_86B +ROM:9048 mov DPTR, #0xF836 +ROM:904B movx A, @DPTR +ROM:904C mov R7, A +ROM:904D mov DPTR, #0xF493 +ROM:9050 clr A +ROM:9051 movx @DPTR, A +ROM:9052 inc DPTR +ROM:9053 mov A, R7 +ROM:9054 movx @DPTR, A +ROM:9055 sjmp ROM_90A0 +ROM:9057 ; --------------------------------------------------------------------------- +ROM:9057 +ROM:9057 ROM_9057: ; CODE XREF: ROM_8FCC+3B↑j +ROM:9057 mov DPTR, #0xF836 +ROM:905A movx A, @DPTR +ROM:905B add A, #0xFD +ROM:905D mov R7, A +ROM:905E mov DPTR, #0xF838 +ROM:9061 movx @DPTR, A +ROM:9062 mov R6, #0 +ROM:9064 mov DPTR, #0xF835 +ROM:9067 movx A, @DPTR +ROM:9068 add A, #3 +ROM:906A mov R5, A +ROM:906B mov DPTR, #0xF834 +ROM:906E acall ROM_90C2 +ROM:9070 push RAM_3 +ROM:9072 push RAM_2 +ROM:9074 push RAM_1 +ROM:9076 mov DPTR, #0xF55E +ROM:9079 lcall ROM_37C3 +ROM:907C mov R1, A +ROM:907D mov DPTR, #0xF493 +ROM:9080 lcall ROM_7714 +ROM:9083 acall ROM_90B9 +ROM:9085 pop RAM_1 +ROM:9087 pop RAM_2 +ROM:9089 pop RAM_3 +ROM:908B lcall code_86B +ROM:908E mov DPTR, #0xF838 +ROM:9091 movx A, @DPTR +ROM:9092 mov R7, A +ROM:9093 mov DPTR, #0xF494 +ROM:9096 movx A, @DPTR +ROM:9097 add A, R7 +ROM:9098 movx @DPTR, A +ROM:9099 mov DPTR, #0xF493 +ROM:909C movx A, @DPTR +ROM:909D addc A, #0 +ROM:909F movx @DPTR, A +ROM:90A0 +ROM:90A0 ROM_90A0: ; CODE XREF: ROM_8FCC+89↑j +ROM:90A0 mov DPTR, #0xF837 +ROM:90A3 movx A, @DPTR +ROM:90A4 mov R7, A +ROM:90A5 mov DPTR, #0xF492 +ROM:90A8 movx A, @DPTR +ROM:90A9 cjne A, RAM_7, ROM_90B6 +ROM:90AC clr A +ROM:90AD mov DPTR, #0xF491 +ROM:90B0 lcall ROM_3F94 +ROM:90B3 mov R7, #1 +ROM:90B5 ret +ROM:90B6 ; --------------------------------------------------------------------------- +ROM:90B6 +ROM:90B6 ROM_90B6: ; CODE XREF: ROM_8FCC+2F↑j +ROM:90B6 ; ROM_8FCC+DD↑j +ROM:90B6 mov R7, #0 +ROM:90B8 ret +ROM:90B8 ; End of function ROM_8FCC +ROM:90B8 +ROM:90B9 +ROM:90B9 ; =============== S U B R O U T I N E ======================================= +ROM:90B9 +ROM:90B9 +ROM:90B9 ROM_90B9: ; CODE XREF: ROM_62A4+114↑p +ROM:90B9 ; ROM_8FCC+B7↑p +ROM:90B9 mov R1, A +ROM:90BA mov A, R2 +ROM:90BB addc A, R4 +ROM:90BC mov R0, RAM_1 +ROM:90BE mov R4, A +ROM:90BF mov R5, RAM_3 +ROM:90C1 ret +ROM:90C1 ; End of function ROM_90B9 +ROM:90C1 +ROM:90C2 +ROM:90C2 ; =============== S U B R O U T I N E ======================================= +ROM:90C2 +ROM:90C2 +ROM:90C2 ROM_90C2: ; CODE XREF: ROM_62A4+FE↑p +ROM:90C2 ; ROM_8FCC+A2↑p +ROM:90C2 movx A, @DPTR +ROM:90C3 addc A, #0 +ROM:90C5 mov R2, A +ROM:90C6 mov R1, RAM_5 +ROM:90C8 mov R3, #1 +ROM:90CA ret +ROM:90CA ; End of function ROM_90C2 +ROM:90CA +ROM:90CB +ROM:90CB ; =============== S U B R O U T I N E ======================================= +ROM:90CB +ROM:90CB +ROM:90CB ROM_90CB: ; CODE XREF: ROM_405D+1B↑p +ROM:90CB ; ROM_41B0+12↑p ... +ROM:90CB mov R0, #0x80 +ROM:90CD mov R4, #0xFB +ROM:90CF mov R5, #1 +ROM:90D1 mov R6, #0 +ROM:90D3 mov R7, #4 +ROM:90D5 ljmp code_86B +ROM:90D5 ; End of function ROM_90CB +ROM:90D5 +ROM:90D8 +ROM:90D8 ; =============== S U B R O U T I N E ======================================= +ROM:90D8 +ROM:90D8 +ROM:90D8 ROM_90D8: ; CODE XREF: ROM_90E5+D↓p +ROM:90D8 mov R6, #0 +ROM:90DA mov DPTR, #0xF846 +ROM:90DA ; End of function ROM_90D8 +ROM:90DA +ROM:90DD +ROM:90DD ; =============== S U B R O U T I N E ======================================= +ROM:90DD +ROM:90DD +ROM:90DD ROM_90DD: ; CODE XREF: ROM_39E2+10E↑p +ROM:90DD ; ROM_8FCC+62↑p +ROM:90DD movx A, @DPTR +ROM:90DE mov R4, A +ROM:90DF inc DPTR +ROM:90E0 movx A, @DPTR +ROM:90E1 mov R2, RAM_4 +ROM:90E3 mov R1, A +ROM:90E4 ret +ROM:90E4 ; End of function ROM_90DD +ROM:90E4 +ROM:90E5 +ROM:90E5 ; =============== S U B R O U T I N E ======================================= +ROM:90E5 +ROM:90E5 +ROM:90E5 ROM_90E5: ; CODE XREF: initialize_variables_code_1D51+6↑p +ROM:90E5 mov R5, #0xD +ROM:90E7 mov R7, #0 +ROM:90E9 mov R6, #0xFC +ROM:90EB acall ROM_91A2 +ROM:90ED lcall Save_4bytes_A_R3_R2_R1 +ROM:90F0 mov R7, RAM_5 +ROM:90F2 acall ROM_90D8 +ROM:90F4 mov R3, #0xFF +ROM:90F6 push RAM_3 +ROM:90F8 push RAM_2 +ROM:90FA inc DPTR +ROM:90FB lcall ROM_37C3 +ROM:90FE mov R0, A +ROM:90FF mov R4, RAM_2 +ROM:9101 mov R5, RAM_3 +ROM:9103 pop RAM_2 +ROM:9105 pop RAM_3 +ROM:9107 ljmp code_86B +ROM:9107 ; End of function ROM_90E5 +ROM:9107 +ROM:9107 ; --------------------------------------------------------------------------- +ROM:910A .byte 0x90 +ROM:910B .byte 0xF8 +ROM:910C .byte 0x46 ; F +ROM:910D .byte 0x12 +ROM:910E .byte 0x67 ; g +ROM:910F .byte 0x9A +ROM:9110 .byte 0xA3 +ROM:9111 .byte 0xEB +ROM:9112 .byte 0xF0 +ROM:9113 .byte 0x12 +ROM:9114 .byte 0x61 ; a +ROM:9115 .byte 0xCD +ROM:9116 .byte 0x7E ; ~ +ROM:9117 .byte 4 +ROM:9118 .byte 0xFF +ROM:9119 .byte 0x7D ; } +ROM:911A .byte 0xFF +ROM:911B .byte 0x90 +ROM:911C .byte 0xFE +ROM:911D .byte 0x8E +ROM:911E .byte 0xE0 +ROM:911F .byte 0xFA +ROM:9120 .byte 0xA3 +ROM:9121 .byte 0xE0 +ROM:9122 .byte 0xF9 +ROM:9123 .byte 0x7B ; { +ROM:9124 .byte 1 +ROM:9125 .byte 0x12 +ROM:9126 .byte 0xE +ROM:9127 .byte 0xA0 +ROM:9128 .byte 0x90 +ROM:9129 .byte 0xF8 +ROM:912A .byte 0x48 ; H +ROM:912B .byte 0xE0 +ROM:912C .byte 0xFF +ROM:912D .byte 0x11 +ROM:912E .byte 0xD8 +ROM:912F .byte 0x7B ; { +ROM:9130 .byte 1 +ROM:9131 .byte 0x90 +ROM:9132 .byte 0xFE +ROM:9133 .byte 0x8E +ROM:9134 .byte 0xE0 +ROM:9135 .byte 0xFC +ROM:9136 .byte 0xA3 +ROM:9137 .byte 0xE0 +ROM:9138 .byte 0xF8 +ROM:9139 .byte 0x7D ; } +ROM:913A .byte 1 +ROM:913B .byte 0x12 +ROM:913C .byte 8 +ROM:913D .byte 0x6B ; k +ROM:913E .byte 0xAB +ROM:913F .byte 0xFF +ROM:9140 .byte 0x75 ; u +ROM:9141 .byte 0xFF +ROM:9142 .byte 4 +ROM:9143 .byte 0xD3 +ROM:9144 .byte 0x10 +ROM:9145 .byte 0xAF +ROM:9146 .byte 1 +ROM:9147 .byte 0xC3 +ROM:9148 .byte 0xE4 +ROM:9149 .byte 0x33 ; 3 +ROM:914A .byte 0x90 +ROM:914B .byte 0xF8 +ROM:914C .byte 0x4A ; J +ROM:914D .byte 0xF0 +ROM:914E .byte 0x75 ; u +ROM:914F .byte 0xC7 +ROM:9150 .byte 0x38 ; 8 +ROM:9151 .byte 0x31 ; 1 +ROM:9152 .byte 0x77 ; w +ROM:9153 .byte 0x31 ; 1 +ROM:9154 .byte 0x6E ; n +ROM:9155 .byte 0x31 ; 1 +ROM:9156 .byte 0x9B +ROM:9157 .byte 0xD3 +ROM:9158 .byte 0x10 +ROM:9159 .byte 0xAF +ROM:915A .byte 1 +ROM:915B .byte 0xC3 +ROM:915C .byte 0xE4 +ROM:915D .byte 0x33 ; 3 +ROM:915E .byte 0x90 +ROM:915F .byte 0xF8 +ROM:9160 .byte 0x4A ; J +ROM:9161 .byte 0xF0 +ROM:9162 .byte 0x75 ; u +ROM:9163 .byte 0xC7 +ROM:9164 .byte 0x18 +ROM:9165 .byte 0x31 ; 1 +ROM:9166 .byte 0x77 ; w +ROM:9167 .byte 0x31 ; 1 +ROM:9168 .byte 0x6E ; n +ROM:9169 .byte 0xAF +ROM:916A .byte 3 +ROM:916B .byte 0x8F +ROM:916C .byte 0xFF +ROM:916D .byte 0x22 ; " +ROM:916E .byte 0x90 +ROM:916F .byte 0xF8 +ROM:9170 .byte 0x4A ; J +ROM:9171 .byte 0xE0 +ROM:9172 .byte 0x24 ; $ +ROM:9173 .byte 0xFF +ROM:9174 .byte 0x92 +ROM:9175 .byte 0xAF +ROM:9176 .byte 0x22 ; " +ROM:9177 .byte 0x75 ; u +ROM:9178 .byte 0xDF +ROM:9179 .byte 3 +ROM:917A .byte 0x90 +ROM:917B .byte 0xF8 +ROM:917C .byte 0x49 ; I +ROM:917D .byte 0xE0 +ROM:917E .byte 0xF5 +ROM:917F .byte 0xD8 +ROM:9180 .byte 0xE4 +ROM:9181 .byte 0xF5 +ROM:9182 .byte 0xDB +ROM:9183 .byte 0xF5 +ROM:9184 .byte 0xDC +ROM:9185 .byte 0x75 ; u +ROM:9186 .byte 0xDD +ROM:9187 .byte 0xFF +ROM:9188 .byte 0x75 ; u +ROM:9189 .byte 0xDE +ROM:918A .byte 3 +ROM:918B .byte 0x90 +ROM:918C .byte 0xFE +ROM:918D .byte 0x8E +ROM:918E .byte 0xE0 +ROM:918F .byte 0xFE +ROM:9190 .byte 0xA3 +ROM:9191 .byte 0xE0 +ROM:9192 .byte 0xF5 +ROM:9193 .byte 0xD9 +ROM:9194 .byte 0xEE +ROM:9195 .byte 0xF5 +ROM:9196 .byte 0xDA +ROM:9197 .byte 0x43 ; C +ROM:9198 .byte 0xD7 +ROM:9199 .byte 8 +ROM:919A .byte 0x22 ; " +ROM:919B .byte 0x7F ;  +ROM:919C .byte 0x88 +ROM:919D .byte 0x7E ; ~ +ROM:919E .byte 0x13 +ROM:919F .byte 2 +ROM:91A0 .byte 0x4C ; L +ROM:91A1 .byte 0xB7 +ROM:91A2 +ROM:91A2 ; =============== S U B R O U T I N E ======================================= +ROM:91A2 +ROM:91A2 +ROM:91A2 ROM_91A2: ; CODE XREF: ROM_7197↑p +ROM:91A2 ; ROM_90E5+6↑p +ROM:91A2 mov DPTR, #0xF846 +ROM:91A5 mov A, R6 +ROM:91A6 movx @DPTR, A +ROM:91A7 inc DPTR +ROM:91A8 mov A, R7 +ROM:91A9 ret +ROM:91A9 ; End of function ROM_91A2 +ROM:91A9 +ROM:91AA +ROM:91AA ; =============== S U B R O U T I N E ======================================= +ROM:91AA +ROM:91AA +ROM:91AA ROM_91AA: ; CODE XREF: ROM_436B-49↑p +ROM:91AA clr A +ROM:91AB mov R7, A +ROM:91AC mov DPTR, #0xF83B +ROM:91AF lcall Save_3_bytes_R3_R2_R1 +ROM:91B2 lcall ROM_8775 +ROM:91B5 acall ROM_90CB +ROM:91B7 mov DPTR, #0xF83B +ROM:91BA lcall ROM_37C3 +ROM:91BD add A, #0xE +ROM:91BF lcall ROM_39DB +ROM:91C2 mov R7, A +ROM:91C3 jz ROM_91CD +ROM:91C5 lcall ROM_27B1 +ROM:91C8 jnz ROM_91CD +ROM:91CA lcall code_1FF4 +ROM:91CD +ROM:91CD ROM_91CD: ; CODE XREF: ROM_91AA+19↑j +ROM:91CD ; ROM_91AA+1E↑j +ROM:91CD mov DPTR, #0xFDD1 +ROM:91D0 movx A, @DPTR +ROM:91D1 jz ROM_91D5 +ROM:91D3 clr A +ROM:91D4 movx @DPTR, A +ROM:91D5 +ROM:91D5 ROM_91D5: ; CODE XREF: ROM_91AA+27↑j +ROM:91D5 lcall ROM_2F47 +ROM:91D8 lcall ROM_67CF +ROM:91DB mov DPTR, #0xF837 +ROM:91DE lcall load_4_bytes_R4_R5_R6_A +ROM:91E1 mov R7, A +ROM:91E2 clr A +ROM:91E3 mov R3, #0x64 ; 'd' +ROM:91E5 lcall ROM_2E5C +ROM:91E8 lcall ROM_67CF +ROM:91EB mov DPTR, #0xF837 +ROM:91EE lcall load_4_bytes_R4_R5_R6_A +ROM:91F1 mov R7, A +ROM:91F2 ljmp ROM_2E66 +ROM:91F2 ; End of function ROM_91AA +ROM:91F2 +ROM:91F5 +ROM:91F5 ; =============== S U B R O U T I N E ======================================= +ROM:91F5 +ROM:91F5 +ROM:91F5 ROM_91F5: ; CODE XREF: ROM_2916+19B↑p +ROM:91F5 mov DPTR, #0xF49B +ROM:91F8 movx A, @DPTR +ROM:91F9 xrl A, #1 +ROM:91FB jnz ROM_920E +ROM:91FD lcall ROM_806B +ROM:9200 jnz ROM_9208 +ROM:9202 lcall ROM_27FB +ROM:9205 movx A, @DPTR +ROM:9206 mov R7, A +ROM:9207 ret +ROM:9208 ; --------------------------------------------------------------------------- +ROM:9208 +ROM:9208 ROM_9208: ; CODE XREF: ROM_91F5+B↑j +ROM:9208 mov DPTR, #0xF499 +ROM:920B movx A, @DPTR +ROM:920C mov R7, A +ROM:920D ret +ROM:920E ; --------------------------------------------------------------------------- +ROM:920E +ROM:920E ROM_920E: ; CODE XREF: ROM_91F5+6↑j +ROM:920E mov R7, #1 +ROM:9210 ret +ROM:9210 ; End of function ROM_91F5 +ROM:9210 +ROM:9211 +ROM:9211 ; =============== S U B R O U T I N E ======================================= +ROM:9211 +ROM:9211 +ROM:9211 ROM_9211: ; CODE XREF: ROM_2916+9F↑p +ROM:9211 clr A +ROM:9212 mov DPTR, #0xF847 +ROM:9215 movx @DPTR, A +ROM:9216 +ROM:9216 ROM_9216: ; CODE XREF: ROM_9211+25↓j +ROM:9216 mov DPTR, #0xF847 +ROM:9219 movx A, @DPTR +ROM:921A mov R7, A +ROM:921B mov R5, A +ROM:921C mov R4, #0 +ROM:921E lcall ROM_4B04 +ROM:9221 jnc ROM_9238 +ROM:9223 mov A, R7 +ROM:9224 acall ROM_928D +ROM:9226 lcall ROM_3758 +ROM:9229 lcall ROM_41A7 +ROM:922C movx A, @DPTR +ROM:922D subb A, R6 +ROM:922E jc ROM_9238 +ROM:9230 mov DPTR, #0xF847 +ROM:9233 movx A, @DPTR +ROM:9234 inc A +ROM:9235 movx @DPTR, A +ROM:9236 sjmp ROM_9216 +ROM:9238 ; --------------------------------------------------------------------------- +ROM:9238 +ROM:9238 ROM_9238: ; CODE XREF: ROM_9211+10↑j +ROM:9238 ; ROM_9211+1D↑j +ROM:9238 mov A, R5 +ROM:9239 xrl A, #3 +ROM:923B orl A, R4 +ROM:923C mov DPTR, #0xFDC6 +ROM:923F jnz ROM_925D +ROM:9241 lcall ROM_47C6 +ROM:9244 mov DPTR, #0xFB7C +ROM:9247 lcall ROM_3758 +ROM:924A mov DPTR, #0xFB7B +ROM:924D movx A, @DPTR +ROM:924E subb A, R7 +ROM:924F mov R7, A +ROM:9250 mov DPTR, #0xFB7A +ROM:9253 movx A, @DPTR +ROM:9254 subb A, R6 +ROM:9255 xch A, R7 +ROM:9256 add A, #0xA +ROM:9258 xch A, R7 +ROM:9259 addc A, #0 +ROM:925B sjmp ROM_9278 +ROM:925D ; --------------------------------------------------------------------------- +ROM:925D +ROM:925D ROM_925D: ; CODE XREF: ROM_9211+2E↑j +ROM:925D mov A, #6 +ROM:925F movx @DPTR, A +ROM:9260 lcall j_encryption_something_maybe_code_107D +ROM:9263 mov DPTR, #0xF847 +ROM:9266 movx A, @DPTR +ROM:9267 mov R3, A +ROM:9268 acall ROM_9353 +ROM:926A mov DP0H, A ; Data Pointer High Byte +ROM:926C lcall ROM_47CF +ROM:926F acall ROM_928C +ROM:9271 movx A, @DPTR +ROM:9272 mov R6, A +ROM:9273 inc DPTR +ROM:9274 acall ROM_938B +ROM:9276 acall ROM_9379 +ROM:9278 +ROM:9278 ROM_9278: ; CODE XREF: ROM_9211+4A↑j +ROM:9278 xch A, R7 +ROM:9279 add A, R5 +ROM:927A xch A, R7 +ROM:927B addc A, R4 +ROM:927C mov DPTR, #0xF848 +ROM:927F movx @DPTR, A +ROM:9280 inc DPTR +ROM:9281 mov A, R7 +ROM:9282 movx @DPTR, A +ROM:9283 mov DPTR, #0xF848 +ROM:9286 movx A, @DPTR +ROM:9287 mov R6, A +ROM:9288 inc DPTR +ROM:9289 movx A, @DPTR +ROM:928A mov R7, A +ROM:928B ret +ROM:928B ; End of function ROM_9211 +ROM:928B +ROM:928C +ROM:928C ; =============== S U B R O U T I N E ======================================= +ROM:928C +ROM:928C +ROM:928C ROM_928C: ; CODE XREF: ROM_9211+5E↑p +ROM:928C ; ROM_929B+71↓p +ROM:928C mov A, R3 +ROM:928C ; End of function ROM_928C +ROM:928C +ROM:928D +ROM:928D ; =============== S U B R O U T I N E ======================================= +ROM:928D +ROM:928D +ROM:928D ROM_928D: ; CODE XREF: ROM_9211+13↑p +ROM:928D add A, ACC ; Accumulator +ROM:928F add A, ACC ; Accumulator +ROM:9291 add A, #0x9C +ROM:9293 mov DP0L, A ; Data Pointer Low Byte +ROM:9295 clr A +ROM:9296 addc A, #0xFA +ROM:9298 mov DP0H, A ; Data Pointer High Byte +ROM:929A ret +ROM:929A ; End of function ROM_928D +ROM:929A +ROM:929B +ROM:929B ; =============== S U B R O U T I N E ======================================= +ROM:929B +ROM:929B +ROM:929B ROM_929B: ; CODE XREF: ROM_4737+6A↑p +ROM:929B ; ROM_9396+24↓p +ROM:929B mov R7, #0x96 +ROM:929D mov R6, #0 +ROM:929F mov DPTR, #0xFB7E +ROM:92A2 movx A, @DPTR +ROM:92A3 mov R5, A +ROM:92A4 clr C +ROM:92A5 mov DPTR, #0xFB7B +ROM:92A8 movx A, @DPTR +ROM:92A9 subb A, R5 +ROM:92AA mov R5, A +ROM:92AB acall ROM_9372 +ROM:92AD mov R4, A +ROM:92AE clr C +ROM:92AF mov A, R5 +ROM:92B0 subb A, R7 +ROM:92B1 mov R7, A +ROM:92B2 mov A, R4 +ROM:92B3 subb A, R6 +ROM:92B4 mov DPTR, #0xF84E +ROM:92B7 movx @DPTR, A +ROM:92B8 inc DPTR +ROM:92B9 mov A, R7 +ROM:92BA movx @DPTR, A +ROM:92BB mov R7, #0x10 +ROM:92BD mov R5, #0 +ROM:92BF mov R3, #1 +ROM:92C1 mov R2, #0xFA +ROM:92C3 mov R1, #0x98 +ROM:92C5 lcall code_EA0 +ROM:92C8 clr A +ROM:92C9 mov DPTR, #0xFA98 +ROM:92CC movx @DPTR, A +ROM:92CD inc DPTR +ROM:92CE movx @DPTR, A +ROM:92CF acall ROM_933F +ROM:92D1 mov DPTR, #0xFA9A +ROM:92D4 lcall ROM_47DD +ROM:92D7 mov R3, A +ROM:92D8 +ROM:92D8 ROM_92D8: ; CODE XREF: ROM_929B+94↓j +ROM:92D8 mov A, R3 +ROM:92D9 lcall ROM_4B04 +ROM:92DC jnc ROM_9331 +ROM:92DE acall ROM_9332 +ROM:92E0 mov DP0H, A ; Data Pointer High Byte +ROM:92E2 lcall ROM_3758 +ROM:92E5 mov DPTR, #0xF84F +ROM:92E8 movx A, @DPTR +ROM:92E9 subb A, R7 +ROM:92EA movx @DPTR, A +ROM:92EB mov DPTR, #0xF84E +ROM:92EE movx A, @DPTR +ROM:92EF subb A, R6 +ROM:92F0 movx @DPTR, A +ROM:92F1 acall ROM_9332 +ROM:92F3 acall ROM_9380 +ROM:92F5 mov A, R3 +ROM:92F6 add A, ACC ; Accumulator +ROM:92F8 add A, ACC ; Accumulator +ROM:92FA add A, #0x98 +ROM:92FC mov DP0L, A ; Data Pointer Low Byte +ROM:92FE clr A +ROM:92FF addc A, #0xFA +ROM:9301 mov DP0H, A ; Data Pointer High Byte +ROM:9303 movx A, @DPTR +ROM:9304 mov R4, A +ROM:9305 inc DPTR +ROM:9306 movx A, @DPTR +ROM:9307 add A, R7 +ROM:9308 mov R7, A +ROM:9309 mov A, R4 +ROM:930A addc A, R6 +ROM:930B mov R6, A +ROM:930C acall ROM_928C +ROM:930E mov A, R6 +ROM:930F movx @DPTR, A +ROM:9310 inc DPTR +ROM:9311 mov A, R7 +ROM:9312 movx @DPTR, A +ROM:9313 mov A, R3 +ROM:9314 xrl A, #2 +ROM:9316 jnz ROM_9322 +ROM:9318 mov DPTR, #0xF84E +ROM:931B movx A, @DPTR +ROM:931C mov R6, A +ROM:931D inc DPTR +ROM:931E movx A, @DPTR +ROM:931F mov R7, A +ROM:9320 sjmp ROM_9324 +ROM:9322 ; --------------------------------------------------------------------------- +ROM:9322 +ROM:9322 ROM_9322: ; CODE XREF: ROM_929B+7B↑j +ROM:9322 acall ROM_933F +ROM:9324 +ROM:9324 ROM_9324: ; CODE XREF: ROM_929B+85↑j +ROM:9324 mov A, R3 +ROM:9325 acall ROM_9353 +ROM:9327 mov DP0H, A ; Data Pointer High Byte +ROM:9329 mov A, R6 +ROM:932A movx @DPTR, A +ROM:932B inc DPTR +ROM:932C mov A, R7 +ROM:932D movx @DPTR, A +ROM:932E inc R3 +ROM:932F sjmp ROM_92D8 +ROM:9331 ; --------------------------------------------------------------------------- +ROM:9331 +ROM:9331 ROM_9331: ; CODE XREF: ROM_929B+41↑j +ROM:9331 ret +ROM:9331 ; End of function ROM_929B +ROM:9331 +ROM:9332 +ROM:9332 ; =============== S U B R O U T I N E ======================================= +ROM:9332 +ROM:9332 +ROM:9332 ROM_9332: ; CODE XREF: ROM_929B+43↑p +ROM:9332 ; ROM_929B+56↑p +ROM:9332 mov A, R3 +ROM:9333 add A, ACC ; Accumulator +ROM:9335 add A, ACC ; Accumulator +ROM:9337 add A, #0x9A +ROM:9339 mov DP0L, A ; Data Pointer Low Byte +ROM:933B clr A +ROM:933C addc A, #0xFA +ROM:933E ret +ROM:933E ; End of function ROM_9332 +ROM:933E +ROM:933F +ROM:933F ; =============== S U B R O U T I N E ======================================= +ROM:933F +ROM:933F +ROM:933F ROM_933F: ; CODE XREF: ROM_929B+34↑p +ROM:933F ; ROM_929B:ROM_9322↑p +ROM:933F mov DPTR, #0xF84F +ROM:9342 movx A, @DPTR +ROM:9343 add A, ACC ; Accumulator +ROM:9345 mov R7, A +ROM:9346 mov DPTR, #0xF84E +ROM:9349 movx A, @DPTR +ROM:934A rlc A +ROM:934B mov R6, A +ROM:934C mov R4, #0 +ROM:934E mov R5, #3 +ROM:9350 ljmp code_8F0 +ROM:9350 ; End of function ROM_933F +ROM:9350 +ROM:9353 +ROM:9353 ; =============== S U B R O U T I N E ======================================= +ROM:9353 +ROM:9353 +ROM:9353 ROM_9353: ; CODE XREF: ROM_9211+57↑p +ROM:9353 ; ROM_929B+8A↑p +ROM:9353 add A, ACC ; Accumulator +ROM:9355 add A, ACC ; Accumulator +ROM:9357 add A, #0x9E +ROM:9359 mov DP0L, A ; Data Pointer Low Byte +ROM:935B clr A +ROM:935C addc A, #0xFA +ROM:935E ret +ROM:935E ; End of function ROM_9353 +ROM:935E +ROM:935F +ROM:935F ; =============== S U B R O U T I N E ======================================= +ROM:935F +ROM:935F +ROM:935F ROM_935F: ; CODE XREF: ROM_405D+CE↑p +ROM:935F ; ROM_405D:ROM_4143↑p +ROM:935F lcall j_encryption_something_maybe_code_107D +ROM:9362 mov R2, RAM_6 +ROM:9364 mov R3, RAM_7 +ROM:9364 ; End of function ROM_935F +ROM:9364 +ROM:9366 +ROM:9366 ; =============== S U B R O U T I N E ======================================= +ROM:9366 +ROM:9366 +ROM:9366 ROM_9366: ; CODE XREF: ROM_4816-1B5D↑p +ROM:9366 ; ROM_4816-1B1F↑p ... +ROM:9366 mov DPTR, #0xFB7E +ROM:9369 movx A, @DPTR +ROM:936A mov R7, A +ROM:936B clr C +ROM:936C mov DPTR, #0xFB7B +ROM:936F movx A, @DPTR +ROM:9370 subb A, R7 +ROM:9371 mov R7, A +ROM:9371 ; End of function ROM_9366 +ROM:9371 +ROM:9372 +ROM:9372 ; =============== S U B R O U T I N E ======================================= +ROM:9372 +ROM:9372 +ROM:9372 ROM_9372: ; CODE XREF: ROM_929B+10↑p +ROM:9372 mov DPTR, #0xFB7A +ROM:9375 movx A, @DPTR +ROM:9376 subb A, #0 +ROM:9378 ret +ROM:9378 ; End of function ROM_9372 +ROM:9378 +ROM:9379 +ROM:9379 ; =============== S U B R O U T I N E ======================================= +ROM:9379 +ROM:9379 +ROM:9379 ROM_9379: ; CODE XREF: ROM_9211+65↑p +ROM:9379 ; ROM_AD6A+4E9↓p ... +ROM:9379 clr C +ROM:937A mov A, R7 +ROM:937B subb A, R3 +ROM:937C mov R7, A +ROM:937D mov A, R6 +ROM:937E subb A, R2 +ROM:937F ret +ROM:937F ; End of function ROM_9379 +ROM:937F +ROM:9380 +ROM:9380 ; =============== S U B R O U T I N E ======================================= +ROM:9380 +ROM:9380 +ROM:9380 ROM_9380: ; CODE XREF: ROM_436B-FF0↑p +ROM:9380 ; ROM_929B+58↑p +ROM:9380 mov DP0H, A ; Data Pointer High Byte +ROM:9382 movx A, @DPTR +ROM:9383 mov R6, A +ROM:9384 inc DPTR +ROM:9385 movx A, @DPTR +ROM:9386 mov R7, A +ROM:9387 ret +ROM:9387 ; End of function ROM_9380 +ROM:9387 +ROM:9388 +ROM:9388 ; =============== S U B R O U T I N E ======================================= +ROM:9388 +ROM:9388 +ROM:9388 ROM_9388: ; CODE XREF: ROM_2916+88↑p +ROM:9388 ; ROM_436B-21↑p +ROM:9388 mov DPTR, #0xFB7E +ROM:9388 ; End of function ROM_9388 +ROM:9388 +ROM:938B +ROM:938B ; =============== S U B R O U T I N E ======================================= +ROM:938B +ROM:938B +ROM:938B ROM_938B: ; CODE XREF: ROM_9211+63↑p +ROM:938B movx A, @DPTR +ROM:938B ; End of function ROM_938B +ROM:938B +ROM:938C +ROM:938C ; =============== S U B R O U T I N E ======================================= +ROM:938C +ROM:938C +ROM:938C ROM_938C: ; CODE XREF: ROM_41B0+B8↑p +ROM:938C mov R7, A +ROM:938C ; End of function ROM_938C +ROM:938C +ROM:938D +ROM:938D ; =============== S U B R O U T I N E ======================================= +ROM:938D +ROM:938D +ROM:938D ROM_938D: ; CODE XREF: ROM_6962+5D↑p +ROM:938D mov DPTR, #0xFB7C +ROM:9390 movx A, @DPTR +ROM:9391 mov R2, A +ROM:9392 inc DPTR +ROM:9393 movx A, @DPTR +ROM:9394 mov R3, A +ROM:9395 ret +ROM:9395 ; End of function ROM_938D +ROM:9395 +ROM:9396 +ROM:9396 ; =============== S U B R O U T I N E ======================================= +ROM:9396 +ROM:9396 +ROM:9396 ROM_9396: ; CODE XREF: ROM_4816-25C4↑p +ROM:9396 ; ROM_2916:ROM_2A72↑p ... +ROM:9396 mov A, #0xFF +ROM:9398 mov R7, A +ROM:9399 mov R6, A +ROM:939A mov R5, A +ROM:939B mov R4, A +ROM:939C mov DPTR, #0xF55A +ROM:939F lcall save_4_bytes_R4_R7 +ROM:93A2 mov A, #0xFF +ROM:93A4 mov R7, A +ROM:93A5 mov R6, A +ROM:93A6 mov R5, A +ROM:93A7 mov R4, A +ROM:93A8 mov DPTR, #0xF66C +ROM:93AB lcall save_4_bytes_R4_R7 +ROM:93AE mov A, #0xFF +ROM:93B0 mov R7, A +ROM:93B1 mov R6, A +ROM:93B2 mov R5, A +ROM:93B3 mov R4, A +ROM:93B4 mov DPTR, #0xF514 +ROM:93B7 lcall save_4_bytes_R4_R7 +ROM:93BA acall ROM_929B +ROM:93BC mov R6, #0 +ROM:93BE mov R7, #0x71 ; 'q' +ROM:93C0 mov R5, #0 +ROM:93C2 mov R3, #1 +ROM:93C4 mov R2, #0xF4 +ROM:93C6 mov R1, #0x99 +ROM:93C8 lcall code_EA0 +ROM:93CB mov R6, #0 +ROM:93CD mov R7, #8 +ROM:93CF mov R5, #0xFF +ROM:93D1 mov R3, #1 +ROM:93D3 mov R2, #0xF5 +ROM:93D5 mov R1, #0x32 ; '2' +ROM:93D7 lcall code_EA0 +ROM:93DA clr A +ROM:93DB mov DPTR, #0xF53B +ROM:93DE movx @DPTR, A +ROM:93DF mov DPTR, #0xF555 +ROM:93E2 movx @DPTR, A +ROM:93E3 ret +ROM:93E3 ; End of function ROM_9396 +ROM:93E3 +ROM:93E4 +ROM:93E4 ; =============== S U B R O U T I N E ======================================= +ROM:93E4 +ROM:93E4 +ROM:93E4 ROM_93E4: ; CODE XREF: ROM_61D7+8B↑p +ROM:93E4 ; ROM_816B+3↑p +ROM:93E4 mov R6, #0 +ROM:93E6 mov R7, #5 +ROM:93E8 mov R5, #0 +ROM:93EA mov R3, #1 +ROM:93EC mov R2, #0xFB +ROM:93EE mov R1, #0x7A ; 'z' +ROM:93F0 ljmp code_EA0 +ROM:93F0 ; End of function ROM_93E4 +ROM:93F0 +ROM:93F3 +ROM:93F3 ; =============== S U B R O U T I N E ======================================= +ROM:93F3 +ROM:93F3 +ROM:93F3 ROM_93F3: ; CODE XREF: ROM_6E68-31↑p +ROM:93F3 mov R3, RAM_7 +ROM:93F5 +ROM:93F5 ROM_93F5: ; CODE XREF: ROM_93F3+16↓j +ROM:93F5 mov R7, RAM_3 +ROM:93F7 dec R3 +ROM:93F8 mov A, R7 +ROM:93F9 jz ROM_9410 +ROM:93FB mov DPTR, #0xF82E +ROM:93FE mov A, #0x64 ; 'd' +ROM:9400 movx @DPTR, A +ROM:9401 +ROM:9401 ROM_9401: ; CODE XREF: ROM_93F3+1B↓j +ROM:9401 mov DPTR, #0xF82E +ROM:9404 movx A, @DPTR +ROM:9405 mov R7, A +ROM:9406 dec A +ROM:9407 movx @DPTR, A +ROM:9408 mov A, R7 +ROM:9409 jz ROM_93F5 +ROM:940B lcall ROM_5123 +ROM:940E sjmp ROM_9401 +ROM:9410 ; --------------------------------------------------------------------------- +ROM:9410 +ROM:9410 ROM_9410: ; CODE XREF: ROM_93F3+6↑j +ROM:9410 ret +ROM:9410 ; End of function ROM_93F3 +ROM:9410 +ROM:9410 ; --------------------------------------------------------------------------- +ROM:9411 .byte 0x90 +ROM:9412 .byte 0xF8 +ROM:9413 .byte 0x2E ; . +ROM:9414 .byte 0xEF +ROM:9415 .byte 0xF0 +ROM:9416 .byte 0xA3 +ROM:9417 .byte 0xED +ROM:9418 .byte 0xF0 +ROM:9419 .byte 0x78 ; x +ROM:941A .byte 0x30 ; 0 +ROM:941B .byte 0x7C ; | +ROM:941C .byte 0xF8 +ROM:941D .byte 0x7D ; } +ROM:941E .byte 1 +ROM:941F .byte 0x7B ; { +ROM:9420 .byte 0xFF +ROM:9421 .byte 0x7A ; z +ROM:9422 .byte 4 +ROM:9423 .byte 0x79 ; y +ROM:9424 .byte 0xF0 +ROM:9425 .byte 0x7E ; ~ +ROM:9426 .byte 0 +ROM:9427 .byte 0x7F ;  +ROM:9428 .byte 7 +ROM:9429 .byte 0x12 +ROM:942A .byte 8 +ROM:942B .byte 0x6B ; k +ROM:942C .byte 0x90 +ROM:942D .byte 0xF8 +ROM:942E .byte 0x2E ; . +ROM:942F .byte 0xE0 +ROM:9430 .byte 0x90 +ROM:9431 .byte 0xF8 +ROM:9432 .byte 0x30 ; 0 +ROM:9433 .byte 0xF0 +ROM:9434 .byte 0xA3 +ROM:9435 .byte 0x74 ; t +ROM:9436 .byte 4 +ROM:9437 .byte 0x91 +ROM:9438 .byte 0x65 ; e +ROM:9439 .byte 0x90 +ROM:943A .byte 0xF8 +ROM:943B .byte 0x2F ; / +ROM:943C .byte 0xE0 +ROM:943D .byte 0x90 +ROM:943E .byte 0xF8 +ROM:943F .byte 0x36 ; 6 +ROM:9440 .byte 0x91 +ROM:9441 .byte 0x47 ; G +ROM:9442 .byte 0x7D ; } +ROM:9443 .byte 7 +ROM:9444 .byte 2 +ROM:9445 .byte 0x6C ; l +ROM:9446 .byte 0xFA +ROM:9447 +ROM:9447 ; =============== S U B R O U T I N E ======================================= +ROM:9447 +ROM:9447 +ROM:9447 ROM_9447: ; CODE XREF: ROM_9487-29↓p +ROM:9447 movx @DPTR, A +ROM:9448 mov R3, #1 +ROM:944A mov R2, #0xF8 +ROM:944C mov R1, #0x30 ; '0' +ROM:944E ret +ROM:944E ; End of function ROM_9447 +ROM:944E +ROM:944F ; --------------------------------------------------------------------------- +ROM:944F ; START OF FUNCTION CHUNK FOR ROM_9487 +ROM:944F +ROM:944F ROM_944F: ; CODE XREF: ROM_9487+52↓j +ROM:944F mov DPTR, #0xF830 +ROM:9452 mov A, R7 +ROM:9453 movx @DPTR, A +ROM:9454 inc DPTR +ROM:9455 mov A, #2 +ROM:9457 acall ROM_9465 +ROM:9459 mov A, R4 +ROM:945A inc DPTR +ROM:945B movx @DPTR, A +ROM:945C inc DPTR +ROM:945D mov A, R5 +ROM:945E acall ROM_9447 +ROM:9460 mov R5, #8 +ROM:9462 ljmp ROM_6CFA +ROM:9462 ; END OF FUNCTION CHUNK FOR ROM_9487 +ROM:9465 +ROM:9465 ; =============== S U B R O U T I N E ======================================= +ROM:9465 +ROM:9465 +ROM:9465 ROM_9465: ; CODE XREF: ROM_9487-30↑p +ROM:9465 movx @DPTR, A +ROM:9466 mov DPTR, #0xFD38 +ROM:9469 movx A, @DPTR +ROM:946A mov DPTR, #0xF832 +ROM:946D movx @DPTR, A +ROM:946E mov DPTR, #0xFD39 +ROM:9471 movx A, @DPTR +ROM:9472 mov DPTR, #0xF833 +ROM:9475 movx @DPTR, A +ROM:9476 mov DPTR, #0xFD3B +ROM:9479 movx A, @DPTR +ROM:947A mov DPTR, #0xF834 +ROM:947D movx @DPTR, A +ROM:947E mov DPTR, #0xFD3A +ROM:9481 movx A, @DPTR +ROM:9482 mov DPTR, #0xF835 +ROM:9485 movx @DPTR, A +ROM:9486 ret +ROM:9486 ; End of function ROM_9465 +ROM:9486 +ROM:9487 +ROM:9487 ; =============== S U B R O U T I N E ======================================= +ROM:9487 +ROM:9487 +ROM:9487 ROM_9487: ; CODE XREF: ROM_6E68+71↑p +ROM:9487 +ROM:9487 ; FUNCTION CHUNK AT ROM:944F SIZE 00000016 BYTES +ROM:9487 +ROM:9487 mov R3, RAM_7 +ROM:9489 mov DPTR, #0xF828 +ROM:948C mov A, #0x80 +ROM:948E movx @DPTR, A +ROM:948F mov A, R3 +ROM:9490 add A, #0xAE +ROM:9492 jz ROM_94A0 +ROM:9494 add A, #0xFE +ROM:9496 jnz ROM_94A8 +ROM:9498 mov DPTR, #0xF829 +ROM:949B mov A, #2 +ROM:949D movx @DPTR, A +ROM:949E sjmp ROM_94AD +ROM:94A0 ; --------------------------------------------------------------------------- +ROM:94A0 +ROM:94A0 ROM_94A0: ; CODE XREF: ROM_9487+B↑j +ROM:94A0 mov DPTR, #0xF829 +ROM:94A3 mov A, #1 +ROM:94A5 movx @DPTR, A +ROM:94A6 sjmp ROM_94AD +ROM:94A8 ; --------------------------------------------------------------------------- +ROM:94A8 +ROM:94A8 ROM_94A8: ; CODE XREF: ROM_9487+F↑j +ROM:94A8 clr A +ROM:94A9 mov DPTR, #0xF829 +ROM:94AC movx @DPTR, A +ROM:94AD +ROM:94AD ROM_94AD: ; CODE XREF: ROM_9487+17↑j +ROM:94AD ; ROM_9487+1F↑j +ROM:94AD mov DPTR, #0xFD2E +ROM:94B0 movx A, @DPTR +ROM:94B1 mov R7, A +ROM:94B2 inc DPTR +ROM:94B3 movx A, @DPTR +ROM:94B4 mov DPTR, #0xF82A +ROM:94B7 xch A, R7 +ROM:94B8 movx @DPTR, A +ROM:94B9 inc DPTR +ROM:94BA mov A, R7 +ROM:94BB movx @DPTR, A +ROM:94BC mov DPTR, #0xFD2A +ROM:94BF lcall load_4_bytes_R4_R5_R6_A +ROM:94C2 mov R7, A +ROM:94C3 acall ROM_950D +ROM:94C5 mov DPTR, #0xFD30 +ROM:94C8 movx A, @DPTR +ROM:94C9 jnz ROM_94CD +ROM:94CB inc DPTR +ROM:94CC movx A, @DPTR +ROM:94CD +ROM:94CD ROM_94CD: ; CODE XREF: ROM_9487+42↑j +ROM:94CD jnz ROM_94DB +ROM:94CF mov R7, RAM_3 +ROM:94D1 mov DPTR, #0xFD2E +ROM:94D4 movx A, @DPTR +ROM:94D5 mov R4, A +ROM:94D6 inc DPTR +ROM:94D7 movx A, @DPTR +ROM:94D8 mov R5, A +ROM:94D9 ajmp ROM_944F +ROM:94DB ; --------------------------------------------------------------------------- +ROM:94DB +ROM:94DB ROM_94DB: ; CODE XREF: ROM_9487:ROM_94CD↑j +ROM:94DB mov R7, #1 +ROM:94DD lcall ROM_27D4 +ROM:94E0 mov DPTR, #0xFD31 +ROM:94E3 movx A, @DPTR +ROM:94E4 add A, #0xFF +ROM:94E6 movx @DPTR, A +ROM:94E7 mov DPTR, #0xFD30 +ROM:94EA movx A, @DPTR +ROM:94EB addc A, #0xFF +ROM:94ED lcall ROM_6F2F +ROM:94F0 mov R5, #8 +ROM:94F2 lcall ROM_7A07 +ROM:94F5 mov A, R7 +ROM:94F6 jnz ROM_9506 +ROM:94F8 mov DPTR, #0xFD2F +ROM:94FB movx A, @DPTR +ROM:94FC inc A +ROM:94FD movx @DPTR, A +ROM:94FE jnz ROM_9506 +ROM:9500 mov DPTR, #0xFD2E +ROM:9503 movx A, @DPTR +ROM:9504 inc A +ROM:9505 movx @DPTR, A +ROM:9506 +ROM:9506 ROM_9506: ; CODE XREF: ROM_9487+6F↑j +ROM:9506 ; ROM_9487+77↑j +ROM:9506 mov R5, #1 +ROM:9508 mov R7, #0x32 ; '2' +ROM:950A ljmp ROM_2FC0 +ROM:950A ; End of function ROM_9487 +ROM:950A +ROM:950D +ROM:950D ; =============== S U B R O U T I N E ======================================= +ROM:950D +ROM:950D +ROM:950D ROM_950D: ; CODE XREF: ROM_4816-2462↑p +ROM:950D ; ROM_4816-2452↑p ... +ROM:950D mov DPTR, #0xF82C +ROM:9510 ljmp save_4_bytes_R4_R7 +ROM:9510 ; End of function ROM_950D +ROM:9510 +ROM:9510 ; --------------------------------------------------------------------------- +ROM:9513 .byte 0x78 ; x +ROM:9514 .byte 0 +ROM:9515 .byte 0x7C ; | +ROM:9516 .byte 0 +ROM:9517 .byte 0x7D ; } +ROM:9518 .byte 0xFF +ROM:9519 .byte 0x7B ; { +ROM:951A .byte 0xFF +ROM:951B .byte 0x7A ; z +ROM:951C .byte 4 +ROM:951D .byte 0x79 ; y +ROM:951E .byte 0 +ROM:951F .byte 0x7E ; ~ +ROM:9520 .byte 0 +ROM:9521 .byte 0x7F ;  +ROM:9522 .byte 0x60 ; ` +ROM:9523 .byte 0x12 +ROM:9524 .byte 0xE +ROM:9525 .byte 0x7C ; | +ROM:9526 .byte 0xEF +ROM:9527 .byte 0x60 ; ` +ROM:9528 .byte 3 +ROM:9529 .byte 0x7F ;  +ROM:952A .byte 1 +ROM:952B .byte 0x22 ; " +ROM:952C .byte 0xE4 +ROM:952D .byte 0x90 +ROM:952E .byte 0xF8 +ROM:952F .byte 0x46 ; F +ROM:9530 .byte 0xF0 +ROM:9531 .byte 0xA3 +ROM:9532 .byte 0xF0 +ROM:9533 .byte 0x75 ; u +ROM:9534 .byte 0x1B +ROM:9535 .byte 4 +ROM:9536 .byte 0xF5 +ROM:9537 .byte 0x1C +ROM:9538 .byte 0x7E ; ~ +ROM:9539 .byte 0xDA +ROM:953A .byte 0x7F ;  +ROM:953B .byte 0x93 +ROM:953C .byte 0xFD +ROM:953D .byte 0x7C ; | +ROM:953E .byte 4 +ROM:953F .byte 0xC3 +ROM:9540 .byte 0xED +ROM:9541 .byte 0x9F +ROM:9542 .byte 0xEC +ROM:9543 .byte 0x9E +ROM:9544 .byte 0x50 ; P +ROM:9545 .byte 0x26 ; & +ROM:9546 .byte 5 +ROM:9547 .byte 0x1C +ROM:9548 .byte 0xE5 +ROM:9549 .byte 0x1C +ROM:954A .byte 0xAA +ROM:954B .byte 0x1B +ROM:954C .byte 0x70 ; p +ROM:954D .byte 2 +ROM:954E .byte 5 +ROM:954F .byte 0x1B +ROM:9550 .byte 0x14 +ROM:9551 .byte 0xF5 +ROM:9552 .byte 0x82 +ROM:9553 .byte 0x8A +ROM:9554 .byte 0x83 +ROM:9555 .byte 0xE4 +ROM:9556 .byte 0x93 +ROM:9557 .byte 0xFB +ROM:9558 .byte 0x90 +ROM:9559 .byte 0xF8 +ROM:955A .byte 0x47 ; G +ROM:955B .byte 0xE0 +ROM:955C .byte 0x2B ; + +ROM:955D .byte 0xF0 +ROM:955E .byte 0x90 +ROM:955F .byte 0xF8 +ROM:9560 .byte 0x46 ; F +ROM:9561 .byte 0xE0 +ROM:9562 .byte 0x34 ; 4 +ROM:9563 .byte 0 +ROM:9564 .byte 0xF0 +ROM:9565 .byte 0xD +ROM:9566 .byte 0xBD +ROM:9567 .byte 0 +ROM:9568 .byte 1 +ROM:9569 .byte 0xC +ROM:956A .byte 0x80 +ROM:956B .byte 0xD3 +ROM:956C .byte 0x90 +ROM:956D .byte 0xDA +ROM:956E .byte 0x94 +ROM:956F .byte 0x12 +ROM:9570 .byte 0x8F +ROM:9571 .byte 0x17 +ROM:9572 .byte 0xFF +ROM:9573 .byte 0x90 +ROM:9574 .byte 0xF8 +ROM:9575 .byte 0x46 ; F +ROM:9576 .byte 0xE0 +ROM:9577 .byte 0xB5 +ROM:9578 .byte 6 +ROM:9579 .byte 8 +ROM:957A .byte 0xA3 +ROM:957B .byte 0xE0 +ROM:957C .byte 0xB5 +ROM:957D .byte 7 +ROM:957E .byte 3 +ROM:957F .byte 0x7F ;  +ROM:9580 .byte 0 +ROM:9581 .byte 0x22 ; " +ROM:9582 .byte 0x7F ;  +ROM:9583 .byte 1 +ROM:9584 .byte 0x22 ; " +ROM:9585 .byte 0x90 +ROM:9586 .byte 0xDF +ROM:9587 .byte 0xC0 +ROM:9588 .byte 0x74 ; t +ROM:9589 .byte 0x1A +ROM:958A .byte 0xF0 +ROM:958B .byte 0x90 +ROM:958C .byte 0xDF +ROM:958D .byte 0xFD +ROM:958E .byte 0x74 ; t +ROM:958F .byte 0x33 ; 3 +ROM:9590 .byte 0xF0 +ROM:9591 .byte 0x90 +ROM:9592 .byte 0xDF +ROM:9593 .byte 0xC1 +ROM:9594 .byte 0x74 ; t +ROM:9595 .byte 2 +ROM:9596 .byte 0xF0 +ROM:9597 .byte 0xA3 +ROM:9598 .byte 0x74 ; t +ROM:9599 .byte 0xF7 +ROM:959A .byte 0xF0 +ROM:959B .byte 0xA3 +ROM:959C .byte 0x74 ; t +ROM:959D .byte 5 +ROM:959E .byte 0xF0 +ROM:959F .byte 0xA3 +ROM:95A0 .byte 0x74 ; t +ROM:95A1 .byte 0x35 ; 5 +ROM:95A2 .byte 0xF0 +ROM:95A3 .byte 0xA3 +ROM:95A4 .byte 0x74 ; t +ROM:95A5 .byte 0x24 ; $ +ROM:95A6 .byte 0xF0 +ROM:95A7 .byte 0xA3 +ROM:95A8 .byte 0x74 ; t +ROM:95A9 .byte 0x33 ; 3 +ROM:95AA .byte 0xF0 +ROM:95AB .byte 0xA3 +ROM:95AC .byte 0x74 ; t +ROM:95AD .byte 0x70 ; p +ROM:95AE .byte 0xF0 +ROM:95AF .byte 0x90 +ROM:95B0 .byte 0xDF +ROM:95B1 .byte 0xCA +ROM:95B2 .byte 0x74 ; t +ROM:95B3 .byte 0x58 ; X +ROM:95B4 .byte 0xF0 +ROM:95B5 .byte 0xA3 +ROM:95B6 .byte 0x74 ; t +ROM:95B7 .byte 4 +ROM:95B8 .byte 0xF0 +ROM:95B9 .byte 0x90 +ROM:95BA .byte 0xDF +ROM:95BB .byte 0xCD +ROM:95BC .byte 0x74 ; t +ROM:95BD .byte 0x11 +ROM:95BE .byte 0xF0 +ROM:95BF .byte 0x90 +ROM:95C0 .byte 0xDF +ROM:95C1 .byte 0xC9 +ROM:95C2 .byte 0x74 ; t +ROM:95C3 .byte 7 +ROM:95C4 .byte 0xF0 +ROM:95C5 .byte 0x90 +ROM:95C6 .byte 0xDF +ROM:95C7 .byte 0xCF +ROM:95C8 .byte 0x74 ; t +ROM:95C9 .byte 0x30 ; 0 +ROM:95CA .byte 0xF0 +ROM:95CB .byte 0xA3 +ROM:95CC .byte 0xE4 +ROM:95CD .byte 0xF0 +ROM:95CE .byte 0xA3 +ROM:95CF .byte 0x74 ; t +ROM:95D0 .byte 0x49 ; I +ROM:95D1 .byte 0xF0 +ROM:95D2 .byte 0xA3 +ROM:95D3 .byte 0x74 ; t +ROM:95D4 .byte 6 +ROM:95D5 .byte 0xF0 +ROM:95D6 .byte 0xA3 +ROM:95D7 .byte 0xF1 +ROM:95D8 .byte 0xAB +ROM:95D9 .byte 0x90 +ROM:95DA .byte 0xDF +ROM:95DB .byte 0xD7 +ROM:95DC .byte 0x74 ; t +ROM:95DD .byte 0x43 ; C +ROM:95DE .byte 0xF0 +ROM:95DF .byte 0x90 +ROM:95E0 .byte 0xDF +ROM:95E1 .byte 0xE2 +ROM:95E2 .byte 0x74 ; t +ROM:95E3 .byte 8 +ROM:95E4 .byte 0xF0 +ROM:95E5 .byte 0x90 +ROM:95E6 .byte 0xDF +ROM:95E7 .byte 0x83 +ROM:95E8 .byte 0x74 ; t +ROM:95E9 .byte 0xEA +ROM:95EA .byte 0xF0 +ROM:95EB .byte 0xD1 +ROM:95EC .byte 0xB7 +ROM:95ED .byte 0x90 +ROM:95EE .byte 0xDF +ROM:95EF .byte 0x50 ; P +ROM:95F0 .byte 0x74 ; t +ROM:95F1 .byte 0x13 +ROM:95F2 .byte 0xF0 +ROM:95F3 .byte 0x22 ; " +ROM:95F4 .byte 0x12 +ROM:95F5 .byte 0x6F ; o +ROM:95F6 .byte 0xA5 +ROM:95F7 .byte 0x7A ; z +ROM:95F8 .byte 5 +ROM:95F9 .byte 0x79 ; y +ROM:95FA .byte 0x16 +ROM:95FB .byte 0x12 +ROM:95FC .byte 0x5D ; ] +ROM:95FD .byte 0x6B ; k +ROM:95FE .byte 0xD1 +ROM:95FF .byte 0x88 +ROM:9600 .byte 0xB1 +ROM:9601 .byte 0x85 +ROM:9602 .byte 0xF1 +ROM:9603 .byte 0xB7 +ROM:9604 .byte 0 +ROM:9605 .byte 0 +ROM:9606 .byte 0 +ROM:9607 .byte 0 +ROM:9608 .byte 0 +ROM:9609 .byte 0xE4 +ROM:960A .byte 0xFF +ROM:960B .byte 0x7E ; ~ +ROM:960C .byte 0x64 ; d +ROM:960D .byte 0xAD +ROM:960E .byte 6 +ROM:960F .byte 0x1E +ROM:9610 .byte 0xED +ROM:9611 .byte 0x60 ; ` +ROM:9612 .byte 0x3B ; ; +ROM:9613 .byte 0x90 +ROM:9614 .byte 0xDF +ROM:9615 .byte 0x48 ; H +ROM:9616 .byte 0x74 ; t +ROM:9617 .byte 0xC3 +ROM:9618 .byte 0xF0 +ROM:9619 .byte 0x90 +ROM:961A .byte 0xDF +ROM:961B .byte 0xC8 +ROM:961C .byte 0x74 ; t +ROM:961D .byte 0xFF +ROM:961E .byte 0xF0 +ROM:961F .byte 0x74 ; t +ROM:9620 .byte 0x7F ;  +ROM:9621 .byte 0xF0 +ROM:9622 .byte 0 +ROM:9623 .byte 0 +ROM:9624 .byte 0 +ROM:9625 .byte 0xF1 +ROM:9626 .byte 0xC6 +ROM:9627 .byte 0xFD +ROM:9628 .byte 0xED +ROM:9629 .byte 0xC3 +ROM:962A .byte 0x94 +ROM:962B .byte 0x22 ; " +ROM:962C .byte 0x74 ; t +ROM:962D .byte 0x80 +ROM:962E .byte 0x94 +ROM:962F .byte 0x80 +ROM:9630 .byte 0x50 ; P +ROM:9631 .byte 0xB +ROM:9632 .byte 0x90 +ROM:9633 .byte 0xFC +ROM:9634 .byte 0xFB +ROM:9635 .byte 0x74 ; t +ROM:9636 .byte 0xA5 +ROM:9637 .byte 0xF0 +ROM:9638 .byte 0xD1 +ROM:9639 .byte 0x72 ; r +ROM:963A .byte 0xD +ROM:963B .byte 0x80 +ROM:963C .byte 0xEB +ROM:963D .byte 0xD1 +ROM:963E .byte 0x72 ; r +ROM:963F .byte 0xE0 +ROM:9640 .byte 0x24 ; $ +ROM:9641 .byte 0x80 +ROM:9642 .byte 0xFD +ROM:9643 .byte 0xC3 +ROM:9644 .byte 0x94 +ROM:9645 .byte 0x76 ; v +ROM:9646 .byte 0x74 ; t +ROM:9647 .byte 0x80 +ROM:9648 .byte 0x94 +ROM:9649 .byte 0x80 +ROM:964A .byte 0x40 ; @ +ROM:964B .byte 0xC1 +ROM:964C .byte 0x7F ;  +ROM:964D .byte 1 +ROM:964E .byte 0x90 +ROM:964F .byte 0xF8 +ROM:9650 .byte 0x29 ; ) +ROM:9651 .byte 0x74 ; t +ROM:9652 .byte 2 +ROM:9653 .byte 0xF0 +ROM:9654 .byte 0xE4 +ROM:9655 .byte 0x90 +ROM:9656 .byte 0xF8 +ROM:9657 .byte 0x2B ; + +ROM:9658 .byte 0xF0 +ROM:9659 .byte 0x90 +ROM:965A .byte 0xF8 +ROM:965B .byte 0x2A ; * +ROM:965C .byte 0xF0 +ROM:965D .byte 0x90 +ROM:965E .byte 0xF8 +ROM:965F .byte 0x2C ; , +ROM:9660 .byte 0xEF +ROM:9661 .byte 0x12 +ROM:9662 .byte 0x6F ; o +ROM:9663 .byte 0x2F ; / +ROM:9664 .byte 0x7D ; } +ROM:9665 .byte 5 +ROM:9666 .byte 0x12 +ROM:9667 .byte 0x6C ; l +ROM:9668 .byte 0xFA +ROM:9669 .byte 0xD1 +ROM:966A .byte 0x7B ; { +ROM:966B .byte 0x7F ;  +ROM:966C .byte 0x10 +ROM:966D .byte 0x7E ; ~ +ROM:966E .byte 0x27 ; ' +ROM:966F .byte 2 +ROM:9670 .byte 0x4C ; L +ROM:9671 .byte 0xB7 +ROM:9672 .byte 0x90 +ROM:9673 .byte 0xDF +ROM:9674 .byte 0x84 +ROM:9675 .byte 0xE0 +ROM:9676 .byte 0x90 +ROM:9677 .byte 0xFC +ROM:9678 .byte 0xFB +ROM:9679 .byte 0xF0 +ROM:967A .byte 0x22 ; " +ROM:967B .byte 0xD1 +ROM:967C .byte 0x88 +ROM:967D .byte 0x12 +ROM:967E .byte 0x7F ;  +ROM:967F .byte 0xB5 +ROM:9680 .byte 0x12 +ROM:9681 .byte 0x4B ; K +ROM:9682 .byte 0xC +ROM:9683 .byte 0x7F ;  +ROM:9684 .byte 1 +ROM:9685 .byte 2 +ROM:9686 .byte 0x27 ; ' +ROM:9687 .byte 0xD4 +ROM:9688 +ROM:9688 ; =============== S U B R O U T I N E ======================================= +ROM:9688 +ROM:9688 +ROM:9688 reset_radio: ; CODE XREF: wdt_radioreset_clk_ROM_9692+16↓p +ROM:9688 anl FSR_8F, #0xFB +ROM:968B orl FSR_8F, #4 +ROM:968E anl FSR_8F, #0xFB +ROM:9691 ret +ROM:9691 ; End of function reset_radio +ROM:9691 +ROM:9692 +ROM:9692 ; =============== S U B R O U T I N E ======================================= +ROM:9692 +ROM:9692 +ROM:9692 wdt_radioreset_clk_ROM_9692: ; CODE XREF: pretty_early_init_code_1DFD+D↑p +ROM:9692 lcall Watchdog_ROM_6112 +ROM:9695 mov R7, #0xA0 +ROM:9697 mov R6, #0xF +ROM:9699 lcall ROM_4CB7 +ROM:969C acall Radio_Unk_Cmd_ROM_97BE +ROM:969E mov R7, #0x20 ; ' ' +ROM:96A0 mov R6, #0x4E ; 'N' +ROM:96A2 lcall ROM_4CB7 +ROM:96A5 clr A +ROM:96A6 mov FSR_FF, A +ROM:96A8 acall reset_radio +ROM:96AA mov R7, #5 +ROM:96AC mov R6, A +ROM:96AD lcall ROM_4CB7 +ROM:96B0 mov FSR_B7, #0x2F ; '/' ; set clk +ROM:96B3 mov FSR_8E, #0x21 ; '!' +ROM:96B6 ret +ROM:96B6 ; End of function wdt_radioreset_clk_ROM_9692 +ROM:96B6 +ROM:96B7 +ROM:96B7 ; =============== S U B R O U T I N E ======================================= +ROM:96B7 +ROM:96B7 +ROM:96B7 ROM_96B7: ; CODE XREF: WriteRadioCalibration_ROM_96BE+D7↓p +ROM:96B7 mov DPTR, #0xDF86 +ROM:96BA mov A, #0x40 ; '@' +ROM:96BC movx @DPTR, A +ROM:96BD ret +ROM:96BD ; End of function ROM_96B7 +ROM:96BD +ROM:96BE +ROM:96BE ; =============== S U B R O U T I N E ======================================= +ROM:96BE +ROM:96BE +ROM:96BE WriteRadioCalibration_ROM_96BE: ; CODE XREF: Init_Radio_ROM_7FB5+10↑p +ROM:96BE mov DPTR, #0x1D0F +ROM:96C1 clr A +ROM:96C2 movc A, @A+DPTR +ROM:96C3 mov DPTR, #0xDFC1 +ROM:96C6 movx @DPTR, A +ROM:96C7 mov DPTR, #0x1D10 +ROM:96CA clr A +ROM:96CB movc A, @A+DPTR +ROM:96CC mov DPTR, #0xDFC2 +ROM:96CF movx @DPTR, A +ROM:96D0 mov DPTR, #0x1D11 +ROM:96D3 clr A +ROM:96D4 movc A, @A+DPTR +ROM:96D5 mov DPTR, #0xDFC3 +ROM:96D8 movx @DPTR, A +ROM:96D9 mov DPTR, #0x1D12 +ROM:96DC clr A +ROM:96DD movc A, @A+DPTR +ROM:96DE mov DPTR, #0xDFC4 +ROM:96E1 movx @DPTR, A +ROM:96E2 mov DPTR, #0x1D13 +ROM:96E5 clr A +ROM:96E6 movc A, @A+DPTR +ROM:96E7 mov DPTR, #0xDFC5 +ROM:96EA movx @DPTR, A +ROM:96EB mov DPTR, #0x1D14 +ROM:96EE clr A +ROM:96EF movc A, @A+DPTR +ROM:96F0 mov DPTR, #0xDFC6 +ROM:96F3 movx @DPTR, A +ROM:96F4 mov DPTR, #0x1D15 +ROM:96F7 clr A +ROM:96F8 movc A, @A+DPTR +ROM:96F9 mov DPTR, #0xDFC7 +ROM:96FC movx @DPTR, A +ROM:96FD mov DPTR, #0x1D16 +ROM:9700 clr A +ROM:9701 movc A, @A+DPTR +ROM:9702 mov DPTR, #0xDFCA +ROM:9705 movx @DPTR, A +ROM:9706 mov DPTR, #0x1D17 +ROM:9709 clr A +ROM:970A movc A, @A+DPTR +ROM:970B mov DPTR, #0xDFCB +ROM:970E movx @DPTR, A +ROM:970F mov DPTR, #0x1D18 +ROM:9712 clr A +ROM:9713 movc A, @A+DPTR +ROM:9714 anl A, #7 +ROM:9716 mov R7, A +ROM:9717 mov DPTR, #0xDFCD +ROM:971A movx A, @DPTR +ROM:971B anl A, #0xF8 +ROM:971D orl A, R7 +ROM:971E movx @DPTR, A +ROM:971F mov DPTR, #0x1D19 +ROM:9722 clr A +ROM:9723 movc A, @A+DPTR +ROM:9724 mov DPTR, #0xDFC9 +ROM:9727 movx @DPTR, A +ROM:9728 mov DPTR, #0x1D1A +ROM:972B clr A +ROM:972C movc A, @A+DPTR +ROM:972D mov DPTR, #0xDFCF +ROM:9730 movx @DPTR, A +ROM:9731 mov DPTR, #0x1D1B +ROM:9734 clr A +ROM:9735 movc A, @A+DPTR +ROM:9736 mov DPTR, #0xDFD0 +ROM:9739 movx @DPTR, A +ROM:973A mov DPTR, #0x1D1C +ROM:973D clr A +ROM:973E movc A, @A+DPTR +ROM:973F mov DPTR, #0xDFD1 +ROM:9742 movx @DPTR, A +ROM:9743 mov DPTR, #0x1D1D +ROM:9746 clr A +ROM:9747 movc A, @A+DPTR +ROM:9748 mov DPTR, #0xDFD2 +ROM:974B movx @DPTR, A +ROM:974C mov DPTR, #0x1D1E +ROM:974F clr A +ROM:9750 movc A, @A+DPTR +ROM:9751 mov DPTR, #0xDFD7 +ROM:9754 movx @DPTR, A +ROM:9755 mov DPTR, #0x1D1F +ROM:9758 clr A +ROM:9759 movc A, @A+DPTR +ROM:975A mov DPTR, #0xDFE2 +ROM:975D movx @DPTR, A +ROM:975E mov DPTR, #0x1D20 +ROM:9761 clr A +ROM:9762 movc A, @A+DPTR +ROM:9763 mov DPTR, #0xDF83 +ROM:9766 movx @DPTR, A +ROM:9767 mov DPTR, #0xDFC8 +ROM:976A mov A, #0x7F +ROM:976C movx @DPTR, A +ROM:976D mov DPTR, #0xDF81 +ROM:9770 mov A, #0xF0 +ROM:9772 movx @DPTR, A +ROM:9773 mov DPTR, #0xDFD8 +ROM:9776 clr A +ROM:9777 movx @DPTR, A +ROM:9778 mov DPTR, #0xDF9D +ROM:977B mov A, #0x3F ; '?' +ROM:977D movx @DPTR, A +ROM:977E mov DPTR, #0xDFA1 +ROM:9781 mov A, #4 +ROM:9783 movx @DPTR, A +ROM:9784 mov DPTR, #0xDF94 +ROM:9787 mov A, #0x7F +ROM:9789 movx @DPTR, A +ROM:978A mov DPTR, #0xDFCE +ROM:978D mov A, #0x55 ; 'U' +ROM:978F movx @DPTR, A +ROM:9790 mov DPTR, #0xDFD3 +ROM:9793 acall ROM_97AB +ROM:9795 acall ROM_96B7 +ROM:9797 mov DPTR, #0xDF95 +ROM:979A mov A, #8 +ROM:979C movx @DPTR, A +ROM:979D inc DPTR +ROM:979E mov A, #0xD3 +ROM:97A0 movx @DPTR, A +ROM:97A1 mov DPTR, #0xDF70 +ROM:97A4 clr A +ROM:97A5 movx @DPTR, A +ROM:97A6 inc DPTR +ROM:97A7 mov A, #0x40 ; '@' +ROM:97A9 movx @DPTR, A +ROM:97AA ret +ROM:97AA ; End of function WriteRadioCalibration_ROM_96BE +ROM:97AA +ROM:97AB +ROM:97AB ; =============== S U B R O U T I N E ======================================= +ROM:97AB +ROM:97AB +ROM:97AB ROM_97AB: ; CODE XREF: WriteRadioCalibration_ROM_96BE+D5↑p +ROM:97AB mov A, #0x30 ; '0' +ROM:97AD movx @DPTR, A +ROM:97AE inc DPTR +ROM:97AF mov A, #0xCC +ROM:97B1 movx @DPTR, A +ROM:97B2 inc DPTR +ROM:97B3 mov A, #0xF6 +ROM:97B5 movx @DPTR, A +ROM:97B6 ret +ROM:97B6 ; End of function ROM_97AB +ROM:97B6 +ROM:97B7 +ROM:97B7 ; =============== S U B R O U T I N E ======================================= +ROM:97B7 +ROM:97B7 +ROM:97B7 Single_Radio_Cmd_ROM_97B7: ; CODE XREF: Init_Radio_ROM_7FB5+D↑p +ROM:97B7 ; RadioSomething_ROM_A697+3↓p +ROM:97B7 mov DPTR, #0xDF48 +ROM:97BA mov A, #0xC1 +ROM:97BC movx @DPTR, A +ROM:97BD ret +ROM:97BD ; End of function Single_Radio_Cmd_ROM_97B7 +ROM:97BD +ROM:97BE +ROM:97BE ; =============== S U B R O U T I N E ======================================= +ROM:97BE +ROM:97BE +ROM:97BE Radio_Unk_Cmd_ROM_97BE: ; CODE XREF: ROM_6849+D1↑p +ROM:97BE ; wdt_radioreset_clk_ROM_9692+A↑p +ROM:97BE mov DPTR, #0xDFF0 +ROM:97C1 movx A, @DPTR +ROM:97C2 orl A, #0x80 +ROM:97C4 movx @DPTR, A +ROM:97C5 ret +ROM:97C5 ; End of function Radio_Unk_Cmd_ROM_97BE +ROM:97C5 +ROM:97C6 +ROM:97C6 ; =============== S U B R O U T I N E ======================================= +ROM:97C6 +ROM:97C6 +ROM:97C6 Radio_RX_CMD_ROM_97C6: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+53↑p +ROM:97C6 mov DPTR, #0xDF48 +ROM:97C9 mov A, #0xC2 +ROM:97CB movx @DPTR, A +ROM:97CC clr A +ROM:97CD ret +ROM:97CD ; End of function Radio_RX_CMD_ROM_97C6 +ROM:97CD +ROM:97CD ; --------------------------------------------------------------------------- +ROM:97CE .byte 0x12 +ROM:97CF .byte 0x6F ; o +ROM:97D0 .byte 0xA5 +ROM:97D1 .byte 0x7A ; z +ROM:97D2 .byte 5 +ROM:97D3 .byte 0x79 ; y +ROM:97D4 .byte 0x1E +ROM:97D5 .byte 0x12 +ROM:97D6 .byte 0x6F ; o +ROM:97D7 .byte 0x87 +ROM:97D8 .byte 0x90 +ROM:97D9 .byte 0xFD +ROM:97DA .byte 0 +ROM:97DB .byte 0xE0 +ROM:97DC .byte 0x64 ; d +ROM:97DD .byte 2 +ROM:97DE .byte 0x70 ; p +ROM:97DF .byte 3 +ROM:97E0 .byte 0x12 +ROM:97E1 .byte 0x5F ; _ +ROM:97E2 .byte 0xC9 +ROM:97E3 .byte 0x12 +ROM:97E4 .byte 0x67 ; g +ROM:97E5 .byte 0x90 +ROM:97E6 .byte 0x7B ; { +ROM:97E7 .byte 1 +ROM:97E8 .byte 0x7A ; z +ROM:97E9 .byte 0xFD +ROM:97EA .byte 0x79 ; y +ROM:97EB .byte 0x32 ; 2 +ROM:97EC .byte 0x12 +ROM:97ED .byte 0xE +ROM:97EE .byte 0xA0 +ROM:97EF .byte 0x90 +ROM:97F0 .byte 0xFD +ROM:97F1 .byte 1 +ROM:97F2 .byte 0x12 +ROM:97F3 .byte 0x76 ; v +ROM:97F4 .byte 0x63 ; c +ROM:97F5 .byte 0x90 +ROM:97F6 .byte 0xFD +ROM:97F7 .byte 0x38 ; 8 +ROM:97F8 .byte 0xF0 +ROM:97F9 .byte 0xA3 +ROM:97FA .byte 0xED +ROM:97FB .byte 0xF0 +ROM:97FC .byte 0x90 +ROM:97FD .byte 0xFD +ROM:97FE .byte 3 +ROM:97FF .byte 0xE0 +ROM:9800 .byte 0xFF +ROM:9801 .byte 0x90 +ROM:9802 .byte 0xFC +ROM:9803 .byte 0xFD +ROM:9804 .byte 0x11 +ROM:9805 .byte 0x67 ; g +ROM:9806 .byte 0x90 +ROM:9807 .byte 0xFC +ROM:9808 .byte 0xFD +ROM:9809 .byte 0xF0 +ROM:980A .byte 0x90 +ROM:980B .byte 0xFD +ROM:980C .byte 4 +ROM:980D .byte 0xE0 +ROM:980E .byte 0xFF +ROM:980F .byte 0x90 +ROM:9810 .byte 0xFC +ROM:9811 .byte 0xFE +ROM:9812 .byte 0xE0 +ROM:9813 .byte 0x2F ; / +ROM:9814 .byte 0xF0 +ROM:9815 .byte 0x90 +ROM:9816 .byte 0xFC +ROM:9817 .byte 0xFD +ROM:9818 .byte 0xE0 +ROM:9819 .byte 0x34 ; 4 +ROM:981A .byte 0 +ROM:981B .byte 0x11 +ROM:981C .byte 0x5D ; ] +ROM:981D .byte 0xA3 +ROM:981E .byte 0x12 +ROM:981F .byte 0x67 ; g +ROM:9820 .byte 0x32 ; 2 +ROM:9821 .byte 0x12 +ROM:9822 .byte 0x27 ; ' +ROM:9823 .byte 0xCA +ROM:9824 .byte 0x90 +ROM:9825 .byte 0xF8 +ROM:9826 .byte 0x28 ; ( +ROM:9827 .byte 0x74 ; t +ROM:9828 .byte 0x49 ; I +ROM:9829 .byte 0xF0 +ROM:982A .byte 0x90 +ROM:982B .byte 0xFD +ROM:982C .byte 0 +ROM:982D .byte 0xE0 +ROM:982E .byte 0xFF +ROM:982F .byte 0x7E ; ~ +ROM:9830 .byte 0 +ROM:9831 .byte 0x64 ; d +ROM:9832 .byte 4 +ROM:9833 .byte 0x70 ; p +ROM:9834 .byte 8 +ROM:9835 .byte 0x90 +ROM:9836 .byte 0xF8 +ROM:9837 .byte 0x29 ; ) +ROM:9838 .byte 0x74 ; t +ROM:9839 .byte 5 +ROM:983A .byte 0xF0 +ROM:983B .byte 0x80 +ROM:983C .byte 0x13 +ROM:983D .byte 0xEF +ROM:983E .byte 0x64 ; d +ROM:983F .byte 2 +ROM:9840 .byte 0x4E ; N +ROM:9841 .byte 0x70 ; p +ROM:9842 .byte 8 +ROM:9843 .byte 0x90 +ROM:9844 .byte 0xF8 +ROM:9845 .byte 0x29 ; ) +ROM:9846 .byte 0x74 ; t +ROM:9847 .byte 3 +ROM:9848 .byte 0xF0 +ROM:9849 .byte 0x80 +ROM:984A .byte 5 +ROM:984B .byte 0xE4 +ROM:984C .byte 0x90 +ROM:984D .byte 0xF8 +ROM:984E .byte 0x29 ; ) +ROM:984F .byte 0xF0 +ROM:9850 .byte 0x12 +ROM:9851 .byte 0x6F ; o +ROM:9852 .byte 0x3C ; < +ROM:9853 .byte 0xE4 +ROM:9854 .byte 0xA3 +ROM:9855 .byte 0x12 +ROM:9856 .byte 0x6F ; o +ROM:9857 .byte 0x2F ; / +ROM:9858 .byte 0x7D ; } +ROM:9859 .byte 5 +ROM:985A .byte 2 +ROM:985B .byte 0x6C ; l +ROM:985C .byte 0xFA +ROM:985D .byte 0xF0 +ROM:985E .byte 0x90 +ROM:985F .byte 0xFD +ROM:9860 .byte 5 +ROM:9861 .byte 0xE0 +ROM:9862 .byte 0x90 +ROM:9863 .byte 0xFC +ROM:9864 .byte 0xFC +ROM:9865 .byte 0xF0 +ROM:9866 .byte 0x22 ; " +ROM:9867 .byte 0xE4 +ROM:9868 .byte 0xF0 +ROM:9869 .byte 0xA3 +ROM:986A .byte 0xEF +ROM:986B .byte 0xF0 +ROM:986C .byte 0xE0 +ROM:986D .byte 0xF8 +ROM:986E .byte 0xE4 +ROM:986F .byte 0xF0 +ROM:9870 .byte 0xE8 +ROM:9871 .byte 0x22 ; " +ROM:9872 .byte 0x12 +ROM:9873 .byte 4 +ROM:9874 .byte 0xF +ROM:9875 .byte 0xFD +ROM:9876 .byte 0xAC +ROM:9877 .byte 6 +ROM:9878 .byte 0x90 +ROM:9879 .byte 0xFD +ROM:987A .byte 0xB4 +ROM:987B .byte 0xE0 +ROM:987C .byte 0xFF +ROM:987D .byte 0xA3 +ROM:987E .byte 0xE0 +ROM:987F .byte 0x90 +ROM:9880 .byte 0xFE +ROM:9881 .byte 0xB9 +ROM:9882 .byte 0xCF +ROM:9883 .byte 0xF0 +ROM:9884 .byte 0xA3 +ROM:9885 .byte 0xEF +ROM:9886 .byte 0xF0 +ROM:9887 .byte 0xED +ROM:9888 .byte 0x54 ; T +ROM:9889 .byte 0x1F +ROM:988A .byte 0x70 ; p +ROM:988B .byte 3 +ROM:988C .byte 0xFB +ROM:988D .byte 0x80 +ROM:988E .byte 0x14 +ROM:988F .byte 0xAE +ROM:9890 .byte 4 +ROM:9891 .byte 0xED +ROM:9892 .byte 0x78 ; x +ROM:9893 .byte 5 +ROM:9894 .byte 0xCE +ROM:9895 .byte 0xC3 +ROM:9896 .byte 0x13 +ROM:9897 .byte 0xCE +ROM:9898 .byte 0x13 +ROM:9899 .byte 0xD8 +ROM:989A .byte 0xF9 +ROM:989B .byte 4 +ROM:989C .byte 0xC4 +ROM:989D .byte 0x33 ; 3 +ROM:989E .byte 0x54 ; T +ROM:989F .byte 0xE0 +ROM:98A0 .byte 0xC3 +ROM:98A1 .byte 0x9D +ROM:98A2 .byte 0xFB +ROM:98A3 .byte 0xEB +ROM:98A4 .byte 0x2D ; - +ROM:98A5 .byte 0xFF +ROM:98A6 .byte 0xE4 +ROM:98A7 .byte 0x3C ; < +ROM:98A8 .byte 0xFE +ROM:98A9 .byte 0x90 +ROM:98AA .byte 0xFE +ROM:98AB .byte 0xB9 +ROM:98AC .byte 0xE0 +ROM:98AD .byte 0xFC +ROM:98AE .byte 0xA3 +ROM:98AF .byte 0xE0 +ROM:98B0 .byte 0xFD +ROM:98B1 .byte 0x12 +ROM:98B2 .byte 8 +ROM:98B3 .byte 0xDE +ROM:98B4 .byte 0xEF +ROM:98B5 .byte 0x78 ; x +ROM:98B6 .byte 3 +ROM:98B7 .byte 0xCE +ROM:98B8 .byte 0xC3 +ROM:98B9 .byte 0x13 +ROM:98BA .byte 0xCE +ROM:98BB .byte 0x13 +ROM:98BC .byte 0xD8 +ROM:98BD .byte 0xF9 +ROM:98BE .byte 0xFF +ROM:98BF .byte 0xE4 +ROM:98C0 .byte 0xFC +ROM:98C1 .byte 0xFD +ROM:98C2 .byte 0x22 ; " +ROM:98C3 +ROM:98C3 ; =============== S U B R O U T I N E ======================================= +ROM:98C3 +ROM:98C3 +ROM:98C3 ROM_98C3: ; CODE XREF: ROM_887C+80↑p +ROM:98C3 acall ROM_99A3 +ROM:98C5 jc ROM_98DC +ROM:98C7 setb C +ROM:98C8 mov A, R5 +ROM:98C9 subb A, #0x39 ; '9' +ROM:98CB mov A, #0x80 +ROM:98CD subb A, #0x80 +ROM:98CF jnc ROM_98DC +ROM:98D1 mov A, R7 +ROM:98D2 anl A, #0xF +ROM:98D4 add A, #0 +ROM:98D6 mov R7, A +ROM:98D7 clr A +ROM:98D8 addc A, #1 +ROM:98DA mov R6, A +ROM:98DB ret +ROM:98DC ; --------------------------------------------------------------------------- +ROM:98DC +ROM:98DC ROM_98DC: ; CODE XREF: ROM_98C3+2↑j +ROM:98DC ; ROM_98C3+C↑j +ROM:98DC acall ROM_9999 +ROM:98DE jc ROM_98F5 +ROM:98E0 setb C +ROM:98E1 mov A, R5 +ROM:98E2 subb A, #0x5A ; 'Z' +ROM:98E4 mov A, #0x80 +ROM:98E6 subb A, #0x80 +ROM:98E8 jnc ROM_98F5 +ROM:98EA mov A, R7 +ROM:98EB add A, #0xBF +ROM:98ED add A, #0 +ROM:98EF mov R7, A +ROM:98F0 clr A +ROM:98F1 addc A, #2 +ROM:98F3 mov R6, A +ROM:98F4 ret +ROM:98F5 ; --------------------------------------------------------------------------- +ROM:98F5 +ROM:98F5 ROM_98F5: ; CODE XREF: ROM_98C3+1B↑j +ROM:98F5 ; ROM_98C3+25↑j +ROM:98F5 mov A, R7 +ROM:98F6 mov R5, A +ROM:98F7 clr C +ROM:98F8 subb A, #0x61 ; 'a' +ROM:98FA mov A, #0x80 +ROM:98FC subb A, #0x80 +ROM:98FE jc ROM_9974 +ROM:9900 setb C +ROM:9901 mov A, R5 +ROM:9902 subb A, #0x7A ; 'z' +ROM:9904 mov A, #0x80 +ROM:9906 subb A, #0x80 +ROM:9908 jnc ROM_9974 +ROM:990A mov A, R5 +ROM:990B xrl A, #0x61 +ROM:990D jnz ROM_9914 +ROM:990F mov R6, #2 +ROM:9911 mov R7, #6 +ROM:9913 ret +ROM:9914 ; --------------------------------------------------------------------------- +ROM:9914 +ROM:9914 ROM_9914: ; CODE XREF: ROM_98C3+4A↑j +ROM:9914 mov A, R7 +ROM:9915 mov R5, A +ROM:9916 mov R4, #0 +ROM:9918 xrl A, #0x62 +ROM:991A jnz ROM_9921 +ROM:991C mov R6, #2 +ROM:991E mov R7, #7 +ROM:9920 ret +ROM:9921 ; --------------------------------------------------------------------------- +ROM:9921 +ROM:9921 ROM_9921: ; CODE XREF: ROM_98C3+57↑j +ROM:9921 mov A, R5 +ROM:9922 xrl A, #0x63 +ROM:9924 orl A, R4 +ROM:9925 jnz ROM_992C +ROM:9927 mov R6, #2 +ROM:9929 mov R7, #8 +ROM:992B ret +ROM:992C ; --------------------------------------------------------------------------- +ROM:992C +ROM:992C ROM_992C: ; CODE XREF: ROM_98C3+62↑j +ROM:992C mov A, R7 +ROM:992D mov R5, A +ROM:992E mov R4, #0 +ROM:9930 xrl A, #0x65 +ROM:9932 jnz ROM_9939 +ROM:9934 mov R6, #2 +ROM:9936 mov R7, #9 +ROM:9938 ret +ROM:9939 ; --------------------------------------------------------------------------- +ROM:9939 +ROM:9939 ROM_9939: ; CODE XREF: ROM_98C3+6F↑j +ROM:9939 mov A, R5 +ROM:993A xrl A, #0x68 +ROM:993C orl A, R4 +ROM:993D jnz ROM_9944 +ROM:993F mov R6, #2 +ROM:9941 mov R7, #0xA +ROM:9943 ret +ROM:9944 ; --------------------------------------------------------------------------- +ROM:9944 +ROM:9944 ROM_9944: ; CODE XREF: ROM_98C3+7A↑j +ROM:9944 mov A, R7 +ROM:9945 mov R5, A +ROM:9946 mov R4, #0 +ROM:9948 xrl A, #0x6B +ROM:994A jnz ROM_9951 +ROM:994C mov R6, #2 +ROM:994E mov R7, #0xB +ROM:9950 ret +ROM:9951 ; --------------------------------------------------------------------------- +ROM:9951 +ROM:9951 ROM_9951: ; CODE XREF: ROM_98C3+87↑j +ROM:9951 mov A, R5 +ROM:9952 xrl A, #0x72 +ROM:9954 orl A, R4 +ROM:9955 jnz ROM_995C +ROM:9957 mov R6, #2 +ROM:9959 mov R7, #0xC +ROM:995B ret +ROM:995C ; --------------------------------------------------------------------------- +ROM:995C +ROM:995C ROM_995C: ; CODE XREF: ROM_98C3+92↑j +ROM:995C mov A, R7 +ROM:995D mov R5, A +ROM:995E mov R4, #0 +ROM:9960 xrl A, #0x74 +ROM:9962 jnz ROM_9969 +ROM:9964 mov R6, #2 +ROM:9966 mov R7, #0xD +ROM:9968 ret +ROM:9969 ; --------------------------------------------------------------------------- +ROM:9969 +ROM:9969 ROM_9969: ; CODE XREF: ROM_98C3+9F↑j +ROM:9969 mov A, R5 +ROM:996A xrl A, #0x79 +ROM:996C orl A, R4 +ROM:996D jnz ROM_9995 +ROM:996F mov R6, #2 +ROM:9971 mov R7, #0xE +ROM:9973 ret +ROM:9974 ; --------------------------------------------------------------------------- +ROM:9974 +ROM:9974 ROM_9974: ; CODE XREF: ROM_98C3+3B↑j +ROM:9974 ; ROM_98C3+45↑j +ROM:9974 mov A, R7 +ROM:9975 mov R5, A +ROM:9976 mov R4, #0 +ROM:9978 xrl A, #0x5B +ROM:997A jnz ROM_9981 +ROM:997C mov R6, #2 +ROM:997E mov R7, #0xF +ROM:9980 ret +ROM:9981 ; --------------------------------------------------------------------------- +ROM:9981 +ROM:9981 ROM_9981: ; CODE XREF: ROM_98C3+B7↑j +ROM:9981 mov A, R5 +ROM:9982 xrl A, #0x5D +ROM:9984 orl A, R4 +ROM:9985 jnz ROM_998C +ROM:9987 mov R6, #2 +ROM:9989 mov R7, #0x10 +ROM:998B ret +ROM:998C ; --------------------------------------------------------------------------- +ROM:998C +ROM:998C ROM_998C: ; CODE XREF: ROM_98C3+C2↑j +ROM:998C mov A, R7 +ROM:998D xrl A, #0x20 +ROM:998F jnz ROM_9995 +ROM:9991 mov R6, #4 +ROM:9993 mov R7, A +ROM:9994 ret +ROM:9995 ; --------------------------------------------------------------------------- +ROM:9995 +ROM:9995 ROM_9995: ; CODE XREF: ROM_98C3+AA↑j +ROM:9995 ; ROM_98C3+CC↑j +ROM:9995 clr A +ROM:9996 mov R6, A +ROM:9997 mov R7, A +ROM:9998 ret +ROM:9998 ; End of function ROM_98C3 +ROM:9998 +ROM:9999 +ROM:9999 ; =============== S U B R O U T I N E ======================================= +ROM:9999 +ROM:9999 +ROM:9999 ROM_9999: ; CODE XREF: ROM_98C3:ROM_98DC↑p +ROM:9999 mov A, R7 +ROM:999A mov R5, A +ROM:999B clr C +ROM:999C subb A, #0x41 ; 'A' +ROM:999E mov A, #0x80 +ROM:99A0 subb A, #0x80 +ROM:99A2 ret +ROM:99A2 ; End of function ROM_9999 +ROM:99A2 +ROM:99A3 +ROM:99A3 ; =============== S U B R O U T I N E ======================================= +ROM:99A3 +ROM:99A3 +ROM:99A3 ROM_99A3: ; CODE XREF: ROM_98C3↑p +ROM:99A3 mov A, R7 +ROM:99A4 mov R5, A +ROM:99A5 clr C +ROM:99A6 subb A, #0x30 ; '0' +ROM:99A8 mov A, #0x80 +ROM:99AA subb A, #0x80 +ROM:99AC ret +ROM:99AC ; End of function ROM_99A3 +ROM:99AC +ROM:99AD +ROM:99AD ; =============== S U B R O U T I N E ======================================= +ROM:99AD +ROM:99AD +ROM:99AD ROM_99AD: ; CODE XREF: ROM_2E9D:ROM_2F29↑p +ROM:99AD mov DPTR, #0xFD9F +ROM:99B0 movx A, @DPTR +ROM:99B1 xrl A, #0xAD +ROM:99B3 jnz ROM_99B9 +ROM:99B5 inc DPTR +ROM:99B6 movx A, @DPTR +ROM:99B7 xrl A, #0xD2 +ROM:99B9 +ROM:99B9 ROM_99B9: ; CODE XREF: ROM_99AD+6↑j +ROM:99B9 jz ROM_99C6 +ROM:99BB lcall ROM_6288 +ROM:99BE lcall ROM_27F5 +ROM:99C1 lcall Something_eeprom_ROM_5FE9 +ROM:99C4 sjmp ROM_99CB +ROM:99C6 ; --------------------------------------------------------------------------- +ROM:99C6 +ROM:99C6 ROM_99C6: ; CODE XREF: ROM_99AD:ROM_99B9↑j +ROM:99C6 mov R7, #0x82 +ROM:99C8 lcall ROM_2153 +ROM:99CB +ROM:99CB ROM_99CB: ; CODE XREF: ROM_99AD+17↑j +ROM:99CB mov R7, #0 +ROM:99CD ret +ROM:99CD ; End of function ROM_99AD +ROM:99CD +ROM:99CE +ROM:99CE ; =============== S U B R O U T I N E ======================================= +ROM:99CE +ROM:99CE +ROM:99CE ROM_99CE: ; CODE XREF: ROM_9B7E↓p +ROM:99CE clr A +ROM:99CF mov R7, A +ROM:99D0 mov R6, A +ROM:99D1 acall ROM_9A40 +ROM:99D3 acall ROM_9B77 +ROM:99D5 lcall ROM_37E9 +ROM:99D8 jnz ROM_9A01 +ROM:99DA mov DPTR, #0xF852 +ROM:99DD movx @DPTR, A +ROM:99DE +ROM:99DE ROM_99DE: ; CODE XREF: ROM_99CE+2E↓j +ROM:99DE mov DPTR, #0xF852 +ROM:99E1 movx A, @DPTR +ROM:99E2 mov R6, A +ROM:99E3 lcall ROM_23E8 +ROM:99E6 jnc ROM_99FE +ROM:99E8 mov A, #0x6E ; 'n' +ROM:99EA add A, R6 +ROM:99EB mov DP0L, A ; Data Pointer Low Byte +ROM:99ED clr A +ROM:99EE addc A, #0xFD +ROM:99F0 acall ROM_9A2D +ROM:99F2 jnc ROM_99F6 +ROM:99F4 sjmp ROM_9A1C +ROM:99F6 ; --------------------------------------------------------------------------- +ROM:99F6 +ROM:99F6 ROM_99F6: ; CODE XREF: ROM_99CE+24↑j +ROM:99F6 mov DPTR, #0xF852 +ROM:99F9 movx A, @DPTR +ROM:99FA inc A +ROM:99FB movx @DPTR, A +ROM:99FC sjmp ROM_99DE +ROM:99FE ; --------------------------------------------------------------------------- +ROM:99FE +ROM:99FE ROM_99FE: ; CODE XREF: ROM_99CE+18↑j +ROM:99FE mov R7, #5 +ROM:9A00 ret +ROM:9A01 ; --------------------------------------------------------------------------- +ROM:9A01 +ROM:9A01 ROM_9A01: ; CODE XREF: ROM_99CE+A↑j +ROM:9A01 clr A +ROM:9A02 mov DPTR, #0xF852 +ROM:9A05 movx @DPTR, A +ROM:9A06 +ROM:9A06 ROM_9A06: ; CODE XREF: ROM_99CE+5A↓j +ROM:9A06 mov DPTR, #0xF852 +ROM:9A09 movx A, @DPTR +ROM:9A0A mov R6, A +ROM:9A0B lcall ROM_3859 +ROM:9A0E jnc ROM_9A2A +ROM:9A10 mov A, #0x4B ; 'K' +ROM:9A12 add A, R6 +ROM:9A13 mov DP0L, A ; Data Pointer Low Byte +ROM:9A15 clr A +ROM:9A16 addc A, #0xFD +ROM:9A18 acall ROM_9A2D +ROM:9A1A jnc ROM_9A22 +ROM:9A1C +ROM:9A1C ROM_9A1C: ; CODE XREF: ROM_99CE+26↑j +ROM:9A1C mov DPTR, #0xF852 +ROM:9A1F movx A, @DPTR +ROM:9A20 mov R7, A +ROM:9A21 ret +ROM:9A22 ; --------------------------------------------------------------------------- +ROM:9A22 +ROM:9A22 ROM_9A22: ; CODE XREF: ROM_99CE+4C↑j +ROM:9A22 mov DPTR, #0xF852 +ROM:9A25 movx A, @DPTR +ROM:9A26 inc A +ROM:9A27 movx @DPTR, A +ROM:9A28 sjmp ROM_9A06 +ROM:9A2A ; --------------------------------------------------------------------------- +ROM:9A2A +ROM:9A2A ROM_9A2A: ; CODE XREF: ROM_99CE+40↑j +ROM:9A2A mov R7, #3 +ROM:9A2C ret +ROM:9A2C ; End of function ROM_99CE +ROM:9A2C +ROM:9A2D +ROM:9A2D ; =============== S U B R O U T I N E ======================================= +ROM:9A2D +ROM:9A2D +ROM:9A2D ROM_9A2D: ; CODE XREF: ROM_99CE+22↑p +ROM:9A2D ; ROM_99CE+4A↑p +ROM:9A2D mov DP0H, A ; Data Pointer High Byte +ROM:9A2F movx A, @DPTR +ROM:9A30 mov R5, A +ROM:9A31 mov A, R7 +ROM:9A32 mov R3, A +ROM:9A33 rlc A +ROM:9A34 subb A, ACC ; Accumulator +ROM:9A36 mov R2, A +ROM:9A37 clr C +ROM:9A38 mov A, R3 +ROM:9A39 subb A, R5 +ROM:9A3A mov A, #0x80 +ROM:9A3C mov R0, A +ROM:9A3D xrl A, R2 +ROM:9A3E subb A, R0 +ROM:9A3F ret +ROM:9A3F ; End of function ROM_9A2D +ROM:9A3F +ROM:9A40 +ROM:9A40 ; =============== S U B R O U T I N E ======================================= +ROM:9A40 +ROM:9A40 +ROM:9A40 ROM_9A40: ; CODE XREF: ROM_2153+B9↑p +ROM:9A40 ; ROM_6849+52↑p ... +ROM:9A40 clr A +ROM:9A41 mov DPTR, #0xF853 +ROM:9A44 movx @DPTR, A +ROM:9A45 inc DPTR +ROM:9A46 movx @DPTR, A +ROM:9A47 orl FSR_B7, #0x80 +ROM:9A4A acall Temperature_something_ROM_9B9B +ROM:9A4C clr A +ROM:9A4D mov R7, A +ROM:9A4E +ROM:9A4E ROM_9A4E: ; CODE XREF: ROM_9A40+48↓j +ROM:9A4E mov A, R7 +ROM:9A4F lcall ROM_7DBA +ROM:9A52 jnc ROM_9A8A +ROM:9A54 clr RAM_20.2 +ROM:9A56 orl FSR_A1, #0x10 +ROM:9A59 +ROM:9A59 ROM_9A59: ; CODE XREF: ROM_9A40:ROM_9A59↓j +ROM:9A59 jnb RAM_20.2, ROM_9A59 +ROM:9A5C mov A, R7 +ROM:9A5D lcall ROM_87AE +ROM:9A60 jc ROM_9A76 +ROM:9A62 mov DPTR, #0xFEBB +ROM:9A65 movx A, @DPTR +ROM:9A66 mov R4, A +ROM:9A67 inc DPTR +ROM:9A68 movx A, @DPTR +ROM:9A69 mov R5, A +ROM:9A6A mov DPTR, #0xF854 +ROM:9A6D movx A, @DPTR +ROM:9A6E add A, R5 +ROM:9A6F movx @DPTR, A +ROM:9A70 mov DPTR, #0xF853 +ROM:9A73 movx A, @DPTR +ROM:9A74 addc A, R4 +ROM:9A75 movx @DPTR, A +ROM:9A76 +ROM:9A76 ROM_9A76: ; CODE XREF: ROM_9A40+20↑j +ROM:9A76 mov R5, #0x20 ; ' ' +ROM:9A78 mov R4, #3 +ROM:9A7A +ROM:9A7A ROM_9A7A: ; CODE XREF: ROM_9A40+45↓j +ROM:9A7A mov A, R5 +ROM:9A7B dec R5 +ROM:9A7C mov R2, RAM_4 +ROM:9A7E jnz ROM_9A81 +ROM:9A80 dec R4 +ROM:9A81 +ROM:9A81 ROM_9A81: ; CODE XREF: ROM_9A40+3E↑j +ROM:9A81 orl A, R2 +ROM:9A82 jz ROM_9A87 +ROM:9A84 nop +ROM:9A85 sjmp ROM_9A7A +ROM:9A87 ; --------------------------------------------------------------------------- +ROM:9A87 +ROM:9A87 ROM_9A87: ; CODE XREF: ROM_9A40+42↑j +ROM:9A87 inc R7 +ROM:9A88 sjmp ROM_9A4E +ROM:9A8A ; --------------------------------------------------------------------------- +ROM:9A8A +ROM:9A8A ROM_9A8A: ; CODE XREF: ROM_9A40+12↑j +ROM:9A8A mov DPTR, #0xF853 +ROM:9A8D movx A, @DPTR +ROM:9A8E mov R6, A +ROM:9A8F inc DPTR +ROM:9A90 movx A, @DPTR +ROM:9A91 mov R0, #2 +ROM:9A93 +ROM:9A93 ROM_9A93: ; CODE XREF: ROM_9A40+58↓j +ROM:9A93 xch A, R6 +ROM:9A94 clr C +ROM:9A95 rrc A +ROM:9A96 xch A, R6 +ROM:9A97 rrc A +ROM:9A98 djnz R0, ROM_9A93 +ROM:9A9A movx @DPTR, A +ROM:9A9B mov A, R6 +ROM:9A9C mov DPTR, #0xF853 +ROM:9A9F movx @DPTR, A +ROM:9AA0 mov DPTR, #0xFE89 +ROM:9AA3 movx A, @DPTR +ROM:9AA4 cpl A +ROM:9AA5 jnz ROM_9AAA +ROM:9AA7 inc DPTR +ROM:9AA8 movx A, @DPTR +ROM:9AA9 cpl A +ROM:9AAA +ROM:9AAA ROM_9AAA: ; CODE XREF: ROM_9A40+65↑j +ROM:9AAA jz ROM_9ABA +ROM:9AAC mov DPTR, #0xFE8B +ROM:9AAF movx A, @DPTR +ROM:9AB0 mov R4, A +ROM:9AB1 inc DPTR +ROM:9AB2 movx A, @DPTR +ROM:9AB3 mov R5, A +ROM:9AB4 cjne R4, #0xFF, ROM_9ABF +ROM:9AB7 cjne R5, #0xFF, ROM_9ABF +ROM:9ABA +ROM:9ABA ROM_9ABA: ; CODE XREF: ROM_9A40:ROM_9AAA↑j +ROM:9ABA mov R6, #0 +ROM:9ABC mov R7, #0xC8 +ROM:9ABE ret +ROM:9ABF ; --------------------------------------------------------------------------- +ROM:9ABF +ROM:9ABF ROM_9ABF: ; CODE XREF: ROM_9A40+74↑j +ROM:9ABF ; ROM_9A40+77↑j +ROM:9ABF mov DPTR, #0xFE89 +ROM:9AC2 lcall ROM_3758 +ROM:9AC5 mov A, R5 +ROM:9AC6 subb A, R7 +ROM:9AC7 mov R5, A +ROM:9AC8 mov A, R4 +ROM:9AC9 subb A, R6 +ROM:9ACA mov R4, A +ROM:9ACB clr A +ROM:9ACC lcall code_6E1 +ROM:9ACF clr A +ROM:9AD0 mov R3, A +ROM:9AD1 mov R2, A +ROM:9AD2 mov R1, #0x70 ; 'p' +ROM:9AD4 mov R0, #0x41 ; 'A' +ROM:9AD6 lcall code_63F +ROM:9AD9 mov DPTR, #0xF857 +ROM:9ADC lcall save_4_bytes_R4_R7 +ROM:9ADF mov DPTR, #0xFE89 +ROM:9AE2 movx A, @DPTR +ROM:9AE3 mov R6, A +ROM:9AE4 inc DPTR +ROM:9AE5 movx A, @DPTR +ROM:9AE6 mov R7, A +ROM:9AE7 mov DPTR, #0xF853 +ROM:9AEA acall ROM_9B68 +ROM:9AEC jc ROM_9B0A +ROM:9AEE mov DPTR, #0xFE89 +ROM:9AF1 inc DPTR +ROM:9AF2 mov A, R5 +ROM:9AF3 subb A, R7 +ROM:9AF4 mov R5, A +ROM:9AF5 mov A, R4 +ROM:9AF6 acall ROM_9B47 +ROM:9AF8 lcall load_4_bytes_R0_R1_R2_R3 +ROM:9AFB lcall code_63F +ROM:9AFE clr A +ROM:9AFF mov R3, A +ROM:9B00 mov R2, A +ROM:9B01 mov R1, #0xF0 +ROM:9B03 mov R0, #0x41 ; 'A' +ROM:9B05 lcall code_54B +ROM:9B08 sjmp ROM_9B2E +ROM:9B0A ; --------------------------------------------------------------------------- +ROM:9B0A +ROM:9B0A ROM_9B0A: ; CODE XREF: ROM_9A40+AC↑j +ROM:9B0A mov DPTR, #0xF853 +ROM:9B0D lcall ROM_3758 +ROM:9B10 mov DPTR, #0xFE8A +ROM:9B13 movx A, @DPTR +ROM:9B14 subb A, R7 +ROM:9B15 mov R5, A +ROM:9B16 mov DPTR, #0xFE89 +ROM:9B19 movx A, @DPTR +ROM:9B1A acall ROM_9B47 +ROM:9B1C lcall load_4_bytes_R0_R1_R2_R3 +ROM:9B1F lcall code_63F +ROM:9B22 acall ROM_9B54 +ROM:9B24 clr A +ROM:9B25 mov R7, A +ROM:9B26 mov R6, A +ROM:9B27 mov R5, #0xF0 +ROM:9B29 mov R4, #0x41 ; 'A' +ROM:9B2B lcall code_547 +ROM:9B2E +ROM:9B2E ROM_9B2E: ; CODE XREF: ROM_9A40+C8↑j +ROM:9B2E lcall code_71A +ROM:9B31 mov DPTR, #0xF855 +ROM:9B34 mov A, R6 +ROM:9B35 movx @DPTR, A +ROM:9B36 inc DPTR +ROM:9B37 mov A, R7 +ROM:9B38 movx @DPTR, A +ROM:9B39 anl FSR_B7, #0x7F +ROM:9B3C mov DPTR, #0xF855 +ROM:9B3F lcall ROM_6F95 +ROM:9B42 mov R5, #0xA +ROM:9B44 ljmp code_8DE +ROM:9B44 ; End of function ROM_9A40 +ROM:9B44 +ROM:9B47 +ROM:9B47 ; =============== S U B R O U T I N E ======================================= +ROM:9B47 +ROM:9B47 +ROM:9B47 ROM_9B47: ; CODE XREF: ROM_9A40+B6↑p +ROM:9B47 ; ROM_9A40+DA↑p +ROM:9B47 subb A, R6 +ROM:9B48 mov R4, A +ROM:9B49 clr A +ROM:9B4A lcall code_6E1 +ROM:9B4D mov DPTR, #0xF857 +ROM:9B50 ret +ROM:9B50 ; End of function ROM_9B47 +ROM:9B50 +ROM:9B51 +ROM:9B51 ; =============== S U B R O U T I N E ======================================= +ROM:9B51 +ROM:9B51 +ROM:9B51 ROM_9B51: ; CODE XREF: ROM_2638+95↑p +ROM:9B51 ; ROM_2638+114↑p +ROM:9B51 lcall code_9F1 +ROM:9B51 ; End of function ROM_9B51 +ROM:9B51 +ROM:9B54 +ROM:9B54 ; =============== S U B R O U T I N E ======================================= +ROM:9B54 +ROM:9B54 +ROM:9B54 ROM_9B54: ; CODE XREF: ROM_9A40+E2↑p +ROM:9B54 ; ROM_AD6A+30E↓p +ROM:9B54 mov R0, RAM_4 +ROM:9B56 mov R1, RAM_5 +ROM:9B58 mov R2, RAM_6 +ROM:9B5A mov R3, RAM_7 +ROM:9B5C ret +ROM:9B5C ; End of function ROM_9B54 +ROM:9B5C +ROM:9B5D +ROM:9B5D ; =============== S U B R O U T I N E ======================================= +ROM:9B5D +ROM:9B5D +ROM:9B5D ROM_9B5D: ; CODE XREF: ROM_7424:ROM_745F↑p +ROM:9B5D ; ROM_7424:ROM_751A↑p +ROM:9B5D mov DPTR, #0xF969 +ROM:9B60 movx A, @DPTR +ROM:9B61 mov R6, A +ROM:9B62 inc DPTR +ROM:9B63 movx A, @DPTR +ROM:9B64 mov R7, A +ROM:9B65 mov DPTR, #0xF971 +ROM:9B65 ; End of function ROM_9B5D +ROM:9B65 +ROM:9B68 +ROM:9B68 ; =============== S U B R O U T I N E ======================================= +ROM:9B68 +ROM:9B68 +ROM:9B68 ROM_9B68: ; CODE XREF: ROM_9A40+AA↑p +ROM:9B68 ; ROM_AD6A+1B83↓p ... +ROM:9B68 movx A, @DPTR +ROM:9B69 mov R4, A +ROM:9B6A inc DPTR +ROM:9B6B movx A, @DPTR +ROM:9B6C mov R5, A +ROM:9B6D clr C +ROM:9B6E subb A, R7 +ROM:9B6F mov A, R4 +ROM:9B70 subb A, R6 +ROM:9B71 ret +ROM:9B71 ; End of function ROM_9B68 +ROM:9B71 +ROM:9B72 +ROM:9B72 ; =============== S U B R O U T I N E ======================================= +ROM:9B72 +ROM:9B72 +ROM:9B72 ROM_9B72: ; CODE XREF: ROM_2153+BF↑p +ROM:9B72 ; ROM_6849+58↑p +ROM:9B72 mov A, R6 +ROM:9B73 movx @DPTR, A +ROM:9B74 inc DPTR +ROM:9B75 mov A, R7 +ROM:9B76 movx @DPTR, A +ROM:9B76 ; End of function ROM_9B72 +ROM:9B76 +ROM:9B77 +ROM:9B77 ; =============== S U B R O U T I N E ======================================= +ROM:9B77 +ROM:9B77 +ROM:9B77 ROM_9B77: ; CODE XREF: ROM_99CE+5↑p +ROM:9B77 +ROM:9B77 ; FUNCTION CHUNK AT code:0945 SIZE 00000036 BYTES +ROM:9B77 +ROM:9B77 mov R4, #0 +ROM:9B79 mov R5, #0xA +ROM:9B7B ljmp code_945 +ROM:9B7B ; End of function ROM_9B77 +ROM:9B7B +ROM:9B7E +ROM:9B7E ; =============== S U B R O U T I N E ======================================= +ROM:9B7E +ROM:9B7E +ROM:9B7E ROM_9B7E: ; CODE XREF: ROM_2153:ROM_2171↑p +ROM:9B7E +ROM:9B7E ; FUNCTION CHUNK AT ROM:4D0F SIZE 0000019D BYTES +ROM:9B7E +ROM:9B7E acall ROM_99CE +ROM:9B80 mov DPTR, #0xFD6D +ROM:9B83 mov A, R7 +ROM:9B84 movx @DPTR, A +ROM:9B85 lcall ROM_504D +ROM:9B88 lcall ROM_4F9E +ROM:9B8B lcall ROM_37E9 +ROM:9B8E jnz ROM_9B93 +ROM:9B90 ljmp ROM_4D0F +ROM:9B93 ; --------------------------------------------------------------------------- +ROM:9B93 +ROM:9B93 ROM_9B93: ; CODE XREF: ROM_9B7E+10↑j +ROM:9B93 mov DPTR, #0xFD6D +ROM:9B96 movx A, @DPTR +ROM:9B97 mov R7, A +ROM:9B98 ljmp ROM_4DE7 +ROM:9B98 ; End of function ROM_9B7E +ROM:9B98 +ROM:9B9B +ROM:9B9B ; =============== S U B R O U T I N E ======================================= +ROM:9B9B +ROM:9B9B +ROM:9B9B Temperature_something_ROM_9B9B: ; CODE XREF: ROM_9A40+A↑p +ROM:9B9B mov R7, FSR_FF +ROM:9B9D orl FSR_FF, #4 +ROM:9BA0 mov FSR_F7, #0x81 +ROM:9BA3 mov FSR_E7, #0x22 ; '"' +ROM:9BA6 mov FSR_E6, #0x55 ; 'U' +ROM:9BA9 clr A +ROM:9BAA mov FSR_FC, A +ROM:9BAC mov FSR_FB, A +ROM:9BAE mov FSR_FE, #3 +ROM:9BB1 mov FSR_FD, #0xFF +ROM:9BB4 anl FSR_F7, #0xF7 +ROM:9BB7 mov FSR_FF, R7 +ROM:9BB9 anl FSR_A1, #0xEF +ROM:9BBC ret +ROM:9BBC ; End of function Temperature_something_ROM_9B9B +ROM:9BBC +ROM:9BBD +ROM:9BBD ; =============== S U B R O U T I N E ======================================= +ROM:9BBD +ROM:9BBD +ROM:9BBD unknown_gpio_setup_ROM_9BBD: ; CODE XREF: ROM_3671+6↑p +ROM:9BBD acall Kill_all_func_ROM_9BE7 +ROM:9BBF mov FSR_B9, A +ROM:9BC1 mov P0, A ; Port 0 +ROM:9BC3 mov FSR_BC, A +ROM:9BC5 lcall load_0xFDAA_and_xor_0x01 +ROM:9BC8 jnz ROM_9BD4 +ROM:9BCA mov FSR_BA, #0x82 +ROM:9BCD mov P1, A ; Port 1 +ROM:9BCF mov FSR_BD, #0x82 +ROM:9BD2 sjmp ROM_9BDD +ROM:9BD4 ; --------------------------------------------------------------------------- +ROM:9BD4 +ROM:9BD4 ROM_9BD4: ; CODE XREF: unknown_gpio_setup_ROM_9BBD+B↑j +ROM:9BD4 mov FSR_BA, #0xD6 +ROM:9BD7 clr A +ROM:9BD8 mov P1, A ; Port 1 +ROM:9BDA mov FSR_BD, #0xD6 +ROM:9BDD +ROM:9BDD ROM_9BDD: ; CODE XREF: unknown_gpio_setup_ROM_9BBD+15↑j +ROM:9BDD mov FSR_BB, #3 +ROM:9BE0 clr A +ROM:9BE1 mov P2, A ; Port 2 +ROM:9BE3 mov FSR_BE, #1 +ROM:9BE6 ret +ROM:9BE6 ; End of function unknown_gpio_setup_ROM_9BBD +ROM:9BE6 +ROM:9BE7 +ROM:9BE7 ; =============== S U B R O U T I N E ======================================= +ROM:9BE7 +ROM:9BE7 +ROM:9BE7 Kill_all_func_ROM_9BE7: ; CODE XREF: gpio_setup_magic_ROM_5004↑p +ROM:9BE7 ; unknown_gpio_setup_ROM_9BBD↑p +ROM:9BE7 clr A +ROM:9BE8 mov P0FUNC, A +ROM:9BEA mov P1FUNC, A +ROM:9BEC mov P2FUNC, A +ROM:9BEE ret +ROM:9BEE ; End of function Kill_all_func_ROM_9BE7 +ROM:9BEE +ROM:9BEF ; --------------------------------------------------------------------------- +ROM:9BEF ; START OF FUNCTION CHUNK FOR ROM_4F9E +ROM:9BEF +ROM:9BEF ROM_9BEF: ; CODE XREF: ROM_4F9E+B↑j +ROM:9BEF mov DPTR, #0xF852 +ROM:9BF2 mov A, #4 +ROM:9BF4 movx @DPTR, A +ROM:9BF5 +ROM:9BF5 ROM_9BF5: ; CODE XREF: ROM_4F9E+4C67↓j +ROM:9BF5 mov DPTR, #0xF852 +ROM:9BF8 movx A, @DPTR +ROM:9BF9 mov R7, A +ROM:9BFA dec A +ROM:9BFB movx @DPTR, A +ROM:9BFC mov A, R7 +ROM:9BFD jz ROM_9C07 +ROM:9BFF jnb P2.1, ROM_9C07 ; Port 2 +ROM:9C02 lcall ROM_4CA0 +ROM:9C05 sjmp ROM_9BF5 +ROM:9C07 ; --------------------------------------------------------------------------- +ROM:9C07 +ROM:9C07 ROM_9C07: ; CODE XREF: ROM_4F9E+4C5F↑j +ROM:9C07 ; ROM_4F9E+4C61↑j +ROM:9C07 ret +ROM:9C07 ; END OF FUNCTION CHUNK FOR ROM_4F9E +ROM:9C08 +ROM:9C08 ; =============== S U B R O U T I N E ======================================= +ROM:9C08 +ROM:9C08 +ROM:9C08 ROM_9C08: ; CODE XREF: ROM_9B7E-4CD6↑p +ROM:9C08 clr A +ROM:9C09 mov R5, A +ROM:9C0A +ROM:9C0A ROM_9C0A: ; CODE XREF: ROM_9C08+2A↓j +ROM:9C0A mov A, R5 +ROM:9C0B lcall ROM_4B04 +ROM:9C0E jnc ROM_9C34 +ROM:9C10 lcall code_891 +ROM:9C13 mov R7, A +ROM:9C14 lcall code_42E +ROM:9C17 acall ROM_9C35 +ROM:9C19 clr A +ROM:9C1A mov R4, A +ROM:9C1B +ROM:9C1B ROM_9C1B: ; CODE XREF: ROM_9C08+27↓j +ROM:9C1B mov A, R4 +ROM:9C1C clr C +ROM:9C1D subb A, #0xF +ROM:9C1F mov A, #0x80 +ROM:9C21 subb A, #0x80 +ROM:9C23 jnc ROM_9C31 +ROM:9C25 lcall code_891 +ROM:9C28 mov R7, A +ROM:9C29 lcall ROM_4D0B +ROM:9C2C acall ROM_9C35 +ROM:9C2E inc R4 +ROM:9C2F sjmp ROM_9C1B +ROM:9C31 ; --------------------------------------------------------------------------- +ROM:9C31 +ROM:9C31 ROM_9C31: ; CODE XREF: ROM_9C08+1B↑j +ROM:9C31 inc R5 +ROM:9C32 sjmp ROM_9C0A +ROM:9C34 ; --------------------------------------------------------------------------- +ROM:9C34 +ROM:9C34 ROM_9C34: ; CODE XREF: ROM_9C08+6↑j +ROM:9C34 ret +ROM:9C34 ; End of function ROM_9C08 +ROM:9C34 +ROM:9C35 +ROM:9C35 ; =============== S U B R O U T I N E ======================================= +ROM:9C35 +ROM:9C35 +ROM:9C35 ROM_9C35: ; CODE XREF: ROM_9C08+F↑p +ROM:9C35 ; ROM_9C08+24↑p +ROM:9C35 mov A, #1 +ROM:9C37 add A, R1 +ROM:9C38 mov R1, A +ROM:9C39 clr A +ROM:9C3A addc A, R2 +ROM:9C3B mov R2, A +ROM:9C3C ret +ROM:9C3C ; End of function ROM_9C35 +ROM:9C3C +ROM:9C3D +ROM:9C3D ; =============== S U B R O U T I N E ======================================= +ROM:9C3D +ROM:9C3D +ROM:9C3D ROM_9C3D: ; CODE XREF: ROM_569D+26↑p +ROM:9C3D ; ROM_569D+33↑p +ROM:9C3D mov DPTR, #0xF858 +ROM:9C40 lcall save_4_bytes_R4_R7 +ROM:9C43 mov DPTR, #0xF85C +ROM:9C46 mov A, #1 +ROM:9C48 movx @DPTR, A +ROM:9C49 clr A +ROM:9C4A mov R7, A +ROM:9C4B mov DPTR, #0xF857 +ROM:9C4E acall ROM_9D20 +ROM:9C50 mov DPTR, #0xF85D +ROM:9C53 lcall save_4_bytes_R4_R7 +ROM:9C56 clr A +ROM:9C57 mov DPTR, #0xF861 +ROM:9C5A lcall ROM_5F9A +ROM:9C5D acall ROM_9D28 +ROM:9C5F mov DPTR, #0xF861 +ROM:9C62 xch A, R7 +ROM:9C63 movx @DPTR, A +ROM:9C64 inc DPTR +ROM:9C65 mov A, R7 +ROM:9C66 movx @DPTR, A +ROM:9C67 mov DPTR, #0xF857 +ROM:9C6A movx A, @DPTR +ROM:9C6B jnz ROM_9C74 +ROM:9C6D inc DPTR +ROM:9C6E lcall load_4_bytes_R4_R5_R6_A +ROM:9C71 mov R7, A +ROM:9C72 sjmp ROM_9C88 +ROM:9C74 ; --------------------------------------------------------------------------- +ROM:9C74 +ROM:9C74 ROM_9C74: ; CODE XREF: ROM_9C3D+2E↑j +ROM:9C74 mov DPTR, #0xF861 +ROM:9C77 lcall ROM_3297 +ROM:9C7A mov R5, A +ROM:9C7B mov DPTR, #0xF858 +ROM:9C7E lcall load_4_bytes_R0_R1_R2_A +ROM:9C81 add A, R7 +ROM:9C82 mov R7, A +ROM:9C83 mov A, R2 +ROM:9C84 addc A, R6 +ROM:9C85 lcall ROM_2F7B +ROM:9C88 +ROM:9C88 ROM_9C88: ; CODE XREF: ROM_9C3D+35↑j +ROM:9C88 mov DPTR, #0xF85D +ROM:9C8B lcall save_4_bytes_R4_R7 +ROM:9C8E mov DPTR, #0xF85D +ROM:9C91 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:9C94 mov R1, A +ROM:9C95 mov R2, RAM_6 +ROM:9C97 mov R3, RAM_5 +ROM:9C99 mov DPTR, #0xF866 +ROM:9C9C acall ROM_9D42 +ROM:9C9E mov DPTR, #0xF861 +ROM:9CA1 movx A, @DPTR +ROM:9CA2 mov R7, A +ROM:9CA3 inc DPTR +ROM:9CA4 movx A, @DPTR +ROM:9CA5 mov DPTR, #0xF869 +ROM:9CA8 xch A, R7 +ROM:9CA9 movx @DPTR, A +ROM:9CAA inc DPTR +ROM:9CAB mov A, R7 +ROM:9CAC movx @DPTR, A +ROM:9CAD mov DPTR, #0xF85C +ROM:9CB0 movx A, @DPTR +ROM:9CB1 mov DPTR, #0xF86B +ROM:9CB4 movx @DPTR, A +ROM:9CB5 acall ROM_9CCA +ROM:9CB7 ljmp SetupWatchdog +ROM:9CB7 ; End of function ROM_9C3D +ROM:9CB7 +ROM:9CB7 ; --------------------------------------------------------------------------- +ROM:9CBA .byte 0x90 +ROM:9CBB .byte 0xF8 +ROM:9CBC .byte 0x58 ; X +ROM:9CBD .byte 0x12 +ROM:9CBE .byte 0xB +ROM:9CBF .byte 0xE2 +ROM:9CC0 .byte 0x90 +ROM:9CC1 .byte 0xF8 +ROM:9CC2 .byte 0x5C ; \ +ROM:9CC3 .byte 0x74 ; t +ROM:9CC4 .byte 0x8C +ROM:9CC5 .byte 0xF0 +ROM:9CC6 .byte 0xE4 +ROM:9CC7 .byte 0xFF +ROM:9CC8 .byte 0x80 +ROM:9CC9 .byte 0x81 +ROM:9CCA +ROM:9CCA ; =============== S U B R O U T I N E ======================================= +ROM:9CCA +ROM:9CCA +ROM:9CCA ROM_9CCA: ; CODE XREF: ROM_9C3D+78↑p +ROM:9CCA +ROM:9CCA ; FUNCTION CHUNK AT code:1F5D SIZE 00000077 BYTES +ROM:9CCA +ROM:9CCA acall ROM_9D39 +ROM:9CCC mov DPTR, #0xF86C +ROM:9CCF lcall code_1ED5 +ROM:9CD2 mov DPTR, #0xF866 +ROM:9CD5 lcall ROM_37C3 +ROM:9CD8 acall ROM_9CF6 +ROM:9CDA mov DPTR, #0xF877 +ROM:9CDD xch A, R7 +ROM:9CDE movx @DPTR, A +ROM:9CDF inc DPTR +ROM:9CE0 mov A, R7 +ROM:9CE1 movx @DPTR, A +ROM:9CE2 clr RAM_20.4 +ROM:9CE4 mov DPTR, #0xF86B +ROM:9CE7 movx A, @DPTR +ROM:9CE8 mov DPTR, #0xF879 +ROM:9CEB movx @DPTR, A +ROM:9CEC mov DPTR, #0xF86C +ROM:9CEF lcall load_4_bytes_R4_R5_R6_A +ROM:9CF2 mov R7, A +ROM:9CF3 ljmp code_1F5D +ROM:9CF3 ; End of function ROM_9CCA +ROM:9CF3 +ROM:9CF6 +ROM:9CF6 ; =============== S U B R O U T I N E ======================================= +ROM:9CF6 +ROM:9CF6 +ROM:9CF6 ROM_9CF6: ; CODE XREF: ROM_67A3+11↑p +ROM:9CF6 ; ROM_6FF1+26↑p ... +ROM:9CF6 mov R1, A +ROM:9CF7 inc DPTR +ROM:9CF8 movx A, @DPTR +ROM:9CF9 mov R7, A +ROM:9CFA inc DPTR +ROM:9CFB movx A, @DPTR +ROM:9CFC ret +ROM:9CFC ; End of function ROM_9CF6 +ROM:9CFC +ROM:9CFD +ROM:9CFD ; =============== S U B R O U T I N E ======================================= +ROM:9CFD +ROM:9CFD +ROM:9CFD ROM_9CFD: ; CODE XREF: ROM_9D4E+133↓p +ROM:9CFD +ROM:9CFD ; FUNCTION CHUNK AT ROM:7743 SIZE 00000064 BYTES +ROM:9CFD +ROM:9CFD mov DPTR, #0xF839 +ROM:9D00 lcall save_4_bytes_R4_R7 +ROM:9D03 mov DPTR, #0xF83D +ROM:9D06 lcall Save_3_bytes_R3_R2_R1 +ROM:9D09 lcall SetupPinsForEEProm +ROM:9D0C mov DPTR, #0xF83D +ROM:9D0F lcall ROM_37C3 +ROM:9D12 acall ROM_9CF6 +ROM:9D14 acall ROM_9D30 +ROM:9D16 mov DPTR, #0xF839 +ROM:9D19 lcall load_4_bytes_R4_R5_R6_A +ROM:9D1C mov R7, A +ROM:9D1D ljmp ROM_7743 +ROM:9D1D ; End of function ROM_9CFD +ROM:9D1D +ROM:9D20 +ROM:9D20 ; =============== S U B R O U T I N E ======================================= +ROM:9D20 +ROM:9D20 +ROM:9D20 ROM_9D20: ; CODE XREF: ROM_39E2+5A↑p +ROM:9D20 ; ROM_9C3D+11↑p +ROM:9D20 mov A, R7 +ROM:9D21 movx @DPTR, A +ROM:9D22 clr A +ROM:9D23 mov R7, A +ROM:9D24 mov R6, A +ROM:9D25 mov R5, A +ROM:9D26 mov R4, A +ROM:9D27 ret +ROM:9D27 ; End of function ROM_9D20 +ROM:9D27 +ROM:9D28 +ROM:9D28 ; =============== S U B R O U T I N E ======================================= +ROM:9D28 +ROM:9D28 +ROM:9D28 ROM_9D28: ; CODE XREF: ROM_4F1C+19↑p +ROM:9D28 ; ROM_9C3D+20↑p +ROM:9D28 mov DPTR, #0xFDBA +ROM:9D2B movx A, @DPTR +ROM:9D2C mov R7, A +ROM:9D2D inc DPTR +ROM:9D2E movx A, @DPTR +ROM:9D2F ret +ROM:9D2F ; End of function ROM_9D28 +ROM:9D2F +ROM:9D30 +ROM:9D30 ; =============== S U B R O U T I N E ======================================= +ROM:9D30 +ROM:9D30 +ROM:9D30 ROM_9D30: ; CODE XREF: ROM_78A9+12↑p +ROM:9D30 ; ROM_9CFD+17↑p +ROM:9D30 mov DPTR, #0xF95D +ROM:9D33 xch A, R7 +ROM:9D34 movx @DPTR, A +ROM:9D35 inc DPTR +ROM:9D36 mov A, R7 +ROM:9D37 movx @DPTR, A +ROM:9D38 ret +ROM:9D38 ; End of function ROM_9D30 +ROM:9D38 +ROM:9D39 +ROM:9D39 ; =============== S U B R O U T I N E ======================================= +ROM:9D39 +ROM:9D39 +ROM:9D39 ROM_9D39: ; CODE XREF: ROM_78A9↑p +ROM:9D39 ; ROM_9CCA↑p +ROM:9D39 mov R7, RAM_1 +ROM:9D3B mov R6, RAM_2 +ROM:9D3D mov R5, RAM_3 +ROM:9D3F mov R4, #0 +ROM:9D41 ret +ROM:9D41 ; End of function ROM_9D39 +ROM:9D41 +ROM:9D42 +ROM:9D42 ; =============== S U B R O U T I N E ======================================= +ROM:9D42 +ROM:9D42 +ROM:9D42 ROM_9D42: ; CODE XREF: ROM_436B-F3E↑p +ROM:9D42 ; ROM_9C3D+5F↑p +ROM:9D42 mov A, #1 +ROM:9D42 ; End of function ROM_9D42 +ROM:9D42 +ROM:9D44 +ROM:9D44 ; =============== S U B R O U T I N E ======================================= +ROM:9D44 +ROM:9D44 +ROM:9D44 ROM_9D44: ; CODE XREF: ROM_78C8+E↑p +ROM:9D44 movx @DPTR, A +ROM:9D45 inc DPTR +ROM:9D46 mov A, #0xE0 +ROM:9D48 movx @DPTR, A +ROM:9D49 inc DPTR +ROM:9D4A mov A, #0 +ROM:9D4C movx @DPTR, A +ROM:9D4D ret +ROM:9D4D ; End of function ROM_9D44 +ROM:9D4D +ROM:9D4E +ROM:9D4E ; =============== S U B R O U T I N E ======================================= +ROM:9D4E +ROM:9D4E +ROM:9D4E ROM_9D4E: ; CODE XREF: ROM_436B+228F↑p +ROM:9D4E clr A +ROM:9D4F mov DPTR, #0xFB9E +ROM:9D52 movx @DPTR, A +ROM:9D53 inc DPTR +ROM:9D54 movx @DPTR, A +ROM:9D55 acall ROM_9EDB +ROM:9D57 mov R5, RAM_7 +ROM:9D59 mov R4, A +ROM:9D5A mov R6, A +ROM:9D5B mov A, R5 +ROM:9D5C mov R0, #3 +ROM:9D5E +ROM:9D5E ROM_9D5E: ; CODE XREF: ROM_9D4E+15↓j +ROM:9D5E xch A, R6 +ROM:9D5F clr C +ROM:9D60 rrc A +ROM:9D61 xch A, R6 +ROM:9D62 rrc A +ROM:9D63 djnz R0, ROM_9D5E +ROM:9D65 mov R3, A +ROM:9D66 mov A, R5 +ROM:9D67 anl A, #7 +ROM:9D69 inc A +ROM:9D6A mov R7, A +ROM:9D6B mov R0, A +ROM:9D6C mov A, #0xFF +ROM:9D6E inc R0 +ROM:9D6F sjmp ROM_9D73 +ROM:9D71 ; --------------------------------------------------------------------------- +ROM:9D71 +ROM:9D71 ROM_9D71: ; CODE XREF: ROM_9D4E:ROM_9D73↓j +ROM:9D71 clr C +ROM:9D72 rlc A +ROM:9D73 +ROM:9D73 ROM_9D73: ; CODE XREF: ROM_9D4E+21↑j +ROM:9D73 djnz R0, ROM_9D71 +ROM:9D75 cpl A +ROM:9D76 lcall ROM_6674 +ROM:9D79 movx A, @DPTR +ROM:9D7A mov R6, A +ROM:9D7B xrl A, R7 +ROM:9D7C jz ROM_9D80 +ROM:9D7E sjmp ROM_9DF8 +ROM:9D80 ; --------------------------------------------------------------------------- +ROM:9D80 +ROM:9D80 ROM_9D80: ; CODE XREF: ROM_9D4E+2E↑j +ROM:9D80 clr A +ROM:9D81 mov R2, A +ROM:9D82 mov R7, A +ROM:9D83 +ROM:9D83 ROM_9D83: ; CODE XREF: ROM_9D4E+45↓j +ROM:9D83 mov A, R7 +ROM:9D84 lcall ROM_3FE6 +ROM:9D87 jnc ROM_9D95 +ROM:9D89 mov A, R6 +ROM:9D8A jnb ACC0, ROM_9D8E ; Accumulator +ROM:9D8D inc R2 +ROM:9D8E +ROM:9D8E ROM_9D8E: ; CODE XREF: ROM_9D4E+3C↑j +ROM:9D8E mov A, R6 +ROM:9D8F clr C +ROM:9D90 rrc A +ROM:9D91 mov R6, A +ROM:9D92 inc R7 +ROM:9D93 sjmp ROM_9D83 +ROM:9D95 ; --------------------------------------------------------------------------- +ROM:9D95 +ROM:9D95 ROM_9D95: ; CODE XREF: ROM_9D4E+39↑j +ROM:9D95 mov DPTR, #0xFC62 +ROM:9D98 lcall ROM_578E +ROM:9D9B mov R5, A +ROM:9D9C mov R4, RAM_6 +ROM:9D9E mov A, R2 +ROM:9D9F dec A +ROM:9DA0 mov B, #0x61 ; 'a' ; B Register +ROM:9DA3 mul AB +ROM:9DA4 add A, R5 +ROM:9DA5 mov R6, A +ROM:9DA6 mov A, B ; B Register +ROM:9DA8 addc A, R4 +ROM:9DA9 mov DPTR, #0xFB9E +ROM:9DAC movx @DPTR, A +ROM:9DAD inc DPTR +ROM:9DAE xch A, R6 +ROM:9DAF movx @DPTR, A +ROM:9DB0 clr A +ROM:9DB1 mov R7, A +ROM:9DB2 +ROM:9DB2 ROM_9DB2: ; CODE XREF: ROM_9D4E+94↓j +ROM:9DB2 mov A, R7 +ROM:9DB3 clr C +ROM:9DB4 subb A, R3 +ROM:9DB5 jnc ROM_9DE4 +ROM:9DB7 mov A, #0xA1 +ROM:9DB9 add A, R7 +ROM:9DBA lcall ROM_6678 +ROM:9DBD movx A, @DPTR +ROM:9DBE cpl A +ROM:9DBF jz ROM_9DC3 +ROM:9DC1 sjmp ROM_9DF8 +ROM:9DC3 ; --------------------------------------------------------------------------- +ROM:9DC3 +ROM:9DC3 ROM_9DC3: ; CODE XREF: ROM_9D4E+71↑j +ROM:9DC3 mov A, R7 +ROM:9DC4 mov DPTR, #0xFB9F +ROM:9DC7 jnz ROM_9DD6 +ROM:9DC9 movx A, @DPTR +ROM:9DCA add A, #0xED +ROM:9DCC movx @DPTR, A +ROM:9DCD mov DPTR, #0xFB9E +ROM:9DD0 movx A, @DPTR +ROM:9DD1 addc A, #2 +ROM:9DD3 movx @DPTR, A +ROM:9DD4 sjmp ROM_9DE1 +ROM:9DD6 ; --------------------------------------------------------------------------- +ROM:9DD6 +ROM:9DD6 ROM_9DD6: ; CODE XREF: ROM_9D4E+79↑j +ROM:9DD6 movx A, @DPTR +ROM:9DD7 add A, #8 +ROM:9DD9 movx @DPTR, A +ROM:9DDA mov DPTR, #0xFB9E +ROM:9DDD movx A, @DPTR +ROM:9DDE addc A, #3 +ROM:9DE0 movx @DPTR, A +ROM:9DE1 +ROM:9DE1 ROM_9DE1: ; CODE XREF: ROM_9D4E+86↑j +ROM:9DE1 inc R7 +ROM:9DE2 sjmp ROM_9DB2 +ROM:9DE4 ; --------------------------------------------------------------------------- +ROM:9DE4 +ROM:9DE4 ROM_9DE4: ; CODE XREF: ROM_9D4E+67↑j +ROM:9DE4 mov DPTR, #0xFB9A +ROM:9DE7 movx A, @DPTR +ROM:9DE8 mov R6, A +ROM:9DE9 inc DPTR +ROM:9DEA movx A, @DPTR +ROM:9DEB mov R7, A +ROM:9DEC mov DPTR, #0xFB9E +ROM:9DEF movx A, @DPTR +ROM:9DF0 xrl A, R6 +ROM:9DF1 jnz ROM_9DF6 +ROM:9DF3 inc DPTR +ROM:9DF4 movx A, @DPTR +ROM:9DF5 xrl A, R7 +ROM:9DF6 +ROM:9DF6 ROM_9DF6: ; CODE XREF: ROM_9D4E+A3↑j +ROM:9DF6 jz ROM_9DFF +ROM:9DF8 +ROM:9DF8 ROM_9DF8: ; CODE XREF: ROM_9D4E+30↑j +ROM:9DF8 ; ROM_9D4E+73↑j +ROM:9DF8 mov DPTR, #0xFBA0 +ROM:9DFB mov A, #0x15 +ROM:9DFD movx @DPTR, A +ROM:9DFE ret +ROM:9DFF ; --------------------------------------------------------------------------- +ROM:9DFF +ROM:9DFF ROM_9DFF: ; CODE XREF: ROM_9D4E:ROM_9DF6↑j +ROM:9DFF lcall ROM_6288 +ROM:9E02 mov DPTR, #0xFB90 +ROM:9E05 lcall save_4_bytes_R4_R7 +ROM:9E08 clr A +ROM:9E09 mov DPTR, #0xFB9C +ROM:9E0C movx @DPTR, A +ROM:9E0D inc DPTR +ROM:9E0E movx @DPTR, A +ROM:9E0F +ROM:9E0F ROM_9E0F: ; CODE XREF: ROM_9D4E:ROM_9EBD↓j +ROM:9E0F mov DPTR, #0xFB98 +ROM:9E12 lcall ROM_3758 +ROM:9E15 mov DPTR, #0xFB9D +ROM:9E18 movx A, @DPTR +ROM:9E19 subb A, R7 +ROM:9E1A mov DPTR, #0xFB9C +ROM:9E1D movx A, @DPTR +ROM:9E1E subb A, R6 +ROM:9E1F jc ROM_9E23 +ROM:9E21 ajmp ROM_9EBF +ROM:9E23 ; --------------------------------------------------------------------------- +ROM:9E23 +ROM:9E23 ROM_9E23: ; CODE XREF: ROM_9D4E+D1↑j +ROM:9E23 lcall SetupWatchdog +ROM:9E26 movx A, @DPTR +ROM:9E27 mov R2, A +ROM:9E28 inc DPTR +ROM:9E29 movx A, @DPTR +ROM:9E2A mov R3, A +ROM:9E2B orl A, R2 +ROM:9E2C jnz ROM_9E3F +ROM:9E2E mov R7, A +ROM:9E2F mov R6, #0x70 ; 'p' +ROM:9E31 mov R5, A +ROM:9E32 acall ROM_9F0B +ROM:9E34 mov DPTR, #0xF837 +ROM:9E37 clr A +ROM:9E38 movx @DPTR, A +ROM:9E39 inc DPTR +ROM:9E3A mov A, #0x46 ; 'F' +ROM:9E3C movx @DPTR, A +ROM:9E3D sjmp ROM_9E6A +ROM:9E3F ; --------------------------------------------------------------------------- +ROM:9E3F +ROM:9E3F ROM_9E3F: ; CODE XREF: ROM_9D4E+DE↑j +ROM:9E3F acall ROM_9EDB +ROM:9E41 mov R6, A +ROM:9E42 mov A, R3 +ROM:9E43 cjne A, RAM_7, ROM_9E5F +ROM:9E46 mov A, R2 +ROM:9E47 cjne A, RAM_6, ROM_9E5F +ROM:9E4A acall ROM_9EE9 +ROM:9E4C mov DPTR, #0xFC62 +ROM:9E4F inc DPTR +ROM:9E50 inc DPTR +ROM:9E51 movx A, @DPTR +ROM:9E52 mov R7, A +ROM:9E53 inc DPTR +ROM:9E54 movx A, @DPTR +ROM:9E55 mov DPTR, #0xF837 +ROM:9E58 xch A, R7 +ROM:9E59 movx @DPTR, A +ROM:9E5A inc DPTR +ROM:9E5B mov A, R7 +ROM:9E5C movx @DPTR, A +ROM:9E5D sjmp ROM_9E6A +ROM:9E5F ; --------------------------------------------------------------------------- +ROM:9E5F +ROM:9E5F ROM_9E5F: ; CODE XREF: ROM_9D4E+F5↑j +ROM:9E5F ; ROM_9D4E+F9↑j +ROM:9E5F acall ROM_9EE9 +ROM:9E61 mov DPTR, #0xF837 +ROM:9E64 clr A +ROM:9E65 movx @DPTR, A +ROM:9E66 inc DPTR +ROM:9E67 mov A, #0x61 ; 'a' +ROM:9E69 movx @DPTR, A +ROM:9E6A +ROM:9E6A ROM_9E6A: ; CODE XREF: ROM_9D4E+EF↑j +ROM:9E6A ; ROM_9D4E+10F↑j +ROM:9E6A mov R3, #1 +ROM:9E6C mov R2, #0xFB +ROM:9E6E mov R1, #0xED +ROM:9E70 mov DPTR, #0xF837 +ROM:9E73 movx A, @DPTR +ROM:9E74 mov R7, A +ROM:9E75 inc DPTR +ROM:9E76 movx A, @DPTR +ROM:9E77 mov DPTR, #0xF840 +ROM:9E7A xch A, R7 +ROM:9E7B acall ROM_9F12 +ROM:9E7D lcall load_4_bytes_R4_R5_R6_A +ROM:9E80 mov R7, A +ROM:9E81 acall ROM_9CFD +ROM:9E83 mov R6, #0xFB +ROM:9E85 mov R7, #0xED +ROM:9E87 push RAM_6 +ROM:9E89 push RAM_7 +ROM:9E8B mov DPTR, #0xF837 +ROM:9E8E lcall ROM_3297 +ROM:9E91 mov R5, A +ROM:9E92 lcall ROM_42BF +ROM:9E95 mov DPTR, #0xFB90 +ROM:9E98 lcall load_4_bytes_R4_R5_R6_A +ROM:9E9B mov R7, A +ROM:9E9C mov DPTR, #0xF83F +ROM:9E9F lcall save_4_bytes_R4_R7 +ROM:9EA2 pop RAM_7 +ROM:9EA4 pop RAM_6 +ROM:9EA6 lcall ROM_8F6F +ROM:9EA9 mov DPTR, #0xFB90 +ROM:9EAC lcall save_4_bytes_R4_R7 +ROM:9EAF mov DPTR, #0xFB9D +ROM:9EB2 movx A, @DPTR +ROM:9EB3 inc A +ROM:9EB4 movx @DPTR, A +ROM:9EB5 jnz ROM_9EBD +ROM:9EB7 mov DPTR, #0xFB9C +ROM:9EBA movx A, @DPTR +ROM:9EBB inc A +ROM:9EBC movx @DPTR, A +ROM:9EBD +ROM:9EBD ROM_9EBD: ; CODE XREF: ROM_9D4E+167↑j +ROM:9EBD ajmp ROM_9E0F +ROM:9EBF ; --------------------------------------------------------------------------- +ROM:9EBF +ROM:9EBF ROM_9EBF: ; CODE XREF: ROM_9D4E+D3↑j +ROM:9EBF mov DPTR, #0xFB88 +ROM:9EC2 lcall load_4_bytes_R4_R5_R6_A +ROM:9EC5 mov R7, A +ROM:9EC6 mov DPTR, #0xFB90 +ROM:9EC9 lcall load_4_bytes_R0_R1_R2_R3 +ROM:9ECC clr C +ROM:9ECD lcall code_B1C +ROM:9ED0 mov DPTR, #0xFBA0 +ROM:9ED3 jnz ROM_9ED7 +ROM:9ED5 movx @DPTR, A +ROM:9ED6 ret +ROM:9ED7 ; --------------------------------------------------------------------------- +ROM:9ED7 +ROM:9ED7 ROM_9ED7: ; CODE XREF: ROM_9D4E+185↑j +ROM:9ED7 mov A, #0x19 +ROM:9ED9 movx @DPTR, A +ROM:9EDA ret +ROM:9EDA ; End of function ROM_9D4E +ROM:9EDA +ROM:9EDB +ROM:9EDB ; =============== S U B R O U T I N E ======================================= +ROM:9EDB +ROM:9EDB +ROM:9EDB ROM_9EDB: ; CODE XREF: ROM_436B:ROM_6573↑p +ROM:9EDB ; ROM_9D4E+7↑p ... +ROM:9EDB mov DPTR, #0xFB99 +ROM:9EDE movx A, @DPTR +ROM:9EDF add A, #0xFF +ROM:9EE1 mov R7, A +ROM:9EE2 mov DPTR, #0xFB98 +ROM:9EE5 movx A, @DPTR +ROM:9EE6 addc A, #0xFF +ROM:9EE8 ret +ROM:9EE8 ; End of function ROM_9EDB +ROM:9EE8 +ROM:9EE9 +ROM:9EE9 ; =============== S U B R O U T I N E ======================================= +ROM:9EE9 +ROM:9EE9 +ROM:9EE9 ROM_9EE9: ; CODE XREF: ROM_436B:ROM_65A5↑p +ROM:9EE9 ; ROM_9D4E+FC↑p ... +ROM:9EE9 mov DPTR, #0xFB9D +ROM:9EEC movx A, @DPTR +ROM:9EED add A, #0xFF +ROM:9EEF mov R7, A +ROM:9EF0 mov DPTR, #0xFB9C +ROM:9EF3 movx A, @DPTR +ROM:9EF4 addc A, #0xFF +ROM:9EF6 mov R6, A +ROM:9EF7 mov R4, #0 +ROM:9EF9 mov R5, #0x61 ; 'a' +ROM:9EFB lcall code_8DE +ROM:9EFE mov A, R7 +ROM:9EFF add A, #0x46 ; 'F' +ROM:9F01 mov R7, A +ROM:9F02 mov A, R6 +ROM:9F03 addc A, #0x70 ; 'p' +ROM:9F05 mov R6, A +ROM:9F06 clr A +ROM:9F07 rlc A +ROM:9F08 mov R5, A +ROM:9F09 mov A, R4 +ROM:9F0A rlc A +ROM:9F0A ; End of function ROM_9EE9 +ROM:9F0A +ROM:9F0B +ROM:9F0B ; =============== S U B R O U T I N E ======================================= +ROM:9F0B +ROM:9F0B +ROM:9F0B ROM_9F0B: ; CODE XREF: ROM_436B+21FF↑p +ROM:9F0B ; ROM_9D4E+E4↑p +ROM:9F0B mov R4, A +ROM:9F0C mov DPTR, #0xFB8C +ROM:9F0F ljmp save_4_bytes_R4_R7 +ROM:9F0F ; End of function ROM_9F0B +ROM:9F0F +ROM:9F12 +ROM:9F12 ; =============== S U B R O U T I N E ======================================= +ROM:9F12 +ROM:9F12 +ROM:9F12 ROM_9F12: ; CODE XREF: ROM_436B+2250↑p +ROM:9F12 ; ROM_9D4E+12D↑p +ROM:9F12 movx @DPTR, A +ROM:9F13 inc DPTR +ROM:9F14 mov A, R7 +ROM:9F15 movx @DPTR, A +ROM:9F16 mov DPTR, #0xFB8C +ROM:9F19 ret +ROM:9F19 ; End of function ROM_9F12 +ROM:9F19 +ROM:9F19 ; --------------------------------------------------------------------------- +ROM:9F1A .byte 0xF1 +ROM:9F1B .byte 0x30 ; 0 +ROM:9F1C .byte 0x12 +ROM:9F1D .byte 0x5F ; _ +ROM:9F1E .byte 0xA3 +ROM:9F1F .byte 0xE4 +ROM:9F20 .byte 0xFD +ROM:9F21 .byte 0xFF +ROM:9F22 .byte 0x12 +ROM:9F23 .byte 0x4F ; O +ROM:9F24 .byte 0x2C ; , +ROM:9F25 .byte 0x7F ;  +ROM:9F26 .byte 1 +ROM:9F27 .byte 0x12 +ROM:9F28 .byte 0x57 ; W +ROM:9F29 .byte 0x9D +ROM:9F2A .byte 0x12 +ROM:9F2B .byte 0x57 ; W +ROM:9F2C .byte 0x4A ; J +ROM:9F2D .byte 2 +ROM:9F2E .byte 0x4F ; O +ROM:9F2F .byte 0x2C ; , +ROM:9F30 .byte 0x12 +ROM:9F31 .byte 0x4F ; O +ROM:9F32 .byte 0xB6 +ROM:9F33 .byte 0x7E ; ~ +ROM:9F34 .byte 0x13 +ROM:9F35 .byte 0x7F ;  +ROM:9F36 .byte 0x88 +ROM:9F37 .byte 0x7D ; } +ROM:9F38 .byte 0 +ROM:9F39 .byte 0x22 ; " +ROM:9F3A +ROM:9F3A ; =============== S U B R O U T I N E ======================================= +ROM:9F3A +ROM:9F3A +ROM:9F3A ROM_9F3A: ; CODE XREF: MainRadioSomething_ROM_9F3D+3F↓p +ROM:9F3A mov RAM_1A, R7 +ROM:9F3C ret +ROM:9F3C ; End of function ROM_9F3A +ROM:9F3C +ROM:9F3D +ROM:9F3D ; =============== S U B R O U T I N E ======================================= +ROM:9F3D +ROM:9F3D +ROM:9F3D MainRadioSomething_ROM_9F3D: ; CODE XREF: start_0+19E0↑p +ROM:9F3D mov DPTR, #0xFE64 +ROM:9F40 lcall ROM_7FA0 +ROM:9F43 mov A, #0x84 +ROM:9F45 movx @DPTR, A +ROM:9F46 lcall ROM_A0C8 +ROM:9F49 lcall Init_Radio_ROM_7FB5 +ROM:9F4C mov R7, #1 +ROM:9F4E lcall RadioSomething_ROM_A697 +ROM:9F51 clr ES ; Interrupt Enable Register 0 +ROM:9F53 lcall Radio_Something_Setup_ROM_4B0C +ROM:9F56 clr A +ROM:9F57 mov R7, A +ROM:9F58 lcall RadioSomething_ROM_A697 +ROM:9F5B mov DPTR, #0xDFAF +ROM:9F5E movx A, @DPTR +ROM:9F5F orl A, #0x10 +ROM:9F61 movx @DPTR, A +ROM:9F62 setb ES ; Interrupt Enable Register 0 +ROM:9F64 lcall ROM_A3DF +ROM:9F67 acall ROM_9FBA +ROM:9F69 acall Timer0_Reset_ROM_9F84 +ROM:9F6B acall unknown_registers_ROM_9F8D +ROM:9F6D mov R7, #1 +ROM:9F6F lcall get_reset_radio_flags +ROM:9F72 dec R7 +ROM:9F73 lcall ROM_27D4 +ROM:9F76 lcall read_unknown_radio_reg_ROM_A51A +ROM:9F79 lcall j_encryption_something_maybe_code_107D +ROM:9F7C acall ROM_9F3A +ROM:9F7E lcall ROM_A3D6 +ROM:9F81 clr RAM_20.1 +ROM:9F83 ret +ROM:9F83 ; End of function MainRadioSomething_ROM_9F3D +ROM:9F83 +ROM:9F84 +ROM:9F84 ; =============== S U B R O U T I N E ======================================= +ROM:9F84 +ROM:9F84 +ROM:9F84 Timer0_Reset_ROM_9F84: ; CODE XREF: MainRadioSomething_ROM_9F3D+2C↑p +ROM:9F84 ; ROM_9FA5+6↓p +ROM:9F84 clr A +ROM:9F85 mov TL0, A ; Timer 0 Low Byte +ROM:9F87 mov TH0, A ; Timer 0 High Byte +ROM:9F89 orl TMOD, #1 ; Timer Mode Control Register +ROM:9F8C ret +ROM:9F8C ; End of function Timer0_Reset_ROM_9F84 +ROM:9F8C +ROM:9F8D +ROM:9F8D ; =============== S U B R O U T I N E ======================================= +ROM:9F8D +ROM:9F8D +ROM:9F8D unknown_registers_ROM_9F8D: ; CODE XREF: ROM_30A0+F↑p +ROM:9F8D ; MainRadioSomething_ROM_9F3D+2E↑p ... +ROM:9F8D anl FSR_C1, #0xDF +ROM:9F90 anl FSR_A1, #0xFE +ROM:9F93 lcall ROM_DA44 +ROM:9F96 mov FSR_C1, A +ROM:9F98 mov FSR_C2, #0xF +ROM:9F9B mov FSR_C3, #0x49 ; 'I' +ROM:9F9E anl FSR_C1, #0xBF +ROM:9FA1 anl FSR_C1, #0x7E +ROM:9FA4 ret +ROM:9FA4 ; End of function unknown_registers_ROM_9F8D +ROM:9FA4 +ROM:9FA5 +ROM:9FA5 ; =============== S U B R O U T I N E ======================================= +ROM:9FA5 +ROM:9FA5 +ROM:9FA5 ROM_9FA5: ; CODE XREF: ROM_2815+5↑p +ROM:9FA5 lcall ROM_D927 +ROM:9FA8 lcall ROM_A0C8 +ROM:9FAB acall Timer0_Reset_ROM_9F84 +ROM:9FAD acall unknown_registers_ROM_9F8D +ROM:9FAF lcall ROM_A3DF +ROM:9FB2 acall ROM_9FBA +ROM:9FB4 lcall FlushRXFiFo_ROM_A368 +ROM:9FB7 inc A +ROM:9FB8 movx @DPTR, A +ROM:9FB9 ret +ROM:9FB9 ; End of function ROM_9FA5 +ROM:9FB9 +ROM:9FBA +ROM:9FBA ; =============== S U B R O U T I N E ======================================= +ROM:9FBA +ROM:9FBA +ROM:9FBA ROM_9FBA: ; CODE XREF: MainRadioSomething_ROM_9F3D+2A↑p +ROM:9FBA ; ROM_9FA5+D↑p +ROM:9FBA setb C +ROM:9FBB jbc EA, ROM_9FBF ; Interrupt Enable Register 0 +ROM:9FBE clr C +ROM:9FBF +ROM:9FBF ROM_9FBF: ; CODE XREF: ROM_9FBA+1↑j +ROM:9FBF lcall ROM_A3EC +ROM:9FC2 mov DPTR, #0xFEC1 +ROM:9FC5 +ROM:9FC5 ROM_9FC5: ; CODE XREF: ROM_A3DF+A↓j +ROM:9FC5 movx @DPTR, A +ROM:9FC6 mov DPTR, #0xF831 +ROM:9FC9 movx A, @DPTR +ROM:9FCA add A, #0xFF +ROM:9FCC mov EA, C ; Interrupt Enable Register 0 +ROM:9FCE ret +ROM:9FCE ; End of function ROM_9FBA +ROM:9FCE +ROM:9FCF +ROM:9FCF ; =============== S U B R O U T I N E ======================================= +ROM:9FCF +ROM:9FCF +ROM:9FCF ROM_9FCF: ; CODE XREF: ROM_A044+48↓p +ROM:9FCF mov DPTR, #0xF70D +ROM:9FD2 mov A, R6 +ROM:9FD3 movx @DPTR, A +ROM:9FD4 inc DPTR +ROM:9FD5 mov A, R7 +ROM:9FD6 movx @DPTR, A +ROM:9FD7 mov DPTR, #0xDF92 +ROM:9FDA mov A, R6 +ROM:9FDB movx @DPTR, A +ROM:9FDC inc DPTR +ROM:9FDD mov A, R7 +ROM:9FDE movx @DPTR, A +ROM:9FDF ret +ROM:9FDF ; End of function ROM_9FCF +ROM:9FDF +ROM:9FDF ; --------------------------------------------------------------------------- +ROM:9FE0 .byte 0x90 +ROM:9FE1 .byte 0xF8 +ROM:9FE2 .byte 0x34 ; 4 +ROM:9FE3 .byte 0x12 +ROM:9FE4 .byte 0x67 ; g +ROM:9FE5 .byte 0x9A +ROM:9FE6 .byte 0xE4 +ROM:9FE7 .byte 0x90 +ROM:9FE8 .byte 0xFC +ROM:9FE9 .byte 0xE1 +ROM:9FEA .byte 0xF0 +ROM:9FEB .byte 0xFE +ROM:9FEC .byte 0x7F ;  +ROM:9FED .byte 0x78 ; x +ROM:9FEE .byte 0xFD +ROM:9FEF .byte 0x7B ; { +ROM:9FF0 .byte 1 +ROM:9FF1 .byte 0x7A ; z +ROM:9FF2 .byte 0xFC +ROM:9FF3 .byte 0x79 ; y +ROM:9FF4 .byte 0x69 ; i +ROM:9FF5 .byte 0x12 +ROM:9FF6 .byte 0xE +ROM:9FF7 .byte 0xA0 +ROM:9FF8 .byte 0x90 +ROM:9FF9 .byte 0xF8 +ROM:9FFA .byte 0x34 ; 4 +ROM:9FFB .byte 0xE0 +ROM:9FFC .byte 0xFF +ROM:9FFD .byte 0xA3 +ROM:9FFE .byte 0xE0 +ROM:9FFF .byte 0x90 +ROM:A000 .byte 0xFC +ROM:A001 .byte 0x67 ; g +ROM:A002 .byte 0xCF +ROM:A003 .byte 0xF0 +ROM:A004 .byte 0xA3 +ROM:A005 .byte 0xEF +ROM:A006 .byte 0xF0 +ROM:A007 .byte 0x90 +ROM:A008 .byte 0xF8 +ROM:A009 .byte 0x36 ; 6 +ROM:A00A .byte 0xE0 +ROM:A00B .byte 0x90 +ROM:A00C .byte 0xFC +ROM:A00D .byte 0x66 ; f +ROM:A00E .byte 0xF0 +ROM:A00F .byte 0x90 +ROM:A010 .byte 0xFC +ROM:A011 .byte 0xE2 +ROM:A012 .byte 0x74 ; t +ROM:A013 .byte 0xFF +ROM:A014 .byte 0xF0 +ROM:A015 .byte 0x7F ;  +ROM:A016 .byte 0xAF +ROM:A017 .byte 0x7E ; ~ +ROM:A018 .byte 0x10 +ROM:A019 .byte 0x12 +ROM:A01A .byte 0x9F +ROM:A01B .byte 0xCF +ROM:A01C .byte 0x7F ;  +ROM:A01D .byte 3 +ROM:A01E .byte 0x11 +ROM:A01F .byte 0x23 ; # +ROM:A020 .byte 0xD2 +ROM:A021 .byte 1 +ROM:A022 .byte 0x22 ; " +ROM:A023 +ROM:A023 ; =============== S U B R O U T I N E ======================================= +ROM:A023 +ROM:A023 +ROM:A023 ROM_A023: ; CODE XREF: ROM_7B9E+110↑p +ROM:A023 ; ROM_A114+74↓p +ROM:A023 setb C +ROM:A024 jbc EA, ROM_A028 ; Interrupt Enable Register 0 +ROM:A027 clr C +ROM:A028 +ROM:A028 ROM_A028: ; CODE XREF: ROM_A023+1↑j +ROM:A028 clr A +ROM:A029 rlc A +ROM:A02A mov DPTR, #0xFEC2 +ROM:A02D movx @DPTR, A +ROM:A02E acall ROM_A1B0 +ROM:A030 sjmp ROM_A034 +ROM:A032 ; --------------------------------------------------------------------------- +ROM:A032 +ROM:A032 ROM_A032: ; CODE XREF: ROM_A023:ROM_A034↓j +ROM:A032 clr C +ROM:A033 rlc A +ROM:A034 +ROM:A034 ROM_A034: ; CODE XREF: ROM_A023+D↑j +ROM:A034 djnz R0, ROM_A032 +ROM:A036 orl A, R6 +ROM:A037 mov DPTR, #0xFEC3 +ROM:A03A movx @DPTR, A +ROM:A03B mov DPTR, #0xFEC2 +ROM:A03E movx A, @DPTR +ROM:A03F add A, #0xFF +ROM:A041 mov EA, C ; Interrupt Enable Register 0 +ROM:A043 ret +ROM:A043 ; End of function ROM_A023 +ROM:A043 +ROM:A044 +ROM:A044 ; =============== S U B R O U T I N E ======================================= +ROM:A044 +ROM:A044 +ROM:A044 ROM_A044: ; CODE XREF: ROM_49FD:ROM_4A14↑p +ROM:A044 +ROM:A044 ; FUNCTION CHUNK AT ROM:6A10 SIZE 00000153 BYTES +ROM:A044 +ROM:A044 lcall SetupWatchdog +ROM:A047 clr A +ROM:A048 mov R7, A +ROM:A049 lcall ROM_27D4 +ROM:A04C acall ROM_A19B +ROM:A04E acall ROM_A0B9 +ROM:A050 jc ROM_A05B +ROM:A052 mov DPTR, #0xFCE1 +ROM:A055 movx A, @DPTR +ROM:A056 lcall ROM_3FE7 +ROM:A059 jnc ROM_A07E +ROM:A05B +ROM:A05B ROM_A05B: ; CODE XREF: ROM_A044+C↑j +ROM:A05B ; ROM_A044+34↓j +ROM:A05B mov DPTR, #0xFCE2 +ROM:A05E movx A, @DPTR +ROM:A05F mov R7, A +ROM:A060 mov DPTR, #0xFC67 +ROM:A063 movx A, @DPTR +ROM:A064 mov R6, A +ROM:A065 inc DPTR +ROM:A066 movx A, @DPTR +ROM:A067 mov R0, RAM_7 +ROM:A069 inc R0 +ROM:A06A sjmp ROM_A071 +ROM:A06C ; --------------------------------------------------------------------------- +ROM:A06C +ROM:A06C ROM_A06C: ; CODE XREF: ROM_A044:ROM_A071↓j +ROM:A06C xch A, R6 +ROM:A06D clr C +ROM:A06E rrc A +ROM:A06F xch A, R6 +ROM:A070 rrc A +ROM:A071 +ROM:A071 ROM_A071: ; CODE XREF: ROM_A044+26↑j +ROM:A071 djnz R0, ROM_A06C +ROM:A073 jb ACC0, ROM_A080 ; Accumulator +ROM:A076 acall ROM_A0B9 +ROM:A078 jc ROM_A05B +ROM:A07A clr RAM_20.1 +ROM:A07C sjmp ROM_A080 +ROM:A07E ; --------------------------------------------------------------------------- +ROM:A07E +ROM:A07E ROM_A07E: ; CODE XREF: ROM_A044+15↑j +ROM:A07E clr RAM_20.1 +ROM:A080 +ROM:A080 ROM_A080: ; CODE XREF: ROM_A044+2F↑j +ROM:A080 ; ROM_A044+38↑j +ROM:A080 jb RAM_20.1, ROM_A09B +ROM:A083 clr A +ROM:A084 mov R7, A +ROM:A085 lcall ROM_27D4 +ROM:A088 mov R7, #0xCF +ROM:A08A mov R6, #0x10 +ROM:A08C lcall ROM_9FCF +ROM:A08F mov R6, #0xFC +ROM:A091 mov R7, #0x69 ; 'i' +ROM:A093 mov DPTR, #0xFCE1 +ROM:A096 movx A, @DPTR +ROM:A097 mov R5, A +ROM:A098 ljmp ROM_6A10 +ROM:A09B ; --------------------------------------------------------------------------- +ROM:A09B +ROM:A09B ROM_A09B: ; CODE XREF: ROM_A044:ROM_A080↑j +ROM:A09B acall ROM_A0C8 +ROM:A09D mov R7, #1 +ROM:A09F lcall ROM_27D4 +ROM:A0A2 mov DPTR, #0xFCE2 +ROM:A0A5 movx A, @DPTR +ROM:A0A6 add A, #0xB +ROM:A0A8 mov R7, A +ROM:A0A9 lcall ROM_668A +ROM:A0AC lcall ROM_7EE1 +ROM:A0AF mov DPTR, #0xFC66 +ROM:A0B2 movx A, @DPTR +ROM:A0B3 mov R7, A +ROM:A0B4 mov R5, #3 +ROM:A0B6 ljmp ROM_35EC +ROM:A0B6 ; End of function ROM_A044 +ROM:A0B6 +ROM:A0B9 +ROM:A0B9 ; =============== S U B R O U T I N E ======================================= +ROM:A0B9 +ROM:A0B9 +ROM:A0B9 ROM_A0B9: ; CODE XREF: ROM_A044+A↑p +ROM:A0B9 ; ROM_A044+32↑p +ROM:A0B9 mov DPTR, #0xFCE2 +ROM:A0BC movx A, @DPTR +ROM:A0BD inc A +ROM:A0BE movx @DPTR, A +ROM:A0BF movx A, @DPTR +ROM:A0BF ; End of function ROM_A0B9 +ROM:A0BF +ROM:A0C0 +ROM:A0C0 ; =============== S U B R O U T I N E ======================================= +ROM:A0C0 +ROM:A0C0 +ROM:A0C0 ROM_A0C0: ; CODE XREF: ROM_668A+5↑p +ROM:A0C0 clr C +ROM:A0C1 subb A, #0x10 +ROM:A0C3 mov A, #0x80 +ROM:A0C5 subb A, #0x80 +ROM:A0C7 ret +ROM:A0C7 ; End of function ROM_A0C0 +ROM:A0C7 +ROM:A0C8 +ROM:A0C8 ; =============== S U B R O U T I N E ======================================= +ROM:A0C8 +ROM:A0C8 +ROM:A0C8 ROM_A0C8: ; CODE XREF: MainRadioSomething_ROM_9F3D+9↑p +ROM:A0C8 ; ROM_9FA5+3↑p ... +ROM:A0C8 mov DPTR, #0xFE36 +ROM:A0CB lcall ROM_7FA0 +ROM:A0CE mov A, #0x8C +ROM:A0D0 movx @DPTR, A +ROM:A0D1 lcall ROM_7F9D +ROM:A0D4 mov A, #0xD0 +ROM:A0D6 movx @DPTR, A +ROM:A0D7 clr A +ROM:A0D8 mov DPTR, #0xFE4D +ROM:A0DB movx @DPTR, A +ROM:A0DC inc DPTR +ROM:A0DD movx @DPTR, A +ROM:A0DE mov DPTR, #0xFE42 +ROM:A0E1 movx @DPTR, A +ROM:A0E2 inc DPTR +ROM:A0E3 movx @DPTR, A +ROM:A0E4 mov DPTR, #0xF831 +ROM:A0E7 movx @DPTR, A +ROM:A0E8 +ROM:A0E8 ROM_A0E8: ; CODE XREF: ROM_A0C8+30↓j +ROM:A0E8 mov DPTR, #0xF831 +ROM:A0EB movx A, @DPTR +ROM:A0EC mov R7, A +ROM:A0ED lcall ROM_87AE +ROM:A0F0 jnc ROM_A0FA +ROM:A0F2 lcall ROM_84EB +ROM:A0F5 lcall ROM_4FE8 +ROM:A0F8 sjmp ROM_A0E8 +ROM:A0FA ; --------------------------------------------------------------------------- +ROM:A0FA +ROM:A0FA ROM_A0FA: ; CODE XREF: ROM_A0C8+28↑j +ROM:A0FA acall ROM_A1E0 +ROM:A0FC movx @DPTR, A +ROM:A0FD mov DPTR, #0xF831 +ROM:A100 movx @DPTR, A +ROM:A101 +ROM:A101 ROM_A101: ; CODE XREF: ROM_A0C8+49↓j +ROM:A101 mov DPTR, #0xF831 +ROM:A104 movx A, @DPTR +ROM:A105 mov R7, A +ROM:A106 lcall ROM_23E8 +ROM:A109 jnc ROM_A113 +ROM:A10B lcall ROM_7B6C +ROM:A10E lcall ROM_4FE8 +ROM:A111 sjmp ROM_A101 +ROM:A113 ; --------------------------------------------------------------------------- +ROM:A113 +ROM:A113 ROM_A113: ; CODE XREF: ROM_A0C8+41↑j +ROM:A113 ret +ROM:A113 ; End of function ROM_A0C8 +ROM:A113 +ROM:A114 +ROM:A114 ; =============== S U B R O U T I N E ======================================= +ROM:A114 +ROM:A114 +ROM:A114 ROM_A114: ; CODE XREF: ROM_7B9E+135↑p +ROM:A114 mov DPTR, #0xF82E +ROM:A117 mov A, R5 +ROM:A118 movx @DPTR, A +ROM:A119 mov DPTR, #0xF82D +ROM:A11C mov A, R7 +ROM:A11D movx @DPTR, A +ROM:A11E xrl A, #0xE1 +ROM:A120 jnz ROM_A13C +ROM:A122 mov DPTR, #0xDFC0 +ROM:A125 movx A, @DPTR +ROM:A126 mov DPTR, #0xF725 +ROM:A129 movx @DPTR, A +ROM:A12A mov DPTR, #0xF82E +ROM:A12D movx A, @DPTR +ROM:A12E clr C +ROM:A12F subb A, #0x1A +ROM:A131 mov A, #0x80 +ROM:A133 subb A, #0x80 +ROM:A135 jc ROM_A18A +ROM:A137 mov DPTR, #0xF7BB +ROM:A13A sjmp ROM_A18B +ROM:A13C ; --------------------------------------------------------------------------- +ROM:A13C +ROM:A13C ROM_A13C: ; CODE XREF: ROM_A114+C↑j +ROM:A13C clr A +ROM:A13D mov R7, A +ROM:A13E lcall ROM_27D4 +ROM:A141 mov DPTR, #0xF7B5 +ROM:A144 movx A, @DPTR +ROM:A145 anl A, #0xF +ROM:A147 add A, #0xB +ROM:A149 mov DPTR, #0xF725 +ROM:A14C movx @DPTR, A +ROM:A14D mov DPTR, #0xF82D +ROM:A150 movx A, @DPTR +ROM:A151 add A, #0x2F ; '/' +ROM:A153 jz ROM_A168 +ROM:A155 dec A +ROM:A156 jz ROM_A174 +ROM:A158 add A, #2 +ROM:A15A jnz ROM_A186 +ROM:A15C mov DPTR, #0xF82E +ROM:A15F acall ROM_A1A7 +ROM:A161 jc ROM_A186 +ROM:A163 mov DPTR, #0xF7C3 +ROM:A166 sjmp ROM_A184 +ROM:A168 ; --------------------------------------------------------------------------- +ROM:A168 +ROM:A168 ROM_A168: ; CODE XREF: ROM_A114+3F↑j +ROM:A168 mov DPTR, #0xF82E +ROM:A16B acall ROM_A19E +ROM:A16D jc ROM_A186 +ROM:A16F mov DPTR, #0xF7C7 +ROM:A172 sjmp ROM_A184 +ROM:A174 ; --------------------------------------------------------------------------- +ROM:A174 +ROM:A174 ROM_A174: ; CODE XREF: ROM_A114+42↑j +ROM:A174 mov DPTR, #0xF82E +ROM:A177 movx A, @DPTR +ROM:A178 clr C +ROM:A179 subb A, #0x44 ; 'D' +ROM:A17B mov A, #0x80 +ROM:A17D subb A, #0x80 +ROM:A17F jc ROM_A186 +ROM:A181 mov DPTR, #0xF7E5 +ROM:A184 +ROM:A184 ROM_A184: ; CODE XREF: ROM_A114+52↑j +ROM:A184 ; ROM_A114+5E↑j +ROM:A184 acall ROM_A18B +ROM:A186 +ROM:A186 ROM_A186: ; CODE XREF: ROM_A114+46↑j +ROM:A186 ; ROM_A114+4D↑j ... +ROM:A186 mov R7, #3 +ROM:A188 acall ROM_A023 +ROM:A18A +ROM:A18A ROM_A18A: ; CODE XREF: ROM_A114+21↑j +ROM:A18A ret +ROM:A18A ; End of function ROM_A114 +ROM:A18A +ROM:A18B +ROM:A18B ; =============== S U B R O U T I N E ======================================= +ROM:A18B +ROM:A18B +ROM:A18B ROM_A18B: ; CODE XREF: ROM_A114+26↑j +ROM:A18B ; ROM_A114:ROM_A184↑p +ROM:A18B movx A, @DPTR +ROM:A18C mov R6, A +ROM:A18D inc DPTR +ROM:A18D ; End of function ROM_A18B +ROM:A18D +ROM:A18E +ROM:A18E ; =============== S U B R O U T I N E ======================================= +ROM:A18E +ROM:A18E +ROM:A18E ROM_A18E: ; CODE XREF: ROM_436B+C8↑p +ROM:A18E movx A, @DPTR +ROM:A18F mov R5, A +ROM:A190 mov A, R5 +ROM:A191 mov R7, A +ROM:A192 mov DPTR, #0xF553 +ROM:A195 mov A, R6 +ROM:A196 movx @DPTR, A +ROM:A197 inc DPTR +ROM:A198 mov A, R7 +ROM:A199 movx @DPTR, A +ROM:A19A ret +ROM:A19A ; End of function ROM_A18E +ROM:A19A +ROM:A19B +ROM:A19B ; =============== S U B R O U T I N E ======================================= +ROM:A19B +ROM:A19B ; Attributes: thunk +ROM:A19B +ROM:A19B ROM_A19B: ; CODE XREF: ROM_A044+8↑p +ROM:A19B ljmp code_426 +ROM:A19B ; End of function ROM_A19B +ROM:A19B +ROM:A19E +ROM:A19E ; =============== S U B R O U T I N E ======================================= +ROM:A19E +ROM:A19E +ROM:A19E ROM_A19E: ; CODE XREF: ROM_436B+9C↑p +ROM:A19E ; ROM_A114+57↑p +ROM:A19E movx A, @DPTR +ROM:A19F clr C +ROM:A1A0 subb A, #0x25 ; '%' +ROM:A1A2 mov A, #0x80 +ROM:A1A4 subb A, #0x80 +ROM:A1A6 ret +ROM:A1A6 ; End of function ROM_A19E +ROM:A1A6 +ROM:A1A7 +ROM:A1A7 ; =============== S U B R O U T I N E ======================================= +ROM:A1A7 +ROM:A1A7 +ROM:A1A7 ROM_A1A7: ; CODE XREF: ROM_436B+87↑p +ROM:A1A7 ; ROM_A114+4B↑p +ROM:A1A7 movx A, @DPTR +ROM:A1A8 clr C +ROM:A1A9 subb A, #0x21 ; '!' +ROM:A1AB mov A, #0x80 +ROM:A1AD subb A, #0x80 +ROM:A1AF ret +ROM:A1AF ; End of function ROM_A1A7 +ROM:A1AF +ROM:A1B0 +ROM:A1B0 ; =============== S U B R O U T I N E ======================================= +ROM:A1B0 +ROM:A1B0 +ROM:A1B0 ROM_A1B0: ; CODE XREF: ROM_A023+B↑p +ROM:A1B0 ; ROM_A1BB:ROM_A1C6↓p +ROM:A1B0 mov DPTR, #0xFEC3 +ROM:A1B0 ; End of function ROM_A1B0 +ROM:A1B0 +ROM:A1B3 +ROM:A1B3 ; =============== S U B R O U T I N E ======================================= +ROM:A1B3 +ROM:A1B3 +ROM:A1B3 ROM_A1B3: ; CODE XREF: ROM_2E76+F↑p +ROM:A1B3 ; ROM_6936+E↑p +ROM:A1B3 movx A, @DPTR +ROM:A1B4 mov R6, A +ROM:A1B5 mov R0, RAM_7 +ROM:A1B7 mov A, #1 +ROM:A1B9 inc R0 +ROM:A1BA ret +ROM:A1BA ; End of function ROM_A1B3 +ROM:A1BA +ROM:A1BB +ROM:A1BB ; =============== S U B R O U T I N E ======================================= +ROM:A1BB +ROM:A1BB +ROM:A1BB ROM_A1BB: ; CODE XREF: ROM_2E66+D↑p +ROM:A1BB setb C +ROM:A1BC jbc EA, ROM_A1C0 ; Interrupt Enable Register 0 +ROM:A1BF clr C +ROM:A1C0 +ROM:A1C0 ROM_A1C0: ; CODE XREF: ROM_A1BB+1↑j +ROM:A1C0 acall ROM_A1D7 +ROM:A1C2 jnz ROM_A1C6 +ROM:A1C4 sjmp ROM_A1D0 +ROM:A1C6 ; --------------------------------------------------------------------------- +ROM:A1C6 +ROM:A1C6 ROM_A1C6: ; CODE XREF: ROM_A1BB+7↑j +ROM:A1C6 acall ROM_A1B0 +ROM:A1C8 sjmp ROM_A1CC +ROM:A1CA ; --------------------------------------------------------------------------- +ROM:A1CA +ROM:A1CA ROM_A1CA: ; CODE XREF: ROM_A1BB:ROM_A1CC↓j +ROM:A1CA clr C +ROM:A1CB rlc A +ROM:A1CC +ROM:A1CC ROM_A1CC: ; CODE XREF: ROM_A1BB+D↑j +ROM:A1CC djnz R0, ROM_A1CA +ROM:A1CE cpl A +ROM:A1CF anl A, R6 +ROM:A1D0 +ROM:A1D0 ROM_A1D0: ; CODE XREF: ROM_A1BB+9↑j +ROM:A1D0 mov DPTR, #0xFEC3 +ROM:A1D3 movx @DPTR, A +ROM:A1D4 ljmp ROM_2E94 +ROM:A1D4 ; End of function ROM_A1BB +ROM:A1D4 +ROM:A1D7 +ROM:A1D7 ; =============== S U B R O U T I N E ======================================= +ROM:A1D7 +ROM:A1D7 +ROM:A1D7 ROM_A1D7: ; CODE XREF: ROM_2E76:ROM_2E7B↑p +ROM:A1D7 ; ROM_A1BB:ROM_A1C0↑p +ROM:A1D7 clr A +ROM:A1D8 rlc A +ROM:A1D9 mov DPTR, #0xF847 +ROM:A1DC movx @DPTR, A +ROM:A1DD mov A, R7 +ROM:A1DE cpl A +ROM:A1DF ret +ROM:A1DF ; End of function ROM_A1D7 +ROM:A1DF +ROM:A1E0 +ROM:A1E0 ; =============== S U B R O U T I N E ======================================= +ROM:A1E0 +ROM:A1E0 +ROM:A1E0 ROM_A1E0: ; CODE XREF: ROM_A0C8:ROM_A0FA↑p +ROM:A1E0 ; ROM_A1ED+6↓p +ROM:A1E0 clr A +ROM:A1E1 mov DPTR, #0xFE4A +ROM:A1E4 movx @DPTR, A +ROM:A1E5 inc DPTR +ROM:A1E6 movx @DPTR, A +ROM:A1E7 mov DPTR, #0xFE3F +ROM:A1EA movx @DPTR, A +ROM:A1EB inc DPTR +ROM:A1EC ret +ROM:A1EC ; End of function ROM_A1E0 +ROM:A1EC +ROM:A1ED +ROM:A1ED ; =============== S U B R O U T I N E ======================================= +ROM:A1ED +ROM:A1ED +ROM:A1ED ROM_A1ED: ; CODE XREF: ROM_27D4+1D↑p +ROM:A1ED ; ROM_436B-1064↑p ... +ROM:A1ED lcall ROM_7F9D +ROM:A1F0 mov A, #0xD0 +ROM:A1F2 movx @DPTR, A +ROM:A1F3 acall ROM_A1E0 +ROM:A1F5 movx @DPTR, A +ROM:A1F6 mov DPTR, #0xF847 +ROM:A1F9 movx @DPTR, A +ROM:A1FA +ROM:A1FA ROM_A1FA: ; CODE XREF: ROM_A1ED+20↓j +ROM:A1FA mov DPTR, #0xF847 +ROM:A1FD movx A, @DPTR +ROM:A1FE mov R7, A +ROM:A1FF lcall ROM_23E8 +ROM:A202 jnc ROM_A20F +ROM:A204 lcall ROM_7B6C +ROM:A207 mov DPTR, #0xF847 +ROM:A20A movx A, @DPTR +ROM:A20B inc A +ROM:A20C movx @DPTR, A +ROM:A20D sjmp ROM_A1FA +ROM:A20F ; --------------------------------------------------------------------------- +ROM:A20F +ROM:A20F ROM_A20F: ; CODE XREF: ROM_A1ED+15↑j +ROM:A20F ret +ROM:A20F ; End of function ROM_A1ED +ROM:A20F +ROM:A210 +ROM:A210 ; =============== S U B R O U T I N E ======================================= +ROM:A210 +ROM:A210 +ROM:A210 get_reset_radio_flags: ; CODE XREF: MainRadioSomething_ROM_9F3D+32↑p +ROM:A210 mov DPTR, #0xF70F +ROM:A213 mov A, R7 +ROM:A214 movx @DPTR, A +ROM:A215 mov A, R7 +ROM:A216 mov DPTR, #0xDF80 +ROM:A219 jz ROM_A220 +ROM:A21B movx A, @DPTR +ROM:A21C orl A, #8 +ROM:A21E movx @DPTR, A +ROM:A21F ret +ROM:A220 ; --------------------------------------------------------------------------- +ROM:A220 +ROM:A220 ROM_A220: ; CODE XREF: get_reset_radio_flags+9↑j +ROM:A220 movx A, @DPTR +ROM:A221 anl A, #0xF7 +ROM:A223 movx @DPTR, A +ROM:A224 ret +ROM:A224 ; End of function get_reset_radio_flags +ROM:A224 +ROM:A225 +ROM:A225 ; =============== S U B R O U T I N E ======================================= +ROM:A225 +ROM:A225 +ROM:A225 ROM_A225: ; CODE XREF: ROM_7B9E+11F↑p +ROM:A225 mov DPTR, #0xF82D +ROM:A228 lcall Save_3_bytes_R3_R2_R1 +ROM:A22B clr A +ROM:A22C inc DPTR +ROM:A22D movx @DPTR, A +ROM:A22E +ROM:A22E ROM_A22E: ; CODE XREF: ROM_A225+36↓j +ROM:A22E mov DPTR, #0xFCE1 +ROM:A231 acall ROM_A263 +ROM:A233 mov R6, A +ROM:A234 clr C +ROM:A235 subb A, R7 +ROM:A236 jnc ROM_A25D +ROM:A238 mov A, R6 +ROM:A239 mov B, #0xF ; B Register +ROM:A23C mul AB +ROM:A23D add A, #0x6B ; 'k' +ROM:A23F mov R1, A +ROM:A240 mov A, #0xFC +ROM:A242 acall ROM_A26A +ROM:A244 mov DPTR, #0xF82D +ROM:A247 lcall ROM_37C3 +ROM:A24A mov R1, A +ROM:A24B mov R6, #0 +ROM:A24D mov R7, #8 +ROM:A24F lcall code_E7C +ROM:A252 mov A, R7 +ROM:A253 jnz ROM_A258 +ROM:A255 mov R7, #1 +ROM:A257 ret +ROM:A258 ; --------------------------------------------------------------------------- +ROM:A258 +ROM:A258 ROM_A258: ; CODE XREF: ROM_A225+2E↑j +ROM:A258 lcall ROM_4C6E +ROM:A25B sjmp ROM_A22E +ROM:A25D ; --------------------------------------------------------------------------- +ROM:A25D +ROM:A25D ROM_A25D: ; CODE XREF: ROM_A225+11↑j +ROM:A25D mov R7, #0 +ROM:A25F ret +ROM:A25F ; End of function ROM_A225 +ROM:A25F +ROM:A260 +ROM:A260 ; =============== S U B R O U T I N E ======================================= +ROM:A260 +ROM:A260 +ROM:A260 ROM_A260: ; CODE XREF: Radio_Something_Setup_ROM_4B0C:ROM_4B8E↑p +ROM:A260 ; Radio_Something_Setup_ROM_4B0C:ROM_4C13↑p +ROM:A260 mov DPTR, #0xF834 +ROM:A260 ; End of function ROM_A260 +ROM:A260 +ROM:A263 +ROM:A263 ; =============== S U B R O U T I N E ======================================= +ROM:A263 +ROM:A263 +ROM:A263 ROM_A263: ; CODE XREF: ROM_436B+1E4↑p +ROM:A263 ; ROM_A225+C↑p +ROM:A263 movx A, @DPTR +ROM:A264 mov R7, A +ROM:A265 mov DPTR, #0xF830 +ROM:A268 movx A, @DPTR +ROM:A269 ret +ROM:A269 ; End of function ROM_A263 +ROM:A269 +ROM:A26A +ROM:A26A ; =============== S U B R O U T I N E ======================================= +ROM:A26A +ROM:A26A +ROM:A26A ROM_A26A: ; CODE XREF: ROM_3861+B9↑p +ROM:A26A ; ROM_7B9E+15D↑p ... +ROM:A26A addc A, B ; B Register +ROM:A26C mov R0, RAM_1 +ROM:A26E mov R4, A +ROM:A26F mov R5, #1 +ROM:A271 ret +ROM:A271 ; End of function ROM_A26A +ROM:A271 +ROM:A272 +ROM:A272 ; =============== S U B R O U T I N E ======================================= +ROM:A272 +ROM:A272 +ROM:A272 ROM_A272: ; CODE XREF: serint_0+26↓p +ROM:A272 lcall ROM_850F +ROM:A275 mov DPTR, #0xF98A +ROM:A278 lcall Save_3_bytes_R3_R2_R1 +ROM:A27B mov DPTR, #0xF98A +ROM:A27E lcall ROM_37C3 +ROM:A281 orl A, R2 +ROM:A282 orl A, R3 +ROM:A283 jz ROM_A29A +ROM:A285 mov DPTR, #0xDFA5 +ROM:A288 movx A, @DPTR +ROM:A289 mov R7, A +ROM:A28A mov DPTR, #0xF98A +ROM:A28D inc DPTR +ROM:A28E inc DPTR +ROM:A28F movx A, @DPTR +ROM:A290 lcall ROM_3F80 +ROM:A293 mov DPTR, #0xFEC3 +ROM:A296 movx A, @DPTR +ROM:A297 orl A, #4 +ROM:A299 movx @DPTR, A +ROM:A29A +ROM:A29A ROM_A29A: ; CODE XREF: ROM_A272+11↑j +ROM:A29A ret +ROM:A29A ; End of function ROM_A272 +ROM:A29A +ROM:A29B +ROM:A29B ; =============== S U B R O U T I N E ======================================= +ROM:A29B +ROM:A29B +ROM:A29B serint_0: ; CODE XREF: serint↑j +ROM:A29B push ACC ; Accumulator +ROM:A29D push B ; B Register +ROM:A29F push DP0H ; Data Pointer High Byte +ROM:A2A1 push DP0L ; Data Pointer Low Byte +ROM:A2A3 push PSW ; Program Status Word +ROM:A2A5 mov PSW, #0 ; Program Status Word +ROM:A2A8 push RAM_1 +ROM:A2AA push RAM_2 +ROM:A2AC push RAM_3 +ROM:A2AE push RAM_4 +ROM:A2B0 push RAM_5 +ROM:A2B2 push RAM_6 +ROM:A2B4 push RAM_7 +ROM:A2B6 mov DPTR, #0xDFAD +ROM:A2B9 movx A, @DPTR +ROM:A2BA mov R5, A +ROM:A2BB clr A +ROM:A2BC movx @DPTR, A +ROM:A2BD mov A, R5 +ROM:A2BE jnb ACC6, ROM_A2C3 ; Accumulator +ROM:A2C1 acall ROM_A272 +ROM:A2C3 +ROM:A2C3 ROM_A2C3: ; CODE XREF: serint_0+23↑j +ROM:A2C3 mov A, R5 +ROM:A2C4 jnb ACC5, ROM_A2EA ; Accumulator +ROM:A2C7 mov DPTR, #0xFE63 +ROM:A2CA movx A, @DPTR +ROM:A2CB add A, #0xC7 +ROM:A2CD cpl A +ROM:A2CE mov R7, A +ROM:A2CF inc DPTR +ROM:A2D0 lcall ROM_37C3 +ROM:A2D3 mov R1, A +ROM:A2D4 mov DPTR, #0xFE60 +ROM:A2D7 movx A, @DPTR +ROM:A2D8 mov R6, A +ROM:A2D9 mov A, R1 +ROM:A2DA add A, R6 +ROM:A2DB lcall ROM_3F82 +ROM:A2DE mov DPTR, #0xFE60 +ROM:A2E1 movx A, @DPTR +ROM:A2E2 inc A +ROM:A2E3 movx @DPTR, A +ROM:A2E4 movx A, @DPTR +ROM:A2E5 anl A, #7 +ROM:A2E7 movx @DPTR, A +ROM:A2E8 acall Radio_init_something_ROM_A332 +ROM:A2EA +ROM:A2EA ROM_A2EA: ; CODE XREF: serint_0+29↑j +ROM:A2EA mov R7, RAM_5 +ROM:A2EC mov A, R5 +ROM:A2ED jnb ACC4, ROM_A319 ; Accumulator +ROM:A2F0 mov DPTR, #0xDF9B +ROM:A2F3 movx A, @DPTR +ROM:A2F4 anl A, #0x20 +ROM:A2F6 jnz ROM_A319 +ROM:A2F8 mov DPTR, #0xF989 +ROM:A2FB movx @DPTR, A +ROM:A2FC +ROM:A2FC ROM_A2FC: ; CODE XREF: serint_0+7C↓j +ROM:A2FC mov DPTR, #0xF989 +ROM:A2FF movx A, @DPTR +ROM:A300 clr C +ROM:A301 subb A, #0x3C ; '<' +ROM:A303 mov A, #0x80 +ROM:A305 subb A, #0x80 +ROM:A307 jnc ROM_A319 +ROM:A309 mov DPTR, #0xDF84 +ROM:A30C movx A, @DPTR +ROM:A30D mov DPTR, #0xFE63 +ROM:A310 movx @DPTR, A +ROM:A311 mov DPTR, #0xF989 +ROM:A314 movx A, @DPTR +ROM:A315 inc A +ROM:A316 movx @DPTR, A +ROM:A317 sjmp ROM_A2FC +ROM:A319 ; --------------------------------------------------------------------------- +ROM:A319 +ROM:A319 ROM_A319: ; CODE XREF: serint_0+52↑j +ROM:A319 ; serint_0+5B↑j ... +ROM:A319 pop RAM_7 +ROM:A31B pop RAM_6 +ROM:A31D pop RAM_5 +ROM:A31F pop RAM_4 +ROM:A321 pop RAM_3 +ROM:A323 pop RAM_2 +ROM:A325 pop RAM_1 +ROM:A327 pop PSW ; Program Status Word +ROM:A329 pop DP0L ; Data Pointer Low Byte +ROM:A32B pop DP0H ; Data Pointer High Byte +ROM:A32D pop B ; B Register +ROM:A32F pop ACC ; Accumulator +ROM:A331 reti +ROM:A331 ; End of function serint_0 +ROM:A331 +ROM:A332 +ROM:A332 ; =============== S U B R O U T I N E ======================================= +ROM:A332 +ROM:A332 +ROM:A332 Radio_init_something_ROM_A332: ; CODE XREF: serint_0+4D↑p +ROM:A332 mov R7, FSR_FA +ROM:A334 mov A, R7 +ROM:A335 lcall ROM_7E0F +ROM:A338 jnc ROM_A342 +ROM:A33A mov DPTR, #0xDF98 +ROM:A33D movx A, @DPTR +ROM:A33E inc A +ROM:A33F xrl A, R7 +ROM:A340 jz ROM_A344 +ROM:A342 +ROM:A342 ROM_A342: ; CODE XREF: Radio_init_something_ROM_A332+6↑j +ROM:A342 sjmp FlushRXFiFo_ROM_A368 +ROM:A344 ; --------------------------------------------------------------------------- +ROM:A344 +ROM:A344 ROM_A344: ; CODE XREF: Radio_init_something_ROM_A332+E↑j +ROM:A344 mov DPTR, #0xFE61 +ROM:A347 movx A, @DPTR +ROM:A348 mov R4, A +ROM:A349 inc DPTR +ROM:A34A movx A, @DPTR +ROM:A34B mov DP0L, A ; Data Pointer Low Byte +ROM:A34D mov DP0H, R4 ; Data Pointer High Byte +ROM:A34F mov A, R7 +ROM:A350 movx @DPTR, A +ROM:A351 mov R6, FSR_FF +ROM:A353 mov FSR_FF, #4 +ROM:A356 mov A, R7 +ROM:A357 dec A +ROM:A358 mov SPCR, A ; SPI Control Register +ROM:A35A mov FSR_D3, #1 +ROM:A35D mov FSR_D4, #0xE0 +ROM:A360 orl FSR_D7, #4 +ROM:A363 mov R7, RAM_6 +ROM:A365 mov FSR_FF, R7 +ROM:A367 ret +ROM:A367 ; End of function Radio_init_something_ROM_A332 +ROM:A367 +ROM:A368 +ROM:A368 ; =============== S U B R O U T I N E ======================================= +ROM:A368 +ROM:A368 +ROM:A368 FlushRXFiFo_ROM_A368: ; CODE XREF: ROM_9FA5+F↑p +ROM:A368 ; Radio_init_something_ROM_A332:ROM_A342↑j ... +ROM:A368 mov DPTR, #0xDF48 +ROM:A36B mov A, #0xC6 +ROM:A36D movx @DPTR, A +ROM:A36E ret +ROM:A36E ; End of function FlushRXFiFo_ROM_A368 +ROM:A36E +ROM:A36F +ROM:A36F ; =============== S U B R O U T I N E ======================================= +ROM:A36F +ROM:A36F +ROM:A36F timint2_0: ; CODE XREF: timint2↑j +ROM:A36F push ACC ; Accumulator +ROM:A371 push B ; B Register +ROM:A373 push DP0H ; Data Pointer High Byte +ROM:A375 push DP0L ; Data Pointer Low Byte +ROM:A377 push PSW ; Program Status Word +ROM:A379 mov PSW, #0 ; Program Status Word +ROM:A37C push RAM_0 +ROM:A37E push RAM_1 +ROM:A380 push RAM_2 +ROM:A382 push RAM_3 +ROM:A384 push RAM_4 +ROM:A386 push RAM_5 +ROM:A388 push RAM_6 +ROM:A38A push RAM_7 +ROM:A38C mov DPTR, #0xF987 +ROM:A38F mov A, FSR_FF +ROM:A391 movx @DPTR, A +ROM:A392 mov FSR_FF, #4 +ROM:A395 mov A, FSR_CF +ROM:A397 jnb ACC2, ROM_A3A2 ; Accumulator +ROM:A39A anl FSR_CF, #0xFB +ROM:A39D acall FlushRXFiFo_ROM_A368 +ROM:A39F lcall ROM_7DC2 +ROM:A3A2 +ROM:A3A2 ROM_A3A2: ; CODE XREF: timint2_0+28↑j +ROM:A3A2 mov A, FSR_CF +ROM:A3A4 jnb ACC1, ROM_A3AA ; Accumulator +ROM:A3A7 anl FSR_CF, #0xFD +ROM:A3AA +ROM:A3AA ROM_A3AA: ; CODE XREF: timint2_0+35↑j +ROM:A3AA mov A, FSR_CF +ROM:A3AC jnb ACC3, ROM_A3B5 ; Accumulator +ROM:A3AF anl FSR_CF, #0xB7 +ROM:A3B2 anl FSR_C7, #0xEF +ROM:A3B5 +ROM:A3B5 ROM_A3B5: ; CODE XREF: timint2_0+3D↑j +ROM:A3B5 mov DPTR, #0xF987 +ROM:A3B8 movx A, @DPTR +ROM:A3B9 mov FSR_FF, A +ROM:A3BB pop RAM_7 +ROM:A3BD pop RAM_6 +ROM:A3BF pop RAM_5 +ROM:A3C1 pop RAM_4 +ROM:A3C3 pop RAM_3 +ROM:A3C5 pop RAM_2 +ROM:A3C7 pop RAM_1 +ROM:A3C9 pop RAM_0 +ROM:A3CB pop PSW ; Program Status Word +ROM:A3CD pop DP0L ; Data Pointer Low Byte +ROM:A3CF pop DP0H ; Data Pointer High Byte +ROM:A3D1 pop B ; B Register +ROM:A3D3 pop ACC ; Accumulator +ROM:A3D5 reti +ROM:A3D5 ; End of function timint2_0 +ROM:A3D5 +ROM:A3D6 +ROM:A3D6 ; =============== S U B R O U T I N E ======================================= +ROM:A3D6 +ROM:A3D6 +ROM:A3D6 ROM_A3D6: ; CODE XREF: MainRadioSomething_ROM_9F3D+41↑p +ROM:A3D6 lcall ROM_2D73 +ROM:A3D9 mov DPTR, #0xF713 +ROM:A3DC inc A +ROM:A3DD movx @DPTR, A +ROM:A3DE ret +ROM:A3DE ; End of function ROM_A3D6 +ROM:A3DE +ROM:A3DF +ROM:A3DF ; =============== S U B R O U T I N E ======================================= +ROM:A3DF +ROM:A3DF +ROM:A3DF ROM_A3DF: ; CODE XREF: MainRadioSomething_ROM_9F3D+27↑p +ROM:A3DF ; ROM_9FA5+A↑p +ROM:A3DF setb C +ROM:A3E0 jbc EA, ROM_A3E4 ; Interrupt Enable Register 0 +ROM:A3E3 clr C +ROM:A3E4 +ROM:A3E4 ROM_A3E4: ; CODE XREF: ROM_A3DF+1↑j +ROM:A3E4 acall ROM_A3EC +ROM:A3E6 mov DPTR, #0xFEC3 +ROM:A3E9 ljmp ROM_9FC5 +ROM:A3E9 ; End of function ROM_A3DF +ROM:A3E9 +ROM:A3EC +ROM:A3EC ; =============== S U B R O U T I N E ======================================= +ROM:A3EC +ROM:A3EC +ROM:A3EC ROM_A3EC: ; CODE XREF: ROM_9FBA:ROM_9FBF↑p +ROM:A3EC ; ROM_A3DF:ROM_A3E4↑p +ROM:A3EC clr A +ROM:A3ED rlc A +ROM:A3EE mov DPTR, #0xF831 +ROM:A3F1 movx @DPTR, A +ROM:A3F2 clr A +ROM:A3F3 ret +ROM:A3F3 ; End of function ROM_A3EC +ROM:A3F3 +ROM:A3F4 +ROM:A3F4 ; =============== S U B R O U T I N E ======================================= +ROM:A3F4 +ROM:A3F4 +ROM:A3F4 ROM_A3F4: ; CODE XREF: ROM_7DC2↑p +ROM:A3F4 mov DPTR, #0xFE4B +ROM:A3F7 movx A, @DPTR +ROM:A3F8 jnz ROM_A3FD +ROM:A3FA mov R7, #0xFF +ROM:A3FC ret +ROM:A3FD ; --------------------------------------------------------------------------- +ROM:A3FD +ROM:A3FD ROM_A3FD: ; CODE XREF: ROM_A3F4+4↑j +ROM:A3FD mov DPTR, #0xFE4A +ROM:A400 movx A, @DPTR +ROM:A401 add A, #0x44 ; 'D' +ROM:A403 mov DP0L, A ; Data Pointer Low Byte +ROM:A405 clr A +ROM:A406 addc A, #0xFE +ROM:A408 mov DP0H, A ; Data Pointer High Byte +ROM:A40A movx A, @DPTR +ROM:A40B mov R7, A +ROM:A40C mov DPTR, #0xFE4A +ROM:A40F movx A, @DPTR +ROM:A410 inc A +ROM:A411 movx @DPTR, A +ROM:A412 movx A, @DPTR +ROM:A413 setb C +ROM:A414 lcall ROM_7DBB +ROM:A417 jc ROM_A41B +ROM:A419 clr A +ROM:A41A movx @DPTR, A +ROM:A41B +ROM:A41B ROM_A41B: ; CODE XREF: ROM_A3F4+23↑j +ROM:A41B mov DPTR, #0xFE4B +ROM:A41E movx A, @DPTR +ROM:A41F dec A +ROM:A420 movx @DPTR, A +ROM:A421 ret +ROM:A421 ; End of function ROM_A3F4 +ROM:A421 +ROM:A422 +ROM:A422 ; =============== S U B R O U T I N E ======================================= +ROM:A422 +ROM:A422 +ROM:A422 ROM_A422: ; CODE XREF: ROM_7DC2+48↑p +ROM:A422 mov DPTR, #0xFE40 +ROM:A425 lcall ROM_23E7 +ROM:A428 jc ROM_A42D +ROM:A42A lcall ROM_614C +ROM:A42D +ROM:A42D ROM_A42D: ; CODE XREF: ROM_A422+6↑j +ROM:A42D mov DPTR, #0xFE40 +ROM:A430 movx A, @DPTR +ROM:A431 mov R6, A +ROM:A432 mov DPTR, #0xFE3F +ROM:A435 movx A, @DPTR +ROM:A436 add A, R6 +ROM:A437 mov R5, A +ROM:A438 mov R4, #0 +ROM:A43A setb C +ROM:A43B lcall ROM_7DBB +ROM:A43E jc ROM_A442 +ROM:A440 clr A +ROM:A441 mov R5, A +ROM:A442 +ROM:A442 ROM_A442: ; CODE XREF: ROM_A422+1C↑j +ROM:A442 mov A, #0x39 ; '9' +ROM:A444 add A, R5 +ROM:A445 mov DP0L, A ; Data Pointer Low Byte +ROM:A447 mov A, #0xFE +ROM:A449 addc A, R4 +ROM:A44A mov DP0H, A ; Data Pointer High Byte +ROM:A44C mov A, R7 +ROM:A44D movx @DPTR, A +ROM:A44E mov DPTR, #0xFE40 +ROM:A451 movx A, @DPTR +ROM:A452 inc A +ROM:A453 movx @DPTR, A +ROM:A454 ret +ROM:A454 ; End of function ROM_A422 +ROM:A454 +ROM:A455 +ROM:A455 ; =============== S U B R O U T I N E ======================================= +ROM:A455 +ROM:A455 ; Attributes: thunk +ROM:A455 +ROM:A455 ROM_A455: ; CODE XREF: timint0_0+F↓p +ROM:A455 ljmp ROM_7F53 +ROM:A455 ; End of function ROM_A455 +ROM:A455 +ROM:A458 +ROM:A458 ; =============== S U B R O U T I N E ======================================= +ROM:A458 +ROM:A458 +ROM:A458 timint0_0: ; CODE XREF: timint0↑j +ROM:A458 push ACC ; Accumulator +ROM:A45A push DP0H ; Data Pointer High Byte +ROM:A45C push DP0L ; Data Pointer Low Byte +ROM:A45E anl IE, #0xFD ; Interrupt Enable Register 0 +ROM:A461 anl TCON, #0xEF ; Timer Control Register +ROM:A464 anl TCON, #0xDF ; Timer Control Register +ROM:A467 acall ROM_A455 +ROM:A469 pop DP0L ; Data Pointer Low Byte +ROM:A46B pop DP0H ; Data Pointer High Byte +ROM:A46D pop ACC ; Accumulator +ROM:A46F reti +ROM:A46F ; End of function timint0_0 +ROM:A46F +ROM:A470 +ROM:A470 ; =============== S U B R O U T I N E ======================================= +ROM:A470 +ROM:A470 +ROM:A470 ROM_A470: ; CODE XREF: pcaint_0:ROM_A501↓p +ROM:A470 anl FSR_C1, #0xBF +ROM:A473 mov DPTR, #0xFEC4 +ROM:A476 movx A, @DPTR +ROM:A477 mov R7, A +ROM:A478 mov R6, #0 +ROM:A47A lcall ROM_3FE6 +ROM:A47D mov R5, #0 +ROM:A47F jnc ROM_A483 +ROM:A481 mov R5, #1 +ROM:A483 +ROM:A483 ROM_A483: ; CODE XREF: ROM_A470+F↑j +ROM:A483 mov A, R5 +ROM:A484 jz ROM_A4BE +ROM:A486 mov A, R7 +ROM:A487 xrl A, #5 +ROM:A489 orl A, R6 +ROM:A48A jnz ROM_A4A4 +ROM:A48C mov DPTR, #0xFEBE +ROM:A48F movx A, @DPTR +ROM:A490 inc A +ROM:A491 movx @DPTR, A +ROM:A492 jnz ROM_A49A +ROM:A494 mov DPTR, #0xFEBD +ROM:A497 movx A, @DPTR +ROM:A498 inc A +ROM:A499 movx @DPTR, A +ROM:A49A +ROM:A49A ROM_A49A: ; CODE XREF: ROM_A470+22↑j +ROM:A49A lcall ROM_2FD1 +ROM:A49D mov R5, #5 +ROM:A49F mov R7, #1 +ROM:A4A1 ljmp ROM_35EC +ROM:A4A4 ; --------------------------------------------------------------------------- +ROM:A4A4 +ROM:A4A4 ROM_A4A4: ; CODE XREF: ROM_A470+1A↑j +ROM:A4A4 mov DPTR, #0xFEC3 +ROM:A4A7 movx A, @DPTR +ROM:A4A8 mov R7, A +ROM:A4A9 mov DPTR, #0xFEC4 +ROM:A4AC movx A, @DPTR +ROM:A4AD mov R6, A +ROM:A4AE mov R0, A +ROM:A4AF mov A, #1 +ROM:A4B1 inc R0 +ROM:A4B2 sjmp ROM_A4B6 +ROM:A4B4 ; --------------------------------------------------------------------------- +ROM:A4B4 +ROM:A4B4 ROM_A4B4: ; CODE XREF: ROM_A470:ROM_A4B6↓j +ROM:A4B4 clr C +ROM:A4B5 rlc A +ROM:A4B6 +ROM:A4B6 ROM_A4B6: ; CODE XREF: ROM_A470+42↑j +ROM:A4B6 djnz R0, ROM_A4B4 +ROM:A4B8 orl A, R7 +ROM:A4B9 mov DPTR, #0xFEC3 +ROM:A4BC movx @DPTR, A +ROM:A4BD ret +ROM:A4BE ; --------------------------------------------------------------------------- +ROM:A4BE +ROM:A4BE ROM_A4BE: ; CODE XREF: ROM_A470+14↑j +ROM:A4BE mov DPTR, #0xFEC1 +ROM:A4C1 movx A, @DPTR +ROM:A4C2 mov R7, A +ROM:A4C3 mov DPTR, #0xFEC4 +ROM:A4C6 movx A, @DPTR +ROM:A4C7 anl A, #0x7F +ROM:A4C9 mov R6, A +ROM:A4CA mov R0, A +ROM:A4CB mov A, #1 +ROM:A4CD inc R0 +ROM:A4CE sjmp ROM_A4D2 +ROM:A4D0 ; --------------------------------------------------------------------------- +ROM:A4D0 +ROM:A4D0 ROM_A4D0: ; CODE XREF: ROM_A470:ROM_A4D2↓j +ROM:A4D0 clr C +ROM:A4D1 rlc A +ROM:A4D2 +ROM:A4D2 ROM_A4D2: ; CODE XREF: ROM_A470+5E↑j +ROM:A4D2 djnz R0, ROM_A4D0 +ROM:A4D4 orl A, R7 +ROM:A4D5 mov DPTR, #0xFEC1 +ROM:A4D8 movx @DPTR, A +ROM:A4D9 ret +ROM:A4D9 ; End of function ROM_A470 +ROM:A4D9 +ROM:A4DA +ROM:A4DA ; =============== S U B R O U T I N E ======================================= +ROM:A4DA +ROM:A4DA +ROM:A4DA pcaint_0: ; CODE XREF: pcaint↑j +ROM:A4DA push ACC ; Accumulator +ROM:A4DC push DP0H ; Data Pointer High Byte +ROM:A4DE push DP0L ; Data Pointer Low Byte +ROM:A4E0 push PSW ; Program Status Word +ROM:A4E2 mov PSW, #0 ; Program Status Word +ROM:A4E5 push RAM_0 +ROM:A4E7 push RAM_4 +ROM:A4E9 push RAM_5 +ROM:A4EB push RAM_6 +ROM:A4ED push RAM_7 +ROM:A4EF mov R4, FSR_FF +ROM:A4F1 mov FSR_FF, #0 +ROM:A4F4 anl FSR_C1, #0x7E +ROM:A4F7 mov DPTR, #0xFDC5 +ROM:A4FA movx A, @DPTR +ROM:A4FB jnz ROM_A501 +ROM:A4FD inc A +ROM:A4FE movx @DPTR, A +ROM:A4FF sjmp ROM_A503 +ROM:A501 ; --------------------------------------------------------------------------- +ROM:A501 +ROM:A501 ROM_A501: ; CODE XREF: pcaint_0+21↑j +ROM:A501 acall ROM_A470 +ROM:A503 +ROM:A503 ROM_A503: ; CODE XREF: pcaint_0+25↑j +ROM:A503 mov R7, RAM_4 +ROM:A505 mov FSR_FF, R7 +ROM:A507 pop RAM_7 +ROM:A509 pop RAM_6 +ROM:A50B pop RAM_5 +ROM:A50D pop RAM_4 +ROM:A50F pop RAM_0 +ROM:A511 pop PSW ; Program Status Word +ROM:A513 pop DP0L ; Data Pointer Low Byte +ROM:A515 pop DP0H ; Data Pointer High Byte +ROM:A517 pop ACC ; Accumulator +ROM:A519 reti +ROM:A519 ; End of function pcaint_0 +ROM:A519 +ROM:A51A +ROM:A51A ; =============== S U B R O U T I N E ======================================= +ROM:A51A +ROM:A51A +ROM:A51A read_unknown_radio_reg_ROM_A51A: ; CODE XREF: ROM_2E9D+4A↑p +ROM:A51A ; MainRadioSomething_ROM_9F3D+39↑p +ROM:A51A +ROM:A51A ; FUNCTION CHUNK AT code:10BB SIZE 0000000F BYTES +ROM:A51A +ROM:A51A mov DPTR, #0xDFA3 +ROM:A51D movx A, @DPTR +ROM:A51E mov R6, A +ROM:A51F movx A, @DPTR +ROM:A520 mov R5, A +ROM:A521 mov A, R5 +ROM:A522 mov R7, A +ROM:A523 ljmp code_10BB +ROM:A523 ; End of function read_unknown_radio_reg_ROM_A51A +ROM:A523 +ROM:A523 ; --------------------------------------------------------------------------- +ROM:A526 .byte 0xC0 +ROM:A527 .byte 0xE0 +ROM:A528 .byte 0xC0 +ROM:A529 .byte 0x83 +ROM:A52A .byte 0xC0 +ROM:A52B .byte 0x82 +ROM:A52C .byte 0xC0 +ROM:A52D .byte 0xD0 +ROM:A52E .byte 0x75 ; u +ROM:A52F .byte 0xD0 +ROM:A530 .byte 0 +ROM:A531 .byte 0xC0 +ROM:A532 .byte 0 +ROM:A533 .byte 0xC0 +ROM:A534 .byte 4 +ROM:A535 .byte 0xC0 +ROM:A536 .byte 5 +ROM:A537 .byte 0xC0 +ROM:A538 .byte 6 +ROM:A539 .byte 0xC0 +ROM:A53A .byte 7 +ROM:A53B .byte 0xAD +ROM:A53C .byte 0xFF +ROM:A53D .byte 0x90 +ROM:A53E .byte 0xFE +ROM:A53F .byte 0xBB +ROM:A540 .byte 0xE4 +ROM:A541 .byte 0xF0 +ROM:A542 .byte 0xA3 +ROM:A543 .byte 0xF0 +ROM:A544 .byte 0x53 ; S +ROM:A545 .byte 0xA1 +ROM:A546 .byte 0xEF +ROM:A547 .byte 0x43 ; C +ROM:A548 .byte 0xFF +ROM:A549 .byte 4 +ROM:A54A .byte 0xAC +ROM:A54B .byte 0xF9 +ROM:A54C .byte 0xAF +ROM:A54D .byte 0xF8 +ROM:A54E .byte 0xEF +ROM:A54F .byte 0x54 ; T +ROM:A550 .byte 0x55 ; U +ROM:A551 .byte 0x25 ; % +ROM:A552 .byte 0xE0 +ROM:A553 .byte 0xFE +ROM:A554 .byte 0xEF +ROM:A555 .byte 0x54 ; T +ROM:A556 .byte 0xAA +ROM:A557 .byte 0xC3 +ROM:A558 .byte 0x13 +ROM:A559 .byte 0x4E ; N +ROM:A55A .byte 0xFF +ROM:A55B .byte 0x54 ; T +ROM:A55C .byte 0x33 ; 3 +ROM:A55D .byte 0x25 ; % +ROM:A55E .byte 0xE0 +ROM:A55F .byte 0x25 ; % +ROM:A560 .byte 0xE0 +ROM:A561 .byte 0xFE +ROM:A562 .byte 0xEF +ROM:A563 .byte 0x54 ; T +ROM:A564 .byte 0xCC +ROM:A565 .byte 0x13 +ROM:A566 .byte 0x13 +ROM:A567 .byte 0x54 ; T +ROM:A568 .byte 0x3F ; ? +ROM:A569 .byte 0x4E ; N +ROM:A56A .byte 0xFF +ROM:A56B .byte 0x54 ; T +ROM:A56C .byte 0xF +ROM:A56D .byte 0xC4 +ROM:A56E .byte 0x54 ; T +ROM:A56F .byte 0xF0 +ROM:A570 .byte 0xFE +ROM:A571 .byte 0xEF +ROM:A572 .byte 0x54 ; T +ROM:A573 .byte 0xF0 +ROM:A574 .byte 0xC4 +ROM:A575 .byte 0x54 ; T +ROM:A576 .byte 0xF +ROM:A577 .byte 0x4E ; N +ROM:A578 .byte 0xFF +ROM:A579 .byte 0x90 +ROM:A57A .byte 0xFE +ROM:A57B .byte 0xBB +ROM:A57C .byte 0xE4 +ROM:A57D .byte 0xF0 +ROM:A57E .byte 0xA3 +ROM:A57F .byte 0xEF +ROM:A580 .byte 0xF0 +ROM:A581 .byte 0x90 +ROM:A582 .byte 0xFE +ROM:A583 .byte 0xBB +ROM:A584 .byte 0xE0 +ROM:A585 .byte 0xFE +ROM:A586 .byte 0xA3 +ROM:A587 .byte 0xE0 +ROM:A588 .byte 0x78 ; x +ROM:A589 .byte 2 +ROM:A58A .byte 0xC3 +ROM:A58B .byte 0x33 ; 3 +ROM:A58C .byte 0xCE +ROM:A58D .byte 0x33 ; 3 +ROM:A58E .byte 0xCE +ROM:A58F .byte 0xD8 +ROM:A590 .byte 0xF9 +ROM:A591 .byte 0xF0 +ROM:A592 .byte 0xEE +ROM:A593 .byte 0x90 +ROM:A594 .byte 0xFE +ROM:A595 .byte 0xBB +ROM:A596 .byte 0xF0 +ROM:A597 .byte 0xEC +ROM:A598 .byte 0xC3 +ROM:A599 .byte 0x13 +ROM:A59A .byte 0x54 ; T +ROM:A59B .byte 1 +ROM:A59C .byte 0xFF +ROM:A59D .byte 0xB1 +ROM:A59E .byte 0xC3 +ROM:A59F .byte 0xAF +ROM:A5A0 .byte 4 +ROM:A5A1 .byte 0xEC +ROM:A5A2 .byte 0x54 ; T +ROM:A5A3 .byte 1 +ROM:A5A4 .byte 0xFF +ROM:A5A5 .byte 0x90 +ROM:A5A6 .byte 0xFE +ROM:A5A7 .byte 0xBB +ROM:A5A8 .byte 0xB1 +ROM:A5A9 .byte 0xC3 +ROM:A5AA .byte 0xAF +ROM:A5AB .byte 5 +ROM:A5AC .byte 0x8F +ROM:A5AD .byte 0xFF +ROM:A5AE .byte 0xD2 +ROM:A5AF .byte 2 +ROM:A5B0 .byte 0xD0 +ROM:A5B1 .byte 7 +ROM:A5B2 .byte 0xD0 +ROM:A5B3 .byte 6 +ROM:A5B4 .byte 0xD0 +ROM:A5B5 .byte 5 +ROM:A5B6 .byte 0xD0 +ROM:A5B7 .byte 4 +ROM:A5B8 .byte 0xD0 +ROM:A5B9 .byte 0 +ROM:A5BA .byte 0xD0 +ROM:A5BB .byte 0xD0 +ROM:A5BC .byte 0xD0 +ROM:A5BD .byte 0x82 +ROM:A5BE .byte 0xD0 +ROM:A5BF .byte 0x83 +ROM:A5C0 .byte 0xD0 +ROM:A5C1 .byte 0xE0 +ROM:A5C2 .byte 0x32 ; 2 +ROM:A5C3 +ROM:A5C3 ; =============== S U B R O U T I N E ======================================= +ROM:A5C3 +ROM:A5C3 +ROM:A5C3 ROM_A5C3: ; CODE XREF: ROM_3861+114↑p +ROM:A5C3 movx A, @DPTR +ROM:A5C4 movx @DPTR, A +ROM:A5C5 inc DPTR +ROM:A5C6 movx A, @DPTR +ROM:A5C7 orl A, R7 +ROM:A5C8 movx @DPTR, A +ROM:A5C9 ret +ROM:A5C9 ; End of function ROM_A5C3 +ROM:A5C9 +ROM:A5CA +ROM:A5CA ; =============== S U B R O U T I N E ======================================= +ROM:A5CA +ROM:A5CA +ROM:A5CA Load_temperature_calibration_ROM_A5CA: ; CODE XREF: pretty_early_init_code_1DFD+10↑p +ROM:A5CA mov DPTR, #0xF824 +ROM:A5CD mov A, FSR_FF +ROM:A5CF movx @DPTR, A +ROM:A5D0 orl FSR_FF, #4 +ROM:A5D3 orl FSR_C7, #8 +ROM:A5D6 mov FSR_DF, #3 +ROM:A5D9 clr A +ROM:A5DA mov FSR_D9, A +ROM:A5DC mov FSR_DA, A +ROM:A5DE mov FSR_D8, #0x80 ; page = 0x80 / infoblock. Must be temperature +ROM:A5E1 mov R6, #0xFE +ROM:A5E3 mov R7, #0x7E ; '~' +ROM:A5E5 mov FSR_DE, A +ROM:A5E7 mov FSR_DD, #0xF +ROM:A5EA mov A, R7 +ROM:A5EB mov FSR_DB, A +ROM:A5ED mov A, R6 +ROM:A5EE mov FSR_DC, A +ROM:A5F0 orl FSR_D7, #8 +ROM:A5F3 +ROM:A5F3 ROM_A5F3: ; CODE XREF: Load_temperature_calibration_ROM_A5CA+2B↓j +ROM:A5F3 mov A, FSR_CF +ROM:A5F5 jz ROM_A5F3 +ROM:A5F7 mov A, FSR_CF +ROM:A5F9 jb ACC7, ROM_A606 ; Accumulator +ROM:A5FC mov A, FSR_CF +ROM:A5FE jnb ACC3, ROM_A606 ; Accumulator +ROM:A601 anl FSR_CF, #0xF7 +ROM:A604 sjmp ROM_A609 +ROM:A606 ; --------------------------------------------------------------------------- +ROM:A606 +ROM:A606 ROM_A606: ; CODE XREF: Load_temperature_calibration_ROM_A5CA+2F↑j +ROM:A606 ; Load_temperature_calibration_ROM_A5CA+34↑j +ROM:A606 clr A +ROM:A607 mov FSR_CF, A +ROM:A609 +ROM:A609 ROM_A609: ; CODE XREF: Load_temperature_calibration_ROM_A5CA+3A↑j +ROM:A609 anl FSR_D8, #0x7F +ROM:A60C mov DPTR, #0xF824 +ROM:A60F movx A, @DPTR +ROM:A610 mov FSR_FF, A +ROM:A612 ret +ROM:A612 ; End of function Load_temperature_calibration_ROM_A5CA +ROM:A612 +ROM:A613 +ROM:A613 ; =============== S U B R O U T I N E ======================================= +ROM:A613 +ROM:A613 +ROM:A613 get_reset_cause_R7_ROM_A613: ; CODE XREF: pretty_early_init_code_1DFD↑p +ROM:A613 mov R7, FSR_8F +ROM:A615 ret +ROM:A615 ; End of function get_reset_cause_R7_ROM_A613 +ROM:A615 +ROM:A616 +ROM:A616 ; =============== S U B R O U T I N E ======================================= +ROM:A616 +ROM:A616 +ROM:A616 DO_SPI_TRANSACTION: ; CODE XREF: code_42E+48C7↑p +ROM:A616 mov R6, FSR_FF +ROM:A618 acall START_SPI_FROM_R7_ROM_A63B ; save cfg page and setup spi +ROM:A61A mov SPI_ATTEMPTS_RAM_1D, #0xD0 +ROM:A61D +ROM:A61D SPI_WAIT: ; CODE XREF: DO_SPI_TRANSACTION+12↓j +ROM:A61D mov R7, SPI_ATTEMPTS_RAM_1D +ROM:A61F dec SPI_ATTEMPTS_RAM_1D +ROM:A621 mov A, R7 +ROM:A622 jz SPI_DONE ; end loop if timeout? +ROM:A624 mov A, FSR_EB ; load unknown spi register +ROM:A626 anl A, #8 ; check if bit 3 is set +ROM:A628 jnz SPI_WAIT ; jump back if still set? +ROM:A62A +ROM:A62A SPI_DONE: ; CODE XREF: DO_SPI_TRANSACTION+C↑j +ROM:A62A orl FSR_EB, #8 ; set bit 3 +ROM:A62D acall SPI_GET_RESULT +ROM:A62F mov FSR_FF, R6 ; reset cfg page +ROM:A631 ret +ROM:A631 ; End of function DO_SPI_TRANSACTION +ROM:A631 +ROM:A632 +ROM:A632 ; =============== S U B R O U T I N E ======================================= +ROM:A632 +ROM:A632 +ROM:A632 SPI_GET_RESULT: ; CODE XREF: DO_SPI_TRANSACTION_ALT+C↑p +ROM:A632 ; DO_SPI_TRANSACTION+17↑p +ROM:A632 orl FSR_EB, #8 +ROM:A635 mov R7, FSR_EF ; read SPI RX +ROM:A637 mov FSR_ED, #0x80 ; re-enable SPI (SPI_EN) +ROM:A63A ret +ROM:A63A ; End of function SPI_GET_RESULT +ROM:A63A +ROM:A63B +ROM:A63B ; =============== S U B R O U T I N E ======================================= +ROM:A63B +ROM:A63B +ROM:A63B START_SPI_FROM_R7_ROM_A63B: ; CODE XREF: DO_SPI_TRANSACTION_ALT+2↑p +ROM:A63B ; DO_SPI_TRANSACTION+2↑p +ROM:A63B mov FSR_FF, #4 +ROM:A63E mov FSR_ED, #0x81 +ROM:A641 mov FSR_EE, R7 +ROM:A643 mov FSR_EC, #0xA0 +ROM:A646 ret +ROM:A646 ; End of function START_SPI_FROM_R7_ROM_A63B +ROM:A646 +ROM:A647 +ROM:A647 ; =============== S U B R O U T I N E ======================================= +ROM:A647 +ROM:A647 +ROM:A647 ROM_A647: ; CODE XREF: ROM_668A+A↑p +ROM:A647 mov DPTR, #0xDFC0 +ROM:A64A mov A, R7 +ROM:A64B movx @DPTR, A +ROM:A64C acall ROM_A68D +ROM:A64E movx A, @DPTR +ROM:A64F mov DPTR, #0xDFFD +ROM:A652 movx @DPTR, A +ROM:A653 mov A, R7 +ROM:A654 mov R5, A +ROM:A655 mov R4, #0 +ROM:A657 setb C +ROM:A658 subb A, #0x12 +ROM:A65A mov A, #0x80 +ROM:A65C subb A, #0x80 +ROM:A65E jnc ROM_A66D +ROM:A660 mov DPTR, #0xDFC3 +ROM:A663 mov A, #0x35 ; '5' +ROM:A665 movx @DPTR, A +ROM:A666 mov DPTR, #0xDFCB +ROM:A669 mov A, #4 +ROM:A66B movx @DPTR, A +ROM:A66C ret +ROM:A66D ; --------------------------------------------------------------------------- +ROM:A66D +ROM:A66D ROM_A66D: ; CODE XREF: ROM_A647+17↑j +ROM:A66D setb C +ROM:A66E mov A, R5 +ROM:A66F subb A, #0x17 +ROM:A671 mov A, R4 +ROM:A672 xrl A, #0x80 +ROM:A674 subb A, #0x80 +ROM:A676 mov DPTR, #0xDFC3 +ROM:A679 jnc ROM_A67F +ROM:A67B mov A, #0x35 ; '5' +ROM:A67D sjmp ROM_A681 +ROM:A67F ; --------------------------------------------------------------------------- +ROM:A67F +ROM:A67F ROM_A67F: ; CODE XREF: ROM_A647+32↑j +ROM:A67F mov A, #5 +ROM:A681 +ROM:A681 ROM_A681: ; CODE XREF: ROM_A647+36↑j +ROM:A681 movx @DPTR, A +ROM:A682 mov DPTR, #0xDFCB +ROM:A685 mov A, #3 +ROM:A687 movx @DPTR, A +ROM:A688 ret +ROM:A688 ; End of function ROM_A647 +ROM:A688 +ROM:A689 +ROM:A689 ; =============== S U B R O U T I N E ======================================= +ROM:A689 +ROM:A689 +ROM:A689 ROM_A689: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+C7↑p +ROM:A689 ; Radio_Something_Setup_ROM_4B0C:ROM_4C4F↑p +ROM:A689 mov DPTR, #0xF833 +ROM:A68C movx A, @DPTR +ROM:A68C ; End of function ROM_A689 +ROM:A68C +ROM:A68D +ROM:A68D ; =============== S U B R O U T I N E ======================================= +ROM:A68D +ROM:A68D +ROM:A68D ROM_A68D: ; CODE XREF: ROM_A647+5↑p +ROM:A68D add A, #0x44 ; 'D' +ROM:A68F mov DP0L, A ; Data Pointer Low Byte +ROM:A691 clr A +ROM:A692 addc A, #0xFE +ROM:A694 mov DP0H, A ; Data Pointer High Byte +ROM:A696 ret +ROM:A696 ; End of function ROM_A68D +ROM:A696 +ROM:A697 +ROM:A697 ; =============== S U B R O U T I N E ======================================= +ROM:A697 +ROM:A697 +ROM:A697 RadioSomething_ROM_A697: ; CODE XREF: ROM_27D4+17↑p +ROM:A697 ; MainRadioSomething_ROM_9F3D+11↑p ... +ROM:A697 mov A, R7 +ROM:A698 jz ROM_A6A1 +ROM:A69A lcall Single_Radio_Cmd_ROM_97B7 +ROM:A69D inc A +ROM:A69E movx @DPTR, A +ROM:A69F sjmp ROM_A6BA +ROM:A6A1 ; --------------------------------------------------------------------------- +ROM:A6A1 +ROM:A6A1 ROM_A6A1: ; CODE XREF: RadioSomething_ROM_A697+1↑j +ROM:A6A1 mov R7, #0xC0 +ROM:A6A3 mov R6, #0 +ROM:A6A5 lcall ROM_4CB7 +ROM:A6A8 mov R7, #0xC8 +ROM:A6AA +ROM:A6AA ROM_A6AA: ; CODE XREF: RadioSomething_ROM_A697+1F↓j +ROM:A6AA mov DPTR, #0xDF9B +ROM:A6AD movx A, @DPTR +ROM:A6AE anl A, #0x50 +ROM:A6B0 jz ROM_A6B8 +ROM:A6B2 mov R6, RAM_7 +ROM:A6B4 dec R7 +ROM:A6B5 mov A, R6 +ROM:A6B6 jnz ROM_A6AA +ROM:A6B8 +ROM:A6B8 ROM_A6B8: ; CODE XREF: RadioSomething_ROM_A697+19↑j +ROM:A6B8 acall RadioCommand_0xCA_0xC5 +ROM:A6BA +ROM:A6BA ROM_A6BA: ; CODE XREF: RadioSomething_ROM_A697+8↑j +ROM:A6BA mov DPTR, #0xDF48 +ROM:A6BD mov A, #0xC7 +ROM:A6BF movx @DPTR, A ; flush tx fifo +ROM:A6C0 dec A +ROM:A6C1 movx @DPTR, A +ROM:A6C2 ret +ROM:A6C2 ; End of function RadioSomething_ROM_A697 +ROM:A6C2 +ROM:A6C3 +ROM:A6C3 ; =============== S U B R O U T I N E ======================================= +ROM:A6C3 +ROM:A6C3 +ROM:A6C3 RadioCommand_0xCA_0xC5: ; CODE XREF: SleepSub+42↑p +ROM:A6C3 ; RadioSomething_ROM_A697:ROM_A6B8↑p +ROM:A6C3 mov DPTR, #0xDF48 +ROM:A6C6 mov A, #0xCA +ROM:A6C8 movx @DPTR, A +ROM:A6C9 mov A, #0xC5 +ROM:A6CB movx @DPTR, A +ROM:A6CC ret +ROM:A6CC ; End of function RadioCommand_0xCA_0xC5 +ROM:A6CC +ROM:A6CD ; --------------------------------------------------------------------------- +ROM:A6CD ; START OF FUNCTION CHUNK FOR ROM_49FD +ROM:A6CD +ROM:A6CD RadioTXSomething_ROM_A6CD: ; CODE XREF: ROM_49FD+A6↑j +ROM:A6CD mov R1, FSR_FF +ROM:A6CF mov FSR_FF, #4 +ROM:A6D2 setb C +ROM:A6D3 jbc EA, ROM_A6D7 ; Interrupt Enable Register 0 +ROM:A6D6 clr C +ROM:A6D7 +ROM:A6D7 ROM_A6D7: ; CODE XREF: ROM_49FD+5CD6↑j +ROM:A6D7 clr A +ROM:A6D8 rlc A +ROM:A6D9 mov DPTR, #0xF836 +ROM:A6DC movx @DPTR, A +ROM:A6DD mov A, R5 +ROM:A6DE add A, #0xFE +ROM:A6E0 mov TH2, A ; Timer 2 High Byte +ROM:A6E2 mov T2MOD, R7 ; Timer 2 Mode +ROM:A6E4 mov A, R6 +ROM:A6E5 mov RCAP2L, A ; Timer 2 Capture Low Byte +ROM:A6E7 mov DPTR, #0xDF48 +ROM:A6EA mov A, #0xCB +ROM:A6EC movx @DPTR, A ; radio load tx fifo +ROM:A6ED orl FSR_D7, #2 +ROM:A6F0 mov DPTR, #0xF836 +ROM:A6F3 movx A, @DPTR +ROM:A6F4 add A, #0xFF +ROM:A6F6 mov EA, C ; Interrupt Enable Register 0 +ROM:A6F8 mov R7, RAM_1 +ROM:A6FA mov FSR_FF, R7 +ROM:A6FC ret +ROM:A6FC ; END OF FUNCTION CHUNK FOR ROM_49FD +ROM:A6FD +ROM:A6FD ; =============== S U B R O U T I N E ======================================= +ROM:A6FD +ROM:A6FD +ROM:A6FD Setup_Radio_Regs_ROM_A6FD: ; CODE XREF: Init_Radio_ROM_7FB5+A↑p +ROM:A6FD mov FSR_FF, #4 +ROM:A700 orl FSR_C7, #2 +ROM:A703 mov FSR_CE, #2 +ROM:A706 mov RCAP2H, #0xFA ; Timer 2 Capture High Byte +ROM:A709 mov TL2, #0xDD ; Timer 2 Low Byte +ROM:A70C orl FSR_C7, #4 +ROM:A70F mov FSR_D6, #1 +ROM:A712 mov FSR_D1, #0xFA +ROM:A715 mov FSR_D2, #0xDD +ROM:A718 setb ET2 ; Interrupt Enable Register 0 +ROM:A71A clr A +ROM:A71B mov FSR_FF, A +ROM:A71D ret +ROM:A71D ; End of function Setup_Radio_Regs_ROM_A6FD +ROM:A71D +ROM:A71E +ROM:A71E ; =============== S U B R O U T I N E ======================================= +ROM:A71E +ROM:A71E +ROM:A71E ROM_A71E: ; CODE XREF: ROM_A7D1+73↓p +ROM:A71E mov DPTR, #0xF506 +ROM:A721 movx A, @DPTR +ROM:A722 jz ROM_A767 +ROM:A724 lcall ROM_87BF +ROM:A727 mov R6, A +ROM:A728 xrl A, R7 +ROM:A729 jnz ROM_A748 +ROM:A72B inc DPTR +ROM:A72C movx A, @DPTR +ROM:A72D setb C +ROM:A72E acall ROM_A780 +ROM:A730 jnc ROM_A748 +ROM:A732 inc DPTR +ROM:A733 movx A, @DPTR +ROM:A734 acall ROM_A768 +ROM:A736 jc ROM_A741 +ROM:A738 clr A +ROM:A739 movx @DPTR, A +ROM:A73A mov DPTR, #0xFEAC +ROM:A73D mov A, #3 +ROM:A73F sjmp ROM_A75C +ROM:A741 ; --------------------------------------------------------------------------- +ROM:A741 +ROM:A741 ROM_A741: ; CODE XREF: ROM_A71E+18↑j +ROM:A741 mov DPTR, #0xFEAD +ROM:A744 movx A, @DPTR +ROM:A745 inc A +ROM:A746 movx @DPTR, A +ROM:A747 ret +ROM:A748 ; --------------------------------------------------------------------------- +ROM:A748 +ROM:A748 ROM_A748: ; CODE XREF: ROM_A71E+B↑j +ROM:A748 ; ROM_A71E+12↑j +ROM:A748 mov A, R6 +ROM:A749 setb C +ROM:A74A subb A, R7 +ROM:A74B jc ROM_A762 +ROM:A74D mov DPTR, #0xFEAC +ROM:A750 movx A, @DPTR +ROM:A751 lcall ROM_4B05 +ROM:A754 jc ROM_A762 +ROM:A756 clr A +ROM:A757 inc DPTR +ROM:A758 movx @DPTR, A +ROM:A759 mov DPTR, #0xFEAC +ROM:A75C +ROM:A75C ROM_A75C: ; CODE XREF: ROM_A71E+21↑j +ROM:A75C movx @DPTR, A +ROM:A75D mov DPTR, #0xFFE8 +ROM:A760 movx @DPTR, A +ROM:A761 ret +ROM:A762 ; --------------------------------------------------------------------------- +ROM:A762 +ROM:A762 ROM_A762: ; CODE XREF: ROM_A71E+2D↑j +ROM:A762 ; ROM_A71E+36↑j +ROM:A762 clr A +ROM:A763 mov DPTR, #0xFEAD +ROM:A766 movx @DPTR, A +ROM:A767 +ROM:A767 ROM_A767: ; CODE XREF: ROM_A71E+4↑j +ROM:A767 ret +ROM:A767 ; End of function ROM_A71E +ROM:A767 +ROM:A768 +ROM:A768 ; =============== S U B R O U T I N E ======================================= +ROM:A768 +ROM:A768 +ROM:A768 ROM_A768: ; CODE XREF: Initialize_more_variables_ROM_7E17+60↑p +ROM:A768 ; ROM_A71E+16↑p +ROM:A768 clr C +ROM:A769 subb A, #7 +ROM:A76B mov A, #0x80 +ROM:A76D subb A, #0x80 +ROM:A76F ret +ROM:A76F ; End of function ROM_A768 +ROM:A76F +ROM:A770 +ROM:A770 ; =============== S U B R O U T I N E ======================================= +ROM:A770 +ROM:A770 +ROM:A770 ROM_A770: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+B9↑p +ROM:A770 ; Radio_Something_Setup_ROM_4B0C+13E↑p +ROM:A770 movx A, @DPTR +ROM:A771 dec A +ROM:A772 movx @DPTR, A +ROM:A773 movx A, @DPTR +ROM:A774 mov R7, A +ROM:A775 add A, #0x3A ; ':' +ROM:A777 mov DP0L, A ; Data Pointer Low Byte +ROM:A779 clr A +ROM:A77A addc A, #0xF8 +ROM:A77C mov DP0H, A ; Data Pointer High Byte +ROM:A77C ; End of function ROM_A770 +ROM:A77C +ROM:A77E +ROM:A77E ; =============== S U B R O U T I N E ======================================= +ROM:A77E +ROM:A77E +ROM:A77E ROM_A77E: ; CODE XREF: ROM_4816-259C↑p +ROM:A77E ; ROM_4816-2513↑p ... +ROM:A77E movx A, @DPTR +ROM:A77F clr C +ROM:A77F ; End of function ROM_A77E +ROM:A77F +ROM:A780 +ROM:A780 ; =============== S U B R O U T I N E ======================================= +ROM:A780 +ROM:A780 +ROM:A780 ROM_A780: ; CODE XREF: ROM_436B+1D0↑p +ROM:A780 ; ROM_549C+37↑p ... +ROM:A780 subb A, #2 +ROM:A782 mov A, #0x80 +ROM:A784 subb A, #0x80 +ROM:A786 ret +ROM:A786 ; End of function ROM_A780 +ROM:A786 +ROM:A787 +ROM:A787 ; =============== S U B R O U T I N E ======================================= +ROM:A787 +ROM:A787 +ROM:A787 ROM_A787: ; CODE XREF: ROM_A7D1+24↓p +ROM:A787 mov R1, #0x10 +ROM:A789 mov DPTR, #0xFEA8 +ROM:A78C movx A, @DPTR +ROM:A78D mov R3, A +ROM:A78E mov A, R7 +ROM:A78F jnb ACC0, ROM_A795 ; Accumulator +ROM:A792 dec R1 +ROM:A793 sjmp ROM_A797 +ROM:A795 ; --------------------------------------------------------------------------- +ROM:A795 +ROM:A795 ROM_A795: ; CODE XREF: ROM_A787+8↑j +ROM:A795 mov R1, #0x10 +ROM:A797 +ROM:A797 ROM_A797: ; CODE XREF: ROM_A787+C↑j +ROM:A797 clr A +ROM:A798 mov R2, A +ROM:A799 +ROM:A799 ROM_A799: ; CODE XREF: ROM_A787+45↓j +ROM:A799 mov A, R2 +ROM:A79A clr C +ROM:A79B subb A, R1 +ROM:A79C jnc ROM_A7CE +ROM:A79E mov A, R3 +ROM:A79F orl A, #0x20 +ROM:A7A1 mov DPTR, #0xDFE6 +ROM:A7A4 lcall ROM_A89B +ROM:A7A7 movx A, @DPTR +ROM:A7A8 jnb ACC6, ROM_A7BC ; Accumulator +ROM:A7AB mov DPTR, #0xFEA7 +ROM:A7AE movx A, @DPTR +ROM:A7AF mov R7, A +ROM:A7B0 mov A, R3 +ROM:A7B1 setb C +ROM:A7B2 subb A, R7 +ROM:A7B3 jc ROM_A7B8 +ROM:A7B5 dec R3 +ROM:A7B6 sjmp ROM_A7CB +ROM:A7B8 ; --------------------------------------------------------------------------- +ROM:A7B8 +ROM:A7B8 ROM_A7B8: ; CODE XREF: ROM_A787+2C↑j +ROM:A7B8 mov R3, RAM_7 +ROM:A7BA sjmp ROM_A7CB +ROM:A7BC ; --------------------------------------------------------------------------- +ROM:A7BC +ROM:A7BC ROM_A7BC: ; CODE XREF: ROM_A787+21↑j +ROM:A7BC mov DPTR, #0xFEA8 +ROM:A7BF movx A, @DPTR +ROM:A7C0 mov R7, A +ROM:A7C1 mov A, R3 +ROM:A7C2 clr C +ROM:A7C3 subb A, R7 +ROM:A7C4 jnc ROM_A7C9 +ROM:A7C6 inc R3 +ROM:A7C7 sjmp ROM_A7CB +ROM:A7C9 ; --------------------------------------------------------------------------- +ROM:A7C9 +ROM:A7C9 ROM_A7C9: ; CODE XREF: ROM_A787+3D↑j +ROM:A7C9 mov R3, RAM_7 +ROM:A7CB +ROM:A7CB ROM_A7CB: ; CODE XREF: ROM_A787+2F↑j +ROM:A7CB ; ROM_A787+33↑j ... +ROM:A7CB inc R2 +ROM:A7CC sjmp ROM_A799 +ROM:A7CE ; --------------------------------------------------------------------------- +ROM:A7CE +ROM:A7CE ROM_A7CE: ; CODE XREF: ROM_A787+15↑j +ROM:A7CE mov R7, RAM_3 +ROM:A7D0 ret +ROM:A7D0 ; End of function ROM_A787 +ROM:A7D0 +ROM:A7D1 +ROM:A7D1 ; =============== S U B R O U T I N E ======================================= +ROM:A7D1 +ROM:A7D1 +ROM:A7D1 ROM_A7D1: ; CODE XREF: code_1F13+42↑p +ROM:A7D1 ; ROM_6849+BE↑p +ROM:A7D1 clr A +ROM:A7D2 mov DPTR, #0xF855 +ROM:A7D5 movx @DPTR, A +ROM:A7D6 inc DPTR +ROM:A7D7 movx @DPTR, A +ROM:A7D8 mov A, R7 +ROM:A7D9 xrl A, #1 +ROM:A7DB jnz ROM_A849 +ROM:A7DD mov R6, A +ROM:A7DE mov R7, #5 +ROM:A7E0 mov R5, #0xAA +ROM:A7E2 mov R3, #1 +ROM:A7E4 mov R2, #0xFE +ROM:A7E6 mov R1, #0xA1 +ROM:A7E8 lcall code_EA0 +ROM:A7EB clr A +ROM:A7EC mov DPTR, #0xF854 +ROM:A7EF movx @DPTR, A +ROM:A7F0 +ROM:A7F0 ROM_A7F0: ; CODE XREF: ROM_A7D1+3B↓j +ROM:A7F0 lcall ROM_7DB5 +ROM:A7F3 jnc ROM_A80E +ROM:A7F5 acall ROM_A787 +ROM:A7F7 mov DPTR, #0xF855 +ROM:A7FA mov A, R7 +ROM:A7FB movx @DPTR, A +ROM:A7FC mov DPTR, #0xF854 +ROM:A7FF movx A, @DPTR +ROM:A800 add A, #0xA1 +ROM:A802 acall ROM_A893 +ROM:A804 mov A, R7 +ROM:A805 movx @DPTR, A +ROM:A806 mov DPTR, #0xF854 +ROM:A809 movx A, @DPTR +ROM:A80A inc A +ROM:A80B movx @DPTR, A +ROM:A80C sjmp ROM_A7F0 +ROM:A80E ; --------------------------------------------------------------------------- +ROM:A80E +ROM:A80E ROM_A80E: ; CODE XREF: ROM_A7D1+22↑j +ROM:A80E mov DPTR, #0xFEA1 +ROM:A811 movx A, @DPTR +ROM:A812 mov DPTR, #0xF856 +ROM:A815 movx @DPTR, A +ROM:A816 mov DPTR, #0xF854 +ROM:A819 mov A, #1 +ROM:A81B movx @DPTR, A +ROM:A81C +ROM:A81C ROM_A81C: ; CODE XREF: ROM_A7D1+69↓j +ROM:A81C lcall ROM_7DB5 +ROM:A81F jnc ROM_A83C +ROM:A821 mov A, #0xA1 +ROM:A823 add A, R7 +ROM:A824 acall ROM_A893 +ROM:A826 movx A, @DPTR +ROM:A827 mov R7, A +ROM:A828 mov DPTR, #0xF856 +ROM:A82B movx A, @DPTR +ROM:A82C mov R6, A +ROM:A82D mov A, R7 +ROM:A82E clr C +ROM:A82F subb A, R6 +ROM:A830 jnc ROM_A834 +ROM:A832 mov A, R7 +ROM:A833 movx @DPTR, A +ROM:A834 +ROM:A834 ROM_A834: ; CODE XREF: ROM_A7D1+5F↑j +ROM:A834 mov DPTR, #0xF854 +ROM:A837 movx A, @DPTR +ROM:A838 inc A +ROM:A839 movx @DPTR, A +ROM:A83A sjmp ROM_A81C +ROM:A83C ; --------------------------------------------------------------------------- +ROM:A83C +ROM:A83C ROM_A83C: ; CODE XREF: ROM_A7D1+4E↑j +ROM:A83C mov DPTR, #0xF856 +ROM:A83F movx A, @DPTR +ROM:A840 mov DPTR, #0xFEAB +ROM:A843 movx @DPTR, A +ROM:A844 lcall ROM_A71E +ROM:A847 sjmp ROM_A88A +ROM:A849 ; --------------------------------------------------------------------------- +ROM:A849 +ROM:A849 ROM_A849: ; CODE XREF: ROM_A7D1+A↑j +ROM:A849 mov DPTR, #0xFEAE +ROM:A84C movx A, @DPTR +ROM:A84D mov DPTR, #0xF855 +ROM:A850 acall ROM_A89B +ROM:A852 mov DPTR, #0xDFE6 +ROM:A855 movx A, @DPTR +ROM:A856 jnb ACC6, ROM_A86B ; Accumulator +ROM:A859 mov DPTR, #0xFEA9 +ROM:A85C movx A, @DPTR +ROM:A85D mov R7, A +ROM:A85E mov DPTR, #0xF855 +ROM:A861 movx A, @DPTR +ROM:A862 setb C +ROM:A863 subb A, R7 +ROM:A864 jc ROM_A87D +ROM:A866 movx A, @DPTR +ROM:A867 dec A +ROM:A868 movx @DPTR, A +ROM:A869 sjmp ROM_A882 +ROM:A86B ; --------------------------------------------------------------------------- +ROM:A86B +ROM:A86B ROM_A86B: ; CODE XREF: ROM_A7D1+85↑j +ROM:A86B mov DPTR, #0xFEAA +ROM:A86E movx A, @DPTR +ROM:A86F mov R7, A +ROM:A870 mov DPTR, #0xF855 +ROM:A873 movx A, @DPTR +ROM:A874 clr C +ROM:A875 subb A, R7 +ROM:A876 jnc ROM_A87D +ROM:A878 movx A, @DPTR +ROM:A879 inc A +ROM:A87A movx @DPTR, A +ROM:A87B sjmp ROM_A882 +ROM:A87D ; --------------------------------------------------------------------------- +ROM:A87D +ROM:A87D ROM_A87D: ; CODE XREF: ROM_A7D1+93↑j +ROM:A87D ; ROM_A7D1+A5↑j +ROM:A87D mov DPTR, #0xF855 +ROM:A880 mov A, R7 +ROM:A881 movx @DPTR, A +ROM:A882 +ROM:A882 ROM_A882: ; CODE XREF: ROM_A7D1+98↑j +ROM:A882 ; ROM_A7D1+AA↑j +ROM:A882 mov DPTR, #0xF855 +ROM:A885 movx A, @DPTR +ROM:A886 mov DPTR, #0xFEAE +ROM:A889 movx @DPTR, A +ROM:A88A +ROM:A88A ROM_A88A: ; CODE XREF: ROM_A7D1+76↑j +ROM:A88A mov DPTR, #0xFEAE +ROM:A88D movx A, @DPTR +ROM:A88E mov DPTR, #0xDFE6 +ROM:A891 movx @DPTR, A +ROM:A892 ret +ROM:A892 ; End of function ROM_A7D1 +ROM:A892 +ROM:A893 +ROM:A893 ; =============== S U B R O U T I N E ======================================= +ROM:A893 +ROM:A893 +ROM:A893 ROM_A893: ; CODE XREF: ROM_A7D1+31↑p +ROM:A893 ; ROM_A7D1+53↑p +ROM:A893 mov DP0L, A ; Data Pointer Low Byte +ROM:A895 clr A +ROM:A896 addc A, #0xFE +ROM:A898 mov DP0H, A ; Data Pointer High Byte +ROM:A89A ret +ROM:A89A ; End of function ROM_A893 +ROM:A89A +ROM:A89B +ROM:A89B ; =============== S U B R O U T I N E ======================================= +ROM:A89B +ROM:A89B +ROM:A89B ROM_A89B: ; CODE XREF: ROM_A787+1D↑p +ROM:A89B ; ROM_A7D1+7F↑p +ROM:A89B movx @DPTR, A +ROM:A89C mov R7, #0xC8 +ROM:A89E mov R6, #0 +ROM:A8A0 ljmp ROM_4CB7 +ROM:A8A0 ; End of function ROM_A89B +ROM:A8A0 +ROM:A8A3 +ROM:A8A3 ; =============== S U B R O U T I N E ======================================= +ROM:A8A3 +ROM:A8A3 +ROM:A8A3 ROM_A8A3: ; CODE XREF: code_1F13:code_1F41↑p +ROM:A8A3 ; ROM_67A3:ROM_3261↑p ... +ROM:A8A3 clr P1.1 ; Port 1 +ROM:A8A5 mov R7, #5 +ROM:A8A7 lcall code_1EF2 +ROM:A8AA setb P1.1 ; Port 1 +ROM:A8AC ret +ROM:A8AC ; End of function ROM_A8A3 +ROM:A8AC +ROM:A8AD +ROM:A8AD ; =============== S U B R O U T I N E ======================================= +ROM:A8AD +ROM:A8AD +ROM:A8AD ROM_A8AD: ; CODE XREF: ROM_A8DC+35↓p +ROM:A8AD ; ROM_A8DC+3D↓j +ROM:A8AD lcall ROM_2C43 +ROM:A8B0 lcall EEPROM_SPI_TRANSACTION +ROM:A8B3 clr P1.1 ; Port 1 +ROM:A8B5 mov R7, #0x52 ; 'R' +ROM:A8B7 acall ROM_A8D5 +ROM:A8B9 lcall load_4_bytes_R4_R5_R6_A +ROM:A8BC +ROM:A8BC ROM_A8BC: ; CODE XREF: ROM_ABBC+14A↓p +ROM:A8BC lcall ROM_67D5 +ROM:A8BC ; End of function ROM_A8AD +ROM:A8BC +ROM:A8BF acall ROM_A8D5 +ROM:A8C1 lcall load_4_bytes_R4_R5_R6_A +ROM:A8C4 acall ROM_A91B +ROM:A8C6 acall ROM_A8D5 +ROM:A8C8 acall ROM_A921 +ROM:A8CA setb P1.1 ; Port 1 +ROM:A8CC lcall SetupWatchdog +ROM:A8CF +ROM:A8CF ROM_A8CF: ; CODE XREF: ROM:A8D2↓j +ROM:A8CF acall ROM_A8A3 +ROM:A8D1 mov A, R7 +ROM:A8D2 jnz ROM_A8CF +ROM:A8D4 ret +ROM:A8D5 +ROM:A8D5 ; =============== S U B R O U T I N E ======================================= +ROM:A8D5 +ROM:A8D5 +ROM:A8D5 ROM_A8D5: ; CODE XREF: ROM_A8AD+A↑p +ROM:A8D5 ; ROM:A8BF↑p ... +ROM:A8D5 lcall DO_SPI_TRANSACTION_ALT +ROM:A8D8 mov DPTR, #0xF842 +ROM:A8DB ret +ROM:A8DB ; End of function ROM_A8D5 +ROM:A8DB +ROM:A8DC +ROM:A8DC ; =============== S U B R O U T I N E ======================================= +ROM:A8DC +ROM:A8DC +ROM:A8DC ROM_A8DC: ; CODE XREF: ROM_41B0+A3↑p +ROM:A8DC clr A +ROM:A8DD mov R7, A +ROM:A8DE mov R6, A +ROM:A8DF mov R5, A +ROM:A8E0 mov R4, A +ROM:A8E1 mov DPTR, #0xFC62 +ROM:A8E4 lcall save_4_bytes_R4_R7 +ROM:A8E7 mov R6, #0 +ROM:A8E9 mov R7, #0xDA +ROM:A8EB mov R5, #0 +ROM:A8ED mov R3, #1 +ROM:A8EF mov R2, #0xFB +ROM:A8F1 mov R1, #0x88 +ROM:A8F3 lcall code_EA0 +ROM:A8F6 lcall SetupPinsForEEProm +ROM:A8F9 clr A +ROM:A8FA mov R7, A +ROM:A8FB mov R6, #0x60 ; '`' +ROM:A8FD mov R5, A +ROM:A8FE mov R4, A +ROM:A8FF lcall code_1F13 +ROM:A902 clr A +ROM:A903 mov R7, A +ROM:A904 mov R6, #0x70 ; 'p' +ROM:A906 mov R5, A +ROM:A907 mov R4, A +ROM:A908 lcall code_1F13 +ROM:A90B clr A +ROM:A90C mov R7, A +ROM:A90D mov R6, #0x80 +ROM:A90F mov R5, A +ROM:A910 mov R4, A +ROM:A911 acall ROM_A8AD +ROM:A913 clr A +ROM:A914 mov R7, A +ROM:A915 mov R6, A +ROM:A916 mov R5, #1 +ROM:A918 mov R4, A +ROM:A919 sjmp ROM_A8AD +ROM:A919 ; End of function ROM_A8DC +ROM:A919 +ROM:A91B +ROM:A91B ; =============== S U B R O U T I N E ======================================= +ROM:A91B +ROM:A91B +ROM:A91B ROM_A91B: ; CODE XREF: code_1F13+20↑p +ROM:A91B ; ROM_9CCA-7D50↑p ... +ROM:A91B mov R7, A +ROM:A91C mov R0, #8 +ROM:A91E ljmp rotate_4_bytes_R4_R7_by_R0_rotations +ROM:A91E ; End of function ROM_A91B +ROM:A91E +ROM:A921 +ROM:A921 ; =============== S U B R O U T I N E ======================================= +ROM:A921 +ROM:A921 +ROM:A921 ROM_A921: ; CODE XREF: code_1F13+26↑p +ROM:A921 ; ROM_9CCA-7D4A↑p ... +ROM:A921 inc DPTR +ROM:A922 inc DPTR +ROM:A923 inc DPTR +ROM:A924 movx A, @DPTR +ROM:A925 mov R7, A +ROM:A926 ljmp DO_SPI_TRANSACTION_ALT +ROM:A926 ; End of function ROM_A921 +ROM:A926 +ROM:A929 +ROM:A929 ; =============== S U B R O U T I N E ======================================= +ROM:A929 +ROM:A929 +ROM:A929 ROM_A929: ; CODE XREF: ROM_4859↑p +ROM:A929 mov DPTR, #0xF992 +ROM:A92C movx A, @DPTR +ROM:A92D jz ROM_A95F +ROM:A92F setb C +ROM:A930 jbc EA, ROM_A934 ; Interrupt Enable Register 0 +ROM:A933 clr C +ROM:A934 +ROM:A934 ROM_A934: ; CODE XREF: ROM_A929+7↑j +ROM:A934 clr A +ROM:A935 rlc A +ROM:A936 mov DPTR, #0xF82F +ROM:A939 movx @DPTR, A +ROM:A93A mov DPTR, #0xF992 +ROM:A93D movx A, @DPTR +ROM:A93E dec A +ROM:A93F movx @DPTR, A +ROM:A940 mov DPTR, #0xF82F +ROM:A943 movx A, @DPTR +ROM:A944 add A, #0xFF +ROM:A946 mov EA, C ; Interrupt Enable Register 0 +ROM:A948 mov DPTR, #0xF98E +ROM:A94B acall ROM_AA0B +ROM:A94D movx A, @DPTR +ROM:A94E mov DPTR, #0xF82E +ROM:A951 movx @DPTR, A +ROM:A952 mov DPTR, #0xF98E +ROM:A955 acall ROM_A964 +ROM:A957 mov DPTR, #0xF82E +ROM:A95A movx A, @DPTR +ROM:A95B mov R7, A +ROM:A95C mov R6, #0 +ROM:A95E ret +ROM:A95F ; --------------------------------------------------------------------------- +ROM:A95F +ROM:A95F ROM_A95F: ; CODE XREF: ROM_A929+4↑j +ROM:A95F mov R6, #0xFF +ROM:A961 mov R7, #0xFF +ROM:A963 ret +ROM:A963 ; End of function ROM_A929 +ROM:A963 +ROM:A964 +ROM:A964 ; =============== S U B R O U T I N E ======================================= +ROM:A964 +ROM:A964 +ROM:A964 ROM_A964: ; CODE XREF: ROM_A929+2C↑p +ROM:A964 ; ROM_A96C+1C↓p ... +ROM:A964 movx A, @DPTR +ROM:A965 inc A +ROM:A966 movx @DPTR, A +ROM:A967 movx A, @DPTR +ROM:A968 anl A, #0x7F +ROM:A96A movx @DPTR, A +ROM:A96B ret +ROM:A96B ; End of function ROM_A964 +ROM:A96B +ROM:A96C +ROM:A96C ; =============== S U B R O U T I N E ======================================= +ROM:A96C +ROM:A96C +ROM:A96C ROM_A96C: ; CODE XREF: ROM_6CFA+A1↑p +ROM:A96C setb C +ROM:A96D jbc EA, ROM_A971 ; Interrupt Enable Register 0 +ROM:A970 clr C +ROM:A971 +ROM:A971 ROM_A971: ; CODE XREF: ROM_A96C+1↑j +ROM:A971 clr A +ROM:A972 rlc A +ROM:A973 mov R6, A +ROM:A974 mov DPTR, #0xF993 +ROM:A977 acall ROM_AA02 +ROM:A979 jnc ROM_A999 +ROM:A97B movx A, @DPTR +ROM:A97C inc A +ROM:A97D movx @DPTR, A +ROM:A97E mov DPTR, #0xF991 +ROM:A981 acall ROM_AA16 +ROM:A983 mov A, R7 +ROM:A984 movx @DPTR, A +ROM:A985 mov DPTR, #0xF991 +ROM:A988 acall ROM_A964 +ROM:A98A jnb RAM_20.3, ROM_A991 +ROM:A98D clr RAM_20.3 +ROM:A98F setb SCON.1 ; Serial Port Control +ROM:A991 +ROM:A991 ROM_A991: ; CODE XREF: ROM_A96C+1E↑j +ROM:A991 mov A, R6 +ROM:A992 add A, #0xFF +ROM:A994 mov EA, C ; Interrupt Enable Register 0 +ROM:A996 mov R7, #0 +ROM:A998 ret +ROM:A999 ; --------------------------------------------------------------------------- +ROM:A999 +ROM:A999 ROM_A999: ; CODE XREF: ROM_A96C+D↑j +ROM:A999 mov R7, RAM_6 +ROM:A99B mov A, R6 +ROM:A99C add A, #0xFF +ROM:A99E mov EA, C ; Interrupt Enable Register 0 +ROM:A9A0 mov R7, #1 +ROM:A9A2 ret +ROM:A9A2 ; End of function ROM_A96C +ROM:A9A2 +ROM:A9A3 +ROM:A9A3 ; =============== S U B R O U T I N E ======================================= +ROM:A9A3 +ROM:A9A3 +ROM:A9A3 extint0_0: ; CODE XREF: extint0↑j +ROM:A9A3 push ACC ; Accumulator +ROM:A9A5 push DP0H ; Data Pointer High Byte +ROM:A9A7 push DP0L ; Data Pointer Low Byte +ROM:A9A9 push PSW ; Program Status Word +ROM:A9AB mov PSW, #0 ; Program Status Word +ROM:A9AE push RAM_7 +ROM:A9B0 jnb SCON.1, ROM_A9D1 ; Serial Port Control +ROM:A9B3 clr SCON.1 ; Serial Port Control +ROM:A9B5 mov DPTR, #0xF993 +ROM:A9B8 movx A, @DPTR +ROM:A9B9 jz ROM_A9CF +ROM:A9BB movx A, @DPTR +ROM:A9BC dec A +ROM:A9BD movx @DPTR, A +ROM:A9BE mov DPTR, #0xF98F +ROM:A9C1 acall ROM_AA16 +ROM:A9C3 movx A, @DPTR +ROM:A9C4 mov SBUF, A ; Serial Port Buffer +ROM:A9C6 mov DPTR, #0xF98F +ROM:A9C9 acall ROM_A964 +ROM:A9CB clr RAM_20.3 +ROM:A9CD sjmp ROM_A9D1 +ROM:A9CF ; --------------------------------------------------------------------------- +ROM:A9CF +ROM:A9CF ROM_A9CF: ; CODE XREF: extint0_0+16↑j +ROM:A9CF setb RAM_20.3 +ROM:A9D1 +ROM:A9D1 ROM_A9D1: ; CODE XREF: extint0_0+D↑j +ROM:A9D1 ; extint0_0+2A↑j +ROM:A9D1 jnb SCON.0, ROM_A9F7 ; Serial Port Control +ROM:A9D4 clr SCON.0 ; Serial Port Control +ROM:A9D6 mov DPTR, #0xF98D +ROM:A9D9 mov A, SBUF ; Serial Port Buffer +ROM:A9DB movx @DPTR, A +ROM:A9DC mov DPTR, #0xF992 +ROM:A9DF acall ROM_AA02 +ROM:A9E1 jnc ROM_A9F7 +ROM:A9E3 movx A, @DPTR +ROM:A9E4 inc A +ROM:A9E5 movx @DPTR, A +ROM:A9E6 mov DPTR, #0xF98D +ROM:A9E9 movx A, @DPTR +ROM:A9EA mov R7, A +ROM:A9EB mov DPTR, #0xF990 +ROM:A9EE acall ROM_AA0B +ROM:A9F0 mov A, R7 +ROM:A9F1 movx @DPTR, A +ROM:A9F2 mov DPTR, #0xF990 +ROM:A9F5 acall ROM_A964 +ROM:A9F7 +ROM:A9F7 ROM_A9F7: ; CODE XREF: extint0_0:ROM_A9D1↑j +ROM:A9F7 ; extint0_0+3E↑j +ROM:A9F7 pop RAM_7 +ROM:A9F9 pop PSW ; Program Status Word +ROM:A9FB pop DP0L ; Data Pointer Low Byte +ROM:A9FD pop DP0H ; Data Pointer High Byte +ROM:A9FF pop ACC ; Accumulator +ROM:AA01 reti +ROM:AA01 ; End of function extint0_0 +ROM:AA01 +ROM:AA02 +ROM:AA02 ; =============== S U B R O U T I N E ======================================= +ROM:AA02 +ROM:AA02 +ROM:AA02 ROM_AA02: ; CODE XREF: ROM_A96C+B↑p +ROM:AA02 ; extint0_0+3C↑p +ROM:AA02 movx A, @DPTR +ROM:AA03 clr C +ROM:AA04 subb A, #0x80 +ROM:AA06 mov A, #0x80 +ROM:AA08 subb A, #0x80 +ROM:AA0A ret +ROM:AA0A ; End of function ROM_AA02 +ROM:AA0A +ROM:AA0B +ROM:AA0B ; =============== S U B R O U T I N E ======================================= +ROM:AA0B +ROM:AA0B +ROM:AA0B ROM_AA0B: ; CODE XREF: ROM_A929+22↑p +ROM:AA0B ; extint0_0+4B↑p +ROM:AA0B movx A, @DPTR +ROM:AA0C add A, #0x94 +ROM:AA0E mov DP0L, A ; Data Pointer Low Byte +ROM:AA10 clr A +ROM:AA11 addc A, #0xF9 +ROM:AA13 mov DP0H, A ; Data Pointer High Byte +ROM:AA15 ret +ROM:AA15 ; End of function ROM_AA0B +ROM:AA15 +ROM:AA16 +ROM:AA16 ; =============== S U B R O U T I N E ======================================= +ROM:AA16 +ROM:AA16 +ROM:AA16 ROM_AA16: ; CODE XREF: ROM_A96C+15↑p +ROM:AA16 ; extint0_0+1E↑p +ROM:AA16 movx A, @DPTR +ROM:AA17 add A, #0x14 +ROM:AA19 mov DP0L, A ; Data Pointer Low Byte +ROM:AA1B clr A +ROM:AA1C addc A, #0xFA +ROM:AA1E mov DP0H, A ; Data Pointer High Byte +ROM:AA20 ret +ROM:AA20 ; End of function ROM_AA16 +ROM:AA20 +ROM:AA21 +ROM:AA21 ; =============== S U B R O U T I N E ======================================= +ROM:AA21 +ROM:AA21 +ROM:AA21 also_something_gpio_ROM_AA21: ; CODE XREF: ROM_AA35↓p +ROM:AA21 ; ROM_AA40+19↓p +ROM:AA21 anl FSR_BA, #0xBF +ROM:AA24 anl FSR_BA, #0xEF +ROM:AA27 anl FSR_BA, #0xDF +ROM:AA2A orl FSR_BA, #8 +ROM:AA2D orl FSR_BD, #8 +ROM:AA30 setb P1.4 ; Port 1 +ROM:AA32 setb P1.5 ; Port 1 +ROM:AA34 ret +ROM:AA34 ; End of function also_something_gpio_ROM_AA21 +ROM:AA34 +ROM:AA35 +ROM:AA35 ; =============== S U B R O U T I N E ======================================= +ROM:AA35 +ROM:AA35 +ROM:AA35 ROM_AA35: ; CODE XREF: ROM_436B-F1B↑p +ROM:AA35 ; ROM_436B+2B2↑p +ROM:AA35 acall also_something_gpio_ROM_AA21 +ROM:AA35 ; End of function ROM_AA35 +ROM:AA35 +ROM:AA37 +ROM:AA37 ; =============== S U B R O U T I N E ======================================= +ROM:AA37 +ROM:AA37 +ROM:AA37 ROM_AA37: ; CODE XREF: ROM_AA40+17↓p +ROM:AA37 acall ROM_AAD2 +ROM:AA39 mov R7, #0x60 ; '`' +ROM:AA3B mov R6, #0xEA +ROM:AA3D ljmp ROM_4CB7 +ROM:AA3D ; End of function ROM_AA37 +ROM:AA3D +ROM:AA40 +ROM:AA40 ; =============== S U B R O U T I N E ======================================= +ROM:AA40 +ROM:AA40 +ROM:AA40 ROM_AA40: ; CODE XREF: start_0+19EE↑p +ROM:AA40 clr A +ROM:AA41 mov DPTR, #0xF824 +ROM:AA44 movx @DPTR, A +ROM:AA45 mov R0, #0x25 ; '%' +ROM:AA47 mov R4, #0xF8 +ROM:AA49 mov R5, #1 +ROM:AA4B mov R3, #0xFF +ROM:AA4D mov R2, #0x1C +ROM:AA4F mov R1, #0xEF +ROM:AA51 mov R6, A +ROM:AA52 mov R7, #0x10 +ROM:AA54 lcall code_86B +ROM:AA57 acall ROM_AA37 +ROM:AA59 acall also_something_gpio_ROM_AA21 +ROM:AA5B acall ROM_AABD +ROM:AA5D mov R7, #0x55 ; 'U' +ROM:AA5F lcall ROM_7290 +ROM:AA62 mov DPTR, #0xF825 +ROM:AA65 movx A, @DPTR +ROM:AA66 xrl A, #4 +ROM:AA68 jnz ROM_AA76 +ROM:AA6A mov DPTR, #0xFEA0 +ROM:AA6D mov A, #4 +ROM:AA6F acall ROM_AAB3 +ROM:AA71 orl FSR_BD, #8 +ROM:AA74 sjmp ROM_AA9C +ROM:AA76 ; --------------------------------------------------------------------------- +ROM:AA76 +ROM:AA76 ROM_AA76: ; CODE XREF: ROM_AA40+28↑j +ROM:AA76 lcall ROM_77A7 +ROM:AA79 acall ROM_AABD +ROM:AA7B mov R7, #0x30 ; '0' +ROM:AA7D lcall ROM_7290 +ROM:AA80 acall ROM_AB09 +ROM:AA82 mov DPTR, #0xF827 +ROM:AA85 movx A, @DPTR +ROM:AA86 xrl A, #0x42 +ROM:AA88 jnz ROM_AA96 +ROM:AA8A mov DPTR, #0xFEA0 +ROM:AA8D mov A, #0x42 ; 'B' +ROM:AA8F acall ROM_AAB3 +ROM:AA91 anl FSR_BD, #0xF7 +ROM:AA94 sjmp ROM_AA9C +ROM:AA96 ; --------------------------------------------------------------------------- +ROM:AA96 +ROM:AA96 ROM_AA96: ; CODE XREF: ROM_AA40+48↑j +ROM:AA96 mov DPTR, #0xF565 +ROM:AA99 mov A, #1 +ROM:AA9B movx @DPTR, A +ROM:AA9C +ROM:AA9C ROM_AA9C: ; CODE XREF: ROM_AA40+34↑j +ROM:AA9C ; ROM_AA40+54↑j +ROM:AA9C mov DPTR, #0xF565 +ROM:AA9F movx A, @DPTR +ROM:AAA0 jnz something_gpio_ROM_AAAA +ROM:AAA2 mov R7, #0x55 ; 'U' +ROM:AAA4 lcall ROM_766A +ROM:AAA7 lcall ROM_4CB3 +ROM:AAA7 ; End of function ROM_AA40 +ROM:AAA7 +ROM:AAAA +ROM:AAAA ; =============== S U B R O U T I N E ======================================= +ROM:AAAA +ROM:AAAA +ROM:AAAA something_gpio_ROM_AAAA: ; CODE XREF: ROM_436B-F05↑p +ROM:AAAA ; ROM_436B+2C5↑p ... +ROM:AAAA clr P1.6 ; Port 1 +ROM:AAAC orl FSR_BA, #0x70 +ROM:AAAF anl FSR_BD, #0x8F +ROM:AAB2 ret +ROM:AAB2 ; End of function something_gpio_ROM_AAAA +ROM:AAB2 +ROM:AAB3 +ROM:AAB3 ; =============== S U B R O U T I N E ======================================= +ROM:AAB3 +ROM:AAB3 +ROM:AAB3 ROM_AAB3: ; CODE XREF: ROM_AA40+2F↑p +ROM:AAB3 ; ROM_AA40+4F↑p +ROM:AAB3 movx @DPTR, A +ROM:AAB4 clr A +ROM:AAB5 mov DPTR, #0xF565 +ROM:AAB8 movx @DPTR, A +ROM:AAB9 orl FSR_BA, #8 +ROM:AABC ret +ROM:AABC ; End of function ROM_AAB3 +ROM:AABC +ROM:AABD +ROM:AABD ; =============== S U B R O U T I N E ======================================= +ROM:AABD +ROM:AABD +ROM:AABD ROM_AABD: ; CODE XREF: ROM_AA40+1B↑p +ROM:AABD ; ROM_AA40+39↑p +ROM:AABD mov DPTR, #0xF859 +ROM:AAC0 mov A, #1 +ROM:AAC2 movx @DPTR, A +ROM:AAC3 inc DPTR +ROM:AAC4 mov A, #0xF8 +ROM:AAC6 movx @DPTR, A +ROM:AAC7 inc DPTR +ROM:AAC8 mov A, #0x25 ; '%' +ROM:AACA movx @DPTR, A +ROM:AACB mov R3, #0x10 +ROM:AACD mov R2, #0 +ROM:AACF clr A +ROM:AAD0 mov R5, A +ROM:AAD1 ret +ROM:AAD1 ; End of function ROM_AABD +ROM:AAD1 +ROM:AAD2 +ROM:AAD2 ; =============== S U B R O U T I N E ======================================= +ROM:AAD2 +ROM:AAD2 +ROM:AAD2 ROM_AAD2: ; CODE XREF: ROM_AA37↑p +ROM:AAD2 anl FSR_BA, #0xBF +ROM:AAD5 lcall ROM_5123 +ROM:AAD8 setb P1.6 ; Port 1 +ROM:AADA mov R7, #0x10 +ROM:AADC mov R6, #0x27 ; ''' +ROM:AADE ljmp ROM_4CB7 +ROM:AADE ; End of function ROM_AAD2 +ROM:AADE +ROM:AADE ; --------------------------------------------------------------------------- +ROM:AAE1 .byte 0xE5 +ROM:AAE2 .byte 0xAB +ROM:AAE3 .byte 0x30 ; 0 +ROM:AAE4 .byte 0xE3 +ROM:AAE5 .byte 0x20 +ROM:AAE6 .byte 0x51 ; Q +ROM:AAE7 .byte 0x21 ; ! +ROM:AAE8 .byte 0x51 ; Q +ROM:AAE9 .byte 0xD2 +ROM:AAEA .byte 0x90 +ROM:AAEB .byte 0xFD +ROM:AAEC .byte 0x94 +ROM:AAED .byte 0xE0 +ROM:AAEE .byte 0x60 ; ` +ROM:AAEF .byte 0x13 +ROM:AAF0 .byte 0x12 +ROM:AAF1 .byte 0x77 ; w +ROM:AAF2 .byte 0xC5 +ROM:AAF3 .byte 0x70 ; p +ROM:AAF4 .byte 0xE +ROM:AAF5 .byte 0x12 +ROM:AAF6 .byte 0x77 ; w +ROM:AAF7 .byte 0xA7 +ROM:AAF8 .byte 0x7F ;  +ROM:AAF9 .byte 0x22 ; " +ROM:AAFA .byte 0x71 ; q +ROM:AAFB .byte 0x2C ; , +ROM:AAFC .byte 0x90 +ROM:AAFD .byte 0xFD +ROM:AAFE .byte 0xC4 +ROM:AAFF .byte 0xEF +ROM:AB00 .byte 0xF0 +ROM:AB01 .byte 0x71 ; q +ROM:AB02 .byte 9 +ROM:AB03 .byte 0x7F ;  +ROM:AB04 .byte 1 +ROM:AB05 .byte 0x22 ; " +ROM:AB06 .byte 0x7F ;  +ROM:AB07 .byte 0 +ROM:AB08 .byte 0x22 ; " +ROM:AB09 +ROM:AB09 ; =============== S U B R O U T I N E ======================================= +ROM:AB09 +ROM:AB09 +ROM:AB09 ROM_AB09: ; CODE XREF: ROM_7197:ROM_728C↑p +ROM:AB09 ; ROM_755B:ROM_765F↑p ... +ROM:AB09 mov R5, #1 +ROM:AB0B mov R7, #0x21 ; '!' +ROM:AB0D +ROM:AB0D ROM_AB0D: ; CODE XREF: ROM_77A7+4↑j +ROM:AB0D mov DPTR, #0xF978 +ROM:AB10 mov A, R5 +ROM:AB11 movx @DPTR, A +ROM:AB12 mov R5, RAM_7 +ROM:AB14 mov DPTR, #0xF97C +ROM:AB17 mov A, #1 +ROM:AB19 movx @DPTR, A +ROM:AB1A inc DPTR +ROM:AB1B mov A, #0xF9 +ROM:AB1D movx @DPTR, A +ROM:AB1E inc DPTR +ROM:AB1F mov A, #0x78 ; 'x' +ROM:AB21 movx @DPTR, A +ROM:AB22 clr A +ROM:AB23 inc DPTR +ROM:AB24 movx @DPTR, A +ROM:AB25 mov R3, #1 +ROM:AB27 mov R7, #0x30 ; '0' +ROM:AB29 ljmp ROM_73B7 +ROM:AB29 ; End of function ROM_AB09 +ROM:AB29 +ROM:AB29 ; --------------------------------------------------------------------------- +ROM:AB2C .byte 0xAD +ROM:AB2D .byte 7 +ROM:AB2E .byte 0x90 +ROM:AB2F .byte 0xF8 +ROM:AB30 .byte 0x59 ; Y +ROM:AB31 .byte 0x74 ; t +ROM:AB32 .byte 1 +ROM:AB33 .byte 0xF0 +ROM:AB34 .byte 0xA3 +ROM:AB35 .byte 0x74 ; t +ROM:AB36 .byte 0xFE +ROM:AB37 .byte 0xF0 +ROM:AB38 .byte 0xA3 +ROM:AB39 .byte 0x74 ; t +ROM:AB3A .byte 0xC5 +ROM:AB3B .byte 0xF0 +ROM:AB3C .byte 0x7B ; { +ROM:AB3D .byte 1 +ROM:AB3E .byte 0x7A ; z +ROM:AB3F .byte 0 +ROM:AB40 .byte 0x7F ;  +ROM:AB41 .byte 0x30 ; 0 +ROM:AB42 .byte 0x12 +ROM:AB43 .byte 0x72 ; r +ROM:AB44 .byte 0x90 +ROM:AB45 .byte 0x90 +ROM:AB46 .byte 0xFE +ROM:AB47 .byte 0xC5 +ROM:AB48 .byte 0xE0 +ROM:AB49 .byte 0xFF +ROM:AB4A .byte 0x22 ; " +ROM:AB4B .byte 0x7E ; ~ +ROM:AB4C .byte 0 +ROM:AB4D .byte 0x7F ;  +ROM:AB4E .byte 0x10 +ROM:AB4F .byte 0x7D ; } +ROM:AB50 .byte 0 +ROM:AB51 .byte 0x7B ; { +ROM:AB52 .byte 1 +ROM:AB53 .byte 0x7A ; z +ROM:AB54 .byte 0xFE +ROM:AB55 .byte 0x79 ; y +ROM:AB56 .byte 0x90 +ROM:AB57 .byte 0x12 +ROM:AB58 .byte 0xE +ROM:AB59 .byte 0xA0 +ROM:AB5A .byte 0x90 +ROM:AB5B .byte 0xFD +ROM:AB5C .byte 0x94 +ROM:AB5D .byte 0xE0 +ROM:AB5E .byte 0x60 ; ` +ROM:AB5F .byte 0x2B ; + +ROM:AB60 .byte 0xE4 +ROM:AB61 .byte 0xFB +ROM:AB62 .byte 0xEB +ROM:AB63 .byte 0xC3 +ROM:AB64 .byte 0x94 +ROM:AB65 .byte 0x64 ; d +ROM:AB66 .byte 0x74 ; t +ROM:AB67 .byte 0x80 +ROM:AB68 .byte 0x94 +ROM:AB69 .byte 0x80 +ROM:AB6A .byte 0x50 ; P +ROM:AB6B .byte 9 +ROM:AB6C .byte 0x12 +ROM:AB6D .byte 0x30 ; 0 +ROM:AB6E .byte 0xEB +ROM:AB6F .byte 0x12 +ROM:AB70 .byte 0x4C ; L +ROM:AB71 .byte 0xB3 +ROM:AB72 .byte 0xB +ROM:AB73 .byte 0x80 +ROM:AB74 .byte 0xED +ROM:AB75 .byte 0x12 +ROM:AB76 .byte 0x30 ; 0 +ROM:AB77 .byte 0xEB +ROM:AB78 .byte 0x7B ; { +ROM:AB79 .byte 1 +ROM:AB7A .byte 0x7A ; z +ROM:AB7B .byte 0xFE +ROM:AB7C .byte 0x79 ; y +ROM:AB7D .byte 0x90 +ROM:AB7E .byte 0x7D ; } +ROM:AB7F .byte 0x10 +ROM:AB80 .byte 0x7C ; | +ROM:AB81 .byte 0 +ROM:AB82 .byte 0x7F ;  +ROM:AB83 .byte 5 +ROM:AB84 .byte 0x7E ; ~ +ROM:AB85 .byte 0 +ROM:AB86 .byte 0x12 +ROM:AB87 .byte 0x71 ; q +ROM:AB88 .byte 0x97 +ROM:AB89 .byte 0x51 ; Q +ROM:AB8A .byte 0xAA +ROM:AB8B .byte 0x22 ; " +ROM:AB8C .byte 0x12 +ROM:AB8D .byte 0x77 ; w +ROM:AB8E .byte 0x2B ; + +ROM:AB8F .byte 0x70 ; p +ROM:AB90 .byte 0xE +ROM:AB91 .byte 0x53 ; S +ROM:AB92 .byte 0xAE +ROM:AB93 .byte 0xF7 +ROM:AB94 .byte 0x43 ; C +ROM:AB95 .byte 0xBA +ROM:AB96 .byte 8 +ROM:AB97 .byte 0x43 ; C +ROM:AB98 .byte 0xBD +ROM:AB99 .byte 8 +ROM:AB9A .byte 0x43 ; C +ROM:AB9B .byte 0xA4 +ROM:AB9C .byte 8 +ROM:AB9D .byte 0x80 +ROM:AB9E .byte 0xC +ROM:AB9F .byte 0x53 ; S +ROM:ABA0 .byte 0xAE +ROM:ABA1 .byte 0xF7 +ROM:ABA2 .byte 0x43 ; C +ROM:ABA3 .byte 0xBA +ROM:ABA4 .byte 8 +ROM:ABA5 .byte 0x53 ; S +ROM:ABA6 .byte 0xBD +ROM:ABA7 .byte 0xF7 +ROM:ABA8 .byte 0x53 ; S +ROM:ABA9 .byte 0xA4 +ROM:ABAA .byte 0xF7 +ROM:ABAB .byte 0x53 ; S +ROM:ABAC .byte 0xAB +ROM:ABAD .byte 0xF7 +ROM:ABAE .byte 0x43 ; C +ROM:ABAF .byte 0xA7 +ROM:ABB0 .byte 8 +ROM:ABB1 .byte 0x53 ; S +ROM:ABB2 .byte 0xAB +ROM:ABB3 .byte 0xF7 +ROM:ABB4 .byte 0x22 ; " +ROM:ABB5 .byte 0x53 ; S +ROM:ABB6 .byte 0xAB +ROM:ABB7 .byte 0xF7 +ROM:ABB8 .byte 0x53 ; S +ROM:ABB9 .byte 0xA7 +ROM:ABBA .byte 0xF7 +ROM:ABBB .byte 0x22 ; " +ROM:ABBC +ROM:ABBC ; =============== S U B R O U T I N E ======================================= +ROM:ABBC +ROM:ABBC +ROM:ABBC ROM_ABBC: ; CODE XREF: ROM_39E2+15E↑p +ROM:ABBC mov DPTR, #0xF87D +ROM:ABBF lcall Save_3_bytes_R3_R2_R1 +ROM:ABC2 mov DPTR, #0xF889 +ROM:ABC5 lcall load_3_bytes_R1_R2_A +ROM:ABC8 mov DPTR, #0xFE01 +ROM:ABCB xch A, R1 +ROM:ABCC lcall Save_3_bytes_A_R2_R1 +ROM:ABCF mov DPTR, #0xFDEA +ROM:ABD2 mov A, #0xFF +ROM:ABD4 movx @DPTR, A +ROM:ABD5 mov DPTR, #0xF88F +ROM:ABD8 lcall load_4_bytes_R4_R5_R6_A +ROM:ABDB mov R7, A +ROM:ABDC mov DPTR, #0xFE04 +ROM:ABDF lcall save_4_bytes_R4_R7 +ROM:ABE2 mov DPTR, #0xF87D +ROM:ABE5 lcall load_3_bytes_R1_R2_A +ROM:ABE8 mov DPTR, #0xFE08 +ROM:ABEB xch A, R1 +ROM:ABEC lcall Save_3_bytes_A_R2_R1 +ROM:ABEF mov DPTR, #0xF880 +ROM:ABF2 lcall load_3_bytes_R1_R2_A +ROM:ABF5 mov DPTR, #0xFE0B +ROM:ABF8 xch A, R1 +ROM:ABF9 lcall Save_3_bytes_A_R2_R1 +ROM:ABFC mov DPTR, #0xF883 +ROM:ABFF lcall ROM_37C3 +ROM:AC02 mov R1, A +ROM:AC03 lcall code_9A7 +ROM:AC06 mov R7, A +ROM:AC07 mov DPTR, #0xFE0B +ROM:AC0A lcall ROM_37C3 +ROM:AC0D lcall ROM_7D37 +ROM:AC10 mov DPTR, #0xFDF7 +ROM:AC13 lcall Save_3_bytes_R3_R2_R1 +ROM:AC16 mov DPTR, #0xFE01 +ROM:AC19 lcall load_3_bytes_R1_R2_A +ROM:AC1C mov DPTR, #0xFE0E +ROM:AC1F xch A, R1 +ROM:AC20 lcall Save_3_bytes_A_R2_R1 +ROM:AC23 mov DPTR, #0xF88C +ROM:AC26 lcall ROM_37C3 +ROM:AC29 mov R1, A +ROM:AC2A lcall code_9A7 +ROM:AC2D mov R7, A +ROM:AC2E mov DPTR, #0xFE01 +ROM:AC31 lcall ROM_37C3 +ROM:AC34 lcall ROM_7D37 +ROM:AC37 mov DPTR, #0xFDFA +ROM:AC3A lcall Save_3_bytes_R3_R2_R1 +ROM:AC3D lcall ROM_CEFB +ROM:AC40 anl A, #4 +ROM:AC42 mov R7, A +ROM:AC43 mov A, R7 +ROM:AC44 jz ROM_AC4C +ROM:AC46 mov R6, #0xFF +ROM:AC48 mov R7, #0xFF +ROM:AC4A sjmp ROM_AC5E +ROM:AC4C ; --------------------------------------------------------------------------- +ROM:AC4C +ROM:AC4C ROM_AC4C: ; CODE XREF: ROM_ABBC+88↑j +ROM:AC4C mov DPTR, #0xF88C +ROM:AC4F lcall ROM_37C3 +ROM:AC52 mov R1, A +ROM:AC53 lcall code_9A7 +ROM:AC56 add A, #0xFF +ROM:AC58 mov R7, A +ROM:AC59 mov A, B ; B Register +ROM:AC5B addc A, #0xFF +ROM:AC5D mov R6, A +ROM:AC5E +ROM:AC5E ROM_AC5E: ; CODE XREF: ROM_ABBC+8E↑j +ROM:AC5E mov DPTR, #0xF893 +ROM:AC61 mov A, R6 +ROM:AC62 movx @DPTR, A +ROM:AC63 inc DPTR +ROM:AC64 mov A, R7 +ROM:AC65 movx @DPTR, A +ROM:AC66 mov A, #0xFF +ROM:AC68 mov DPTR, #0xF893 +ROM:AC6B movx @DPTR, A +ROM:AC6C inc DPTR +ROM:AC6D movx @DPTR, A +ROM:AC6E add A, #1 +ROM:AC70 mov R7, A +ROM:AC71 clr A +ROM:AC72 addc A, #0xFF +ROM:AC74 orl A, R7 +ROM:AC75 jz ROM_AC94 +ROM:AC77 mov DPTR, #0xF88C +ROM:AC7A lcall ROM_37C3 +ROM:AC7D mov R1, A +ROM:AC7E clr A +ROM:AC7F mov B, A ; B Register +ROM:AC81 lcall code_9D2 +ROM:AC84 mov DPTR, #0xF883 +ROM:AC87 lcall ROM_37C3 +ROM:AC8A mov R1, A +ROM:AC8B clr A +ROM:AC8C mov B, A ; B Register +ROM:AC8E lcall code_9D2 +ROM:AC91 mov R7, #0xFD +ROM:AC93 ret +ROM:AC94 ; --------------------------------------------------------------------------- +ROM:AC94 +ROM:AC94 ROM_AC94: ; CODE XREF: ROM_ABBC+B9↑j +ROM:AC94 lcall ROM_D2F9 +ROM:AC97 lcall ROM_D607 +ROM:AC9A lcall ROM_37C0 +ROM:AC9D add A, #4 +ROM:AC9F lcall ROM_87A6 +ROM:ACA2 lcall ROM_CF10 +ROM:ACA5 lcall ROM_37C0 +ROM:ACA8 add A, #0x38 ; '8' +ROM:ACAA lcall ROM_87A6 +ROM:ACAD mov DPTR, #0xFDF3 +ROM:ACB0 lcall save_4_bytes_R4_R7 +ROM:ACB3 lcall ROM_37C0 +ROM:ACB6 add A, #0x20 ; ' ' +ROM:ACB8 lcall ROM_87A6 +ROM:ACBB lcall ROM_D6E2 +ROM:ACBE lcall ROM_37C0 +ROM:ACC1 add A, #0x24 ; '$' +ROM:ACC3 lcall ROM_87A6 +ROM:ACC6 lcall ROM_CFAE +ROM:ACC9 lcall ROM_37C0 +ROM:ACCC add A, #0x28 ; '(' +ROM:ACCE lcall ROM_87A6 +ROM:ACD1 lcall ROM_D6A1 +ROM:ACD4 lcall ROM_37C0 +ROM:ACD7 add A, #0x3C ; '<' +ROM:ACD9 lcall ROM_42CC +ROM:ACDC mov R7, A +ROM:ACDD mov DPTR, #0xF895 +ROM:ACE0 lcall ROM_D48B +ROM:ACE3 mov DPTR, #0xFE08 +ROM:ACE6 lcall ROM_3EB2 +ROM:ACE9 lcall code_B53 +ROM:ACEC lcall code_C8F +ROM:ACEF mov R5, RAM_47 +ROM:ACF1 nop +ROM:ACF2 nop +ROM:ACF3 nop +ROM:ACF4 nop +ROM:ACF5 acall ROM_AD6A +ROM:ACF7 nop +ROM:ACF8 nop +ROM:ACF9 nop +ROM:ACFA inc R1 +ROM:ACFB cpl P1.4 ; Port 1 +ROM:ACFD nop +ROM:ACFE nop +ROM:ACFF nop +ROM:AD00 inc R2 +ROM:AD01 cjne R3, #0xFC, ROM_AD04 +ROM:AD04 +ROM:AD04 ROM_AD04: ; CODE XREF: ROM_ABBC+145↑j +ROM:AD04 nop +ROM:AD05 nop +ROM:AD06 acall ROM_A8BC+1 +ROM:AD08 anl A, R2 +ROM:AD09 nop +ROM:AD0A nop +ROM:AD0B nop +ROM:AD0C dec FSR_BF +ROM:AD0E mov RAM_0, R7 +ROM:AD10 nop +ROM:AD11 nop +ROM:AD12 dec R0 +ROM:AD13 xch A, R2 +ROM:AD14 pop RAM_0 +ROM:AD16 nop +ROM:AD17 nop +ROM:AD18 ret +ROM:AD18 ; End of function ROM_ABBC +ROM:AD18 +ROM:AD18 ; --------------------------------------------------------------------------- +ROM:AD19 .byte 0xB6 +ROM:AD1A .byte 0xEE +ROM:AD1B .byte 0 +ROM:AD1C .byte 0 +ROM:AD1D .byte 0 +ROM:AD1E .byte 0x23 ; # +ROM:AD1F .byte 0xC5 +ROM:AD20 .byte 0x15 +ROM:AD21 .byte 0 +ROM:AD22 .byte 0 +ROM:AD23 .byte 0 +ROM:AD24 .byte 0x25 ; % +ROM:AD25 .byte 0xB1 +ROM:AD26 .byte 0xCC +ROM:AD27 .byte 0 +ROM:AD28 .byte 0 +ROM:AD29 .byte 0 +ROM:AD2A .byte 0x26 ; & +ROM:AD2B .byte 0xB0 +ROM:AD2C .byte 0x89 +ROM:AD2D .byte 0 +ROM:AD2E .byte 0 +ROM:AD2F .byte 0 +ROM:AD30 .byte 0x27 ; ' +ROM:AD31 .byte 0xB1 +ROM:AD32 .byte 0xC1 +ROM:AD33 .byte 0 +ROM:AD34 .byte 0 +ROM:AD35 .byte 0 +ROM:AD36 .byte 0x28 ; ( +ROM:AD37 .byte 0xB1 +ROM:AD38 .byte 6 +ROM:AD39 .byte 0 +ROM:AD3A .byte 0 +ROM:AD3B .byte 0 +ROM:AD3C .byte 0x34 ; 4 +ROM:AD3D .byte 0xC8 +ROM:AD3E .byte 0x1B +ROM:AD3F .byte 0 +ROM:AD40 .byte 0 +ROM:AD41 .byte 0 +ROM:AD42 .byte 0x35 ; 5 +ROM:AD43 .byte 0 +ROM:AD44 .byte 0 +ROM:AD45 .byte 0xCA +ROM:AD46 .byte 0xE1 +ROM:AD47 .byte 0xE4 +ROM:AD48 .byte 0xFF +ROM:AD49 .byte 0xFE +ROM:AD4A .byte 0xFD +ROM:AD4B .byte 0xFC +ROM:AD4C .byte 0xE9 +ROM:AD4D .byte 0x24 ; $ +ROM:AD4E .byte 0xC +ROM:AD4F .byte 0x12 +ROM:AD50 .byte 0xCE +ROM:AD51 .byte 0xCA +ROM:AD52 .byte 0xE4 +ROM:AD53 .byte 0xFF +ROM:AD54 .byte 0xFE +ROM:AD55 .byte 0xFD +ROM:AD56 .byte 0xFC +ROM:AD57 .byte 0x12 +ROM:AD58 .byte 0x37 ; 7 +ROM:AD59 .byte 0xC0 +ROM:AD5A .byte 0x12 +ROM:AD5B .byte 0xCE +ROM:AD5C .byte 0xC8 +ROM:AD5D .byte 0xE4 +ROM:AD5E .byte 0xFF +ROM:AD5F .byte 0xFE +ROM:AD60 .byte 0xFD +ROM:AD61 .byte 0xFC +ROM:AD62 .byte 0x90 +ROM:AD63 .byte 0xFD +ROM:AD64 .byte 0xEF +ROM:AD65 .byte 0x12 +ROM:AD66 .byte 0xD3 +ROM:AD67 .byte 1 +ROM:AD68 .byte 0x90 +ROM:AD69 .byte 0xFD +ROM:AD6A +ROM:AD6A ; =============== S U B R O U T I N E ======================================= +ROM:AD6A +ROM:AD6A +ROM:AD6A ROM_AD6A: ; CODE XREF: ROM_ABBC+139↑p +ROM:AD6A movx A, @R1 +ROM:AD6B lcall ROM_D301 +ROM:AD6E lcall ROM_D6E2 +ROM:AD71 clr A +ROM:AD72 mov R7, A +ROM:AD73 mov R6, A +ROM:AD74 mov R5, A +ROM:AD75 lcall ROM_CF0F +ROM:AD78 clr A +ROM:AD79 mov R7, A +ROM:AD7A mov R6, A +ROM:AD7B mov R5, A +ROM:AD7C mov R4, A +ROM:AD7D mov DPTR, #0xFDF3 +ROM:AD80 lcall save_4_bytes_R4_R7 +ROM:AD83 lcall ROM_D916 +ROM:AD86 lcall ROM_37C0 +ROM:AD89 add A, #0x1C +ROM:AD8B lcall ROM_CECA +ROM:AD8E lcall ROM_D916 +ROM:AD91 lcall ROM_37C0 +ROM:AD94 add A, #0x10 +ROM:AD96 lcall ROM_CECA +ROM:AD99 lcall ROM_CEFB +ROM:AD9C lcall ROM_CF6F +ROM:AD9F jnz ROM_ADA3 +ROM:ADA1 ajmp ROM_AE82 +ROM:ADA3 ; --------------------------------------------------------------------------- +ROM:ADA3 +ROM:ADA3 ROM_ADA3: ; CODE XREF: ROM_AD6A+35↑j +ROM:ADA3 mov DPTR, #0xFE0B +ROM:ADA6 lcall ROM_D27D +ROM:ADA9 lcall code_891 +ROM:ADAC mov R7, A +ROM:ADAD lcall ROM_37C0 +ROM:ADB0 lcall ROM_CEC8 +ROM:ADB3 lcall ROM_CEA1 +ROM:ADB6 lcall ROM_37C0 +ROM:ADB9 add A, #0xC +ROM:ADBB lcall ROM_CECA +ROM:ADBE lcall ROM_37C0 +ROM:ADC1 add A, #8 +ROM:ADC3 lcall ROM_87A6 +ROM:ADC6 clr A +ROM:ADC7 mov R3, A +ROM:ADC8 mov R2, #1 +ROM:ADCA lcall ROM_37BB +ROM:ADCD add A, #0xC +ROM:ADCF lcall ROM_CFB4 +ROM:ADD2 mov A, R7 +ROM:ADD3 add A, R3 +ROM:ADD4 lcall ROM_2F78 +ROM:ADD7 clr A +ROM:ADD8 mov R3, #0x1F +ROM:ADDA mov R2, A +ROM:ADDB lcall ROM_D372 +ROM:ADDE clr A +ROM:ADDF mov R3, A +ROM:ADE0 mov R2, A +ROM:ADE1 lcall ROM_D532 +ROM:ADE4 jnz ROM_AE0E +ROM:ADE6 lcall ROM_37C0 +ROM:ADE9 add A, #0xC +ROM:ADEB lcall ROM_87A6 +ROM:ADEE mov A, R7 +ROM:ADEF anl A, #0x20 +ROM:ADF1 lcall ROM_CF71 +ROM:ADF4 jnz ROM_AE0E +ROM:ADF6 lcall ROM_CF5D +ROM:ADF9 add A, #8 +ROM:ADFB lcall ROM_87A6 +ROM:ADFE mov A, R7 +ROM:ADFF anl A, #0xF +ROM:AE01 mov R7, A +ROM:AE02 clr A +ROM:AE03 mov R6, A +ROM:AE04 mov R5, A +ROM:AE05 mov R4, A +ROM:AE06 mov R3, #8 +ROM:AE08 mov R2, A +ROM:AE09 lcall ROM_D532 +ROM:AE0C jz ROM_AE13 +ROM:AE0E +ROM:AE0E ROM_AE0E: ; CODE XREF: ROM_AD6A+7A↑j +ROM:AE0E ; ROM_AD6A+8A↑j +ROM:AE0E clr A +ROM:AE0F mov R7, #1 +ROM:AE11 sjmp ROM_AE15 +ROM:AE13 ; --------------------------------------------------------------------------- +ROM:AE13 +ROM:AE13 ROM_AE13: ; CODE XREF: ROM_AD6A+A2↑j +ROM:AE13 clr A +ROM:AE14 mov R7, A +ROM:AE15 +ROM:AE15 ROM_AE15: ; CODE XREF: ROM_AD6A+A7↑j +ROM:AE15 mov R6, A +ROM:AE16 mov R5, A +ROM:AE17 mov R4, A +ROM:AE18 lcall ROM_CFAE +ROM:AE1B lcall ROM_CEFB +ROM:AE1E anl A, #4 +ROM:AE20 mov R7, A +ROM:AE21 mov A, R7 +ROM:AE22 jnz ROM_AE82 +ROM:AE24 mov DPTR, #0xFDE3 +ROM:AE27 lcall load_4_bytes_R4_R5_R6_A +ROM:AE2A mov R7, A +ROM:AE2B push RAM_4 +ROM:AE2D push RAM_5 +ROM:AE2F push RAM_6 +ROM:AE31 push RAM_7 +ROM:AE33 lcall ROM_37C0 +ROM:AE36 add A, #8 +ROM:AE38 lcall ROM_87A6 +ROM:AE3B mov R0, #4 +ROM:AE3D lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:AE40 mov A, R7 +ROM:AE41 add A, #8 +ROM:AE43 lcall ROM_D335 +ROM:AE46 sjmp ROM_AE4D +ROM:AE48 ; --------------------------------------------------------------------------- +ROM:AE48 +ROM:AE48 ROM_AE48: ; CODE XREF: ROM_AD6A:ROM_AE4D↓j +ROM:AE48 clr C +ROM:AE49 rlc A +ROM:AE4A xch A, R6 +ROM:AE4B rlc A +ROM:AE4C xch A, R6 +ROM:AE4D +ROM:AE4D ROM_AE4D: ; CODE XREF: ROM_AD6A+DC↑j +ROM:AE4D djnz R0, ROM_AE48 +ROM:AE4F mov R7, A +ROM:AE50 setb C +ROM:AE51 subb A, #0 +ROM:AE53 mov A, R6 +ROM:AE54 subb A, #0x80 +ROM:AE56 jnc ROM_AE6A +ROM:AE58 mov DPTR, #0xF894 +ROM:AE5B movx A, @DPTR +ROM:AE5C add A, #1 +ROM:AE5E mov R5, A +ROM:AE5F mov DPTR, #0xF893 +ROM:AE62 movx A, @DPTR +ROM:AE63 addc A, #0 +ROM:AE65 lcall ROM_D3CD +ROM:AE68 jnc ROM_AE6F +ROM:AE6A +ROM:AE6A ROM_AE6A: ; CODE XREF: ROM_AD6A+EC↑j +ROM:AE6A clr A +ROM:AE6B mov R3, #1 +ROM:AE6D sjmp ROM_AE71 +ROM:AE6F ; --------------------------------------------------------------------------- +ROM:AE6F +ROM:AE6F ROM_AE6F: ; CODE XREF: ROM_AD6A+FE↑j +ROM:AE6F clr A +ROM:AE70 mov R3, A +ROM:AE71 +ROM:AE71 ROM_AE71: ; CODE XREF: ROM_AD6A+103↑j +ROM:AE71 mov R2, A +ROM:AE72 mov R1, A +ROM:AE73 mov R0, A +ROM:AE74 pop RAM_7 +ROM:AE76 pop RAM_6 +ROM:AE78 pop RAM_5 +ROM:AE7A pop RAM_4 +ROM:AE7C lcall ROM_D3A8 +ROM:AE7F lcall ROM_CFAD +ROM:AE82 +ROM:AE82 ROM_AE82: ; CODE XREF: ROM_AD6A+37↑j +ROM:AE82 ; ROM_AD6A+B8↑j ... +ROM:AE82 clr A +ROM:AE83 mov R7, #3 +ROM:AE85 lcall ROM_2626 +ROM:AE88 clr C +ROM:AE89 lcall code_B1C +ROM:AE8C jnc ROM_AEC3 +ROM:AE8E +ROM:AE8E ROM_AE8E: ; CODE XREF: ROM_AD6A+157↓j +ROM:AE8E lcall ROM_CEA1 +ROM:AE91 lcall ROM_CF21 +ROM:AE94 lcall load_4_bytes_R0_R1_R2_R3 +ROM:AE97 push RAM_0 +ROM:AE99 push RAM_1 +ROM:AE9B lcall ROM_CEDA +ROM:AE9E mov R1, A +ROM:AE9F mov DPTR, #0xF897 +ROM:AEA2 lcall load_4_bytes_R4_R5_R6_A +ROM:AEA5 lcall ROM_CF40 +ROM:AEA8 pop RAM_1 +ROM:AEAA pop RAM_0 +ROM:AEAC lcall code_1FD4 +ROM:AEAF add A, #8 +ROM:AEB1 lcall ROM_3738 +ROM:AEB4 lcall ROM_CF0F +ROM:AEB7 clr A +ROM:AEB8 mov R7, #3 +ROM:AEBA lcall ROM_2626 +ROM:AEBD clr C +ROM:AEBE lcall code_B1C +ROM:AEC1 jc ROM_AE8E +ROM:AEC3 +ROM:AEC3 ROM_AEC3: ; CODE XREF: ROM_AD6A+122↑j +ROM:AEC3 lcall ROM_D42C +ROM:AEC6 anl A, #7 +ROM:AEC8 mov R7, A +ROM:AEC9 clr A +ROM:AECA mov R6, A +ROM:AECB mov R5, A +ROM:AECC mov R4, A +ROM:AECD lcall ROM_37C0 +ROM:AED0 add A, #0x14 +ROM:AED2 lcall ROM_CECA +ROM:AED5 mov DPTR, #0xFDF3 +ROM:AED8 lcall load_4_bytes_R4_R5_R6_A +ROM:AEDB mov R7, A +ROM:AEDC mov R0, #3 +ROM:AEDE lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:AEE1 lcall code_1FE0 +ROM:AEE4 clr C +ROM:AEE5 subb A, #3 +ROM:AEE7 lcall ROM_CFA0 +ROM:AEEA lcall ROM_CF0F +ROM:AEED lcall code_B53 +ROM:AEF0 mov R0, #1 +ROM:AEF2 lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:AEF5 lcall ROM_37C0 +ROM:AEF8 add A, #0x18 +ROM:AEFA lcall ROM_CECA +ROM:AEFD lcall code_B53 +ROM:AF00 clr A +ROM:AF01 mov R3, A +ROM:AF02 mov R2, A +ROM:AF03 lcall ROM_D532 +ROM:AF06 jz ROM_AF0B +ROM:AF08 ljmp ROM_B285 +ROM:AF0B ; --------------------------------------------------------------------------- +ROM:AF0B +ROM:AF0B ROM_AF0B: ; CODE XREF: ROM_AD6A+19C↑j +ROM:AF0B lcall ROM_CEDA +ROM:AF0E anl A, #7 +ROM:AF10 mov R7, A +ROM:AF11 clr A +ROM:AF12 lcall ROM_2626 +ROM:AF15 clr C +ROM:AF16 lcall code_B1C +ROM:AF19 jnc ROM_AF54 +ROM:AF1B +ROM:AF1B ROM_AF1B: ; CODE XREF: ROM_AD6A+1E8↓j +ROM:AF1B lcall ROM_CEA1 +ROM:AF1E lcall ROM_CF21 +ROM:AF21 lcall load_4_bytes_R0_R1_R2_R3 +ROM:AF24 push RAM_0 +ROM:AF26 push RAM_1 +ROM:AF28 lcall ROM_CEDA +ROM:AF2B mov R1, A +ROM:AF2C mov DPTR, #0xF897 +ROM:AF2F lcall load_4_bytes_R4_R5_R6_A +ROM:AF32 lcall ROM_CF40 +ROM:AF35 pop RAM_1 +ROM:AF37 pop RAM_0 +ROM:AF39 lcall code_1FD4 +ROM:AF3C add A, #8 +ROM:AF3E lcall ROM_3738 +ROM:AF41 lcall ROM_CF0F +ROM:AF44 lcall ROM_CEDA +ROM:AF47 anl A, #7 +ROM:AF49 mov R7, A +ROM:AF4A clr A +ROM:AF4B lcall ROM_2626 +ROM:AF4E clr C +ROM:AF4F lcall code_B1C +ROM:AF52 jc ROM_AF1B +ROM:AF54 +ROM:AF54 ROM_AF54: ; CODE XREF: ROM_AD6A+1AF↑j +ROM:AF54 mov DPTR, #0xFDF3 +ROM:AF57 lcall load_4_bytes_R4_R5_R6_A +ROM:AF5A mov R7, A +ROM:AF5B push RAM_4 +ROM:AF5D push RAM_5 +ROM:AF5F push RAM_6 +ROM:AF61 push RAM_7 +ROM:AF63 lcall ROM_CEDA +ROM:AF66 anl A, #7 +ROM:AF68 mov R7, A +ROM:AF69 clr A +ROM:AF6A mov R1, RAM_7 +ROM:AF6C pop RAM_7 +ROM:AF6E pop RAM_6 +ROM:AF70 pop RAM_5 +ROM:AF72 pop RAM_4 +ROM:AF74 mov R0, RAM_1 +ROM:AF76 lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:AF79 lcall code_1FE0 +ROM:AF7C mov R7, A +ROM:AF7D lcall ROM_CEDA +ROM:AF80 anl A, #7 +ROM:AF82 mov R3, A +ROM:AF83 clr C +ROM:AF84 mov A, R7 +ROM:AF85 subb A, R3 +ROM:AF86 lcall ROM_CFA0 +ROM:AF89 lcall ROM_CF0F +ROM:AF8C clr A +ROM:AF8D mov R7, A +ROM:AF8E mov R6, A +ROM:AF8F mov R5, A +ROM:AF90 ljmp ROM_B03A +ROM:AF93 ; --------------------------------------------------------------------------- +ROM:AF93 +ROM:AF93 ROM_AF93: ; CODE XREF: ROM_AD6A+2D3↓j +ROM:AF93 lcall ROM_D4BE +ROM:AF96 lcall load_4_bytes_R0_R1_R2_R3 +ROM:AF99 clr C +ROM:AF9A lcall code_B1C +ROM:AF9D jc ROM_AFA2 +ROM:AF9F ljmp ROM_B040 +ROM:AFA2 ; --------------------------------------------------------------------------- +ROM:AFA2 +ROM:AFA2 ROM_AFA2: ; CODE XREF: ROM_AD6A+233↑j +ROM:AFA2 lcall load_4_bytes_R4_R5_R6_A_From_0xFDFD +ROM:AFA5 mov R7, A +ROM:AFA6 mov A, R4 +ROM:AFA7 orl A, R5 +ROM:AFA8 orl A, R6 +ROM:AFA9 orl A, R7 +ROM:AFAA jz ROM_B00B +ROM:AFAC clr A +ROM:AFAD mov R7, #8 +ROM:AFAF lcall ROM_2626 +ROM:AFB2 clr C +ROM:AFB3 lcall code_B1C +ROM:AFB6 jnc ROM_AFF0 +ROM:AFB8 +ROM:AFB8 ROM_AFB8: ; CODE XREF: ROM_AD6A+284↓j +ROM:AFB8 lcall ROM_CEA1 +ROM:AFBB mov DPTR, #0xF89B +ROM:AFBE lcall ROM_CF24 +ROM:AFC1 lcall load_4_bytes_R0_R1_R2_R3 +ROM:AFC4 push RAM_0 +ROM:AFC6 push RAM_1 +ROM:AFC8 lcall ROM_CEDA +ROM:AFCB mov R1, A +ROM:AFCC mov DPTR, #0xF89B +ROM:AFCF lcall load_4_bytes_R4_R5_R6_A +ROM:AFD2 lcall ROM_CF40 +ROM:AFD5 pop RAM_1 +ROM:AFD7 pop RAM_0 +ROM:AFD9 lcall code_1FD4 +ROM:AFDC add A, #8 +ROM:AFDE lcall ROM_3738 +ROM:AFE1 lcall ROM_CF0F +ROM:AFE4 clr A +ROM:AFE5 mov R7, #8 +ROM:AFE7 lcall ROM_2626 +ROM:AFEA clr C +ROM:AFEB lcall code_B1C +ROM:AFEE jc ROM_AFB8 +ROM:AFF0 +ROM:AFF0 ROM_AFF0: ; CODE XREF: ROM_AD6A+24C↑j +ROM:AFF0 lcall ROM_D42C +ROM:AFF3 mov R7, A +ROM:AFF4 clr A +ROM:AFF5 mov R6, A +ROM:AFF6 mov R5, A +ROM:AFF7 lcall ROM_CF20 +ROM:AFFA lcall load_4_bytes_R4_R5_R6_A +ROM:AFFD acall ROM_A91B +ROM:AFFF lcall code_1FE0 +ROM:B002 lcall ROM_CF9D +ROM:B005 mov R4, A +ROM:B006 mov DPTR, #0xFDFD +ROM:B009 sjmp ROM_B011 +ROM:B00B ; --------------------------------------------------------------------------- +ROM:B00B +ROM:B00B ROM_B00B: ; CODE XREF: ROM_AD6A+240↑j +ROM:B00B lcall ROM_CEA1 +ROM:B00E mov DPTR, #0xF897 +ROM:B011 +ROM:B011 ROM_B011: ; CODE XREF: ROM_AD6A+29F↑j +ROM:B011 lcall save_4_bytes_R4_R7 +ROM:B014 lcall ROM_D95F +ROM:B017 push RAM_7 +ROM:B019 lcall ROM_37C0 +ROM:B01C add A, #0x6B ; 'k' +ROM:B01E mov R1, A +ROM:B01F clr A +ROM:B020 addc A, R2 +ROM:B021 mov R2, A +ROM:B022 mov DPTR, #0xFDE3 +ROM:B025 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:B028 add A, R1 +ROM:B029 lcall ROM_3788 +ROM:B02C pop ACC ; Accumulator +ROM:B02E lcall code_8CC +ROM:B031 mov DPTR, #0xFDE3 +ROM:B034 lcall load_4_bytes_R4_R5_R6_A +ROM:B037 lcall ROM_3736 +ROM:B03A +ROM:B03A ROM_B03A: ; CODE XREF: ROM_AD6A+226↑j +ROM:B03A lcall ROM_CFAD +ROM:B03D ljmp ROM_AF93 +ROM:B040 ; --------------------------------------------------------------------------- +ROM:B040 +ROM:B040 ROM_B040: ; CODE XREF: ROM_AD6A+235↑j +ROM:B040 lcall ROM_37C0 +ROM:B043 add A, #0x6E ; 'n' +ROM:B045 lcall ROM_39DB +ROM:B048 lcall ROM_CF5D +ROM:B04B add A, #0x6D ; 'm' +ROM:B04D lcall ROM_39DB +ROM:B050 mov R7, A +ROM:B051 mov A, #0xFF +ROM:B053 mov R6, A +ROM:B054 mov A, R7 +ROM:B055 cpl A +ROM:B056 mov R7, A +ROM:B057 clr A +ROM:B058 mov R4, A +ROM:B059 mov R5, A +ROM:B05A push RAM_4 +ROM:B05C push RAM_5 +ROM:B05E push RAM_6 +ROM:B060 push RAM_7 +ROM:B062 lcall ROM_CF5D +ROM:B065 add A, #0x6C ; 'l' +ROM:B067 lcall ROM_39DB +ROM:B06A lcall ROM_CF5D +ROM:B06D add A, #0x6B ; 'k' +ROM:B06F lcall ROM_39DB +ROM:B072 mov R7, A +ROM:B073 clr A +ROM:B074 mov R6, A +ROM:B075 lcall ROM_CFAE +ROM:B078 lcall ROM_9B54 +ROM:B07B pop RAM_7 +ROM:B07D pop RAM_6 +ROM:B07F pop RAM_5 +ROM:B081 pop RAM_4 +ROM:B083 clr C +ROM:B084 lcall code_B1C +ROM:B087 jz ROM_B090 +ROM:B089 lcall ROM_D434 +ROM:B08C mov R7, #0x27 ; ''' +ROM:B08E ajmp ROM_B1C6 +ROM:B090 ; --------------------------------------------------------------------------- +ROM:B090 +ROM:B090 ROM_B090: ; CODE XREF: ROM_AD6A+31D↑j +ROM:B090 ; ROM_AD6A+3EE↓j +ROM:B090 mov DPTR, #0xFDE3 +ROM:B093 lcall load_4_bytes_R4_R5_R6_A +ROM:B096 mov R7, A +ROM:B097 mov A, R4 +ROM:B098 orl A, R5 +ROM:B099 orl A, R6 +ROM:B09A orl A, R7 +ROM:B09B jnz ROM_B09F +ROM:B09D ajmp ROM_B15A +ROM:B09F ; --------------------------------------------------------------------------- +ROM:B09F +ROM:B09F ROM_B09F: ; CODE XREF: ROM_AD6A+331↑j +ROM:B09F lcall load_4_bytes_R4_R5_R6_A_From_0xFDFD +ROM:B0A2 mov R7, A +ROM:B0A3 mov A, R4 +ROM:B0A4 orl A, R5 +ROM:B0A5 orl A, R6 +ROM:B0A6 orl A, R7 +ROM:B0A7 jnz ROM_B0AB +ROM:B0A9 ajmp ROM_B15A +ROM:B0AB ; --------------------------------------------------------------------------- +ROM:B0AB +ROM:B0AB ROM_B0AB: ; CODE XREF: ROM_AD6A+33D↑j +ROM:B0AB clr A +ROM:B0AC mov R7, #8 +ROM:B0AE lcall ROM_2626 +ROM:B0B1 clr C +ROM:B0B2 lcall code_B1C +ROM:B0B5 jnc ROM_B0EC +ROM:B0B7 +ROM:B0B7 ROM_B0B7: ; CODE XREF: ROM_AD6A+380↓j +ROM:B0B7 lcall ROM_CEA1 +ROM:B0BA lcall ROM_CF21 +ROM:B0BD lcall load_4_bytes_R0_R1_R2_R3 +ROM:B0C0 push RAM_0 +ROM:B0C2 push RAM_1 +ROM:B0C4 lcall ROM_CEDA +ROM:B0C7 mov R1, A +ROM:B0C8 mov DPTR, #0xF897 +ROM:B0CB lcall load_4_bytes_R4_R5_R6_A +ROM:B0CE lcall ROM_CF40 +ROM:B0D1 pop RAM_1 +ROM:B0D3 pop RAM_0 +ROM:B0D5 lcall code_1FD4 +ROM:B0D8 add A, #8 +ROM:B0DA lcall ROM_3738 +ROM:B0DD lcall ROM_CF0F +ROM:B0E0 clr A +ROM:B0E1 mov R7, #8 +ROM:B0E3 lcall ROM_2626 +ROM:B0E6 clr C +ROM:B0E7 lcall code_B1C +ROM:B0EA jc ROM_B0B7 +ROM:B0EC +ROM:B0EC ROM_B0EC: ; CODE XREF: ROM_AD6A+34B↑j +ROM:B0EC lcall ROM_D42C +ROM:B0EF mov R7, A +ROM:B0F0 clr A +ROM:B0F1 lcall ROM_D5B3 +ROM:B0F4 lcall ROM_CF24 +ROM:B0F7 lcall load_4_bytes_R4_R5_R6_A +ROM:B0FA lcall ROM_A91B +ROM:B0FD lcall code_1FE0 +ROM:B100 lcall ROM_CF9D +ROM:B103 lcall ROM_CF0F +ROM:B106 mov DPTR, #0xFDFA +ROM:B109 lcall ROM_37C3 +ROM:B10C mov R1, A +ROM:B10D push RAM_3 +ROM:B10F push RAM_2 +ROM:B111 push RAM_1 +ROM:B113 mov DPTR, #0xFE0E +ROM:B116 lcall ROM_3EB2 +ROM:B119 clr C +ROM:B11A pop DP0L ; Data Pointer Low Byte +ROM:B11C pop DP0H ; Data Pointer High Byte +ROM:B11E pop ACC ; Accumulator +ROM:B120 lcall ROM_D71C +ROM:B123 jc ROM_B12C +ROM:B125 lcall ROM_D66C +ROM:B128 mov R7, #0x34 ; '4' +ROM:B12A ajmp ROM_B1C6 +ROM:B12C ; --------------------------------------------------------------------------- +ROM:B12C +ROM:B12C ROM_B12C: ; CODE XREF: ROM_AD6A+3B9↑j +ROM:B12C lcall ROM_DA24 +ROM:B12F lcall ROM_D279 +ROM:B132 mov A, R7 +ROM:B133 lcall code_8CC +ROM:B136 mov DPTR, #0xF71C +ROM:B139 lcall load_4_bytes_R4_R5_R6_A +ROM:B13C lcall ROM_3736 +ROM:B13F lcall ROM_CF78 +ROM:B142 lcall load_4_bytes_R4_R5_R6_A +ROM:B145 lcall ROM_3736 +ROM:B148 mov R4, A +ROM:B149 lcall ROM_D716 +ROM:B14C mov DPTR, #0xFDE3 +ROM:B14F lcall load_4_bytes_R4_R5_R6_A +ROM:B152 lcall ROM_D35D +ROM:B155 lcall ROM_CFAD +ROM:B158 ajmp ROM_B090 +ROM:B15A ; --------------------------------------------------------------------------- +ROM:B15A +ROM:B15A ROM_B15A: ; CODE XREF: ROM_AD6A+333↑j +ROM:B15A ; ROM_AD6A+33F↑j ... +ROM:B15A mov DPTR, #0xFDE3 +ROM:B15D lcall load_4_bytes_R4_R5_R6_A +ROM:B160 mov R7, A +ROM:B161 mov A, R4 +ROM:B162 orl A, R5 +ROM:B163 orl A, R6 +ROM:B164 orl A, R7 +ROM:B165 jnz ROM_B16A +ROM:B167 ljmp ROM_C98E +ROM:B16A ; --------------------------------------------------------------------------- +ROM:B16A +ROM:B16A ROM_B16A: ; CODE XREF: ROM_AD6A+3FB↑j +ROM:B16A mov DPTR, #0xFDFA +ROM:B16D lcall ROM_37C3 +ROM:B170 mov R1, A +ROM:B171 push RAM_3 +ROM:B173 push RAM_2 +ROM:B175 push RAM_1 +ROM:B177 mov DPTR, #0xFE0E +ROM:B17A lcall ROM_3EB2 +ROM:B17D clr C +ROM:B17E pop DP0L ; Data Pointer Low Byte +ROM:B180 pop DP0H ; Data Pointer High Byte +ROM:B182 pop ACC ; Accumulator +ROM:B184 lcall ROM_D71C +ROM:B187 jc ROM_B190 +ROM:B189 lcall ROM_D66C +ROM:B18C mov R7, #9 +ROM:B18E sjmp ROM_B1C6 +ROM:B190 ; --------------------------------------------------------------------------- +ROM:B190 +ROM:B190 ROM_B190: ; CODE XREF: ROM_AD6A+41D↑j +ROM:B190 mov DPTR, #0xFDF7 +ROM:B193 lcall ROM_37C3 +ROM:B196 mov R1, A +ROM:B197 push RAM_3 +ROM:B199 push RAM_2 +ROM:B19B push RAM_1 +ROM:B19D lcall ROM_3EAF +ROM:B1A0 clr C +ROM:B1A1 pop DP0L ; Data Pointer Low Byte +ROM:B1A3 pop DP0H ; Data Pointer High Byte +ROM:B1A5 pop ACC ; Accumulator +ROM:B1A7 lcall ROM_D71C +ROM:B1AA jc ROM_B1CE +ROM:B1AC lcall ROM_CEFB +ROM:B1AF anl A, #2 +ROM:B1B1 lcall ROM_CF71 +ROM:B1B4 jz ROM_B1C1 +ROM:B1B6 mov DPTR, #0xFDEA +ROM:B1B9 mov A, #1 +ROM:B1BB movx @DPTR, A +ROM:B1BC mov R7, #0x26 ; '&' +ROM:B1BE ljmp ROM_CADA +ROM:B1C1 ; --------------------------------------------------------------------------- +ROM:B1C1 +ROM:B1C1 ROM_B1C1: ; CODE XREF: ROM_AD6A+44A↑j +ROM:B1C1 lcall ROM_D434 +ROM:B1C4 mov R7, #0x28 ; '(' +ROM:B1C6 +ROM:B1C6 ROM_B1C6: ; CODE XREF: ROM_AD6A+324↑j +ROM:B1C6 ; ROM_AD6A+3C0↑j ... +ROM:B1C6 mov R6, A +ROM:B1C7 mov R5, A +ROM:B1C8 mov R4, A +ROM:B1C9 ljmp ROM_CADA +ROM:B1C9 ; --------------------------------------------------------------------------- +ROM:B1CC .byte 0x80 +ROM:B1CD .byte 0xC2 +ROM:B1CE ; --------------------------------------------------------------------------- +ROM:B1CE +ROM:B1CE ROM_B1CE: ; CODE XREF: ROM_AD6A+440↑j +ROM:B1CE lcall ROM_D2A6 +ROM:B1D1 lcall ROM_D3B4 +ROM:B1D4 jnc ROM_B1DC +ROM:B1D6 mov R6, RAM_4 +ROM:B1D8 mov R7, RAM_5 +ROM:B1DA sjmp ROM_B1E0 +ROM:B1DC ; --------------------------------------------------------------------------- +ROM:B1DC +ROM:B1DC ROM_B1DC: ; CODE XREF: ROM_AD6A+46A↑j +ROM:B1DC lcall ROM_D2A6 +ROM:B1DF mov R6, A +ROM:B1E0 +ROM:B1E0 ROM_B1E0: ; CODE XREF: ROM_AD6A+470↑j +ROM:B1E0 clr A +ROM:B1E1 mov R4, A +ROM:B1E2 mov R5, A +ROM:B1E3 mov DPTR, #0xFDE3 +ROM:B1E6 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B1E9 setb C +ROM:B1EA lcall code_B1C +ROM:B1ED jc ROM_B20C +ROM:B1EF mov DPTR, #0xFE0B +ROM:B1F2 lcall ROM_CF66 +ROM:B1F5 mov DPTR, #0xFDF7 +ROM:B1F8 lcall ROM_D902 +ROM:B1FB lcall ROM_D3B4 +ROM:B1FE jnc ROM_B206 +ROM:B200 mov R6, RAM_4 +ROM:B202 mov R7, RAM_5 +ROM:B204 sjmp ROM_B210 +ROM:B206 ; --------------------------------------------------------------------------- +ROM:B206 +ROM:B206 ROM_B206: ; CODE XREF: ROM_AD6A+494↑j +ROM:B206 lcall ROM_D2A6 +ROM:B209 mov R6, A +ROM:B20A sjmp ROM_B210 +ROM:B20C ; --------------------------------------------------------------------------- +ROM:B20C +ROM:B20C ROM_B20C: ; CODE XREF: ROM_AD6A+483↑j +ROM:B20C lcall ROM_578B +ROM:B20F mov R7, A +ROM:B210 +ROM:B210 ROM_B210: ; CODE XREF: ROM_AD6A+49A↑j +ROM:B210 ; ROM_AD6A+4A0↑j +ROM:B210 mov DPTR, #0xF897 +ROM:B213 mov A, R6 +ROM:B214 movx @DPTR, A +ROM:B215 inc DPTR +ROM:B216 mov A, R7 +ROM:B217 movx @DPTR, A +ROM:B218 lcall ROM_D380 +ROM:B21B mov R7, A +ROM:B21C mov DPTR, #0xFE0E +ROM:B21F lcall ROM_37C3 +ROM:B222 mov R0, A +ROM:B223 mov R4, RAM_2 +ROM:B225 mov R5, RAM_3 +ROM:B227 mov DPTR, #0xFE0B +ROM:B22A lcall ROM_37C3 +ROM:B22D mov R1, A +ROM:B22E lcall code_86B +ROM:B231 lcall ROM_D380 +ROM:B234 mov R7, A +ROM:B235 mov DPTR, #0xFE0C +ROM:B238 lcall ROM_CF3A +ROM:B23B lcall ROM_CF37 +ROM:B23E mov DPTR, #0xFDE3 +ROM:B241 lcall load_4_bytes_R4_R5_R6_A +ROM:B244 mov R7, A +ROM:B245 push RAM_6 +ROM:B247 push RAM_7 +ROM:B249 lcall ROM_D380 +ROM:B24C mov R3, A +ROM:B24D mov R2, RAM_6 +ROM:B24F pop RAM_7 +ROM:B251 pop RAM_6 +ROM:B253 lcall ROM_9379 +ROM:B256 lcall ROM_CFA4 +ROM:B259 lcall ROM_CFAD +ROM:B25C mov DPTR, #0xF71C +ROM:B25F lcall load_4_bytes_R0_R1_R2_R3 +ROM:B262 mov DPTR, #0xF897 +ROM:B265 lcall ROM_3297 +ROM:B268 lcall ROM_3275 +ROM:B26B lcall ROM_2F7B +ROM:B26E lcall ROM_CF79 +ROM:B271 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B274 mov DPTR, #0xF897 +ROM:B277 lcall ROM_3297 +ROM:B27A lcall ROM_3275 +ROM:B27D lcall ROM_2F7B +ROM:B280 lcall ROM_D716 +ROM:B283 ajmp ROM_B15A +ROM:B285 ; --------------------------------------------------------------------------- +ROM:B285 +ROM:B285 ROM_B285: ; CODE XREF: ROM_AD6A+19E↑j +ROM:B285 lcall ROM_37C0 +ROM:B288 lcall ROM_87A4 +ROM:B28B clr A +ROM:B28C mov R3, #3 +ROM:B28E mov R2, A +ROM:B28F lcall ROM_D532 +ROM:B292 jnz ROM_B29F +ROM:B294 lcall ROM_D434 +ROM:B297 mov R7, #0xA +ROM:B299 mov R6, A +ROM:B29A mov R5, A +ROM:B29B mov R4, A +ROM:B29C ljmp ROM_CADA +ROM:B29F ; --------------------------------------------------------------------------- +ROM:B29F +ROM:B29F ROM_B29F: ; CODE XREF: ROM_AD6A+528↑j +ROM:B29F lcall ROM_37C0 +ROM:B2A2 lcall ROM_87A4 +ROM:B2A5 clr A +ROM:B2A6 mov R3, #1 +ROM:B2A8 mov R2, A +ROM:B2A9 lcall ROM_D532 +ROM:B2AC jz ROM_B2B0 +ROM:B2AE ajmp ROM_B38A +ROM:B2B0 ; --------------------------------------------------------------------------- +ROM:B2B0 +ROM:B2B0 ROM_B2B0: ; CODE XREF: ROM_AD6A+542↑j +ROM:B2B0 lcall ROM_37C0 +ROM:B2B3 add A, #0x3E ; '>' +ROM:B2B5 lcall ROM_D2F2 +ROM:B2B8 mov DPTR, #0xF897 +ROM:B2BB lcall Save_3_bytes_R3_R2_R1 +ROM:B2BE clr A +ROM:B2BF mov R7, #0x20 ; ' ' +ROM:B2C1 mov R6, #1 +ROM:B2C3 mov R5, A +ROM:B2C4 mov R4, A +ROM:B2C5 lcall ROM_37C0 +ROM:B2C8 add A, #0x2C ; ',' +ROM:B2CA lcall ROM_CECA +ROM:B2CD clr A +ROM:B2CE mov R7, #0x20 ; ' ' +ROM:B2D0 mov R6, A +ROM:B2D1 mov R5, A +ROM:B2D2 mov R4, A +ROM:B2D3 lcall ROM_37C0 +ROM:B2D6 add A, #0x30 ; '0' +ROM:B2D8 lcall ROM_CECA +ROM:B2DB mov R6, #0 +ROM:B2DD mov R7, #0x20 ; ' ' +ROM:B2DF mov R5, #5 +ROM:B2E1 lcall ROM_37C0 +ROM:B2E4 add A, #0x4D ; 'M' +ROM:B2E6 lcall ROM_D2F2 +ROM:B2E9 lcall ROM_D7CC +ROM:B2EC sjmp ROM_B311 +ROM:B2EE ; --------------------------------------------------------------------------- +ROM:B2EE +ROM:B2EE ROM_B2EE: ; CODE XREF: ROM_AD6A+5AA↓j +ROM:B2EE clr A +ROM:B2EF mov R7, #0x8F +ROM:B2F1 mov R6, A +ROM:B2F2 mov R5, A +ROM:B2F3 mov R4, A +ROM:B2F4 mov DPTR, #0xF89A +ROM:B2F7 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B2FA setb C +ROM:B2FB lcall code_B1C +ROM:B2FE jnc ROM_B316 +ROM:B300 mov DPTR, #0xF897 +ROM:B303 lcall ROM_D27D +ROM:B306 mov A, #8 +ROM:B308 lcall ROM_D72A +ROM:B30B lcall load_4_bytes_R4_R5_R6_A +ROM:B30E lcall ROM_3736 +ROM:B311 +ROM:B311 ROM_B311: ; CODE XREF: ROM_AD6A+582↑j +ROM:B311 lcall ROM_D665 +ROM:B314 sjmp ROM_B2EE +ROM:B316 ; --------------------------------------------------------------------------- +ROM:B316 +ROM:B316 ROM_B316: ; CODE XREF: ROM_AD6A+594↑j +ROM:B316 ; ROM_AD6A+5D2↓j +ROM:B316 clr A +ROM:B317 mov R7, #0xFF +ROM:B319 mov R6, A +ROM:B31A mov R5, A +ROM:B31B mov R4, A +ROM:B31C mov DPTR, #0xF89A +ROM:B31F lcall load_4_bytes_R0_R1_R2_R3 +ROM:B322 setb C +ROM:B323 lcall code_B1C +ROM:B326 jnc ROM_B33E +ROM:B328 mov DPTR, #0xF897 +ROM:B32B lcall ROM_D27D +ROM:B32E mov A, #9 +ROM:B330 lcall ROM_D72A +ROM:B333 lcall load_4_bytes_R4_R5_R6_A +ROM:B336 lcall ROM_3736 +ROM:B339 lcall ROM_D665 +ROM:B33C sjmp ROM_B316 +ROM:B33E ; --------------------------------------------------------------------------- +ROM:B33E +ROM:B33E ROM_B33E: ; CODE XREF: ROM_AD6A+5BC↑j +ROM:B33E ; ROM_AD6A+5F7↓j +ROM:B33E clr A +ROM:B33F mov R7, #0x17 +ROM:B341 lcall ROM_DA34 +ROM:B344 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B347 setb C +ROM:B348 lcall code_B1C +ROM:B34B jnc ROM_B363 +ROM:B34D mov DPTR, #0xF897 +ROM:B350 lcall ROM_D27D +ROM:B353 mov A, #7 +ROM:B355 lcall ROM_D72A +ROM:B358 lcall load_4_bytes_R4_R5_R6_A +ROM:B35B lcall ROM_3736 +ROM:B35E lcall ROM_D665 +ROM:B361 sjmp ROM_B33E +ROM:B363 ; --------------------------------------------------------------------------- +ROM:B363 +ROM:B363 ROM_B363: ; CODE XREF: ROM_AD6A+5E1↑j +ROM:B363 ; ROM_AD6A+61E↓j +ROM:B363 clr A +ROM:B364 mov R7, #0x1F +ROM:B366 lcall ROM_DA34 +ROM:B369 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B36C setb C +ROM:B36D lcall code_B1C +ROM:B370 jc ROM_B374 +ROM:B372 ajmp ROM_B56F +ROM:B374 ; --------------------------------------------------------------------------- +ROM:B374 +ROM:B374 ROM_B374: ; CODE XREF: ROM_AD6A+606↑j +ROM:B374 mov DPTR, #0xF897 +ROM:B377 lcall ROM_D27D +ROM:B37A mov A, #8 +ROM:B37C lcall ROM_D72A +ROM:B37F lcall load_4_bytes_R4_R5_R6_A +ROM:B382 lcall ROM_3736 +ROM:B385 lcall ROM_D665 +ROM:B388 sjmp ROM_B363 +ROM:B38A ; --------------------------------------------------------------------------- +ROM:B38A +ROM:B38A ROM_B38A: ; CODE XREF: ROM_AD6A+544↑j +ROM:B38A clr A +ROM:B38B mov R7, A +ROM:B38C mov R6, A +ROM:B38D mov R5, A +ROM:B38E ajmp ROM_B497 +ROM:B390 ; --------------------------------------------------------------------------- +ROM:B390 +ROM:B390 ROM_B390: ; CODE XREF: ROM_AD6A+730↓j +ROM:B390 clr A +ROM:B391 mov R7, #3 +ROM:B393 lcall ROM_D4C1 +ROM:B396 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B399 clr C +ROM:B39A lcall code_B1C +ROM:B39D jc ROM_B3A1 +ROM:B39F ajmp ROM_B49C +ROM:B3A1 ; --------------------------------------------------------------------------- +ROM:B3A1 +ROM:B3A1 ROM_B3A1: ; CODE XREF: ROM_AD6A+633↑j +ROM:B3A1 lcall ROM_578B +ROM:B3A4 lcall ROM_D388 +ROM:B3A7 mov R7, A +ROM:B3A8 rlc A +ROM:B3A9 subb A, ACC ; Accumulator +ROM:B3AB lcall ROM_2626 +ROM:B3AE clr C +ROM:B3AF lcall code_B1C +ROM:B3B2 jnc ROM_B3F0 +ROM:B3B4 +ROM:B3B4 ROM_B3B4: ; CODE XREF: ROM_AD6A+684↓j +ROM:B3B4 lcall ROM_CEA1 +ROM:B3B7 lcall ROM_CF21 +ROM:B3BA lcall load_4_bytes_R0_R1_R2_R3 +ROM:B3BD push RAM_0 +ROM:B3BF push RAM_1 +ROM:B3C1 lcall ROM_CEDA +ROM:B3C4 mov R1, A +ROM:B3C5 mov DPTR, #0xF897 +ROM:B3C8 lcall load_4_bytes_R4_R5_R6_A +ROM:B3CB lcall ROM_CF40 +ROM:B3CE pop RAM_1 +ROM:B3D0 pop RAM_0 +ROM:B3D2 lcall code_1FD4 +ROM:B3D5 add A, #8 +ROM:B3D7 lcall ROM_3738 +ROM:B3DA lcall ROM_CF0F +ROM:B3DD lcall ROM_578B +ROM:B3E0 lcall ROM_D388 +ROM:B3E3 mov R7, A +ROM:B3E4 rlc A +ROM:B3E5 subb A, ACC ; Accumulator +ROM:B3E7 lcall ROM_2626 +ROM:B3EA clr C +ROM:B3EB lcall code_B1C +ROM:B3EE jc ROM_B3B4 +ROM:B3F0 +ROM:B3F0 ROM_B3F0: ; CODE XREF: ROM_AD6A+648↑j +ROM:B3F0 lcall ROM_578B +ROM:B3F3 lcall ROM_D388 +ROM:B3F6 lcall ROM_D335 +ROM:B3F9 sjmp ROM_B400 +ROM:B3FB ; --------------------------------------------------------------------------- +ROM:B3FB +ROM:B3FB ROM_B3FB: ; CODE XREF: ROM_AD6A:ROM_B400↓j +ROM:B3FB clr C +ROM:B3FC rlc A +ROM:B3FD xch A, R6 +ROM:B3FE rlc A +ROM:B3FF xch A, R6 +ROM:B400 +ROM:B400 ROM_B400: ; CODE XREF: ROM_AD6A+68F↑j +ROM:B400 djnz R0, ROM_B3FB +ROM:B402 lcall ROM_3DB2 +ROM:B405 lcall ROM_D7F3 +ROM:B408 push RAM_4 +ROM:B40A push RAM_5 +ROM:B40C push RAM_6 +ROM:B40E push RAM_7 +ROM:B410 lcall ROM_D4BE +ROM:B413 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B416 lcall ROM_37BD +ROM:B419 lcall ROM_D51A +ROM:B41C lcall ROM_3786 +ROM:B41F pop RAM_7 +ROM:B421 pop RAM_6 +ROM:B423 pop RAM_5 +ROM:B425 pop RAM_4 +ROM:B427 lcall code_B73 +ROM:B42A mov DPTR, #0xFDF3 +ROM:B42D lcall load_4_bytes_R4_R5_R6_A +ROM:B430 mov R7, A +ROM:B431 push RAM_6 +ROM:B433 lcall ROM_578B +ROM:B436 lcall ROM_D388 +ROM:B439 mov R1, A +ROM:B43A pop RAM_6 +ROM:B43C mov R0, A +ROM:B43D lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:B440 lcall code_1FE0 +ROM:B443 mov R7, A +ROM:B444 push RAM_6 +ROM:B446 push RAM_7 +ROM:B448 lcall ROM_578B +ROM:B44B lcall ROM_D388 +ROM:B44E mov R3, A +ROM:B44F rlc A +ROM:B450 subb A, ACC ; Accumulator +ROM:B452 mov R2, A +ROM:B453 mov R1, A +ROM:B454 mov R0, A +ROM:B455 pop RAM_7 +ROM:B457 pop RAM_6 +ROM:B459 lcall ROM_CF03 +ROM:B45C lcall ROM_D4BE +ROM:B45F lcall load_4_bytes_R0_R1_R2_R3 +ROM:B462 lcall ROM_37BD +ROM:B465 lcall ROM_D51A +ROM:B468 lcall ROM_3786 +ROM:B46B push RAM_3 +ROM:B46D push RAM_2 +ROM:B46F push RAM_1 +ROM:B471 lcall code_B8D +ROM:B474 lcall ROM_578B +ROM:B477 mov DPTR, #0x1CD9 +ROM:B47A lcall ROM_D28B +ROM:B47D mov A, R3 +ROM:B47E add A, R7 +ROM:B47F mov R7, A +ROM:B480 mov A, R2 +ROM:B481 addc A, R6 +ROM:B482 lcall ROM_8F67 +ROM:B485 pop RAM_1 +ROM:B487 pop RAM_2 +ROM:B489 pop RAM_3 +ROM:B48B lcall code_B73 +ROM:B48E mov DPTR, #0xFDE3 +ROM:B491 lcall load_4_bytes_R4_R5_R6_A +ROM:B494 lcall ROM_3736 +ROM:B497 +ROM:B497 ROM_B497: ; CODE XREF: ROM_AD6A+624↑j +ROM:B497 lcall ROM_CFAD +ROM:B49A ajmp ROM_B390 +ROM:B49C ; --------------------------------------------------------------------------- +ROM:B49C +ROM:B49C ROM_B49C: ; CODE XREF: ROM_AD6A+635↑j +ROM:B49C lcall ROM_37C0 +ROM:B49F add A, #0x65 ; 'e' +ROM:B4A1 lcall ROM_42CC +ROM:B4A4 mov R7, A +ROM:B4A5 mov R6, B ; B Register +ROM:B4A7 mov R5, #0 +ROM:B4A9 lcall ROM_CF5D +ROM:B4AC add A, #0x5C ; '\' +ROM:B4AE lcall ROM_D2F2 +ROM:B4B1 lcall ROM_D7CC +ROM:B4B4 ajmp ROM_B558 +ROM:B4B6 ; --------------------------------------------------------------------------- +ROM:B4B6 +ROM:B4B6 ROM_B4B6: ; CODE XREF: ROM_AD6A+7F1↓j +ROM:B4B6 lcall ROM_37C0 +ROM:B4B9 add A, #0x34 ; '4' +ROM:B4BB lcall ROM_87A6 +ROM:B4BE mov DPTR, #0xFDE3 +ROM:B4C1 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B4C4 clr C +ROM:B4C5 lcall code_B1C +ROM:B4C8 jc ROM_B4CC +ROM:B4CA ajmp ROM_B55D +ROM:B4CC ; --------------------------------------------------------------------------- +ROM:B4CC +ROM:B4CC ROM_B4CC: ; CODE XREF: ROM_AD6A+75E↑j +ROM:B4CC clr A +ROM:B4CD mov R7, #3 +ROM:B4CF lcall ROM_2626 +ROM:B4D2 clr C +ROM:B4D3 lcall code_B1C +ROM:B4D6 jnc ROM_B510 +ROM:B4D8 +ROM:B4D8 ROM_B4D8: ; CODE XREF: ROM_AD6A+7A4↓j +ROM:B4D8 lcall ROM_CEA1 +ROM:B4DB mov DPTR, #0xF89B +ROM:B4DE lcall ROM_CF24 +ROM:B4E1 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B4E4 push RAM_0 +ROM:B4E6 push RAM_1 +ROM:B4E8 lcall ROM_CEDA +ROM:B4EB mov R1, A +ROM:B4EC mov DPTR, #0xF89B +ROM:B4EF lcall load_4_bytes_R4_R5_R6_A +ROM:B4F2 lcall ROM_CF40 +ROM:B4F5 pop RAM_1 +ROM:B4F7 pop RAM_0 +ROM:B4F9 lcall code_1FD4 +ROM:B4FC add A, #8 +ROM:B4FE lcall ROM_3738 +ROM:B501 lcall ROM_CF0F +ROM:B504 clr A +ROM:B505 mov R7, #3 +ROM:B507 lcall ROM_2626 +ROM:B50A clr C +ROM:B50B lcall code_B1C +ROM:B50E jc ROM_B4D8 +ROM:B510 +ROM:B510 ROM_B510: ; CODE XREF: ROM_AD6A+76C↑j +ROM:B510 lcall ROM_D42C +ROM:B513 anl A, #7 +ROM:B515 mov R7, A +ROM:B516 clr A +ROM:B517 mov R6, A +ROM:B518 mov R5, A +ROM:B519 lcall ROM_CF20 +ROM:B51C lcall load_4_bytes_R4_R5_R6_A +ROM:B51F mov R7, A +ROM:B520 mov R0, #3 +ROM:B522 lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:B525 lcall code_1FE0 +ROM:B528 clr C +ROM:B529 subb A, #3 +ROM:B52B lcall ROM_CFA0 +ROM:B52E lcall ROM_CF0F +ROM:B531 lcall ROM_D95F +ROM:B534 push RAM_7 +ROM:B536 lcall ROM_37C0 +ROM:B539 add A, #0x5C ; '\' +ROM:B53B lcall ROM_D2F2 +ROM:B53E lcall ROM_D7FF +ROM:B541 mov DPTR, #0x1CC6 +ROM:B544 movc A, @A+DPTR +ROM:B545 add A, R1 +ROM:B546 mov R1, A +ROM:B547 clr A +ROM:B548 addc A, R2 +ROM:B549 mov R2, A +ROM:B54A pop ACC ; Accumulator +ROM:B54C lcall code_8CC +ROM:B54F mov DPTR, #0xFDE3 +ROM:B552 lcall load_4_bytes_R4_R5_R6_A +ROM:B555 lcall ROM_3736 +ROM:B558 +ROM:B558 ROM_B558: ; CODE XREF: ROM_AD6A+74A↑j +ROM:B558 lcall ROM_CFAD +ROM:B55B ajmp ROM_B4B6 +ROM:B55D ; --------------------------------------------------------------------------- +ROM:B55D +ROM:B55D ROM_B55D: ; CODE XREF: ROM_AD6A+760↑j +ROM:B55D clr A +ROM:B55E mov R7, #0x13 +ROM:B560 mov R6, A +ROM:B561 mov R5, A +ROM:B562 mov R4, A +ROM:B563 lcall ROM_37C0 +ROM:B566 add A, #0x34 ; '4' +ROM:B568 mov R1, A +ROM:B569 clr A +ROM:B56A addc A, R2 +ROM:B56B mov R2, A +ROM:B56C ljmp ROM_BDA5 +ROM:B56F ; --------------------------------------------------------------------------- +ROM:B56F +ROM:B56F ROM_B56F: ; CODE XREF: ROM_AD6A+608↑j +ROM:B56F ; ROM_AD6A+103E↓j +ROM:B56F lcall ROM_37C0 +ROM:B572 lcall ROM_87A4 +ROM:B575 lcall ROM_D2E9 +ROM:B578 jnc ROM_B57D +ROM:B57A ljmp ROM_BDAB +ROM:B57D ; --------------------------------------------------------------------------- +ROM:B57D +ROM:B57D ROM_B57D: ; CODE XREF: ROM_AD6A+80E↑j +ROM:B57D lcall code_B53 +ROM:B580 clr A +ROM:B581 mov R3, #0xF +ROM:B583 lcall ROM_37BA +ROM:B586 lcall ROM_D1C4 +ROM:B589 lcall ROM_7171 +ROM:B58C mov A, R3 +ROM:B58D addc A, R5 +ROM:B58E mov DPTR, #0xF933 +ROM:B591 lcall Save_3_bytes_A_R2_R1 +ROM:B594 mov R6, #0 +ROM:B596 mov R7, #0x40 ; '@' +ROM:B598 mov R5, #0 +ROM:B59A mov R3, #1 +ROM:B59C mov R2, #0xF8 +ROM:B59E mov R1, #0xF3 +ROM:B5A0 lcall code_EA0 +ROM:B5A3 mov DPTR, #0xF933 +ROM:B5A6 lcall ROM_37C3 +ROM:B5A9 add A, #0xB +ROM:B5AB lcall ROM_42CC +ROM:B5AE lcall ROM_D5ED +ROM:B5B1 lcall ROM_D2F0 +ROM:B5B4 lcall code_EA0 +ROM:B5B7 mov DPTR, #0xF933 +ROM:B5BA lcall ROM_37C3 +ROM:B5BD add A, #0xD +ROM:B5BF lcall ROM_42CC +ROM:B5C2 lcall ROM_D5ED +ROM:B5C5 add A, #6 +ROM:B5C7 lcall ROM_D2F2 +ROM:B5CA lcall ROM_D7CC +ROM:B5CD sjmp ROM_B62E +ROM:B5CF ; --------------------------------------------------------------------------- +ROM:B5CF +ROM:B5CF ROM_B5CF: ; CODE XREF: ROM_AD6A+8C7↓j +ROM:B5CF lcall ROM_37C0 +ROM:B5D2 lcall ROM_87A4 +ROM:B5D5 clr A +ROM:B5D6 mov R3, #4 +ROM:B5D8 lcall ROM_37BA +ROM:B5DB lcall ROM_D51A +ROM:B5DE lcall ROM_3786 +ROM:B5E1 lcall code_B53 +ROM:B5E4 mov DPTR, #0xF89B +ROM:B5E7 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B5EA clr C +ROM:B5EB lcall code_B1C +ROM:B5EE jnc ROM_B633 +ROM:B5F0 mov DPTR, #0xF933 +ROM:B5F3 lcall ROM_37C3 +ROM:B5F6 lcall ROM_D9ED +ROM:B5F9 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:B5FC add A, R1 +ROM:B5FD lcall ROM_3788 +ROM:B600 lcall ROM_D60D +ROM:B603 lcall load_4_bytes_R4_R5_R6_A +ROM:B606 lcall ROM_3736 +ROM:B609 mov R4, A +ROM:B60A push RAM_5 +ROM:B60C push RAM_6 +ROM:B60E mov DPTR, #0xF933 +ROM:B611 lcall ROM_37C3 +ROM:B614 lcall ROM_D9ED +ROM:B617 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:B61A add A, R1 +ROM:B61B lcall ROM_3788 +ROM:B61E lcall ROM_D60D +ROM:B621 pop RAM_6 +ROM:B623 pop RAM_5 +ROM:B625 lcall ROM_D723 +ROM:B628 lcall load_4_bytes_R4_R5_R6_A +ROM:B62B lcall ROM_3736 +ROM:B62E +ROM:B62E ROM_B62E: ; CODE XREF: ROM_AD6A+863↑j +ROM:B62E lcall ROM_D9F5 +ROM:B631 sjmp ROM_B5CF +ROM:B633 ; --------------------------------------------------------------------------- +ROM:B633 +ROM:B633 ROM_B633: ; CODE XREF: ROM_AD6A+884↑j +ROM:B633 clr A +ROM:B634 mov R7, A +ROM:B635 mov R6, A +ROM:B636 mov R5, A +ROM:B637 mov R4, A +ROM:B638 mov DPTR, #0xF8A3 +ROM:B63B lcall ROM_D301 +ROM:B63E mov DPTR, #0xF8A7 +ROM:B641 lcall ROM_D301 +ROM:B644 mov DPTR, #0xF8B3 +ROM:B647 lcall ROM_D301 +ROM:B64A mov DPTR, #0xF8AF +ROM:B64D lcall save_4_bytes_R4_R7 +ROM:B650 clr A +ROM:B651 mov R7, #1 +ROM:B653 mov R6, A +ROM:B654 mov R5, A +ROM:B655 sjmp ROM_B6C8 +ROM:B657 ; --------------------------------------------------------------------------- +ROM:B657 +ROM:B657 ROM_B657: ; CODE XREF: ROM_AD6A+961↓j +ROM:B657 clr A +ROM:B658 mov R7, #0xF +ROM:B65A mov R6, A +ROM:B65B mov R5, A +ROM:B65C mov R4, A +ROM:B65D mov DPTR, #0xF89B +ROM:B660 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B663 setb C +ROM:B664 lcall code_B1C +ROM:B667 jnc ROM_B6CD +ROM:B669 mov DPTR, #0xF8A3 +ROM:B66C lcall load_4_bytes_R4_R5_R6_A +ROM:B66F mov R7, A +ROM:B670 mov DPTR, #0xF89B +ROM:B673 inc DPTR +ROM:B674 inc DPTR +ROM:B675 inc DPTR +ROM:B676 movx A, @DPTR +ROM:B677 mov DPTR, #0xF8F3 +ROM:B67A lcall ROM_D474 +ROM:B67D lcall load_4_bytes_R0_R1_R2_R3 +ROM:B680 mov A, R7 +ROM:B681 add A, R3 +ROM:B682 lcall ROM_2F78 +ROM:B685 mov DPTR, #0xF8A3 +ROM:B688 lcall ROM_D723 +ROM:B68B lcall ROM_578E +ROM:B68E mov DPTR, #0xF8F3 +ROM:B691 lcall ROM_DA2C +ROM:B694 lcall ROM_D47B +ROM:B697 lcall load_4_bytes_R4_R5_R6_A +ROM:B69A mov R7, A +ROM:B69B mov DPTR, #0xF8A7 +ROM:B69E lcall load_4_bytes_R0_R1_R2_A +ROM:B6A1 add A, R7 +ROM:B6A2 mov R7, A +ROM:B6A3 mov A, R2 +ROM:B6A4 addc A, R6 +ROM:B6A5 lcall ROM_8F67 +ROM:B6A8 mov R0, #1 +ROM:B6AA lcall code_B40 +ROM:B6AD mov DPTR, #0xF8A7 +ROM:B6B0 lcall ROM_D723 +ROM:B6B3 inc DPTR +ROM:B6B4 inc DPTR +ROM:B6B5 movx A, @DPTR +ROM:B6B6 mov R2, A +ROM:B6B7 inc DPTR +ROM:B6B8 movx A, @DPTR +ROM:B6B9 mov DPTR, #0xF8B3 +ROM:B6BC lcall ROM_D474 +ROM:B6BF lcall ROM_D723 +ROM:B6C2 lcall load_4_bytes_R4_R5_R6_A +ROM:B6C5 lcall ROM_3736 +ROM:B6C8 +ROM:B6C8 ROM_B6C8: ; CODE XREF: ROM_AD6A+8EB↑j +ROM:B6C8 lcall ROM_D9F5 +ROM:B6CB sjmp ROM_B657 +ROM:B6CD ; --------------------------------------------------------------------------- +ROM:B6CD +ROM:B6CD ROM_B6CD: ; CODE XREF: ROM_AD6A+8FD↑j +ROM:B6CD clr A +ROM:B6CE mov R7, A +ROM:B6CF mov R6, A +ROM:B6D0 mov R5, #1 +ROM:B6D2 mov R4, A +ROM:B6D3 mov DPTR, #0xF8A7 +ROM:B6D6 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B6D9 clr C +ROM:B6DA lcall code_B1C +ROM:B6DD jz ROM_B6F9 +ROM:B6DF lcall ROM_D916 +ROM:B6E2 mov DPTR, #0xF8A3 +ROM:B6E5 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B6E8 setb C +ROM:B6E9 lcall code_B1C +ROM:B6EC jc ROM_B6F9 +ROM:B6EE lcall ROM_D434 +ROM:B6F1 mov R7, #0x23 ; '#' +ROM:B6F3 mov R6, A +ROM:B6F4 mov R5, A +ROM:B6F5 mov R4, A +ROM:B6F6 ljmp ROM_CADA +ROM:B6F9 ; --------------------------------------------------------------------------- +ROM:B6F9 +ROM:B6F9 ROM_B6F9: ; CODE XREF: ROM_AD6A+973↑j +ROM:B6F9 ; ROM_AD6A+982↑j +ROM:B6F9 mov A, #0xFF +ROM:B6FB lcall ROM_CEE2 +ROM:B6FE clr A +ROM:B6FF mov R7, A +ROM:B700 mov R6, A +ROM:B701 mov R5, A +ROM:B702 ljmp ROM_B98C +ROM:B705 ; --------------------------------------------------------------------------- +ROM:B705 +ROM:B705 ROM_B705: ; CODE XREF: ROM_AD6A+C29↓j +ROM:B705 lcall ROM_37C0 +ROM:B708 lcall ROM_87A4 +ROM:B70B clr A +ROM:B70C mov R3, #4 +ROM:B70E lcall ROM_37BA +ROM:B711 lcall ROM_D51A +ROM:B714 lcall ROM_3786 +ROM:B717 lcall code_B53 +ROM:B71A mov DPTR, #0xF8AB +ROM:B71D lcall load_4_bytes_R0_R1_R2_R3 +ROM:B720 clr C +ROM:B721 lcall code_B1C +ROM:B724 jc ROM_B729 +ROM:B726 ljmp ROM_B996 +ROM:B729 ; --------------------------------------------------------------------------- +ROM:B729 +ROM:B729 ROM_B729: ; CODE XREF: ROM_AD6A+9BA↑j +ROM:B729 clr A +ROM:B72A mov R7, A +ROM:B72B mov R6, A +ROM:B72C mov R5, A +ROM:B72D mov R4, A +ROM:B72E lcall ROM_D402 +ROM:B731 mov DPTR, #0xF933 +ROM:B734 lcall ROM_37C3 +ROM:B737 mov R1, A +ROM:B738 lcall code_BFA +ROM:B73B mov DPTR, #0xF8AB +ROM:B73E lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:B741 add A, R1 +ROM:B742 lcall ROM_3788 +ROM:B745 lcall ROM_CEB1 +ROM:B748 lcall ROM_D6A7 +ROM:B74B lcall load_4_bytes_R4_R5_R6_A +ROM:B74E mov R7, A +ROM:B74F mov A, R4 +ROM:B750 orl A, R5 +ROM:B751 orl A, R6 +ROM:B752 orl A, R7 +ROM:B753 jnz ROM_B758 +ROM:B755 ljmp ROM_B983 +ROM:B758 ; --------------------------------------------------------------------------- +ROM:B758 +ROM:B758 ROM_B758: ; CODE XREF: ROM_AD6A+9E9↑j +ROM:B758 mov DPTR, #0xF942 +ROM:B75B inc DPTR +ROM:B75C inc DPTR +ROM:B75D inc DPTR +ROM:B75E movx A, @DPTR +ROM:B75F mov DPTR, #0xF8AF +ROM:B762 lcall ROM_DA2C +ROM:B765 lcall ROM_D47B +ROM:B768 lcall code_BAD +ROM:B76B mov DPTR, #0xF93E +ROM:B76E lcall ROM_D6AA +ROM:B771 lcall load_4_bytes_R4_R5_R6_A +ROM:B774 mov R7, A +ROM:B775 mov DPTR, #0xF93A +ROM:B778 sjmp ROM_B7DB +ROM:B77A ; --------------------------------------------------------------------------- +ROM:B77A +ROM:B77A ROM_B77A: ; CODE XREF: ROM_AD6A+A74↓j +ROM:B77A clr A +ROM:B77B mov R7, A +ROM:B77C mov R6, A +ROM:B77D mov R5, A +ROM:B77E mov R4, A +ROM:B77F mov DPTR, #0xF93A +ROM:B782 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B785 setb C +ROM:B786 lcall code_B1C +ROM:B789 jc ROM_B7E0 +ROM:B78B mov DPTR, #0xF93E +ROM:B78E inc DPTR +ROM:B78F inc DPTR +ROM:B790 inc DPTR +ROM:B791 movx A, @DPTR +ROM:B792 anl A, #1 +ROM:B794 mov R7, A +ROM:B795 clr A +ROM:B796 mov R6, A +ROM:B797 mov R5, A +ROM:B798 mov R4, A +ROM:B799 push RAM_4 +ROM:B79B push RAM_5 +ROM:B79D push RAM_6 +ROM:B79F push RAM_7 +ROM:B7A1 mov DPTR, #0xF936 +ROM:B7A4 lcall load_4_bytes_R4_R5_R6_A +ROM:B7A7 mov R7, A +ROM:B7A8 mov R0, #1 +ROM:B7AA lcall code_B40 +ROM:B7AD pop RAM_3 +ROM:B7AF pop RAM_2 +ROM:B7B1 pop RAM_1 +ROM:B7B3 pop RAM_0 +ROM:B7B5 lcall ROM_D3A8 +ROM:B7B8 mov R4, A +ROM:B7B9 lcall ROM_D402 +ROM:B7BC mov DPTR, #0xF93A +ROM:B7BF lcall load_4_bytes_R4_R5_R6_A +ROM:B7C2 lcall ROM_D35D +ROM:B7C5 mov R4, A +ROM:B7C6 mov DPTR, #0xF93A +ROM:B7C9 lcall save_4_bytes_R4_R7 +ROM:B7CC mov DPTR, #0xF93E +ROM:B7CF lcall load_4_bytes_R4_R5_R6_A +ROM:B7D2 mov R7, A +ROM:B7D3 mov R0, #1 +ROM:B7D5 lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:B7D8 mov DPTR, #0xF93E +ROM:B7DB +ROM:B7DB ROM_B7DB: ; CODE XREF: ROM_AD6A+A0E↑j +ROM:B7DB lcall save_4_bytes_R4_R7 +ROM:B7DE sjmp ROM_B77A +ROM:B7E0 ; --------------------------------------------------------------------------- +ROM:B7E0 +ROM:B7E0 ROM_B7E0: ; CODE XREF: ROM_AD6A+A1F↑j +ROM:B7E0 lcall ROM_D414 +ROM:B7E3 mov DPTR, #0xF942 +ROM:B7E6 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B7E9 setb C +ROM:B7EA lcall code_B1C +ROM:B7ED jc ROM_B7F2 +ROM:B7EF ljmp ROM_B894 +ROM:B7F2 ; --------------------------------------------------------------------------- +ROM:B7F2 +ROM:B7F2 ROM_B7F2: ; CODE XREF: ROM_AD6A+A83↑j +ROM:B7F2 mov DPTR, #0xF942 +ROM:B7F5 lcall load_4_bytes_R4_R5_R6_A +ROM:B7F8 mov R7, A +ROM:B7F9 mov R0, #9 +ROM:B7FB lcall code_B40 +ROM:B7FE mov DPTR, #0xF8AB +ROM:B801 inc DPTR +ROM:B802 inc DPTR +ROM:B803 movx A, @DPTR +ROM:B804 mov R2, A +ROM:B805 inc DPTR +ROM:B806 movx A, @DPTR +ROM:B807 orl A, R7 +ROM:B808 mov R7, A +ROM:B809 mov A, R2 +ROM:B80A orl A, R6 +ROM:B80B mov R6, A +ROM:B80C mov DPTR, #0xF946 +ROM:B80F mov A, R6 +ROM:B810 movx @DPTR, A +ROM:B811 inc DPTR +ROM:B812 mov A, R7 +ROM:B813 movx @DPTR, A +ROM:B814 +ROM:B814 ROM_B814: ; CODE XREF: ROM_AD6A+B28↓j +ROM:B814 clr A +ROM:B815 mov R7, #0x80 +ROM:B817 mov R6, A +ROM:B818 mov R5, A +ROM:B819 mov R4, A +ROM:B81A mov DPTR, #0xF936 +ROM:B81D lcall load_4_bytes_R0_R1_R2_R3 +ROM:B820 clr C +ROM:B821 lcall code_B1C +ROM:B824 jc ROM_B828 +ROM:B826 ajmp ROM_B983 +ROM:B828 ; --------------------------------------------------------------------------- +ROM:B828 +ROM:B828 ROM_B828: ; CODE XREF: ROM_AD6A+ABA↑j +ROM:B828 mov DPTR, #0xF946 +ROM:B82B movx A, @DPTR +ROM:B82C mov R6, A +ROM:B82D inc DPTR +ROM:B82E movx A, @DPTR +ROM:B82F mov R7, A +ROM:B830 push RAM_7 +ROM:B832 push RAM_6 +ROM:B834 mov DPTR, #0xF933 +ROM:B837 lcall ROM_37C3 +ROM:B83A lcall ROM_D2F0 +ROM:B83D push RAM_3 +ROM:B83F push RAM_2 +ROM:B841 push RAM_1 +ROM:B843 lcall Set_R7_R4_To_0x02 +ROM:B846 mov DPTR, #0xF936 +ROM:B849 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B84C lcall code_9F1 +ROM:B84F pop RAM_1 +ROM:B851 pop RAM_2 +ROM:B853 pop RAM_3 +ROM:B855 lcall ROM_3786 +ROM:B858 pop ACC ; Accumulator +ROM:B85A pop B ; B Register +ROM:B85C lcall code_9D2 +ROM:B85F mov DPTR, #0xF936 +ROM:B862 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B865 push RAM_0 +ROM:B867 push RAM_1 +ROM:B869 push RAM_2 +ROM:B86B push RAM_3 +ROM:B86D mov DPTR, #0xF942 +ROM:B870 lcall ROM_D331 +ROM:B873 sjmp ROM_B87A +ROM:B875 ; --------------------------------------------------------------------------- +ROM:B875 +ROM:B875 ROM_B875: ; CODE XREF: ROM_AD6A:ROM_B87A↓j +ROM:B875 clr C +ROM:B876 rlc A +ROM:B877 xch A, R6 +ROM:B878 rlc A +ROM:B879 xch A, R6 +ROM:B87A +ROM:B87A ROM_B87A: ; CODE XREF: ROM_AD6A+B09↑j +ROM:B87A djnz R0, ROM_B875 +ROM:B87C lcall ROM_D29E +ROM:B87F pop RAM_3 +ROM:B881 pop RAM_2 +ROM:B883 pop RAM_1 +ROM:B885 pop RAM_0 +ROM:B887 mov A, R3 +ROM:B888 add A, R7 +ROM:B889 mov R7, A +ROM:B88A mov A, R2 +ROM:B88B addc A, R6 +ROM:B88C lcall ROM_8F67 +ROM:B88F lcall ROM_D402 +ROM:B892 sjmp ROM_B814 +ROM:B894 ; --------------------------------------------------------------------------- +ROM:B894 +ROM:B894 ROM_B894: ; CODE XREF: ROM_AD6A+A85↑j +ROM:B894 mov DPTR, #0xF936 +ROM:B897 lcall ROM_2E4F +ROM:B89A mov DPTR, #0xF933 +ROM:B89D lcall ROM_37C3 +ROM:B8A0 add A, #3 +ROM:B8A2 lcall ROM_377F +ROM:B8A5 lcall ROM_D521 +ROM:B8A8 lcall ROM_D98C +ROM:B8AB orl A, R6 +ROM:B8AC jnz ROM_B8C7 +ROM:B8AE lcall ROM_D380 +ROM:B8B1 mov R7, A +ROM:B8B2 mov B, R7 ; B Register +ROM:B8B4 mov A, R6 +ROM:B8B5 lcall code_9D2 +ROM:B8B8 mov DPTR, #0xF897 +ROM:B8BB movx A, @DPTR +ROM:B8BC mov R7, A +ROM:B8BD inc DPTR +ROM:B8BE movx A, @DPTR +ROM:B8BF inc DPTR +ROM:B8C0 xch A, R7 +ROM:B8C1 movx @DPTR, A +ROM:B8C2 inc DPTR +ROM:B8C3 mov A, R7 +ROM:B8C4 lcall ROM_D674 +ROM:B8C7 +ROM:B8C7 ROM_B8C7: ; CODE XREF: ROM_AD6A+B42↑j +ROM:B8C7 mov DPTR, #0xF936 +ROM:B8CA lcall load_4_bytes_R4_R5_R6_A +ROM:B8CD mov R7, A +ROM:B8CE mov R0, #6 +ROM:B8D0 lcall ROM_D3FF +ROM:B8D3 mov DPTR, #0xF942 +ROM:B8D6 lcall load_4_bytes_R4_R5_R6_A +ROM:B8D9 mov R7, A +ROM:B8DA sjmp ROM_B943 +ROM:B8DC ; --------------------------------------------------------------------------- +ROM:B8DC +ROM:B8DC ROM_B8DC: ; CODE XREF: ROM_AD6A+BDC↓j +ROM:B8DC clr A +ROM:B8DD mov R7, #8 +ROM:B8DF mov R6, A +ROM:B8E0 mov R5, A +ROM:B8E1 mov R4, A +ROM:B8E2 mov DPTR, #0xF89F +ROM:B8E5 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B8E8 setb C +ROM:B8E9 lcall code_B1C +ROM:B8EC jc ROM_B948 +ROM:B8EE mov DPTR, #0xF936 +ROM:B8F1 lcall load_4_bytes_R4_R5_R6_A +ROM:B8F4 lcall ROM_D3FA +ROM:B8F7 lcall ROM_D8E3 +ROM:B8FA subb A, R7 +ROM:B8FB mov R7, A +ROM:B8FC mov DPTR, #0xF899 +ROM:B8FF movx A, @DPTR +ROM:B900 subb A, #0 +ROM:B902 mov R6, A +ROM:B903 movx @DPTR, A +ROM:B904 inc DPTR +ROM:B905 mov A, R7 +ROM:B906 movx @DPTR, A +ROM:B907 mov DPTR, #0xF933 +ROM:B90A lcall ROM_37C3 +ROM:B90D add A, #6 +ROM:B90F lcall ROM_D2F2 +ROM:B912 clr C +ROM:B913 lcall ROM_D56C +ROM:B916 lcall ROM_7171 +ROM:B919 lcall ROM_D521 +ROM:B91C orl A, R6 +ROM:B91D jnz ROM_B936 +ROM:B91F mov DPTR, #0xF897 +ROM:B922 lcall ROM_7663 +ROM:B925 mov B, R5 ; B Register +ROM:B927 lcall code_9D2 +ROM:B92A mov DPTR, #0xF899 +ROM:B92D mov A, R4 +ROM:B92E movx @DPTR, A +ROM:B92F inc DPTR +ROM:B930 mov A, R5 +ROM:B931 lcall ROM_D674 +ROM:B934 sjmp ROM_B939 +ROM:B936 ; --------------------------------------------------------------------------- +ROM:B936 +ROM:B936 ROM_B936: ; CODE XREF: ROM_AD6A+BB3↑j +ROM:B936 lcall ROM_D98C +ROM:B939 +ROM:B939 ROM_B939: ; CODE XREF: ROM_AD6A+BCA↑j +ROM:B939 mov DPTR, #0xF89F +ROM:B93C lcall load_4_bytes_R4_R5_R6_A +ROM:B93F lcall ROM_D35D +ROM:B942 mov R4, A +ROM:B943 +ROM:B943 ROM_B943: ; CODE XREF: ROM_AD6A+B70↑j +ROM:B943 lcall ROM_D62F +ROM:B946 sjmp ROM_B8DC +ROM:B948 ; --------------------------------------------------------------------------- +ROM:B948 +ROM:B948 ROM_B948: ; CODE XREF: ROM_AD6A+B82↑j +ROM:B948 mov DPTR, #0xF936 +ROM:B94B lcall load_4_bytes_R4_R5_R6_A +ROM:B94E lcall ROM_D3FA +ROM:B951 lcall ROM_D8E3 +ROM:B954 subb A, R7 +ROM:B955 movx @DPTR, A +ROM:B956 mov DPTR, #0xF899 +ROM:B959 movx A, @DPTR +ROM:B95A subb A, #0 +ROM:B95C movx @DPTR, A +ROM:B95D mov DPTR, #0xF8AB +ROM:B960 lcall ROM_578E +ROM:B963 mov R5, A +ROM:B964 mov R4, RAM_6 +ROM:B966 mov DPTR, #0xF933 +ROM:B969 lcall ROM_37C3 +ROM:B96C add A, #6 +ROM:B96E lcall ROM_D2F2 +ROM:B971 mov DPTR, #0xF899 +ROM:B974 lcall ROM_3758 +ROM:B977 lcall ROM_D56C +ROM:B97A lcall ROM_7171 +ROM:B97D mov A, R4 +ROM:B97E mov B, R5 ; B Register +ROM:B980 lcall code_9D2 +ROM:B983 +ROM:B983 ROM_B983: ; CODE XREF: ROM_AD6A+9EB↑j +ROM:B983 ; ROM_AD6A+ABC↑j +ROM:B983 mov DPTR, #0xF8AB +ROM:B986 lcall load_4_bytes_R4_R5_R6_A +ROM:B989 lcall ROM_3736 +ROM:B98C +ROM:B98C ROM_B98C: ; CODE XREF: ROM_AD6A+998↑j +ROM:B98C mov R4, A +ROM:B98D mov DPTR, #0xF8AB +ROM:B990 lcall save_4_bytes_R4_R7 +ROM:B993 ljmp ROM_B705 +ROM:B996 ; --------------------------------------------------------------------------- +ROM:B996 +ROM:B996 ROM_B996: ; CODE XREF: ROM_AD6A+9BC↑j +ROM:B996 lcall ROM_37C0 +ROM:B999 lcall ROM_87A4 +ROM:B99C clr A +ROM:B99D mov R3, #2 +ROM:B99F mov R2, A +ROM:B9A0 lcall ROM_D532 +ROM:B9A3 jz ROM_B9A7 +ROM:B9A5 ajmp ROM_BD9A +ROM:B9A7 ; --------------------------------------------------------------------------- +ROM:B9A7 +ROM:B9A7 ROM_B9A7: ; CODE XREF: ROM_AD6A+C39↑j +ROM:B9A7 mov R7, A +ROM:B9A8 mov R6, A +ROM:B9A9 mov R5, A +ROM:B9AA ajmp ROM_BD30 +ROM:B9AC ; --------------------------------------------------------------------------- +ROM:B9AC +ROM:B9AC ROM_B9AC: ; CODE XREF: ROM_AD6A+E77↓j +ROM:B9AC ; ROM_AD6A+FC9↓j +ROM:B9AC lcall ROM_37C0 +ROM:B9AF add A, #0x30 ; '0' +ROM:B9B1 lcall ROM_87A6 +ROM:B9B4 lcall ROM_CF5D +ROM:B9B7 lcall ROM_D51A +ROM:B9BA lcall code_B8D +ROM:B9BD mov A, R3 +ROM:B9BE add A, R7 +ROM:B9BF mov R7, A +ROM:B9C0 mov A, R2 +ROM:B9C1 addc A, R6 +ROM:B9C2 lcall ROM_8F67 +ROM:B9C5 mov DPTR, #0xFDE3 +ROM:B9C8 lcall load_4_bytes_R0_R1_R2_R3 +ROM:B9CB clr C +ROM:B9CC lcall code_B1C +ROM:B9CF jc ROM_B9D3 +ROM:B9D1 ajmp ROM_BD35 +ROM:B9D3 ; --------------------------------------------------------------------------- +ROM:B9D3 +ROM:B9D3 ROM_B9D3: ; CODE XREF: ROM_AD6A+C65↑j +ROM:B9D3 lcall ROM_2623 +ROM:B9D6 clr C +ROM:B9D7 lcall code_B1C +ROM:B9DA jc ROM_B9DE +ROM:B9DC ajmp ROM_BB15 +ROM:B9DE ; --------------------------------------------------------------------------- +ROM:B9DE +ROM:B9DE ROM_B9DE: ; CODE XREF: ROM_AD6A+C70↑j +ROM:B9DE lcall ROM_D2A6 +ROM:B9E1 lcall ROM_D352 +ROM:B9E4 jc ROM_B9E8 +ROM:B9E6 ajmp ROM_BABB +ROM:B9E8 ; --------------------------------------------------------------------------- +ROM:B9E8 +ROM:B9E8 ROM_B9E8: ; CODE XREF: ROM_AD6A+C7A↑j +ROM:B9E8 ; ROM_AD6A+D4D↓j +ROM:B9E8 lcall ROM_37C0 +ROM:B9EB lcall ROM_D1D2 +ROM:B9EE mov A, R1 +ROM:B9EF lcall ROM_D2F0 +ROM:B9F2 push RAM_3 +ROM:B9F4 push RAM_2 +ROM:B9F6 push RAM_1 +ROM:B9F8 mov DPTR, #0xFDF3 +ROM:B9FB lcall ROM_2E4F +ROM:B9FE pop RAM_1 +ROM:BA00 pop RAM_2 +ROM:BA02 pop RAM_3 +ROM:BA04 lcall ROM_3786 +ROM:BA07 lcall ROM_D521 +ROM:BA0A mov DPTR, #0xF940 +ROM:BA0D lcall ROM_D2E4 +ROM:BA10 jc ROM_BA38 +ROM:BA12 mov DPTR, #0xF940 +ROM:BA15 lcall ROM_D6CE +ROM:BA18 +ROM:BA18 ROM_BA18: ; CODE XREF: ROM_AD6A+CB1↓j +ROM:BA18 lcall ROM_D4F2 +ROM:BA1B djnz R0, ROM_BA18 +ROM:BA1D lcall ROM_D29E +ROM:BA20 lcall ROM_D6A7 +ROM:BA23 lcall load_4_bytes_R4_R5_R6_A +ROM:BA26 mov R7, A +ROM:BA27 mov A, R4 +ROM:BA28 orl A, R5 +ROM:BA29 orl A, R6 +ROM:BA2A orl A, R7 +ROM:BA2B jz ROM_BA8A +ROM:BA2D lcall ROM_2629 +ROM:BA30 clr C +ROM:BA31 lcall code_B1C +ROM:BA34 jc ROM_BA8A +ROM:BA36 ajmp ROM_BB15 +ROM:BA38 ; --------------------------------------------------------------------------- +ROM:BA38 +ROM:BA38 ROM_BA38: ; CODE XREF: ROM_AD6A+CA6↑j +ROM:BA38 clr A +ROM:BA39 mov R7, #7 +ROM:BA3B lcall ROM_2626 +ROM:BA3E setb C +ROM:BA3F lcall code_B1C +ROM:BA42 jc ROM_BA8A +ROM:BA44 lcall ROM_D414 +ROM:BA47 mov DPTR, #0xF942 +ROM:BA4A lcall save_4_bytes_R4_R7 +ROM:BA4D +ROM:BA4D ROM_BA4D: ; CODE XREF: ROM_AD6A+D17↓j +ROM:BA4D mov DPTR, #0xF942 +ROM:BA50 lcall ROM_D341 +ROM:BA53 lcall load_4_bytes_R4_R5_R6_A +ROM:BA56 lcall ROM_D4E7 +ROM:BA59 mov DPTR, #0xF940 +ROM:BA5C lcall ROM_379D +ROM:BA5F lcall ROM_3776 +ROM:BA62 lcall code_9A7 +ROM:BA65 mov R7, A +ROM:BA66 mov DPTR, #0xF940 +ROM:BA69 lcall ROM_D48B +ROM:BA6C lcall ROM_D90C +ROM:BA6F jnc ROM_BA83 +ROM:BA71 mov DPTR, #0xF942 +ROM:BA74 lcall load_4_bytes_R4_R5_R6_A +ROM:BA77 lcall ROM_3736 +ROM:BA7A lcall ROM_2628 +ROM:BA7D clr C +ROM:BA7E lcall code_B1C +ROM:BA81 jnc ROM_BA4D +ROM:BA83 +ROM:BA83 ROM_BA83: ; CODE XREF: ROM_AD6A+D05↑j +ROM:BA83 lcall ROM_D90C +ROM:BA86 jc ROM_BA8A +ROM:BA88 ajmp ROM_BB15 +ROM:BA8A ; --------------------------------------------------------------------------- +ROM:BA8A +ROM:BA8A ROM_BA8A: ; CODE XREF: ROM_AD6A+CC1↑j +ROM:BA8A ; ROM_AD6A+CCA↑j ... +ROM:BA8A lcall ROM_CEA1 +ROM:BA8D mov DPTR, #0xF946 +ROM:BA90 lcall ROM_CF24 +ROM:BA93 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BA96 push RAM_0 +ROM:BA98 push RAM_1 +ROM:BA9A lcall ROM_CEDA +ROM:BA9D mov R1, A +ROM:BA9E mov DPTR, #0xF946 +ROM:BAA1 lcall load_4_bytes_R4_R5_R6_A +ROM:BAA4 lcall ROM_CF40 +ROM:BAA7 pop RAM_1 +ROM:BAA9 pop RAM_0 +ROM:BAAB lcall code_1FD4 +ROM:BAAE lcall ROM_2611 +ROM:BAB1 clr C +ROM:BAB2 lcall code_B1C +ROM:BAB5 jnc ROM_BAB9 +ROM:BAB7 ajmp ROM_B9E8 +ROM:BAB9 ; --------------------------------------------------------------------------- +ROM:BAB9 +ROM:BAB9 ROM_BAB9: ; CODE XREF: ROM_AD6A+D4B↑j +ROM:BAB9 sjmp ROM_BB15 +ROM:BABB ; --------------------------------------------------------------------------- +ROM:BABB +ROM:BABB ROM_BABB: ; CODE XREF: ROM_AD6A+C7C↑j +ROM:BABB mov DPTR, #0xFDF3 +ROM:BABE lcall load_4_bytes_R0_R1_R2_R3 +ROM:BAC1 push RAM_0 +ROM:BAC3 push RAM_1 +ROM:BAC5 push RAM_2 +ROM:BAC7 push RAM_3 +ROM:BAC9 mov DPTR, #0xFE0B +ROM:BACC lcall ROM_37C3 +ROM:BACF add A, #1 +ROM:BAD1 mov R1, A +ROM:BAD2 clr A +ROM:BAD3 addc A, R2 +ROM:BAD4 lcall ROM_CEB0 +ROM:BAD7 lcall ROM_CEDA +ROM:BADA lcall ROM_D7EC +ROM:BADD push RAM_4 +ROM:BADF push RAM_5 +ROM:BAE1 push RAM_6 +ROM:BAE3 push RAM_7 +ROM:BAE5 lcall ROM_3EAF +ROM:BAE8 lcall ROM_CEB1 +ROM:BAEB lcall ROM_CEDA +ROM:BAEE mov R1, A +ROM:BAEF mov R0, A +ROM:BAF0 lcall code_B40 +ROM:BAF3 pop RAM_3 +ROM:BAF5 pop RAM_2 +ROM:BAF7 pop RAM_1 +ROM:BAF9 pop RAM_0 +ROM:BAFB lcall ROM_D3A8 +ROM:BAFE mov R4, A +ROM:BAFF pop RAM_3 +ROM:BB01 pop RAM_2 +ROM:BB03 pop RAM_1 +ROM:BB05 pop RAM_0 +ROM:BB07 lcall ROM_D2BF +ROM:BB0A lcall load_4_bytes_R4_R5_R6_A_From_0xFDFD +ROM:BB0D add A, #0x10 +ROM:BB0F lcall ROM_3738 +ROM:BB12 lcall ROM_CF0F +ROM:BB15 +ROM:BB15 ROM_BB15: ; CODE XREF: ROM_AD6A+C72↑j +ROM:BB15 ; ROM_AD6A+CCC↑j ... +ROM:BB15 lcall ROM_37C0 +ROM:BB18 lcall ROM_D1D2 +ROM:BB1B mov A, R1 +ROM:BB1C lcall ROM_D2F0 +ROM:BB1F push RAM_3 +ROM:BB21 push RAM_2 +ROM:BB23 push RAM_1 +ROM:BB25 mov DPTR, #0xFDF3 +ROM:BB28 lcall ROM_2E4F +ROM:BB2B pop RAM_1 +ROM:BB2D pop RAM_2 +ROM:BB2F pop RAM_3 +ROM:BB31 lcall ROM_3786 +ROM:BB34 lcall ROM_D521 +ROM:BB37 mov DPTR, #0xF93A +ROM:BB3A lcall ROM_D2E4 +ROM:BB3D jc ROM_BB61 +ROM:BB3F mov DPTR, #0xF93A +ROM:BB42 lcall ROM_D5D0 +ROM:BB45 +ROM:BB45 ROM_BB45: ; CODE XREF: ROM_AD6A+DDE↓j +ROM:BB45 lcall ROM_D4F2 +ROM:BB48 djnz R0, ROM_BB45 +ROM:BB4A lcall ROM_D29E +ROM:BB4D mov DPTR, #0xF93C +ROM:BB50 lcall save_4_bytes_R4_R7 +ROM:BB53 mov A, R2 +ROM:BB54 anl A, #1 +ROM:BB56 mov R7, RAM_3 +ROM:BB58 mov DPTR, #0xF93A +ROM:BB5B movx @DPTR, A +ROM:BB5C inc DPTR +ROM:BB5D mov A, R7 +ROM:BB5E movx @DPTR, A +ROM:BB5F sjmp ROM_BB94 +ROM:BB61 ; --------------------------------------------------------------------------- +ROM:BB61 +ROM:BB61 ROM_BB61: ; CODE XREF: ROM_AD6A+DD3↑j +ROM:BB61 lcall ROM_D414 +ROM:BB64 mov DPTR, #0xF93C +ROM:BB67 lcall save_4_bytes_R4_R7 +ROM:BB6A +ROM:BB6A ROM_BB6A: ; CODE XREF: ROM_AD6A+E28↓j +ROM:BB6A mov DPTR, #0xF93C +ROM:BB6D lcall ROM_D341 +ROM:BB70 lcall load_4_bytes_R4_R5_R6_A +ROM:BB73 lcall ROM_D4E7 +ROM:BB76 mov DPTR, #0xF93A +ROM:BB79 lcall ROM_379D +ROM:BB7C lcall ROM_3776 +ROM:BB7F lcall code_9A7 +ROM:BB82 mov R7, A +ROM:BB83 mov DPTR, #0xF93A +ROM:BB86 lcall ROM_D48B +ROM:BB89 clr C +ROM:BB8A mov DPTR, #0xF93A +ROM:BB8D movx A, @DPTR +ROM:BB8E xrl A, #0x80 +ROM:BB90 subb A, #0x80 +ROM:BB92 jc ROM_BB6A +ROM:BB94 +ROM:BB94 ROM_BB94: ; CODE XREF: ROM_AD6A+DF5↑j +ROM:BB94 mov DPTR, #0xF93A +ROM:BB97 movx A, @DPTR +ROM:BB98 mov R6, A +ROM:BB99 inc DPTR +ROM:BB9A movx A, @DPTR +ROM:BB9B lcall ROM_D29E +ROM:BB9E mov DPTR, #0xFDEB +ROM:BBA1 lcall ROM_CF24 +ROM:BBA4 lcall load_4_bytes_R4_R5_R6_A +ROM:BBA7 mov R7, A +ROM:BBA8 mov DPTR, #0xF93C +ROM:BBAB lcall ROM_D325 +ROM:BBAE lcall code_1FE0 +ROM:BBB1 mov R7, A +ROM:BBB2 mov DPTR, #0xF93C +ROM:BBB5 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BBB8 lcall ROM_CF03 +ROM:BBBB lcall ROM_D5B0 +ROM:BBBE lcall load_4_bytes_R0_R1_R2_R3 +ROM:BBC1 clr C +ROM:BBC2 lcall code_B1C +ROM:BBC5 jnc ROM_BBE3 +ROM:BBC7 lcall ROM_DA24 +ROM:BBCA mov R7, A +ROM:BBCB push RAM_7 +ROM:BBCD mov DPTR, #0xFDE3 +ROM:BBD0 lcall code_BAD +ROM:BBD3 lcall ROM_37C0 +ROM:BBD6 lcall ROM_D6F5 +ROM:BBD9 lcall ROM_3786 +ROM:BBDC pop ACC ; Accumulator +ROM:BBDE lcall code_8CC +ROM:BBE1 ajmp ROM_B9AC +ROM:BBE3 ; --------------------------------------------------------------------------- +ROM:BBE3 +ROM:BBE3 ROM_BBE3: ; CODE XREF: ROM_AD6A+E5B↑j +ROM:BBE3 lcall ROM_D5B0 +ROM:BBE6 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BBE9 clr C +ROM:BBEA lcall code_B1C +ROM:BBED jnz ROM_BC07 +ROM:BBEF mov DPTR, #0xFDE3 +ROM:BBF2 lcall load_4_bytes_R4_R5_R6_A +ROM:BBF5 mov R7, A +ROM:BBF6 mov A, R4 +ROM:BBF7 orl A, R5 +ROM:BBF8 orl A, R6 +ROM:BBF9 orl A, R7 +ROM:BBFA jnz ROM_BC07 +ROM:BBFC lcall ROM_D434 +ROM:BBFF mov R7, #0x11 +ROM:BC01 mov R6, A +ROM:BC02 mov R5, A +ROM:BC03 mov R4, A +ROM:BC04 ljmp ROM_CADA +ROM:BC07 ; --------------------------------------------------------------------------- +ROM:BC07 +ROM:BC07 ROM_BC07: ; CODE XREF: ROM_AD6A+E83↑j +ROM:BC07 ; ROM_AD6A+E90↑j +ROM:BC07 mov DPTR, #0xFDEB +ROM:BC0A lcall ROM_578E +ROM:BC0D lcall ROM_D9E5 +ROM:BC10 mov A, #0xC2 +ROM:BC12 add A, R7 +ROM:BC13 mov DP0L, A ; Data Pointer Low Byte +ROM:BC15 mov A, #0x1B +ROM:BC17 lcall ROM_D6FC +ROM:BC1A lcall ROM_D6A1 +ROM:BC1D mov DPTR, #0xFDEF +ROM:BC20 lcall load_4_bytes_R4_R5_R6_A +ROM:BC23 mov R7, A +ROM:BC24 lcall ROM_2629 +ROM:BC27 clr C +ROM:BC28 lcall code_B1C +ROM:BC2B jnc ROM_BC69 +ROM:BC2D +ROM:BC2D ROM_BC2D: ; CODE XREF: ROM_AD6A+EFD↓j +ROM:BC2D lcall ROM_CEA1 +ROM:BC30 mov DPTR, #0xF93A +ROM:BC33 lcall ROM_CF24 +ROM:BC36 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BC39 push RAM_0 +ROM:BC3B push RAM_1 +ROM:BC3D lcall ROM_CEDA +ROM:BC40 mov R1, A +ROM:BC41 mov DPTR, #0xF93A +ROM:BC44 lcall load_4_bytes_R4_R5_R6_A +ROM:BC47 lcall ROM_CF40 +ROM:BC4A pop RAM_1 +ROM:BC4C pop RAM_0 +ROM:BC4E lcall code_1FD4 +ROM:BC51 add A, #8 +ROM:BC53 lcall ROM_3738 +ROM:BC56 lcall ROM_CF0F +ROM:BC59 mov DPTR, #0xFDEF +ROM:BC5C lcall load_4_bytes_R4_R5_R6_A +ROM:BC5F mov R7, A +ROM:BC60 lcall ROM_2629 +ROM:BC63 clr C +ROM:BC64 lcall code_B1C +ROM:BC67 jc ROM_BC2D +ROM:BC69 +ROM:BC69 ROM_BC69: ; CODE XREF: ROM_AD6A+EC1↑j +ROM:BC69 lcall ROM_D32E +ROM:BC6C sjmp ROM_BC73 +ROM:BC6E ; --------------------------------------------------------------------------- +ROM:BC6E +ROM:BC6E ROM_BC6E: ; CODE XREF: ROM_AD6A:ROM_BC73↓j +ROM:BC6E clr C +ROM:BC6F rlc A +ROM:BC70 xch A, R6 +ROM:BC71 rlc A +ROM:BC72 xch A, R6 +ROM:BC73 +ROM:BC73 ROM_BC73: ; CODE XREF: ROM_AD6A+F02↑j +ROM:BC73 djnz R0, ROM_BC6E +ROM:BC75 lcall ROM_3DB2 +ROM:BC78 lcall ROM_D7F3 +ROM:BC7B mov DPTR, #0xF936 +ROM:BC7E lcall ROM_CF24 +ROM:BC81 lcall load_4_bytes_R4_R5_R6_A +ROM:BC84 lcall ROM_D321 +ROM:BC87 inc DPTR +ROM:BC88 lcall code_1FE3 +ROM:BC8B mov R7, A +ROM:BC8C mov DPTR, #0xFDEF +ROM:BC8F lcall load_4_bytes_R0_R1_R2_R3 +ROM:BC92 lcall ROM_CF03 +ROM:BC95 mov DPTR, #0xF936 +ROM:BC98 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BC9B mov DPTR, #0xFDEB +ROM:BC9E lcall ROM_578E +ROM:BCA1 lcall ROM_D9E5 +ROM:BCA4 mov A, #0xC6 +ROM:BCA6 add A, R7 +ROM:BCA7 mov DP0L, A ; Data Pointer Low Byte +ROM:BCA9 mov A, #0x1B +ROM:BCAB lcall ROM_D6FC +ROM:BCAE mov A, R3 +ROM:BCAF add A, R7 +ROM:BCB0 mov R7, A +ROM:BCB1 mov A, R2 +ROM:BCB2 addc A, R6 +ROM:BCB3 lcall ROM_8F67 +ROM:BCB6 lcall ROM_D402 +ROM:BCB9 lcall ROM_D5B0 +ROM:BCBC lcall load_4_bytes_R0_R1_R2_R3 +ROM:BCBF clr C +ROM:BCC0 lcall code_B1C +ROM:BCC3 mov DPTR, #0xF936 +ROM:BCC6 jnz ROM_BCEC +ROM:BCC8 lcall ROM_578E +ROM:BCCB mov R7, A +ROM:BCCC push RAM_6 +ROM:BCCE push RAM_7 +ROM:BCD0 lcall ROM_578B +ROM:BCD3 add A, #0x6E ; 'n' +ROM:BCD5 mov R7, A +ROM:BCD6 clr A +ROM:BCD7 addc A, R6 +ROM:BCD8 mov R6, A +ROM:BCD9 lcall ROM_37C0 +ROM:BCDC add A, R7 +ROM:BCDD mov R1, A +ROM:BCDE mov A, R2 +ROM:BCDF addc A, R6 +ROM:BCE0 mov R2, A +ROM:BCE1 lcall code_891 +ROM:BCE4 mov R7, A +ROM:BCE5 push RAM_7 +ROM:BCE7 mov DPTR, #0xFE08 +ROM:BCEA sjmp ROM_BCFD +ROM:BCEC ; --------------------------------------------------------------------------- +ROM:BCEC +ROM:BCEC ROM_BCEC: ; CODE XREF: ROM_AD6A+F5C↑j +ROM:BCEC lcall ROM_578E +ROM:BCEF mov R7, A +ROM:BCF0 push RAM_6 +ROM:BCF2 push RAM_7 +ROM:BCF4 mov R7, #0 +ROM:BCF6 push RAM_7 +ROM:BCF8 mov DPTR, #0xFE08 +ROM:BCFB movx A, @DPTR +ROM:BCFC mov R3, A +ROM:BCFD +ROM:BCFD ROM_BCFD: ; CODE XREF: ROM_AD6A+F80↑j +ROM:BCFD inc DPTR +ROM:BCFE movx A, @DPTR +ROM:BCFF mov R2, A +ROM:BD00 inc DPTR +ROM:BD01 movx A, @DPTR +ROM:BD02 lcall ROM_D6F5 +ROM:BD05 mov DPTR, #0xFDE3 +ROM:BD08 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:BD0B add A, R1 +ROM:BD0C lcall ROM_3788 +ROM:BD0F pop RAM_5 +ROM:BD11 pop RAM_7 +ROM:BD13 pop RAM_6 +ROM:BD15 lcall code_EA0 +ROM:BD18 mov DPTR, #0xFDE3 +ROM:BD1B lcall load_4_bytes_R4_R5_R6_A +ROM:BD1E mov R7, A +ROM:BD1F mov DPTR, #0xF936 +ROM:BD22 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BD25 mov A, R7 +ROM:BD26 add A, R3 +ROM:BD27 mov R7, A +ROM:BD28 mov A, R6 +ROM:BD29 addc A, R2 +ROM:BD2A mov R6, A +ROM:BD2B mov A, R5 +ROM:BD2C addc A, R1 +ROM:BD2D mov R5, A +ROM:BD2E mov A, R4 +ROM:BD2F addc A, R0 +ROM:BD30 +ROM:BD30 ROM_BD30: ; CODE XREF: ROM_AD6A+C40↑j +ROM:BD30 lcall ROM_CFAD +ROM:BD33 ajmp ROM_B9AC +ROM:BD35 ; --------------------------------------------------------------------------- +ROM:BD35 +ROM:BD35 ROM_BD35: ; CODE XREF: ROM_AD6A+C67↑j +ROM:BD35 lcall ROM_37C0 +ROM:BD38 add A, #0x30 ; '0' +ROM:BD3A lcall ROM_87A6 +ROM:BD3D lcall ROM_CF5D +ROM:BD40 lcall ROM_D51A +ROM:BD43 lcall code_B8D +ROM:BD46 mov A, R3 +ROM:BD47 add A, R7 +ROM:BD48 mov R7, A +ROM:BD49 mov A, R2 +ROM:BD4A addc A, R6 +ROM:BD4B lcall ROM_8F67 +ROM:BD4E mov DPTR, #0xFDE3 +ROM:BD51 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BD54 clr C +ROM:BD55 lcall code_B1C +ROM:BD58 jz ROM_BD65 +ROM:BD5A lcall ROM_D434 +ROM:BD5D mov R7, #0x15 +ROM:BD5F mov R6, A +ROM:BD60 mov R5, A +ROM:BD61 mov R4, A +ROM:BD62 ljmp ROM_CADA +ROM:BD65 ; --------------------------------------------------------------------------- +ROM:BD65 +ROM:BD65 ROM_BD65: ; CODE XREF: ROM_AD6A+FEE↑j +ROM:BD65 lcall ROM_37C0 +ROM:BD68 lcall ROM_D6F5 +ROM:BD6B push RAM_3 +ROM:BD6D push RAM_2 +ROM:BD6F push RAM_1 +ROM:BD71 lcall ROM_CF5D +ROM:BD74 lcall ROM_D1C4 +ROM:BD77 lcall code_C1A +ROM:BD7A lcall ROM_37C0 +ROM:BD7D add A, #0x2C ; ',' +ROM:BD7F lcall ROM_87A6 +ROM:BD82 lcall ROM_CF5D +ROM:BD85 lcall ROM_D6F5 +ROM:BD88 lcall ROM_3786 +ROM:BD8B push RAM_3 +ROM:BD8D push RAM_2 +ROM:BD8F push RAM_1 +ROM:BD91 lcall ROM_37C0 +ROM:BD94 lcall ROM_D1CB +ROM:BD97 lcall code_C1A +ROM:BD9A +ROM:BD9A ROM_BD9A: ; CODE XREF: ROM_AD6A+C3B↑j +ROM:BD9A lcall ROM_37C0 +ROM:BD9D lcall ROM_87A4 +ROM:BDA0 mov A, R7 +ROM:BDA1 lcall ROM_D35D +ROM:BDA4 mov R4, A +ROM:BDA5 +ROM:BDA5 ROM_BDA5: ; CODE XREF: ROM_AD6A+802↑j +ROM:BDA5 lcall code_B73 +ROM:BDA8 ljmp ROM_B56F +ROM:BDAB ; --------------------------------------------------------------------------- +ROM:BDAB +ROM:BDAB ROM_BDAB: ; CODE XREF: ROM_AD6A+810↑j +ROM:BDAB ; ROM_AD6A+1C21↓j +ROM:BDAB lcall ROM_D2A6 +ROM:BDAE mov R6, A +ROM:BDAF clr C +ROM:BDB0 mov A, R7 +ROM:BDB1 subb A, #4 +ROM:BDB3 mov A, R6 +ROM:BDB4 xrl A, #0x80 +ROM:BDB6 subb A, #0x80 +ROM:BDB8 jc ROM_BDCD +ROM:BDBA mov DPTR, #0xFE0E +ROM:BDBD lcall ROM_CF66 +ROM:BDC0 mov DPTR, #0xFDFA +ROM:BDC3 lcall ROM_D902 +ROM:BDC6 lcall ROM_D352 +ROM:BDC9 jc ROM_BDCD +ROM:BDCB ajmp ROM_BFD7 +ROM:BDCD ; --------------------------------------------------------------------------- +ROM:BDCD +ROM:BDCD ROM_BDCD: ; CODE XREF: ROM_AD6A+104E↑j +ROM:BDCD ; ROM_AD6A+105F↑j +ROM:BDCD lcall ROM_2623 +ROM:BDD0 clr C +ROM:BDD1 lcall code_B1C +ROM:BDD4 jc ROM_BDD8 +ROM:BDD6 ajmp ROM_BF07 +ROM:BDD8 ; --------------------------------------------------------------------------- +ROM:BDD8 +ROM:BDD8 ROM_BDD8: ; CODE XREF: ROM_AD6A+106A↑j +ROM:BDD8 lcall ROM_D2A6 +ROM:BDDB lcall ROM_D352 +ROM:BDDE jc ROM_BDE2 +ROM:BDE0 ajmp ROM_BEAD +ROM:BDE2 ; --------------------------------------------------------------------------- +ROM:BDE2 +ROM:BDE2 ROM_BDE2: ; CODE XREF: ROM_AD6A+1074↑j +ROM:BDE2 ; ROM_AD6A+113F↓j +ROM:BDE2 lcall ROM_37C0 +ROM:BDE5 lcall ROM_D1C4 +ROM:BDE8 mov A, R1 +ROM:BDE9 lcall ROM_D2F0 +ROM:BDEC push RAM_3 +ROM:BDEE push RAM_2 +ROM:BDF0 push RAM_1 +ROM:BDF2 mov DPTR, #0xFDF3 +ROM:BDF5 lcall ROM_2E4F +ROM:BDF8 pop RAM_1 +ROM:BDFA pop RAM_2 +ROM:BDFC pop RAM_3 +ROM:BDFE lcall ROM_3786 +ROM:BE01 lcall ROM_D521 +ROM:BE04 mov DPTR, #0xF89D +ROM:BE07 lcall ROM_D2E4 +ROM:BE0A jc ROM_BE32 +ROM:BE0C lcall ROM_D6CB +ROM:BE0F +ROM:BE0F ROM_BE0F: ; CODE XREF: ROM_AD6A+10A8↓j +ROM:BE0F lcall ROM_D4F2 +ROM:BE12 djnz R0, ROM_BE0F +ROM:BE14 lcall ROM_D29E +ROM:BE17 lcall ROM_D62F +ROM:BE1A mov DPTR, #0xF89F +ROM:BE1D lcall load_4_bytes_R4_R5_R6_A +ROM:BE20 mov R7, A +ROM:BE21 mov A, R4 +ROM:BE22 orl A, R5 +ROM:BE23 orl A, R6 +ROM:BE24 orl A, R7 +ROM:BE25 jz ROM_BE7C +ROM:BE27 lcall ROM_2629 +ROM:BE2A clr C +ROM:BE2B lcall code_B1C +ROM:BE2E jc ROM_BE7C +ROM:BE30 ajmp ROM_BF07 +ROM:BE32 ; --------------------------------------------------------------------------- +ROM:BE32 +ROM:BE32 ROM_BE32: ; CODE XREF: ROM_AD6A+10A0↑j +ROM:BE32 clr A +ROM:BE33 mov R7, #7 +ROM:BE35 lcall ROM_2626 +ROM:BE38 setb C +ROM:BE39 lcall code_B1C +ROM:BE3C jc ROM_BE7C +ROM:BE3E lcall ROM_D414 +ROM:BE41 lcall ROM_D62F +ROM:BE44 +ROM:BE44 ROM_BE44: ; CODE XREF: ROM_AD6A+1109↓j +ROM:BE44 mov DPTR, #0xF89F +ROM:BE47 lcall ROM_D341 +ROM:BE4A lcall load_4_bytes_R4_R5_R6_A +ROM:BE4D lcall ROM_D4E7 +ROM:BE50 mov DPTR, #0xF89D +ROM:BE53 lcall ROM_379D +ROM:BE56 add A, #0x3E ; '>' +ROM:BE58 lcall ROM_3778 +ROM:BE5B lcall ROM_D484 +ROM:BE5E lcall ROM_D528 +ROM:BE61 jnc ROM_BE75 +ROM:BE63 mov DPTR, #0xF89F +ROM:BE66 lcall load_4_bytes_R4_R5_R6_A +ROM:BE69 lcall ROM_3736 +ROM:BE6C lcall ROM_2628 +ROM:BE6F clr C +ROM:BE70 lcall code_B1C +ROM:BE73 jnc ROM_BE44 +ROM:BE75 +ROM:BE75 ROM_BE75: ; CODE XREF: ROM_AD6A+10F7↑j +ROM:BE75 lcall ROM_D528 +ROM:BE78 jc ROM_BE7C +ROM:BE7A ajmp ROM_BF07 +ROM:BE7C ; --------------------------------------------------------------------------- +ROM:BE7C +ROM:BE7C ROM_BE7C: ; CODE XREF: ROM_AD6A+10BB↑j +ROM:BE7C ; ROM_AD6A+10C4↑j ... +ROM:BE7C lcall ROM_CEA1 +ROM:BE7F mov DPTR, #0xF8A3 +ROM:BE82 lcall ROM_CF24 +ROM:BE85 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BE88 push RAM_0 +ROM:BE8A push RAM_1 +ROM:BE8C lcall ROM_CEDA +ROM:BE8F mov R1, A +ROM:BE90 mov DPTR, #0xF8A3 +ROM:BE93 lcall load_4_bytes_R4_R5_R6_A +ROM:BE96 lcall ROM_CF40 +ROM:BE99 pop RAM_1 +ROM:BE9B pop RAM_0 +ROM:BE9D lcall code_1FD4 +ROM:BEA0 lcall ROM_2611 +ROM:BEA3 clr C +ROM:BEA4 lcall code_B1C +ROM:BEA7 jnc ROM_BEAB +ROM:BEA9 ajmp ROM_BDE2 +ROM:BEAB ; --------------------------------------------------------------------------- +ROM:BEAB +ROM:BEAB ROM_BEAB: ; CODE XREF: ROM_AD6A+113D↑j +ROM:BEAB sjmp ROM_BF07 +ROM:BEAD ; --------------------------------------------------------------------------- +ROM:BEAD +ROM:BEAD ROM_BEAD: ; CODE XREF: ROM_AD6A+1076↑j +ROM:BEAD mov DPTR, #0xFDF3 +ROM:BEB0 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BEB3 push RAM_0 +ROM:BEB5 push RAM_1 +ROM:BEB7 push RAM_2 +ROM:BEB9 push RAM_3 +ROM:BEBB mov DPTR, #0xFE0B +ROM:BEBE lcall ROM_37C3 +ROM:BEC1 add A, #1 +ROM:BEC3 mov R1, A +ROM:BEC4 clr A +ROM:BEC5 addc A, R2 +ROM:BEC6 lcall ROM_CEB0 +ROM:BEC9 lcall ROM_CEDA +ROM:BECC lcall ROM_D7EC +ROM:BECF push RAM_4 +ROM:BED1 push RAM_5 +ROM:BED3 push RAM_6 +ROM:BED5 push RAM_7 +ROM:BED7 lcall ROM_3EAF +ROM:BEDA lcall ROM_CEB1 +ROM:BEDD lcall ROM_CEDA +ROM:BEE0 mov R1, A +ROM:BEE1 mov R0, A +ROM:BEE2 lcall code_B40 +ROM:BEE5 pop RAM_3 +ROM:BEE7 pop RAM_2 +ROM:BEE9 pop RAM_1 +ROM:BEEB pop RAM_0 +ROM:BEED lcall ROM_D3A8 +ROM:BEF0 mov R4, A +ROM:BEF1 pop RAM_3 +ROM:BEF3 pop RAM_2 +ROM:BEF5 pop RAM_1 +ROM:BEF7 pop RAM_0 +ROM:BEF9 lcall ROM_D2BF +ROM:BEFC lcall load_4_bytes_R4_R5_R6_A_From_0xFDFD +ROM:BEFF add A, #0x10 +ROM:BF01 lcall ROM_3738 +ROM:BF04 lcall ROM_CF0F +ROM:BF07 +ROM:BF07 ROM_BF07: ; CODE XREF: ROM_AD6A+106C↑j +ROM:BF07 ; ROM_AD6A+10C6↑j ... +ROM:BF07 lcall ROM_37C0 +ROM:BF0A lcall ROM_D1C4 +ROM:BF0D mov A, R1 +ROM:BF0E lcall ROM_D2F0 +ROM:BF11 push RAM_3 +ROM:BF13 push RAM_2 +ROM:BF15 push RAM_1 +ROM:BF17 mov DPTR, #0xFDF3 +ROM:BF1A lcall ROM_2E4F +ROM:BF1D pop RAM_1 +ROM:BF1F pop RAM_2 +ROM:BF21 pop RAM_3 +ROM:BF23 lcall ROM_3786 +ROM:BF26 lcall ROM_D2DB +ROM:BF29 jc ROM_BF3E +ROM:BF2B lcall ROM_D5CD +ROM:BF2E +ROM:BF2E ROM_BF2E: ; CODE XREF: ROM_AD6A+11C7↓j +ROM:BF2E lcall ROM_D4F2 +ROM:BF31 djnz R0, ROM_BF2E +ROM:BF33 lcall ROM_D29E +ROM:BF36 lcall ROM_D4E1 +ROM:BF39 lcall ROM_D6D5 +ROM:BF3C sjmp ROM_BF57 +ROM:BF3E ; --------------------------------------------------------------------------- +ROM:BF3E +ROM:BF3E ROM_BF3E: ; CODE XREF: ROM_AD6A+11BF↑j +ROM:BF3E lcall ROM_D414 +ROM:BF41 lcall ROM_D4E1 +ROM:BF44 +ROM:BF44 ROM_BF44: ; CODE XREF: ROM_AD6A+11EB↓j +ROM:BF44 lcall ROM_D33E +ROM:BF47 lcall load_4_bytes_R4_R5_R6_A +ROM:BF4A lcall ROM_3790 +ROM:BF4D add A, #0x3E ; '>' +ROM:BF4F lcall ROM_3778 +ROM:BF52 lcall ROM_D30A +ROM:BF55 jc ROM_BF44 +ROM:BF57 +ROM:BF57 ROM_BF57: ; CODE XREF: ROM_AD6A+11D2↑j +ROM:BF57 lcall ROM_D380 +ROM:BF5A lcall ROM_D29E +ROM:BF5D mov DPTR, #0xFDE3 +ROM:BF60 lcall ROM_CF24 +ROM:BF63 lcall load_4_bytes_R4_R5_R6_A +ROM:BF66 mov R7, A +ROM:BF67 mov DPTR, #0xF899 +ROM:BF6A lcall ROM_D325 +ROM:BF6D lcall code_1FE0 +ROM:BF70 mov R7, A +ROM:BF71 mov DPTR, #0xF899 +ROM:BF74 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BF77 lcall ROM_CF03 +ROM:BF7A clr A +ROM:BF7B mov R7, A +ROM:BF7C mov R6, #1 +ROM:BF7E mov R5, A +ROM:BF7F mov R4, A +ROM:BF80 mov DPTR, #0xFDE3 +ROM:BF83 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BF86 clr C +ROM:BF87 lcall code_B1C +ROM:BF8A jc ROM_BF8F +ROM:BF8C ljmp ROM_C1D7 +ROM:BF8F ; --------------------------------------------------------------------------- +ROM:BF8F +ROM:BF8F ROM_BF8F: ; CODE XREF: ROM_AD6A+1220↑j +ROM:BF8F mov DPTR, #0xFDFA +ROM:BF92 lcall ROM_37C3 +ROM:BF95 mov R1, A +ROM:BF96 push RAM_3 +ROM:BF98 push RAM_2 +ROM:BF9A push RAM_1 +ROM:BF9C mov DPTR, #0xFE0E +ROM:BF9F lcall ROM_3EB2 +ROM:BFA2 clr C +ROM:BFA3 pop DP0L ; Data Pointer Low Byte +ROM:BFA5 pop DP0H ; Data Pointer High Byte +ROM:BFA7 pop ACC ; Accumulator +ROM:BFA9 lcall ROM_D71C +ROM:BFAC jc ROM_BFB9 +ROM:BFAE lcall ROM_D66C +ROM:BFB1 mov R7, #0x18 +ROM:BFB3 mov R6, A +ROM:BFB4 mov R5, A +ROM:BFB5 mov R4, A +ROM:BFB6 ljmp ROM_CADA +ROM:BFB9 ; --------------------------------------------------------------------------- +ROM:BFB9 +ROM:BFB9 ROM_BFB9: ; CODE XREF: ROM_AD6A+1242↑j +ROM:BFB9 lcall ROM_D7FF +ROM:BFBC lcall ROM_D279 +ROM:BFBF mov A, R7 +ROM:BFC0 lcall code_8CC +ROM:BFC3 mov DPTR, #0xF71C +ROM:BFC6 lcall load_4_bytes_R4_R5_R6_A +ROM:BFC9 lcall ROM_3736 +ROM:BFCC lcall ROM_CF78 +ROM:BFCF lcall load_4_bytes_R4_R5_R6_A +ROM:BFD2 add A, #1 +ROM:BFD4 ljmp ROM_C1D1 +ROM:BFD7 ; --------------------------------------------------------------------------- +ROM:BFD7 +ROM:BFD7 ROM_BFD7: ; CODE XREF: ROM_AD6A+1061↑j +ROM:BFD7 lcall ROM_2623 +ROM:BFDA clr C +ROM:BFDB lcall code_B1C +ROM:BFDE jnc ROM_C030 +ROM:BFE0 mov DPTR, #0xFDF3 +ROM:BFE3 lcall load_4_bytes_R0_R1_R2_R3 +ROM:BFE6 push RAM_0 +ROM:BFE8 push RAM_1 +ROM:BFEA push RAM_2 +ROM:BFEC push RAM_3 +ROM:BFEE mov DPTR, #0xFE0B +ROM:BFF1 lcall ROM_37C3 +ROM:BFF4 add A, #1 +ROM:BFF6 mov R1, A +ROM:BFF7 clr A +ROM:BFF8 addc A, R2 +ROM:BFF9 lcall ROM_CEB0 +ROM:BFFC lcall ROM_DA04 +ROM:BFFF push RAM_5 +ROM:C001 push RAM_6 +ROM:C003 push RAM_7 +ROM:C005 lcall ROM_3EAF +ROM:C008 lcall code_891 +ROM:C00B mov R7, A +ROM:C00C pop RAM_3 +ROM:C00E pop RAM_2 +ROM:C010 pop RAM_1 +ROM:C012 lcall ROM_CED1 +ROM:C015 mov R1, A +ROM:C016 mov R0, A +ROM:C017 lcall code_B40 +ROM:C01A pop RAM_3 +ROM:C01C pop RAM_2 +ROM:C01E pop RAM_1 +ROM:C020 pop RAM_0 +ROM:C022 lcall ROM_D2BF +ROM:C025 lcall load_4_bytes_R4_R5_R6_A_From_0xFDFD +ROM:C028 add A, #0x10 +ROM:C02A lcall ROM_3738 +ROM:C02D lcall ROM_CF0F +ROM:C030 +ROM:C030 ROM_C030: ; CODE XREF: ROM_AD6A+1274↑j +ROM:C030 lcall ROM_D42C +ROM:C033 anl A, #0x7F +ROM:C035 mov R7, A +ROM:C036 clr A +ROM:C037 mov R6, A +ROM:C038 mov R5, A +ROM:C039 mov R4, A +ROM:C03A lcall ROM_37B8 +ROM:C03D add A, #0x41 ; 'A' +ROM:C03F lcall ROM_377F +ROM:C042 lcall ROM_D2DB +ROM:C045 jc ROM_C059 +ROM:C047 lcall ROM_D380 +ROM:C04A mov R0, #9 +ROM:C04C +ROM:C04C ROM_C04C: ; CODE XREF: ROM_AD6A+12E5↓j +ROM:C04C lcall ROM_D4F2 +ROM:C04F djnz R0, ROM_C04C +ROM:C051 lcall ROM_D29E +ROM:C054 lcall ROM_D4E1 +ROM:C057 sjmp ROM_C072 +ROM:C059 ; --------------------------------------------------------------------------- +ROM:C059 +ROM:C059 ROM_C059: ; CODE XREF: ROM_AD6A+12DB↑j +ROM:C059 lcall ROM_D414 +ROM:C05C lcall ROM_D4E1 +ROM:C05F +ROM:C05F ROM_C05F: ; CODE XREF: ROM_AD6A+1306↓j +ROM:C05F lcall ROM_D33E +ROM:C062 lcall load_4_bytes_R4_R5_R6_A +ROM:C065 lcall ROM_3790 +ROM:C068 add A, #0x44 ; 'D' +ROM:C06A lcall ROM_377F +ROM:C06D lcall ROM_D30A +ROM:C070 jc ROM_C05F +ROM:C072 +ROM:C072 ROM_C072: ; CODE XREF: ROM_AD6A+12ED↑j +ROM:C072 lcall ROM_D380 +ROM:C075 lcall ROM_D29E +ROM:C078 mov DPTR, #0xFDE3 +ROM:C07B lcall ROM_CF24 +ROM:C07E lcall load_4_bytes_R4_R5_R6_A +ROM:C081 mov R7, A +ROM:C082 mov DPTR, #0xF899 +ROM:C085 lcall ROM_D325 +ROM:C088 lcall code_1FE0 +ROM:C08B mov R7, A +ROM:C08C mov DPTR, #0xF899 +ROM:C08F lcall load_4_bytes_R0_R1_R2_R3 +ROM:C092 lcall ROM_CF03 +ROM:C095 mov DPTR, #0xFDE3 +ROM:C098 inc DPTR +ROM:C099 inc DPTR +ROM:C09A movx A, @DPTR +ROM:C09B mov R6, A +ROM:C09C mov A, R6 +ROM:C09D anl A, #1 +ROM:C09F mov R6, A +ROM:C0A0 clr A +ROM:C0A1 mov R5, A +ROM:C0A2 mov R4, A +ROM:C0A3 mov A, R6 +ROM:C0A4 jz ROM_C0A8 +ROM:C0A6 ajmp ROM_C1D7 +ROM:C0A8 ; --------------------------------------------------------------------------- +ROM:C0A8 +ROM:C0A8 ROM_C0A8: ; CODE XREF: ROM_AD6A+133A↑j +ROM:C0A8 mov R7, #0xF +ROM:C0AA mov R6, A +ROM:C0AB lcall ROM_2629 +ROM:C0AE clr C +ROM:C0AF lcall code_B1C +ROM:C0B2 jnc ROM_C104 +ROM:C0B4 mov DPTR, #0xFDF3 +ROM:C0B7 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C0BA push RAM_0 +ROM:C0BC push RAM_1 +ROM:C0BE push RAM_2 +ROM:C0C0 push RAM_3 +ROM:C0C2 mov DPTR, #0xFE0B +ROM:C0C5 lcall ROM_37C3 +ROM:C0C8 add A, #1 +ROM:C0CA mov R1, A +ROM:C0CB clr A +ROM:C0CC addc A, R2 +ROM:C0CD lcall ROM_CEB0 +ROM:C0D0 lcall ROM_DA04 +ROM:C0D3 push RAM_5 +ROM:C0D5 push RAM_6 +ROM:C0D7 push RAM_7 +ROM:C0D9 lcall ROM_3EAF +ROM:C0DC lcall code_891 +ROM:C0DF mov R7, A +ROM:C0E0 pop RAM_3 +ROM:C0E2 pop RAM_2 +ROM:C0E4 pop RAM_1 +ROM:C0E6 lcall ROM_CED1 +ROM:C0E9 mov R1, A +ROM:C0EA mov R0, A +ROM:C0EB lcall code_B40 +ROM:C0EE pop RAM_3 +ROM:C0F0 pop RAM_2 +ROM:C0F2 pop RAM_1 +ROM:C0F4 pop RAM_0 +ROM:C0F6 lcall ROM_D2BF +ROM:C0F9 lcall load_4_bytes_R4_R5_R6_A_From_0xFDFD +ROM:C0FC add A, #0x10 +ROM:C0FE lcall ROM_3738 +ROM:C101 lcall ROM_CF0F +ROM:C104 +ROM:C104 ROM_C104: ; CODE XREF: ROM_AD6A+1348↑j +ROM:C104 lcall ROM_D42C +ROM:C107 anl A, #0x7F +ROM:C109 mov R7, A +ROM:C10A clr A +ROM:C10B mov R6, A +ROM:C10C mov R5, A +ROM:C10D mov R4, A +ROM:C10E lcall ROM_37B8 +ROM:C111 add A, #0x41 ; 'A' +ROM:C113 lcall ROM_377F +ROM:C116 lcall ROM_D2DB +ROM:C119 jc ROM_C12D +ROM:C11B lcall ROM_D380 +ROM:C11E mov R0, #9 +ROM:C120 +ROM:C120 ROM_C120: ; CODE XREF: ROM_AD6A+13B9↓j +ROM:C120 lcall ROM_D4F2 +ROM:C123 djnz R0, ROM_C120 +ROM:C125 lcall ROM_D29E +ROM:C128 lcall ROM_D4E1 +ROM:C12B sjmp ROM_C146 +ROM:C12D ; --------------------------------------------------------------------------- +ROM:C12D +ROM:C12D ROM_C12D: ; CODE XREF: ROM_AD6A+13AF↑j +ROM:C12D lcall ROM_D414 +ROM:C130 lcall ROM_D4E1 +ROM:C133 +ROM:C133 ROM_C133: ; CODE XREF: ROM_AD6A+13DA↓j +ROM:C133 lcall ROM_D33E +ROM:C136 lcall load_4_bytes_R4_R5_R6_A +ROM:C139 lcall ROM_3790 +ROM:C13C add A, #0x44 ; 'D' +ROM:C13E lcall ROM_377F +ROM:C141 lcall ROM_D30A +ROM:C144 jc ROM_C133 +ROM:C146 +ROM:C146 ROM_C146: ; CODE XREF: ROM_AD6A+13C1↑j +ROM:C146 mov DPTR, #0xFDF3 +ROM:C149 lcall load_4_bytes_R4_R5_R6_A +ROM:C14C mov R7, A +ROM:C14D mov DPTR, #0xF899 +ROM:C150 lcall ROM_D325 +ROM:C153 lcall code_1FE0 +ROM:C156 mov R7, A +ROM:C157 mov DPTR, #0xF899 +ROM:C15A lcall load_4_bytes_R0_R1_R2_R3 +ROM:C15D lcall ROM_CF03 +ROM:C160 lcall ROM_D7FF +ROM:C163 mov R7, A +ROM:C164 mov DPTR, #0xFE0E +ROM:C167 lcall ROM_37C3 +ROM:C16A mov R1, A +ROM:C16B mov A, R7 +ROM:C16C lcall code_8CC +ROM:C16F mov DPTR, #0xF897 +ROM:C172 movx A, @DPTR +ROM:C173 mov R2, A +ROM:C174 inc DPTR +ROM:C175 movx A, @DPTR +ROM:C176 mov R3, A +ROM:C177 mov A, R2 +ROM:C178 jnb ACC0, ROM_C1A7 ; Accumulator +ROM:C17B mov DPTR, #0xFE0F +ROM:C17E clr A +ROM:C17F mov B, #1 ; B Register +ROM:C182 lcall code_97B +ROM:C185 mov DPTR, #0xF71C +ROM:C188 lcall load_4_bytes_R4_R5_R6_A +ROM:C18B lcall ROM_3736 +ROM:C18E lcall ROM_CF78 +ROM:C191 lcall load_4_bytes_R4_R5_R6_A +ROM:C194 lcall ROM_3736 +ROM:C197 mov R4, A +ROM:C198 lcall ROM_D716 +ROM:C19B mov R7, RAM_3 +ROM:C19D mov R6, RAM_2 +ROM:C19F lcall ROM_D29F +ROM:C1A2 lcall ROM_CFAE +ROM:C1A5 sjmp ROM_C1D7 +ROM:C1A7 ; --------------------------------------------------------------------------- +ROM:C1A7 +ROM:C1A7 ROM_C1A7: ; CODE XREF: ROM_AD6A+140E↑j +ROM:C1A7 mov DPTR, #0xF897 +ROM:C1AA inc DPTR +ROM:C1AB movx A, @DPTR +ROM:C1AC mov R7, A +ROM:C1AD mov DPTR, #0xFE0E +ROM:C1B0 lcall ROM_37C3 +ROM:C1B3 add A, #1 +ROM:C1B5 lcall ROM_3F82 +ROM:C1B8 mov DPTR, #0xFE0F +ROM:C1BB lcall ROM_D2D4 +ROM:C1BE mov DPTR, #0xF71C +ROM:C1C1 lcall load_4_bytes_R4_R5_R6_A +ROM:C1C4 add A, #2 +ROM:C1C6 lcall ROM_3738 +ROM:C1C9 lcall ROM_CF78 +ROM:C1CC lcall load_4_bytes_R4_R5_R6_A +ROM:C1CF add A, #2 +ROM:C1D1 +ROM:C1D1 ROM_C1D1: ; CODE XREF: ROM_AD6A+126A↑j +ROM:C1D1 lcall ROM_3738 +ROM:C1D4 ljmp ROM_C8B8 +ROM:C1D7 ; --------------------------------------------------------------------------- +ROM:C1D7 +ROM:C1D7 ROM_C1D7: ; CODE XREF: ROM_AD6A+1222↑j +ROM:C1D7 ; ROM_AD6A+133C↑j ... +ROM:C1D7 lcall ROM_578B +ROM:C1DA mov R7, A +ROM:C1DB mov A, R6 +ROM:C1DC anl A, #1 +ROM:C1DE mov R6, A +ROM:C1DF clr A +ROM:C1E0 mov R5, A +ROM:C1E1 lcall ROM_CFAD +ROM:C1E4 clr A +ROM:C1E5 mov R3, A +ROM:C1E6 mov R2, #1 +ROM:C1E8 lcall ROM_D532 +ROM:C1EB jnz ROM_C1F0 +ROM:C1ED ljmp ROM_C98E +ROM:C1F0 ; --------------------------------------------------------------------------- +ROM:C1F0 +ROM:C1F0 ROM_C1F0: ; CODE XREF: ROM_AD6A+1481↑j +ROM:C1F0 lcall ROM_578B +ROM:C1F3 mov DPTR, #0x1A06 +ROM:C1F6 lcall ROM_D28B +ROM:C1F9 lcall ROM_D6A1 +ROM:C1FC lcall ROM_578B +ROM:C1FF mov DPTR, #0x19C8 +ROM:C202 lcall ROM_D28B +ROM:C205 lcall ROM_CFAE +ROM:C208 mov DPTR, #0xFDEF +ROM:C20B lcall load_4_bytes_R4_R5_R6_A +ROM:C20E mov R7, A +ROM:C20F mov A, R4 +ROM:C210 orl A, R5 +ROM:C211 orl A, R6 +ROM:C212 orl A, R7 +ROM:C213 jnz ROM_C217 +ROM:C215 ajmp ROM_C297 +ROM:C217 ; --------------------------------------------------------------------------- +ROM:C217 +ROM:C217 ROM_C217: ; CODE XREF: ROM_AD6A+14A9↑j +ROM:C217 lcall ROM_2629 +ROM:C21A clr C +ROM:C21B lcall code_B1C +ROM:C21E jnc ROM_C25C +ROM:C220 +ROM:C220 ROM_C220: ; CODE XREF: ROM_AD6A+14F0↓j +ROM:C220 lcall ROM_CEA1 +ROM:C223 mov DPTR, #0xF89B +ROM:C226 lcall ROM_CF24 +ROM:C229 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C22C push RAM_0 +ROM:C22E push RAM_1 +ROM:C230 lcall ROM_CEDA +ROM:C233 mov R1, A +ROM:C234 mov DPTR, #0xF89B +ROM:C237 lcall load_4_bytes_R4_R5_R6_A +ROM:C23A lcall ROM_CF40 +ROM:C23D pop RAM_1 +ROM:C23F pop RAM_0 +ROM:C241 lcall code_1FD4 +ROM:C244 add A, #8 +ROM:C246 lcall ROM_3738 +ROM:C249 lcall ROM_CF0F +ROM:C24C mov DPTR, #0xFDEF +ROM:C24F lcall load_4_bytes_R4_R5_R6_A +ROM:C252 mov R7, A +ROM:C253 lcall ROM_2629 +ROM:C256 clr C +ROM:C257 lcall code_B1C +ROM:C25A jc ROM_C220 +ROM:C25C +ROM:C25C ROM_C25C: ; CODE XREF: ROM_AD6A+14B4↑j +ROM:C25C lcall ROM_D32E +ROM:C25F sjmp ROM_C266 +ROM:C261 ; --------------------------------------------------------------------------- +ROM:C261 +ROM:C261 ROM_C261: ; CODE XREF: ROM_AD6A:ROM_C266↓j +ROM:C261 clr C +ROM:C262 rlc A +ROM:C263 xch A, R6 +ROM:C264 rlc A +ROM:C265 xch A, R6 +ROM:C266 +ROM:C266 ROM_C266: ; CODE XREF: ROM_AD6A+14F5↑j +ROM:C266 djnz R0, ROM_C261 +ROM:C268 lcall ROM_3DB2 +ROM:C26B lcall ROM_CF16 +ROM:C26E lcall load_4_bytes_R4_R5_R6_A +ROM:C271 lcall ROM_D321 +ROM:C274 inc DPTR +ROM:C275 lcall code_1FE3 +ROM:C278 mov R7, A +ROM:C279 mov DPTR, #0xFDEF +ROM:C27C lcall load_4_bytes_R0_R1_R2_R3 +ROM:C27F lcall ROM_CF03 +ROM:C282 mov DPTR, #0xFDE3 +ROM:C285 lcall load_4_bytes_R4_R5_R6_A +ROM:C288 mov R7, A +ROM:C289 mov DPTR, #0xF897 +ROM:C28C lcall load_4_bytes_R0_R1_R2_R3 +ROM:C28F mov A, R7 +ROM:C290 add A, R3 +ROM:C291 lcall ROM_2F78 +ROM:C294 lcall ROM_CFAE +ROM:C297 +ROM:C297 ROM_C297: ; CODE XREF: ROM_AD6A+14AB↑j +ROM:C297 lcall ROM_2623 +ROM:C29A clr C +ROM:C29B lcall code_B1C +ROM:C29E jc ROM_C2A2 +ROM:C2A0 ajmp ROM_C3D1 +ROM:C2A2 ; --------------------------------------------------------------------------- +ROM:C2A2 +ROM:C2A2 ROM_C2A2: ; CODE XREF: ROM_AD6A+1534↑j +ROM:C2A2 lcall ROM_D2A6 +ROM:C2A5 lcall ROM_D352 +ROM:C2A8 jc ROM_C2AC +ROM:C2AA ajmp ROM_C377 +ROM:C2AC ; --------------------------------------------------------------------------- +ROM:C2AC +ROM:C2AC ROM_C2AC: ; CODE XREF: ROM_AD6A+153E↑j +ROM:C2AC ; ROM_AD6A+1609↓j +ROM:C2AC lcall ROM_37C0 +ROM:C2AF lcall ROM_D1CB +ROM:C2B2 mov A, R1 +ROM:C2B3 lcall ROM_D2F0 +ROM:C2B6 push RAM_3 +ROM:C2B8 push RAM_2 +ROM:C2BA push RAM_1 +ROM:C2BC mov DPTR, #0xFDF3 +ROM:C2BF lcall ROM_2E4F +ROM:C2C2 pop RAM_1 +ROM:C2C4 pop RAM_2 +ROM:C2C6 pop RAM_3 +ROM:C2C8 lcall ROM_3786 +ROM:C2CB lcall ROM_D521 +ROM:C2CE mov DPTR, #0xF89D +ROM:C2D1 lcall ROM_D2E4 +ROM:C2D4 jc ROM_C2FC +ROM:C2D6 lcall ROM_D6CB +ROM:C2D9 +ROM:C2D9 ROM_C2D9: ; CODE XREF: ROM_AD6A+1572↓j +ROM:C2D9 lcall ROM_D4F2 +ROM:C2DC djnz R0, ROM_C2D9 +ROM:C2DE lcall ROM_D29E +ROM:C2E1 lcall ROM_D62F +ROM:C2E4 mov DPTR, #0xF89F +ROM:C2E7 lcall load_4_bytes_R4_R5_R6_A +ROM:C2EA mov R7, A +ROM:C2EB mov A, R4 +ROM:C2EC orl A, R5 +ROM:C2ED orl A, R6 +ROM:C2EE orl A, R7 +ROM:C2EF jz ROM_C346 +ROM:C2F1 lcall ROM_2629 +ROM:C2F4 clr C +ROM:C2F5 lcall code_B1C +ROM:C2F8 jc ROM_C346 +ROM:C2FA ajmp ROM_C3D1 +ROM:C2FC ; --------------------------------------------------------------------------- +ROM:C2FC +ROM:C2FC ROM_C2FC: ; CODE XREF: ROM_AD6A+156A↑j +ROM:C2FC clr A +ROM:C2FD mov R7, #7 +ROM:C2FF lcall ROM_2626 +ROM:C302 setb C +ROM:C303 lcall code_B1C +ROM:C306 jc ROM_C346 +ROM:C308 lcall ROM_D414 +ROM:C30B lcall ROM_D62F +ROM:C30E +ROM:C30E ROM_C30E: ; CODE XREF: ROM_AD6A+15D3↓j +ROM:C30E mov DPTR, #0xF89F +ROM:C311 lcall ROM_D341 +ROM:C314 lcall load_4_bytes_R4_R5_R6_A +ROM:C317 lcall ROM_D4E7 +ROM:C31A mov DPTR, #0xF89D +ROM:C31D lcall ROM_379D +ROM:C320 add A, #0x4D ; 'M' +ROM:C322 lcall ROM_3778 +ROM:C325 lcall ROM_D484 +ROM:C328 lcall ROM_D528 +ROM:C32B jnc ROM_C33F +ROM:C32D mov DPTR, #0xF89F +ROM:C330 lcall load_4_bytes_R4_R5_R6_A +ROM:C333 lcall ROM_3736 +ROM:C336 lcall ROM_2628 +ROM:C339 clr C +ROM:C33A lcall code_B1C +ROM:C33D jnc ROM_C30E +ROM:C33F +ROM:C33F ROM_C33F: ; CODE XREF: ROM_AD6A+15C1↑j +ROM:C33F lcall ROM_D528 +ROM:C342 jc ROM_C346 +ROM:C344 ajmp ROM_C3D1 +ROM:C346 ; --------------------------------------------------------------------------- +ROM:C346 +ROM:C346 ROM_C346: ; CODE XREF: ROM_AD6A+1585↑j +ROM:C346 ; ROM_AD6A+158E↑j ... +ROM:C346 lcall ROM_CEA1 +ROM:C349 mov DPTR, #0xF8A3 +ROM:C34C lcall ROM_CF24 +ROM:C34F lcall load_4_bytes_R0_R1_R2_R3 +ROM:C352 push RAM_0 +ROM:C354 push RAM_1 +ROM:C356 lcall ROM_CEDA +ROM:C359 mov R1, A +ROM:C35A mov DPTR, #0xF8A3 +ROM:C35D lcall load_4_bytes_R4_R5_R6_A +ROM:C360 lcall ROM_CF40 +ROM:C363 pop RAM_1 +ROM:C365 pop RAM_0 +ROM:C367 lcall code_1FD4 +ROM:C36A lcall ROM_2611 +ROM:C36D clr C +ROM:C36E lcall code_B1C +ROM:C371 jnc ROM_C375 +ROM:C373 ajmp ROM_C2AC +ROM:C375 ; --------------------------------------------------------------------------- +ROM:C375 +ROM:C375 ROM_C375: ; CODE XREF: ROM_AD6A+1607↑j +ROM:C375 sjmp ROM_C3D1 +ROM:C377 ; --------------------------------------------------------------------------- +ROM:C377 +ROM:C377 ROM_C377: ; CODE XREF: ROM_AD6A+1540↑j +ROM:C377 mov DPTR, #0xFDF3 +ROM:C37A lcall load_4_bytes_R0_R1_R2_R3 +ROM:C37D push RAM_0 +ROM:C37F push RAM_1 +ROM:C381 push RAM_2 +ROM:C383 push RAM_3 +ROM:C385 mov DPTR, #0xFE0B +ROM:C388 lcall ROM_37C3 +ROM:C38B add A, #1 +ROM:C38D mov R1, A +ROM:C38E clr A +ROM:C38F addc A, R2 +ROM:C390 lcall ROM_CEB0 +ROM:C393 lcall ROM_CEDA +ROM:C396 lcall ROM_D7EC +ROM:C399 push RAM_4 +ROM:C39B push RAM_5 +ROM:C39D push RAM_6 +ROM:C39F push RAM_7 +ROM:C3A1 lcall ROM_3EAF +ROM:C3A4 lcall ROM_CEB1 +ROM:C3A7 lcall ROM_CEDA +ROM:C3AA mov R1, A +ROM:C3AB mov R0, A +ROM:C3AC lcall code_B40 +ROM:C3AF pop RAM_3 +ROM:C3B1 pop RAM_2 +ROM:C3B3 pop RAM_1 +ROM:C3B5 pop RAM_0 +ROM:C3B7 lcall ROM_D3A8 +ROM:C3BA mov R4, A +ROM:C3BB pop RAM_3 +ROM:C3BD pop RAM_2 +ROM:C3BF pop RAM_1 +ROM:C3C1 pop RAM_0 +ROM:C3C3 lcall ROM_D2BF +ROM:C3C6 lcall load_4_bytes_R4_R5_R6_A_From_0xFDFD +ROM:C3C9 add A, #0x10 +ROM:C3CB lcall ROM_3738 +ROM:C3CE lcall ROM_CF0F +ROM:C3D1 +ROM:C3D1 ROM_C3D1: ; CODE XREF: ROM_AD6A+1536↑j +ROM:C3D1 ; ROM_AD6A+1590↑j ... +ROM:C3D1 lcall ROM_37C0 +ROM:C3D4 lcall ROM_D1CB +ROM:C3D7 mov A, R1 +ROM:C3D8 lcall ROM_D2F0 +ROM:C3DB push RAM_3 +ROM:C3DD push RAM_2 +ROM:C3DF push RAM_1 +ROM:C3E1 mov DPTR, #0xFDF3 +ROM:C3E4 lcall ROM_2E4F +ROM:C3E7 pop RAM_1 +ROM:C3E9 pop RAM_2 +ROM:C3EB pop RAM_3 +ROM:C3ED lcall ROM_3786 +ROM:C3F0 lcall ROM_D2DB +ROM:C3F3 jc ROM_C408 +ROM:C3F5 lcall ROM_D5CD +ROM:C3F8 +ROM:C3F8 ROM_C3F8: ; CODE XREF: ROM_AD6A+1691↓j +ROM:C3F8 lcall ROM_D4F2 +ROM:C3FB djnz R0, ROM_C3F8 +ROM:C3FD lcall ROM_D29E +ROM:C400 lcall ROM_D4E1 +ROM:C403 lcall ROM_D6D5 +ROM:C406 sjmp ROM_C421 +ROM:C408 ; --------------------------------------------------------------------------- +ROM:C408 +ROM:C408 ROM_C408: ; CODE XREF: ROM_AD6A+1689↑j +ROM:C408 lcall ROM_D414 +ROM:C40B lcall ROM_D4E1 +ROM:C40E +ROM:C40E ROM_C40E: ; CODE XREF: ROM_AD6A+16B5↓j +ROM:C40E lcall ROM_D33E +ROM:C411 lcall load_4_bytes_R4_R5_R6_A +ROM:C414 lcall ROM_3790 +ROM:C417 add A, #0x4D ; 'M' +ROM:C419 lcall ROM_3778 +ROM:C41C lcall ROM_D30A +ROM:C41F jc ROM_C40E +ROM:C421 +ROM:C421 ROM_C421: ; CODE XREF: ROM_AD6A+169C↑j +ROM:C421 lcall ROM_D380 +ROM:C424 lcall ROM_D29E +ROM:C427 mov DPTR, #0xFDEB +ROM:C42A lcall ROM_CF24 +ROM:C42D lcall load_4_bytes_R4_R5_R6_A +ROM:C430 mov R7, A +ROM:C431 mov DPTR, #0xF899 +ROM:C434 lcall ROM_D325 +ROM:C437 lcall code_1FE0 +ROM:C43A mov R7, A +ROM:C43B mov DPTR, #0xF899 +ROM:C43E lcall load_4_bytes_R0_R1_R2_R3 +ROM:C441 lcall ROM_CF03 +ROM:C444 mov DPTR, #0xFDEB +ROM:C447 lcall ROM_578E +ROM:C44A mov DPTR, #0x1C86 +ROM:C44D lcall ROM_D28B +ROM:C450 lcall ROM_D6A1 +ROM:C453 mov DPTR, #0xFDEB +ROM:C456 lcall ROM_578E +ROM:C459 mov DPTR, #0x1C46 +ROM:C45C lcall ROM_D28B +ROM:C45F lcall ROM_D6E2 +ROM:C462 mov DPTR, #0xFDEF +ROM:C465 lcall load_4_bytes_R4_R5_R6_A +ROM:C468 mov R7, A +ROM:C469 mov A, R4 +ROM:C46A orl A, R5 +ROM:C46B orl A, R6 +ROM:C46C orl A, R7 +ROM:C46D jnz ROM_C471 +ROM:C46F ajmp ROM_C4F1 +ROM:C471 ; --------------------------------------------------------------------------- +ROM:C471 +ROM:C471 ROM_C471: ; CODE XREF: ROM_AD6A+1703↑j +ROM:C471 lcall ROM_2629 +ROM:C474 clr C +ROM:C475 lcall code_B1C +ROM:C478 jnc ROM_C4B6 +ROM:C47A +ROM:C47A ROM_C47A: ; CODE XREF: ROM_AD6A+174A↓j +ROM:C47A lcall ROM_CEA1 +ROM:C47D mov DPTR, #0xF89B +ROM:C480 lcall ROM_CF24 +ROM:C483 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C486 push RAM_0 +ROM:C488 push RAM_1 +ROM:C48A lcall ROM_CEDA +ROM:C48D mov R1, A +ROM:C48E mov DPTR, #0xF89B +ROM:C491 lcall load_4_bytes_R4_R5_R6_A +ROM:C494 lcall ROM_CF40 +ROM:C497 pop RAM_1 +ROM:C499 pop RAM_0 +ROM:C49B lcall code_1FD4 +ROM:C49E add A, #8 +ROM:C4A0 lcall ROM_3738 +ROM:C4A3 lcall ROM_CF0F +ROM:C4A6 mov DPTR, #0xFDEF +ROM:C4A9 lcall load_4_bytes_R4_R5_R6_A +ROM:C4AC mov R7, A +ROM:C4AD lcall ROM_2629 +ROM:C4B0 clr C +ROM:C4B1 lcall code_B1C +ROM:C4B4 jc ROM_C47A +ROM:C4B6 +ROM:C4B6 ROM_C4B6: ; CODE XREF: ROM_AD6A+170E↑j +ROM:C4B6 lcall ROM_D32E +ROM:C4B9 sjmp ROM_C4C0 +ROM:C4BB ; --------------------------------------------------------------------------- +ROM:C4BB +ROM:C4BB ROM_C4BB: ; CODE XREF: ROM_AD6A:ROM_C4C0↓j +ROM:C4BB clr C +ROM:C4BC rlc A +ROM:C4BD xch A, R6 +ROM:C4BE rlc A +ROM:C4BF xch A, R6 +ROM:C4C0 +ROM:C4C0 ROM_C4C0: ; CODE XREF: ROM_AD6A+174F↑j +ROM:C4C0 djnz R0, ROM_C4BB +ROM:C4C2 lcall ROM_3DB2 +ROM:C4C5 lcall ROM_CF16 +ROM:C4C8 lcall load_4_bytes_R4_R5_R6_A +ROM:C4CB lcall ROM_D321 +ROM:C4CE inc DPTR +ROM:C4CF lcall code_1FE3 +ROM:C4D2 mov R7, A +ROM:C4D3 mov DPTR, #0xFDEF +ROM:C4D6 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C4D9 lcall ROM_CF03 +ROM:C4DC mov DPTR, #0xFDEB +ROM:C4DF lcall load_4_bytes_R4_R5_R6_A +ROM:C4E2 mov R7, A +ROM:C4E3 mov DPTR, #0xF897 +ROM:C4E6 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C4E9 mov A, R7 +ROM:C4EA add A, R3 +ROM:C4EB lcall ROM_2F78 +ROM:C4EE lcall ROM_D6E2 +ROM:C4F1 +ROM:C4F1 ROM_C4F1: ; CODE XREF: ROM_AD6A+1705↑j +ROM:C4F1 mov DPTR, #0xF71C +ROM:C4F4 lcall ROM_578E +ROM:C4F7 mov R7, A +ROM:C4F8 mov DPTR, #0xF895 +ROM:C4FB lcall ROM_47DD +ROM:C4FE mov R4, A +ROM:C4FF mov R5, A +ROM:C500 mov DPTR, #0xFDEB +ROM:C503 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C506 setb C +ROM:C507 lcall code_B1C +ROM:C50A jc ROM_C520 +ROM:C50C lcall ROM_CEFB +ROM:C50F anl A, #4 +ROM:C511 mov R7, A +ROM:C512 mov A, R7 +ROM:C513 jz ROM_C520 +ROM:C515 lcall ROM_D434 +ROM:C518 mov R7, #0x25 ; '%' +ROM:C51A mov R6, A +ROM:C51B mov R5, A +ROM:C51C mov R4, A +ROM:C51D ljmp ROM_CADA +ROM:C520 ; --------------------------------------------------------------------------- +ROM:C520 +ROM:C520 ROM_C520: ; CODE XREF: ROM_AD6A+17A0↑j +ROM:C520 ; ROM_AD6A+17A9↑j +ROM:C520 mov DPTR, #0xF718 +ROM:C523 lcall load_4_bytes_R4_R5_R6_A +ROM:C526 mov R7, A +ROM:C527 mov DPTR, #0xFDEB +ROM:C52A lcall load_4_bytes_R0_R1_R2_R3 +ROM:C52D setb C +ROM:C52E lcall code_B1C +ROM:C531 jc ROM_C535 +ROM:C533 ajmp ROM_C5E1 +ROM:C535 ; --------------------------------------------------------------------------- +ROM:C535 +ROM:C535 ROM_C535: ; CODE XREF: ROM_AD6A+17C7↑j +ROM:C535 mov DPTR, #0xFDEB +ROM:C538 movx A, @DPTR +ROM:C539 mov R0, A +ROM:C53A mov DPTR, #0xF718 +ROM:C53D lcall load_4_bytes_R4_R5_R6_A +ROM:C540 lcall ROM_D635 +ROM:C543 lcall ROM_3297 +ROM:C546 lcall ROM_D5FF +ROM:C549 mov DPTR, #0xFDD6 +ROM:C54C lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:C54F mov R7, A +ROM:C550 mov DPTR, #0xFE01 +ROM:C553 lcall ROM_37C3 +ROM:C556 lcall ROM_D868 +ROM:C559 lcall Save_3_bytes_A_R2_R1 +ROM:C55C mov DPTR, #0xF718 +ROM:C55F lcall ROM_578E +ROM:C562 mov R7, A +ROM:C563 mov DPTR, #0xF88C +ROM:C566 lcall ROM_37C3 +ROM:C569 lcall ROM_D894 +ROM:C56C mov R6, A +ROM:C56D lcall ROM_DA1C +ROM:C570 mov R3, A +ROM:C571 clr A +ROM:C572 lcall ROM_3F93 +ROM:C575 mov DPTR, #0xFDE3 +ROM:C578 inc DPTR +ROM:C579 inc DPTR +ROM:C57A movx A, @DPTR +ROM:C57B mov R7, A +ROM:C57C inc DPTR +ROM:C57D movx A, @DPTR +ROM:C57E mov DPTR, #0xFDE1 +ROM:C581 xch A, R7 +ROM:C582 movx @DPTR, A +ROM:C583 inc DPTR +ROM:C584 mov A, R7 +ROM:C585 movx @DPTR, A +ROM:C586 mov DPTR, #0xFDDA +ROM:C589 mov A, #1 +ROM:C58B movx @DPTR, A +ROM:C58C mov R7, RAM_3 +ROM:C58E clr A +ROM:C58F mov R4, A +ROM:C590 mov R5, A +ROM:C591 mov DPTR, #0xFDE3 +ROM:C594 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C597 setb C +ROM:C598 lcall code_B1C +ROM:C59B jnc ROM_C59F +ROM:C59D ajmp ROM_C6F1 +ROM:C59F ; --------------------------------------------------------------------------- +ROM:C59F +ROM:C59F ROM_C59F: ; CODE XREF: ROM_AD6A+1831↑j +ROM:C59F lcall ROM_DA14 +ROM:C5A2 lcall ROM_578B +ROM:C5A5 lcall ROM_D968 +ROM:C5A8 mov R5, A +ROM:C5A9 mov A, R7 +ROM:C5AA subb A, R5 +ROM:C5AB mov R7, A +ROM:C5AC mov A, R6 +ROM:C5AD subb A, R4 +ROM:C5AE mov DPTR, #0xFDDF +ROM:C5B1 lcall ROM_8B2C +ROM:C5B4 mov DPTR, #0xF718 +ROM:C5B7 lcall ROM_578E +ROM:C5BA mov R3, A +ROM:C5BB mov R2, RAM_6 +ROM:C5BD mov DPTR, #0xF71C +ROM:C5C0 lcall ROM_578E +ROM:C5C3 clr C +ROM:C5C4 subb A, R3 +ROM:C5C5 mov R3, A +ROM:C5C6 mov A, R6 +ROM:C5C7 subb A, R2 +ROM:C5C8 mov R2, A +ROM:C5C9 mov DPTR, #0xFDD6 +ROM:C5CC lcall ROM_578E +ROM:C5CF add A, R3 +ROM:C5D0 mov R7, A +ROM:C5D1 mov A, R2 +ROM:C5D2 addc A, R6 +ROM:C5D3 mov R6, A +ROM:C5D4 mov DPTR, #0xFDE2 +ROM:C5D7 movx A, @DPTR +ROM:C5D8 add A, R7 +ROM:C5D9 mov R7, A +ROM:C5DA mov DPTR, #0xFDE1 +ROM:C5DD movx A, @DPTR +ROM:C5DE addc A, R6 +ROM:C5DF ajmp ROM_C6EE +ROM:C5E1 ; --------------------------------------------------------------------------- +ROM:C5E1 +ROM:C5E1 ROM_C5E1: ; CODE XREF: ROM_AD6A+17C9↑j +ROM:C5E1 mov DPTR, #0xFDEB +ROM:C5E4 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C5E7 mov DPTR, #0xF71C +ROM:C5EA lcall load_4_bytes_R4_R5_R6_A +ROM:C5ED lcall ROM_D635 +ROM:C5F0 lcall ROM_3297 +ROM:C5F3 lcall ROM_D5FF +ROM:C5F6 mov DPTR, #0xFDD6 +ROM:C5F9 lcall load_3_bytes_R5_R6_A_offset_plus_1 +ROM:C5FC mov R7, A +ROM:C5FD mov DPTR, #0xF886 +ROM:C600 lcall ROM_37C3 +ROM:C603 lcall ROM_D868 +ROM:C606 lcall Save_3_bytes_A_R2_R1 +ROM:C609 mov DPTR, #0xFDDA +ROM:C60C mov A, #2 +ROM:C60E movx @DPTR, A +ROM:C60F mov DPTR, #0xF718 +ROM:C612 lcall ROM_578E +ROM:C615 mov R7, A +ROM:C616 mov DPTR, #0xF88C +ROM:C619 lcall ROM_37C3 +ROM:C61C lcall ROM_D894 +ROM:C61F lcall ROM_DA1C +ROM:C622 mov DPTR, #0xF718 +ROM:C625 inc DPTR +ROM:C626 inc DPTR +ROM:C627 inc DPTR +ROM:C628 movx A, @DPTR +ROM:C629 mov R3, A +ROM:C62A mov R2, RAM_6 +ROM:C62C mov DPTR, #0xF71C +ROM:C62F lcall ROM_578E +ROM:C632 clr C +ROM:C633 subb A, R3 +ROM:C634 mov R7, A +ROM:C635 mov A, R6 +ROM:C636 subb A, R2 +ROM:C637 mov R6, A +ROM:C638 lcall ROM_DA0C +ROM:C63B mov DPTR, #0xFDD6 +ROM:C63E lcall load_4_bytes_R0_R1_R2_R3 +ROM:C641 lcall ROM_9379 +ROM:C644 mov R6, A +ROM:C645 clr A +ROM:C646 subb A, R1 +ROM:C647 mov R5, A +ROM:C648 clr A +ROM:C649 subb A, R0 +ROM:C64A mov R4, A +ROM:C64B mov DPTR, #0xFDE3 +ROM:C64E lcall load_4_bytes_R0_R1_R2_R3 +ROM:C651 setb C +ROM:C652 lcall code_B1C +ROM:C655 jc ROM_C66E +ROM:C657 mov DPTR, #0xFDDD +ROM:C65A movx A, @DPTR +ROM:C65B mov R6, A +ROM:C65C inc DPTR +ROM:C65D movx A, @DPTR +ROM:C65E mov R7, A +ROM:C65F mov DPTR, #0xFDD6 +ROM:C662 inc DPTR +ROM:C663 lcall load_2_bytes_R2_R3_offset_1 +ROM:C666 mov A, R7 +ROM:C667 subb A, R3 +ROM:C668 mov R7, A +ROM:C669 mov A, R6 +ROM:C66A subb A, R2 +ROM:C66B mov R6, A +ROM:C66C sjmp ROM_C672 +ROM:C66E ; --------------------------------------------------------------------------- +ROM:C66E +ROM:C66E ROM_C66E: ; CODE XREF: ROM_AD6A+18EB↑j +ROM:C66E lcall ROM_578B +ROM:C671 mov R7, A +ROM:C672 +ROM:C672 ROM_C672: ; CODE XREF: ROM_AD6A+1902↑j +ROM:C672 mov DPTR, #0xFDDF +ROM:C675 lcall ROM_47DD +ROM:C678 mov R4, A +ROM:C679 mov R5, A +ROM:C67A mov DPTR, #0xFDE3 +ROM:C67D lcall load_4_bytes_R0_R1_R2_R3 +ROM:C680 clr C +ROM:C681 lcall code_B1C +ROM:C684 jz ROM_C697 +ROM:C686 lcall ROM_CF4D +ROM:C689 mov R3, A +ROM:C68A mov R2, RAM_6 +ROM:C68C lcall ROM_578B +ROM:C68F clr C +ROM:C690 subb A, R3 +ROM:C691 mov R7, A +ROM:C692 mov A, R6 +ROM:C693 subb A, R2 +ROM:C694 mov R6, A +ROM:C695 sjmp ROM_C69A +ROM:C697 ; --------------------------------------------------------------------------- +ROM:C697 +ROM:C697 ROM_C697: ; CODE XREF: ROM_AD6A+191A↑j +ROM:C697 clr A +ROM:C698 mov R7, A +ROM:C699 mov R6, A +ROM:C69A +ROM:C69A ROM_C69A: ; CODE XREF: ROM_AD6A+192B↑j +ROM:C69A mov DPTR, #0xFDE1 +ROM:C69D mov A, R6 +ROM:C69E movx @DPTR, A +ROM:C69F inc DPTR +ROM:C6A0 mov A, R7 +ROM:C6A1 movx @DPTR, A +ROM:C6A2 mov DPTR, #0xFDDB +ROM:C6A5 lcall ROM_3297 +ROM:C6A8 mov R5, A +ROM:C6A9 mov DPTR, #0xFDE3 +ROM:C6AC lcall load_4_bytes_R0_R1_R2_R3 +ROM:C6AF setb C +ROM:C6B0 lcall code_B1C +ROM:C6B3 jc ROM_C6F1 +ROM:C6B5 lcall ROM_DA14 +ROM:C6B8 lcall ROM_CF4D +ROM:C6BB lcall ROM_D968 +ROM:C6BE mov R5, A +ROM:C6BF subb A, R7 +ROM:C6C0 mov A, R4 +ROM:C6C1 subb A, R6 +ROM:C6C2 jnc ROM_C6CA +ROM:C6C4 mov R6, RAM_4 +ROM:C6C6 mov R7, RAM_5 +ROM:C6C8 sjmp ROM_C6CA +ROM:C6CA ; --------------------------------------------------------------------------- +ROM:C6CA +ROM:C6CA ROM_C6CA: ; CODE XREF: ROM_AD6A+1958↑j +ROM:C6CA ; ROM_AD6A+195E↑j +ROM:C6CA mov DPTR, #0xFDE1 +ROM:C6CD mov A, R6 +ROM:C6CE movx @DPTR, A +ROM:C6CF mov R2, A +ROM:C6D0 inc DPTR +ROM:C6D1 mov A, R7 +ROM:C6D2 movx @DPTR, A +ROM:C6D3 mov R3, A +ROM:C6D4 inc DPTR +ROM:C6D5 lcall ROM_578E +ROM:C6D8 clr C +ROM:C6D9 subb A, R3 +ROM:C6DA mov R7, A +ROM:C6DB mov A, R6 +ROM:C6DC subb A, R2 +ROM:C6DD mov DPTR, #0xFDDF +ROM:C6E0 movx @DPTR, A +ROM:C6E1 inc DPTR +ROM:C6E2 mov A, R7 +ROM:C6E3 movx @DPTR, A +ROM:C6E4 mov DPTR, #0xFDD6 +ROM:C6E7 lcall ROM_578E +ROM:C6EA add A, R3 +ROM:C6EB mov R7, A +ROM:C6EC mov A, R6 +ROM:C6ED addc A, R2 +ROM:C6EE +ROM:C6EE ROM_C6EE: ; CODE XREF: ROM_AD6A+1875↑j +ROM:C6EE lcall ROM_DA0C +ROM:C6F1 +ROM:C6F1 ROM_C6F1: ; CODE XREF: ROM_AD6A+1833↑j +ROM:C6F1 ; ROM_AD6A+1949↑j +ROM:C6F1 mov DPTR, #0xFDE3 +ROM:C6F4 lcall load_4_bytes_R4_R5_R6_A +ROM:C6F7 mov R7, A +ROM:C6F8 mov DPTR, #0xF718 +ROM:C6FB lcall load_4_bytes_R0_R1_R2_A +ROM:C6FE add A, R7 +ROM:C6FF mov R7, A +ROM:C700 mov A, R2 +ROM:C701 addc A, R6 +ROM:C702 lcall ROM_8F67 +ROM:C705 push RAM_6 +ROM:C707 push RAM_7 +ROM:C709 mov DPTR, #0xF88C +ROM:C70C lcall ROM_37C3 +ROM:C70F mov R1, A +ROM:C710 lcall code_9A7 +ROM:C713 mov R6, B ; B Register +ROM:C715 mov R3, A +ROM:C716 mov R2, RAM_6 +ROM:C718 clr A +ROM:C719 mov R1, A +ROM:C71A mov R0, A +ROM:C71B pop RAM_7 +ROM:C71D pop RAM_6 +ROM:C71F clr C +ROM:C720 lcall code_B1C +ROM:C723 jc ROM_C728 +ROM:C725 ljmp ROM_C8BE +ROM:C728 ; --------------------------------------------------------------------------- +ROM:C728 +ROM:C728 ROM_C728: ; CODE XREF: ROM_AD6A+19B9↑j +ROM:C728 clr A +ROM:C729 lcall ROM_CEE2 +ROM:C72C mov DPTR, #0xFDDA +ROM:C72F movx A, @DPTR +ROM:C730 jnb ACC1, ROM_C74F ; Accumulator +ROM:C733 mov DPTR, #0xFE0E +ROM:C736 lcall load_3_bytes_R1_R2_A +ROM:C739 mov DPTR, #0xF94D +ROM:C73C xch A, R1 +ROM:C73D lcall Save_3_bytes_A_R2_R1 +ROM:C740 lcall ROM_CF8E +ROM:C743 movx @DPTR, A +ROM:C744 mov DPTR, #0xFDE7 +ROM:C747 lcall ROM_37C3 +ROM:C74A lcall ROM_CF2B +ROM:C74D sjmp ROM_C76B +ROM:C74F ; --------------------------------------------------------------------------- +ROM:C74F +ROM:C74F ROM_C74F: ; CODE XREF: ROM_AD6A+19C6↑j +ROM:C74F clr A +ROM:C750 lcall ROM_CEE2 +ROM:C753 +ROM:C753 ROM_C753: ; CODE XREF: ROM_AD6A:ROM_C769↓j +ROM:C753 mov DPTR, #0xFDE1 +ROM:C756 lcall ROM_3758 +ROM:C759 lcall ROM_CF83 +ROM:C75C jnc ROM_C76B +ROM:C75E lcall ROM_D266 +ROM:C761 lcall ROM_CEF0 +ROM:C764 jnz ROM_C769 +ROM:C766 lcall ROM_CEE9 +ROM:C769 +ROM:C769 ROM_C769: ; CODE XREF: ROM_AD6A+19FA↑j +ROM:C769 sjmp ROM_C753 +ROM:C76B ; --------------------------------------------------------------------------- +ROM:C76B +ROM:C76B ROM_C76B: ; CODE XREF: ROM_AD6A+19E3↑j +ROM:C76B ; ROM_AD6A+19F2↑j +ROM:C76B mov DPTR, #0xF71C +ROM:C76E lcall load_4_bytes_R0_R1_R2_R3 +ROM:C771 mov DPTR, #0xFDE1 +ROM:C774 lcall ROM_3297 +ROM:C777 lcall ROM_3275 +ROM:C77A lcall ROM_2F7B +ROM:C77D lcall ROM_CF79 +ROM:C780 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C783 mov DPTR, #0xFDE1 +ROM:C786 lcall ROM_3297 +ROM:C789 lcall ROM_3275 +ROM:C78C lcall ROM_2F7B +ROM:C78F lcall ROM_D716 +ROM:C792 mov DPTR, #0xFDDA +ROM:C795 movx A, @DPTR +ROM:C796 jnb ACC2, ROM_C811 ; Accumulator +ROM:C799 mov DPTR, #0xF886 +ROM:C79C lcall ROM_37C3 +ROM:C79F mov R1, A +ROM:C7A0 mov DPTR, #0xFDDD +ROM:C7A3 lcall ROM_716C +ROM:C7A6 mov DPTR, #0xFDE7 +ROM:C7A9 lcall Save_3_bytes_R3_R2_R1 +ROM:C7AC mov DPTR, #0xFDDF +ROM:C7AF movx A, @DPTR +ROM:C7B0 mov R5, A +ROM:C7B1 inc DPTR +ROM:C7B2 movx A, @DPTR +ROM:C7B3 inc DPTR +ROM:C7B4 xch A, R5 +ROM:C7B5 movx @DPTR, A +ROM:C7B6 inc DPTR +ROM:C7B7 mov A, R5 +ROM:C7B8 movx @DPTR, A +ROM:C7B9 mov R3, RAM_7 +ROM:C7BB mov R2, RAM_6 +ROM:C7BD mov DPTR, #0xF71C +ROM:C7C0 lcall load_4_bytes_R4_R5_R6_A +ROM:C7C3 clr C +ROM:C7C4 subb A, R3 +ROM:C7C5 mov R3, A +ROM:C7C6 mov A, R6 +ROM:C7C7 subb A, R2 +ROM:C7C8 mov R2, A +ROM:C7C9 mov A, R5 +ROM:C7CA subb A, #0 +ROM:C7CC mov R1, A +ROM:C7CD mov A, R4 +ROM:C7CE subb A, #0 +ROM:C7D0 mov R0, A +ROM:C7D1 mov DPTR, #0xFDE1 +ROM:C7D4 lcall ROM_3297 +ROM:C7D7 mov R5, A +ROM:C7D8 clr C +ROM:C7D9 lcall code_B1C +ROM:C7DC jnc ROM_C80A +ROM:C7DE mov DPTR, #0xF71C +ROM:C7E1 lcall ROM_578E +ROM:C7E4 mov R7, A +ROM:C7E5 mov DPTR, #0xFDDD +ROM:C7E8 movx A, @DPTR +ROM:C7E9 mov R4, A +ROM:C7EA inc DPTR +ROM:C7EB movx A, @DPTR +ROM:C7EC mov R5, A +ROM:C7ED clr C +ROM:C7EE mov A, R7 +ROM:C7EF subb A, R5 +ROM:C7F0 mov R7, A +ROM:C7F1 mov A, R6 +ROM:C7F2 subb A, R4 +ROM:C7F3 mov R6, A +ROM:C7F4 mov DPTR, #0xFDE1 +ROM:C7F7 movx @DPTR, A +ROM:C7F8 inc DPTR +ROM:C7F9 mov A, R7 +ROM:C7FA movx @DPTR, A +ROM:C7FB clr C +ROM:C7FC mov DPTR, #0xFDE0 +ROM:C7FF movx A, @DPTR +ROM:C800 subb A, R7 +ROM:C801 movx @DPTR, A +ROM:C802 mov DPTR, #0xFDDF +ROM:C805 movx A, @DPTR +ROM:C806 subb A, R6 +ROM:C807 movx @DPTR, A +ROM:C808 sjmp ROM_C811 +ROM:C80A ; --------------------------------------------------------------------------- +ROM:C80A +ROM:C80A ROM_C80A: ; CODE XREF: ROM_AD6A+1A72↑j +ROM:C80A clr A +ROM:C80B mov DPTR, #0xFDDF +ROM:C80E movx @DPTR, A +ROM:C80F inc DPTR +ROM:C810 movx @DPTR, A +ROM:C811 +ROM:C811 ROM_C811: ; CODE XREF: ROM_AD6A+1A2C↑j +ROM:C811 ; ROM_AD6A+1A9E↑j +ROM:C811 lcall ROM_D66C +ROM:C814 mov R7, #0x35 ; '5' +ROM:C816 mov R6, A +ROM:C817 mov R5, A +ROM:C818 mov R4, A +ROM:C819 ajmp ROM_CADA +ROM:C819 ; --------------------------------------------------------------------------- +ROM:C81B .byte 0x90 +ROM:C81C .byte 0xFD +ROM:C81D .byte 0xDA +ROM:C81E .byte 0xE0 +ROM:C81F .byte 0x30 ; 0 +ROM:C820 .byte 0xE2 +ROM:C821 .byte 0x58 ; X +ROM:C822 .byte 0x90 +ROM:C823 .byte 0xFE +ROM:C824 .byte 0xE +ROM:C825 .byte 0x12 +ROM:C826 .byte 0x3D ; = +ROM:C827 .byte 0xC4 +ROM:C828 .byte 0x90 +ROM:C829 .byte 0xF9 +ROM:C82A .byte 0x4D ; M +ROM:C82B .byte 0xC9 +ROM:C82C .byte 0x12 +ROM:C82D .byte 0x3D ; = +ROM:C82E .byte 0xAA +ROM:C82F .byte 0xF1 +ROM:C830 .byte 0x8E +ROM:C831 .byte 0xF0 +ROM:C832 .byte 0x90 +ROM:C833 .byte 0xFD +ROM:C834 .byte 0xE7 +ROM:C835 .byte 0x12 +ROM:C836 .byte 0x37 ; 7 +ROM:C837 .byte 0xC3 +ROM:C838 .byte 0xF1 +ROM:C839 .byte 0x2B ; + +ROM:C83A .byte 0x90 +ROM:C83B .byte 0xFD +ROM:C83C .byte 0xDF +ROM:C83D .byte 0xE0 +ROM:C83E .byte 0x70 ; p +ROM:C83F .byte 2 +ROM:C840 .byte 0xA3 +ROM:C841 .byte 0xE0 +ROM:C842 .byte 0x60 ; ` +ROM:C843 .byte 0x4E ; N +ROM:C844 .byte 0x90 +ROM:C845 .byte 0xFE +ROM:C846 .byte 1 +ROM:C847 .byte 0x12 +ROM:C848 .byte 0x3D ; = +ROM:C849 .byte 0xC4 +ROM:C84A .byte 0x90 +ROM:C84B .byte 0xFD +ROM:C84C .byte 0xE7 +ROM:C84D .byte 0xC9 +ROM:C84E .byte 0x12 +ROM:C84F .byte 0x3D ; = +ROM:C850 .byte 0xAA +ROM:C851 .byte 0xE4 +ROM:C852 .byte 0xD1 +ROM:C853 .byte 0xE2 +ROM:C854 .byte 0x90 +ROM:C855 .byte 0xFD +ROM:C856 .byte 0xDF +ROM:C857 .byte 0x12 +ROM:C858 .byte 0x37 ; 7 +ROM:C859 .byte 0x58 ; X +ROM:C85A .byte 0xF1 +ROM:C85B .byte 0x83 +ROM:C85C .byte 0x50 ; P +ROM:C85D .byte 0xB +ROM:C85E .byte 0x12 +ROM:C85F .byte 0xD2 +ROM:C860 .byte 0x66 ; f +ROM:C861 .byte 0xD1 +ROM:C862 .byte 0xF0 +ROM:C863 .byte 0x70 ; p +ROM:C864 .byte 2 +ROM:C865 .byte 0xD1 +ROM:C866 .byte 0xE9 +ROM:C867 .byte 0x80 +ROM:C868 .byte 0xEB +ROM:C869 .byte 0xF1 +ROM:C86A .byte 0x4D ; M +ROM:C86B .byte 0xFF +ROM:C86C .byte 0x90 +ROM:C86D .byte 0xFD +ROM:C86E .byte 0xE2 +ROM:C86F .byte 0xE0 +ROM:C870 .byte 0x2F ; / +ROM:C871 .byte 0xF0 +ROM:C872 .byte 0x90 +ROM:C873 .byte 0xFD +ROM:C874 .byte 0xE1 +ROM:C875 .byte 0xE0 +ROM:C876 .byte 0x3E ; > +ROM:C877 .byte 0xF0 +ROM:C878 .byte 0x80 +ROM:C879 .byte 0x18 +ROM:C87A .byte 0xE4 +ROM:C87B .byte 0xD1 +ROM:C87C .byte 0xE2 +ROM:C87D .byte 0x90 +ROM:C87E .byte 0xFD +ROM:C87F .byte 0xE1 +ROM:C880 .byte 0x12 +ROM:C881 .byte 0x37 ; 7 +ROM:C882 .byte 0x58 ; X +ROM:C883 .byte 0xF1 +ROM:C884 .byte 0x83 +ROM:C885 .byte 0x50 ; P +ROM:C886 .byte 0xB +ROM:C887 .byte 0x12 +ROM:C888 .byte 0xD2 +ROM:C889 .byte 0x66 ; f +ROM:C88A .byte 0xD1 +ROM:C88B .byte 0xF0 +ROM:C88C .byte 0x70 ; p +ROM:C88D .byte 2 +ROM:C88E .byte 0xD1 +ROM:C88F .byte 0xE9 +ROM:C890 .byte 0x80 +ROM:C891 .byte 0xEB +ROM:C892 .byte 0x90 +ROM:C893 .byte 0xF7 +ROM:C894 .byte 0x1C +ROM:C895 .byte 0x12 +ROM:C896 .byte 0x26 ; & +ROM:C897 .byte 0x2C ; , +ROM:C898 .byte 0x90 +ROM:C899 .byte 0xFD +ROM:C89A .byte 0xE1 +ROM:C89B .byte 0x12 +ROM:C89C .byte 0x32 ; 2 +ROM:C89D .byte 0x97 +ROM:C89E .byte 0x12 +ROM:C89F .byte 0x32 ; 2 +ROM:C8A0 .byte 0x75 ; u +ROM:C8A1 .byte 0x12 +ROM:C8A2 .byte 0x2F ; / +ROM:C8A3 .byte 0x7B ; { +ROM:C8A4 .byte 0xF1 +ROM:C8A5 .byte 0x79 ; y +ROM:C8A6 .byte 0x12 +ROM:C8A7 .byte 0x26 ; & +ROM:C8A8 .byte 0x2C ; , +ROM:C8A9 .byte 0x90 +ROM:C8AA .byte 0xFD +ROM:C8AB .byte 0xE1 +ROM:C8AC .byte 0x12 +ROM:C8AD .byte 0x32 ; 2 +ROM:C8AE .byte 0x97 +ROM:C8AF .byte 0x12 +ROM:C8B0 .byte 0x32 ; 2 +ROM:C8B1 .byte 0x75 ; u +ROM:C8B2 .byte 0xFE +ROM:C8B3 .byte 0xED +ROM:C8B4 .byte 0x39 ; 9 +ROM:C8B5 .byte 0xFD +ROM:C8B6 .byte 0xEC +ROM:C8B7 .byte 0x38 ; 8 +ROM:C8B8 ; --------------------------------------------------------------------------- +ROM:C8B8 +ROM:C8B8 ROM_C8B8: ; CODE XREF: ROM_AD6A+146A↑j +ROM:C8B8 mov R4, A +ROM:C8B9 mov DPTR, #0xF718 +ROM:C8BC ajmp ROM_C988 +ROM:C8BE ; --------------------------------------------------------------------------- +ROM:C8BE +ROM:C8BE ROM_C8BE: ; CODE XREF: ROM_AD6A+19BB↑j +ROM:C8BE mov DPTR, #0xFDDA +ROM:C8C1 movx A, @DPTR +ROM:C8C2 jnb ACC1, ROM_C8E4 ; Accumulator +ROM:C8C5 mov DPTR, #0xFE0E +ROM:C8C8 lcall load_3_bytes_R1_R2_A +ROM:C8CB mov DPTR, #0xF94D +ROM:C8CE xch A, R1 +ROM:C8CF lcall Save_3_bytes_A_R2_R1 +ROM:C8D2 mov DPTR, #0xFDDF +ROM:C8D5 acall ROM_CF91 +ROM:C8D7 movx @DPTR, A +ROM:C8D8 mov DPTR, #0xFDE7 +ROM:C8DB lcall ROM_37C3 +ROM:C8DE mov R1, A +ROM:C8DF lcall ROM_78A9 +ROM:C8E2 sjmp ROM_C90E +ROM:C8E4 ; --------------------------------------------------------------------------- +ROM:C8E4 +ROM:C8E4 ROM_C8E4: ; CODE XREF: ROM_AD6A+1B58↑j +ROM:C8E4 clr A +ROM:C8E5 acall ROM_CEE2 +ROM:C8E7 +ROM:C8E7 ROM_C8E7: ; CODE XREF: ROM_AD6A:ROM_C90C↓j +ROM:C8E7 acall ROM_CF4D +ROM:C8E9 mov R7, A +ROM:C8EA mov DPTR, #0xF897 +ROM:C8ED lcall ROM_9B68 +ROM:C8F0 jnc ROM_C90E +ROM:C8F2 mov DPTR, #0xFDE7 +ROM:C8F5 lcall ROM_37C3 +ROM:C8F8 lcall ROM_7703 +ROM:C8FB mov R7, A +ROM:C8FC mov DPTR, #0xFE0E +ROM:C8FF lcall ROM_37C3 +ROM:C902 add A, R5 +ROM:C903 lcall ROM_741C +ROM:C906 acall ROM_CEF4 +ROM:C908 jnz ROM_C90C +ROM:C90A acall ROM_CEE9 +ROM:C90C +ROM:C90C ROM_C90C: ; CODE XREF: ROM_AD6A+1B9E↑j +ROM:C90C sjmp ROM_C8E7 +ROM:C90E ; --------------------------------------------------------------------------- +ROM:C90E +ROM:C90E ROM_C90E: ; CODE XREF: ROM_AD6A+1B78↑j +ROM:C90E ; ROM_AD6A+1B86↑j +ROM:C90E mov DPTR, #0xFDDF +ROM:C911 acall ROM_CF32 +ROM:C913 mov A, R7 +ROM:C914 orl A, R6 +ROM:C915 jz ROM_C924 +ROM:C917 mov DPTR, #0xFE01 +ROM:C91A lcall load_3_bytes_R1_R2_A +ROM:C91D mov DPTR, #0xFDE7 +ROM:C920 xch A, R1 +ROM:C921 lcall Save_3_bytes_A_R2_R1 +ROM:C924 +ROM:C924 ROM_C924: ; CODE XREF: ROM_AD6A+1BAB↑j +ROM:C924 mov DPTR, #0xFDE1 +ROM:C927 movx A, @DPTR +ROM:C928 jnz ROM_C92C +ROM:C92A inc DPTR +ROM:C92B movx A, @DPTR +ROM:C92C +ROM:C92C ROM_C92C: ; CODE XREF: ROM_AD6A+1BBE↑j +ROM:C92C jz ROM_C95F +ROM:C92E clr A +ROM:C92F acall ROM_CEE2 +ROM:C931 +ROM:C931 ROM_C931: ; CODE XREF: ROM_AD6A:ROM_C95B↓j +ROM:C931 mov DPTR, #0xFDE1 +ROM:C934 movx A, @DPTR +ROM:C935 mov R6, A +ROM:C936 inc DPTR +ROM:C937 movx A, @DPTR +ROM:C938 mov R7, A +ROM:C939 mov DPTR, #0xF897 +ROM:C93C lcall ROM_9B68 +ROM:C93F jnc ROM_C95D +ROM:C941 mov DPTR, #0xFDE7 +ROM:C944 lcall ROM_37C3 +ROM:C947 lcall ROM_7703 +ROM:C94A mov R7, A +ROM:C94B mov DPTR, #0xFE0E +ROM:C94E lcall ROM_37C3 +ROM:C951 add A, R5 +ROM:C952 lcall ROM_741C +ROM:C955 acall ROM_CEF4 +ROM:C957 jnz ROM_C95B +ROM:C959 acall ROM_CEE9 +ROM:C95B +ROM:C95B ROM_C95B: ; CODE XREF: ROM_AD6A+1BED↑j +ROM:C95B sjmp ROM_C931 +ROM:C95D ; --------------------------------------------------------------------------- +ROM:C95D +ROM:C95D ROM_C95D: ; CODE XREF: ROM_AD6A+1BD5↑j +ROM:C95D acall ROM_CF2F +ROM:C95F +ROM:C95F ROM_C95F: ; CODE XREF: ROM_AD6A:ROM_C92C↑j +ROM:C95F mov DPTR, #0xF71C +ROM:C962 lcall load_4_bytes_R4_R5_R6_A +ROM:C965 mov R7, A +ROM:C966 mov DPTR, #0xFDE3 +ROM:C969 lcall load_4_bytes_R0_R1_R2_R3 +ROM:C96C mov A, R7 +ROM:C96D add A, R3 +ROM:C96E lcall ROM_2F78 +ROM:C971 acall ROM_CF79 +ROM:C973 lcall load_4_bytes_R4_R5_R6_A +ROM:C976 mov R7, A +ROM:C977 mov DPTR, #0xFDE3 +ROM:C97A lcall load_4_bytes_R0_R1_R2_R3 +ROM:C97D mov A, R7 +ROM:C97E add A, R3 +ROM:C97F lcall ROM_2F78 +ROM:C982 lcall ROM_D2FE +ROM:C985 mov DPTR, #0xFDE3 +ROM:C988 +ROM:C988 ROM_C988: ; CODE XREF: ROM_AD6A+1B52↑j +ROM:C988 lcall save_4_bytes_R4_R7 +ROM:C98B ljmp ROM_BDAB +ROM:C98E ; --------------------------------------------------------------------------- +ROM:C98E +ROM:C98E ROM_C98E: ; CODE XREF: ROM_AD6A+3FD↑j +ROM:C98E ; ROM_AD6A+1483↑j +ROM:C98E lcall ROM_37C0 +ROM:C991 add A, #0x14 +ROM:C993 lcall ROM_87A6 +ROM:C996 mov A, R7 +ROM:C997 anl A, #1 +ROM:C999 mov R7, A +ROM:C99A mov A, R7 +ROM:C99B jnz ROM_C9A0 +ROM:C99D ljmp ROM_AE82 +ROM:C9A0 ; --------------------------------------------------------------------------- +ROM:C9A0 +ROM:C9A0 ROM_C9A0: ; CODE XREF: ROM_AD6A+1C31↑j +ROM:C9A0 acall ROM_CEFB +ROM:C9A2 anl A, #1 +ROM:C9A4 mov R7, A +ROM:C9A5 mov A, R7 +ROM:C9A6 jnz ROM_C9AA +ROM:C9A8 ajmp ROM_CAD0 +ROM:C9AA ; --------------------------------------------------------------------------- +ROM:C9AA +ROM:C9AA ROM_C9AA: ; CODE XREF: ROM_AD6A+1C3C↑j +ROM:C9AA acall ROM_CEDA +ROM:C9AC anl A, #7 +ROM:C9AE mov R7, A +ROM:C9AF clr A +ROM:C9B0 lcall ROM_2626 +ROM:C9B3 clr C +ROM:C9B4 lcall code_B1C +ROM:C9B7 jnc ROM_C9EC +ROM:C9B9 +ROM:C9B9 ROM_C9B9: ; CODE XREF: ROM_AD6A+1C80↓j +ROM:C9B9 acall ROM_CEA1 +ROM:C9BB acall ROM_CF21 +ROM:C9BD lcall load_4_bytes_R0_R1_R2_R3 +ROM:C9C0 push RAM_0 +ROM:C9C2 push RAM_1 +ROM:C9C4 acall ROM_CEDA +ROM:C9C6 mov R1, A +ROM:C9C7 mov DPTR, #0xF897 +ROM:C9CA lcall load_4_bytes_R4_R5_R6_A +ROM:C9CD acall ROM_CF40 +ROM:C9CF pop RAM_1 +ROM:C9D1 pop RAM_0 +ROM:C9D3 lcall code_1FD4 +ROM:C9D6 add A, #8 +ROM:C9D8 lcall ROM_3738 +ROM:C9DB acall ROM_CF0F +ROM:C9DD acall ROM_CEDA +ROM:C9DF anl A, #7 +ROM:C9E1 mov R7, A +ROM:C9E2 clr A +ROM:C9E3 lcall ROM_2626 +ROM:C9E6 clr C +ROM:C9E7 lcall code_B1C +ROM:C9EA jc ROM_C9B9 +ROM:C9EC +ROM:C9EC ROM_C9EC: ; CODE XREF: ROM_AD6A+1C4D↑j +ROM:C9EC mov DPTR, #0xFDF3 +ROM:C9EF lcall load_4_bytes_R4_R5_R6_A +ROM:C9F2 mov R7, A +ROM:C9F3 push RAM_4 +ROM:C9F5 push RAM_5 +ROM:C9F7 push RAM_6 +ROM:C9F9 push RAM_7 +ROM:C9FB acall ROM_CEDA +ROM:C9FD anl A, #7 +ROM:C9FF mov R7, A +ROM:CA00 clr A +ROM:CA01 mov R1, RAM_7 +ROM:CA03 pop RAM_7 +ROM:CA05 pop RAM_6 +ROM:CA07 pop RAM_5 +ROM:CA09 pop RAM_4 +ROM:CA0B mov R0, RAM_1 +ROM:CA0D lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:CA10 lcall code_1FE0 +ROM:CA13 mov R7, A +ROM:CA14 acall ROM_CEDA +ROM:CA16 anl A, #7 +ROM:CA18 mov R3, A +ROM:CA19 clr C +ROM:CA1A mov A, R7 +ROM:CA1B subb A, R3 +ROM:CA1C acall ROM_CFA0 +ROM:CA1E acall ROM_CF0F +ROM:CA20 clr A +ROM:CA21 mov R7, A +ROM:CA22 mov R6, A +ROM:CA23 mov R5, A +ROM:CA24 ajmp ROM_CACC +ROM:CA26 ; --------------------------------------------------------------------------- +ROM:CA26 +ROM:CA26 ROM_CA26: ; CODE XREF: ROM_AD6A+1D64↓j +ROM:CA26 lcall ROM_D4BE +ROM:CA29 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CA2C clr C +ROM:CA2D lcall code_B1C +ROM:CA30 jc ROM_CA34 +ROM:CA32 ajmp ROM_CAD0 +ROM:CA34 ; --------------------------------------------------------------------------- +ROM:CA34 +ROM:CA34 ROM_CA34: ; CODE XREF: ROM_AD6A+1CC6↑j +ROM:CA34 lcall load_4_bytes_R4_R5_R6_A_From_0xFDFD +ROM:CA37 mov R7, A +ROM:CA38 mov A, R4 +ROM:CA39 orl A, R5 +ROM:CA3A orl A, R6 +ROM:CA3B orl A, R7 +ROM:CA3C jz ROM_CA97 +ROM:CA3E clr A +ROM:CA3F mov R7, #8 +ROM:CA41 lcall ROM_2626 +ROM:CA44 clr C +ROM:CA45 lcall code_B1C +ROM:CA48 jnc ROM_CA7D +ROM:CA4A +ROM:CA4A ROM_CA4A: ; CODE XREF: ROM_AD6A+1D11↓j +ROM:CA4A acall ROM_CEA1 +ROM:CA4C mov DPTR, #0xF89B +ROM:CA4F acall ROM_CF24 +ROM:CA51 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CA54 push RAM_0 +ROM:CA56 push RAM_1 +ROM:CA58 acall ROM_CEDA +ROM:CA5A mov R1, A +ROM:CA5B mov DPTR, #0xF89B +ROM:CA5E lcall load_4_bytes_R4_R5_R6_A +ROM:CA61 acall ROM_CF40 +ROM:CA63 pop RAM_1 +ROM:CA65 pop RAM_0 +ROM:CA67 lcall code_1FD4 +ROM:CA6A add A, #8 +ROM:CA6C lcall ROM_3738 +ROM:CA6F acall ROM_CF0F +ROM:CA71 clr A +ROM:CA72 mov R7, #8 +ROM:CA74 lcall ROM_2626 +ROM:CA77 clr C +ROM:CA78 lcall code_B1C +ROM:CA7B jc ROM_CA4A +ROM:CA7D +ROM:CA7D ROM_CA7D: ; CODE XREF: ROM_AD6A+1CDE↑j +ROM:CA7D lcall ROM_D42C +ROM:CA80 mov R7, A +ROM:CA81 clr A +ROM:CA82 mov R6, A +ROM:CA83 mov R5, A +ROM:CA84 acall ROM_CF20 +ROM:CA86 lcall load_4_bytes_R4_R5_R6_A +ROM:CA89 lcall ROM_A91B +ROM:CA8C lcall code_1FE0 +ROM:CA8F acall ROM_CF9D +ROM:CA91 mov R4, A +ROM:CA92 mov DPTR, #0xFDFD +ROM:CA95 sjmp ROM_CA9C +ROM:CA97 ; --------------------------------------------------------------------------- +ROM:CA97 +ROM:CA97 ROM_CA97: ; CODE XREF: ROM_AD6A+1CD2↑j +ROM:CA97 acall ROM_CEA1 +ROM:CA99 mov DPTR, #0xF897 +ROM:CA9C +ROM:CA9C ROM_CA9C: ; CODE XREF: ROM_AD6A+1D2B↑j +ROM:CA9C lcall save_4_bytes_R4_R7 +ROM:CA9F lcall ROM_37C0 +ROM:CAA2 add A, #0x10 +ROM:CAA4 lcall ROM_87A6 +ROM:CAA7 mov R0, #8 +ROM:CAA9 lcall code_B40 +ROM:CAAC mov DPTR, #0xF897 +ROM:CAAF lcall load_4_bytes_R0_R1_R2_A +ROM:CAB2 orl A, R7 +ROM:CAB3 mov R7, A +ROM:CAB4 mov A, R2 +ROM:CAB5 orl A, R6 +ROM:CAB6 mov R6, A +ROM:CAB7 mov A, R1 +ROM:CAB8 orl A, R5 +ROM:CAB9 mov R5, A +ROM:CABA mov A, R0 +ROM:CABB orl A, R4 +ROM:CABC mov R4, A +ROM:CABD acall ROM_CF5D +ROM:CABF add A, #0x10 +ROM:CAC1 acall ROM_CECA +ROM:CAC3 mov DPTR, #0xFDE3 +ROM:CAC6 lcall load_4_bytes_R4_R5_R6_A +ROM:CAC9 lcall ROM_3736 +ROM:CACC +ROM:CACC ROM_CACC: ; CODE XREF: ROM_AD6A+1CBA↑j +ROM:CACC acall ROM_CFAD +ROM:CACE ajmp ROM_CA26 +ROM:CAD0 ; --------------------------------------------------------------------------- +ROM:CAD0 +ROM:CAD0 ROM_CAD0: ; CODE XREF: ROM_AD6A+1C3E↑j +ROM:CAD0 ; ROM_AD6A+1CC8↑j +ROM:CAD0 clr A +ROM:CAD1 mov DPTR, #0xFDEA +ROM:CAD4 movx @DPTR, A +ROM:CAD5 mov R7, #0x22 ; '"' +ROM:CAD7 mov R6, A +ROM:CAD8 mov R5, A +ROM:CAD9 mov R4, A +ROM:CADA +ROM:CADA ROM_CADA: ; CODE XREF: ROM_AD6A+454↑j +ROM:CADA ; ROM_AD6A+45F↑j ... +ROM:CADA lcall ROM_37C0 +ROM:CADD mov R1, A +ROM:CADE lcall code_B73 +ROM:CAE1 lcall load_4_bytes_R4_R5_R6_A_From_0xFDFD +ROM:CAE4 mov R7, A +ROM:CAE5 lcall ROM_37C0 +ROM:CAE8 add A, #4 +ROM:CAEA acall ROM_CECA +ROM:CAEC mov DPTR, #0xFDF3 +ROM:CAEF lcall load_4_bytes_R4_R5_R6_A +ROM:CAF2 mov R7, A +ROM:CAF3 lcall ROM_37C0 +ROM:CAF6 add A, #0x38 ; '8' +ROM:CAF8 acall ROM_CECA +ROM:CAFA mov DPTR, #0xFDEB +ROM:CAFD lcall load_4_bytes_R4_R5_R6_A +ROM:CB00 mov R7, A +ROM:CB01 lcall ROM_37C0 +ROM:CB04 add A, #0x20 ; ' ' +ROM:CB06 acall ROM_CECA +ROM:CB08 mov DPTR, #0xFDE3 +ROM:CB0B lcall load_4_bytes_R4_R5_R6_A +ROM:CB0E mov R7, A +ROM:CB0F lcall ROM_37C0 +ROM:CB12 add A, #0x24 ; '$' +ROM:CB14 acall ROM_CECA +ROM:CB16 mov DPTR, #0xFDEF +ROM:CB19 lcall load_4_bytes_R4_R5_R6_A +ROM:CB1C mov R7, A +ROM:CB1D lcall ROM_37C0 +ROM:CB20 add A, #0x28 ; '(' +ROM:CB22 acall ROM_CECA +ROM:CB24 mov DPTR, #0xF895 +ROM:CB27 movx A, @DPTR +ROM:CB28 mov R6, A +ROM:CB29 inc DPTR +ROM:CB2A movx A, @DPTR +ROM:CB2B mov R7, A +ROM:CB2C lcall ROM_37C0 +ROM:CB2F add A, #0x3C ; '<' +ROM:CB31 mov R1, A +ROM:CB32 clr A +ROM:CB33 addc A, R2 +ROM:CB34 mov R2, A +ROM:CB35 mov A, R6 +ROM:CB36 mov B, R7 ; B Register +ROM:CB38 lcall ROM_D1B3 +ROM:CB3B acall ROM_CF66 +ROM:CB3D mov DPTR, #0xFE0B +ROM:CB40 lcall ROM_D2B4 +ROM:CB43 mov R1, A +ROM:CB44 mov DPTR, #0xF883 +ROM:CB47 lcall ROM_37C3 +ROM:CB4A xch A, R1 +ROM:CB4B mov B, R7 ; B Register +ROM:CB4D lcall code_9D2 +ROM:CB50 mov DPTR, #0xFE01 +ROM:CB53 acall ROM_CF66 +ROM:CB55 mov DPTR, #0xFE0E +ROM:CB58 lcall ROM_D2B4 +ROM:CB5B mov R1, A +ROM:CB5C mov DPTR, #0xF88C +ROM:CB5F lcall ROM_37C3 +ROM:CB62 xch A, R1 +ROM:CB63 mov B, R7 ; B Register +ROM:CB65 lcall code_9D2 +ROM:CB68 acall ROM_CEFB +ROM:CB6A anl A, #9 +ROM:CB6C acall ROM_CF71 +ROM:CB6E jnz ROM_CB72 +ROM:CB70 ajmp ROM_CE9B +ROM:CB72 ; --------------------------------------------------------------------------- +ROM:CB72 +ROM:CB72 ROM_CB72: ; CODE XREF: ROM_AD6A+1E04↑j +ROM:CB72 mov DPTR, #0xFDEA +ROM:CB75 movx A, @DPTR +ROM:CB76 rlc A +ROM:CB77 subb A, ACC ; Accumulator +ROM:CB79 clr C +ROM:CB7A xrl A, #0x80 +ROM:CB7C subb A, #0x80 +ROM:CB7E jnc ROM_CB82 +ROM:CB80 ajmp ROM_CE9B +ROM:CB82 ; --------------------------------------------------------------------------- +ROM:CB82 +ROM:CB82 ROM_CB82: ; CODE XREF: ROM_AD6A+1E14↑j +ROM:CB82 mov DPTR, #0xFE01 +ROM:CB85 lcall load_3_bytes_R1_R2_A +ROM:CB88 mov DPTR, #0xF897 +ROM:CB8B xch A, R1 +ROM:CB8C lcall Save_3_bytes_A_R2_R1 +ROM:CB8F mov DPTR, #0xF88C +ROM:CB92 lcall ROM_37C3 +ROM:CB95 mov R1, A +ROM:CB96 lcall code_9A7 +ROM:CB99 mov R7, A +ROM:CB9A mov DPTR, #0xF89A +ROM:CB9D lcall ROM_D48B +ROM:CBA0 lcall ROM_37C0 +ROM:CBA3 add A, #0x1C +ROM:CBA5 lcall ROM_87A6 +ROM:CBA8 clr A +ROM:CBA9 mov R5, A +ROM:CBAA mov R4, A +ROM:CBAB acall ROM_CEBA +ROM:CBAD lcall code_B53 +ROM:CBB0 mov R0, #0x10 +ROM:CBB2 lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:CBB5 mov DPTR, #0xF8A4 +ROM:CBB8 lcall save_4_bytes_R4_R7 +ROM:CBBB mov DPTR, #0xF89A +ROM:CBBE movx A, @DPTR +ROM:CBBF mov R6, A +ROM:CBC0 inc DPTR +ROM:CBC1 movx A, @DPTR +ROM:CBC2 mov R7, A +ROM:CBC3 mov R4, #0x15 +ROM:CBC5 mov R5, #0xB0 +ROM:CBC7 lcall code_8F0 +ROM:CBCA mov DPTR, #0xF8A8 +ROM:CBCD mov A, R4 +ROM:CBCE movx @DPTR, A +ROM:CBCF inc DPTR +ROM:CBD0 mov A, R5 +ROM:CBD1 movx @DPTR, A +ROM:CBD2 +ROM:CBD2 ROM_CBD2: ; CODE XREF: ROM_AD6A+20E1↓j +ROM:CBD2 mov DPTR, #0xF89A +ROM:CBD5 movx A, @DPTR +ROM:CBD6 jnz ROM_CBDA +ROM:CBD8 inc DPTR +ROM:CBD9 movx A, @DPTR +ROM:CBDA +ROM:CBDA ROM_CBDA: ; CODE XREF: ROM_AD6A+1E6C↑j +ROM:CBDA jnz ROM_CBDE +ROM:CBDC ajmp ROM_CE4D +ROM:CBDE ; --------------------------------------------------------------------------- +ROM:CBDE +ROM:CBDE ROM_CBDE: ; CODE XREF: ROM_AD6A:ROM_CBDA↑j +ROM:CBDE clr A +ROM:CBDF mov R7, A +ROM:CBE0 mov R6, A +ROM:CBE1 mov R5, A +ROM:CBE2 acall ROM_CF46 +ROM:CBE4 +ROM:CBE4 ROM_CBE4: ; CODE XREF: ROM_AD6A+2058↓j +ROM:CBE4 mov DPTR, #0xF89C +ROM:CBE7 lcall load_4_bytes_R4_R5_R6_A +ROM:CBEA add A, #7 +ROM:CBEC mov R3, A +ROM:CBED clr A +ROM:CBEE addc A, R6 +ROM:CBEF mov R2, A +ROM:CBF0 clr A +ROM:CBF1 addc A, R5 +ROM:CBF2 mov R1, A +ROM:CBF3 clr A +ROM:CBF4 addc A, R4 +ROM:CBF5 mov R0, A +ROM:CBF6 mov DPTR, #0xF8A8 +ROM:CBF9 lcall ROM_3297 +ROM:CBFC mov R5, A +ROM:CBFD clr C +ROM:CBFE lcall code_B1C +ROM:CC01 jc ROM_CC05 +ROM:CC03 ajmp ROM_CDC4 +ROM:CC05 ; --------------------------------------------------------------------------- +ROM:CC05 +ROM:CC05 ROM_CC05: ; CODE XREF: ROM_AD6A+1E97↑j +ROM:CC05 mov DPTR, #0xF8A0 +ROM:CC08 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CC0B push RAM_1 +ROM:CC0D push RAM_2 +ROM:CC0F push RAM_3 +ROM:CC11 mov DPTR, #0xF897 +ROM:CC14 lcall ROM_37C3 +ROM:CC17 mov R1, A +ROM:CC18 acall ROM_CEB1 +ROM:CC1A pop RAM_3 +ROM:CC1C pop RAM_2 +ROM:CC1E pop RAM_1 +ROM:CC20 lcall ROM_2F76 +ROM:CC23 acall ROM_CEBA +ROM:CC25 mov DPTR, #0xF8A4 +ROM:CC28 lcall load_4_bytes_R4_R5_R6_A +ROM:CC2B mov R7, A +ROM:CC2C mov DPTR, #0xF8A0 +ROM:CC2F lcall load_4_bytes_R0_R1_R2_R3 +ROM:CC32 mov A, R7 +ROM:CC33 add A, R3 +ROM:CC34 lcall ROM_2F78 +ROM:CC37 acall ROM_CEC0 +ROM:CC39 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CC3C push RAM_1 +ROM:CC3E push RAM_2 +ROM:CC40 push RAM_3 +ROM:CC42 mov DPTR, #0xF897 +ROM:CC45 lcall ROM_37C3 +ROM:CC48 add A, #1 +ROM:CC4A mov R1, A +ROM:CC4B clr A +ROM:CC4C addc A, R2 +ROM:CC4D acall ROM_CEB0 +ROM:CC4F pop RAM_3 +ROM:CC51 pop RAM_2 +ROM:CC53 pop RAM_1 +ROM:CC55 lcall ROM_2F76 +ROM:CC58 acall ROM_CEBA +ROM:CC5A mov DPTR, #0xF8A4 +ROM:CC5D lcall load_4_bytes_R4_R5_R6_A +ROM:CC60 mov R7, A +ROM:CC61 mov DPTR, #0xF8A0 +ROM:CC64 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CC67 mov A, R7 +ROM:CC68 add A, R3 +ROM:CC69 lcall ROM_2F78 +ROM:CC6C acall ROM_CEC0 +ROM:CC6E lcall load_4_bytes_R0_R1_R2_R3 +ROM:CC71 push RAM_1 +ROM:CC73 push RAM_2 +ROM:CC75 push RAM_3 +ROM:CC77 mov DPTR, #0xF897 +ROM:CC7A lcall ROM_37C3 +ROM:CC7D add A, #2 +ROM:CC7F mov R1, A +ROM:CC80 clr A +ROM:CC81 addc A, R2 +ROM:CC82 acall ROM_CEB0 +ROM:CC84 pop RAM_3 +ROM:CC86 pop RAM_2 +ROM:CC88 pop RAM_1 +ROM:CC8A lcall ROM_2F76 +ROM:CC8D acall ROM_CEBA +ROM:CC8F mov DPTR, #0xF8A4 +ROM:CC92 lcall load_4_bytes_R4_R5_R6_A +ROM:CC95 mov R7, A +ROM:CC96 mov DPTR, #0xF8A0 +ROM:CC99 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CC9C mov A, R7 +ROM:CC9D add A, R3 +ROM:CC9E lcall ROM_2F78 +ROM:CCA1 acall ROM_CEC0 +ROM:CCA3 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CCA6 push RAM_1 +ROM:CCA8 push RAM_2 +ROM:CCAA push RAM_3 +ROM:CCAC mov DPTR, #0xF897 +ROM:CCAF lcall ROM_37C3 +ROM:CCB2 add A, #3 +ROM:CCB4 mov R1, A +ROM:CCB5 clr A +ROM:CCB6 addc A, R2 +ROM:CCB7 acall ROM_CEB0 +ROM:CCB9 pop RAM_3 +ROM:CCBB pop RAM_2 +ROM:CCBD pop RAM_1 +ROM:CCBF lcall ROM_2F76 +ROM:CCC2 acall ROM_CEBA +ROM:CCC4 mov DPTR, #0xF8A4 +ROM:CCC7 lcall load_4_bytes_R4_R5_R6_A +ROM:CCCA mov R7, A +ROM:CCCB mov DPTR, #0xF8A0 +ROM:CCCE lcall load_4_bytes_R0_R1_R2_R3 +ROM:CCD1 mov A, R7 +ROM:CCD2 add A, R3 +ROM:CCD3 lcall ROM_2F78 +ROM:CCD6 acall ROM_CEC0 +ROM:CCD8 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CCDB push RAM_1 +ROM:CCDD push RAM_2 +ROM:CCDF push RAM_3 +ROM:CCE1 mov DPTR, #0xF897 +ROM:CCE4 lcall ROM_37C3 +ROM:CCE7 add A, #4 +ROM:CCE9 mov R1, A +ROM:CCEA clr A +ROM:CCEB addc A, R2 +ROM:CCEC acall ROM_CEB0 +ROM:CCEE pop RAM_3 +ROM:CCF0 pop RAM_2 +ROM:CCF2 pop RAM_1 +ROM:CCF4 lcall ROM_2F76 +ROM:CCF7 acall ROM_CEBA +ROM:CCF9 mov DPTR, #0xF8A4 +ROM:CCFC lcall load_4_bytes_R4_R5_R6_A +ROM:CCFF mov R7, A +ROM:CD00 mov DPTR, #0xF8A0 +ROM:CD03 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CD06 mov A, R7 +ROM:CD07 add A, R3 +ROM:CD08 lcall ROM_2F78 +ROM:CD0B acall ROM_CEC0 +ROM:CD0D lcall load_4_bytes_R0_R1_R2_R3 +ROM:CD10 push RAM_1 +ROM:CD12 push RAM_2 +ROM:CD14 push RAM_3 +ROM:CD16 mov DPTR, #0xF897 +ROM:CD19 lcall ROM_37C3 +ROM:CD1C add A, #5 +ROM:CD1E mov R1, A +ROM:CD1F clr A +ROM:CD20 addc A, R2 +ROM:CD21 acall ROM_CEB0 +ROM:CD23 pop RAM_3 +ROM:CD25 pop RAM_2 +ROM:CD27 pop RAM_1 +ROM:CD29 lcall ROM_2F76 +ROM:CD2C acall ROM_CEBA +ROM:CD2E mov DPTR, #0xF8A4 +ROM:CD31 lcall load_4_bytes_R4_R5_R6_A +ROM:CD34 mov R7, A +ROM:CD35 mov DPTR, #0xF8A0 +ROM:CD38 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CD3B mov A, R7 +ROM:CD3C add A, R3 +ROM:CD3D lcall ROM_2F78 +ROM:CD40 acall ROM_CEC0 +ROM:CD42 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CD45 push RAM_1 +ROM:CD47 push RAM_2 +ROM:CD49 push RAM_3 +ROM:CD4B mov DPTR, #0xF897 +ROM:CD4E lcall ROM_37C3 +ROM:CD51 add A, #6 +ROM:CD53 mov R1, A +ROM:CD54 clr A +ROM:CD55 addc A, R2 +ROM:CD56 acall ROM_CEB0 +ROM:CD58 pop RAM_3 +ROM:CD5A pop RAM_2 +ROM:CD5C pop RAM_1 +ROM:CD5E lcall ROM_2F76 +ROM:CD61 acall ROM_CEBA +ROM:CD63 mov DPTR, #0xF8A4 +ROM:CD66 lcall load_4_bytes_R4_R5_R6_A +ROM:CD69 mov R7, A +ROM:CD6A mov DPTR, #0xF8A0 +ROM:CD6D lcall load_4_bytes_R0_R1_R2_R3 +ROM:CD70 mov A, R7 +ROM:CD71 add A, R3 +ROM:CD72 lcall ROM_2F78 +ROM:CD75 acall ROM_CEC0 +ROM:CD77 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CD7A push RAM_1 +ROM:CD7C push RAM_2 +ROM:CD7E push RAM_3 +ROM:CD80 mov DPTR, #0xF897 +ROM:CD83 lcall ROM_37C3 +ROM:CD86 add A, #7 +ROM:CD88 mov R1, A +ROM:CD89 clr A +ROM:CD8A addc A, R2 +ROM:CD8B acall ROM_CEB0 +ROM:CD8D pop RAM_3 +ROM:CD8F pop RAM_2 +ROM:CD91 pop RAM_1 +ROM:CD93 lcall ROM_2F76 +ROM:CD96 acall ROM_CEBA +ROM:CD98 mov DPTR, #0xF8A4 +ROM:CD9B lcall load_4_bytes_R4_R5_R6_A +ROM:CD9E mov R7, A +ROM:CD9F mov DPTR, #0xF8A0 +ROM:CDA2 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CDA5 mov A, R7 +ROM:CDA6 add A, R3 +ROM:CDA7 lcall ROM_2F78 +ROM:CDAA acall ROM_CF55 +ROM:CDAC lcall load_4_bytes_R4_R5_R6_A +ROM:CDAF add A, #8 +ROM:CDB1 lcall ROM_3738 +ROM:CDB4 mov R4, A +ROM:CDB5 mov DPTR, #0xF89C +ROM:CDB8 lcall ROM_3657 +ROM:CDBB clr A +ROM:CDBC mov B, #8 ; B Register +ROM:CDBF lcall code_97B +ROM:CDC2 ajmp ROM_CBE4 +ROM:CDC4 ; --------------------------------------------------------------------------- +ROM:CDC4 +ROM:CDC4 ROM_CDC4: ; CODE XREF: ROM_AD6A+1E99↑j +ROM:CDC4 ; ROM_AD6A+20A9↓j +ROM:CDC4 mov DPTR, #0xF8A8 +ROM:CDC7 lcall ROM_3297 +ROM:CDCA mov R5, A +ROM:CDCB mov DPTR, #0xF89C +ROM:CDCE lcall load_4_bytes_R0_R1_R2_R3 +ROM:CDD1 clr C +ROM:CDD2 lcall code_B1C +ROM:CDD5 jnc ROM_CE15 +ROM:CDD7 mov DPTR, #0xF8A0 +ROM:CDDA lcall load_4_bytes_R0_R1_R2_R3 +ROM:CDDD push RAM_0 +ROM:CDDF push RAM_1 +ROM:CDE1 push RAM_2 +ROM:CDE3 push RAM_3 +ROM:CDE5 mov DPTR, #0xF897 +ROM:CDE8 acall ROM_CEA4 +ROM:CDEA pop RAM_3 +ROM:CDEC pop RAM_2 +ROM:CDEE pop RAM_1 +ROM:CDF0 pop RAM_0 +ROM:CDF2 lcall ROM_2F76 +ROM:CDF5 acall ROM_CEBA +ROM:CDF7 mov DPTR, #0xF8A4 +ROM:CDFA lcall load_4_bytes_R4_R5_R6_A +ROM:CDFD mov R7, A +ROM:CDFE mov DPTR, #0xF8A0 +ROM:CE01 lcall load_4_bytes_R0_R1_R2_R3 +ROM:CE04 mov A, R7 +ROM:CE05 add A, R3 +ROM:CE06 lcall ROM_2F78 +ROM:CE09 acall ROM_CF55 +ROM:CE0B lcall load_4_bytes_R4_R5_R6_A +ROM:CE0E lcall ROM_3736 +ROM:CE11 acall ROM_CF46 +ROM:CE13 sjmp ROM_CDC4 +ROM:CE15 ; --------------------------------------------------------------------------- +ROM:CE15 +ROM:CE15 ROM_CE15: ; CODE XREF: ROM_AD6A+206B↑j +ROM:CE15 mov DPTR, #0xF8A0 +ROM:CE18 lcall load_4_bytes_R4_R5_R6_A +ROM:CE1B lcall ROM_D36C +ROM:CE1E acall ROM_CEBA +ROM:CE20 mov DPTR, #0xF8A4 +ROM:CE23 lcall load_4_bytes_R4_R5_R6_A +ROM:CE26 lcall ROM_D36C +ROM:CE29 mov DPTR, #0xF8A4 +ROM:CE2C lcall save_4_bytes_R4_R7 +ROM:CE2F mov DPTR, #0xF8A8 +ROM:CE32 lcall ROM_3758 +ROM:CE35 mov DPTR, #0xF89B +ROM:CE38 movx A, @DPTR +ROM:CE39 subb A, R7 +ROM:CE3A movx @DPTR, A +ROM:CE3B mov DPTR, #0xF89A +ROM:CE3E movx A, @DPTR +ROM:CE3F subb A, R6 +ROM:CE40 movx @DPTR, A +ROM:CE41 mov DPTR, #0xF8A8 +ROM:CE44 mov A, #0x15 +ROM:CE46 movx @DPTR, A +ROM:CE47 inc DPTR +ROM:CE48 mov A, #0xB0 +ROM:CE4A movx @DPTR, A +ROM:CE4B ajmp ROM_CBD2 +ROM:CE4D ; --------------------------------------------------------------------------- +ROM:CE4D +ROM:CE4D ROM_CE4D: ; CODE XREF: ROM_AD6A+1E72↑j +ROM:CE4D mov DPTR, #0xF8A4 +ROM:CE50 lcall load_4_bytes_R4_R5_R6_A +ROM:CE53 mov R7, A +ROM:CE54 mov R0, #0x10 +ROM:CE56 lcall code_B40 +ROM:CE59 mov DPTR, #0xF8A0 +ROM:CE5C lcall load_4_bytes_R0_R1_R2_A +ROM:CE5F add A, R7 +ROM:CE60 mov R7, A +ROM:CE61 mov A, R2 +ROM:CE62 addc A, R6 +ROM:CE63 lcall ROM_8F67 +ROM:CE66 lcall ROM_37C0 +ROM:CE69 add A, #0x1C +ROM:CE6B acall ROM_CECA +ROM:CE6D mov DPTR, #0xFDEA +ROM:CE70 movx A, @DPTR +ROM:CE71 mov R7, A +ROM:CE72 rlc A +ROM:CE73 subb A, ACC ; Accumulator +ROM:CE75 mov R6, A +ROM:CE76 mov A, R7 +ROM:CE77 orl A, R6 +ROM:CE78 jnz ROM_CE9B +ROM:CE7A acall ROM_CEFB +ROM:CE7C acall ROM_CF6F +ROM:CE7E jz ROM_CE9B +ROM:CE80 inc DPTR +ROM:CE81 lcall ROM_37C3 +ROM:CE84 add A, #0x10 +ROM:CE86 lcall ROM_87A6 +ROM:CE89 acall ROM_CF5D +ROM:CE8B add A, #0x1C +ROM:CE8D acall ROM_CFB4 +ROM:CE8F clr C +ROM:CE90 lcall code_B1C +ROM:CE93 jz ROM_CE9B +ROM:CE95 mov DPTR, #0xFDEA +ROM:CE98 mov A, #0xFE +ROM:CE9A movx @DPTR, A +ROM:CE9B +ROM:CE9B ROM_CE9B: ; CODE XREF: ROM_AD6A+1E06↑j +ROM:CE9B ; ROM_AD6A+1E16↑j ... +ROM:CE9B mov DPTR, #0xFDEA +ROM:CE9E movx A, @DPTR +ROM:CE9F mov R7, A +ROM:CEA0 ret +ROM:CEA0 ; End of function ROM_AD6A +ROM:CEA0 +ROM:CEA1 +ROM:CEA1 ; =============== S U B R O U T I N E ======================================= +ROM:CEA1 +ROM:CEA1 +ROM:CEA1 ROM_CEA1: ; CODE XREF: ROM_AD6A+49↑p +ROM:CEA1 ; ROM_AD6A:ROM_AE8E↑p ... +ROM:CEA1 mov DPTR, #0xFE0B +ROM:CEA1 ; End of function ROM_CEA1 +ROM:CEA1 +ROM:CEA4 +ROM:CEA4 ; =============== S U B R O U T I N E ======================================= +ROM:CEA4 +ROM:CEA4 +ROM:CEA4 ROM_CEA4: ; CODE XREF: ROM_AD6A+207E↑p +ROM:CEA4 movx A, @DPTR +ROM:CEA5 mov R3, A +ROM:CEA6 inc DPTR +ROM:CEA7 clr A +ROM:CEA8 mov B, #1 ; B Register +ROM:CEAB lcall code_991 +ROM:CEAE mov R1, B ; B Register +ROM:CEAE ; End of function ROM_CEA4 +ROM:CEAE +ROM:CEB0 +ROM:CEB0 ; =============== S U B R O U T I N E ======================================= +ROM:CEB0 +ROM:CEB0 +ROM:CEB0 ROM_CEB0: ; CODE XREF: ROM_AD6A+D6A↑p +ROM:CEB0 ; ROM_AD6A+115C↑p ... +ROM:CEB0 mov R2, A +ROM:CEB0 ; End of function ROM_CEB0 +ROM:CEB0 +ROM:CEB1 +ROM:CEB1 ; =============== S U B R O U T I N E ======================================= +ROM:CEB1 +ROM:CEB1 +ROM:CEB1 ROM_CEB1: ; CODE XREF: ROM_AD6A+9DB↑p +ROM:CEB1 ; ROM_AD6A+D7E↑p ... +ROM:CEB1 lcall code_891 +ROM:CEB4 mov R7, A +ROM:CEB5 clr A +ROM:CEB6 mov R4, A +ROM:CEB7 mov R5, A +ROM:CEB8 mov R6, A +ROM:CEB9 ret +ROM:CEB9 ; End of function ROM_CEB1 +ROM:CEB9 +ROM:CEBA +ROM:CEBA ; =============== S U B R O U T I N E ======================================= +ROM:CEBA +ROM:CEBA +ROM:CEBA ROM_CEBA: ; CODE XREF: eeprom_related_ROM_3605↑p +ROM:CEBA ; ROM_AD6A+1E41↑p ... +ROM:CEBA mov DPTR, #0xF8A0 +ROM:CEBD ljmp save_4_bytes_R4_R7 +ROM:CEBD ; End of function ROM_CEBA +ROM:CEBD +ROM:CEC0 +ROM:CEC0 ; =============== S U B R O U T I N E ======================================= +ROM:CEC0 +ROM:CEC0 +ROM:CEC0 ROM_CEC0: ; CODE XREF: ROM_AD6A+1ECD↑p +ROM:CEC0 ; ROM_AD6A+1F02↑p ... +ROM:CEC0 inc DPTR +ROM:CEC1 lcall save_4_bytes_R4_R7 +ROM:CEC4 mov DPTR, #0xF8A0 +ROM:CEC7 ret +ROM:CEC7 ; End of function ROM_CEC0 +ROM:CEC7 +ROM:CEC8 +ROM:CEC8 ; =============== S U B R O U T I N E ======================================= +ROM:CEC8 +ROM:CEC8 +ROM:CEC8 ROM_CEC8: ; CODE XREF: ROM_AD6A+46↑p +ROM:CEC8 add A, #8 +ROM:CEC8 ; End of function ROM_CEC8 +ROM:CEC8 +ROM:CECA +ROM:CECA ; =============== S U B R O U T I N E ======================================= +ROM:CECA +ROM:CECA +ROM:CECA ROM_CECA: ; CODE XREF: ROM_AD6A+21↑p +ROM:CECA ; ROM_AD6A+2C↑p ... +ROM:CECA mov R1, A +ROM:CECB clr A +ROM:CECC addc A, R2 +ROM:CECD mov R2, A +ROM:CECE ljmp code_B73 +ROM:CECE ; End of function ROM_CECA +ROM:CECE +ROM:CED1 +ROM:CED1 ; =============== S U B R O U T I N E ======================================= +ROM:CED1 +ROM:CED1 +ROM:CED1 ROM_CED1: ; CODE XREF: ROM_AD6A+12A8↑p +ROM:CED1 ; ROM_AD6A+137C↑p +ROM:CED1 mov A, R3 +ROM:CED2 orl A, R7 +ROM:CED3 mov R7, A +ROM:CED4 mov A, R2 +ROM:CED5 mov R6, A +ROM:CED6 mov A, R1 +ROM:CED7 mov R5, A +ROM:CED8 mov A, R0 +ROM:CED9 mov R4, A +ROM:CED9 ; End of function ROM_CED1 +ROM:CED9 +ROM:CEDA +ROM:CEDA ; =============== S U B R O U T I N E ======================================= +ROM:CEDA +ROM:CEDA +ROM:CEDA ROM_CEDA: ; CODE XREF: ROM_AD6A+131↑p +ROM:CEDA ; ROM_AD6A:ROM_AF0B↑p ... +ROM:CEDA mov DPTR, #0xFDFD +ROM:CEDD inc DPTR +ROM:CEDE inc DPTR +ROM:CEDF inc DPTR +ROM:CEE0 movx A, @DPTR +ROM:CEE1 ret +ROM:CEE1 ; End of function ROM_CEDA +ROM:CEE1 +ROM:CEE2 +ROM:CEE2 ; =============== S U B R O U T I N E ======================================= +ROM:CEE2 +ROM:CEE2 +ROM:CEE2 ROM_CEE2: ; CODE XREF: ROM_AD6A+991↑p +ROM:CEE2 ; ROM_AD6A+19BF↑p ... +ROM:CEE2 mov DPTR, #0xF897 +ROM:CEE5 movx @DPTR, A +ROM:CEE6 inc DPTR +ROM:CEE7 movx @DPTR, A +ROM:CEE8 ret +ROM:CEE8 ; End of function ROM_CEE2 +ROM:CEE8 +ROM:CEE9 +ROM:CEE9 ; =============== S U B R O U T I N E ======================================= +ROM:CEE9 +ROM:CEE9 +ROM:CEE9 ROM_CEE9: ; CODE XREF: ROM_AD6A+19FC↑p +ROM:CEE9 ; ROM_AD6A+1BA0↑p ... +ROM:CEE9 mov DPTR, #0xF897 +ROM:CEEC movx A, @DPTR +ROM:CEED inc A +ROM:CEEE movx @DPTR, A +ROM:CEEF ret +ROM:CEEF ; End of function ROM_CEE9 +ROM:CEEF +ROM:CEF0 +ROM:CEF0 ; =============== S U B R O U T I N E ======================================= +ROM:CEF0 +ROM:CEF0 +ROM:CEF0 ROM_CEF0: ; CODE XREF: ROM_AD6A+19F7↑p +ROM:CEF0 mov A, R7 +ROM:CEF1 lcall code_8CC +ROM:CEF1 ; End of function ROM_CEF0 +ROM:CEF1 +ROM:CEF4 +ROM:CEF4 ; =============== S U B R O U T I N E ======================================= +ROM:CEF4 +ROM:CEF4 +ROM:CEF4 ROM_CEF4: ; CODE XREF: ROM_AD6A+1B9C↑p +ROM:CEF4 ; ROM_AD6A+1BEB↑p +ROM:CEF4 mov DPTR, #0xF898 +ROM:CEF7 movx A, @DPTR +ROM:CEF8 inc A +ROM:CEF9 movx @DPTR, A +ROM:CEFA ret +ROM:CEFA ; End of function ROM_CEF4 +ROM:CEFA +ROM:CEFB +ROM:CEFB ; =============== S U B R O U T I N E ======================================= +ROM:CEFB +ROM:CEFB +ROM:CEFB ROM_CEFB: ; CODE XREF: ROM_ABBC+81↑p +ROM:CEFB ; ROM_AD6A+2F↑p ... +ROM:CEFB mov DPTR, #0xFE04 +ROM:CEFE inc DPTR +ROM:CEFF inc DPTR +ROM:CF00 inc DPTR +ROM:CF01 movx A, @DPTR +ROM:CF02 ret +ROM:CF02 ; End of function ROM_CEFB +ROM:CF02 +ROM:CF03 +ROM:CF03 ; =============== S U B R O U T I N E ======================================= +ROM:CF03 +ROM:CF03 +ROM:CF03 ROM_CF03: ; CODE XREF: ROM_AD6A+6EF↑p +ROM:CF03 ; ROM_AD6A+E4E↑p ... +ROM:CF03 clr C +ROM:CF04 mov A, R7 +ROM:CF05 subb A, R3 +ROM:CF06 mov R7, A +ROM:CF07 mov A, R6 +ROM:CF08 subb A, R2 +ROM:CF09 mov R6, A +ROM:CF0A mov A, R5 +ROM:CF0B subb A, R1 +ROM:CF0C mov R5, A +ROM:CF0D mov A, R4 +ROM:CF0E subb A, R0 +ROM:CF0E ; End of function ROM_CF03 +ROM:CF0E +ROM:CF0F +ROM:CF0F ; =============== S U B R O U T I N E ======================================= +ROM:CF0F +ROM:CF0F +ROM:CF0F ROM_CF0F: ; CODE XREF: ROM_AD6A+B↑p +ROM:CF0F ; ROM_AD6A+14A↑p ... +ROM:CF0F mov R4, A +ROM:CF0F ; End of function ROM_CF0F +ROM:CF0F +ROM:CF10 +ROM:CF10 ; =============== S U B R O U T I N E ======================================= +ROM:CF10 +ROM:CF10 +ROM:CF10 ROM_CF10: ; CODE XREF: ROM_ABBC+E6↑p +ROM:CF10 mov DPTR, #0xFDFD +ROM:CF13 ljmp save_4_bytes_R4_R7 +ROM:CF13 ; End of function ROM_CF10 +ROM:CF13 +ROM:CF16 +ROM:CF16 ; =============== S U B R O U T I N E ======================================= +ROM:CF16 +ROM:CF16 +ROM:CF16 ROM_CF16: ; CODE XREF: ROM_AD6A+1501↑p +ROM:CF16 ; ROM_AD6A+175B↑p +ROM:CF16 anl A, R7 +ROM:CF17 mov R7, A +ROM:CF18 mov A, R2 +ROM:CF19 anl A, R6 +ROM:CF1A mov R6, A +ROM:CF1B mov A, R1 +ROM:CF1C anl A, R5 +ROM:CF1D mov R5, A +ROM:CF1E mov A, R0 +ROM:CF1F anl A, R4 +ROM:CF1F ; End of function ROM_CF16 +ROM:CF1F +ROM:CF20 +ROM:CF20 ; =============== S U B R O U T I N E ======================================= +ROM:CF20 +ROM:CF20 +ROM:CF20 ROM_CF20: ; CODE XREF: ROM_AD6A+28D↑p +ROM:CF20 ; ROM_AD6A+7AF↑p ... +ROM:CF20 mov R4, A +ROM:CF20 ; End of function ROM_CF20 +ROM:CF20 +ROM:CF21 +ROM:CF21 ; =============== S U B R O U T I N E ======================================= +ROM:CF21 +ROM:CF21 +ROM:CF21 ROM_CF21: ; CODE XREF: ROM_AD6A+127↑p +ROM:CF21 ; ROM_AD6A+1B4↑p ... +ROM:CF21 mov DPTR, #0xF897 +ROM:CF21 ; End of function ROM_CF21 +ROM:CF21 +ROM:CF24 +ROM:CF24 ; =============== S U B R O U T I N E ======================================= +ROM:CF24 +ROM:CF24 +ROM:CF24 ROM_CF24: ; CODE XREF: ROM_AD6A+254↑p +ROM:CF24 ; ROM_AD6A+38A↑p ... +ROM:CF24 lcall save_4_bytes_R4_R7 +ROM:CF27 mov DPTR, #0xFDF3 +ROM:CF2A ret +ROM:CF2A ; End of function ROM_CF24 +ROM:CF2A +ROM:CF2B +ROM:CF2B ; =============== S U B R O U T I N E ======================================= +ROM:CF2B +ROM:CF2B +ROM:CF2B ROM_CF2B: ; CODE XREF: ROM_AD6A+19E0↑p +ROM:CF2B mov R1, A +ROM:CF2C lcall ROM_78A9 +ROM:CF2C ; End of function ROM_CF2B +ROM:CF2C +ROM:CF2F +ROM:CF2F ; =============== S U B R O U T I N E ======================================= +ROM:CF2F +ROM:CF2F +ROM:CF2F ROM_CF2F: ; CODE XREF: ROM_AD6A:ROM_C95D↑p +ROM:CF2F mov DPTR, #0xFDE1 +ROM:CF2F ; End of function ROM_CF2F +ROM:CF2F +ROM:CF32 +ROM:CF32 ; =============== S U B R O U T I N E ======================================= +ROM:CF32 +ROM:CF32 +ROM:CF32 ROM_CF32: ; CODE XREF: ROM_AD6A+1BA7↑p +ROM:CF32 movx A, @DPTR +ROM:CF33 mov R6, A +ROM:CF34 inc DPTR +ROM:CF35 movx A, @DPTR +ROM:CF36 mov R7, A +ROM:CF36 ; End of function ROM_CF32 +ROM:CF36 +ROM:CF37 +ROM:CF37 ; =============== S U B R O U T I N E ======================================= +ROM:CF37 +ROM:CF37 +ROM:CF37 ROM_CF37: ; CODE XREF: ROM_AD6A+4D1↑p +ROM:CF37 mov DPTR, #0xFE0F +ROM:CF37 ; End of function ROM_CF37 +ROM:CF37 +ROM:CF3A +ROM:CF3A ; =============== S U B R O U T I N E ======================================= +ROM:CF3A +ROM:CF3A +ROM:CF3A ROM_CF3A: ; CODE XREF: ROM_AD6A+4CE↑p +ROM:CF3A mov A, R6 +ROM:CF3B mov B, R7 ; B Register +ROM:CF3D ljmp code_97B +ROM:CF3D ; End of function ROM_CF3A +ROM:CF3D +ROM:CF40 +ROM:CF40 ; =============== S U B R O U T I N E ======================================= +ROM:CF40 +ROM:CF40 +ROM:CF40 ROM_CF40: ; CODE XREF: ROM_AD6A+13B↑p +ROM:CF40 ; ROM_AD6A+1C8↑p ... +ROM:CF40 mov R7, A +ROM:CF41 mov R0, RAM_1 +ROM:CF43 ljmp code_B40 +ROM:CF43 ; End of function ROM_CF40 +ROM:CF43 +ROM:CF46 +ROM:CF46 ; =============== S U B R O U T I N E ======================================= +ROM:CF46 +ROM:CF46 +ROM:CF46 ROM_CF46: ; CODE XREF: ROM_AD6A+1E78↑p +ROM:CF46 ; ROM_AD6A+20A7↑p +ROM:CF46 mov R4, A +ROM:CF47 mov DPTR, #0xF89C +ROM:CF4A ljmp save_4_bytes_R4_R7 +ROM:CF4A ; End of function ROM_CF46 +ROM:CF4A +ROM:CF4D +ROM:CF4D ; =============== S U B R O U T I N E ======================================= +ROM:CF4D +ROM:CF4D +ROM:CF4D ROM_CF4D: ; CODE XREF: ROM_AD6A+191C↑p +ROM:CF4D ; ROM_AD6A+194E↑p ... +ROM:CF4D mov DPTR, #0xFDDF +ROM:CF50 movx A, @DPTR +ROM:CF51 mov R6, A +ROM:CF52 inc DPTR +ROM:CF53 movx A, @DPTR +ROM:CF54 ret +ROM:CF54 ; End of function ROM_CF4D +ROM:CF54 +ROM:CF55 +ROM:CF55 ; =============== S U B R O U T I N E ======================================= +ROM:CF55 +ROM:CF55 +ROM:CF55 ROM_CF55: ; CODE XREF: ROM_AD6A+2040↑p +ROM:CF55 ; ROM_AD6A+209F↑p +ROM:CF55 inc DPTR +ROM:CF56 lcall save_4_bytes_R4_R7 +ROM:CF59 mov DPTR, #0xF89C +ROM:CF5C ret +ROM:CF5C ; End of function ROM_CF55 +ROM:CF5C +ROM:CF5D +ROM:CF5D ; =============== S U B R O U T I N E ======================================= +ROM:CF5D +ROM:CF5D +ROM:CF5D ROM_CF5D: ; CODE XREF: ROM_AD6A+8C↑p +ROM:CF5D ; ROM_AD6A+2DE↑p ... +ROM:CF5D mov DPTR, #0xFE08 +ROM:CF60 inc DPTR +ROM:CF61 movx A, @DPTR +ROM:CF62 mov R2, A +ROM:CF63 inc DPTR +ROM:CF64 movx A, @DPTR +ROM:CF65 ret +ROM:CF65 ; End of function ROM_CF5D +ROM:CF65 +ROM:CF66 +ROM:CF66 ; =============== S U B R O U T I N E ======================================= +ROM:CF66 +ROM:CF66 +ROM:CF66 ROM_CF66: ; CODE XREF: ROM_AD6A+488↑p +ROM:CF66 ; ROM_AD6A+1053↑p ... +ROM:CF66 inc DPTR +ROM:CF67 movx A, @DPTR +ROM:CF68 mov R2, A +ROM:CF69 inc DPTR +ROM:CF6A movx A, @DPTR +ROM:CF6B mov R6, RAM_2 +ROM:CF6D mov R7, A +ROM:CF6E ret +ROM:CF6E ; End of function ROM_CF66 +ROM:CF6E +ROM:CF6F +ROM:CF6F ; =============== S U B R O U T I N E ======================================= +ROM:CF6F +ROM:CF6F +ROM:CF6F ROM_CF6F: ; CODE XREF: ROM_AD6A+32↑p +ROM:CF6F ; ROM_AD6A+2112↑p +ROM:CF6F anl A, #1 +ROM:CF6F ; End of function ROM_CF6F +ROM:CF6F +ROM:CF71 +ROM:CF71 ; =============== S U B R O U T I N E ======================================= +ROM:CF71 +ROM:CF71 +ROM:CF71 ROM_CF71: ; CODE XREF: ROM_AD6A+87↑p +ROM:CF71 ; ROM_AD6A+447↑p ... +ROM:CF71 mov R7, A +ROM:CF72 clr A +ROM:CF73 mov R6, A +ROM:CF74 mov R5, A +ROM:CF75 mov R4, A +ROM:CF76 mov A, R7 +ROM:CF77 ret +ROM:CF77 ; End of function ROM_CF71 +ROM:CF77 +ROM:CF78 +ROM:CF78 ; =============== S U B R O U T I N E ======================================= +ROM:CF78 +ROM:CF78 +ROM:CF78 ROM_CF78: ; CODE XREF: ROM_AD6A+3D5↑p +ROM:CF78 ; ROM_AD6A+1262↑p ... +ROM:CF78 mov R4, A +ROM:CF78 ; End of function ROM_CF78 +ROM:CF78 +ROM:CF79 +ROM:CF79 ; =============== S U B R O U T I N E ======================================= +ROM:CF79 +ROM:CF79 +ROM:CF79 ROM_CF79: ; CODE XREF: ROM_AD6A+504↑p +ROM:CF79 ; ROM_AD6A+1A13↑p ... +ROM:CF79 mov DPTR, #0xF71C +ROM:CF7C lcall save_4_bytes_R4_R7 +ROM:CF7F mov DPTR, #0xF718 +ROM:CF82 ret +ROM:CF82 ; End of function ROM_CF79 +ROM:CF82 +ROM:CF83 +ROM:CF83 ; =============== S U B R O U T I N E ======================================= +ROM:CF83 +ROM:CF83 +ROM:CF83 ROM_CF83: ; CODE XREF: ROM_AD6A+19EF↑p +ROM:CF83 mov DPTR, #0xF898 +ROM:CF86 movx A, @DPTR +ROM:CF87 subb A, R7 +ROM:CF88 mov DPTR, #0xF897 +ROM:CF8B movx A, @DPTR +ROM:CF8C subb A, R6 +ROM:CF8D ret +ROM:CF8D ; End of function ROM_CF83 +ROM:CF8D +ROM:CF8E +ROM:CF8E ; =============== S U B R O U T I N E ======================================= +ROM:CF8E +ROM:CF8E +ROM:CF8E ROM_CF8E: ; CODE XREF: ROM_AD6A+19D6↑p +ROM:CF8E mov DPTR, #0xFDE1 +ROM:CF8E ; End of function ROM_CF8E +ROM:CF8E +ROM:CF91 +ROM:CF91 ; =============== S U B R O U T I N E ======================================= +ROM:CF91 +ROM:CF91 +ROM:CF91 ROM_CF91: ; CODE XREF: ROM_78C8+88↑p +ROM:CF91 ; ROM_AD6A+1B6B↑p +ROM:CF91 movx A, @DPTR +ROM:CF92 mov R7, A +ROM:CF93 inc DPTR +ROM:CF94 movx A, @DPTR +ROM:CF95 mov DPTR, #0xF950 +ROM:CF98 xch A, R7 +ROM:CF99 movx @DPTR, A +ROM:CF9A inc DPTR +ROM:CF9B mov A, R7 +ROM:CF9C ret +ROM:CF9C ; End of function ROM_CF91 +ROM:CF9C +ROM:CF9D +ROM:CF9D ; =============== S U B R O U T I N E ======================================= +ROM:CF9D +ROM:CF9D +ROM:CF9D ROM_CF9D: ; CODE XREF: ROM_AD6A+298↑p +ROM:CF9D ; ROM_AD6A+396↑p ... +ROM:CF9D clr C +ROM:CF9E subb A, #8 +ROM:CF9E ; End of function ROM_CF9D +ROM:CF9E +ROM:CFA0 +ROM:CFA0 ; =============== S U B R O U T I N E ======================================= +ROM:CFA0 +ROM:CFA0 +ROM:CFA0 ROM_CFA0: ; CODE XREF: ROM_AD6A+17D↑p +ROM:CFA0 ; ROM_AD6A+21C↑p ... +ROM:CFA0 mov R7, A +ROM:CFA1 mov A, R6 +ROM:CFA2 subb A, #0 +ROM:CFA2 ; End of function ROM_CFA0 +ROM:CFA2 +ROM:CFA4 +ROM:CFA4 ; =============== S U B R O U T I N E ======================================= +ROM:CFA4 +ROM:CFA4 +ROM:CFA4 ROM_CFA4: ; CODE XREF: ROM_AD6A+4EC↑p +ROM:CFA4 mov R6, A +ROM:CFA5 mov A, R5 +ROM:CFA6 subb A, #0 +ROM:CFA8 mov R5, A +ROM:CFA9 mov A, R4 +ROM:CFAA subb A, #0 +ROM:CFAC ret +ROM:CFAC ; End of function ROM_CFA4 +ROM:CFAC +ROM:CFAD +ROM:CFAD ; =============== S U B R O U T I N E ======================================= +ROM:CFAD +ROM:CFAD +ROM:CFAD ROM_CFAD: ; CODE XREF: ROM_AD6A+115↑p +ROM:CFAD ; ROM_AD6A:ROM_B03A↑p ... +ROM:CFAD mov R4, A +ROM:CFAD ; End of function ROM_CFAD +ROM:CFAD +ROM:CFAE +ROM:CFAE ; =============== S U B R O U T I N E ======================================= +ROM:CFAE +ROM:CFAE +ROM:CFAE ROM_CFAE: ; CODE XREF: ROM_ABBC+10A↑p +ROM:CFAE ; ROM_AD6A+AE↑p ... +ROM:CFAE mov DPTR, #0xFDE3 +ROM:CFB1 ljmp save_4_bytes_R4_R7 +ROM:CFB1 ; End of function ROM_CFAE +ROM:CFB1 +ROM:CFB4 +ROM:CFB4 ; =============== S U B R O U T I N E ======================================= +ROM:CFB4 +ROM:CFB4 +ROM:CFB4 ROM_CFB4: ; CODE XREF: ROM_AD6A+65↑p +ROM:CFB4 ; ROM_AD6A+2123↑p +ROM:CFB4 mov R1, A +ROM:CFB5 clr A +ROM:CFB6 addc A, R2 +ROM:CFB7 mov R2, A +ROM:CFB8 ljmp code_B8D +ROM:CFB8 ; End of function ROM_CFB4 +ROM:CFB8 +ROM:CFBB +ROM:CFBB ; =============== S U B R O U T I N E ======================================= +ROM:CFBB +ROM:CFBB +ROM:CFBB ROM_CFBB: ; CODE XREF: ROM_39E2+94↑p +ROM:CFBB mov DPTR, #0xF87D +ROM:CFBE lcall Save_3_bytes_R3_R2_R1 +ROM:CFC1 mov DPTR, #0xF887 +ROM:CFC4 mov A, #0xFF +ROM:CFC6 movx @DPTR, A +ROM:CFC7 clr A +ROM:CFC8 mov R7, #0x53 ; 'S' +ROM:CFCA mov R6, #1 +ROM:CFCC mov R5, A +ROM:CFCD mov R4, A +ROM:CFCE add A, R7 +ROM:CFCF mov R7, A +ROM:CFD0 mov A, R6 +ROM:CFD1 addc A, #3 +ROM:CFD3 mov R6, A +ROM:CFD4 mov A, R5 +ROM:CFD5 rlc A +ROM:CFD6 mov R5, A +ROM:CFD7 mov A, R4 +ROM:CFD8 rlc A +ROM:CFD9 mov R4, A +ROM:CFDA mov A, R7 +ROM:CFDB add A, #0x80 +ROM:CFDD mov R7, A +ROM:CFDE mov A, R6 +ROM:CFDF addc A, #4 +ROM:CFE1 lcall ROM_373B +ROM:CFE4 mov R4, A +ROM:CFE5 mov A, R7 +ROM:CFE6 add A, #0x80 +ROM:CFE8 lcall ROM_3738 +ROM:CFEB mov R4, A +ROM:CFEC mov A, R7 +ROM:CFED add A, #0x4C ; 'L' +ROM:CFEF lcall ROM_3738 +ROM:CFF2 mov R4, A +ROM:CFF3 mov A, R7 +ROM:CFF4 lcall ROM_3736 +ROM:CFF7 mov R4, A +ROM:CFF8 mov DPTR, #0xF883 +ROM:CFFB lcall load_4_bytes_R0_R1_R2_R3 +ROM:CFFE clr C +ROM:CFFF lcall code_B1C +ROM:D002 jnc ROM_D00A +ROM:D004 mov DPTR, #0xF887 +ROM:D007 movx A, @DPTR +ROM:D008 mov R7, A +ROM:D009 ret +ROM:D00A ; --------------------------------------------------------------------------- +ROM:D00A +ROM:D00A ROM_D00A: ; CODE XREF: ROM_CFBB+47↑j +ROM:D00A clr A +ROM:D00B mov DPTR, #0xF887 +ROM:D00E movx @DPTR, A +ROM:D00F mov DPTR, #0xF880 +ROM:D012 lcall ROM_37C3 +ROM:D015 mov R1, A +ROM:D016 push RAM_3 +ROM:D018 push RAM_2 +ROM:D01A push RAM_1 +ROM:D01C mov DPTR, #0xF87D +ROM:D01F lcall ROM_37C3 +ROM:D022 acall ROM_D1C4 +ROM:D024 lcall code_C1A +ROM:D027 mov DPTR, #0xF881 +ROM:D02A mov A, #1 +ROM:D02C mov B, #0x20 ; ' ' ; B Register +ROM:D02F acall ROM_D1A9 +ROM:D031 lcall ROM_37C3 +ROM:D034 mov R1, A +ROM:D035 push RAM_3 +ROM:D037 push RAM_2 +ROM:D039 push RAM_1 +ROM:D03B mov DPTR, #0xF87D +ROM:D03E lcall ROM_37C3 +ROM:D041 add A, #0x41 ; 'A' +ROM:D043 mov R1, A +ROM:D044 clr A +ROM:D045 addc A, R2 +ROM:D046 mov R2, A +ROM:D047 lcall code_C1A +ROM:D04A acall ROM_D1A1 +ROM:D04C lcall ROM_37C3 +ROM:D04F mov R1, A +ROM:D050 push RAM_3 +ROM:D052 push RAM_2 +ROM:D054 push RAM_1 +ROM:D056 mov DPTR, #0xF87D +ROM:D059 lcall ROM_37C3 +ROM:D05C add A, #0x44 ; 'D' +ROM:D05E mov R1, A +ROM:D05F clr A +ROM:D060 addc A, R2 +ROM:D061 mov R2, A +ROM:D062 lcall code_C1A +ROM:D065 mov DPTR, #0xF881 +ROM:D068 mov A, #4 +ROM:D06A acall ROM_D1BA +ROM:D06C lcall ROM_37C3 +ROM:D06F add A, #0x47 ; 'G' +ROM:D071 mov R1, A +ROM:D072 clr A +ROM:D073 addc A, R2 +ROM:D074 mov R2, A +ROM:D075 mov A, #1 +ROM:D077 mov B, #0x20 ; ' ' ; B Register +ROM:D07A acall ROM_D19A +ROM:D07C lcall ROM_37C3 +ROM:D07F add A, #0x49 ; 'I' +ROM:D081 acall ROM_D192 +ROM:D083 lcall ROM_37C3 +ROM:D086 add A, #0x4B ; 'K' +ROM:D088 mov R1, A +ROM:D089 clr A +ROM:D08A addc A, R2 +ROM:D08B mov R2, A +ROM:D08C mov A, #2 +ROM:D08E acall ROM_D1B0 +ROM:D090 lcall ROM_37C3 +ROM:D093 mov R1, A +ROM:D094 push RAM_3 +ROM:D096 push RAM_2 +ROM:D098 push RAM_1 +ROM:D09A mov DPTR, #0xF87D +ROM:D09D lcall ROM_37C3 +ROM:D0A0 acall ROM_D1CB +ROM:D0A2 lcall code_C1A +ROM:D0A5 mov DPTR, #0xF881 +ROM:D0A8 clr A +ROM:D0A9 mov B, #0x20 ; ' ' ; B Register +ROM:D0AC acall ROM_D1A9 +ROM:D0AE lcall ROM_37C3 +ROM:D0B1 mov R1, A +ROM:D0B2 push RAM_3 +ROM:D0B4 push RAM_2 +ROM:D0B6 push RAM_1 +ROM:D0B8 mov DPTR, #0xF87D +ROM:D0BB lcall ROM_37C3 +ROM:D0BE add A, #0x50 ; 'P' +ROM:D0C0 mov R1, A +ROM:D0C1 clr A +ROM:D0C2 addc A, R2 +ROM:D0C3 mov R2, A +ROM:D0C4 lcall code_C1A +ROM:D0C7 acall ROM_D1A1 +ROM:D0C9 lcall ROM_37C3 +ROM:D0CC mov R1, A +ROM:D0CD push RAM_3 +ROM:D0CF push RAM_2 +ROM:D0D1 push RAM_1 +ROM:D0D3 mov DPTR, #0xF87D +ROM:D0D6 lcall ROM_37C3 +ROM:D0D9 add A, #0x53 ; 'S' +ROM:D0DB mov R1, A +ROM:D0DC clr A +ROM:D0DD addc A, R2 +ROM:D0DE mov R2, A +ROM:D0DF lcall code_C1A +ROM:D0E2 mov DPTR, #0xF881 +ROM:D0E5 clr A +ROM:D0E6 acall ROM_D1BA +ROM:D0E8 lcall ROM_37C3 +ROM:D0EB add A, #0x56 ; 'V' +ROM:D0ED mov R1, A +ROM:D0EE clr A +ROM:D0EF addc A, R2 +ROM:D0F0 mov R2, A +ROM:D0F1 clr A +ROM:D0F2 mov B, #0x20 ; ' ' ; B Register +ROM:D0F5 acall ROM_D19A +ROM:D0F7 lcall ROM_37C3 +ROM:D0FA add A, #0x58 ; 'X' +ROM:D0FC acall ROM_D192 +ROM:D0FE lcall ROM_37C3 +ROM:D101 add A, #0x5A ; 'Z' +ROM:D103 mov R1, A +ROM:D104 clr A +ROM:D105 addc A, R2 +ROM:D106 mov R2, A +ROM:D107 clr A +ROM:D108 acall ROM_D1B0 +ROM:D10A lcall ROM_37C3 +ROM:D10D mov R1, A +ROM:D10E push RAM_3 +ROM:D110 push RAM_2 +ROM:D112 push RAM_1 +ROM:D114 mov DPTR, #0xF87D +ROM:D117 lcall ROM_37C3 +ROM:D11A acall ROM_D1D2 +ROM:D11C lcall code_C1A +ROM:D11F mov DPTR, #0xF881 +ROM:D122 clr A +ROM:D123 mov B, #0x13 ; B Register +ROM:D126 lcall code_97B +ROM:D129 mov DPTR, #0xF881 +ROM:D12C clr A +ROM:D12D mov B, #1 ; B Register +ROM:D130 acall ROM_D1A9 +ROM:D132 lcall ROM_37C3 +ROM:D135 mov R1, A +ROM:D136 push RAM_3 +ROM:D138 push RAM_2 +ROM:D13A push RAM_1 +ROM:D13C mov DPTR, #0xF87D +ROM:D13F lcall ROM_37C3 +ROM:D142 add A, #0x5F ; '_' +ROM:D144 mov R1, A +ROM:D145 clr A +ROM:D146 addc A, R2 +ROM:D147 mov R2, A +ROM:D148 lcall code_C1A +ROM:D14B acall ROM_D1A1 +ROM:D14D lcall ROM_37C3 +ROM:D150 mov R1, A +ROM:D151 push RAM_3 +ROM:D153 push RAM_2 +ROM:D155 push RAM_1 +ROM:D157 mov DPTR, #0xF87D +ROM:D15A lcall ROM_37C3 +ROM:D15D add A, #0x62 ; 'b' +ROM:D15F mov R1, A +ROM:D160 clr A +ROM:D161 addc A, R2 +ROM:D162 mov R2, A +ROM:D163 lcall code_C1A +ROM:D166 mov DPTR, #0xF87D +ROM:D169 lcall ROM_37C3 +ROM:D16C add A, #0x65 ; 'e' +ROM:D16E mov R1, A +ROM:D16F clr A +ROM:D170 addc A, R2 +ROM:D171 mov R2, A +ROM:D172 clr A +ROM:D173 mov B, #0x13 ; B Register +ROM:D176 acall ROM_D19A +ROM:D178 lcall ROM_37C3 +ROM:D17B add A, #0x67 ; 'g' +ROM:D17D acall ROM_D192 +ROM:D17F lcall ROM_37C3 +ROM:D182 add A, #0x69 ; 'i' +ROM:D184 mov R1, A +ROM:D185 clr A +ROM:D186 addc A, R2 +ROM:D187 mov R2, A +ROM:D188 clr A +ROM:D189 mov B, #0x26 ; '&' ; B Register +ROM:D18C lcall code_9D2 +ROM:D18F mov R7, #0 +ROM:D191 ret +ROM:D191 ; End of function ROM_CFBB +ROM:D191 +ROM:D192 +ROM:D192 ; =============== S U B R O U T I N E ======================================= +ROM:D192 +ROM:D192 +ROM:D192 ROM_D192: ; CODE XREF: ROM_CFBB+C6↑p +ROM:D192 ; ROM_CFBB+141↑p ... +ROM:D192 mov R1, A +ROM:D193 clr A +ROM:D194 addc A, R2 +ROM:D195 mov R2, A +ROM:D196 clr A +ROM:D197 mov B, #0x80 ; B Register +ROM:D197 ; End of function ROM_D192 +ROM:D197 +ROM:D19A +ROM:D19A ; =============== S U B R O U T I N E ======================================= +ROM:D19A +ROM:D19A +ROM:D19A ROM_D19A: ; CODE XREF: ROM_CFBB+BF↑p +ROM:D19A ; ROM_CFBB+13A↑p ... +ROM:D19A lcall code_9D2 +ROM:D19D mov DPTR, #0xF87D +ROM:D1A0 ret +ROM:D1A0 ; End of function ROM_D19A +ROM:D1A0 +ROM:D1A1 +ROM:D1A1 ; =============== S U B R O U T I N E ======================================= +ROM:D1A1 +ROM:D1A1 +ROM:D1A1 ROM_D1A1: ; CODE XREF: ROM_CFBB+8F↑p +ROM:D1A1 ; ROM_CFBB+10C↑p ... +ROM:D1A1 mov DPTR, #0xF881 +ROM:D1A4 mov A, #1 +ROM:D1A6 mov B, #0 ; B Register +ROM:D1A6 ; End of function ROM_D1A1 +ROM:D1A6 +ROM:D1A9 +ROM:D1A9 ; =============== S U B R O U T I N E ======================================= +ROM:D1A9 +ROM:D1A9 +ROM:D1A9 ROM_D1A9: ; CODE XREF: ROM_CFBB+74↑p +ROM:D1A9 ; ROM_CFBB+F1↑p ... +ROM:D1A9 lcall code_97B +ROM:D1AC mov DPTR, #0xF880 +ROM:D1AF ret +ROM:D1AF ; End of function ROM_D1A9 +ROM:D1AF +ROM:D1B0 +ROM:D1B0 ; =============== S U B R O U T I N E ======================================= +ROM:D1B0 +ROM:D1B0 +ROM:D1B0 ROM_D1B0: ; CODE XREF: ROM_CFBB+D3↑p +ROM:D1B0 ; ROM_CFBB+14D↑p +ROM:D1B0 mov B, #0x40 ; '@' ; B Register +ROM:D1B0 ; End of function ROM_D1B0 +ROM:D1B0 +ROM:D1B3 +ROM:D1B3 ; =============== S U B R O U T I N E ======================================= +ROM:D1B3 +ROM:D1B3 +ROM:D1B3 ROM_D1B3: ; CODE XREF: ROM_AD6A+1DCE↑p +ROM:D1B3 lcall code_9D2 +ROM:D1B6 mov DPTR, #0xF880 +ROM:D1B9 ret +ROM:D1B9 ; End of function ROM_D1B3 +ROM:D1B9 +ROM:D1BA +ROM:D1BA ; =============== S U B R O U T I N E ======================================= +ROM:D1BA +ROM:D1BA +ROM:D1BA ROM_D1BA: ; CODE XREF: ROM_CFBB+AF↑p +ROM:D1BA ; ROM_CFBB+12B↑p +ROM:D1BA mov B, #0x80 ; B Register +ROM:D1BD lcall code_97B +ROM:D1C0 mov DPTR, #0xF87D +ROM:D1C3 ret +ROM:D1C3 ; End of function ROM_D1BA +ROM:D1C3 +ROM:D1C4 +ROM:D1C4 ; =============== S U B R O U T I N E ======================================= +ROM:D1C4 +ROM:D1C4 +ROM:D1C4 ROM_D1C4: ; CODE XREF: ROM_AD6A+81C↑p +ROM:D1C4 ; ROM_AD6A+100A↑p ... +ROM:D1C4 add A, #0x3E ; '>' +ROM:D1C6 mov R1, A +ROM:D1C7 clr A +ROM:D1C8 addc A, R2 +ROM:D1C9 mov R2, A +ROM:D1CA ret +ROM:D1CA ; End of function ROM_D1C4 +ROM:D1CA +ROM:D1CB +ROM:D1CB ; =============== S U B R O U T I N E ======================================= +ROM:D1CB +ROM:D1CB +ROM:D1CB ROM_D1CB: ; CODE XREF: ROM_AD6A+102A↑p +ROM:D1CB ; ROM_AD6A+1545↑p ... +ROM:D1CB add A, #0x4D ; 'M' +ROM:D1CD mov R1, A +ROM:D1CE clr A +ROM:D1CF addc A, R2 +ROM:D1D0 mov R2, A +ROM:D1D1 ret +ROM:D1D1 ; End of function ROM_D1CB +ROM:D1D1 +ROM:D1D2 +ROM:D1D2 ; =============== S U B R O U T I N E ======================================= +ROM:D1D2 +ROM:D1D2 +ROM:D1D2 ROM_D1D2: ; CODE XREF: ROM_AD6A+C81↑p +ROM:D1D2 ; ROM_AD6A+DAE↑p ... +ROM:D1D2 add A, #0x5C ; '\' +ROM:D1D4 mov R1, A +ROM:D1D5 clr A +ROM:D1D6 addc A, R2 +ROM:D1D7 mov R2, A +ROM:D1D8 ret +ROM:D1D8 ; End of function ROM_D1D2 +ROM:D1D8 +ROM:D1D9 ; --------------------------------------------------------------------------- +ROM:D1D9 ; START OF FUNCTION CHUNK FOR ROM_436B +ROM:D1D9 +ROM:D1D9 ROM_D1D9: ; CODE XREF: ROM_436B:ROM_662F↑j +ROM:D1D9 lcall ROM_2FD1 +ROM:D1DC clr A +ROM:D1DD mov R7, A +ROM:D1DE lcall ROM_27D4 +ROM:D1E1 clr A +ROM:D1E2 mov DPTR, #0xFB94 +ROM:D1E5 movx @DPTR, A +ROM:D1E6 inc DPTR +ROM:D1E7 movx @DPTR, A +ROM:D1E8 mov DPTR, #0xFBA0 +ROM:D1EB movx A, @DPTR +ROM:D1EC jnz ROM_D20A +ROM:D1EE acall ROM_D22F +ROM:D1F0 mov R6, RAM_4 +ROM:D1F2 mov R7, RAM_5 +ROM:D1F4 mov A, R7 +ROM:D1F5 add A, #0xB8 +ROM:D1F7 mov R7, A +ROM:D1F8 mov A, R6 +ROM:D1F9 addc A, #0xB +ROM:D1FB lcall ROM_2C5F +ROM:D1FE mov R4, A +ROM:D1FF lcall ROM_67CF +ROM:D202 mov DPTR, #0xFDC6 +ROM:D205 mov A, #0xC +ROM:D207 movx @DPTR, A +ROM:D208 sjmp ROM_D225 +ROM:D20A ; --------------------------------------------------------------------------- +ROM:D20A +ROM:D20A ROM_D20A: ; CODE XREF: ROM_436B+8E81↑j +ROM:D20A clr A +ROM:D20B mov DPTR, #0xFDD1 +ROM:D20E movx @DPTR, A +ROM:D20F lcall ROM_2F47 +ROM:D212 lcall ROM_67CF +ROM:D215 mov DPTR, #0xF837 +ROM:D218 lcall load_4_bytes_R4_R5_R6_A +ROM:D21B mov R7, A +ROM:D21C clr A +ROM:D21D mov R3, #0x64 ; 'd' +ROM:D21F lcall ROM_2E5C +ROM:D222 lcall ROM_67CF +ROM:D225 +ROM:D225 ROM_D225: ; CODE XREF: ROM_436B+8E9D↑j +ROM:D225 mov DPTR, #0xF837 +ROM:D228 lcall load_4_bytes_R4_R5_R6_A +ROM:D22B mov R7, A +ROM:D22C ljmp ROM_2E66 +ROM:D22C ; END OF FUNCTION CHUNK FOR ROM_436B +ROM:D22F +ROM:D22F ; =============== S U B R O U T I N E ======================================= +ROM:D22F +ROM:D22F +ROM:D22F ROM_D22F: ; CODE XREF: ROM_281F+69↑p +ROM:D22F ; ROM_2916+107↑p ... +ROM:D22F lcall j_encryption_something_maybe_code_107D +ROM:D232 mov R4, #0x7F +ROM:D234 mov R5, #0xFF +ROM:D236 ljmp code_8F0 +ROM:D236 ; End of function ROM_D22F +ROM:D236 +ROM:D239 +ROM:D239 ; =============== S U B R O U T I N E ======================================= +ROM:D239 +ROM:D239 +ROM:D239 ROM_D239: ; CODE XREF: ROM_85BB+22↑p +ROM:D239 mov R7, FSR_FF +ROM:D23B anl FSR_FF, #0xFB +ROM:D23E orl FSR_F8, #1 +ROM:D241 +ROM:D241 ROM_D241: ; CODE XREF: ROM_D239+A↓j +ROM:D241 mov A, FSR_F8 +ROM:D243 jb ACC1, ROM_D241 ; Accumulator +ROM:D246 mov FSR_FF, R7 +ROM:D248 ret +ROM:D248 ; End of function ROM_D239 +ROM:D248 +ROM:D249 +ROM:D249 ; =============== S U B R O U T I N E ======================================= +ROM:D249 +ROM:D249 +ROM:D249 ROM_D249: ; CODE XREF: ROM_8553↑p +ROM:D249 mov R7, FSR_FF +ROM:D24B anl FSR_FF, #0xFB +ROM:D24E orl FSR_BF, #0x14 +ROM:D251 mov FSR_F8, #0x10 +ROM:D254 mov FSR_F9, #0xFF +ROM:D257 orl FSR_FF, #4 +ROM:D25A orl FSR_C7, #8 +ROM:D25D mov FSR_DD, #0xF +ROM:D260 clr A +ROM:D261 mov FSR_DE, A +ROM:D263 mov FSR_FF, R7 +ROM:D265 ret +ROM:D265 ; End of function ROM_D249 +ROM:D265 +ROM:D266 +ROM:D266 ; =============== S U B R O U T I N E ======================================= +ROM:D266 +ROM:D266 +ROM:D266 ROM_D266: ; CODE XREF: ROM_AD6A+19F4↑p +ROM:D266 mov DPTR, #0xFDE7 +ROM:D269 movx A, @DPTR +ROM:D26A mov R3, A +ROM:D26B inc DPTR +ROM:D26C clr A +ROM:D26D mov B, #1 ; B Register +ROM:D270 lcall code_991 +ROM:D273 mov R1, B ; B Register +ROM:D275 mov R2, A +ROM:D276 lcall code_891 +ROM:D276 ; End of function ROM_D266 +ROM:D276 +ROM:D279 +ROM:D279 ; =============== S U B R O U T I N E ======================================= +ROM:D279 +ROM:D279 +ROM:D279 ROM_D279: ; CODE XREF: ROM_AD6A+3C5↑p +ROM:D279 ; ROM_AD6A+1252↑p +ROM:D279 mov R7, A +ROM:D27A mov DPTR, #0xFE0E +ROM:D27A ; End of function ROM_D279 +ROM:D27A +ROM:D27D +ROM:D27D ; =============== S U B R O U T I N E ======================================= +ROM:D27D +ROM:D27D +ROM:D27D ROM_D27D: ; CODE XREF: eeprom_related_ROM_3605+39↑p +ROM:D27D ; ROM_6CFA+9A↑p ... +ROM:D27D movx A, @DPTR +ROM:D27E mov R3, A +ROM:D27F inc DPTR +ROM:D280 clr A +ROM:D281 mov B, #1 ; B Register +ROM:D284 lcall code_991 +ROM:D287 mov R1, B ; B Register +ROM:D289 mov R2, A +ROM:D28A ret +ROM:D28A ; End of function ROM_D27D +ROM:D28A +ROM:D28B +ROM:D28B ; =============== S U B R O U T I N E ======================================= +ROM:D28B +ROM:D28B +ROM:D28B ROM_D28B: ; CODE XREF: ROM_AD6A+710↑p +ROM:D28B ; ROM_AD6A+148C↑p ... +ROM:D28B mov B, #2 ; B Register +ROM:D28E lcall code_BEE +ROM:D291 mov A, R6 +ROM:D292 add A, ACC ; Accumulator +ROM:D294 add A, DP0H ; Data Pointer High Byte +ROM:D296 mov DP0H, A ; Data Pointer High Byte +ROM:D298 clr A +ROM:D299 movc A, @A+DPTR +ROM:D29A mov R6, A +ROM:D29B mov A, #1 +ROM:D29D movc A, @A+DPTR +ROM:D29D ; End of function ROM_D28B +ROM:D29D +ROM:D29E +ROM:D29E ; =============== S U B R O U T I N E ======================================= +ROM:D29E +ROM:D29E +ROM:D29E ROM_D29E: ; CODE XREF: ROM_AD6A+B12↑p +ROM:D29E ; ROM_AD6A+CB3↑p ... +ROM:D29E mov R7, A +ROM:D29E ; End of function ROM_D29E +ROM:D29E +ROM:D29F +ROM:D29F ; =============== S U B R O U T I N E ======================================= +ROM:D29F +ROM:D29F +ROM:D29F ROM_D29F: ; CODE XREF: ROM_AD6A+1435↑p +ROM:D29F mov A, R6 +ROM:D2A0 rlc A +ROM:D2A1 subb A, ACC ; Accumulator +ROM:D2A3 mov R5, A +ROM:D2A4 mov R4, A +ROM:D2A5 ret +ROM:D2A5 ; End of function ROM_D29F +ROM:D2A5 +ROM:D2A6 +ROM:D2A6 ; =============== S U B R O U T I N E ======================================= +ROM:D2A6 +ROM:D2A6 +ROM:D2A6 ROM_D2A6: ; CODE XREF: ROM_AD6A:ROM_B1CE↑p +ROM:D2A6 ; ROM_AD6A:ROM_B1DC↑p ... +ROM:D2A6 mov DPTR, #0xFE0B +ROM:D2A9 inc DPTR +ROM:D2AA movx A, @DPTR +ROM:D2AB mov R2, A +ROM:D2AC inc DPTR +ROM:D2AD movx A, @DPTR +ROM:D2AE mov R6, RAM_2 +ROM:D2B0 mov R7, A +ROM:D2B1 mov DPTR, #0xFDF7 +ROM:D2B1 ; End of function ROM_D2A6 +ROM:D2B1 +ROM:D2B4 +ROM:D2B4 ; =============== S U B R O U T I N E ======================================= +ROM:D2B4 +ROM:D2B4 +ROM:D2B4 ROM_D2B4: ; CODE XREF: ROM_AD6A+1DD6↑p +ROM:D2B4 ; ROM_AD6A+1DEE↑p +ROM:D2B4 inc DPTR +ROM:D2B5 movx A, @DPTR +ROM:D2B6 mov R2, A +ROM:D2B7 inc DPTR +ROM:D2B8 movx A, @DPTR +ROM:D2B9 clr C +ROM:D2BA subb A, R7 +ROM:D2BB mov R7, A +ROM:D2BC mov A, R2 +ROM:D2BD subb A, R6 +ROM:D2BE ret +ROM:D2BE ; End of function ROM_D2B4 +ROM:D2BE +ROM:D2BF +ROM:D2BF ; =============== S U B R O U T I N E ======================================= +ROM:D2BF +ROM:D2BF +ROM:D2BF ROM_D2BF: ; CODE XREF: ROM_AD6A+D9D↑p +ROM:D2BF ; ROM_AD6A+118F↑p ... +ROM:D2BF mov A, R3 +ROM:D2C0 orl A, R7 +ROM:D2C1 mov R7, A +ROM:D2C2 mov A, R2 +ROM:D2C3 orl A, R6 +ROM:D2C4 mov R6, A +ROM:D2C5 mov A, R1 +ROM:D2C6 orl A, R5 +ROM:D2C7 mov R5, A +ROM:D2C8 mov A, R0 +ROM:D2C9 orl A, R4 +ROM:D2CA mov R4, A +ROM:D2CB mov DPTR, #0xFDF3 +ROM:D2CE lcall save_4_bytes_R4_R7 +ROM:D2D1 mov DPTR, #0xFE0C +ROM:D2D1 ; End of function ROM_D2BF +ROM:D2D1 +ROM:D2D4 +ROM:D2D4 ; =============== S U B R O U T I N E ======================================= +ROM:D2D4 +ROM:D2D4 +ROM:D2D4 ROM_D2D4: ; CODE XREF: ROM_AD6A+1451↑p +ROM:D2D4 clr A +ROM:D2D5 mov B, #2 ; B Register +ROM:D2D8 ljmp code_97B +ROM:D2D8 ; End of function ROM_D2D4 +ROM:D2D8 +ROM:D2DB +ROM:D2DB ; =============== S U B R O U T I N E ======================================= +ROM:D2DB +ROM:D2DB +ROM:D2DB ROM_D2DB: ; CODE XREF: ROM_AD6A+11BC↑p +ROM:D2DB ; ROM_AD6A+12D8↑p ... +ROM:D2DB lcall code_9A7 +ROM:D2DE mov R7, A +ROM:D2DF mov R6, B ; B Register +ROM:D2E1 mov DPTR, #0xF897 +ROM:D2E1 ; End of function ROM_D2DB +ROM:D2E1 +ROM:D2E4 +ROM:D2E4 ; =============== S U B R O U T I N E ======================================= +ROM:D2E4 +ROM:D2E4 +ROM:D2E4 ROM_D2E4: ; CODE XREF: ROM_AD6A+CA3↑p +ROM:D2E4 ; ROM_AD6A+DD0↑p ... +ROM:D2E4 mov A, R6 +ROM:D2E5 movx @DPTR, A +ROM:D2E6 inc DPTR +ROM:D2E7 mov A, R7 +ROM:D2E8 movx @DPTR, A +ROM:D2E8 ; End of function ROM_D2E4 +ROM:D2E8 +ROM:D2E9 +ROM:D2E9 ; =============== S U B R O U T I N E ======================================= +ROM:D2E9 +ROM:D2E9 +ROM:D2E9 ROM_D2E9: ; CODE XREF: ROM_4859+3↑p +ROM:D2E9 ; ROM_AD6A+80B↑p +ROM:D2E9 clr C +ROM:D2EA mov A, R6 +ROM:D2EB xrl A, #0x80 +ROM:D2ED subb A, #0x80 +ROM:D2EF ret +ROM:D2EF ; End of function ROM_D2E9 +ROM:D2EF +ROM:D2F0 +ROM:D2F0 ; =============== S U B R O U T I N E ======================================= +ROM:D2F0 +ROM:D2F0 +ROM:D2F0 ROM_D2F0: ; CODE XREF: ROM_AD6A+847↑p +ROM:D2F0 ; ROM_AD6A+AD0↑p ... +ROM:D2F0 add A, #3 +ROM:D2F0 ; End of function ROM_D2F0 +ROM:D2F0 +ROM:D2F2 +ROM:D2F2 ; =============== S U B R O U T I N E ======================================= +ROM:D2F2 +ROM:D2F2 +ROM:D2F2 ROM_D2F2: ; CODE XREF: ROM_AD6A+54B↑p +ROM:D2F2 ; ROM_AD6A+57C↑p ... +ROM:D2F2 mov R1, A +ROM:D2F3 clr A +ROM:D2F4 addc A, R2 +ROM:D2F5 mov R2, A +ROM:D2F6 ljmp code_BFA +ROM:D2F6 ; End of function ROM_D2F2 +ROM:D2F6 +ROM:D2F9 +ROM:D2F9 ; =============== S U B R O U T I N E ======================================= +ROM:D2F9 +ROM:D2F9 +ROM:D2F9 ROM_D2F9: ; CODE XREF: ROM_39E2+63↑p +ROM:D2F9 ; ROM_ABBC:ROM_AC94↑p +ROM:D2F9 clr A +ROM:D2FA mov R7, A +ROM:D2FB mov R6, A +ROM:D2FC mov R5, A +ROM:D2FD mov R4, A +ROM:D2FD ; End of function ROM_D2F9 +ROM:D2FD +ROM:D2FE +ROM:D2FE ; =============== S U B R O U T I N E ======================================= +ROM:D2FE +ROM:D2FE +ROM:D2FE ROM_D2FE: ; CODE XREF: ROM_AD6A+1C18↑p +ROM:D2FE mov DPTR, #0xF718 +ROM:D2FE ; End of function ROM_D2FE +ROM:D2FE +ROM:D301 +ROM:D301 ; =============== S U B R O U T I N E ======================================= +ROM:D301 +ROM:D301 +ROM:D301 ROM_D301: ; CODE XREF: code_1E6A+8↑p +ROM:D301 ; ROM:2002↑p ... +ROM:D301 lcall save_4_bytes_R4_R7 +ROM:D304 clr A +ROM:D305 mov R7, A +ROM:D306 mov R6, A +ROM:D307 mov R5, A +ROM:D308 mov R4, A +ROM:D309 ret +ROM:D309 ; End of function ROM_D301 +ROM:D309 +ROM:D30A +ROM:D30A ; =============== S U B R O U T I N E ======================================= +ROM:D30A +ROM:D30A +ROM:D30A ROM_D30A: ; CODE XREF: ROM_AD6A+11E8↑p +ROM:D30A ; ROM_AD6A+1303↑p ... +ROM:D30A lcall code_9A7 +ROM:D30D mov R7, A +ROM:D30E mov DPTR, #0xF897 +ROM:D311 mov A, B ; B Register +ROM:D313 movx @DPTR, A +ROM:D314 inc DPTR +ROM:D315 mov A, R7 +ROM:D316 movx @DPTR, A +ROM:D317 clr C +ROM:D318 mov DPTR, #0xF897 +ROM:D31B movx A, @DPTR +ROM:D31C xrl A, #0x80 +ROM:D31E subb A, #0x80 +ROM:D320 ret +ROM:D320 ; End of function ROM_D30A +ROM:D320 +ROM:D321 +ROM:D321 ; =============== S U B R O U T I N E ======================================= +ROM:D321 +ROM:D321 +ROM:D321 ROM_D321: ; CODE XREF: ROM_AD6A+F1A↑p +ROM:D321 ; ROM_AD6A+1507↑p ... +ROM:D321 mov R7, A +ROM:D322 mov DPTR, #0xFDEF +ROM:D322 ; End of function ROM_D321 +ROM:D322 +ROM:D325 +ROM:D325 ; =============== S U B R O U T I N E ======================================= +ROM:D325 +ROM:D325 +ROM:D325 ROM_D325: ; CODE XREF: ROM_AD6A+E41↑p +ROM:D325 ; ROM_AD6A+1200↑p ... +ROM:D325 inc DPTR +ROM:D326 inc DPTR +ROM:D327 inc DPTR +ROM:D328 movx A, @DPTR +ROM:D329 mov R1, A +ROM:D32A mov R0, A +ROM:D32B ljmp rotate_4_bytes_R4_R7_by_R0_rotations +ROM:D32B ; End of function ROM_D325 +ROM:D32B +ROM:D32E +ROM:D32E ; =============== S U B R O U T I N E ======================================= +ROM:D32E +ROM:D32E +ROM:D32E ROM_D32E: ; CODE XREF: ROM_AD6A:ROM_BC69↑p +ROM:D32E ; ROM_AD6A:ROM_C25C↑p ... +ROM:D32E mov DPTR, #0xFDEF +ROM:D32E ; End of function ROM_D32E +ROM:D32E +ROM:D331 +ROM:D331 ; =============== S U B R O U T I N E ======================================= +ROM:D331 +ROM:D331 +ROM:D331 ROM_D331: ; CODE XREF: ROM_AD6A+B06↑p +ROM:D331 inc DPTR +ROM:D332 inc DPTR +ROM:D333 inc DPTR +ROM:D334 movx A, @DPTR +ROM:D334 ; End of function ROM_D331 +ROM:D334 +ROM:D335 +ROM:D335 ; =============== S U B R O U T I N E ======================================= +ROM:D335 +ROM:D335 +ROM:D335 ROM_D335: ; CODE XREF: ROM_436B+2109↑p +ROM:D335 ; ROM_AD6A+D9↑p ... +ROM:D335 mov R7, A +ROM:D336 mov R6, #0 +ROM:D338 mov A, #1 +ROM:D33A mov R0, RAM_7 +ROM:D33C inc R0 +ROM:D33D ret +ROM:D33D ; End of function ROM_D335 +ROM:D33D +ROM:D33E +ROM:D33E ; =============== S U B R O U T I N E ======================================= +ROM:D33E +ROM:D33E +ROM:D33E ROM_D33E: ; CODE XREF: ROM_AD6A:ROM_BF44↑p +ROM:D33E ; ROM_AD6A:ROM_C05F↑p ... +ROM:D33E mov DPTR, #0xF899 +ROM:D33E ; End of function ROM_D33E +ROM:D33E +ROM:D341 +ROM:D341 ; =============== S U B R O U T I N E ======================================= +ROM:D341 +ROM:D341 +ROM:D341 ROM_D341: ; CODE XREF: ROM_AD6A+CE6↑p +ROM:D341 ; ROM_AD6A+E03↑p ... +ROM:D341 lcall code_BAD +ROM:D344 mov R1, RAM_7 +ROM:D346 mov DPTR, #0xFDF3 +ROM:D349 ret +ROM:D349 ; End of function ROM_D341 +ROM:D349 +ROM:D34A +ROM:D34A ; =============== S U B R O U T I N E ======================================= +ROM:D34A +ROM:D34A +ROM:D34A ROM_D34A: ; CODE XREF: ROM_2153+C5↑p +ROM:D34A ; ROM_6849+5E↑p +ROM:D34A mov A, R6 +ROM:D34B movx @DPTR, A +ROM:D34C inc DPTR +ROM:D34D mov A, R7 +ROM:D34E movx @DPTR, A +ROM:D34F rlc A +ROM:D350 subb A, ACC ; Accumulator +ROM:D350 ; End of function ROM_D34A +ROM:D350 +ROM:D352 +ROM:D352 ; =============== S U B R O U T I N E ======================================= +ROM:D352 +ROM:D352 +ROM:D352 ROM_D352: ; CODE XREF: ROM_AD6A+C77↑p +ROM:D352 ; ROM_AD6A+105C↑p ... +ROM:D352 mov R6, A +ROM:D353 clr C +ROM:D354 mov A, R7 +ROM:D355 subb A, #2 +ROM:D357 mov A, R6 +ROM:D358 xrl A, #0x80 +ROM:D35A subb A, #0x80 +ROM:D35C ret +ROM:D35C ; End of function ROM_D352 +ROM:D35C +ROM:D35D +ROM:D35D ; =============== S U B R O U T I N E ======================================= +ROM:D35D +ROM:D35D +ROM:D35D ROM_D35D: ; CODE XREF: ROM_AD6A+3E8↑p +ROM:D35D ; ROM_AD6A+A58↑p ... +ROM:D35D add A, #0xFF +ROM:D35D ; End of function ROM_D35D +ROM:D35D +ROM:D35F +ROM:D35F ; =============== S U B R O U T I N E ======================================= +ROM:D35F +ROM:D35F +ROM:D35F ROM_D35F: ; CODE XREF: ROM_4816-1B17↑p +ROM:D35F mov R7, A +ROM:D360 mov A, R6 +ROM:D361 addc A, #0xFF +ROM:D363 mov R6, A +ROM:D364 mov A, R5 +ROM:D365 addc A, #0xFF +ROM:D367 mov R5, A +ROM:D368 mov A, R4 +ROM:D369 addc A, #0xFF +ROM:D36B ret +ROM:D36B ; End of function ROM_D35F +ROM:D36B +ROM:D36C +ROM:D36C ; =============== S U B R O U T I N E ======================================= +ROM:D36C +ROM:D36C +ROM:D36C ROM_D36C: ; CODE XREF: ROM_AD6A+20B1↑p +ROM:D36C ; ROM_AD6A+20BC↑p +ROM:D36C mov R7, A +ROM:D36D clr A +ROM:D36E mov R3, #0xF1 +ROM:D370 mov R2, #0xFF +ROM:D370 ; End of function ROM_D36C +ROM:D370 +ROM:D372 +ROM:D372 ; =============== S U B R O U T I N E ======================================= +ROM:D372 +ROM:D372 +ROM:D372 ROM_D372: ; CODE XREF: ROM_AD6A+71↑p +ROM:D372 mov R1, A +ROM:D373 mov R0, A +ROM:D374 lcall code_A7C +ROM:D377 mov R4, RAM_0 +ROM:D379 mov R5, RAM_1 +ROM:D37B mov R6, RAM_2 +ROM:D37D mov R7, RAM_3 +ROM:D37F ret +ROM:D37F ; End of function ROM_D372 +ROM:D37F +ROM:D380 +ROM:D380 ; =============== S U B R O U T I N E ======================================= +ROM:D380 +ROM:D380 +ROM:D380 ROM_D380: ; CODE XREF: ROM_AD6A+4AE↑p +ROM:D380 ; ROM_AD6A+4C7↑p ... +ROM:D380 mov DPTR, #0xF897 +ROM:D383 movx A, @DPTR +ROM:D384 mov R6, A +ROM:D385 inc DPTR +ROM:D386 movx A, @DPTR +ROM:D387 ret +ROM:D387 ; End of function ROM_D380 +ROM:D387 +ROM:D388 +ROM:D388 ; =============== S U B R O U T I N E ======================================= +ROM:D388 +ROM:D388 +ROM:D388 ROM_D388: ; CODE XREF: ROM_AD6A+63A↑p +ROM:D388 ; ROM_AD6A+676↑p ... +ROM:D388 add A, #0xBE +ROM:D38A mov DP0L, A ; Data Pointer Low Byte +ROM:D38C mov A, #0x1B +ROM:D38E addc A, R6 +ROM:D38F mov DP0H, A ; Data Pointer High Byte +ROM:D391 clr A +ROM:D392 movc A, @A+DPTR +ROM:D393 ret +ROM:D393 ; End of function ROM_D388 +ROM:D393 +ROM:D394 +ROM:D394 ; =============== S U B R O U T I N E ======================================= +ROM:D394 +ROM:D394 +ROM:D394 ROM_D394: ; CODE XREF: ROM_7A07+7E↑p +ROM:D394 ; ROM_7EE1+4B↑p +ROM:D394 add A, R7 +ROM:D395 mov R1, A +ROM:D396 mov A, R2 +ROM:D397 addc A, R6 +ROM:D398 mov R2, A +ROM:D399 mov A, R1 +ROM:D39A add A, #1 +ROM:D39C mov R1, A +ROM:D39D clr A +ROM:D39E addc A, R2 +ROM:D39F mov R2, A +ROM:D3A0 clr A +ROM:D3A1 lcall code_8CC +ROM:D3A4 mov DPTR, #0xFE36 +ROM:D3A7 ret +ROM:D3A7 ; End of function ROM_D394 +ROM:D3A7 +ROM:D3A8 +ROM:D3A8 ; =============== S U B R O U T I N E ======================================= +ROM:D3A8 +ROM:D3A8 +ROM:D3A8 ROM_D3A8: ; CODE XREF: ROM_AD6A+112↑p +ROM:D3A8 ; ROM_AD6A+A4B↑p ... +ROM:D3A8 mov A, R7 +ROM:D3A9 orl A, R3 +ROM:D3AA mov R7, A +ROM:D3AB mov A, R6 +ROM:D3AC orl A, R2 +ROM:D3AD mov R6, A +ROM:D3AE mov A, R5 +ROM:D3AF orl A, R1 +ROM:D3B0 mov R5, A +ROM:D3B1 mov A, R4 +ROM:D3B2 orl A, R0 +ROM:D3B3 ret +ROM:D3B3 ; End of function ROM_D3A8 +ROM:D3B3 +ROM:D3B4 +ROM:D3B4 ; =============== S U B R O U T I N E ======================================= +ROM:D3B4 +ROM:D3B4 +ROM:D3B4 ROM_D3B4: ; CODE XREF: ROM_AD6A+467↑p +ROM:D3B4 ; ROM_AD6A+491↑p +ROM:D3B4 mov R6, A +ROM:D3B5 mov DPTR, #0xFE0E +ROM:D3B8 inc DPTR +ROM:D3B9 movx A, @DPTR +ROM:D3BA mov R2, A +ROM:D3BB inc DPTR +ROM:D3BC movx A, @DPTR +ROM:D3BD mov R4, RAM_2 +ROM:D3BF mov R5, A +ROM:D3C0 mov DPTR, #0xFDFA +ROM:D3C3 inc DPTR +ROM:D3C4 movx A, @DPTR +ROM:D3C5 mov R2, A +ROM:D3C6 inc DPTR +ROM:D3C7 movx A, @DPTR +ROM:D3C8 clr C +ROM:D3C9 subb A, R5 +ROM:D3CA mov R5, A +ROM:D3CB mov A, R2 +ROM:D3CC subb A, R4 +ROM:D3CC ; End of function ROM_D3B4 +ROM:D3CC +ROM:D3CD +ROM:D3CD ; =============== S U B R O U T I N E ======================================= +ROM:D3CD +ROM:D3CD +ROM:D3CD ROM_D3CD: ; CODE XREF: ROM_AD6A+FB↑p +ROM:D3CD mov R4, A +ROM:D3CE clr C +ROM:D3CF mov A, R5 +ROM:D3D0 subb A, R7 +ROM:D3D1 mov A, R4 +ROM:D3D2 subb A, R6 +ROM:D3D3 ret +ROM:D3D3 ; End of function ROM_D3CD +ROM:D3D3 +ROM:D3D4 +ROM:D3D4 ; =============== S U B R O U T I N E ======================================= +ROM:D3D4 +ROM:D3D4 +ROM:D3D4 ROM_D3D4: ; CODE XREF: ROM_7A07+84↑p +ROM:D3D4 ; ROM_7EE1+51↑p +ROM:D3D4 add A, R7 +ROM:D3D5 mov R1, A +ROM:D3D6 mov A, R2 +ROM:D3D7 addc A, R6 +ROM:D3D8 mov R2, A +ROM:D3D9 mov A, R1 +ROM:D3DA add A, #2 +ROM:D3DC mov R1, A +ROM:D3DD clr A +ROM:D3DE addc A, R2 +ROM:D3DF mov R2, A +ROM:D3E0 mov A, RAM_1A +ROM:D3E2 lcall code_8CC +ROM:D3E5 setb C +ROM:D3E6 ret +ROM:D3E6 ; End of function ROM_D3D4 +ROM:D3E6 +ROM:D3E7 +ROM:D3E7 ; =============== S U B R O U T I N E ======================================= +ROM:D3E7 +ROM:D3E7 +ROM:D3E7 ROM_D3E7: ; CODE XREF: ROM_53A4+75↑p +ROM:D3E7 ; ROM_53A4+93↑p ... +ROM:D3E7 movx A, @DPTR +ROM:D3E8 mov R7, A +ROM:D3E9 mov DPTR, #0xF8A7 +ROM:D3EC movx A, @DPTR +ROM:D3ED anl A, #7 +ROM:D3EF mov R6, A +ROM:D3F0 clr C +ROM:D3F1 mov A, #7 +ROM:D3F3 subb A, R6 +ROM:D3F4 mov R6, A +ROM:D3F5 mov R0, A +ROM:D3F6 mov A, #1 +ROM:D3F8 inc R0 +ROM:D3F9 ret +ROM:D3F9 ; End of function ROM_D3E7 +ROM:D3F9 +ROM:D3FA +ROM:D3FA ; =============== S U B R O U T I N E ======================================= +ROM:D3FA +ROM:D3FA +ROM:D3FA ROM_D3FA: ; CODE XREF: ROM_AD6A+B8A↑p +ROM:D3FA ; ROM_AD6A+BE4↑p +ROM:D3FA mov R7, A +ROM:D3FB mov R1, #1 +ROM:D3FD mov R0, #1 +ROM:D3FD ; End of function ROM_D3FA +ROM:D3FD +ROM:D3FF +ROM:D3FF ; =============== S U B R O U T I N E ======================================= +ROM:D3FF +ROM:D3FF +ROM:D3FF ROM_D3FF: ; CODE XREF: ROM_AD6A+B66↑p +ROM:D3FF lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:D3FF ; End of function ROM_D3FF +ROM:D3FF +ROM:D402 +ROM:D402 ; =============== S U B R O U T I N E ======================================= +ROM:D402 +ROM:D402 +ROM:D402 ROM_D402: ; CODE XREF: ROM_AD6A+9C4↑p +ROM:D402 ; ROM_AD6A+A4F↑p ... +ROM:D402 mov DPTR, #0xF936 +ROM:D405 ljmp save_4_bytes_R4_R7 +ROM:D405 ; End of function ROM_D402 +ROM:D405 +ROM:D408 +ROM:D408 ; =============== S U B R O U T I N E ======================================= +ROM:D408 +ROM:D408 +ROM:D408 Trampoline_for_setup_pins_eeprom_ROM_D408: +ROM:D408 ; CODE XREF: pretty_early_init_code_1DFD+1B↑p +ROM:D408 ; ROM:ROM_2148↑p +ROM:D408 lcall SetupPinsForEEProm +ROM:D408 ; End of function Trampoline_for_setup_pins_eeprom_ROM_D408 +ROM:D408 +ROM:D40B +ROM:D40B ; =============== S U B R O U T I N E ======================================= +ROM:D40B +ROM:D40B +ROM:D40B ROM_D40B: ; CODE XREF: ROM_436B-FE1↑p +ROM:D40B ; ROM_39E2+254↑p ... +ROM:D40B mov R7, #0 +ROM:D40D mov R6, #0x50 ; 'P' +ROM:D40F mov R5, #4 +ROM:D411 mov R4, #0 +ROM:D413 ret +ROM:D413 ; End of function ROM_D40B +ROM:D413 +ROM:D414 +ROM:D414 ; =============== S U B R O U T I N E ======================================= +ROM:D414 +ROM:D414 +ROM:D414 ROM_D414: ; CODE XREF: ROM_AD6A:ROM_B7E0↑p +ROM:D414 ; ROM_AD6A+CDA↑p ... +ROM:D414 clr A +ROM:D415 mov R7, #7 +ROM:D417 mov R6, A +ROM:D418 mov R5, A +ROM:D419 mov R4, A +ROM:D41A ret +ROM:D41A ; End of function ROM_D414 +ROM:D41A +ROM:D41B +ROM:D41B ; =============== S U B R O U T I N E ======================================= +ROM:D41B +ROM:D41B +ROM:D41B ROM_D41B: ; CODE XREF: ROM_7A07+78↑p +ROM:D41B ; ROM_7EE1+45↑p +ROM:D41B mov A, #0x20 ; ' ' +ROM:D41D lcall code_8CC +ROM:D420 mov A, R7 +ROM:D421 mov B, #0x44 ; 'D' ; B Register +ROM:D424 mul AB +ROM:D425 mov R7, A +ROM:D426 mov R6, B ; B Register +ROM:D428 mov DPTR, #0xFE36 +ROM:D42B ret +ROM:D42B ; End of function ROM_D41B +ROM:D42B +ROM:D42C +ROM:D42C ; =============== S U B R O U T I N E ======================================= +ROM:D42C +ROM:D42C +ROM:D42C ROM_D42C: ; CODE XREF: ROM_AD6A:ROM_AEC3↑p +ROM:D42C ; ROM_AD6A:ROM_AFF0↑p ... +ROM:D42C mov DPTR, #0xFDF3 +ROM:D42F inc DPTR +ROM:D430 inc DPTR +ROM:D431 inc DPTR +ROM:D432 movx A, @DPTR +ROM:D433 ret +ROM:D433 ; End of function ROM_D42C +ROM:D433 +ROM:D434 +ROM:D434 ; =============== S U B R O U T I N E ======================================= +ROM:D434 +ROM:D434 +ROM:D434 ROM_D434: ; CODE XREF: ROM_AD6A+31F↑p +ROM:D434 ; ROM_AD6A:ROM_B1C1↑p ... +ROM:D434 mov DPTR, #0xFDEA +ROM:D437 mov A, #0xFF +ROM:D439 movx @DPTR, A +ROM:D43A clr A +ROM:D43B ret +ROM:D43B ; End of function ROM_D434 +ROM:D43B +ROM:D43C +ROM:D43C ; =============== S U B R O U T I N E ======================================= +ROM:D43C +ROM:D43C +ROM:D43C ROM_D43C: ; CODE XREF: ROM_7197:ROM_71EC↑p +ROM:D43C ; ROM_7197+EF↑p +ROM:D43C mov DPTR, #0xF852 +ROM:D43F movx A, @DPTR +ROM:D440 add A, #0x10 +ROM:D442 movx @DPTR, A +ROM:D443 mov DPTR, #0xF851 +ROM:D446 movx A, @DPTR +ROM:D447 addc A, #0 +ROM:D449 movx @DPTR, A +ROM:D44A mov DPTR, #0xF84E +ROM:D44D movx A, @DPTR +ROM:D44E add A, #0x10 +ROM:D450 movx @DPTR, A +ROM:D451 mov DPTR, #0xF84D +ROM:D454 movx A, @DPTR +ROM:D455 addc A, #0 +ROM:D457 ret +ROM:D457 ; End of function ROM_D43C +ROM:D457 +ROM:D458 +ROM:D458 ; =============== S U B R O U T I N E ======================================= +ROM:D458 +ROM:D458 +ROM:D458 ROM_D458: ; CODE XREF: ROM_755B:ROM_75B3↑p +ROM:D458 ; ROM_755B+FE↑p +ROM:D458 mov DPTR, #0xF975 +ROM:D45B movx A, @DPTR +ROM:D45C add A, #0x10 +ROM:D45E movx @DPTR, A +ROM:D45F mov DPTR, #0xF974 +ROM:D462 movx A, @DPTR +ROM:D463 addc A, #0 +ROM:D465 movx @DPTR, A +ROM:D466 mov DPTR, #0xF971 +ROM:D469 movx A, @DPTR +ROM:D46A add A, #0x10 +ROM:D46C movx @DPTR, A +ROM:D46D mov DPTR, #0xF970 +ROM:D470 movx A, @DPTR +ROM:D471 addc A, #0 +ROM:D473 ret +ROM:D473 ; End of function ROM_D458 +ROM:D473 +ROM:D474 +ROM:D474 ; =============== S U B R O U T I N E ======================================= +ROM:D474 +ROM:D474 +ROM:D474 ROM_D474: ; CODE XREF: ROM_AD6A+910↑p +ROM:D474 ; ROM_AD6A+952↑p +ROM:D474 mov B, #4 ; B Register +ROM:D477 lcall code_BEE +ROM:D47A mov A, R2 +ROM:D47A ; End of function ROM_D474 +ROM:D47A +ROM:D47B +ROM:D47B ; =============== S U B R O U T I N E ======================================= +ROM:D47B +ROM:D47B +ROM:D47B ROM_D47B: ; CODE XREF: ROM_AD6A+92A↑p +ROM:D47B ; ROM_AD6A+9FB↑p +ROM:D47B add A, ACC ; Accumulator +ROM:D47D add A, ACC ; Accumulator +ROM:D47F add A, DP0H ; Data Pointer High Byte +ROM:D481 mov DP0H, A ; Data Pointer High Byte +ROM:D483 ret +ROM:D483 ; End of function ROM_D47B +ROM:D483 +ROM:D484 +ROM:D484 ; =============== S U B R O U T I N E ======================================= +ROM:D484 +ROM:D484 +ROM:D484 ROM_D484: ; CODE XREF: ROM_AD6A+10F1↑p +ROM:D484 ; ROM_AD6A+15BB↑p +ROM:D484 lcall code_9A7 +ROM:D487 mov R7, A +ROM:D488 mov DPTR, #0xF89D +ROM:D488 ; End of function ROM_D484 +ROM:D488 +ROM:D48B +ROM:D48B ; =============== S U B R O U T I N E ======================================= +ROM:D48B +ROM:D48B +ROM:D48B ROM_D48B: ; CODE XREF: ROM_ABBC+124↑p +ROM:D48B ; ROM_AD6A+CFF↑p ... +ROM:D48B mov A, B ; B Register +ROM:D48D movx @DPTR, A +ROM:D48E inc DPTR +ROM:D48F mov A, R7 +ROM:D490 movx @DPTR, A +ROM:D491 ret +ROM:D491 ; End of function ROM_D48B +ROM:D491 +ROM:D491 ; --------------------------------------------------------------------------- +ROM:D492 .byte 0x90 +ROM:D493 .byte 0xF8 +ROM:D494 .byte 0x5A ; Z +ROM:D495 .byte 0xE0 +ROM:D496 .byte 0xFF +ROM:D497 .byte 0x90 +ROM:D498 .byte 0xF8 +ROM:D499 .byte 0x5C ; \ +ROM:D49A .byte 0xE0 +ROM:D49B .byte 0x2F ; / +ROM:D49C .byte 0xFF +ROM:D49D .byte 0x90 +ROM:D49E .byte 0xF8 +ROM:D49F .byte 0x5B ; [ +ROM:D4A0 .byte 0xE0 +ROM:D4A1 .byte 0x34 ; 4 +ROM:D4A2 .byte 0 +ROM:D4A3 .byte 0xFE +ROM:D4A4 .byte 0x90 +ROM:D4A5 .byte 0xF8 +ROM:D4A6 .byte 0x5F ; _ +ROM:D4A7 .byte 0xF0 +ROM:D4A8 .byte 0xA3 +ROM:D4A9 .byte 0xEF +ROM:D4AA .byte 0xF0 +ROM:D4AB .byte 0x22 ; " +ROM:D4AC +ROM:D4AC ; =============== S U B R O U T I N E ======================================= +ROM:D4AC +ROM:D4AC +ROM:D4AC ROM_D4AC: ; CODE XREF: ROM_281F+90↑p +ROM:D4AC ; ROM_6849:ROM_6902↑p +ROM:D4AC mov DPTR, #0xDFF4 +ROM:D4AF movx A, @DPTR +ROM:D4B0 anl A, #0xFB +ROM:D4B2 movx @DPTR, A +ROM:D4B3 lcall Something_eeprom_ROM_5FE9 +ROM:D4B3 ; End of function ROM_D4AC +ROM:D4B3 +ROM:D4B6 +ROM:D4B6 ; =============== S U B R O U T I N E ======================================= +ROM:D4B6 +ROM:D4B6 +ROM:D4B6 Enable_Radio_ROM_D4B6: ; CODE XREF: pretty_early_init_code_1DFD+16↑p +ROM:D4B6 ; ROM_4816-24A5↑p +ROM:D4B6 mov DPTR, #0xDFF4 +ROM:D4B9 movx A, @DPTR +ROM:D4BA orl A, #4 +ROM:D4BC movx @DPTR, A +ROM:D4BD ret +ROM:D4BD ; End of function Enable_Radio_ROM_D4B6 +ROM:D4BD +ROM:D4BE +ROM:D4BE ; =============== S U B R O U T I N E ======================================= +ROM:D4BE +ROM:D4BE +ROM:D4BE ROM_D4BE: ; CODE XREF: ROM_AD6A:ROM_AF93↑p +ROM:D4BE ; ROM_AD6A+6A6↑p ... +ROM:D4BE clr A +ROM:D4BF mov R7, #4 +ROM:D4BF ; End of function ROM_D4BE +ROM:D4BF +ROM:D4C1 +ROM:D4C1 ; =============== S U B R O U T I N E ======================================= +ROM:D4C1 +ROM:D4C1 +ROM:D4C1 ROM_D4C1: ; CODE XREF: ROM_AD6A+629↑p +ROM:D4C1 mov R6, A +ROM:D4C2 mov R5, A +ROM:D4C3 mov R4, A +ROM:D4C4 mov DPTR, #0xFDE3 +ROM:D4C7 ret +ROM:D4C7 ; End of function ROM_D4C1 +ROM:D4C7 +ROM:D4C8 +ROM:D4C8 ; =============== S U B R O U T I N E ======================================= +ROM:D4C8 +ROM:D4C8 +ROM:D4C8 ROM_D4C8: ; CODE XREF: ROM_436B+123↑p +ROM:D4C8 ; ROM_436B+314↑p +ROM:D4C8 movx A, @DPTR +ROM:D4C9 mov R7, A +ROM:D4CA mov DPTR, #0xFD2E +ROM:D4CD clr A +ROM:D4CE movx @DPTR, A +ROM:D4CF inc DPTR +ROM:D4D0 mov A, R7 +ROM:D4D1 movx @DPTR, A +ROM:D4D2 movx A, @DPTR +ROM:D4D3 mov R7, #0 +ROM:D4D5 mov R6, A +ROM:D4D6 mov DPTR, #0xFD2E +ROM:D4D9 movx @DPTR, A +ROM:D4DA inc DPTR +ROM:D4DB mov A, R7 +ROM:D4DC movx @DPTR, A +ROM:D4DD mov A, R5 +ROM:D4DE add A, #0xD +ROM:D4E0 ret +ROM:D4E0 ; End of function ROM_D4C8 +ROM:D4E0 +ROM:D4E1 +ROM:D4E1 ; =============== S U B R O U T I N E ======================================= +ROM:D4E1 +ROM:D4E1 +ROM:D4E1 ROM_D4E1: ; CODE XREF: ROM_AD6A+11CC↑p +ROM:D4E1 ; ROM_AD6A+11D7↑p ... +ROM:D4E1 mov DPTR, #0xF899 +ROM:D4E4 ljmp save_4_bytes_R4_R7 +ROM:D4E4 ; End of function ROM_D4E1 +ROM:D4E4 +ROM:D4E7 +ROM:D4E7 ; =============== S U B R O U T I N E ======================================= +ROM:D4E7 +ROM:D4E7 +ROM:D4E7 ROM_D4E7: ; CODE XREF: ROM_AD6A+CEC↑p +ROM:D4E7 ; ROM_AD6A+E09↑p ... +ROM:D4E7 mov R7, A +ROM:D4E8 mov R0, RAM_1 +ROM:D4EA lcall rotate_4_bytes_R4_R7_by_R0_rotations +ROM:D4ED mov A, R7 +ROM:D4EE anl A, #1 +ROM:D4F0 mov R3, A +ROM:D4F1 ret +ROM:D4F1 ; End of function ROM_D4E7 +ROM:D4F1 +ROM:D4F2 +ROM:D4F2 ; =============== S U B R O U T I N E ======================================= +ROM:D4F2 +ROM:D4F2 +ROM:D4F2 ROM_D4F2: ; CODE XREF: ROM_AD6A:ROM_BA18↑p +ROM:D4F2 ; ROM_AD6A:ROM_BB45↑p ... +ROM:D4F2 xch A, R6 +ROM:D4F3 mov C, ACC7 ; Accumulator +ROM:D4F5 rrc A +ROM:D4F6 xch A, R6 +ROM:D4F7 rrc A +ROM:D4F8 ret +ROM:D4F8 ; End of function ROM_D4F2 +ROM:D4F8 +ROM:D4F8 ; --------------------------------------------------------------------------- +ROM:D4F9 .byte 0x90 +ROM:D4FA .byte 0xFD +ROM:D4FB .byte 0xC6 +ROM:D4FC .byte 0x74 ; t +ROM:D4FD .byte 0xA +ROM:D4FE .byte 0xF0 +ROM:D4FF .byte 0x7F ;  +ROM:D500 .byte 0 +ROM:D501 .byte 0x7E ; ~ +ROM:D502 .byte 0x5C ; \ +ROM:D503 .byte 0x7D ; } +ROM:D504 .byte 0x26 ; & +ROM:D505 .byte 0x7C ; | +ROM:D506 .byte 5 +ROM:D507 .byte 0x90 +ROM:D508 .byte 0xF8 +ROM:D509 .byte 0x29 ; ) +ROM:D50A .byte 0x12 +ROM:D50B .byte 0xB +ROM:D50C .byte 0xE2 +ROM:D50D .byte 0x90 +ROM:D50E .byte 0xF8 +ROM:D50F .byte 0x29 ; ) +ROM:D510 .byte 0x22 ; " +ROM:D511 +ROM:D511 ; =============== S U B R O U T I N E ======================================= +ROM:D511 +ROM:D511 +ROM:D511 ROM_D511: ; CODE XREF: ROM_436B+17E↑p +ROM:D511 ; ROM_436B+2094↑p +ROM:D511 clr A +ROM:D512 mov R7, A +ROM:D513 mov R6, A +ROM:D513 ; End of function ROM_D511 +ROM:D513 +ROM:D514 +ROM:D514 ; =============== S U B R O U T I N E ======================================= +ROM:D514 +ROM:D514 +ROM:D514 ROM_D514: ; CODE XREF: ROM_39E2+8B↑p +ROM:D514 mov R5, A +ROM:D515 mov R4, A +ROM:D516 inc DPTR +ROM:D517 ljmp save_4_bytes_R4_R7 +ROM:D517 ; End of function ROM_D514 +ROM:D517 +ROM:D51A +ROM:D51A ; =============== S U B R O U T I N E ======================================= +ROM:D51A +ROM:D51A +ROM:D51A ROM_D51A: ; CODE XREF: ROM_41B0+F↑p +ROM:D51A ; ROM_AD6A+6AF↑p ... +ROM:D51A add A, #0x2C ; ',' +ROM:D51C mov R1, A +ROM:D51D clr A +ROM:D51E addc A, R2 +ROM:D51F mov R2, A +ROM:D520 ret +ROM:D520 ; End of function ROM_D51A +ROM:D520 +ROM:D521 +ROM:D521 ; =============== S U B R O U T I N E ======================================= +ROM:D521 +ROM:D521 +ROM:D521 ROM_D521: ; CODE XREF: ROM_4737+D↑p +ROM:D521 ; ROM_AD6A+B3B↑p ... +ROM:D521 lcall code_9A7 +ROM:D524 mov R7, A +ROM:D525 mov R6, B ; B Register +ROM:D527 ret +ROM:D527 ; End of function ROM_D521 +ROM:D527 +ROM:D528 +ROM:D528 ; =============== S U B R O U T I N E ======================================= +ROM:D528 +ROM:D528 +ROM:D528 ROM_D528: ; CODE XREF: ROM_AD6A+10F4↑p +ROM:D528 ; ROM_AD6A:ROM_BE75↑p ... +ROM:D528 clr C +ROM:D529 mov DPTR, #0xF89D +ROM:D52C movx A, @DPTR +ROM:D52D xrl A, #0x80 +ROM:D52F subb A, #0x80 +ROM:D531 ret +ROM:D531 ; End of function ROM_D528 +ROM:D531 +ROM:D532 +ROM:D532 ; =============== S U B R O U T I N E ======================================= +ROM:D532 +ROM:D532 +ROM:D532 ROM_D532: ; CODE XREF: ROM_AD6A+77↑p +ROM:D532 ; ROM_AD6A+9F↑p ... +ROM:D532 mov R1, A +ROM:D533 mov R0, A +ROM:D534 clr C +ROM:D535 ljmp code_B1C +ROM:D535 ; End of function ROM_D532 +ROM:D535 +ROM:D538 +ROM:D538 ; =============== S U B R O U T I N E ======================================= +ROM:D538 +ROM:D538 +ROM:D538 ROM_D538: ; CODE XREF: ROM_436B-E27↑p +ROM:D538 ; ROM_436B:ROM_3575↑p ... +ROM:D538 mov DPTR, #0xFDC6 +ROM:D53B mov A, #7 +ROM:D53D movx @DPTR, A +ROM:D53E mov DPTR, #0xF670 +ROM:D541 ret +ROM:D541 ; End of function ROM_D538 +ROM:D541 +ROM:D542 +ROM:D542 ; =============== S U B R O U T I N E ======================================= +ROM:D542 +ROM:D542 +ROM:D542 ROM_D542: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+7F↑p +ROM:D542 ; Radio_Something_Setup_ROM_4B0C+104↑p +ROM:D542 mov R6, #0 +ROM:D544 mov R7, #5 +ROM:D546 mov R5, #0 +ROM:D548 mov R3, #1 +ROM:D54A mov R2, #0xF8 +ROM:D54C mov R1, #0x3A ; ':' +ROM:D54E lcall code_EA0 +ROM:D551 clr A +ROM:D552 mov DPTR, #0xF830 +ROM:D555 movx @DPTR, A +ROM:D556 ret +ROM:D556 ; End of function ROM_D542 +ROM:D556 +ROM:D557 +ROM:D557 ; =============== S U B R O U T I N E ======================================= +ROM:D557 +ROM:D557 +ROM:D557 ROM_D557: ; CODE XREF: Radio_Something_Setup_ROM_4B0C+64↑p +ROM:D557 ; Radio_Something_Setup_ROM_4B0C+EA↑p +ROM:D557 mov DPTR, #0xF832 +ROM:D55A movx A, @DPTR +ROM:D55B add A, R7 +ROM:D55C mov DPTR, #0xDFFD +ROM:D55F movx @DPTR, A +ROM:D560 mov R7, #0x64 ; 'd' +ROM:D562 mov R6, #0 +ROM:D564 lcall ROM_4CB7 +ROM:D567 mov DPTR, #0xDFFC +ROM:D56A movx A, @DPTR +ROM:D56B ret +ROM:D56B ; End of function ROM_D557 +ROM:D56B +ROM:D56C +ROM:D56C ; =============== S U B R O U T I N E ======================================= +ROM:D56C +ROM:D56C +ROM:D56C ROM_D56C: ; CODE XREF: ROM_AD6A+BA9↑p +ROM:D56C ; ROM_AD6A+C0D↑p +ROM:D56C mov A, #0xFF +ROM:D56E subb A, R7 +ROM:D56F mov R7, A +ROM:D570 mov A, #0xFF +ROM:D572 subb A, R6 +ROM:D573 mov R6, A +ROM:D573 ; End of function ROM_D56C +ROM:D573 +ROM:D574 +ROM:D574 ; =============== S U B R O U T I N E ======================================= +ROM:D574 +ROM:D574 +ROM:D574 ROM_D574: ; CODE XREF: ROM_549C+F5↑p +ROM:D574 mov A, R7 +ROM:D575 add A, ACC ; Accumulator +ROM:D577 mov R7, A +ROM:D578 mov A, R6 +ROM:D579 rlc A +ROM:D57A mov R6, A +ROM:D57B ret +ROM:D57B ; End of function ROM_D574 +ROM:D57B +ROM:D57C +ROM:D57C ; =============== S U B R O U T I N E ======================================= +ROM:D57C +ROM:D57C +ROM:D57C ROM_D57C: ; CODE XREF: ROM_2916+222↑p +ROM:D57C ; ROM_2916+26C↑p ... +ROM:D57C mov A, R3 +ROM:D57D add A, #0xA0 +ROM:D57F mov R7, A +ROM:D580 mov A, R2 +ROM:D581 addc A, #0xBB +ROM:D583 mov R6, A +ROM:D584 mov A, R1 +ROM:D585 addc A, #0xD +ROM:D587 ret +ROM:D587 ; End of function ROM_D57C +ROM:D587 +ROM:D588 +ROM:D588 ; =============== S U B R O U T I N E ======================================= +ROM:D588 +ROM:D588 +ROM:D588 ROM_D588: ; CODE XREF: ROM_7424+23↑p +ROM:D588 ; ROM_7424+5F↑p +ROM:D588 mov R1, A +ROM:D589 mov DPTR, #0xF975 +ROM:D58C clr A +ROM:D58D mov B, #1 ; B Register +ROM:D590 lcall code_991 +ROM:D593 mov R6, A +ROM:D594 mov A, R1 +ROM:D595 add A, B ; B Register +ROM:D597 mov R1, A +ROM:D598 mov A, R2 +ROM:D599 addc A, R6 +ROM:D59A mov R2, A +ROM:D59B ret +ROM:D59B ; End of function ROM_D588 +ROM:D59B +ROM:D59C +ROM:D59C ; =============== S U B R O U T I N E ======================================= +ROM:D59C +ROM:D59C +ROM:D59C ROM_D59C: ; CODE XREF: ROM_436B-103D↑p +ROM:D59C ; ROM_436B:ROM_3341↑p +ROM:D59C mov DPTR, #0xF835 +ROM:D59F movx A, @DPTR +ROM:D5A0 add A, #0xFF +ROM:D5A2 mov R7, A +ROM:D5A3 mov DPTR, #0xF834 +ROM:D5A6 movx A, @DPTR +ROM:D5A7 addc A, #0xFF +ROM:D5A9 mov R6, A +ROM:D5AA mov DPTR, #0xF836 +ROM:D5AD movx A, @DPTR +ROM:D5AE xrl A, R6 +ROM:D5AF ret +ROM:D5AF ; End of function ROM_D59C +ROM:D5AF +ROM:D5B0 +ROM:D5B0 ; =============== S U B R O U T I N E ======================================= +ROM:D5B0 +ROM:D5B0 +ROM:D5B0 ROM_D5B0: ; CODE XREF: ROM_AD6A+E51↑p +ROM:D5B0 ; ROM_AD6A:ROM_BBE3↑p ... +ROM:D5B0 clr A +ROM:D5B1 mov R7, #0x10 +ROM:D5B1 ; End of function ROM_D5B0 +ROM:D5B1 +ROM:D5B3 +ROM:D5B3 ; =============== S U B R O U T I N E ======================================= +ROM:D5B3 +ROM:D5B3 +ROM:D5B3 ROM_D5B3: ; CODE XREF: ROM_AD6A+387↑p +ROM:D5B3 mov R6, A +ROM:D5B4 mov R5, A +ROM:D5B5 mov R4, A +ROM:D5B6 mov DPTR, #0xFDEB +ROM:D5B9 ret +ROM:D5B9 ; End of function ROM_D5B3 +ROM:D5B9 +ROM:D5BA +ROM:D5BA ; =============== S U B R O U T I N E ======================================= +ROM:D5BA +ROM:D5BA +ROM:D5BA ROM_D5BA: ; CODE XREF: ROM_436B+128↑p +ROM:D5BA ; ROM_436B+319↑p +ROM:D5BA movx A, @DPTR +ROM:D5BB mov R5, A +ROM:D5BC mov A, R5 +ROM:D5BD mov R7, A +ROM:D5BE mov DPTR, #0xFD2E +ROM:D5C1 mov A, R6 +ROM:D5C2 movx @DPTR, A +ROM:D5C3 inc DPTR +ROM:D5C4 mov A, R7 +ROM:D5C5 movx @DPTR, A +ROM:D5C6 mov DPTR, #0xFD31 +ROM:D5C9 movx A, @DPTR +ROM:D5CA inc A +ROM:D5CB movx @DPTR, A +ROM:D5CC ret +ROM:D5CC ; End of function ROM_D5BA +ROM:D5CC +ROM:D5CD +ROM:D5CD ; =============== S U B R O U T I N E ======================================= +ROM:D5CD +ROM:D5CD +ROM:D5CD ROM_D5CD: ; CODE XREF: ROM_AD6A+11C1↑p +ROM:D5CD ; ROM_AD6A+168B↑p +ROM:D5CD mov DPTR, #0xF897 +ROM:D5CD ; End of function ROM_D5CD +ROM:D5CD +ROM:D5D0 +ROM:D5D0 ; =============== S U B R O U T I N E ======================================= +ROM:D5D0 +ROM:D5D0 +ROM:D5D0 ROM_D5D0: ; CODE XREF: ROM_AD6A+DD8↑p +ROM:D5D0 movx A, @DPTR +ROM:D5D1 mov R2, A +ROM:D5D2 inc DPTR +ROM:D5D3 movx A, @DPTR +ROM:D5D4 mov R3, A +ROM:D5D5 mov R6, RAM_2 +ROM:D5D7 mov R0, #9 +ROM:D5D9 ret +ROM:D5D9 ; End of function ROM_D5D0 +ROM:D5D9 +ROM:D5DA +ROM:D5DA ; =============== S U B R O U T I N E ======================================= +ROM:D5DA +ROM:D5DA +ROM:D5DA ROM_D5DA: ; CODE XREF: initialize_variables_code_1D51+18↑p +ROM:D5DA mov DPTR, #0xFDAA +ROM:D5DD movx A, @DPTR +ROM:D5DE inc DPTR +ROM:D5DF movx @DPTR, A +ROM:D5E0 mov DPTR, #0xFDA9 +ROM:D5E3 movx A, @DPTR +ROM:D5E4 inc DPTR +ROM:D5E5 movx @DPTR, A +ROM:D5E6 mov DPTR, #0xFDB0 +ROM:D5E9 mov A, #0xFF +ROM:D5EB movx @DPTR, A +ROM:D5EC ret +ROM:D5EC ; End of function ROM_D5DA +ROM:D5EC +ROM:D5ED +ROM:D5ED ; =============== S U B R O U T I N E ======================================= +ROM:D5ED +ROM:D5ED +ROM:D5ED ROM_D5ED: ; CODE XREF: ROM_AD6A+844↑p +ROM:D5ED ; ROM_AD6A+858↑p +ROM:D5ED add A, ACC ; Accumulator +ROM:D5EF mov R7, A +ROM:D5F0 mov A, B ; B Register +ROM:D5F2 rlc A +ROM:D5F3 mov R6, A +ROM:D5F4 mov R5, #0 +ROM:D5F6 mov DPTR, #0xF933 +ROM:D5F9 inc DPTR +ROM:D5FA movx A, @DPTR +ROM:D5FB mov R2, A +ROM:D5FC inc DPTR +ROM:D5FD movx A, @DPTR +ROM:D5FE ret +ROM:D5FE ; End of function ROM_D5ED +ROM:D5FE +ROM:D5FF +ROM:D5FF ; =============== S U B R O U T I N E ======================================= +ROM:D5FF +ROM:D5FF +ROM:D5FF ROM_D5FF: ; CODE XREF: ROM_AD6A+17DC↑p +ROM:D5FF ; ROM_AD6A+1889↑p +ROM:D5FF mov R5, A +ROM:D600 mov A, R3 +ROM:D601 anl A, R7 +ROM:D602 mov R7, A +ROM:D603 mov A, R2 +ROM:D604 anl A, R6 +ROM:D605 mov R6, A +ROM:D606 clr A +ROM:D606 ; End of function ROM_D5FF +ROM:D606 +ROM:D607 +ROM:D607 ; =============== S U B R O U T I N E ======================================= +ROM:D607 +ROM:D607 +ROM:D607 ROM_D607: ; CODE XREF: ROM_ABBC+DB↑p +ROM:D607 mov DPTR, #0xFDD6 +ROM:D60A ljmp save_4_bytes_R4_R7 +ROM:D60A ; End of function ROM_D607 +ROM:D60A +ROM:D60D +ROM:D60D ; =============== S U B R O U T I N E ======================================= +ROM:D60D +ROM:D60D +ROM:D60D ROM_D60D: ; CODE XREF: ROM_AD6A+896↑p +ROM:D60D ; ROM_AD6A+8B4↑p +ROM:D60D lcall code_891 +ROM:D610 add A, ACC ; Accumulator +ROM:D612 add A, ACC ; Accumulator +ROM:D614 add A, #0xF3 +ROM:D616 mov DP0L, A ; Data Pointer Low Byte +ROM:D618 clr A +ROM:D619 addc A, #0xF8 +ROM:D61B mov DP0H, A ; Data Pointer High Byte +ROM:D61D ret +ROM:D61D ; End of function ROM_D60D +ROM:D61D +ROM:D61D ; --------------------------------------------------------------------------- +ROM:D61E .byte 0x90 +ROM:D61F .byte 0xF8 +ROM:D620 .byte 0x5B ; [ +ROM:D621 .byte 0xE0 +ROM:D622 .byte 0xFE +ROM:D623 .byte 0xA3 +ROM:D624 .byte 0xE0 +ROM:D625 .byte 0xFF +ROM:D626 .byte 0x90 +ROM:D627 .byte 0xF8 +ROM:D628 .byte 0x5F ; _ +ROM:D629 .byte 0xEE +ROM:D62A .byte 0xF0 +ROM:D62B .byte 0xA3 +ROM:D62C .byte 0xEF +ROM:D62D .byte 0xF0 +ROM:D62E .byte 0x22 ; " +ROM:D62F +ROM:D62F ; =============== S U B R O U T I N E ======================================= +ROM:D62F +ROM:D62F +ROM:D62F ROM_D62F: ; CODE XREF: ROM_AD6A:ROM_B943↑p +ROM:D62F ; ROM_AD6A+10AD↑p ... +ROM:D62F mov DPTR, #0xF89F +ROM:D632 ljmp save_4_bytes_R4_R7 +ROM:D632 ; End of function ROM_D62F +ROM:D632 +ROM:D635 +ROM:D635 ; =============== S U B R O U T I N E ======================================= +ROM:D635 +ROM:D635 +ROM:D635 ROM_D635: ; CODE XREF: ROM_AD6A+17D6↑p +ROM:D635 ; ROM_AD6A+1883↑p +ROM:D635 clr C +ROM:D636 subb A, R3 +ROM:D637 mov R3, A +ROM:D638 mov A, R6 +ROM:D639 subb A, R2 +ROM:D63A mov R2, A +ROM:D63B mov A, R5 +ROM:D63C subb A, R1 +ROM:D63D mov R1, A +ROM:D63E mov A, R4 +ROM:D63F subb A, R0 +ROM:D640 mov R0, A +ROM:D641 mov DPTR, #0xF893 +ROM:D644 ret +ROM:D644 ; End of function ROM_D635 +ROM:D644 +ROM:D645 +ROM:D645 ; =============== S U B R O U T I N E ======================================= +ROM:D645 +ROM:D645 +ROM:D645 ROM_D645: ; CODE XREF: ROM_549C+C6↑p +ROM:D645 ; ROM_549C+10F↑p +ROM:D645 mov R4, A +ROM:D646 inc DPTR +ROM:D647 movx A, @DPTR +ROM:D648 mov R5, A +ROM:D649 mov DPTR, #0xF85D +ROM:D64C movx A, @DPTR +ROM:D64D add A, R5 +ROM:D64E mov R5, A +ROM:D64F mov DPTR, #0xF85C +ROM:D652 movx A, @DPTR +ROM:D653 addc A, R4 +ROM:D654 ret +ROM:D654 ; End of function ROM_D645 +ROM:D654 +ROM:D655 +ROM:D655 ; =============== S U B R O U T I N E ======================================= +ROM:D655 +ROM:D655 +ROM:D655 ROM_D655: ; CODE XREF: ROM_2916+8B↑p +ROM:D655 ; ROM_436B-1E↑p +ROM:D655 clr C +ROM:D656 mov A, R7 +ROM:D657 subb A, R3 +ROM:D658 mov R7, A +ROM:D659 clr A +ROM:D65A subb A, R2 +ROM:D65B xch A, R7 +ROM:D65C add A, #0xA +ROM:D65E xch A, R7 +ROM:D65F addc A, #0 +ROM:D661 xch A, R7 +ROM:D662 add A, R5 +ROM:D663 xch A, R7 +ROM:D664 ret +ROM:D664 ; End of function ROM_D655 +ROM:D664 +ROM:D665 +ROM:D665 ; =============== S U B R O U T I N E ======================================= +ROM:D665 +ROM:D665 +ROM:D665 ROM_D665: ; CODE XREF: ROM_AD6A:ROM_B311↑p +ROM:D665 ; ROM_AD6A+5CF↑p ... +ROM:D665 mov R4, A +ROM:D666 mov DPTR, #0xF89A +ROM:D669 ljmp save_4_bytes_R4_R7 +ROM:D669 ; End of function ROM_D665 +ROM:D669 +ROM:D66C +ROM:D66C ; =============== S U B R O U T I N E ======================================= +ROM:D66C +ROM:D66C +ROM:D66C ROM_D66C: ; CODE XREF: ROM_AD6A+3BB↑p +ROM:D66C ; ROM_AD6A+41F↑p ... +ROM:D66C mov DPTR, #0xFDEA +ROM:D66F mov A, #2 +ROM:D671 movx @DPTR, A +ROM:D672 clr A +ROM:D673 ret +ROM:D673 ; End of function ROM_D66C +ROM:D673 +ROM:D674 +ROM:D674 ; =============== S U B R O U T I N E ======================================= +ROM:D674 +ROM:D674 +ROM:D674 ROM_D674: ; CODE XREF: ROM_AD6A+B5A↑p +ROM:D674 ; ROM_AD6A+BC7↑p +ROM:D674 movx @DPTR, A +ROM:D675 mov DPTR, #0xF898 +ROM:D678 movx A, @DPTR +ROM:D679 add A, #0xFE +ROM:D67B movx @DPTR, A +ROM:D67C mov DPTR, #0xF897 +ROM:D67F movx A, @DPTR +ROM:D680 addc A, #0xFF +ROM:D682 movx @DPTR, A +ROM:D683 ret +ROM:D683 ; End of function ROM_D674 +ROM:D683 +ROM:D684 +ROM:D684 ; =============== S U B R O U T I N E ======================================= +ROM:D684 +ROM:D684 +ROM:D684 ROM_D684: ; CODE XREF: ROM_55D4+37↑p +ROM:D684 ; ROM_55D4+47↑p +ROM:D684 xch A, R7 +ROM:D685 xch A, R5 +ROM:D686 xch A, R7 +ROM:D687 xch A, R6 +ROM:D688 xch A, R4 +ROM:D689 xch A, R6 +ROM:D689 ; End of function ROM_D684 +ROM:D689 +ROM:D68A +ROM:D68A ; =============== S U B R O U T I N E ======================================= +ROM:D68A +ROM:D68A +ROM:D68A ROM_D68A: ; CODE XREF: ROM_55D4+25↑p +ROM:D68A lcall code_8F0 +ROM:D68D mov A, R7 +ROM:D68E add A, #0x30 ; '0' +ROM:D690 ret +ROM:D690 ; End of function ROM_D68A +ROM:D690 +ROM:D690 ; --------------------------------------------------------------------------- +ROM:D691 .byte 0xE0 +ROM:D692 .byte 0xFF +ROM:D693 .byte 0x90 +ROM:D694 .byte 0xFD +ROM:D695 .byte 0x31 ; 1 +ROM:D696 .byte 0xE0 +ROM:D697 .byte 0x2F ; / +ROM:D698 .byte 0xF0 +ROM:D699 .byte 0x90 +ROM:D69A .byte 0xFD +ROM:D69B .byte 0x30 ; 0 +ROM:D69C .byte 0xE0 +ROM:D69D .byte 0x34 ; 4 +ROM:D69E .byte 0 +ROM:D69F .byte 0xF0 +ROM:D6A0 .byte 0x22 ; " +ROM:D6A1 +ROM:D6A1 ; =============== S U B R O U T I N E ======================================= +ROM:D6A1 +ROM:D6A1 +ROM:D6A1 ROM_D6A1: ; CODE XREF: ROM_ABBC+115↑p +ROM:D6A1 ; ROM_AD6A+EB0↑p ... +ROM:D6A1 mov DPTR, #0xFDEF +ROM:D6A4 ljmp save_4_bytes_R4_R7 +ROM:D6A4 ; End of function ROM_D6A1 +ROM:D6A4 +ROM:D6A7 +ROM:D6A7 ; =============== S U B R O U T I N E ======================================= +ROM:D6A7 +ROM:D6A7 +ROM:D6A7 ROM_D6A7: ; CODE XREF: ROM_AD6A+9DE↑p +ROM:D6A7 ; ROM_AD6A+CB6↑p +ROM:D6A7 mov DPTR, #0xF942 +ROM:D6A7 ; End of function ROM_D6A7 +ROM:D6A7 +ROM:D6AA +ROM:D6AA ; =============== S U B R O U T I N E ======================================= +ROM:D6AA +ROM:D6AA +ROM:D6AA ROM_D6AA: ; CODE XREF: ROM_AD6A+A04↑p +ROM:D6AA lcall save_4_bytes_R4_R7 +ROM:D6AD mov DPTR, #0xF942 +ROM:D6B0 ret +ROM:D6B0 ; End of function ROM_D6AA +ROM:D6B0 +ROM:D6B1 +ROM:D6B1 ; =============== S U B R O U T I N E ======================================= +ROM:D6B1 +ROM:D6B1 +ROM:D6B1 ROM_D6B1: ; CODE XREF: ROM_569D+C↑p +ROM:D6B1 mov A, R7 +ROM:D6B2 add A, #0x3E ; '>' +ROM:D6B4 mov R7, A +ROM:D6B5 clr A +ROM:D6B6 addc A, R6 +ROM:D6B7 mov R6, A +ROM:D6B8 mov A, R5 +ROM:D6B9 addc A, #3 +ROM:D6BB mov R5, A +ROM:D6BC clr A +ROM:D6BD ret +ROM:D6BD ; End of function ROM_D6B1 +ROM:D6BD +ROM:D6BE +ROM:D6BE ; =============== S U B R O U T I N E ======================================= +ROM:D6BE +ROM:D6BE +ROM:D6BE ROM_D6BE: ; CODE XREF: ROM_3861+136↑p +ROM:D6BE ; ROM_3861+14F↑p +ROM:D6BE mov DPTR, #0xF841 +ROM:D6C1 movx A, @DPTR +ROM:D6C2 mov R5, A +ROM:D6C3 mov R4, #0 +ROM:D6C5 mov A, R1 +ROM:D6C6 add A, R5 +ROM:D6C7 mov R1, A +ROM:D6C8 mov A, R4 +ROM:D6C9 addc A, R2 +ROM:D6CA ret +ROM:D6CA ; End of function ROM_D6BE +ROM:D6CA +ROM:D6CB +ROM:D6CB ; =============== S U B R O U T I N E ======================================= +ROM:D6CB +ROM:D6CB +ROM:D6CB ROM_D6CB: ; CODE XREF: ROM_AD6A+10A2↑p +ROM:D6CB ; ROM_AD6A+156C↑p +ROM:D6CB mov DPTR, #0xF89D +ROM:D6CB ; End of function ROM_D6CB +ROM:D6CB +ROM:D6CE +ROM:D6CE ; =============== S U B R O U T I N E ======================================= +ROM:D6CE +ROM:D6CE +ROM:D6CE ROM_D6CE: ; CODE XREF: ROM_AD6A+CAB↑p +ROM:D6CE movx A, @DPTR +ROM:D6CF mov R6, A +ROM:D6D0 inc DPTR +ROM:D6D1 movx A, @DPTR +ROM:D6D2 mov R0, #9 +ROM:D6D4 ret +ROM:D6D4 ; End of function ROM_D6CE +ROM:D6D4 +ROM:D6D5 +ROM:D6D5 ; =============== S U B R O U T I N E ======================================= +ROM:D6D5 +ROM:D6D5 +ROM:D6D5 ROM_D6D5: ; CODE XREF: ROM_AD6A+11CF↑p +ROM:D6D5 ; ROM_AD6A+1699↑p +ROM:D6D5 mov A, R2 +ROM:D6D6 anl A, #1 +ROM:D6D8 mov R7, RAM_3 +ROM:D6DA mov DPTR, #0xF897 +ROM:D6DD movx @DPTR, A +ROM:D6DE inc DPTR +ROM:D6DF mov A, R7 +ROM:D6E0 movx @DPTR, A +ROM:D6E1 ret +ROM:D6E1 ; End of function ROM_D6D5 +ROM:D6E1 +ROM:D6E2 +ROM:D6E2 ; =============== S U B R O U T I N E ======================================= +ROM:D6E2 +ROM:D6E2 +ROM:D6E2 ROM_D6E2: ; CODE XREF: ROM_ABBC+FF↑p +ROM:D6E2 ; ROM_AD6A+4↑p ... +ROM:D6E2 mov DPTR, #0xFDEB +ROM:D6E5 ljmp save_4_bytes_R4_R7 +ROM:D6E5 ; End of function ROM_D6E2 +ROM:D6E5 +ROM:D6E8 +ROM:D6E8 ; =============== S U B R O U T I N E ======================================= +ROM:D6E8 +ROM:D6E8 +ROM:D6E8 PrepareWatchdog: ; CODE XREF: SetupWatchdog+3↑p +ROM:D6E8 mov FSR_BC, #0xB8 +ROM:D6EB mov FSR_BD, #0x17 +ROM:D6EE mov FSR_BE, #0xFE +ROM:D6F1 mov FSR_BA, #1 +ROM:D6F4 ret +ROM:D6F4 ; End of function PrepareWatchdog +ROM:D6F4 +ROM:D6F5 +ROM:D6F5 ; =============== S U B R O U T I N E ======================================= +ROM:D6F5 +ROM:D6F5 +ROM:D6F5 ROM_D6F5: ; CODE XREF: ROM_AD6A+E6C↑p +ROM:D6F5 ; ROM_AD6A+F98↑p ... +ROM:D6F5 add A, #0x6F ; 'o' +ROM:D6F7 mov R1, A +ROM:D6F8 clr A +ROM:D6F9 addc A, R2 +ROM:D6FA mov R2, A +ROM:D6FB ret +ROM:D6FB ; End of function ROM_D6F5 +ROM:D6FB +ROM:D6FC +ROM:D6FC ; =============== S U B R O U T I N E ======================================= +ROM:D6FC +ROM:D6FC +ROM:D6FC ROM_D6FC: ; CODE XREF: ROM_AD6A+EAD↑p +ROM:D6FC ; ROM_AD6A+F41↑p +ROM:D6FC addc A, R6 +ROM:D6FD mov DP0H, A ; Data Pointer High Byte +ROM:D6FF clr A +ROM:D700 movc A, @A+DPTR +ROM:D701 mov R7, A +ROM:D702 rlc A +ROM:D703 subb A, ACC ; Accumulator +ROM:D705 mov R6, A +ROM:D706 mov R5, A +ROM:D707 mov R4, A +ROM:D708 ret +ROM:D708 ; End of function ROM_D6FC +ROM:D708 +ROM:D709 +ROM:D709 ; =============== S U B R O U T I N E ======================================= +ROM:D709 +ROM:D709 +ROM:D709 load_values_ROM_D709: ; CODE XREF: ROM_2916+1CB↑p +ROM:D709 ; ROM_61D7+AB↑p +ROM:D709 mov R6, #0 +ROM:D70B mov R7, #8 +ROM:D70D mov R5, #0xFF +ROM:D70F mov R3, #1 +ROM:D711 mov R2, #0xF5 +ROM:D713 mov R1, #0x32 ; '2' +ROM:D715 ret +ROM:D715 ; End of function load_values_ROM_D709 +ROM:D715 +ROM:D716 +ROM:D716 ; =============== S U B R O U T I N E ======================================= +ROM:D716 +ROM:D716 +ROM:D716 ROM_D716: ; CODE XREF: ROM_AD6A+3DF↑p +ROM:D716 ; ROM_AD6A+516↑p ... +ROM:D716 mov DPTR, #0xF718 +ROM:D719 ljmp save_4_bytes_R4_R7 +ROM:D719 ; End of function ROM_D716 +ROM:D719 +ROM:D71C +ROM:D71C ; =============== S U B R O U T I N E ======================================= +ROM:D71C +ROM:D71C +ROM:D71C ROM_D71C: ; CODE XREF: ROM_AD6A+3B6↑p +ROM:D71C ; ROM_AD6A+41A↑p ... +ROM:D71C mov A, R1 +ROM:D71D subb A, DP0L ; Data Pointer Low Byte +ROM:D71F mov A, R2 +ROM:D720 subb A, DP0H ; Data Pointer High Byte +ROM:D722 ret +ROM:D722 ; End of function ROM_D71C +ROM:D722 +ROM:D723 +ROM:D723 ; =============== S U B R O U T I N E ======================================= +ROM:D723 +ROM:D723 +ROM:D723 ROM_D723: ; CODE XREF: ROM_AD6A+8BB↑p +ROM:D723 ; ROM_AD6A+91E↑p ... +ROM:D723 lcall save_4_bytes_R4_R7 +ROM:D726 mov DPTR, #0xF89B +ROM:D729 ret +ROM:D729 ; End of function ROM_D723 +ROM:D729 +ROM:D72A +ROM:D72A ; =============== S U B R O U T I N E ======================================= +ROM:D72A +ROM:D72A +ROM:D72A ROM_D72A: ; CODE XREF: ROM_AD6A+59E↑p +ROM:D72A ; ROM_AD6A+5C6↑p ... +ROM:D72A lcall code_8CC +ROM:D72D mov DPTR, #0xF89A +ROM:D730 ret +ROM:D730 ; End of function ROM_D72A +ROM:D730 +ROM:D731 +ROM:D731 ; =============== S U B R O U T I N E ======================================= +ROM:D731 +ROM:D731 +ROM:D731 ROM_D731: ; CODE XREF: ROM_39E2+251↑p +ROM:D731 ; ROM_39E2+31B↑p +ROM:D731 mov DPTR, #0xF86B +ROM:D734 movx A, @DPTR +ROM:D735 add A, R7 +ROM:D736 movx @DPTR, A +ROM:D737 mov DPTR, #0xF86A +ROM:D73A movx A, @DPTR +ROM:D73B addc A, R6 +ROM:D73C movx @DPTR, A +ROM:D73D ret +ROM:D73D ; End of function ROM_D731 +ROM:D73D +ROM:D73E +ROM:D73E ; =============== S U B R O U T I N E ======================================= +ROM:D73E +ROM:D73E +ROM:D73E ROM_D73E: ; CODE XREF: ROM_39E2+D3↑p +ROM:D73E ; ROM_39E2:ROM_3C27↑p +ROM:D73E clr C +ROM:D73F mov DPTR, #0xF870 +ROM:D742 movx A, @DPTR +ROM:D743 subb A, R7 +ROM:D744 movx @DPTR, A +ROM:D745 mov DPTR, #0xF86F +ROM:D748 movx A, @DPTR +ROM:D749 subb A, R6 +ROM:D74A ret +ROM:D74A ; End of function ROM_D73E +ROM:D74A +ROM:D74B +ROM:D74B ; =============== S U B R O U T I N E ======================================= +ROM:D74B +ROM:D74B +ROM:D74B ROM_D74B: ; CODE XREF: ROM_39E2+B4↑p +ROM:D74B ; ROM_39E2+217↑p +ROM:D74B mov DPTR, #0xF86F +ROM:D74E movx A, @DPTR +ROM:D74F mov R6, A +ROM:D750 inc DPTR +ROM:D751 movx A, @DPTR +ROM:D752 mov R7, A +ROM:D753 setb C +ROM:D754 subb A, #0 +ROM:D756 mov A, R6 +ROM:D757 ret +ROM:D757 ; End of function ROM_D74B +ROM:D757 +ROM:D758 +ROM:D758 ; =============== S U B R O U T I N E ======================================= +ROM:D758 +ROM:D758 +ROM:D758 ROM_D758: ; CODE XREF: ROM_7424+B2↑p +ROM:D758 ; ROM_7424+E1↑p +ROM:D758 mov A, #0x77 ; 'w' +ROM:D75A add A, R7 +ROM:D75B mov DP0L, A ; Data Pointer Low Byte +ROM:D75D mov A, #0xF9 +ROM:D75F addc A, R6 +ROM:D760 mov DP0H, A ; Data Pointer High Byte +ROM:D762 movx A, @DPTR +ROM:D763 mov R7, A +ROM:D764 ret +ROM:D764 ; End of function ROM_D758 +ROM:D764 +ROM:D765 +ROM:D765 ; =============== S U B R O U T I N E ======================================= +ROM:D765 +ROM:D765 +ROM:D765 ROM_D765: ; CODE XREF: ROM_7197+D5↑p +ROM:D765 ; ROM_755B+DC↑p +ROM:D765 movx A, @DPTR +ROM:D766 mov R0, A +ROM:D767 inc DPTR +ROM:D768 movx A, @DPTR +ROM:D769 mov DP0L, A ; Data Pointer Low Byte +ROM:D76B mov A, R1 +ROM:D76C add A, DP0L ; Data Pointer Low Byte +ROM:D76E mov R1, A +ROM:D76F mov A, R2 +ROM:D770 addc A, R0 +ROM:D771 ret +ROM:D771 ; End of function ROM_D765 +ROM:D771 +ROM:D772 +ROM:D772 ; =============== S U B R O U T I N E ======================================= +ROM:D772 +ROM:D772 +ROM:D772 ROM_D772: ; CODE XREF: Radio_Something_Setup_ROM_4B0C:ROM_4B98↑p +ROM:D772 ; Radio_Something_Setup_ROM_4B0C:ROM_4C1D↑p +ROM:D772 mov DPTR, #0xF834 +ROM:D775 movx A, @DPTR +ROM:D776 mov R7, A +ROM:D777 mov DPTR, #0xF831 +ROM:D77A movx A, @DPTR +ROM:D77B mov R6, A +ROM:D77C clr C +ROM:D77D subb A, R7 +ROM:D77E ret +ROM:D77E ; End of function ROM_D772 +ROM:D77E +ROM:D77F +ROM:D77F ; =============== S U B R O U T I N E ======================================= +ROM:D77F +ROM:D77F +ROM:D77F ROM_D77F: ; CODE XREF: ROM_4816-2597↑p +ROM:D77F ; ROM_4816-250E↑p ... +ROM:D77F mov DPTR, #0xF4B6 +ROM:D782 movx A, @DPTR +ROM:D783 xrl A, #1 +ROM:D785 ret +ROM:D785 ; End of function ROM_D77F +ROM:D785 +ROM:D786 +ROM:D786 ; =============== S U B R O U T I N E ======================================= +ROM:D786 +ROM:D786 +ROM:D786 ROM_D786: ; CODE XREF: ROM_549C:ROM_5543↑p +ROM:D786 ; ROM_55D4:ROM_566A↑p +ROM:D786 movx @DPTR, A +ROM:D787 mov DPTR, #0xFDB7 +ROM:D78A movx A, @DPTR +ROM:D78B add A, #0xF4 +ROM:D78D mov R6, A +ROM:D78E mov DPTR, #0xFDB6 +ROM:D791 movx A, @DPTR +ROM:D792 ret +ROM:D792 ; End of function ROM_D786 +ROM:D792 +ROM:D793 +ROM:D793 ; =============== S U B R O U T I N E ======================================= +ROM:D793 +ROM:D793 +ROM:D793 ROM_D793: ; CODE XREF: ROM_2D8F:ROM_2DA9↑p +ROM:D793 ; ROM_2D8F+60↑p +ROM:D793 mov DPTR, #0xF836 +ROM:D796 movx A, @DPTR +ROM:D797 mov R6, A +ROM:D798 inc DPTR +ROM:D799 movx A, @DPTR +ROM:D79A mov DP0L, A ; Data Pointer Low Byte +ROM:D79C mov DP0H, R6 ; Data Pointer High Byte +ROM:D79E movx A, @DPTR +ROM:D79F ret +ROM:D79F ; End of function ROM_D793 +ROM:D79F +ROM:D7A0 +ROM:D7A0 ; =============== S U B R O U T I N E ======================================= +ROM:D7A0 +ROM:D7A0 +ROM:D7A0 ROM_D7A0: ; CODE XREF: ROM_4816-2592↑p +ROM:D7A0 ; ROM_4816-2501↑p +ROM:D7A0 mov DPTR, #0xF828 +ROM:D7A3 movx A, @DPTR +ROM:D7A4 mov R7, A +ROM:D7A5 lcall ROM_37F0 +ROM:D7A8 mov DPTR, #0xF53B +ROM:D7AB mov A, R7 +ROM:D7AC ret +ROM:D7AC ; End of function ROM_D7A0 +ROM:D7AC +ROM:D7AD +ROM:D7AD ; =============== S U B R O U T I N E ======================================= +ROM:D7AD +ROM:D7AD +ROM:D7AD ROM_D7AD: ; CODE XREF: ROM_405D+DF↑p +ROM:D7AD ; ROM_55D4+30↑p ... +ROM:D7AD mov R7, RAM_3 +ROM:D7AF mov R6, RAM_2 +ROM:D7B1 ljmp code_8F0 +ROM:D7B1 ; End of function ROM_D7AD +ROM:D7B1 +ROM:D7B4 +ROM:D7B4 ; =============== S U B R O U T I N E ======================================= +ROM:D7B4 +ROM:D7B4 +ROM:D7B4 ROM_D7B4: ; CODE XREF: ROM_2916+25A↑p +ROM:D7B4 ; ROM_2916+2AC↑p +ROM:D7B4 mov A, R3 +ROM:D7B5 add A, #0x20 ; ' ' +ROM:D7B7 mov R7, A +ROM:D7B8 mov A, R2 +ROM:D7B9 addc A, #0xBF +ROM:D7BB mov R6, A +ROM:D7BC mov A, R1 +ROM:D7BD addc A, #2 +ROM:D7BF ret +ROM:D7BF ; End of function ROM_D7B4 +ROM:D7BF +ROM:D7C0 +ROM:D7C0 ; =============== S U B R O U T I N E ======================================= +ROM:D7C0 +ROM:D7C0 +ROM:D7C0 ROM_D7C0: ; CODE XREF: ROM_39E2+2C3↑p +ROM:D7C0 ; ROM_39E2+2DA↑p +ROM:D7C0 mov DPTR, #0xF859 +ROM:D7C3 movx A, @DPTR +ROM:D7C4 subb A, R7 +ROM:D7C5 mov R7, A +ROM:D7C6 mov DPTR, #0xF858 +ROM:D7C9 movx A, @DPTR +ROM:D7CA subb A, R6 +ROM:D7CB ret +ROM:D7CB ; End of function ROM_D7C0 +ROM:D7CB +ROM:D7CC +ROM:D7CC ; =============== S U B R O U T I N E ======================================= +ROM:D7CC +ROM:D7CC +ROM:D7CC ROM_D7CC: ; CODE XREF: ROM_AD6A+57F↑p +ROM:D7CC ; ROM_AD6A+747↑p ... +ROM:D7CC lcall code_EA0 +ROM:D7CF clr A +ROM:D7D0 mov R7, A +ROM:D7D1 mov R6, A +ROM:D7D2 mov R5, A +ROM:D7D3 ret +ROM:D7D3 ; End of function ROM_D7CC +ROM:D7D3 +ROM:D7D4 +ROM:D7D4 ; =============== S U B R O U T I N E ======================================= +ROM:D7D4 +ROM:D7D4 +ROM:D7D4 ROM_D7D4: ; CODE XREF: ROM_3861+1D↑p +ROM:D7D4 ; ROM_807C+38↑p +ROM:D7D4 movx @DPTR, A +ROM:D7D5 mov DPTR, #0xF55E +ROM:D7D8 inc DPTR +ROM:D7D9 movx A, @DPTR +ROM:D7DA mov R2, A +ROM:D7DB inc DPTR +ROM:D7DC movx A, @DPTR +ROM:D7DD add A, #3 +ROM:D7DF ret +ROM:D7DF ; End of function ROM_D7D4 +ROM:D7DF +ROM:D7E0 +ROM:D7E0 ; =============== S U B R O U T I N E ======================================= +ROM:D7E0 +ROM:D7E0 +ROM:D7E0 ROM_D7E0: ; CODE XREF: ROM_405D:ROM_416C↑p +ROM:D7E0 ; ROM_41B0:ROM_4221↑p +ROM:D7E0 lcall j_encryption_something_maybe_code_107D +ROM:D7E3 mov DPTR, #0xFA9A +ROM:D7E6 movx A, @DPTR +ROM:D7E7 mov R4, A +ROM:D7E8 inc DPTR +ROM:D7E9 movx A, @DPTR +ROM:D7EA mov R5, A +ROM:D7EB ret +ROM:D7EB ; End of function ROM_D7E0 +ROM:D7EB +ROM:D7EC +ROM:D7EC ; =============== S U B R O U T I N E ======================================= +ROM:D7EC +ROM:D7EC +ROM:D7EC ROM_D7EC: ; CODE XREF: ROM_AD6A+D70↑p +ROM:D7EC ; ROM_AD6A+1162↑p ... +ROM:D7EC add A, #8 +ROM:D7EE mov R1, A +ROM:D7EF mov R0, A +ROM:D7F0 ljmp code_B40 +ROM:D7F0 ; End of function ROM_D7EC +ROM:D7F0 +ROM:D7F3 +ROM:D7F3 ; =============== S U B R O U T I N E ======================================= +ROM:D7F3 +ROM:D7F3 +ROM:D7F3 ROM_D7F3: ; CODE XREF: ROM_AD6A+69B↑p +ROM:D7F3 ; ROM_AD6A+F0E↑p +ROM:D7F3 anl A, R7 +ROM:D7F4 mov R7, A +ROM:D7F5 mov A, R2 +ROM:D7F6 anl A, R6 +ROM:D7F7 mov R6, A +ROM:D7F8 mov A, R1 +ROM:D7F9 anl A, R5 +ROM:D7FA mov R5, A +ROM:D7FB mov A, R0 +ROM:D7FC anl A, R4 +ROM:D7FD mov R4, A +ROM:D7FE ret +ROM:D7FE ; End of function ROM_D7F3 +ROM:D7FE +ROM:D7FF +ROM:D7FF ; =============== S U B R O U T I N E ======================================= +ROM:D7FF +ROM:D7FF +ROM:D7FF ROM_D7FF: ; CODE XREF: ROM_AD6A+7D4↑p +ROM:D7FF ; ROM_AD6A:ROM_BFB9↑p ... +ROM:D7FF mov DPTR, #0xFDE3 +ROM:D802 inc DPTR +ROM:D803 inc DPTR +ROM:D804 inc DPTR +ROM:D805 movx A, @DPTR +ROM:D806 ret +ROM:D806 ; End of function ROM_D7FF +ROM:D806 +ROM:D807 +ROM:D807 ; =============== S U B R O U T I N E ======================================= +ROM:D807 +ROM:D807 +ROM:D807 ROM_D807: ; CODE XREF: ROM_9B7E-4E36↑p +ROM:D807 ; ROM_9B7E-4E07↑p +ROM:D807 mov DPTR, #0xFDB4 +ROM:D80A inc DPTR +ROM:D80B movx A, @DPTR +ROM:D80C dec A +ROM:D80D mov R7, A +ROM:D80E lcall ROM_4D0B +ROM:D811 movx A, @DPTR +ROM:D812 ret +ROM:D812 ; End of function ROM_D807 +ROM:D812 +ROM:D813 +ROM:D813 ; =============== S U B R O U T I N E ======================================= +ROM:D813 +ROM:D813 +ROM:D813 ROM_D813: ; CODE XREF: ROM_53A4+31↑p +ROM:D813 ; ROM_53A4+61↑p +ROM:D813 add A, R5 +ROM:D814 mov R7, A +ROM:D815 mov A, R4 +ROM:D816 addc A, R6 +ROM:D817 mov R6, A +ROM:D818 clr A +ROM:D819 mov R4, A +ROM:D81A mov R5, A +ROM:D81B mov DPTR, #0xF8A9 +ROM:D81E ret +ROM:D81E ; End of function ROM_D813 +ROM:D81E +ROM:D81F +ROM:D81F ; =============== S U B R O U T I N E ======================================= +ROM:D81F +ROM:D81F +ROM:D81F ROM_D81F: ; CODE XREF: ROM_2638+C0↑p +ROM:D81F ; ROM_2638+136↑p +ROM:D81F mov DPTR, #0xFDC6 +ROM:D822 movx A, @DPTR +ROM:D823 mov DPTR, #0xFB84 +ROM:D826 movx @DPTR, A +ROM:D827 mov DPTR, #0xFDC6 +ROM:D82A ret +ROM:D82A ; End of function ROM_D81F +ROM:D82A +ROM:D82B +ROM:D82B ; =============== S U B R O U T I N E ======================================= +ROM:D82B +ROM:D82B +ROM:D82B ROM_D82B: ; CODE XREF: ROM_436B-10A1↑p +ROM:D82B ; ROM_436B-1086↑p ... +ROM:D82B inc DPTR +ROM:D82C movx A, @DPTR +ROM:D82D mov R3, A +ROM:D82E mov DP0L, A ; Data Pointer Low Byte +ROM:D830 mov DP0H, R2 ; Data Pointer High Byte +ROM:D832 ret +ROM:D832 ; End of function ROM_D82B +ROM:D832 +ROM:D833 +ROM:D833 ; =============== S U B R O U T I N E ======================================= +ROM:D833 +ROM:D833 +ROM:D833 ROM_D833: ; CODE XREF: ROM_6849+30↑p +ROM:D833 lcall ROM_27D4 +ROM:D836 mov DPTR, #0xF53D +ROM:D839 movx A, @DPTR +ROM:D83A mov R7, A +ROM:D83B ljmp ROM_668A +ROM:D83B ; End of function ROM_D833 +ROM:D83B +ROM:D83E +ROM:D83E ; =============== S U B R O U T I N E ======================================= +ROM:D83E +ROM:D83E +ROM:D83E ROM_D83E: ; CODE XREF: ROM_4816-25E4↑p +ROM:D83E ; ROM_4816:ROM_226C↑p ... +ROM:D83E lcall ROM_30A0 +ROM:D841 mov DPTR, #0xF828 +ROM:D844 mov A, R7 +ROM:D845 ret +ROM:D845 ; End of function ROM_D83E +ROM:D845 +ROM:D845 ; --------------------------------------------------------------------------- +ROM:D846 .byte 0x75 ; u +ROM:D847 .byte 0xF0 +ROM:D848 .byte 0xA +ROM:D849 .byte 0xA4 +ROM:D84A .byte 0x24 ; $ +ROM:D84B .byte 0xB4 +ROM:D84C .byte 0xF5 +ROM:D84D .byte 0x82 +ROM:D84E .byte 0xE4 +ROM:D84F .byte 0x34 ; 4 +ROM:D850 .byte 0xFA +ROM:D851 .byte 0x22 ; " +ROM:D852 +ROM:D852 ; =============== S U B R O U T I N E ======================================= +ROM:D852 +ROM:D852 +ROM:D852 ROM_D852: ; CODE XREF: ROM_7290+29↑p +ROM:D852 ; ROM_7290+63↑p +ROM:D852 mov DPTR, #0xF85D +ROM:D855 movx A, @DPTR +ROM:D856 subb A, R7 +ROM:D857 mov DPTR, #0xF85C +ROM:D85A movx A, @DPTR +ROM:D85B subb A, R6 +ROM:D85C ret +ROM:D85C ; End of function ROM_D852 +ROM:D85C +ROM:D85D +ROM:D85D ; =============== S U B R O U T I N E ======================================= +ROM:D85D +ROM:D85D +ROM:D85D ROM_D85D: ; CODE XREF: ROM_2916+22E↑p +ROM:D85D ; ROM_2916+2F0↑p +ROM:D85D clr A +ROM:D85E add A, R3 +ROM:D85F mov R7, A +ROM:D860 mov A, R2 +ROM:D861 addc A, #0xDD +ROM:D863 mov R6, A +ROM:D864 mov A, R1 +ROM:D865 addc A, #0x6D ; 'm' +ROM:D867 ret +ROM:D867 ; End of function ROM_D85D +ROM:D867 +ROM:D868 +ROM:D868 ; =============== S U B R O U T I N E ======================================= +ROM:D868 +ROM:D868 +ROM:D868 ROM_D868: ; CODE XREF: ROM_AD6A+17EC↑p +ROM:D868 ; ROM_AD6A+1899↑p +ROM:D868 add A, R7 +ROM:D869 mov R1, A +ROM:D86A mov A, R2 +ROM:D86B addc A, R6 +ROM:D86C mov R2, A +ROM:D86D mov A, R3 +ROM:D86E addc A, R5 +ROM:D86F mov DPTR, #0xFDE7 +ROM:D872 ret +ROM:D872 ; End of function ROM_D868 +ROM:D872 +ROM:D873 +ROM:D873 ; =============== S U B R O U T I N E ======================================= +ROM:D873 +ROM:D873 +ROM:D873 ROM_D873: ; CODE XREF: ROM_755B+23↑p +ROM:D873 ; ROM_755B+88↑p +ROM:D873 mov DPTR, #0xF971 +ROM:D876 movx A, @DPTR +ROM:D877 subb A, R7 +ROM:D878 mov DPTR, #0xF970 +ROM:D87B movx A, @DPTR +ROM:D87C subb A, R6 +ROM:D87D ret +ROM:D87D ; End of function ROM_D873 +ROM:D87D +ROM:D87E +ROM:D87E ; =============== S U B R O U T I N E ======================================= +ROM:D87E +ROM:D87E +ROM:D87E ROM_D87E: ; CODE XREF: ROM_7197+24↑p +ROM:D87E ; ROM_7197+85↑p +ROM:D87E mov DPTR, #0xF84E +ROM:D881 movx A, @DPTR +ROM:D882 subb A, R7 +ROM:D883 mov DPTR, #0xF84D +ROM:D886 movx A, @DPTR +ROM:D887 subb A, R6 +ROM:D888 ret +ROM:D888 ; End of function ROM_D87E +ROM:D888 +ROM:D889 +ROM:D889 ; =============== S U B R O U T I N E ======================================= +ROM:D889 +ROM:D889 +ROM:D889 ROM_D889: ; CODE XREF: ROM_39E2+27C↑p +ROM:D889 ; ROM_39E2+2A7↑p +ROM:D889 add A, R7 +ROM:D88A mov R7, A +ROM:D88B mov A, R2 +ROM:D88C addc A, R6 +ROM:D88D mov R6, A +ROM:D88E mov A, R5 +ROM:D88F addc A, R1 +ROM:D890 mov R5, A +ROM:D891 mov R1, RAM_7 +ROM:D893 ret +ROM:D893 ; End of function ROM_D889 +ROM:D893 +ROM:D894 +ROM:D894 ; =============== S U B R O U T I N E ======================================= +ROM:D894 +ROM:D894 +ROM:D894 ROM_D894: ; CODE XREF: ROM_AD6A+17FF↑p +ROM:D894 ; ROM_AD6A+18B2↑p +ROM:D894 mov R1, A +ROM:D895 lcall code_9A7 +ROM:D898 clr C +ROM:D899 subb A, R7 +ROM:D89A mov R7, A +ROM:D89B mov A, B ; B Register +ROM:D89D subb A, R6 +ROM:D89E ret +ROM:D89E ; End of function ROM_D894 +ROM:D89E +ROM:D89F +ROM:D89F ; =============== S U B R O U T I N E ======================================= +ROM:D89F +ROM:D89F +ROM:D89F ROM_D89F: ; CODE XREF: ROM_3DCC+A3↑p +ROM:D89F ; ROM_3DCC+DC↑p +ROM:D89F mov R2, A +ROM:D8A0 mov A, R6 +ROM:D8A1 lcall code_8CC +ROM:D8A4 mov DPTR, #0xF850 +ROM:D8A7 movx A, @DPTR +ROM:D8A8 inc A +ROM:D8A9 ret +ROM:D8A9 ; End of function ROM_D89F +ROM:D8A9 +ROM:D8AA +ROM:D8AA ; =============== S U B R O U T I N E ======================================= +ROM:D8AA +ROM:D8AA +ROM:D8AA ROM_D8AA: ; CODE XREF: ROM_47EB↑p +ROM:D8AA ; ROM_672C↑p +ROM:D8AA mov R0, #0x12 +ROM:D8AC mov R4, #0 +ROM:D8AE mov R5, #0 +ROM:D8B0 mov R6, #0 +ROM:D8B2 mov R7, #8 +ROM:D8B4 ret +ROM:D8B4 ; End of function ROM_D8AA +ROM:D8B4 +ROM:D8B5 +ROM:D8B5 ; =============== S U B R O U T I N E ======================================= +ROM:D8B5 +ROM:D8B5 +ROM:D8B5 ROM_D8B5: ; CODE XREF: ROM_2916+152↑p +ROM:D8B5 ; ROM_2D8F+7A↑p +ROM:D8B5 mov R7, #0x1F +ROM:D8B7 lcall ROM_2153 +ROM:D8BA clr A +ROM:D8BB mov DPTR, #0xF67B +ROM:D8BE movx @DPTR, A +ROM:D8BF ret +ROM:D8BF ; End of function ROM_D8B5 +ROM:D8BF +ROM:D8BF ; --------------------------------------------------------------------------- +ROM:D8C0 .byte 0x90 +ROM:D8C1 .byte 0xFB +ROM:D8C2 .byte 0x85 +ROM:D8C3 .byte 0xE0 +ROM:D8C4 .byte 0x14 +ROM:D8C5 .byte 0xFF +ROM:D8C6 .byte 0x90 +ROM:D8C7 .byte 0xFB +ROM:D8C8 .byte 0x86 +ROM:D8C9 .byte 0xE0 +ROM:D8CA .byte 0x22 ; " +ROM:D8CB +ROM:D8CB ; =============== S U B R O U T I N E ======================================= +ROM:D8CB +ROM:D8CB +ROM:D8CB ROM_D8CB: ; CODE XREF: code_1F13+13↑p +ROM:D8CB ; code_1F13+1B↑p ... +ROM:D8CB lcall DO_SPI_TRANSACTION_ALT +ROM:D8CE mov DPTR, #0xF84F +ROM:D8D1 ret +ROM:D8D1 ; End of function ROM_D8CB +ROM:D8D1 +ROM:D8D1 ; --------------------------------------------------------------------------- +ROM:D8D2 .byte 0x90 +ROM:D8D3 .byte 0xF8 +ROM:D8D4 .byte 0x5B ; [ +ROM:D8D5 .byte 0xF0 +ROM:D8D6 .byte 0xA3 +ROM:D8D7 .byte 0xCE +ROM:D8D8 .byte 0xF0 +ROM:D8D9 .byte 0xE4 +ROM:D8DA .byte 0xF9 +ROM:D8DB .byte 0x22 ; " +ROM:D8DC +ROM:D8DC ; =============== S U B R O U T I N E ======================================= +ROM:D8DC +ROM:D8DC +ROM:D8DC load_0x00000032_into_R7_R6_R5_R4: ; CODE XREF: ROM_2638+78↑p +ROM:D8DC ; ROM_2638+100↑p ... +ROM:D8DC clr A +ROM:D8DD mov R7, #0x32 ; '2' +ROM:D8DF mov R6, A +ROM:D8E0 mov R5, A +ROM:D8E1 mov R4, A +ROM:D8E2 ret +ROM:D8E2 ; End of function load_0x00000032_into_R7_R6_R5_R4 +ROM:D8E2 +ROM:D8E3 +ROM:D8E3 ; =============== S U B R O U T I N E ======================================= +ROM:D8E3 +ROM:D8E3 +ROM:D8E3 ROM_D8E3: ; CODE XREF: ROM_AD6A+B8D↑p +ROM:D8E3 ; ROM_AD6A+BE7↑p +ROM:D8E3 mov A, R7 +ROM:D8E4 anl A, #1 +ROM:D8E6 mov R7, A +ROM:D8E7 clr C +ROM:D8E8 mov DPTR, #0xF89A +ROM:D8EB movx A, @DPTR +ROM:D8EC ret +ROM:D8EC ; End of function ROM_D8E3 +ROM:D8EC +ROM:D8ED +ROM:D8ED ; =============== S U B R O U T I N E ======================================= +ROM:D8ED +ROM:D8ED +ROM:D8ED ROM_D8ED: ; CODE XREF: ROM_436B-FCB↑p +ROM:D8ED ; ROM_436B-E43↑p ... +ROM:D8ED add A, #0 +ROM:D8EF mov R7, A +ROM:D8F0 mov A, R6 +ROM:D8F1 addc A, #0x10 +ROM:D8F3 ret +ROM:D8F3 ; End of function ROM_D8ED +ROM:D8F3 +ROM:D8F4 +ROM:D8F4 ; =============== S U B R O U T I N E ======================================= +ROM:D8F4 +ROM:D8F4 +ROM:D8F4 ROM_D8F4: ; CODE XREF: ROM_436B-FBD↑p +ROM:D8F4 ; ROM_436B-E35↑p ... +ROM:D8F4 add A, #0 +ROM:D8F6 mov R7, A +ROM:D8F7 mov A, R6 +ROM:D8F8 addc A, #0x20 ; ' ' +ROM:D8FA ret +ROM:D8FA ; End of function ROM_D8F4 +ROM:D8FA +ROM:D8FB +ROM:D8FB ; =============== S U B R O U T I N E ======================================= +ROM:D8FB +ROM:D8FB +ROM:D8FB ROM_D8FB: ; CODE XREF: ROM_2916+163↑p +ROM:D8FB ; ROM_2D8F:ROM_2E42↑p +ROM:D8FB mov R7, #0x88 +ROM:D8FD mov R6, #0x13 +ROM:D8FF mov R5, A +ROM:D900 mov R4, A +ROM:D901 ret +ROM:D901 ; End of function ROM_D8FB +ROM:D901 +ROM:D902 +ROM:D902 ; =============== S U B R O U T I N E ======================================= +ROM:D902 +ROM:D902 +ROM:D902 ROM_D902: ; CODE XREF: ROM_AD6A+48E↑p +ROM:D902 ; ROM_AD6A+1059↑p +ROM:D902 inc DPTR +ROM:D903 movx A, @DPTR +ROM:D904 mov R2, A +ROM:D905 inc DPTR +ROM:D906 movx A, @DPTR +ROM:D907 subb A, R7 +ROM:D908 mov R7, A +ROM:D909 mov A, R2 +ROM:D90A subb A, R6 +ROM:D90B ret +ROM:D90B ; End of function ROM_D902 +ROM:D90B +ROM:D90C +ROM:D90C ; =============== S U B R O U T I N E ======================================= +ROM:D90C +ROM:D90C +ROM:D90C ROM_D90C: ; CODE XREF: ROM_AD6A+D02↑p +ROM:D90C ; ROM_AD6A:ROM_BA83↑p +ROM:D90C clr C +ROM:D90D mov DPTR, #0xF940 +ROM:D910 movx A, @DPTR +ROM:D911 xrl A, #0x80 +ROM:D913 subb A, #0x80 +ROM:D915 ret +ROM:D915 ; End of function ROM_D90C +ROM:D915 +ROM:D916 +ROM:D916 ; =============== S U B R O U T I N E ======================================= +ROM:D916 +ROM:D916 +ROM:D916 ROM_D916: ; CODE XREF: ROM_AD6A+19↑p +ROM:D916 ; ROM_AD6A+24↑p ... +ROM:D916 clr A +ROM:D917 mov R7, #1 +ROM:D919 mov R6, A +ROM:D91A mov R5, A +ROM:D91B mov R4, A +ROM:D91C ret +ROM:D91C ; End of function ROM_D916 +ROM:D91C +ROM:D91D +ROM:D91D ; =============== S U B R O U T I N E ======================================= +ROM:D91D +ROM:D91D +ROM:D91D ROM_D91D: ; CODE XREF: SetupPinsForEEProm↑p +ROM:D91D ; ROM_506B↑p +ROM:D91D orl P0FUNC, #1 +ROM:D920 orl P0FUNC, #2 +ROM:D923 orl P0FUNC, #4 +ROM:D926 ret +ROM:D926 ; End of function ROM_D91D +ROM:D926 +ROM:D927 +ROM:D927 ; =============== S U B R O U T I N E ======================================= +ROM:D927 +ROM:D927 +ROM:D927 ROM_D927: ; CODE XREF: ROM_27D4:ROM_27E6↑p +ROM:D927 ; ROM_9FA5↑p +ROM:D927 clr A +ROM:D928 mov DPTR, #0xFE5F +ROM:D92B movx @DPTR, A +ROM:D92C mov DPTR, #0xFE60 +ROM:D92F movx @DPTR, A +ROM:D930 ret +ROM:D930 ; End of function ROM_D927 +ROM:D930 +ROM:D931 +ROM:D931 ; =============== S U B R O U T I N E ======================================= +ROM:D931 +ROM:D931 +ROM:D931 ROM_D931: ; CODE XREF: ROM:ROM_2029↑p +ROM:D931 ; ROM_549C:ROM_54E4↑p +ROM:D931 clr C +ROM:D932 mov A, R7 +ROM:D933 subb A, #3 +ROM:D935 mov A, R6 +ROM:D936 xrl A, #0x80 +ROM:D938 subb A, #0x80 +ROM:D93A ret +ROM:D93A ; End of function ROM_D931 +ROM:D93A +ROM:D93B +ROM:D93B ; =============== S U B R O U T I N E ======================================= +ROM:D93B +ROM:D93B +ROM:D93B ROM_D93B: ; CODE XREF: ROM_281F+A5↑p +ROM:D93B ; ROM_2E9D+70↑p ... +ROM:D93B mov DPTR, #0xFDC6 +ROM:D93E mov A, #4 +ROM:D940 movx @DPTR, A +ROM:D941 ret +ROM:D941 ; End of function ROM_D93B +ROM:D941 +ROM:D942 +ROM:D942 ; =============== S U B R O U T I N E ======================================= +ROM:D942 +ROM:D942 +ROM:D942 ROM_D942: ; CODE XREF: ROM_2D8F+97↑p +ROM:D942 ; ROM_2D8F+A3↑p +ROM:D942 mov DPTR, #0xF838 +ROM:D945 lcall save_4_bytes_R4_R7 +ROM:D948 mov DPTR, #0xF838 +ROM:D94B ret +ROM:D94B ; End of function ROM_D942 +ROM:D94B +ROM:D94C +ROM:D94C ; =============== S U B R O U T I N E ======================================= +ROM:D94C +ROM:D94C +ROM:D94C ROM_D94C: ; CODE XREF: ROM:214B↑p +ROM:D94C ; ROM_436B-E2F↑p +ROM:D94C mov DPTR, #0xF853 +ROM:D94F mov A, #1 +ROM:D951 movx @DPTR, A +ROM:D952 ljmp code_1F17 +ROM:D952 ; End of function ROM_D94C +ROM:D952 +ROM:D955 +ROM:D955 ; =============== S U B R O U T I N E ======================================= +ROM:D955 +ROM:D955 +ROM:D955 ROM_D955: ; CODE XREF: ROM_281F+76↑p +ROM:D955 ; ROM_281F+87↑p +ROM:D955 mov DPTR, #0xF82D +ROM:D958 lcall save_4_bytes_R4_R7 +ROM:D95B mov DPTR, #0xF82D +ROM:D95E ret +ROM:D95E ; End of function ROM_D955 +ROM:D95E +ROM:D95F +ROM:D95F ; =============== S U B R O U T I N E ======================================= +ROM:D95F +ROM:D95F +ROM:D95F ROM_D95F: ; CODE XREF: ROM_AD6A+2AA↑p +ROM:D95F ; ROM_AD6A+7C7↑p +ROM:D95F mov DPTR, #0xF897 +ROM:D962 inc DPTR +ROM:D963 inc DPTR +ROM:D964 inc DPTR +ROM:D965 movx A, @DPTR +ROM:D966 mov R7, A +ROM:D967 ret +ROM:D967 ; End of function ROM_D95F +ROM:D967 +ROM:D968 +ROM:D968 ; =============== S U B R O U T I N E ======================================= +ROM:D968 +ROM:D968 +ROM:D968 ROM_D968: ; CODE XREF: ROM_AD6A+183B↑p +ROM:D968 ; ROM_AD6A+1951↑p +ROM:D968 mov R7, A +ROM:D969 mov DPTR, #0xFDDB +ROM:D96C movx A, @DPTR +ROM:D96D mov R4, A +ROM:D96E inc DPTR +ROM:D96F movx A, @DPTR +ROM:D970 ret +ROM:D970 ; End of function ROM_D968 +ROM:D970 +ROM:D971 +ROM:D971 ; =============== S U B R O U T I N E ======================================= +ROM:D971 +ROM:D971 +ROM:D971 ROM_D971: ; CODE XREF: ROM_2916:ROM_2A7E↑p +ROM:D971 ; ROM_61D7+83↑p +ROM:D971 mov A, #0xFF +ROM:D973 mov DPTR, #0xF553 +ROM:D976 movx @DPTR, A +ROM:D977 inc DPTR +ROM:D978 movx @DPTR, A +ROM:D979 ret +ROM:D979 ; End of function ROM_D971 +ROM:D979 +ROM:D97A +ROM:D97A ; =============== S U B R O U T I N E ======================================= +ROM:D97A +ROM:D97A +ROM:D97A ROM_D97A: ; CODE XREF: ROM_569D+6↑p +ROM:D97A dec A +ROM:D97B mov R7, A +ROM:D97C mov R6, #0 +ROM:D97E mov R4, #0x30 ; '0' +ROM:D980 mov R5, #0 +ROM:D982 ret +ROM:D982 ; End of function ROM_D97A +ROM:D982 +ROM:D983 +ROM:D983 ; =============== S U B R O U T I N E ======================================= +ROM:D983 +ROM:D983 +ROM:D983 ROM_D983: ; CODE XREF: ROM_4816-1B32↑p +ROM:D983 ; ROM_436B+20C1↑p +ROM:D983 mov DPTR, #0xFB9C +ROM:D986 movx A, @DPTR +ROM:D987 mov R6, A +ROM:D988 inc DPTR +ROM:D989 movx A, @DPTR +ROM:D98A mov R7, A +ROM:D98B ret +ROM:D98B ; End of function ROM_D983 +ROM:D98B +ROM:D98C +ROM:D98C ; =============== S U B R O U T I N E ======================================= +ROM:D98C +ROM:D98C +ROM:D98C ROM_D98C: ; CODE XREF: ROM_AD6A+B3E↑p +ROM:D98C ; ROM_AD6A:ROM_B936↑p +ROM:D98C mov DPTR, #0xF899 +ROM:D98F mov A, R6 +ROM:D990 movx @DPTR, A +ROM:D991 inc DPTR +ROM:D992 mov A, R7 +ROM:D993 movx @DPTR, A +ROM:D994 ret +ROM:D994 ; End of function ROM_D98C +ROM:D994 +ROM:D995 +ROM:D995 ; =============== S U B R O U T I N E ======================================= +ROM:D995 +ROM:D995 +ROM:D995 ROM_D995: ; CODE XREF: ROM_7197+66↑p +ROM:D995 ; ROM_755B+69↑p +ROM:D995 movx A, @DPTR +ROM:D996 swap A +ROM:D997 mov R0, A +ROM:D998 anl A, #0xF +ROM:D99A xch A, R0 +ROM:D99B xrl A, R0 +ROM:D99C mov R6, A +ROM:D99D ret +ROM:D99D ; End of function ROM_D995 +ROM:D99D +ROM:D99E +ROM:D99E ; =============== S U B R O U T I N E ======================================= +ROM:D99E +ROM:D99E +ROM:D99E ROM_D99E: ; CODE XREF: ROM_9B7E-4DF6↑p +ROM:D99E ; ROM_508B+22↑p +ROM:D99E lcall code_42E +ROM:D9A1 mov R7, #0x80 +ROM:D9A3 ljmp ROM_4D0B +ROM:D9A3 ; End of function ROM_D99E +ROM:D9A3 +ROM:D9A3 ; --------------------------------------------------------------------------- +ROM:D9A6 .byte 0x7D ; } +ROM:D9A7 .byte 1 +ROM:D9A8 .byte 0x7B ; { +ROM:D9A9 .byte 1 +ROM:D9AA .byte 0x7A ; z +ROM:D9AB .byte 0xFE +ROM:D9AC .byte 0x79 ; y +ROM:D9AD .byte 0x70 ; p +ROM:D9AE .byte 0x22 ; " +ROM:D9AF +ROM:D9AF ; =============== S U B R O U T I N E ======================================= +ROM:D9AF +ROM:D9AF +ROM:D9AF ROM_D9AF: ; CODE XREF: ROM_55D4:ROM_565B↑p +ROM:D9AF ; ROM_55D4:ROM_5667↑p +ROM:D9AF mov DPTR, #0xF85C +ROM:D9B2 clr A +ROM:D9B3 movx @DPTR, A +ROM:D9B4 inc DPTR +ROM:D9B5 mov A, #0x12 +ROM:D9B7 ret +ROM:D9B7 ; End of function ROM_D9AF +ROM:D9B7 +ROM:D9B8 +ROM:D9B8 ; =============== S U B R O U T I N E ======================================= +ROM:D9B8 +ROM:D9B8 +ROM:D9B8 ROM_D9B8: ; CODE XREF: ROM_2916+244↑p +ROM:D9B8 ; ROM_2916+2A3↑p +ROM:D9B8 movx @DPTR, A +ROM:D9B9 setb C +ROM:D9BA mov DPTR, #0xF543 +ROM:D9BD movx A, @DPTR +ROM:D9BE subb A, #0x14 +ROM:D9C0 ret +ROM:D9C0 ; End of function ROM_D9B8 +ROM:D9C0 +ROM:D9C1 +ROM:D9C1 ; =============== S U B R O U T I N E ======================================= +ROM:D9C1 +ROM:D9C1 +ROM:D9C1 ROM_D9C1: ; CODE XREF: ROM_2D8F↑p +ROM:D9C1 ; ROM_436B-1077↑p +ROM:D9C1 mov DPTR, #0xF836 +ROM:D9C4 mov A, R6 +ROM:D9C5 movx @DPTR, A +ROM:D9C6 inc DPTR +ROM:D9C7 mov A, R7 +ROM:D9C8 movx @DPTR, A +ROM:D9C9 ret +ROM:D9C9 ; End of function ROM_D9C1 +ROM:D9C9 +ROM:D9CA +ROM:D9CA ; =============== S U B R O U T I N E ======================================= +ROM:D9CA +ROM:D9CA +ROM:D9CA ROM_D9CA: ; CODE XREF: ROM_436B:ROM_3558↑p +ROM:D9CA ; ROM_436B-DF0↑p +ROM:D9CA mov DPTR, #0xF833 +ROM:D9CD movx A, @DPTR +ROM:D9CE mov DPTR, #0xF671 +ROM:D9D1 movx @DPTR, A +ROM:D9D2 ret +ROM:D9D2 ; End of function ROM_D9CA +ROM:D9D2 +ROM:D9D3 +ROM:D9D3 ; =============== S U B R O U T I N E ======================================= +ROM:D9D3 +ROM:D9D3 +ROM:D9D3 ROM_D9D3: ; CODE XREF: ROM_436B-104C↑p +ROM:D9D3 ; ROM_436B-1007↑p +ROM:D9D3 lcall ROM_3861 +ROM:D9D6 mov DPTR, #0xF833 +ROM:D9D9 mov A, R7 +ROM:D9DA movx @DPTR, A +ROM:D9DB ret +ROM:D9DB ; End of function ROM_D9D3 +ROM:D9DB +ROM:D9DC +ROM:D9DC ; =============== S U B R O U T I N E ======================================= +ROM:D9DC +ROM:D9DC +ROM:D9DC ROM_D9DC: ; CODE XREF: ROM_4816:ROM_4807↑p +ROM:D9DC mov DPTR, #0xFB84 +ROM:D9DF movx A, @DPTR +ROM:D9E0 mov DPTR, #0xFDC6 +ROM:D9E3 movx @DPTR, A +ROM:D9E4 ret +ROM:D9E4 ; End of function ROM_D9DC +ROM:D9E4 +ROM:D9E5 +ROM:D9E5 ; =============== S U B R O U T I N E ======================================= +ROM:D9E5 +ROM:D9E5 +ROM:D9E5 ROM_D9E5: ; CODE XREF: ROM_AD6A+EA3↑p +ROM:D9E5 ; ROM_AD6A+F37↑p +ROM:D9E5 add A, #0xF0 +ROM:D9E7 mov R7, A +ROM:D9E8 mov A, R6 +ROM:D9E9 addc A, #0xFF +ROM:D9EB mov R6, A +ROM:D9EC ret +ROM:D9EC ; End of function ROM_D9E5 +ROM:D9EC +ROM:D9ED +ROM:D9ED ; =============== S U B R O U T I N E ======================================= +ROM:D9ED +ROM:D9ED +ROM:D9ED ROM_D9ED: ; CODE XREF: ROM_AD6A+88C↑p +ROM:D9ED ; ROM_AD6A+8AA↑p +ROM:D9ED mov R1, A +ROM:D9EE lcall code_BFA +ROM:D9F1 mov DPTR, #0xF89B +ROM:D9F4 ret +ROM:D9F4 ; End of function ROM_D9ED +ROM:D9F4 +ROM:D9F5 +ROM:D9F5 ; =============== S U B R O U T I N E ======================================= +ROM:D9F5 +ROM:D9F5 +ROM:D9F5 ROM_D9F5: ; CODE XREF: ROM_AD6A:ROM_B62E↑p +ROM:D9F5 ; ROM_AD6A:ROM_B6C8↑p +ROM:D9F5 mov R4, A +ROM:D9F6 mov DPTR, #0xF89B +ROM:D9F9 ljmp save_4_bytes_R4_R7 +ROM:D9F9 ; End of function ROM_D9F5 +ROM:D9F9 +ROM:D9FC +ROM:D9FC ; =============== S U B R O U T I N E ======================================= +ROM:D9FC +ROM:D9FC +ROM:D9FC ROM_D9FC: ; CODE XREF: ROM_2638+1B↑p +ROM:D9FC ; ROM_2638+CF↑p +ROM:D9FC mov R7, A +ROM:D9FD lcall code_A7C +ROM:DA00 mov DPTR, #0xFB80 +ROM:DA03 ret +ROM:DA03 ; End of function ROM_D9FC +ROM:DA03 +ROM:DA04 +ROM:DA04 ; =============== S U B R O U T I N E ======================================= +ROM:DA04 +ROM:DA04 +ROM:DA04 ROM_DA04: ; CODE XREF: ROM_AD6A+1292↑p +ROM:DA04 ; ROM_AD6A+1366↑p +ROM:DA04 mov R0, #8 +ROM:DA06 lcall code_B40 +ROM:DA09 mov R0, RAM_4 +ROM:DA0B ret +ROM:DA0B ; End of function ROM_DA04 +ROM:DA0B +ROM:DA0C +ROM:DA0C ; =============== S U B R O U T I N E ======================================= +ROM:DA0C +ROM:DA0C +ROM:DA0C ROM_DA0C: ; CODE XREF: ROM_AD6A+18CE↑p +ROM:DA0C ; ROM_AD6A:ROM_C6EE↑p +ROM:DA0C mov DPTR, #0xFDDD +ROM:DA0F movx @DPTR, A +ROM:DA10 inc DPTR +ROM:DA11 mov A, R7 +ROM:DA12 movx @DPTR, A +ROM:DA13 ret +ROM:DA13 ; End of function ROM_DA0C +ROM:DA13 +ROM:DA14 +ROM:DA14 ; =============== S U B R O U T I N E ======================================= +ROM:DA14 +ROM:DA14 +ROM:DA14 ROM_DA14: ; CODE XREF: ROM_AD6A:ROM_C59F↑p +ROM:DA14 ; ROM_AD6A+194B↑p +ROM:DA14 mov DPTR, #0xFDDA +ROM:DA17 movx A, @DPTR +ROM:DA18 orl A, #4 +ROM:DA1A movx @DPTR, A +ROM:DA1B ret +ROM:DA1B ; End of function ROM_DA14 +ROM:DA1B +ROM:DA1C +ROM:DA1C ; =============== S U B R O U T I N E ======================================= +ROM:DA1C +ROM:DA1C +ROM:DA1C ROM_DA1C: ; CODE XREF: ROM_AD6A+1803↑p +ROM:DA1C ; ROM_AD6A+18B5↑p +ROM:DA1C mov DPTR, #0xFDDB +ROM:DA1F movx @DPTR, A +ROM:DA20 inc DPTR +ROM:DA21 mov A, R7 +ROM:DA22 movx @DPTR, A +ROM:DA23 ret +ROM:DA23 ; End of function ROM_DA1C +ROM:DA23 +ROM:DA24 +ROM:DA24 ; =============== S U B R O U T I N E ======================================= +ROM:DA24 +ROM:DA24 +ROM:DA24 ROM_DA24: ; CODE XREF: ROM_AD6A:ROM_B12C↑p +ROM:DA24 ; ROM_AD6A+E5D↑p +ROM:DA24 mov DPTR, #0xFDEB +ROM:DA27 inc DPTR +ROM:DA28 inc DPTR +ROM:DA29 inc DPTR +ROM:DA2A movx A, @DPTR +ROM:DA2B ret +ROM:DA2B ; End of function ROM_DA24 +ROM:DA2B +ROM:DA2C +ROM:DA2C ; =============== S U B R O U T I N E ======================================= +ROM:DA2C +ROM:DA2C +ROM:DA2C ROM_DA2C: ; CODE XREF: ROM_AD6A+927↑p +ROM:DA2C ; ROM_AD6A+9F8↑p +ROM:DA2C mov B, #4 ; B Register +ROM:DA2F lcall code_BEE +ROM:DA32 mov A, R6 +ROM:DA33 ret +ROM:DA33 ; End of function ROM_DA2C +ROM:DA33 +ROM:DA34 +ROM:DA34 ; =============== S U B R O U T I N E ======================================= +ROM:DA34 +ROM:DA34 +ROM:DA34 ROM_DA34: ; CODE XREF: ROM_AD6A+5D7↑p +ROM:DA34 ; ROM_AD6A+5FC↑p +ROM:DA34 mov R6, #1 +ROM:DA36 mov R5, A +ROM:DA37 mov R4, A +ROM:DA38 mov DPTR, #0xF89A +ROM:DA3B ret +ROM:DA3B ; End of function ROM_DA34 +ROM:DA3B +ROM:DA3C +ROM:DA3C ; =============== S U B R O U T I N E ======================================= +ROM:DA3C +ROM:DA3C +ROM:DA3C ROM_DA3C: ; CODE XREF: ROM_39E2+42↑p +ROM:DA3C ; ROM_7197:ROM_725E↑p +ROM:DA3C mov DPTR, #0xF853 +ROM:DA3F movx A, @DPTR +ROM:DA40 mov R7, A +ROM:DA41 inc DPTR +ROM:DA42 movx A, @DPTR +ROM:DA43 ret +ROM:DA43 ; End of function ROM_DA3C +ROM:DA43 +ROM:DA44 +ROM:DA44 ; =============== S U B R O U T I N E ======================================= +ROM:DA44 +ROM:DA44 +ROM:DA44 ROM_DA44: ; CODE XREF: ROM_375F↑p +ROM:DA44 ; unknown_registers_ROM_9F8D+6↑p +ROM:DA44 clr A +ROM:DA45 mov FSR_D4, A +ROM:DA47 mov SPCR, A ; SPI Control Register +ROM:DA49 mov FSR_D6, A +ROM:DA4B ret +ROM:DA4B ; End of function ROM_DA44 +ROM:DA4B +ROM:DA4B ; --------------------------------------------------------------------------- +ROM:DA4C .byte 0x90 +ROM:DA4D .byte 0xF8 +ROM:DA4E .byte 0x59 ; Y +ROM:DA4F .byte 0xE0 +ROM:DA50 .byte 0x24 ; $ +ROM:DA51 .byte 0xFE +ROM:DA52 .byte 0xF0 +ROM:DA53 .byte 0x22 ; " +ROM:DA54 +ROM:DA54 ; =============== S U B R O U T I N E ======================================= +ROM:DA54 +ROM:DA54 +ROM:DA54 ROM_DA54: ; CODE XREF: ROM_549C+BE↑p +ROM:DA54 ; ROM_549C+E5↑p +ROM:DA54 clr A +ROM:DA55 mov DPTR, #0xF858 +ROM:DA58 movx @DPTR, A +ROM:DA59 inc DPTR +ROM:DA5A movx @DPTR, A +ROM:DA5B ret +ROM:DA5B ; End of function ROM_DA54 +ROM:DA5B +ROM:DA5C +ROM:DA5C ; =============== S U B R O U T I N E ======================================= +ROM:DA5C +ROM:DA5C +ROM:DA5C ROM_DA5C: ; CODE XREF: ROM_549C+3C↑p +ROM:DA5C ; ROM_549C:ROM_54EB↑p +ROM:DA5C mov DPTR, #0xF85E +ROM:DA5F mov A, #0xFF +ROM:DA61 movx @DPTR, A +ROM:DA62 inc DPTR +ROM:DA63 ret +ROM:DA63 ; End of function ROM_DA5C +ROM:DA63 +ROM:DA64 +ROM:DA64 ; =============== S U B R O U T I N E ======================================= +ROM:DA64 +ROM:DA64 +ROM:DA64 ROM_DA64: ; CODE XREF: ROM_2D8F:ROM_2DBA↑p +ROM:DA64 ; ROM_549C:ROM_54CF↑p +ROM:DA64 mov DPTR, #0xFEAC +ROM:DA67 movx A, @DPTR +ROM:DA68 mov R7, A +ROM:DA69 mov R6, #0 +ROM:DA6B ret +ROM:DA6B ; End of function ROM_DA64 +ROM:DA6B +ROM:DA6C +ROM:DA6C ; =============== S U B R O U T I N E ======================================= +ROM:DA6C +ROM:DA6C +ROM:DA6C ROM_DA6C: ; CODE XREF: ROM_53A4+20↑p +ROM:DA6C ; ROM_53A4+4E↑p +ROM:DA6C lcall code_8DE +ROM:DA6F mov R4, RAM_6 +ROM:DA71 mov R5, RAM_7 +ROM:DA73 ret +ROM:DA73 ; End of function ROM_DA6C +ROM:DA73 +ROM:DA73 ; --------------------------------------------------------------------------- +ROM:DA74 .byte 0xF5 +ROM:DA75 .byte 0x82 +ROM:DA76 .byte 0xE4 +ROM:DA77 .byte 0x34 ; 4 +ROM:DA78 .byte 0xFD +ROM:DA79 .byte 0xF5 +ROM:DA7A .byte 0x83 +ROM:DA7B .byte 0x22 ; " +ROM:DA7C +ROM:DA7C ; =============== S U B R O U T I N E ======================================= +ROM:DA7C +ROM:DA7C +ROM:DA7C ROM_DA7C: ; CODE XREF: ROM_436B+203↑p +ROM:DA7C ; ROM_436B+221↑p +ROM:DA7C movx @DPTR, A +ROM:DA7D mov A, R7 +ROM:DA7E swap A +ROM:DA7F anl A, #0xF +ROM:DA81 inc DPTR +ROM:DA82 movx @DPTR, A +ROM:DA83 ret +ROM:DA83 ; End of function ROM_DA7C +ROM:DA83 +ROM:DA84 +ROM:DA84 ; =============== S U B R O U T I N E ======================================= +ROM:DA84 +ROM:DA84 +ROM:DA84 ROM_DA84: ; CODE XREF: ROM_4816-241E↑p +ROM:DA84 mov R4, A +ROM:DA85 mov DPTR, #0xF82E +ROM:DA88 ljmp save_4_bytes_R4_R7 +ROM:DA88 ; End of function ROM_DA84 +ROM:DA88 +ROM:DA8B +ROM:DA8B ; =============== S U B R O U T I N E ======================================= +ROM:DA8B +ROM:DA8B +ROM:DA8B ROM_DA8B: ; CODE XREF: code_1E6A+E↑p +ROM:DA8B ; code_1E6A+26↑p +ROM:DA8B lcall save_4_bytes_R4_R7 +ROM:DA8E mov DPTR, #0xF509 +ROM:DA91 movx A, @DPTR +ROM:DA92 ret +ROM:DA92 ; End of function ROM_DA8B +ROM:DA92 +ROM:DA92 ; --------------------------------------------------------------------------- +ROM:DA93 .byte 0xEF +ROM:DA94 .byte 0xF0 +ROM:DA95 .byte 0x86 +ROM:DA96 .byte 0xFF +ROM:DA97 .byte 0xFF +ROM:DA98 .byte 0xFF +ROM:DA99 .byte 0xFF +ROM:DA9A .byte 0xFF +ROM:DA9B .byte 0xFF +ROM:DA9C .byte 0xFF +ROM:DA9D .byte 0xFF +ROM:DA9E .byte 0xFF +ROM:DA9F .byte 0xFF +ROM:DAA0 .byte 0xFF +ROM:DAA1 .byte 0xFF +ROM:DAA2 .byte 0xFF +ROM:DAA3 .byte 0xFF +ROM:DAA4 .byte 0xFF +ROM:DAA5 .byte 0xFF +ROM:DAA6 .byte 0xFF +ROM:DAA7 .byte 0xFF +ROM:DAA8 .byte 0xFF +ROM:DAA9 .byte 0xFF +ROM:DAAA .byte 0xFF +ROM:DAAB .byte 0xFF +ROM:DAAC .byte 0xFF +ROM:DAAD .byte 0xFF +ROM:DAAE .byte 0xFF +ROM:DAAF .byte 0xFF +ROM:DAB0 .byte 0xFF +ROM:DAB1 .byte 0xFF +ROM:DAB2 .byte 0xFF +ROM:DAB3 .byte 0xFF +ROM:DAB4 .byte 0xFF +ROM:DAB5 .byte 0xFF +ROM:DAB6 .byte 0xFF +ROM:DAB7 .byte 0xFF +ROM:DAB8 .byte 0xFF +ROM:DAB9 .byte 0xFF +ROM:DABA .byte 0xFF +ROM:DABB .byte 0xFF +ROM:DABC .byte 0xFF +ROM:DABD .byte 0xFF +ROM:DABE .byte 0xFF +ROM:DABF .byte 0xFF +ROM:DAC0 .byte 0xFF +ROM:DAC1 .byte 0xFF +ROM:DAC2 .byte 0xFF +ROM:DAC3 .byte 0xFF +ROM:DAC4 .byte 0xFF +ROM:DAC5 .byte 0xFF +ROM:DAC6 .byte 0xFF +ROM:DAC7 .byte 0xFF +ROM:DAC8 .byte 0xFF +ROM:DAC9 .byte 0xFF +ROM:DACA .byte 0xFF +ROM:DACB .byte 0xFF +ROM:DACC .byte 0xFF +ROM:DACD .byte 0xFF +ROM:DACE .byte 0xFF +ROM:DACF .byte 0xFF +ROM:DAD0 .byte 0xFF +ROM:DAD1 .byte 0xFF +ROM:DAD2 .byte 0xFF +ROM:DAD3 .byte 0xFF +ROM:DAD4 .byte 0xFF +ROM:DAD5 .byte 0xFF +ROM:DAD6 .byte 0xFF +ROM:DAD7 .byte 0xFF +ROM:DAD8 .byte 0xFF +ROM:DAD9 .byte 0xFF +ROM:DADA .byte 0xFF +ROM:DADB .byte 0xFF +ROM:DADC .byte 0xFF +ROM:DADD .byte 0xFF +ROM:DADE .byte 0xFF +ROM:DADF .byte 0xFF +ROM:DAE0 .byte 0xFF +ROM:DAE1 .byte 0xFF +ROM:DAE2 .byte 0xFF +ROM:DAE3 .byte 0xFF +ROM:DAE4 .byte 0xFF +ROM:DAE5 .byte 0xFF +ROM:DAE6 .byte 0xFF +ROM:DAE7 .byte 0xFF +ROM:DAE8 .byte 0xFF +ROM:DAE9 .byte 0xFF +ROM:DAEA .byte 0xFF +ROM:DAEB .byte 0xFF +ROM:DAEC .byte 0xFF +ROM:DAED .byte 0xFF +ROM:DAEE .byte 0xFF +ROM:DAEF .byte 0xFF +ROM:DAF0 .byte 0xFF +ROM:DAF1 .byte 0xFF +ROM:DAF2 .byte 0xFF +ROM:DAF3 .byte 0xFF +ROM:DAF4 .byte 0xFF +ROM:DAF5 .byte 0xFF +ROM:DAF6 .byte 0xFF +ROM:DAF7 .byte 0xFF +ROM:DAF8 .byte 0xFF +ROM:DAF9 .byte 0xFF +ROM:DAFA .byte 0xFF +ROM:DAFB .byte 0xFF +ROM:DAFC .byte 0xFF +ROM:DAFD .byte 0xFF +ROM:DAFE .byte 0xFF +ROM:DAFF .byte 0xFF +ROM:DB00 .byte 0xFF +ROM:DB01 .byte 0xFF +ROM:DB02 .byte 0xFF +ROM:DB03 .byte 0xFF +ROM:DB04 .byte 0xFF +ROM:DB05 .byte 0xFF +ROM:DB06 .byte 0xFF +ROM:DB07 .byte 0xFF +ROM:DB08 .byte 0xFF +ROM:DB09 .byte 0xFF +ROM:DB0A .byte 0xFF +ROM:DB0B .byte 0xFF +ROM:DB0C .byte 0xFF +ROM:DB0D .byte 0xFF +ROM:DB0E .byte 0xFF +ROM:DB0F .byte 0xFF +ROM:DB10 .byte 0xFF +ROM:DB11 .byte 0xFF +ROM:DB12 .byte 0xFF +ROM:DB13 .byte 0xFF +ROM:DB14 .byte 0xFF +ROM:DB15 .byte 0xFF +ROM:DB16 .byte 0xFF +ROM:DB17 .byte 0xFF +ROM:DB18 .byte 0xFF +ROM:DB19 .byte 0xFF +ROM:DB1A .byte 0xFF +ROM:DB1B .byte 0xFF +ROM:DB1C .byte 0xFF +ROM:DB1D .byte 0xFF +ROM:DB1E .byte 0xFF +ROM:DB1F .byte 0xFF +ROM:DB20 .byte 0xFF +ROM:DB21 .byte 0xFF +ROM:DB22 .byte 0xFF +ROM:DB23 .byte 0xFF +ROM:DB24 .byte 0xFF +ROM:DB25 .byte 0xFF +ROM:DB26 .byte 0xFF +ROM:DB27 .byte 0xFF +ROM:DB28 .byte 0xFF +ROM:DB29 .byte 0xFF +ROM:DB2A .byte 0xFF +ROM:DB2B .byte 0xFF +ROM:DB2C .byte 0xFF +ROM:DB2D .byte 0xFF +ROM:DB2E .byte 0xFF +ROM:DB2F .byte 0xFF +ROM:DB30 .byte 0xFF +ROM:DB31 .byte 0xFF +ROM:DB32 .byte 0xFF +ROM:DB33 .byte 0xFF +ROM:DB34 .byte 0xFF +ROM:DB35 .byte 0xFF +ROM:DB36 .byte 0xFF +ROM:DB37 .byte 0xFF +ROM:DB38 .byte 0xFF +ROM:DB39 .byte 0xFF +ROM:DB3A .byte 0xFF +ROM:DB3B .byte 0xFF +ROM:DB3C .byte 0xFF +ROM:DB3D .byte 0xFF +ROM:DB3E .byte 0xFF +ROM:DB3F .byte 0xFF +ROM:DB40 .byte 0xFF +ROM:DB41 .byte 0xFF +ROM:DB42 .byte 0xFF +ROM:DB43 .byte 0xFF +ROM:DB44 .byte 0xFF +ROM:DB45 .byte 0xFF +ROM:DB46 .byte 0xFF +ROM:DB47 .byte 0xFF +ROM:DB48 .byte 0xFF +ROM:DB49 .byte 0xFF +ROM:DB4A .byte 0xFF +ROM:DB4B .byte 0xFF +ROM:DB4C .byte 0xFF +ROM:DB4D .byte 0xFF +ROM:DB4E .byte 0xFF +ROM:DB4F .byte 0xFF +ROM:DB50 .byte 0xFF +ROM:DB51 .byte 0xFF +ROM:DB52 .byte 0xFF +ROM:DB53 .byte 0xFF +ROM:DB54 .byte 0xFF +ROM:DB55 .byte 0xFF +ROM:DB56 .byte 0xFF +ROM:DB57 .byte 0xFF +ROM:DB58 .byte 0xFF +ROM:DB59 .byte 0xFF +ROM:DB5A .byte 0xFF +ROM:DB5B .byte 0xFF +ROM:DB5C .byte 0xFF +ROM:DB5D .byte 0xFF +ROM:DB5E .byte 0xFF +ROM:DB5F .byte 0xFF +ROM:DB60 .byte 0xFF +ROM:DB61 .byte 0xFF +ROM:DB62 .byte 0xFF +ROM:DB63 .byte 0xFF +ROM:DB64 .byte 0xFF +ROM:DB65 .byte 0xFF +ROM:DB66 .byte 0xFF +ROM:DB67 .byte 0xFF +ROM:DB68 .byte 0xFF +ROM:DB69 .byte 0xFF +ROM:DB6A .byte 0xFF +ROM:DB6B .byte 0xFF +ROM:DB6C .byte 0xFF +ROM:DB6D .byte 0xFF +ROM:DB6E .byte 0xFF +ROM:DB6F .byte 0xFF +ROM:DB70 .byte 0xFF +ROM:DB71 .byte 0xFF +ROM:DB72 .byte 0xFF +ROM:DB73 .byte 0xFF +ROM:DB74 .byte 0xFF +ROM:DB75 .byte 0xFF +ROM:DB76 .byte 0xFF +ROM:DB77 .byte 0xFF +ROM:DB78 .byte 0xFF +ROM:DB79 .byte 0xFF +ROM:DB7A .byte 0xFF +ROM:DB7B .byte 0xFF +ROM:DB7C .byte 0xFF +ROM:DB7D .byte 0xFF +ROM:DB7E .byte 0xFF +ROM:DB7F .byte 0xFF +ROM:DB80 .byte 0xFF +ROM:DB81 .byte 0xFF +ROM:DB82 .byte 0xFF +ROM:DB83 .byte 0xFF +ROM:DB84 .byte 0xFF +ROM:DB85 .byte 0xFF +ROM:DB86 .byte 0xFF +ROM:DB87 .byte 0xFF +ROM:DB88 .byte 0xFF +ROM:DB89 .byte 0xFF +ROM:DB8A .byte 0xFF +ROM:DB8B .byte 0xFF +ROM:DB8C .byte 0xFF +ROM:DB8D .byte 0xFF +ROM:DB8E .byte 0xFF +ROM:DB8F .byte 0xFF +ROM:DB90 .byte 0xFF +ROM:DB91 .byte 0xFF +ROM:DB92 .byte 0xFF +ROM:DB93 .byte 0xFF +ROM:DB94 .byte 0xFF +ROM:DB95 .byte 0xFF +ROM:DB96 .byte 0xFF +ROM:DB97 .byte 0xFF +ROM:DB98 .byte 0xFF +ROM:DB99 .byte 0xFF +ROM:DB9A .byte 0xFF +ROM:DB9B .byte 0xFF +ROM:DB9C .byte 0xFF +ROM:DB9D .byte 0xFF +ROM:DB9E .byte 0xFF +ROM:DB9F .byte 0xFF +ROM:DBA0 .byte 0xFF +ROM:DBA1 .byte 0xFF +ROM:DBA2 .byte 0xFF +ROM:DBA3 .byte 0xFF +ROM:DBA4 .byte 0xFF +ROM:DBA5 .byte 0xFF +ROM:DBA6 .byte 0xFF +ROM:DBA7 .byte 0xFF +ROM:DBA8 .byte 0xFF +ROM:DBA9 .byte 0xFF +ROM:DBAA .byte 0xFF +ROM:DBAB .byte 0xFF +ROM:DBAC .byte 0xFF +ROM:DBAD .byte 0xFF +ROM:DBAE .byte 0xFF +ROM:DBAF .byte 0xFF +ROM:DBB0 .byte 0xFF +ROM:DBB1 .byte 0xFF +ROM:DBB2 .byte 0xFF +ROM:DBB3 .byte 0xFF +ROM:DBB4 .byte 0xFF +ROM:DBB5 .byte 0xFF +ROM:DBB6 .byte 0xFF +ROM:DBB7 .byte 0xFF +ROM:DBB8 .byte 0xFF +ROM:DBB9 .byte 0xFF +ROM:DBBA .byte 0xFF +ROM:DBBB .byte 0xFF +ROM:DBBC .byte 0xFF +ROM:DBBD .byte 0xFF +ROM:DBBE .byte 0xFF +ROM:DBBF .byte 0xFF +ROM:DBC0 .byte 0xFF +ROM:DBC1 .byte 0xFF +ROM:DBC2 .byte 0xFF +ROM:DBC3 .byte 0xFF +ROM:DBC4 .byte 0xFF +ROM:DBC5 .byte 0xFF +ROM:DBC6 .byte 0xFF +ROM:DBC7 .byte 0xFF +ROM:DBC8 .byte 0xFF +ROM:DBC9 .byte 0xFF +ROM:DBCA .byte 0xFF +ROM:DBCB .byte 0xFF +ROM:DBCC .byte 0xFF +ROM:DBCD .byte 0xFF +ROM:DBCE .byte 0xFF +ROM:DBCF .byte 0xFF +ROM:DBD0 .byte 0xFF +ROM:DBD1 .byte 0xFF +ROM:DBD2 .byte 0xFF +ROM:DBD3 .byte 0xFF +ROM:DBD4 .byte 0xFF +ROM:DBD5 .byte 0xFF +ROM:DBD6 .byte 0xFF +ROM:DBD7 .byte 0xFF +ROM:DBD8 .byte 0xFF +ROM:DBD9 .byte 0xFF +ROM:DBDA .byte 0xFF +ROM:DBDB .byte 0xFF +ROM:DBDC .byte 0xFF +ROM:DBDD .byte 0xFF +ROM:DBDE .byte 0xFF +ROM:DBDF .byte 0xFF +ROM:DBE0 .byte 0xFF +ROM:DBE1 .byte 0xFF +ROM:DBE2 .byte 0xFF +ROM:DBE3 .byte 0xFF +ROM:DBE4 .byte 0xFF +ROM:DBE5 .byte 0xFF +ROM:DBE6 .byte 0xFF +ROM:DBE7 .byte 0xFF +ROM:DBE8 .byte 0xFF +ROM:DBE9 .byte 0xFF +ROM:DBEA .byte 0xFF +ROM:DBEB .byte 0xFF +ROM:DBEC .byte 0xFF +ROM:DBED .byte 0xFF +ROM:DBEE .byte 0xFF +ROM:DBEF .byte 0xFF +ROM:DBF0 .byte 0xFF +ROM:DBF1 .byte 0xFF +ROM:DBF2 .byte 0xFF +ROM:DBF3 .byte 0xFF +ROM:DBF4 .byte 0xFF +ROM:DBF5 .byte 0xFF +ROM:DBF6 .byte 0xFF +ROM:DBF7 .byte 0xFF +ROM:DBF8 .byte 0xFF +ROM:DBF9 .byte 0xFF +ROM:DBFA .byte 0xFF +ROM:DBFB .byte 0xFF +ROM:DBFC .byte 0xFF +ROM:DBFD .byte 0xFF +ROM:DBFE .byte 0xFF +ROM:DBFF .byte 0xFF +ROM:DC00 .byte 0xFF +ROM:DC01 .byte 0xFF +ROM:DC02 .byte 0xFF +ROM:DC03 .byte 0xFF +ROM:DC04 .byte 0xFF +ROM:DC05 .byte 0xFF +ROM:DC06 .byte 0xFF +ROM:DC07 .byte 0xFF +ROM:DC08 .byte 0xFF +ROM:DC09 .byte 0xFF +ROM:DC0A .byte 0xFF +ROM:DC0B .byte 0xFF +ROM:DC0C .byte 0xFF +ROM:DC0D .byte 0xFF +ROM:DC0E .byte 0xFF +ROM:DC0F .byte 0xFF +ROM:DC10 .byte 0xFF +ROM:DC11 .byte 0xFF +ROM:DC12 .byte 0xFF +ROM:DC13 .byte 0xFF +ROM:DC14 .byte 0xFF +ROM:DC15 .byte 0xFF +ROM:DC16 .byte 0xFF +ROM:DC17 .byte 0xFF +ROM:DC18 .byte 0xFF +ROM:DC19 .byte 0xFF +ROM:DC1A .byte 0xFF +ROM:DC1B .byte 0xFF +ROM:DC1C .byte 0xFF +ROM:DC1D .byte 0xFF +ROM:DC1E .byte 0xFF +ROM:DC1F .byte 0xFF +ROM:DC20 .byte 0xFF +ROM:DC21 .byte 0xFF +ROM:DC22 .byte 0xFF +ROM:DC23 .byte 0xFF +ROM:DC24 .byte 0xFF +ROM:DC25 .byte 0xFF +ROM:DC26 .byte 0xFF +ROM:DC27 .byte 0xFF +ROM:DC28 .byte 0xFF +ROM:DC29 .byte 0xFF +ROM:DC2A .byte 0xFF +ROM:DC2B .byte 0xFF +ROM:DC2C .byte 0xFF +ROM:DC2D .byte 0xFF +ROM:DC2E .byte 0xFF +ROM:DC2F .byte 0xFF +ROM:DC30 .byte 0xFF +ROM:DC31 .byte 0xFF +ROM:DC32 .byte 0xFF +ROM:DC33 .byte 0xFF +ROM:DC34 .byte 0xFF +ROM:DC35 .byte 0xFF +ROM:DC36 .byte 0xFF +ROM:DC37 .byte 0xFF +ROM:DC38 .byte 0xFF +ROM:DC39 .byte 0xFF +ROM:DC3A .byte 0xFF +ROM:DC3B .byte 0xFF +ROM:DC3C .byte 0xFF +ROM:DC3D .byte 0xFF +ROM:DC3E .byte 0xFF +ROM:DC3F .byte 0xFF +ROM:DC40 .byte 0xFF +ROM:DC41 .byte 0xFF +ROM:DC42 .byte 0xFF +ROM:DC43 .byte 0xFF +ROM:DC44 .byte 0xFF +ROM:DC45 .byte 0xFF +ROM:DC46 .byte 0xFF +ROM:DC47 .byte 0xFF +ROM:DC48 .byte 0xFF +ROM:DC49 .byte 0xFF +ROM:DC4A .byte 0xFF +ROM:DC4B .byte 0xFF +ROM:DC4C .byte 0xFF +ROM:DC4D .byte 0xFF +ROM:DC4E .byte 0xFF +ROM:DC4F .byte 0xFF +ROM:DC50 .byte 0xFF +ROM:DC51 .byte 0xFF +ROM:DC52 .byte 0xFF +ROM:DC53 .byte 0xFF +ROM:DC54 .byte 0xFF +ROM:DC55 .byte 0xFF +ROM:DC56 .byte 0xFF +ROM:DC57 .byte 0xFF +ROM:DC58 .byte 0xFF +ROM:DC59 .byte 0xFF +ROM:DC5A .byte 0xFF +ROM:DC5B .byte 0xFF +ROM:DC5C .byte 0xFF +ROM:DC5D .byte 0xFF +ROM:DC5E .byte 0xFF +ROM:DC5F .byte 0xFF +ROM:DC60 .byte 0xFF +ROM:DC61 .byte 0xFF +ROM:DC62 .byte 0xFF +ROM:DC63 .byte 0xFF +ROM:DC64 .byte 0xFF +ROM:DC65 .byte 0xFF +ROM:DC66 .byte 0xFF +ROM:DC67 .byte 0xFF +ROM:DC68 .byte 0xFF +ROM:DC69 .byte 0xFF +ROM:DC6A .byte 0xFF +ROM:DC6B .byte 0xFF +ROM:DC6C .byte 0xFF +ROM:DC6D .byte 0xFF +ROM:DC6E .byte 0xFF +ROM:DC6F .byte 0xFF +ROM:DC70 .byte 0xFF +ROM:DC71 .byte 0xFF +ROM:DC72 .byte 0xFF +ROM:DC73 .byte 0xFF +ROM:DC74 .byte 0xFF +ROM:DC75 .byte 0xFF +ROM:DC76 .byte 0xFF +ROM:DC77 .byte 0xFF +ROM:DC78 .byte 0xFF +ROM:DC79 .byte 0xFF +ROM:DC7A .byte 0xFF +ROM:DC7B .byte 0xFF +ROM:DC7C .byte 0xFF +ROM:DC7D .byte 0xFF +ROM:DC7E .byte 0xFF +ROM:DC7F .byte 0xFF +ROM:DC80 .byte 0xFF +ROM:DC81 .byte 0xFF +ROM:DC82 .byte 0xFF +ROM:DC83 .byte 0xFF +ROM:DC84 .byte 0xFF +ROM:DC85 .byte 0xFF +ROM:DC86 .byte 0xFF +ROM:DC87 .byte 0xFF +ROM:DC88 .byte 0xFF +ROM:DC89 .byte 0xFF +ROM:DC8A .byte 0xFF +ROM:DC8B .byte 0xFF +ROM:DC8C .byte 0xFF +ROM:DC8D .byte 0xFF +ROM:DC8E .byte 0xFF +ROM:DC8F .byte 0xFF +ROM:DC90 .byte 0xFF +ROM:DC91 .byte 0xFF +ROM:DC92 .byte 0xFF +ROM:DC93 .byte 0xFF +ROM:DC94 .byte 0xFF +ROM:DC95 .byte 0xFF +ROM:DC96 .byte 0xFF +ROM:DC97 .byte 0xFF +ROM:DC98 .byte 0xFF +ROM:DC99 .byte 0xFF +ROM:DC9A .byte 0xFF +ROM:DC9B .byte 0xFF +ROM:DC9C .byte 0xFF +ROM:DC9D .byte 0xFF +ROM:DC9E .byte 0xFF +ROM:DC9F .byte 0xFF +ROM:DCA0 .byte 0xFF +ROM:DCA1 .byte 0xFF +ROM:DCA2 .byte 0xFF +ROM:DCA3 .byte 0xFF +ROM:DCA4 .byte 0xFF +ROM:DCA5 .byte 0xFF +ROM:DCA6 .byte 0xFF +ROM:DCA7 .byte 0xFF +ROM:DCA8 .byte 0xFF +ROM:DCA9 .byte 0xFF +ROM:DCAA .byte 0xFF +ROM:DCAB .byte 0xFF +ROM:DCAC .byte 0xFF +ROM:DCAD .byte 0xFF +ROM:DCAE .byte 0xFF +ROM:DCAF .byte 0xFF +ROM:DCB0 .byte 0xFF +ROM:DCB1 .byte 0xFF +ROM:DCB2 .byte 0xFF +ROM:DCB3 .byte 0xFF +ROM:DCB4 .byte 0xFF +ROM:DCB5 .byte 0xFF +ROM:DCB6 .byte 0xFF +ROM:DCB7 .byte 0xFF +ROM:DCB8 .byte 0xFF +ROM:DCB9 .byte 0xFF +ROM:DCBA .byte 0xFF +ROM:DCBB .byte 0xFF +ROM:DCBC .byte 0xFF +ROM:DCBD .byte 0xFF +ROM:DCBE .byte 0xFF +ROM:DCBF .byte 0xFF +ROM:DCC0 .byte 0xFF +ROM:DCC1 .byte 0xFF +ROM:DCC2 .byte 0xFF +ROM:DCC3 .byte 0xFF +ROM:DCC4 .byte 0xFF +ROM:DCC5 .byte 0xFF +ROM:DCC6 .byte 0xFF +ROM:DCC7 .byte 0xFF +ROM:DCC8 .byte 0xFF +ROM:DCC9 .byte 0xFF +ROM:DCCA .byte 0xFF +ROM:DCCB .byte 0xFF +ROM:DCCC .byte 0xFF +ROM:DCCD .byte 0xFF +ROM:DCCE .byte 0xFF +ROM:DCCF .byte 0xFF +ROM:DCD0 .byte 0xFF +ROM:DCD1 .byte 0xFF +ROM:DCD2 .byte 0xFF +ROM:DCD3 .byte 0xFF +ROM:DCD4 .byte 0xFF +ROM:DCD5 .byte 0xFF +ROM:DCD6 .byte 0xFF +ROM:DCD7 .byte 0xFF +ROM:DCD8 .byte 0xFF +ROM:DCD9 .byte 0xFF +ROM:DCDA .byte 0xFF +ROM:DCDB .byte 0xFF +ROM:DCDC .byte 0xFF +ROM:DCDD .byte 0xFF +ROM:DCDE .byte 0xFF +ROM:DCDF .byte 0xFF +ROM:DCE0 .byte 0xFF +ROM:DCE1 .byte 0xFF +ROM:DCE2 .byte 0xFF +ROM:DCE3 .byte 0xFF +ROM:DCE4 .byte 0xFF +ROM:DCE5 .byte 0xFF +ROM:DCE6 .byte 0xFF +ROM:DCE7 .byte 0xFF +ROM:DCE8 .byte 0xFF +ROM:DCE9 .byte 0xFF +ROM:DCEA .byte 0xFF +ROM:DCEB .byte 0xFF +ROM:DCEC .byte 0xFF +ROM:DCED .byte 0xFF +ROM:DCEE .byte 0xFF +ROM:DCEF .byte 0xFF +ROM:DCF0 .byte 0xFF +ROM:DCF1 .byte 0xFF +ROM:DCF2 .byte 0xFF +ROM:DCF3 .byte 0xFF +ROM:DCF4 .byte 0xFF +ROM:DCF5 .byte 0xFF +ROM:DCF6 .byte 0xFF +ROM:DCF7 .byte 0xFF +ROM:DCF8 .byte 0xFF +ROM:DCF9 .byte 0xFF +ROM:DCFA .byte 0xFF +ROM:DCFB .byte 0xFF +ROM:DCFC .byte 0xFF +ROM:DCFD .byte 0xFF +ROM:DCFE .byte 0xFF +ROM:DCFF .byte 0xFF +ROM:DD00 .byte 0xFF +ROM:DD01 .byte 0xFF +ROM:DD02 .byte 0xFF +ROM:DD03 .byte 0xFF +ROM:DD04 .byte 0xFF +ROM:DD05 .byte 0xFF +ROM:DD06 .byte 0xFF +ROM:DD07 .byte 0xFF +ROM:DD08 .byte 0xFF +ROM:DD09 .byte 0xFF +ROM:DD0A .byte 0xFF +ROM:DD0B .byte 0xFF +ROM:DD0C .byte 0xFF +ROM:DD0D .byte 0xFF +ROM:DD0E .byte 0xFF +ROM:DD0F .byte 0xFF +ROM:DD10 .byte 0xFF +ROM:DD11 .byte 0xFF +ROM:DD12 .byte 0xFF +ROM:DD13 .byte 0xFF +ROM:DD14 .byte 0xFF +ROM:DD15 .byte 0xFF +ROM:DD16 .byte 0xFF +ROM:DD17 .byte 0xFF +ROM:DD18 .byte 0xFF +ROM:DD19 .byte 0xFF +ROM:DD1A .byte 0xFF +ROM:DD1B .byte 0xFF +ROM:DD1C .byte 0xFF +ROM:DD1D .byte 0xFF +ROM:DD1E .byte 0xFF +ROM:DD1F .byte 0xFF +ROM:DD20 .byte 0xFF +ROM:DD21 .byte 0xFF +ROM:DD22 .byte 0xFF +ROM:DD23 .byte 0xFF +ROM:DD24 .byte 0xFF +ROM:DD25 .byte 0xFF +ROM:DD26 .byte 0xFF +ROM:DD27 .byte 0xFF +ROM:DD28 .byte 0xFF +ROM:DD29 .byte 0xFF +ROM:DD2A .byte 0xFF +ROM:DD2B .byte 0xFF +ROM:DD2C .byte 0xFF +ROM:DD2D .byte 0xFF +ROM:DD2E .byte 0xFF +ROM:DD2F .byte 0xFF +ROM:DD30 .byte 0xFF +ROM:DD31 .byte 0xFF +ROM:DD32 .byte 0xFF +ROM:DD33 .byte 0xFF +ROM:DD34 .byte 0xFF +ROM:DD35 .byte 0xFF +ROM:DD36 .byte 0xFF +ROM:DD37 .byte 0xFF +ROM:DD38 .byte 0xFF +ROM:DD39 .byte 0xFF +ROM:DD3A .byte 0xFF +ROM:DD3B .byte 0xFF +ROM:DD3C .byte 0xFF +ROM:DD3D .byte 0xFF +ROM:DD3E .byte 0xFF +ROM:DD3F .byte 0xFF +ROM:DD40 .byte 0xFF +ROM:DD41 .byte 0xFF +ROM:DD42 .byte 0xFF +ROM:DD43 .byte 0xFF +ROM:DD44 .byte 0xFF +ROM:DD45 .byte 0xFF +ROM:DD46 .byte 0xFF +ROM:DD47 .byte 0xFF +ROM:DD48 .byte 0xFF +ROM:DD49 .byte 0xFF +ROM:DD4A .byte 0xFF +ROM:DD4B .byte 0xFF +ROM:DD4C .byte 0xFF +ROM:DD4D .byte 0xFF +ROM:DD4E .byte 0xFF +ROM:DD4F .byte 0xFF +ROM:DD50 .byte 0xFF +ROM:DD51 .byte 0xFF +ROM:DD52 .byte 0xFF +ROM:DD53 .byte 0xFF +ROM:DD54 .byte 0xFF +ROM:DD55 .byte 0xFF +ROM:DD56 .byte 0xFF +ROM:DD57 .byte 0xFF +ROM:DD58 .byte 0xFF +ROM:DD59 .byte 0xFF +ROM:DD5A .byte 0xFF +ROM:DD5B .byte 0xFF +ROM:DD5C .byte 0xFF +ROM:DD5D .byte 0xFF +ROM:DD5E .byte 0xFF +ROM:DD5F .byte 0xFF +ROM:DD60 .byte 0xFF +ROM:DD61 .byte 0xFF +ROM:DD62 .byte 0xFF +ROM:DD63 .byte 0xFF +ROM:DD64 .byte 0xFF +ROM:DD65 .byte 0xFF +ROM:DD66 .byte 0xFF +ROM:DD67 .byte 0xFF +ROM:DD68 .byte 0xFF +ROM:DD69 .byte 0xFF +ROM:DD6A .byte 0xFF +ROM:DD6B .byte 0xFF +ROM:DD6C .byte 0xFF +ROM:DD6D .byte 0xFF +ROM:DD6E .byte 0xFF +ROM:DD6F .byte 0xFF +ROM:DD70 .byte 0xFF +ROM:DD71 .byte 0xFF +ROM:DD72 .byte 0xFF +ROM:DD73 .byte 0xFF +ROM:DD74 .byte 0xFF +ROM:DD75 .byte 0xFF +ROM:DD76 .byte 0xFF +ROM:DD77 .byte 0xFF +ROM:DD78 .byte 0xFF +ROM:DD79 .byte 0xFF +ROM:DD7A .byte 0xFF +ROM:DD7B .byte 0xFF +ROM:DD7C .byte 0xFF +ROM:DD7D .byte 0xFF +ROM:DD7E .byte 0xFF +ROM:DD7F .byte 0xFF +ROM:DD80 .byte 0xFF +ROM:DD81 .byte 0xFF +ROM:DD82 .byte 0xFF +ROM:DD83 .byte 0xFF +ROM:DD84 .byte 0xFF +ROM:DD85 .byte 0xFF +ROM:DD86 .byte 0xFF +ROM:DD87 .byte 0xFF +ROM:DD88 .byte 0xFF +ROM:DD89 .byte 0xFF +ROM:DD8A .byte 0xFF +ROM:DD8B .byte 0xFF +ROM:DD8C .byte 0xFF +ROM:DD8D .byte 0xFF +ROM:DD8E .byte 0xFF +ROM:DD8F .byte 0xFF +ROM:DD90 .byte 0xFF +ROM:DD91 .byte 0xFF +ROM:DD92 .byte 0xFF +ROM:DD93 .byte 0xFF +ROM:DD94 .byte 0xFF +ROM:DD95 .byte 0xFF +ROM:DD96 .byte 0xFF +ROM:DD97 .byte 0xFF +ROM:DD98 .byte 0xFF +ROM:DD99 .byte 0xFF +ROM:DD9A .byte 0xFF +ROM:DD9B .byte 0xFF +ROM:DD9C .byte 0xFF +ROM:DD9D .byte 0xFF +ROM:DD9E .byte 0xFF +ROM:DD9F .byte 0xFF +ROM:DDA0 .byte 0xFF +ROM:DDA1 .byte 0xFF +ROM:DDA2 .byte 0xFF +ROM:DDA3 .byte 0xFF +ROM:DDA4 .byte 0xFF +ROM:DDA5 .byte 0xFF +ROM:DDA6 .byte 0xFF +ROM:DDA7 .byte 0xFF +ROM:DDA8 .byte 0xFF +ROM:DDA9 .byte 0xFF +ROM:DDAA .byte 0xFF +ROM:DDAB .byte 0xFF +ROM:DDAC .byte 0xFF +ROM:DDAD .byte 0xFF +ROM:DDAE .byte 0xFF +ROM:DDAF .byte 0xFF +ROM:DDB0 .byte 0xFF +ROM:DDB1 .byte 0xFF +ROM:DDB2 .byte 0xFF +ROM:DDB3 .byte 0xFF +ROM:DDB4 .byte 0xFF +ROM:DDB5 .byte 0xFF +ROM:DDB6 .byte 0xFF +ROM:DDB7 .byte 0xFF +ROM:DDB8 .byte 0xFF +ROM:DDB9 .byte 0xFF +ROM:DDBA .byte 0xFF +ROM:DDBB .byte 0xFF +ROM:DDBC .byte 0xFF +ROM:DDBD .byte 0xFF +ROM:DDBE .byte 0xFF +ROM:DDBF .byte 0xFF +ROM:DDC0 .byte 0xFF +ROM:DDC1 .byte 0xFF +ROM:DDC2 .byte 0xFF +ROM:DDC3 .byte 0xFF +ROM:DDC4 .byte 0xFF +ROM:DDC5 .byte 0xFF +ROM:DDC6 .byte 0xFF +ROM:DDC7 .byte 0xFF +ROM:DDC8 .byte 0xFF +ROM:DDC9 .byte 0xFF +ROM:DDCA .byte 0xFF +ROM:DDCB .byte 0xFF +ROM:DDCC .byte 0xFF +ROM:DDCD .byte 0xFF +ROM:DDCE .byte 0xFF +ROM:DDCF .byte 0xFF +ROM:DDD0 .byte 0xFF +ROM:DDD1 .byte 0xFF +ROM:DDD2 .byte 0xFF +ROM:DDD3 .byte 0xFF +ROM:DDD4 .byte 0xFF +ROM:DDD5 .byte 0xFF +ROM:DDD6 .byte 0xFF +ROM:DDD7 .byte 0xFF +ROM:DDD8 .byte 0xFF +ROM:DDD9 .byte 0xFF +ROM:DDDA .byte 0xFF +ROM:DDDB .byte 0xFF +ROM:DDDC .byte 0xFF +ROM:DDDD .byte 0xFF +ROM:DDDE .byte 0xFF +ROM:DDDF .byte 0xFF +ROM:DDE0 .byte 0xFF +ROM:DDE1 .byte 0xFF +ROM:DDE2 .byte 0xFF +ROM:DDE3 .byte 0xFF +ROM:DDE4 .byte 0xFF +ROM:DDE5 .byte 0xFF +ROM:DDE6 .byte 0xFF +ROM:DDE7 .byte 0xFF +ROM:DDE8 .byte 0xFF +ROM:DDE9 .byte 0xFF +ROM:DDEA .byte 0xFF +ROM:DDEB .byte 0xFF +ROM:DDEC .byte 0xFF +ROM:DDED .byte 0xFF +ROM:DDEE .byte 0xFF +ROM:DDEF .byte 0xFF +ROM:DDF0 .byte 0xFF +ROM:DDF1 .byte 0xFF +ROM:DDF2 .byte 0xFF +ROM:DDF3 .byte 0xFF +ROM:DDF4 .byte 0xFF +ROM:DDF5 .byte 0xFF +ROM:DDF6 .byte 0xFF +ROM:DDF7 .byte 0xFF +ROM:DDF8 .byte 0xFF +ROM:DDF9 .byte 0xFF +ROM:DDFA .byte 0xFF +ROM:DDFB .byte 0xFF +ROM:DDFC .byte 0xFF +ROM:DDFD .byte 0xFF +ROM:DDFE .byte 0xFF +ROM:DDFF .byte 0xFF +ROM:DE00 .byte 0xFF +ROM:DE01 .byte 0xFF +ROM:DE02 .byte 0xFF +ROM:DE03 .byte 0xFF +ROM:DE04 .byte 0xFF +ROM:DE05 .byte 0xFF +ROM:DE06 .byte 0xFF +ROM:DE07 .byte 0xFF +ROM:DE08 .byte 0xFF +ROM:DE09 .byte 0xFF +ROM:DE0A .byte 0xFF +ROM:DE0B .byte 0xFF +ROM:DE0C .byte 0xFF +ROM:DE0D .byte 0xFF +ROM:DE0E .byte 0xFF +ROM:DE0F .byte 0xFF +ROM:DE10 .byte 0xFF +ROM:DE11 .byte 0xFF +ROM:DE12 .byte 0xFF +ROM:DE13 .byte 0xFF +ROM:DE14 .byte 0xFF +ROM:DE15 .byte 0xFF +ROM:DE16 .byte 0xFF +ROM:DE17 .byte 0xFF +ROM:DE18 .byte 0xFF +ROM:DE19 .byte 0xFF +ROM:DE1A .byte 0xFF +ROM:DE1B .byte 0xFF +ROM:DE1C .byte 0xFF +ROM:DE1D .byte 0xFF +ROM:DE1E .byte 0xFF +ROM:DE1F .byte 0xFF +ROM:DE20 .byte 0xFF +ROM:DE21 .byte 0xFF +ROM:DE22 .byte 0xFF +ROM:DE23 .byte 0xFF +ROM:DE24 .byte 0xFF +ROM:DE25 .byte 0xFF +ROM:DE26 .byte 0xFF +ROM:DE27 .byte 0xFF +ROM:DE28 .byte 0xFF +ROM:DE29 .byte 0xFF +ROM:DE2A .byte 0xFF +ROM:DE2B .byte 0xFF +ROM:DE2C .byte 0xFF +ROM:DE2D .byte 0xFF +ROM:DE2E .byte 0xFF +ROM:DE2F .byte 0xFF +ROM:DE30 .byte 0xFF +ROM:DE31 .byte 0xFF +ROM:DE32 .byte 0xFF +ROM:DE33 .byte 0xFF +ROM:DE34 .byte 0xFF +ROM:DE35 .byte 0xFF +ROM:DE36 .byte 0xFF +ROM:DE37 .byte 0xFF +ROM:DE38 .byte 0xFF +ROM:DE39 .byte 0xFF +ROM:DE3A .byte 0xFF +ROM:DE3B .byte 0xFF +ROM:DE3C .byte 0xFF +ROM:DE3D .byte 0xFF +ROM:DE3E .byte 0xFF +ROM:DE3F .byte 0xFF +ROM:DE40 .byte 0xFF +ROM:DE41 .byte 0xFF +ROM:DE42 .byte 0xFF +ROM:DE43 .byte 0xFF +ROM:DE44 .byte 0xFF +ROM:DE45 .byte 0xFF +ROM:DE46 .byte 0xFF +ROM:DE47 .byte 0xFF +ROM:DE48 .byte 0xFF +ROM:DE49 .byte 0xFF +ROM:DE4A .byte 0xFF +ROM:DE4B .byte 0xFF +ROM:DE4C .byte 0xFF +ROM:DE4D .byte 0xFF +ROM:DE4E .byte 0xFF +ROM:DE4F .byte 0xFF +ROM:DE50 .byte 0xFF +ROM:DE51 .byte 0xFF +ROM:DE52 .byte 0xFF +ROM:DE53 .byte 0xFF +ROM:DE54 .byte 0xFF +ROM:DE55 .byte 0xFF +ROM:DE56 .byte 0xFF +ROM:DE57 .byte 0xFF +ROM:DE58 .byte 0xFF +ROM:DE59 .byte 0xFF +ROM:DE5A .byte 0xFF +ROM:DE5B .byte 0xFF +ROM:DE5C .byte 0xFF +ROM:DE5D .byte 0xFF +ROM:DE5E .byte 0xFF +ROM:DE5F .byte 0xFF +ROM:DE60 .byte 0xFF +ROM:DE61 .byte 0xFF +ROM:DE62 .byte 0xFF +ROM:DE63 .byte 0xFF +ROM:DE64 .byte 0xFF +ROM:DE65 .byte 0xFF +ROM:DE66 .byte 0xFF +ROM:DE67 .byte 0xFF +ROM:DE68 .byte 0xFF +ROM:DE69 .byte 0xFF +ROM:DE6A .byte 0xFF +ROM:DE6B .byte 0xFF +ROM:DE6C .byte 0xFF +ROM:DE6D .byte 0xFF +ROM:DE6E .byte 0xFF +ROM:DE6F .byte 0xFF +ROM:DE70 .byte 0xFF +ROM:DE71 .byte 0xFF +ROM:DE72 .byte 0xFF +ROM:DE73 .byte 0xFF +ROM:DE74 .byte 0xFF +ROM:DE75 .byte 0xFF +ROM:DE76 .byte 0xFF +ROM:DE77 .byte 0xFF +ROM:DE78 .byte 0xFF +ROM:DE79 .byte 0xFF +ROM:DE7A .byte 0xFF +ROM:DE7B .byte 0xFF +ROM:DE7C .byte 0xFF +ROM:DE7D .byte 0xFF +ROM:DE7E .byte 0xFF +ROM:DE7F .byte 0xFF +ROM:DE80 .byte 0xFF +ROM:DE81 .byte 0xFF +ROM:DE82 .byte 0xFF +ROM:DE83 .byte 0xFF +ROM:DE84 .byte 0xFF +ROM:DE85 .byte 0xFF +ROM:DE86 .byte 0xFF +ROM:DE87 .byte 0xFF +ROM:DE88 .byte 0xFF +ROM:DE89 .byte 0xFF +ROM:DE8A .byte 0xFF +ROM:DE8B .byte 0xFF +ROM:DE8C .byte 0xFF +ROM:DE8D .byte 0xFF +ROM:DE8E .byte 0xFF +ROM:DE8F .byte 0xFF +ROM:DE90 .byte 0xFF +ROM:DE91 .byte 0xFF +ROM:DE92 .byte 0xFF +ROM:DE93 .byte 0xFF +ROM:DE94 .byte 0xFF +ROM:DE95 .byte 0xFF +ROM:DE96 .byte 0xFF +ROM:DE97 .byte 0xFF +ROM:DE98 .byte 0xFF +ROM:DE99 .byte 0xFF +ROM:DE9A .byte 0xFF +ROM:DE9B .byte 0xFF +ROM:DE9C .byte 0xFF +ROM:DE9D .byte 0xFF +ROM:DE9E .byte 0xFF +ROM:DE9F .byte 0xFF +ROM:DEA0 .byte 0xFF +ROM:DEA1 .byte 0xFF +ROM:DEA2 .byte 0xFF +ROM:DEA3 .byte 0xFF +ROM:DEA4 .byte 0xFF +ROM:DEA5 .byte 0xFF +ROM:DEA6 .byte 0xFF +ROM:DEA7 .byte 0xFF +ROM:DEA8 .byte 0xFF +ROM:DEA9 .byte 0xFF +ROM:DEAA .byte 0xFF +ROM:DEAB .byte 0xFF +ROM:DEAC .byte 0xFF +ROM:DEAD .byte 0xFF +ROM:DEAE .byte 0xFF +ROM:DEAF .byte 0xFF +ROM:DEB0 .byte 0xFF +ROM:DEB1 .byte 0xFF +ROM:DEB2 .byte 0xFF +ROM:DEB3 .byte 0xFF +ROM:DEB4 .byte 0xFF +ROM:DEB5 .byte 0xFF +ROM:DEB6 .byte 0xFF +ROM:DEB7 .byte 0xFF +ROM:DEB8 .byte 0xFF +ROM:DEB9 .byte 0xFF +ROM:DEBA .byte 0xFF +ROM:DEBB .byte 0xFF +ROM:DEBC .byte 0xFF +ROM:DEBD .byte 0xFF +ROM:DEBE .byte 0xFF +ROM:DEBF .byte 0xFF +ROM:DEC0 .byte 0xFF +ROM:DEC1 .byte 0xFF +ROM:DEC2 .byte 0xFF +ROM:DEC3 .byte 0xFF +ROM:DEC4 .byte 0xFF +ROM:DEC5 .byte 0xFF +ROM:DEC6 .byte 0xFF +ROM:DEC7 .byte 0xFF +ROM:DEC8 .byte 0xFF +ROM:DEC9 .byte 0xFF +ROM:DECA .byte 0xFF +ROM:DECB .byte 0xFF +ROM:DECC .byte 0xFF +ROM:DECD .byte 0xFF +ROM:DECE .byte 0xFF +ROM:DECF .byte 0xFF +ROM:DED0 .byte 0xFF +ROM:DED1 .byte 0xFF +ROM:DED2 .byte 0xFF +ROM:DED3 .byte 0xFF +ROM:DED4 .byte 0xFF +ROM:DED5 .byte 0xFF +ROM:DED6 .byte 0xFF +ROM:DED7 .byte 0xFF +ROM:DED8 .byte 0xFF +ROM:DED9 .byte 0xFF +ROM:DEDA .byte 0xFF +ROM:DEDB .byte 0xFF +ROM:DEDC .byte 0xFF +ROM:DEDD .byte 0xFF +ROM:DEDE .byte 0xFF +ROM:DEDF .byte 0xFF +ROM:DEE0 .byte 0xFF +ROM:DEE1 .byte 0xFF +ROM:DEE2 .byte 0xFF +ROM:DEE3 .byte 0xFF +ROM:DEE4 .byte 0xFF +ROM:DEE5 .byte 0xFF +ROM:DEE6 .byte 0xFF +ROM:DEE7 .byte 0xFF +ROM:DEE8 .byte 0xFF +ROM:DEE9 .byte 0xFF +ROM:DEEA .byte 0xFF +ROM:DEEB .byte 0xFF +ROM:DEEC .byte 0xFF +ROM:DEED .byte 0xFF +ROM:DEEE .byte 0xFF +ROM:DEEF .byte 0xFF +ROM:DEF0 .byte 0xFF +ROM:DEF1 .byte 0xFF +ROM:DEF2 .byte 0xFF +ROM:DEF3 .byte 0xFF +ROM:DEF4 .byte 0xFF +ROM:DEF5 .byte 0xFF +ROM:DEF6 .byte 0xFF +ROM:DEF7 .byte 0xFF +ROM:DEF8 .byte 0xFF +ROM:DEF9 .byte 0xFF +ROM:DEFA .byte 0xFF +ROM:DEFB .byte 0xFF +ROM:DEFC .byte 0xFF +ROM:DEFD .byte 0xFF +ROM:DEFE .byte 0xFF +ROM:DEFF .byte 0xFF +ROM:DF00 .byte 0xFF +ROM:DF01 .byte 0xFF +ROM:DF02 .byte 0xFF +ROM:DF03 .byte 0xFF +ROM:DF04 .byte 0xFF +ROM:DF05 .byte 0xFF +ROM:DF06 .byte 0xFF +ROM:DF07 .byte 0xFF +ROM:DF08 .byte 0xFF +ROM:DF09 .byte 0xFF +ROM:DF0A .byte 0xFF +ROM:DF0B .byte 0xFF +ROM:DF0C .byte 0xFF +ROM:DF0D .byte 0xFF +ROM:DF0E .byte 0xFF +ROM:DF0F .byte 0xFF +ROM:DF10 .byte 0xFF +ROM:DF11 .byte 0xFF +ROM:DF12 .byte 0xFF +ROM:DF13 .byte 0xFF +ROM:DF14 .byte 0xFF +ROM:DF15 .byte 0xFF +ROM:DF16 .byte 0xFF +ROM:DF17 .byte 0xFF +ROM:DF18 .byte 0xFF +ROM:DF19 .byte 0xFF +ROM:DF1A .byte 0xFF +ROM:DF1B .byte 0xFF +ROM:DF1C .byte 0xFF +ROM:DF1D .byte 0xFF +ROM:DF1E .byte 0xFF +ROM:DF1F .byte 0xFF +ROM:DF20 .byte 0xFF +ROM:DF21 .byte 0xFF +ROM:DF22 .byte 0xFF +ROM:DF23 .byte 0xFF +ROM:DF24 .byte 0xFF +ROM:DF25 .byte 0xFF +ROM:DF26 .byte 0xFF +ROM:DF27 .byte 0xFF +ROM:DF28 .byte 0xFF +ROM:DF29 .byte 0xFF +ROM:DF2A .byte 0xFF +ROM:DF2B .byte 0xFF +ROM:DF2C .byte 0xFF +ROM:DF2D .byte 0xFF +ROM:DF2E .byte 0xFF +ROM:DF2F .byte 0xFF +ROM:DF30 .byte 0xFF +ROM:DF31 .byte 0xFF +ROM:DF32 .byte 0xFF +ROM:DF33 .byte 0xFF +ROM:DF34 .byte 0xFF +ROM:DF35 .byte 0xFF +ROM:DF36 .byte 0xFF +ROM:DF37 .byte 0xFF +ROM:DF38 .byte 0xFF +ROM:DF39 .byte 0xFF +ROM:DF3A .byte 0xFF +ROM:DF3B .byte 0xFF +ROM:DF3C .byte 0xFF +ROM:DF3D .byte 0xFF +ROM:DF3E .byte 0xFF +ROM:DF3F .byte 0xFF +ROM:DF40 .byte 0xFF +ROM:DF41 .byte 0xFF +ROM:DF42 .byte 0xFF +ROM:DF43 .byte 0xFF +ROM:DF44 .byte 0xFF +ROM:DF45 .byte 0xFF +ROM:DF46 .byte 0xFF +ROM:DF47 .byte 0xFF +ROM:DF48 .byte 0xFF +ROM:DF49 .byte 0xFF +ROM:DF4A .byte 0xFF +ROM:DF4B .byte 0xFF +ROM:DF4C .byte 0xFF +ROM:DF4D .byte 0xFF +ROM:DF4E .byte 0xFF +ROM:DF4F .byte 0xFF +ROM:DF50 .byte 0xFF +ROM:DF51 .byte 0xFF +ROM:DF52 .byte 0xFF +ROM:DF53 .byte 0xFF +ROM:DF54 .byte 0xFF +ROM:DF55 .byte 0xFF +ROM:DF56 .byte 0xFF +ROM:DF57 .byte 0xFF +ROM:DF58 .byte 0xFF +ROM:DF59 .byte 0xFF +ROM:DF5A .byte 0xFF +ROM:DF5B .byte 0xFF +ROM:DF5C .byte 0xFF +ROM:DF5D .byte 0xFF +ROM:DF5E .byte 0xFF +ROM:DF5F .byte 0xFF +ROM:DF60 .byte 0xFF +ROM:DF61 .byte 0xFF +ROM:DF62 .byte 0xFF +ROM:DF63 .byte 0xFF +ROM:DF64 .byte 0xFF +ROM:DF65 .byte 0xFF +ROM:DF66 .byte 0xFF +ROM:DF67 .byte 0xFF +ROM:DF68 .byte 0xFF +ROM:DF69 .byte 0xFF +ROM:DF6A .byte 0xFF +ROM:DF6B .byte 0xFF +ROM:DF6C .byte 0xFF +ROM:DF6D .byte 0xFF +ROM:DF6E .byte 0xFF +ROM:DF6F .byte 0xFF +ROM:DF70 .byte 0xFF +ROM:DF71 .byte 0xFF +ROM:DF72 .byte 0xFF +ROM:DF73 .byte 0xFF +ROM:DF74 .byte 0xFF +ROM:DF75 .byte 0xFF +ROM:DF76 .byte 0xFF +ROM:DF77 .byte 0xFF +ROM:DF78 .byte 0xFF +ROM:DF79 .byte 0xFF +ROM:DF7A .byte 0xFF +ROM:DF7B .byte 0xFF +ROM:DF7C .byte 0xFF +ROM:DF7D .byte 0xFF +ROM:DF7E .byte 0xFF +ROM:DF7F .byte 0xFF +ROM:DF80 .byte 0xFF +ROM:DF81 .byte 0xFF +ROM:DF82 .byte 0xFF +ROM:DF83 .byte 0xFF +ROM:DF84 .byte 0xFF +ROM:DF85 .byte 0xFF +ROM:DF86 .byte 0xFF +ROM:DF87 .byte 0xFF +ROM:DF88 .byte 0xFF +ROM:DF89 .byte 0xFF +ROM:DF8A .byte 0xFF +ROM:DF8B .byte 0xFF +ROM:DF8C .byte 0xFF +ROM:DF8D .byte 0xFF +ROM:DF8E .byte 0xFF +ROM:DF8F .byte 0xFF +ROM:DF90 .byte 0xFF +ROM:DF91 .byte 0xFF +ROM:DF92 .byte 0xFF +ROM:DF93 .byte 0xFF +ROM:DF94 .byte 0xFF +ROM:DF95 .byte 0xFF +ROM:DF96 .byte 0xFF +ROM:DF97 .byte 0xFF +ROM:DF98 .byte 0xFF +ROM:DF99 .byte 0xFF +ROM:DF9A .byte 0xFF +ROM:DF9B .byte 0xFF +ROM:DF9C .byte 0xFF +ROM:DF9D .byte 0xFF +ROM:DF9E .byte 0xFF +ROM:DF9F .byte 0xFF +ROM:DFA0 .byte 0xFF +ROM:DFA1 .byte 0xFF +ROM:DFA2 .byte 0xFF +ROM:DFA3 .byte 0xFF +ROM:DFA4 .byte 0xFF +ROM:DFA5 .byte 0xFF +ROM:DFA6 .byte 0xFF +ROM:DFA7 .byte 0xFF +ROM:DFA8 .byte 0xFF +ROM:DFA9 .byte 0xFF +ROM:DFAA .byte 0xFF +ROM:DFAB .byte 0xFF +ROM:DFAC .byte 0xFF +ROM:DFAD Radio_IRQ4_Pending:.byte 0xFF ; DATA XREF: SleepSub+30↑o +ROM:DFAE .byte 0xFF +ROM:DFAF .byte 0xFF +ROM:DFB0 .byte 0xFF +ROM:DFB1 .byte 0xFF +ROM:DFB2 .byte 0xFF +ROM:DFB3 .byte 0xFF +ROM:DFB4 .byte 0xFF +ROM:DFB5 .byte 0xFF +ROM:DFB6 .byte 0xFF +ROM:DFB7 .byte 0xFF +ROM:DFB8 .byte 0xFF +ROM:DFB9 .byte 0xFF +ROM:DFBA .byte 0xFF +ROM:DFBB .byte 0xFF +ROM:DFBC .byte 0xFF +ROM:DFBD .byte 0xFF +ROM:DFBE .byte 0xFF +ROM:DFBF .byte 0xFF +ROM:DFC0 .byte 0xFF +ROM:DFC1 .byte 0xFF +ROM:DFC2 .byte 0xFF +ROM:DFC3 .byte 0xFF +ROM:DFC4 .byte 0xFF +ROM:DFC5 .byte 0xFF +ROM:DFC6 .byte 0xFF +ROM:DFC7 .byte 0xFF +ROM:DFC8 .byte 0xFF +ROM:DFC9 .byte 0xFF +ROM:DFCA .byte 0xFF +ROM:DFCB .byte 0xFF +ROM:DFCC .byte 0xFF +ROM:DFCD .byte 0xFF +ROM:DFCE .byte 0xFF +ROM:DFCF .byte 0xFF +ROM:DFD0 .byte 0xFF +ROM:DFD1 .byte 0xFF +ROM:DFD2 .byte 0xFF +ROM:DFD3 .byte 0xFF +ROM:DFD4 .byte 0xFF +ROM:DFD5 .byte 0xFF +ROM:DFD6 .byte 0xFF +ROM:DFD7 .byte 0xFF +ROM:DFD8 .byte 0xFF +ROM:DFD9 .byte 0xFF +ROM:DFDA SleepTimerMid: .byte 0xFF ; DATA XREF: SleepSub+9C↑o +ROM:DFDA ; SleepSub+B5↑o +ROM:DFDB SleepTimerLow: .byte 0xFF ; DATA XREF: SleepSub+96↑o +ROM:DFDB ; SleepSub+A9↑o +ROM:DFDC .byte 0xFF +ROM:DFDD .byte 0xFF +ROM:DFDE .byte 0xFF +ROM:DFDF .byte 0xFF +ROM:DFE0 .byte 0xFF +ROM:DFE1 .byte 0xFF +ROM:DFE2 .byte 0xFF +ROM:DFE3 .byte 0xFF +ROM:DFE4 .byte 0xFF +ROM:DFE5 .byte 0xFF +ROM:DFE6 .byte 0xFF +ROM:DFE7 .byte 0xFF +ROM:DFE8 .byte 0xFF +ROM:DFE9 .byte 0xFF +ROM:DFEA .byte 0xFF +ROM:DFEB .byte 0xFF +ROM:DFEC .byte 0xFF +ROM:DFED .byte 0xFF +ROM:DFEE .byte 0xFF +ROM:DFEF .byte 0xFF +ROM:DFF0 .byte 0xFF +ROM:DFF1 .byte 0xFF +ROM:DFF2 .byte 0xFF +ROM:DFF3 .byte 0xFF +ROM:DFF4 .byte 0xFF +ROM:DFF5 .byte 0xFF +ROM:DFF6 .byte 0xFF +ROM:DFF7 .byte 0xFF +ROM:DFF8 .byte 0xFF +ROM:DFF9 .byte 0xFF +ROM:DFFA .byte 0xFF +ROM:DFFB .byte 0xFF +ROM:DFFC .byte 0xFF +ROM:DFFD .byte 0xFF +ROM:DFFE .byte 0xFF +ROM:DFFF .byte 0xFF +ROM:E000 .byte 0xFF +ROM:E001 .byte 0xFF +ROM:E002 .byte 0xFF +ROM:E003 .byte 0xFF +ROM:E004 .byte 0xFF +ROM:E005 .byte 0xFF +ROM:E006 .byte 0xFF +ROM:E007 .byte 0xFF +ROM:E008 .byte 0xFF +ROM:E009 .byte 0xFF +ROM:E00A .byte 0xFF +ROM:E00B .byte 0xFF +ROM:E00C .byte 0xFF +ROM:E00D .byte 0xFF +ROM:E00E .byte 0xFF +ROM:E00F .byte 0xFF +ROM:E010 .byte 0xFF +ROM:E011 .byte 0xFF +ROM:E012 .byte 0xFF +ROM:E013 .byte 0xFF +ROM:E014 .byte 0xFF +ROM:E015 .byte 0xFF +ROM:E016 .byte 0xFF +ROM:E017 .byte 0xFF +ROM:E018 .byte 0xFF +ROM:E019 .byte 0xFF +ROM:E01A .byte 0xFF +ROM:E01B .byte 0xFF +ROM:E01C .byte 0xFF +ROM:E01D .byte 0xFF +ROM:E01E .byte 0xFF +ROM:E01F .byte 0xFF +ROM:E020 .byte 0xFF +ROM:E021 .byte 0xFF +ROM:E022 .byte 0xFF +ROM:E023 .byte 0xFF +ROM:E024 .byte 0xFF +ROM:E025 .byte 0xFF +ROM:E026 .byte 0xFF +ROM:E027 .byte 0xFF +ROM:E028 .byte 0xFF +ROM:E029 .byte 0xFF +ROM:E02A .byte 0xFF +ROM:E02B .byte 0xFF +ROM:E02C .byte 0xFF +ROM:E02D .byte 0xFF +ROM:E02E .byte 0xFF +ROM:E02F .byte 0xFF +ROM:E030 .byte 0xFF +ROM:E031 .byte 0xFF +ROM:E032 .byte 0xFF +ROM:E033 .byte 0xFF +ROM:E034 .byte 0xFF +ROM:E035 .byte 0xFF +ROM:E036 .byte 0xFF +ROM:E037 .byte 0xFF +ROM:E038 .byte 0xFF +ROM:E039 .byte 0xFF +ROM:E03A .byte 0xFF +ROM:E03B .byte 0xFF +ROM:E03C .byte 0xFF +ROM:E03D .byte 0xFF +ROM:E03E .byte 0xFF +ROM:E03F .byte 0xFF +ROM:E040 .byte 0xFF +ROM:E041 .byte 0xFF +ROM:E042 .byte 0xFF +ROM:E043 .byte 0xFF +ROM:E044 .byte 0xFF +ROM:E045 .byte 0xFF +ROM:E046 .byte 0xFF +ROM:E047 .byte 0xFF +ROM:E048 .byte 0xFF +ROM:E049 .byte 0xFF +ROM:E04A .byte 0xFF +ROM:E04B .byte 0xFF +ROM:E04C .byte 0xFF +ROM:E04D .byte 0xFF +ROM:E04E .byte 0xFF +ROM:E04F .byte 0xFF +ROM:E050 .byte 0xFF +ROM:E051 .byte 0xFF +ROM:E052 .byte 0xFF +ROM:E053 .byte 0xFF +ROM:E054 .byte 0xFF +ROM:E055 .byte 0xFF +ROM:E056 .byte 0xFF +ROM:E057 .byte 0xFF +ROM:E058 .byte 0xFF +ROM:E059 .byte 0xFF +ROM:E05A .byte 0xFF +ROM:E05B .byte 0xFF +ROM:E05C .byte 0xFF +ROM:E05D .byte 0xFF +ROM:E05E .byte 0xFF +ROM:E05F .byte 0xFF +ROM:E060 .byte 0xFF +ROM:E061 .byte 0xFF +ROM:E062 .byte 0xFF +ROM:E063 .byte 0xFF +ROM:E064 .byte 0xFF +ROM:E065 .byte 0xFF +ROM:E066 .byte 0xFF +ROM:E067 .byte 0xFF +ROM:E068 .byte 0xFF +ROM:E069 .byte 0xFF +ROM:E06A .byte 0xFF +ROM:E06B .byte 0xFF +ROM:E06C .byte 0xFF +ROM:E06D .byte 0xFF +ROM:E06E .byte 0xFF +ROM:E06F .byte 0xFF +ROM:E070 .byte 0xFF +ROM:E071 .byte 0xFF +ROM:E072 .byte 0xFF +ROM:E073 .byte 0xFF +ROM:E074 .byte 0xFF +ROM:E075 .byte 0xFF +ROM:E076 .byte 0xFF +ROM:E077 .byte 0xFF +ROM:E078 .byte 0xFF +ROM:E079 .byte 0xFF +ROM:E07A .byte 0xFF +ROM:E07B .byte 0xFF +ROM:E07C .byte 0xFF +ROM:E07D .byte 0xFF +ROM:E07E .byte 0xFF +ROM:E07F .byte 0xFF +ROM:E080 .byte 0xFF +ROM:E081 .byte 0xFF +ROM:E082 .byte 0xFF +ROM:E083 .byte 0xFF +ROM:E084 .byte 0xFF +ROM:E085 .byte 0xFF +ROM:E086 .byte 0xFF +ROM:E087 .byte 0xFF +ROM:E088 .byte 0xFF +ROM:E089 .byte 0xFF +ROM:E08A .byte 0xFF +ROM:E08B .byte 0xFF +ROM:E08C .byte 0xFF +ROM:E08D .byte 0xFF +ROM:E08E .byte 0xFF +ROM:E08F .byte 0xFF +ROM:E090 .byte 0xFF +ROM:E091 .byte 0xFF +ROM:E092 .byte 0xFF +ROM:E093 .byte 0xFF +ROM:E094 .byte 0xFF +ROM:E095 .byte 0xFF +ROM:E096 .byte 0xFF +ROM:E097 .byte 0xFF +ROM:E098 .byte 0xFF +ROM:E099 .byte 0xFF +ROM:E09A .byte 0xFF +ROM:E09B .byte 0xFF +ROM:E09C .byte 0xFF +ROM:E09D .byte 0xFF +ROM:E09E .byte 0xFF +ROM:E09F .byte 0xFF +ROM:E0A0 .byte 0xFF +ROM:E0A1 .byte 0xFF +ROM:E0A2 .byte 0xFF +ROM:E0A3 .byte 0xFF +ROM:E0A4 .byte 0xFF +ROM:E0A5 .byte 0xFF +ROM:E0A6 .byte 0xFF +ROM:E0A7 .byte 0xFF +ROM:E0A8 .byte 0xFF +ROM:E0A9 .byte 0xFF +ROM:E0AA .byte 0xFF +ROM:E0AB .byte 0xFF +ROM:E0AC .byte 0xFF +ROM:E0AD .byte 0xFF +ROM:E0AE .byte 0xFF +ROM:E0AF .byte 0xFF +ROM:E0B0 .byte 0xFF +ROM:E0B1 .byte 0xFF +ROM:E0B2 .byte 0xFF +ROM:E0B3 .byte 0xFF +ROM:E0B4 .byte 0xFF +ROM:E0B5 .byte 0xFF +ROM:E0B6 .byte 0xFF +ROM:E0B7 .byte 0xFF +ROM:E0B8 .byte 0xFF +ROM:E0B9 .byte 0xFF +ROM:E0BA .byte 0xFF +ROM:E0BB .byte 0xFF +ROM:E0BC .byte 0xFF +ROM:E0BD .byte 0xFF +ROM:E0BE .byte 0xFF +ROM:E0BF .byte 0xFF +ROM:E0C0 .byte 0xFF +ROM:E0C1 .byte 0xFF +ROM:E0C2 .byte 0xFF +ROM:E0C3 .byte 0xFF +ROM:E0C4 .byte 0xFF +ROM:E0C5 .byte 0xFF +ROM:E0C6 .byte 0xFF +ROM:E0C7 .byte 0xFF +ROM:E0C8 .byte 0xFF +ROM:E0C9 .byte 0xFF +ROM:E0CA .byte 0xFF +ROM:E0CB .byte 0xFF +ROM:E0CC .byte 0xFF +ROM:E0CD .byte 0xFF +ROM:E0CE .byte 0xFF +ROM:E0CF .byte 0xFF +ROM:E0D0 .byte 0xFF +ROM:E0D1 .byte 0xFF +ROM:E0D2 .byte 0xFF +ROM:E0D3 .byte 0xFF +ROM:E0D4 .byte 0xFF +ROM:E0D5 .byte 0xFF +ROM:E0D6 .byte 0xFF +ROM:E0D7 .byte 0xFF +ROM:E0D8 .byte 0xFF +ROM:E0D9 .byte 0xFF +ROM:E0DA .byte 0xFF +ROM:E0DB .byte 0xFF +ROM:E0DC .byte 0xFF +ROM:E0DD .byte 0xFF +ROM:E0DE .byte 0xFF +ROM:E0DF .byte 0xFF +ROM:E0E0 .byte 0xFF +ROM:E0E1 .byte 0xFF +ROM:E0E2 .byte 0xFF +ROM:E0E3 .byte 0xFF +ROM:E0E4 .byte 0xFF +ROM:E0E5 .byte 0xFF +ROM:E0E6 .byte 0xFF +ROM:E0E7 .byte 0xFF +ROM:E0E8 .byte 0xFF +ROM:E0E9 .byte 0xFF +ROM:E0EA .byte 0xFF +ROM:E0EB .byte 0xFF +ROM:E0EC .byte 0xFF +ROM:E0ED .byte 0xFF +ROM:E0EE .byte 0xFF +ROM:E0EF .byte 0xFF +ROM:E0F0 .byte 0xFF +ROM:E0F1 .byte 0xFF +ROM:E0F2 .byte 0xFF +ROM:E0F3 .byte 0xFF +ROM:E0F4 .byte 0xFF +ROM:E0F5 .byte 0xFF +ROM:E0F6 .byte 0xFF +ROM:E0F7 .byte 0xFF +ROM:E0F8 .byte 0xFF +ROM:E0F9 .byte 0xFF +ROM:E0FA .byte 0xFF +ROM:E0FB .byte 0xFF +ROM:E0FC .byte 0xFF +ROM:E0FD .byte 0xFF +ROM:E0FE .byte 0xFF +ROM:E0FF .byte 0xFF +ROM:E100 .byte 0xFF +ROM:E101 .byte 0xFF +ROM:E102 .byte 0xFF +ROM:E103 .byte 0xFF +ROM:E104 .byte 0xFF +ROM:E105 .byte 0xFF +ROM:E106 .byte 0xFF +ROM:E107 .byte 0xFF +ROM:E108 .byte 0xFF +ROM:E109 .byte 0xFF +ROM:E10A .byte 0xFF +ROM:E10B .byte 0xFF +ROM:E10C .byte 0xFF +ROM:E10D .byte 0xFF +ROM:E10E .byte 0xFF +ROM:E10F .byte 0xFF +ROM:E110 .byte 0xFF +ROM:E111 .byte 0xFF +ROM:E112 .byte 0xFF +ROM:E113 .byte 0xFF +ROM:E114 .byte 0xFF +ROM:E115 .byte 0xFF +ROM:E116 .byte 0xFF +ROM:E117 .byte 0xFF +ROM:E118 .byte 0xFF +ROM:E119 .byte 0xFF +ROM:E11A .byte 0xFF +ROM:E11B .byte 0xFF +ROM:E11C .byte 0xFF +ROM:E11D .byte 0xFF +ROM:E11E .byte 0xFF +ROM:E11F .byte 0xFF +ROM:E120 .byte 0xFF +ROM:E121 .byte 0xFF +ROM:E122 .byte 0xFF +ROM:E123 .byte 0xFF +ROM:E124 .byte 0xFF +ROM:E125 .byte 0xFF +ROM:E126 .byte 0xFF +ROM:E127 .byte 0xFF +ROM:E128 .byte 0xFF +ROM:E129 .byte 0xFF +ROM:E12A .byte 0xFF +ROM:E12B .byte 0xFF +ROM:E12C .byte 0xFF +ROM:E12D .byte 0xFF +ROM:E12E .byte 0xFF +ROM:E12F .byte 0xFF +ROM:E130 .byte 0xFF +ROM:E131 .byte 0xFF +ROM:E132 .byte 0xFF +ROM:E133 .byte 0xFF +ROM:E134 .byte 0xFF +ROM:E135 .byte 0xFF +ROM:E136 .byte 0xFF +ROM:E137 .byte 0xFF +ROM:E138 .byte 0xFF +ROM:E139 .byte 0xFF +ROM:E13A .byte 0xFF +ROM:E13B .byte 0xFF +ROM:E13C .byte 0xFF +ROM:E13D .byte 0xFF +ROM:E13E .byte 0xFF +ROM:E13F .byte 0xFF +ROM:E140 .byte 0xFF +ROM:E141 .byte 0xFF +ROM:E142 .byte 0xFF +ROM:E143 .byte 0xFF +ROM:E144 .byte 0xFF +ROM:E145 .byte 0xFF +ROM:E146 .byte 0xFF +ROM:E147 .byte 0xFF +ROM:E148 .byte 0xFF +ROM:E149 .byte 0xFF +ROM:E14A .byte 0xFF +ROM:E14B .byte 0xFF +ROM:E14C .byte 0xFF +ROM:E14D .byte 0xFF +ROM:E14E .byte 0xFF +ROM:E14F .byte 0xFF +ROM:E150 .byte 0xFF +ROM:E151 .byte 0xFF +ROM:E152 .byte 0xFF +ROM:E153 .byte 0xFF +ROM:E154 .byte 0xFF +ROM:E155 .byte 0xFF +ROM:E156 .byte 0xFF +ROM:E157 .byte 0xFF +ROM:E158 .byte 0xFF +ROM:E159 .byte 0xFF +ROM:E15A .byte 0xFF +ROM:E15B .byte 0xFF +ROM:E15C .byte 0xFF +ROM:E15D .byte 0xFF +ROM:E15E .byte 0xFF +ROM:E15F .byte 0xFF +ROM:E160 .byte 0xFF +ROM:E161 .byte 0xFF +ROM:E162 .byte 0xFF +ROM:E163 .byte 0xFF +ROM:E164 .byte 0xFF +ROM:E165 .byte 0xFF +ROM:E166 .byte 0xFF +ROM:E167 .byte 0xFF +ROM:E168 .byte 0xFF +ROM:E169 .byte 0xFF +ROM:E16A .byte 0xFF +ROM:E16B .byte 0xFF +ROM:E16C .byte 0xFF +ROM:E16D .byte 0xFF +ROM:E16E .byte 0xFF +ROM:E16F .byte 0xFF +ROM:E170 .byte 0xFF +ROM:E171 .byte 0xFF +ROM:E172 .byte 0xFF +ROM:E173 .byte 0xFF +ROM:E174 .byte 0xFF +ROM:E175 .byte 0xFF +ROM:E176 .byte 0xFF +ROM:E177 .byte 0xFF +ROM:E178 .byte 0xFF +ROM:E179 .byte 0xFF +ROM:E17A .byte 0xFF +ROM:E17B .byte 0xFF +ROM:E17C .byte 0xFF +ROM:E17D .byte 0xFF +ROM:E17E .byte 0xFF +ROM:E17F .byte 0xFF +ROM:E180 .byte 0xFF +ROM:E181 .byte 0xFF +ROM:E182 .byte 0xFF +ROM:E183 .byte 0xFF +ROM:E184 .byte 0xFF +ROM:E185 .byte 0xFF +ROM:E186 .byte 0xFF +ROM:E187 .byte 0xFF +ROM:E188 .byte 0xFF +ROM:E189 .byte 0xFF +ROM:E18A .byte 0xFF +ROM:E18B .byte 0xFF +ROM:E18C .byte 0xFF +ROM:E18D .byte 0xFF +ROM:E18E .byte 0xFF +ROM:E18F .byte 0xFF +ROM:E190 .byte 0xFF +ROM:E191 .byte 0xFF +ROM:E192 .byte 0xFF +ROM:E193 .byte 0xFF +ROM:E194 .byte 0xFF +ROM:E195 .byte 0xFF +ROM:E196 .byte 0xFF +ROM:E197 .byte 0xFF +ROM:E198 .byte 0xFF +ROM:E199 .byte 0xFF +ROM:E19A .byte 0xFF +ROM:E19B .byte 0xFF +ROM:E19C .byte 0xFF +ROM:E19D .byte 0xFF +ROM:E19E .byte 0xFF +ROM:E19F .byte 0xFF +ROM:E1A0 .byte 0xFF +ROM:E1A1 .byte 0xFF +ROM:E1A2 .byte 0xFF +ROM:E1A3 .byte 0xFF +ROM:E1A4 .byte 0xFF +ROM:E1A5 .byte 0xFF +ROM:E1A6 .byte 0xFF +ROM:E1A7 .byte 0xFF +ROM:E1A8 .byte 0xFF +ROM:E1A9 .byte 0xFF +ROM:E1AA .byte 0xFF +ROM:E1AB .byte 0xFF +ROM:E1AC .byte 0xFF +ROM:E1AD .byte 0xFF +ROM:E1AE .byte 0xFF +ROM:E1AF .byte 0xFF +ROM:E1B0 .byte 0xFF +ROM:E1B1 .byte 0xFF +ROM:E1B2 .byte 0xFF +ROM:E1B3 .byte 0xFF +ROM:E1B4 .byte 0xFF +ROM:E1B5 .byte 0xFF +ROM:E1B6 .byte 0xFF +ROM:E1B7 .byte 0xFF +ROM:E1B8 .byte 0xFF +ROM:E1B9 .byte 0xFF +ROM:E1BA .byte 0xFF +ROM:E1BB .byte 0xFF +ROM:E1BC .byte 0xFF +ROM:E1BD .byte 0xFF +ROM:E1BE .byte 0xFF +ROM:E1BF .byte 0xFF +ROM:E1C0 .byte 0xFF +ROM:E1C1 .byte 0xFF +ROM:E1C2 .byte 0xFF +ROM:E1C3 .byte 0xFF +ROM:E1C4 .byte 0xFF +ROM:E1C5 .byte 0xFF +ROM:E1C6 .byte 0xFF +ROM:E1C7 .byte 0xFF +ROM:E1C8 .byte 0xFF +ROM:E1C9 .byte 0xFF +ROM:E1CA .byte 0xFF +ROM:E1CB .byte 0xFF +ROM:E1CC .byte 0xFF +ROM:E1CD .byte 0xFF +ROM:E1CE .byte 0xFF +ROM:E1CF .byte 0xFF +ROM:E1D0 .byte 0xFF +ROM:E1D1 .byte 0xFF +ROM:E1D2 .byte 0xFF +ROM:E1D3 .byte 0xFF +ROM:E1D4 .byte 0xFF +ROM:E1D5 .byte 0xFF +ROM:E1D6 .byte 0xFF +ROM:E1D7 .byte 0xFF +ROM:E1D8 .byte 0xFF +ROM:E1D9 .byte 0xFF +ROM:E1DA .byte 0xFF +ROM:E1DB .byte 0xFF +ROM:E1DC .byte 0xFF +ROM:E1DD .byte 0xFF +ROM:E1DE .byte 0xFF +ROM:E1DF .byte 0xFF +ROM:E1E0 .byte 0xFF +ROM:E1E1 .byte 0xFF +ROM:E1E2 .byte 0xFF +ROM:E1E3 .byte 0xFF +ROM:E1E4 .byte 0xFF +ROM:E1E5 .byte 0xFF +ROM:E1E6 .byte 0xFF +ROM:E1E7 .byte 0xFF +ROM:E1E8 .byte 0xFF +ROM:E1E9 .byte 0xFF +ROM:E1EA .byte 0xFF +ROM:E1EB .byte 0xFF +ROM:E1EC .byte 0xFF +ROM:E1ED .byte 0xFF +ROM:E1EE .byte 0xFF +ROM:E1EF .byte 0xFF +ROM:E1F0 .byte 0xFF +ROM:E1F1 .byte 0xFF +ROM:E1F2 .byte 0xFF +ROM:E1F3 .byte 0xFF +ROM:E1F4 .byte 0xFF +ROM:E1F5 .byte 0xFF +ROM:E1F6 .byte 0xFF +ROM:E1F7 .byte 0xFF +ROM:E1F8 .byte 0xFF +ROM:E1F9 .byte 0xFF +ROM:E1FA .byte 0xFF +ROM:E1FB .byte 0xFF +ROM:E1FC .byte 0xFF +ROM:E1FD .byte 0xFF +ROM:E1FE .byte 0xFF +ROM:E1FF .byte 0xFF +ROM:E200 .byte 0xFF +ROM:E201 .byte 0xFF +ROM:E202 .byte 0xFF +ROM:E203 .byte 0xFF +ROM:E204 .byte 0xFF +ROM:E205 .byte 0xFF +ROM:E206 .byte 0xFF +ROM:E207 .byte 0xFF +ROM:E208 .byte 0xFF +ROM:E209 .byte 0xFF +ROM:E20A .byte 0xFF +ROM:E20B .byte 0xFF +ROM:E20C .byte 0xFF +ROM:E20D .byte 0xFF +ROM:E20E .byte 0xFF +ROM:E20F .byte 0xFF +ROM:E210 .byte 0xFF +ROM:E211 .byte 0xFF +ROM:E212 .byte 0xFF +ROM:E213 .byte 0xFF +ROM:E214 .byte 0xFF +ROM:E215 .byte 0xFF +ROM:E216 .byte 0xFF +ROM:E217 .byte 0xFF +ROM:E218 .byte 0xFF +ROM:E219 .byte 0xFF +ROM:E21A .byte 0xFF +ROM:E21B .byte 0xFF +ROM:E21C .byte 0xFF +ROM:E21D .byte 0xFF +ROM:E21E .byte 0xFF +ROM:E21F .byte 0xFF +ROM:E220 .byte 0xFF +ROM:E221 .byte 0xFF +ROM:E222 .byte 0xFF +ROM:E223 .byte 0xFF +ROM:E224 .byte 0xFF +ROM:E225 .byte 0xFF +ROM:E226 .byte 0xFF +ROM:E227 .byte 0xFF +ROM:E228 .byte 0xFF +ROM:E229 .byte 0xFF +ROM:E22A .byte 0xFF +ROM:E22B .byte 0xFF +ROM:E22C .byte 0xFF +ROM:E22D .byte 0xFF +ROM:E22E .byte 0xFF +ROM:E22F .byte 0xFF +ROM:E230 .byte 0xFF +ROM:E231 .byte 0xFF +ROM:E232 .byte 0xFF +ROM:E233 .byte 0xFF +ROM:E234 .byte 0xFF +ROM:E235 .byte 0xFF +ROM:E236 .byte 0xFF +ROM:E237 .byte 0xFF +ROM:E238 .byte 0xFF +ROM:E239 .byte 0xFF +ROM:E23A .byte 0xFF +ROM:E23B .byte 0xFF +ROM:E23C .byte 0xFF +ROM:E23D .byte 0xFF +ROM:E23E .byte 0xFF +ROM:E23F .byte 0xFF +ROM:E240 .byte 0xFF +ROM:E241 .byte 0xFF +ROM:E242 .byte 0xFF +ROM:E243 .byte 0xFF +ROM:E244 .byte 0xFF +ROM:E245 .byte 0xFF +ROM:E246 .byte 0xFF +ROM:E247 .byte 0xFF +ROM:E248 .byte 0xFF +ROM:E249 .byte 0xFF +ROM:E24A .byte 0xFF +ROM:E24B .byte 0xFF +ROM:E24C .byte 0xFF +ROM:E24D .byte 0xFF +ROM:E24E .byte 0xFF +ROM:E24F .byte 0xFF +ROM:E250 .byte 0xFF +ROM:E251 .byte 0xFF +ROM:E252 .byte 0xFF +ROM:E253 .byte 0xFF +ROM:E254 .byte 0xFF +ROM:E255 .byte 0xFF +ROM:E256 .byte 0xFF +ROM:E257 .byte 0xFF +ROM:E258 .byte 0xFF +ROM:E259 .byte 0xFF +ROM:E25A .byte 0xFF +ROM:E25B .byte 0xFF +ROM:E25C .byte 0xFF +ROM:E25D .byte 0xFF +ROM:E25E .byte 0xFF +ROM:E25F .byte 0xFF +ROM:E260 .byte 0xFF +ROM:E261 .byte 0xFF +ROM:E262 .byte 0xFF +ROM:E263 .byte 0xFF +ROM:E264 .byte 0xFF +ROM:E265 .byte 0xFF +ROM:E266 .byte 0xFF +ROM:E267 .byte 0xFF +ROM:E268 .byte 0xFF +ROM:E269 .byte 0xFF +ROM:E26A .byte 0xFF +ROM:E26B .byte 0xFF +ROM:E26C .byte 0xFF +ROM:E26D .byte 0xFF +ROM:E26E .byte 0xFF +ROM:E26F .byte 0xFF +ROM:E270 .byte 0xFF +ROM:E271 .byte 0xFF +ROM:E272 .byte 0xFF +ROM:E273 .byte 0xFF +ROM:E274 .byte 0xFF +ROM:E275 .byte 0xFF +ROM:E276 .byte 0xFF +ROM:E277 .byte 0xFF +ROM:E278 .byte 0xFF +ROM:E279 .byte 0xFF +ROM:E27A .byte 0xFF +ROM:E27B .byte 0xFF +ROM:E27C .byte 0xFF +ROM:E27D .byte 0xFF +ROM:E27E .byte 0xFF +ROM:E27F .byte 0xFF +ROM:E280 .byte 0xFF +ROM:E281 .byte 0xFF +ROM:E282 .byte 0xFF +ROM:E283 .byte 0xFF +ROM:E284 .byte 0xFF +ROM:E285 .byte 0xFF +ROM:E286 .byte 0xFF +ROM:E287 .byte 0xFF +ROM:E288 .byte 0xFF +ROM:E289 .byte 0xFF +ROM:E28A .byte 0xFF +ROM:E28B .byte 0xFF +ROM:E28C .byte 0xFF +ROM:E28D .byte 0xFF +ROM:E28E .byte 0xFF +ROM:E28F .byte 0xFF +ROM:E290 .byte 0xFF +ROM:E291 .byte 0xFF +ROM:E292 .byte 0xFF +ROM:E293 .byte 0xFF +ROM:E294 .byte 0xFF +ROM:E295 .byte 0xFF +ROM:E296 .byte 0xFF +ROM:E297 .byte 0xFF +ROM:E298 .byte 0xFF +ROM:E299 .byte 0xFF +ROM:E29A .byte 0xFF +ROM:E29B .byte 0xFF +ROM:E29C .byte 0xFF +ROM:E29D .byte 0xFF +ROM:E29E .byte 0xFF +ROM:E29F .byte 0xFF +ROM:E2A0 .byte 0xFF +ROM:E2A1 .byte 0xFF +ROM:E2A2 .byte 0xFF +ROM:E2A3 .byte 0xFF +ROM:E2A4 .byte 0xFF +ROM:E2A5 .byte 0xFF +ROM:E2A6 .byte 0xFF +ROM:E2A7 .byte 0xFF +ROM:E2A8 .byte 0xFF +ROM:E2A9 .byte 0xFF +ROM:E2AA .byte 0xFF +ROM:E2AB .byte 0xFF +ROM:E2AC .byte 0xFF +ROM:E2AD .byte 0xFF +ROM:E2AE .byte 0xFF +ROM:E2AF .byte 0xFF +ROM:E2B0 .byte 0xFF +ROM:E2B1 .byte 0xFF +ROM:E2B2 .byte 0xFF +ROM:E2B3 .byte 0xFF +ROM:E2B4 .byte 0xFF +ROM:E2B5 .byte 0xFF +ROM:E2B6 .byte 0xFF +ROM:E2B7 .byte 0xFF +ROM:E2B8 .byte 0xFF +ROM:E2B9 .byte 0xFF +ROM:E2BA .byte 0xFF +ROM:E2BB .byte 0xFF +ROM:E2BC .byte 0xFF +ROM:E2BD .byte 0xFF +ROM:E2BE .byte 0xFF +ROM:E2BF .byte 0xFF +ROM:E2C0 .byte 0xFF +ROM:E2C1 .byte 0xFF +ROM:E2C2 .byte 0xFF +ROM:E2C3 .byte 0xFF +ROM:E2C4 .byte 0xFF +ROM:E2C5 .byte 0xFF +ROM:E2C6 .byte 0xFF +ROM:E2C7 .byte 0xFF +ROM:E2C8 .byte 0xFF +ROM:E2C9 .byte 0xFF +ROM:E2CA .byte 0xFF +ROM:E2CB .byte 0xFF +ROM:E2CC .byte 0xFF +ROM:E2CD .byte 0xFF +ROM:E2CE .byte 0xFF +ROM:E2CF .byte 0xFF +ROM:E2D0 .byte 0xFF +ROM:E2D1 .byte 0xFF +ROM:E2D2 .byte 0xFF +ROM:E2D3 .byte 0xFF +ROM:E2D4 .byte 0xFF +ROM:E2D5 .byte 0xFF +ROM:E2D6 .byte 0xFF +ROM:E2D7 .byte 0xFF +ROM:E2D8 .byte 0xFF +ROM:E2D9 .byte 0xFF +ROM:E2DA .byte 0xFF +ROM:E2DB .byte 0xFF +ROM:E2DC .byte 0xFF +ROM:E2DD .byte 0xFF +ROM:E2DE .byte 0xFF +ROM:E2DF .byte 0xFF +ROM:E2E0 .byte 0xFF +ROM:E2E1 .byte 0xFF +ROM:E2E2 .byte 0xFF +ROM:E2E3 .byte 0xFF +ROM:E2E4 .byte 0xFF +ROM:E2E5 .byte 0xFF +ROM:E2E6 .byte 0xFF +ROM:E2E7 .byte 0xFF +ROM:E2E8 .byte 0xFF +ROM:E2E9 .byte 0xFF +ROM:E2EA .byte 0xFF +ROM:E2EB .byte 0xFF +ROM:E2EC .byte 0xFF +ROM:E2ED .byte 0xFF +ROM:E2EE .byte 0xFF +ROM:E2EF .byte 0xFF +ROM:E2F0 .byte 0xFF +ROM:E2F1 .byte 0xFF +ROM:E2F2 .byte 0xFF +ROM:E2F3 .byte 0xFF +ROM:E2F4 .byte 0xFF +ROM:E2F5 .byte 0xFF +ROM:E2F6 .byte 0xFF +ROM:E2F7 .byte 0xFF +ROM:E2F8 .byte 0xFF +ROM:E2F9 .byte 0xFF +ROM:E2FA .byte 0xFF +ROM:E2FB .byte 0xFF +ROM:E2FC .byte 0xFF +ROM:E2FD .byte 0xFF +ROM:E2FE .byte 0xFF +ROM:E2FF .byte 0xFF +ROM:E300 .byte 0xFF +ROM:E301 .byte 0xFF +ROM:E302 .byte 0xFF +ROM:E303 .byte 0xFF +ROM:E304 .byte 0xFF +ROM:E305 .byte 0xFF +ROM:E306 .byte 0xFF +ROM:E307 .byte 0xFF +ROM:E308 .byte 0xFF +ROM:E309 .byte 0xFF +ROM:E30A .byte 0xFF +ROM:E30B .byte 0xFF +ROM:E30C .byte 0xFF +ROM:E30D .byte 0xFF +ROM:E30E .byte 0xFF +ROM:E30F .byte 0xFF +ROM:E310 .byte 0xFF +ROM:E311 .byte 0xFF +ROM:E312 .byte 0xFF +ROM:E313 .byte 0xFF +ROM:E314 .byte 0xFF +ROM:E315 .byte 0xFF +ROM:E316 .byte 0xFF +ROM:E317 .byte 0xFF +ROM:E318 .byte 0xFF +ROM:E319 .byte 0xFF +ROM:E31A .byte 0xFF +ROM:E31B .byte 0xFF +ROM:E31C .byte 0xFF +ROM:E31D .byte 0xFF +ROM:E31E .byte 0xFF +ROM:E31F .byte 0xFF +ROM:E320 .byte 0xFF +ROM:E321 .byte 0xFF +ROM:E322 .byte 0xFF +ROM:E323 .byte 0xFF +ROM:E324 .byte 0xFF +ROM:E325 .byte 0xFF +ROM:E326 .byte 0xFF +ROM:E327 .byte 0xFF +ROM:E328 .byte 0xFF +ROM:E329 .byte 0xFF +ROM:E32A .byte 0xFF +ROM:E32B .byte 0xFF +ROM:E32C .byte 0xFF +ROM:E32D .byte 0xFF +ROM:E32E .byte 0xFF +ROM:E32F .byte 0xFF +ROM:E330 .byte 0xFF +ROM:E331 .byte 0xFF +ROM:E332 .byte 0xFF +ROM:E333 .byte 0xFF +ROM:E334 .byte 0xFF +ROM:E335 .byte 0xFF +ROM:E336 .byte 0xFF +ROM:E337 .byte 0xFF +ROM:E338 .byte 0xFF +ROM:E339 .byte 0xFF +ROM:E33A .byte 0xFF +ROM:E33B .byte 0xFF +ROM:E33C .byte 0xFF +ROM:E33D .byte 0xFF +ROM:E33E .byte 0xFF +ROM:E33F .byte 0xFF +ROM:E340 .byte 0xFF +ROM:E341 .byte 0xFF +ROM:E342 .byte 0xFF +ROM:E343 .byte 0xFF +ROM:E344 .byte 0xFF +ROM:E345 .byte 0xFF +ROM:E346 .byte 0xFF +ROM:E347 .byte 0xFF +ROM:E348 .byte 0xFF +ROM:E349 .byte 0xFF +ROM:E34A .byte 0xFF +ROM:E34B .byte 0xFF +ROM:E34C .byte 0xFF +ROM:E34D .byte 0xFF +ROM:E34E .byte 0xFF +ROM:E34F .byte 0xFF +ROM:E350 .byte 0xFF +ROM:E351 .byte 0xFF +ROM:E352 .byte 0xFF +ROM:E353 .byte 0xFF +ROM:E354 .byte 0xFF +ROM:E355 .byte 0xFF +ROM:E356 .byte 0xFF +ROM:E357 .byte 0xFF +ROM:E358 .byte 0xFF +ROM:E359 .byte 0xFF +ROM:E35A .byte 0xFF +ROM:E35B .byte 0xFF +ROM:E35C .byte 0xFF +ROM:E35D .byte 0xFF +ROM:E35E .byte 0xFF +ROM:E35F .byte 0xFF +ROM:E360 .byte 0xFF +ROM:E361 .byte 0xFF +ROM:E362 .byte 0xFF +ROM:E363 .byte 0xFF +ROM:E364 .byte 0xFF +ROM:E365 .byte 0xFF +ROM:E366 .byte 0xFF +ROM:E367 .byte 0xFF +ROM:E368 .byte 0xFF +ROM:E369 .byte 0xFF +ROM:E36A .byte 0xFF +ROM:E36B .byte 0xFF +ROM:E36C .byte 0xFF +ROM:E36D .byte 0xFF +ROM:E36E .byte 0xFF +ROM:E36F .byte 0xFF +ROM:E370 .byte 0xFF +ROM:E371 .byte 0xFF +ROM:E372 .byte 0xFF +ROM:E373 .byte 0xFF +ROM:E374 .byte 0xFF +ROM:E375 .byte 0xFF +ROM:E376 .byte 0xFF +ROM:E377 .byte 0xFF +ROM:E378 .byte 0xFF +ROM:E379 .byte 0xFF +ROM:E37A .byte 0xFF +ROM:E37B .byte 0xFF +ROM:E37C .byte 0xFF +ROM:E37D .byte 0xFF +ROM:E37E .byte 0xFF +ROM:E37F .byte 0xFF +ROM:E380 .byte 0xFF +ROM:E381 .byte 0xFF +ROM:E382 .byte 0xFF +ROM:E383 .byte 0xFF +ROM:E384 .byte 0xFF +ROM:E385 .byte 0xFF +ROM:E386 .byte 0xFF +ROM:E387 .byte 0xFF +ROM:E388 .byte 0xFF +ROM:E389 .byte 0xFF +ROM:E38A .byte 0xFF +ROM:E38B .byte 0xFF +ROM:E38C .byte 0xFF +ROM:E38D .byte 0xFF +ROM:E38E .byte 0xFF +ROM:E38F .byte 0xFF +ROM:E390 .byte 0xFF +ROM:E391 .byte 0xFF +ROM:E392 .byte 0xFF +ROM:E393 .byte 0xFF +ROM:E394 .byte 0xFF +ROM:E395 .byte 0xFF +ROM:E396 .byte 0xFF +ROM:E397 .byte 0xFF +ROM:E398 .byte 0xFF +ROM:E399 .byte 0xFF +ROM:E39A .byte 0xFF +ROM:E39B .byte 0xFF +ROM:E39C .byte 0xFF +ROM:E39D .byte 0xFF +ROM:E39E .byte 0xFF +ROM:E39F .byte 0xFF +ROM:E3A0 .byte 0xFF +ROM:E3A1 .byte 0xFF +ROM:E3A2 .byte 0xFF +ROM:E3A3 .byte 0xFF +ROM:E3A4 .byte 0xFF +ROM:E3A5 .byte 0xFF +ROM:E3A6 .byte 0xFF +ROM:E3A7 .byte 0xFF +ROM:E3A8 .byte 0xFF +ROM:E3A9 .byte 0xFF +ROM:E3AA .byte 0xFF +ROM:E3AB .byte 0xFF +ROM:E3AC .byte 0xFF +ROM:E3AD .byte 0xFF +ROM:E3AE .byte 0xFF +ROM:E3AF .byte 0xFF +ROM:E3B0 .byte 0xFF +ROM:E3B1 .byte 0xFF +ROM:E3B2 .byte 0xFF +ROM:E3B3 .byte 0xFF +ROM:E3B4 .byte 0xFF +ROM:E3B5 .byte 0xFF +ROM:E3B6 .byte 0xFF +ROM:E3B7 .byte 0xFF +ROM:E3B8 .byte 0xFF +ROM:E3B9 .byte 0xFF +ROM:E3BA .byte 0xFF +ROM:E3BB .byte 0xFF +ROM:E3BC .byte 0xFF +ROM:E3BD .byte 0xFF +ROM:E3BE .byte 0xFF +ROM:E3BF .byte 0xFF +ROM:E3C0 .byte 0xFF +ROM:E3C1 .byte 0xFF +ROM:E3C2 .byte 0xFF +ROM:E3C3 .byte 0xFF +ROM:E3C4 .byte 0xFF +ROM:E3C5 .byte 0xFF +ROM:E3C6 .byte 0xFF +ROM:E3C7 .byte 0xFF +ROM:E3C8 .byte 0xFF +ROM:E3C9 .byte 0xFF +ROM:E3CA .byte 0xFF +ROM:E3CB .byte 0xFF +ROM:E3CC .byte 0xFF +ROM:E3CD .byte 0xFF +ROM:E3CE .byte 0xFF +ROM:E3CF .byte 0xFF +ROM:E3D0 .byte 0xFF +ROM:E3D1 .byte 0xFF +ROM:E3D2 .byte 0xFF +ROM:E3D3 .byte 0xFF +ROM:E3D4 .byte 0xFF +ROM:E3D5 .byte 0xFF +ROM:E3D6 .byte 0xFF +ROM:E3D7 .byte 0xFF +ROM:E3D8 .byte 0xFF +ROM:E3D9 .byte 0xFF +ROM:E3DA .byte 0xFF +ROM:E3DB .byte 0xFF +ROM:E3DC .byte 0xFF +ROM:E3DD .byte 0xFF +ROM:E3DE .byte 0xFF +ROM:E3DF .byte 0xFF +ROM:E3E0 .byte 0xFF +ROM:E3E1 .byte 0xFF +ROM:E3E2 .byte 0xFF +ROM:E3E3 .byte 0xFF +ROM:E3E4 .byte 0xFF +ROM:E3E5 .byte 0xFF +ROM:E3E6 .byte 0xFF +ROM:E3E7 .byte 0xFF +ROM:E3E8 .byte 0xFF +ROM:E3E9 .byte 0xFF +ROM:E3EA .byte 0xFF +ROM:E3EB .byte 0xFF +ROM:E3EC .byte 0xFF +ROM:E3ED .byte 0xFF +ROM:E3EE .byte 0xFF +ROM:E3EF .byte 0xFF +ROM:E3F0 .byte 0xFF +ROM:E3F1 .byte 0xFF +ROM:E3F2 .byte 0xFF +ROM:E3F3 .byte 0xFF +ROM:E3F4 .byte 0xFF +ROM:E3F5 .byte 0xFF +ROM:E3F6 .byte 0xFF +ROM:E3F7 .byte 0xFF +ROM:E3F8 .byte 0xFF +ROM:E3F9 .byte 0xFF +ROM:E3FA .byte 0xFF +ROM:E3FB .byte 0xFF +ROM:E3FC .byte 0xFF +ROM:E3FD .byte 0xFF +ROM:E3FE .byte 0xFF +ROM:E3FF .byte 0xFF +ROM:E400 .byte 0xFF +ROM:E401 .byte 0xFF +ROM:E402 .byte 0xFF +ROM:E403 .byte 0xFF +ROM:E404 .byte 0xFF +ROM:E405 .byte 0xFF +ROM:E406 .byte 0xFF +ROM:E407 .byte 0xFF +ROM:E408 .byte 0xFF +ROM:E409 .byte 0xFF +ROM:E40A .byte 0xFF +ROM:E40B .byte 0xFF +ROM:E40C .byte 0xFF +ROM:E40D .byte 0xFF +ROM:E40E .byte 0xFF +ROM:E40F .byte 0xFF +ROM:E410 .byte 0xFF +ROM:E411 .byte 0xFF +ROM:E412 .byte 0xFF +ROM:E413 .byte 0xFF +ROM:E414 .byte 0xFF +ROM:E415 .byte 0xFF +ROM:E416 .byte 0xFF +ROM:E417 .byte 0xFF +ROM:E418 .byte 0xFF +ROM:E419 .byte 0xFF +ROM:E41A .byte 0xFF +ROM:E41B .byte 0xFF +ROM:E41C .byte 0xFF +ROM:E41D .byte 0xFF +ROM:E41E .byte 0xFF +ROM:E41F .byte 0xFF +ROM:E420 .byte 0xFF +ROM:E421 .byte 0xFF +ROM:E422 .byte 0xFF +ROM:E423 .byte 0xFF +ROM:E424 .byte 0xFF +ROM:E425 .byte 0xFF +ROM:E426 .byte 0xFF +ROM:E427 .byte 0xFF +ROM:E428 .byte 0xFF +ROM:E429 .byte 0xFF +ROM:E42A .byte 0xFF +ROM:E42B .byte 0xFF +ROM:E42C .byte 0xFF +ROM:E42D .byte 0xFF +ROM:E42E .byte 0xFF +ROM:E42F .byte 0xFF +ROM:E430 .byte 0xFF +ROM:E431 .byte 0xFF +ROM:E432 .byte 0xFF +ROM:E433 .byte 0xFF +ROM:E434 .byte 0xFF +ROM:E435 .byte 0xFF +ROM:E436 .byte 0xFF +ROM:E437 .byte 0xFF +ROM:E438 .byte 0xFF +ROM:E439 .byte 0xFF +ROM:E43A .byte 0xFF +ROM:E43B .byte 0xFF +ROM:E43C .byte 0xFF +ROM:E43D .byte 0xFF +ROM:E43E .byte 0xFF +ROM:E43F .byte 0xFF +ROM:E440 .byte 0xFF +ROM:E441 .byte 0xFF +ROM:E442 .byte 0xFF +ROM:E443 .byte 0xFF +ROM:E444 .byte 0xFF +ROM:E445 .byte 0xFF +ROM:E446 .byte 0xFF +ROM:E447 .byte 0xFF +ROM:E448 .byte 0xFF +ROM:E449 .byte 0xFF +ROM:E44A .byte 0xFF +ROM:E44B .byte 0xFF +ROM:E44C .byte 0xFF +ROM:E44D .byte 0xFF +ROM:E44E .byte 0xFF +ROM:E44F .byte 0xFF +ROM:E450 .byte 0xFF +ROM:E451 .byte 0xFF +ROM:E452 .byte 0xFF +ROM:E453 .byte 0xFF +ROM:E454 .byte 0xFF +ROM:E455 .byte 0xFF +ROM:E456 .byte 0xFF +ROM:E457 .byte 0xFF +ROM:E458 .byte 0xFF +ROM:E459 .byte 0xFF +ROM:E45A .byte 0xFF +ROM:E45B .byte 0xFF +ROM:E45C .byte 0xFF +ROM:E45D .byte 0xFF +ROM:E45E .byte 0xFF +ROM:E45F .byte 0xFF +ROM:E460 .byte 0xFF +ROM:E461 .byte 0xFF +ROM:E462 .byte 0xFF +ROM:E463 .byte 0xFF +ROM:E464 .byte 0xFF +ROM:E465 .byte 0xFF +ROM:E466 .byte 0xFF +ROM:E467 .byte 0xFF +ROM:E468 .byte 0xFF +ROM:E469 .byte 0xFF +ROM:E46A .byte 0xFF +ROM:E46B .byte 0xFF +ROM:E46C .byte 0xFF +ROM:E46D .byte 0xFF +ROM:E46E .byte 0xFF +ROM:E46F .byte 0xFF +ROM:E470 .byte 0xFF +ROM:E471 .byte 0xFF +ROM:E472 .byte 0xFF +ROM:E473 .byte 0xFF +ROM:E474 .byte 0xFF +ROM:E475 .byte 0xFF +ROM:E476 .byte 0xFF +ROM:E477 .byte 0xFF +ROM:E478 .byte 0xFF +ROM:E479 .byte 0xFF +ROM:E47A .byte 0xFF +ROM:E47B .byte 0xFF +ROM:E47C .byte 0xFF +ROM:E47D .byte 0xFF +ROM:E47E .byte 0xFF +ROM:E47F .byte 0xFF +ROM:E480 .byte 0xFF +ROM:E481 .byte 0xFF +ROM:E482 .byte 0xFF +ROM:E483 .byte 0xFF +ROM:E484 .byte 0xFF +ROM:E485 .byte 0xFF +ROM:E486 .byte 0xFF +ROM:E487 .byte 0xFF +ROM:E488 .byte 0xFF +ROM:E489 .byte 0xFF +ROM:E48A .byte 0xFF +ROM:E48B .byte 0xFF +ROM:E48C .byte 0xFF +ROM:E48D .byte 0xFF +ROM:E48E .byte 0xFF +ROM:E48F .byte 0xFF +ROM:E490 .byte 0xFF +ROM:E491 .byte 0xFF +ROM:E492 .byte 0xFF +ROM:E493 .byte 0xFF +ROM:E494 .byte 0xFF +ROM:E495 .byte 0xFF +ROM:E496 .byte 0xFF +ROM:E497 .byte 0xFF +ROM:E498 .byte 0xFF +ROM:E499 .byte 0xFF +ROM:E49A .byte 0xFF +ROM:E49B .byte 0xFF +ROM:E49C .byte 0xFF +ROM:E49D .byte 0xFF +ROM:E49E .byte 0xFF +ROM:E49F .byte 0xFF +ROM:E4A0 .byte 0xFF +ROM:E4A1 .byte 0xFF +ROM:E4A2 .byte 0xFF +ROM:E4A3 .byte 0xFF +ROM:E4A4 .byte 0xFF +ROM:E4A5 .byte 0xFF +ROM:E4A6 .byte 0xFF +ROM:E4A7 .byte 0xFF +ROM:E4A8 .byte 0xFF +ROM:E4A9 .byte 0xFF +ROM:E4AA .byte 0xFF +ROM:E4AB .byte 0xFF +ROM:E4AC .byte 0xFF +ROM:E4AD .byte 0xFF +ROM:E4AE .byte 0xFF +ROM:E4AF .byte 0xFF +ROM:E4B0 .byte 0xFF +ROM:E4B1 .byte 0xFF +ROM:E4B2 .byte 0xFF +ROM:E4B3 .byte 0xFF +ROM:E4B4 .byte 0xFF +ROM:E4B5 .byte 0xFF +ROM:E4B6 .byte 0xFF +ROM:E4B7 .byte 0xFF +ROM:E4B8 .byte 0xFF +ROM:E4B9 .byte 0xFF +ROM:E4BA .byte 0xFF +ROM:E4BB .byte 0xFF +ROM:E4BC .byte 0xFF +ROM:E4BD .byte 0xFF +ROM:E4BE .byte 0xFF +ROM:E4BF .byte 0xFF +ROM:E4C0 .byte 0xFF +ROM:E4C1 .byte 0xFF +ROM:E4C2 .byte 0xFF +ROM:E4C3 .byte 0xFF +ROM:E4C4 .byte 0xFF +ROM:E4C5 .byte 0xFF +ROM:E4C6 .byte 0xFF +ROM:E4C7 .byte 0xFF +ROM:E4C8 .byte 0xFF +ROM:E4C9 .byte 0xFF +ROM:E4CA .byte 0xFF +ROM:E4CB .byte 0xFF +ROM:E4CC .byte 0xFF +ROM:E4CD .byte 0xFF +ROM:E4CE .byte 0xFF +ROM:E4CF .byte 0xFF +ROM:E4D0 .byte 0xFF +ROM:E4D1 .byte 0xFF +ROM:E4D2 .byte 0xFF +ROM:E4D3 .byte 0xFF +ROM:E4D4 .byte 0xFF +ROM:E4D5 .byte 0xFF +ROM:E4D6 .byte 0xFF +ROM:E4D7 .byte 0xFF +ROM:E4D8 .byte 0xFF +ROM:E4D9 .byte 0xFF +ROM:E4DA .byte 0xFF +ROM:E4DB .byte 0xFF +ROM:E4DC .byte 0xFF +ROM:E4DD .byte 0xFF +ROM:E4DE .byte 0xFF +ROM:E4DF .byte 0xFF +ROM:E4E0 .byte 0xFF +ROM:E4E1 .byte 0xFF +ROM:E4E2 .byte 0xFF +ROM:E4E3 .byte 0xFF +ROM:E4E4 .byte 0xFF +ROM:E4E5 .byte 0xFF +ROM:E4E6 .byte 0xFF +ROM:E4E7 .byte 0xFF +ROM:E4E8 .byte 0xFF +ROM:E4E9 .byte 0xFF +ROM:E4EA .byte 0xFF +ROM:E4EB .byte 0xFF +ROM:E4EC .byte 0xFF +ROM:E4ED .byte 0xFF +ROM:E4EE .byte 0xFF +ROM:E4EF .byte 0xFF +ROM:E4F0 .byte 0xFF +ROM:E4F1 .byte 0xFF +ROM:E4F2 .byte 0xFF +ROM:E4F3 .byte 0xFF +ROM:E4F4 .byte 0xFF +ROM:E4F5 .byte 0xFF +ROM:E4F6 .byte 0xFF +ROM:E4F7 .byte 0xFF +ROM:E4F8 .byte 0xFF +ROM:E4F9 .byte 0xFF +ROM:E4FA .byte 0xFF +ROM:E4FB .byte 0xFF +ROM:E4FC .byte 0xFF +ROM:E4FD .byte 0xFF +ROM:E4FE .byte 0xFF +ROM:E4FF .byte 0xFF +ROM:E500 .byte 0xFF +ROM:E501 .byte 0xFF +ROM:E502 .byte 0xFF +ROM:E503 .byte 0xFF +ROM:E504 .byte 0xFF +ROM:E505 .byte 0xFF +ROM:E506 .byte 0xFF +ROM:E507 .byte 0xFF +ROM:E508 .byte 0xFF +ROM:E509 .byte 0xFF +ROM:E50A .byte 0xFF +ROM:E50B .byte 0xFF +ROM:E50C .byte 0xFF +ROM:E50D .byte 0xFF +ROM:E50E .byte 0xFF +ROM:E50F .byte 0xFF +ROM:E510 .byte 0xFF +ROM:E511 .byte 0xFF +ROM:E512 .byte 0xFF +ROM:E513 .byte 0xFF +ROM:E514 .byte 0xFF +ROM:E515 .byte 0xFF +ROM:E516 .byte 0xFF +ROM:E517 .byte 0xFF +ROM:E518 .byte 0xFF +ROM:E519 .byte 0xFF +ROM:E51A .byte 0xFF +ROM:E51B .byte 0xFF +ROM:E51C .byte 0xFF +ROM:E51D .byte 0xFF +ROM:E51E .byte 0xFF +ROM:E51F .byte 0xFF +ROM:E520 .byte 0xFF +ROM:E521 .byte 0xFF +ROM:E522 .byte 0xFF +ROM:E523 .byte 0xFF +ROM:E524 .byte 0xFF +ROM:E525 .byte 0xFF +ROM:E526 .byte 0xFF +ROM:E527 .byte 0xFF +ROM:E528 .byte 0xFF +ROM:E529 .byte 0xFF +ROM:E52A .byte 0xFF +ROM:E52B .byte 0xFF +ROM:E52C .byte 0xFF +ROM:E52D .byte 0xFF +ROM:E52E .byte 0xFF +ROM:E52F .byte 0xFF +ROM:E530 .byte 0xFF +ROM:E531 .byte 0xFF +ROM:E532 .byte 0xFF +ROM:E533 .byte 0xFF +ROM:E534 .byte 0xFF +ROM:E535 .byte 0xFF +ROM:E536 .byte 0xFF +ROM:E537 .byte 0xFF +ROM:E538 .byte 0xFF +ROM:E539 .byte 0xFF +ROM:E53A .byte 0xFF +ROM:E53B .byte 0xFF +ROM:E53C .byte 0xFF +ROM:E53D .byte 0xFF +ROM:E53E .byte 0xFF +ROM:E53F .byte 0xFF +ROM:E540 .byte 0xFF +ROM:E541 .byte 0xFF +ROM:E542 .byte 0xFF +ROM:E543 .byte 0xFF +ROM:E544 .byte 0xFF +ROM:E545 .byte 0xFF +ROM:E546 .byte 0xFF +ROM:E547 .byte 0xFF +ROM:E548 .byte 0xFF +ROM:E549 .byte 0xFF +ROM:E54A .byte 0xFF +ROM:E54B .byte 0xFF +ROM:E54C .byte 0xFF +ROM:E54D .byte 0xFF +ROM:E54E .byte 0xFF +ROM:E54F .byte 0xFF +ROM:E550 .byte 0xFF +ROM:E551 .byte 0xFF +ROM:E552 .byte 0xFF +ROM:E553 .byte 0xFF +ROM:E554 .byte 0xFF +ROM:E555 .byte 0xFF +ROM:E556 .byte 0xFF +ROM:E557 .byte 0xFF +ROM:E558 .byte 0xFF +ROM:E559 .byte 0xFF +ROM:E55A .byte 0xFF +ROM:E55B .byte 0xFF +ROM:E55C .byte 0xFF +ROM:E55D .byte 0xFF +ROM:E55E .byte 0xFF +ROM:E55F .byte 0xFF +ROM:E560 .byte 0xFF +ROM:E561 .byte 0xFF +ROM:E562 .byte 0xFF +ROM:E563 .byte 0xFF +ROM:E564 .byte 0xFF +ROM:E565 .byte 0xFF +ROM:E566 .byte 0xFF +ROM:E567 .byte 0xFF +ROM:E568 .byte 0xFF +ROM:E569 .byte 0xFF +ROM:E56A .byte 0xFF +ROM:E56B .byte 0xFF +ROM:E56C .byte 0xFF +ROM:E56D .byte 0xFF +ROM:E56E .byte 0xFF +ROM:E56F .byte 0xFF +ROM:E570 .byte 0xFF +ROM:E571 .byte 0xFF +ROM:E572 .byte 0xFF +ROM:E573 .byte 0xFF +ROM:E574 .byte 0xFF +ROM:E575 .byte 0xFF +ROM:E576 .byte 0xFF +ROM:E577 .byte 0xFF +ROM:E578 .byte 0xFF +ROM:E579 .byte 0xFF +ROM:E57A .byte 0xFF +ROM:E57B .byte 0xFF +ROM:E57C .byte 0xFF +ROM:E57D .byte 0xFF +ROM:E57E .byte 0xFF +ROM:E57F .byte 0xFF +ROM:E580 .byte 0xFF +ROM:E581 .byte 0xFF +ROM:E582 .byte 0xFF +ROM:E583 .byte 0xFF +ROM:E584 .byte 0xFF +ROM:E585 .byte 0xFF +ROM:E586 .byte 0xFF +ROM:E587 .byte 0xFF +ROM:E588 .byte 0xFF +ROM:E589 .byte 0xFF +ROM:E58A .byte 0xFF +ROM:E58B .byte 0xFF +ROM:E58C .byte 0xFF +ROM:E58D .byte 0xFF +ROM:E58E .byte 0xFF +ROM:E58F .byte 0xFF +ROM:E590 .byte 0xFF +ROM:E591 .byte 0xFF +ROM:E592 .byte 0xFF +ROM:E593 .byte 0xFF +ROM:E594 .byte 0xFF +ROM:E595 .byte 0xFF +ROM:E596 .byte 0xFF +ROM:E597 .byte 0xFF +ROM:E598 .byte 0xFF +ROM:E599 .byte 0xFF +ROM:E59A .byte 0xFF +ROM:E59B .byte 0xFF +ROM:E59C .byte 0xFF +ROM:E59D .byte 0xFF +ROM:E59E .byte 0xFF +ROM:E59F .byte 0xFF +ROM:E5A0 .byte 0xFF +ROM:E5A1 .byte 0xFF +ROM:E5A2 .byte 0xFF +ROM:E5A3 .byte 0xFF +ROM:E5A4 .byte 0xFF +ROM:E5A5 .byte 0xFF +ROM:E5A6 .byte 0xFF +ROM:E5A7 .byte 0xFF +ROM:E5A8 .byte 0xFF +ROM:E5A9 .byte 0xFF +ROM:E5AA .byte 0xFF +ROM:E5AB .byte 0xFF +ROM:E5AC .byte 0xFF +ROM:E5AD .byte 0xFF +ROM:E5AE .byte 0xFF +ROM:E5AF .byte 0xFF +ROM:E5B0 .byte 0xFF +ROM:E5B1 .byte 0xFF +ROM:E5B2 .byte 0xFF +ROM:E5B3 .byte 0xFF +ROM:E5B4 .byte 0xFF +ROM:E5B5 .byte 0xFF +ROM:E5B6 .byte 0xFF +ROM:E5B7 .byte 0xFF +ROM:E5B8 .byte 0xFF +ROM:E5B9 .byte 0xFF +ROM:E5BA .byte 0xFF +ROM:E5BB .byte 0xFF +ROM:E5BC .byte 0xFF +ROM:E5BD .byte 0xFF +ROM:E5BE .byte 0xFF +ROM:E5BF .byte 0xFF +ROM:E5C0 .byte 0xFF +ROM:E5C1 .byte 0xFF +ROM:E5C2 .byte 0xFF +ROM:E5C3 .byte 0xFF +ROM:E5C4 .byte 0xFF +ROM:E5C5 .byte 0xFF +ROM:E5C6 .byte 0xFF +ROM:E5C7 .byte 0xFF +ROM:E5C8 .byte 0xFF +ROM:E5C9 .byte 0xFF +ROM:E5CA .byte 0xFF +ROM:E5CB .byte 0xFF +ROM:E5CC .byte 0xFF +ROM:E5CD .byte 0xFF +ROM:E5CE .byte 0xFF +ROM:E5CF .byte 0xFF +ROM:E5D0 .byte 0xFF +ROM:E5D1 .byte 0xFF +ROM:E5D2 .byte 0xFF +ROM:E5D3 .byte 0xFF +ROM:E5D4 .byte 0xFF +ROM:E5D5 .byte 0xFF +ROM:E5D6 .byte 0xFF +ROM:E5D7 .byte 0xFF +ROM:E5D8 .byte 0xFF +ROM:E5D9 .byte 0xFF +ROM:E5DA .byte 0xFF +ROM:E5DB .byte 0xFF +ROM:E5DC .byte 0xFF +ROM:E5DD .byte 0xFF +ROM:E5DE .byte 0xFF +ROM:E5DF .byte 0xFF +ROM:E5E0 .byte 0xFF +ROM:E5E1 .byte 0xFF +ROM:E5E2 .byte 0xFF +ROM:E5E3 .byte 0xFF +ROM:E5E4 .byte 0xFF +ROM:E5E5 .byte 0xFF +ROM:E5E6 .byte 0xFF +ROM:E5E7 .byte 0xFF +ROM:E5E8 .byte 0xFF +ROM:E5E9 .byte 0xFF +ROM:E5EA .byte 0xFF +ROM:E5EB .byte 0xFF +ROM:E5EC .byte 0xFF +ROM:E5ED .byte 0xFF +ROM:E5EE .byte 0xFF +ROM:E5EF .byte 0xFF +ROM:E5F0 .byte 0xFF +ROM:E5F1 .byte 0xFF +ROM:E5F2 .byte 0xFF +ROM:E5F3 .byte 0xFF +ROM:E5F4 .byte 0xFF +ROM:E5F5 .byte 0xFF +ROM:E5F6 .byte 0xFF +ROM:E5F7 .byte 0xFF +ROM:E5F8 .byte 0xFF +ROM:E5F9 .byte 0xFF +ROM:E5FA .byte 0xFF +ROM:E5FB .byte 0xFF +ROM:E5FC .byte 0xFF +ROM:E5FD .byte 0xFF +ROM:E5FE .byte 0xFF +ROM:E5FF .byte 0xFF +ROM:E600 .byte 0xFF +ROM:E601 .byte 0xFF +ROM:E602 .byte 0xFF +ROM:E603 .byte 0xFF +ROM:E604 .byte 0xFF +ROM:E605 .byte 0xFF +ROM:E606 .byte 0xFF +ROM:E607 .byte 0xFF +ROM:E608 .byte 0xFF +ROM:E609 .byte 0xFF +ROM:E60A .byte 0xFF +ROM:E60B .byte 0xFF +ROM:E60C .byte 0xFF +ROM:E60D .byte 0xFF +ROM:E60E .byte 0xFF +ROM:E60F .byte 0xFF +ROM:E610 .byte 0xFF +ROM:E611 .byte 0xFF +ROM:E612 .byte 0xFF +ROM:E613 .byte 0xFF +ROM:E614 .byte 0xFF +ROM:E615 .byte 0xFF +ROM:E616 .byte 0xFF +ROM:E617 .byte 0xFF +ROM:E618 .byte 0xFF +ROM:E619 .byte 0xFF +ROM:E61A .byte 0xFF +ROM:E61B .byte 0xFF +ROM:E61C .byte 0xFF +ROM:E61D .byte 0xFF +ROM:E61E .byte 0xFF +ROM:E61F .byte 0xFF +ROM:E620 .byte 0xFF +ROM:E621 .byte 0xFF +ROM:E622 .byte 0xFF +ROM:E623 .byte 0xFF +ROM:E624 .byte 0xFF +ROM:E625 .byte 0xFF +ROM:E626 .byte 0xFF +ROM:E627 .byte 0xFF +ROM:E628 .byte 0xFF +ROM:E629 .byte 0xFF +ROM:E62A .byte 0xFF +ROM:E62B .byte 0xFF +ROM:E62C .byte 0xFF +ROM:E62D .byte 0xFF +ROM:E62E .byte 0xFF +ROM:E62F .byte 0xFF +ROM:E630 .byte 0xFF +ROM:E631 .byte 0xFF +ROM:E632 .byte 0xFF +ROM:E633 .byte 0xFF +ROM:E634 .byte 0xFF +ROM:E635 .byte 0xFF +ROM:E636 .byte 0xFF +ROM:E637 .byte 0xFF +ROM:E638 .byte 0xFF +ROM:E639 .byte 0xFF +ROM:E63A .byte 0xFF +ROM:E63B .byte 0xFF +ROM:E63C .byte 0xFF +ROM:E63D .byte 0xFF +ROM:E63E .byte 0xFF +ROM:E63F .byte 0xFF +ROM:E640 .byte 0xFF +ROM:E641 .byte 0xFF +ROM:E642 .byte 0xFF +ROM:E643 .byte 0xFF +ROM:E644 .byte 0xFF +ROM:E645 .byte 0xFF +ROM:E646 .byte 0xFF +ROM:E647 .byte 0xFF +ROM:E648 .byte 0xFF +ROM:E649 .byte 0xFF +ROM:E64A .byte 0xFF +ROM:E64B .byte 0xFF +ROM:E64C .byte 0xFF +ROM:E64D .byte 0xFF +ROM:E64E .byte 0xFF +ROM:E64F .byte 0xFF +ROM:E650 .byte 0xFF +ROM:E651 .byte 0xFF +ROM:E652 .byte 0xFF +ROM:E653 .byte 0xFF +ROM:E654 .byte 0xFF +ROM:E655 .byte 0xFF +ROM:E656 .byte 0xFF +ROM:E657 .byte 0xFF +ROM:E658 .byte 0xFF +ROM:E659 .byte 0xFF +ROM:E65A .byte 0xFF +ROM:E65B .byte 0xFF +ROM:E65C .byte 0xFF +ROM:E65D .byte 0xFF +ROM:E65E .byte 0xFF +ROM:E65F .byte 0xFF +ROM:E660 .byte 0xFF +ROM:E661 .byte 0xFF +ROM:E662 .byte 0xFF +ROM:E663 .byte 0xFF +ROM:E664 .byte 0xFF +ROM:E665 .byte 0xFF +ROM:E666 .byte 0xFF +ROM:E667 .byte 0xFF +ROM:E668 .byte 0xFF +ROM:E669 .byte 0xFF +ROM:E66A .byte 0xFF +ROM:E66B .byte 0xFF +ROM:E66C .byte 0xFF +ROM:E66D .byte 0xFF +ROM:E66E .byte 0xFF +ROM:E66F .byte 0xFF +ROM:E670 .byte 0xFF +ROM:E671 .byte 0xFF +ROM:E672 .byte 0xFF +ROM:E673 .byte 0xFF +ROM:E674 .byte 0xFF +ROM:E675 .byte 0xFF +ROM:E676 .byte 0xFF +ROM:E677 .byte 0xFF +ROM:E678 .byte 0xFF +ROM:E679 .byte 0xFF +ROM:E67A .byte 0xFF +ROM:E67B .byte 0xFF +ROM:E67C .byte 0xFF +ROM:E67D .byte 0xFF +ROM:E67E .byte 0xFF +ROM:E67F .byte 0xFF +ROM:E680 .byte 0xFF +ROM:E681 .byte 0xFF +ROM:E682 .byte 0xFF +ROM:E683 .byte 0xFF +ROM:E684 .byte 0xFF +ROM:E685 .byte 0xFF +ROM:E686 .byte 0xFF +ROM:E687 .byte 0xFF +ROM:E688 .byte 0xFF +ROM:E689 .byte 0xFF +ROM:E68A .byte 0xFF +ROM:E68B .byte 0xFF +ROM:E68C .byte 0xFF +ROM:E68D .byte 0xFF +ROM:E68E .byte 0xFF +ROM:E68F .byte 0xFF +ROM:E690 .byte 0xFF +ROM:E691 .byte 0xFF +ROM:E692 .byte 0xFF +ROM:E693 .byte 0xFF +ROM:E694 .byte 0xFF +ROM:E695 .byte 0xFF +ROM:E696 .byte 0xFF +ROM:E697 .byte 0xFF +ROM:E698 .byte 0xFF +ROM:E699 .byte 0xFF +ROM:E69A .byte 0xFF +ROM:E69B .byte 0xFF +ROM:E69C .byte 0xFF +ROM:E69D .byte 0xFF +ROM:E69E .byte 0xFF +ROM:E69F .byte 0xFF +ROM:E6A0 .byte 0xFF +ROM:E6A1 .byte 0xFF +ROM:E6A2 .byte 0xFF +ROM:E6A3 .byte 0xFF +ROM:E6A4 .byte 0xFF +ROM:E6A5 .byte 0xFF +ROM:E6A6 .byte 0xFF +ROM:E6A7 .byte 0xFF +ROM:E6A8 .byte 0xFF +ROM:E6A9 .byte 0xFF +ROM:E6AA .byte 0xFF +ROM:E6AB .byte 0xFF +ROM:E6AC .byte 0xFF +ROM:E6AD .byte 0xFF +ROM:E6AE .byte 0xFF +ROM:E6AF .byte 0xFF +ROM:E6B0 .byte 0xFF +ROM:E6B1 .byte 0xFF +ROM:E6B2 .byte 0xFF +ROM:E6B3 .byte 0xFF +ROM:E6B4 .byte 0xFF +ROM:E6B5 .byte 0xFF +ROM:E6B6 .byte 0xFF +ROM:E6B7 .byte 0xFF +ROM:E6B8 .byte 0xFF +ROM:E6B9 .byte 0xFF +ROM:E6BA .byte 0xFF +ROM:E6BB .byte 0xFF +ROM:E6BC .byte 0xFF +ROM:E6BD .byte 0xFF +ROM:E6BE .byte 0xFF +ROM:E6BF .byte 0xFF +ROM:E6C0 .byte 0xFF +ROM:E6C1 .byte 0xFF +ROM:E6C2 .byte 0xFF +ROM:E6C3 .byte 0xFF +ROM:E6C4 .byte 0xFF +ROM:E6C5 .byte 0xFF +ROM:E6C6 .byte 0xFF +ROM:E6C7 .byte 0xFF +ROM:E6C8 .byte 0xFF +ROM:E6C9 .byte 0xFF +ROM:E6CA .byte 0xFF +ROM:E6CB .byte 0xFF +ROM:E6CC .byte 0xFF +ROM:E6CD .byte 0xFF +ROM:E6CE .byte 0xFF +ROM:E6CF .byte 0xFF +ROM:E6D0 .byte 0xFF +ROM:E6D1 .byte 0xFF +ROM:E6D2 .byte 0xFF +ROM:E6D3 .byte 0xFF +ROM:E6D4 .byte 0xFF +ROM:E6D5 .byte 0xFF +ROM:E6D6 .byte 0xFF +ROM:E6D7 .byte 0xFF +ROM:E6D8 .byte 0xFF +ROM:E6D9 .byte 0xFF +ROM:E6DA .byte 0xFF +ROM:E6DB .byte 0xFF +ROM:E6DC .byte 0xFF +ROM:E6DD .byte 0xFF +ROM:E6DE .byte 0xFF +ROM:E6DF .byte 0xFF +ROM:E6E0 .byte 0xFF +ROM:E6E1 .byte 0xFF +ROM:E6E2 .byte 0xFF +ROM:E6E3 .byte 0xFF +ROM:E6E4 .byte 0xFF +ROM:E6E5 .byte 0xFF +ROM:E6E6 .byte 0xFF +ROM:E6E7 .byte 0xFF +ROM:E6E8 .byte 0xFF +ROM:E6E9 .byte 0xFF +ROM:E6EA .byte 0xFF +ROM:E6EB .byte 0xFF +ROM:E6EC .byte 0xFF +ROM:E6ED .byte 0xFF +ROM:E6EE .byte 0xFF +ROM:E6EF .byte 0xFF +ROM:E6F0 .byte 0xFF +ROM:E6F1 .byte 0xFF +ROM:E6F2 .byte 0xFF +ROM:E6F3 .byte 0xFF +ROM:E6F4 .byte 0xFF +ROM:E6F5 .byte 0xFF +ROM:E6F6 .byte 0xFF +ROM:E6F7 .byte 0xFF +ROM:E6F8 .byte 0xFF +ROM:E6F9 .byte 0xFF +ROM:E6FA .byte 0xFF +ROM:E6FB .byte 0xFF +ROM:E6FC .byte 0xFF +ROM:E6FD .byte 0xFF +ROM:E6FE .byte 0xFF +ROM:E6FF .byte 0xFF +ROM:E700 .byte 0xFF +ROM:E701 .byte 0xFF +ROM:E702 .byte 0xFF +ROM:E703 .byte 0xFF +ROM:E704 .byte 0xFF +ROM:E705 .byte 0xFF +ROM:E706 .byte 0xFF +ROM:E707 .byte 0xFF +ROM:E708 .byte 0xFF +ROM:E709 .byte 0xFF +ROM:E70A .byte 0xFF +ROM:E70B .byte 0xFF +ROM:E70C .byte 0xFF +ROM:E70D .byte 0xFF +ROM:E70E .byte 0xFF +ROM:E70F .byte 0xFF +ROM:E710 .byte 0xFF +ROM:E711 .byte 0xFF +ROM:E712 .byte 0xFF +ROM:E713 .byte 0xFF +ROM:E714 .byte 0xFF +ROM:E715 .byte 0xFF +ROM:E716 .byte 0xFF +ROM:E717 .byte 0xFF +ROM:E718 .byte 0xFF +ROM:E719 .byte 0xFF +ROM:E71A .byte 0xFF +ROM:E71B .byte 0xFF +ROM:E71C .byte 0xFF +ROM:E71D .byte 0xFF +ROM:E71E .byte 0xFF +ROM:E71F .byte 0xFF +ROM:E720 .byte 0xFF +ROM:E721 .byte 0xFF +ROM:E722 .byte 0xFF +ROM:E723 .byte 0xFF +ROM:E724 .byte 0xFF +ROM:E725 .byte 0xFF +ROM:E726 .byte 0xFF +ROM:E727 .byte 0xFF +ROM:E728 .byte 0xFF +ROM:E729 .byte 0xFF +ROM:E72A .byte 0xFF +ROM:E72B .byte 0xFF +ROM:E72C .byte 0xFF +ROM:E72D .byte 0xFF +ROM:E72E .byte 0xFF +ROM:E72F .byte 0xFF +ROM:E730 .byte 0xFF +ROM:E731 .byte 0xFF +ROM:E732 .byte 0xFF +ROM:E733 .byte 0xFF +ROM:E734 .byte 0xFF +ROM:E735 .byte 0xFF +ROM:E736 .byte 0xFF +ROM:E737 .byte 0xFF +ROM:E738 .byte 0xFF +ROM:E739 .byte 0xFF +ROM:E73A .byte 0xFF +ROM:E73B .byte 0xFF +ROM:E73C .byte 0xFF +ROM:E73D .byte 0xFF +ROM:E73E .byte 0xFF +ROM:E73F .byte 0xFF +ROM:E740 .byte 0xFF +ROM:E741 .byte 0xFF +ROM:E742 .byte 0xFF +ROM:E743 .byte 0xFF +ROM:E744 .byte 0xFF +ROM:E745 .byte 0xFF +ROM:E746 .byte 0xFF +ROM:E747 .byte 0xFF +ROM:E748 .byte 0xFF +ROM:E749 .byte 0xFF +ROM:E74A .byte 0xFF +ROM:E74B .byte 0xFF +ROM:E74C .byte 0xFF +ROM:E74D .byte 0xFF +ROM:E74E .byte 0xFF +ROM:E74F .byte 0xFF +ROM:E750 .byte 0xFF +ROM:E751 .byte 0xFF +ROM:E752 .byte 0xFF +ROM:E753 .byte 0xFF +ROM:E754 .byte 0xFF +ROM:E755 .byte 0xFF +ROM:E756 .byte 0xFF +ROM:E757 .byte 0xFF +ROM:E758 .byte 0xFF +ROM:E759 .byte 0xFF +ROM:E75A .byte 0xFF +ROM:E75B .byte 0xFF +ROM:E75C .byte 0xFF +ROM:E75D .byte 0xFF +ROM:E75E .byte 0xFF +ROM:E75F .byte 0xFF +ROM:E760 .byte 0xFF +ROM:E761 .byte 0xFF +ROM:E762 .byte 0xFF +ROM:E763 .byte 0xFF +ROM:E764 .byte 0xFF +ROM:E765 .byte 0xFF +ROM:E766 .byte 0xFF +ROM:E767 .byte 0xFF +ROM:E768 .byte 0xFF +ROM:E769 .byte 0xFF +ROM:E76A .byte 0xFF +ROM:E76B .byte 0xFF +ROM:E76C .byte 0xFF +ROM:E76D .byte 0xFF +ROM:E76E .byte 0xFF +ROM:E76F .byte 0xFF +ROM:E770 .byte 0xFF +ROM:E771 .byte 0xFF +ROM:E772 .byte 0xFF +ROM:E773 .byte 0xFF +ROM:E774 .byte 0xFF +ROM:E775 .byte 0xFF +ROM:E776 .byte 0xFF +ROM:E777 .byte 0xFF +ROM:E778 .byte 0xFF +ROM:E779 .byte 0xFF +ROM:E77A .byte 0xFF +ROM:E77B .byte 0xFF +ROM:E77C .byte 0xFF +ROM:E77D .byte 0xFF +ROM:E77E .byte 0xFF +ROM:E77F .byte 0xFF +ROM:E780 .byte 0xFF +ROM:E781 .byte 0xFF +ROM:E782 .byte 0xFF +ROM:E783 .byte 0xFF +ROM:E784 .byte 0xFF +ROM:E785 .byte 0xFF +ROM:E786 .byte 0xFF +ROM:E787 .byte 0xFF +ROM:E788 .byte 0xFF +ROM:E789 .byte 0xFF +ROM:E78A .byte 0xFF +ROM:E78B .byte 0xFF +ROM:E78C .byte 0xFF +ROM:E78D .byte 0xFF +ROM:E78E .byte 0xFF +ROM:E78F .byte 0xFF +ROM:E790 .byte 0xFF +ROM:E791 .byte 0xFF +ROM:E792 .byte 0xFF +ROM:E793 .byte 0xFF +ROM:E794 .byte 0xFF +ROM:E795 .byte 0xFF +ROM:E796 .byte 0xFF +ROM:E797 .byte 0xFF +ROM:E798 .byte 0xFF +ROM:E799 .byte 0xFF +ROM:E79A .byte 0xFF +ROM:E79B .byte 0xFF +ROM:E79C .byte 0xFF +ROM:E79D .byte 0xFF +ROM:E79E .byte 0xFF +ROM:E79F .byte 0xFF +ROM:E7A0 .byte 0xFF +ROM:E7A1 .byte 0xFF +ROM:E7A2 .byte 0xFF +ROM:E7A3 .byte 0xFF +ROM:E7A4 .byte 0xFF +ROM:E7A5 .byte 0xFF +ROM:E7A6 .byte 0xFF +ROM:E7A7 .byte 0xFF +ROM:E7A8 .byte 0xFF +ROM:E7A9 .byte 0xFF +ROM:E7AA .byte 0xFF +ROM:E7AB .byte 0xFF +ROM:E7AC .byte 0xFF +ROM:E7AD .byte 0xFF +ROM:E7AE .byte 0xFF +ROM:E7AF .byte 0xFF +ROM:E7B0 .byte 0xFF +ROM:E7B1 .byte 0xFF +ROM:E7B2 .byte 0xFF +ROM:E7B3 .byte 0xFF +ROM:E7B4 .byte 0xFF +ROM:E7B5 .byte 0xFF +ROM:E7B6 .byte 0xFF +ROM:E7B7 .byte 0xFF +ROM:E7B8 .byte 0xFF +ROM:E7B9 .byte 0xFF +ROM:E7BA .byte 0xFF +ROM:E7BB .byte 0xFF +ROM:E7BC .byte 0xFF +ROM:E7BD .byte 0xFF +ROM:E7BE .byte 0xFF +ROM:E7BF .byte 0xFF +ROM:E7C0 .byte 0xFF +ROM:E7C1 .byte 0xFF +ROM:E7C2 .byte 0xFF +ROM:E7C3 .byte 0xFF +ROM:E7C4 .byte 0xFF +ROM:E7C5 .byte 0xFF +ROM:E7C6 .byte 0xFF +ROM:E7C7 .byte 0xFF +ROM:E7C8 .byte 0xFF +ROM:E7C9 .byte 0xFF +ROM:E7CA .byte 0xFF +ROM:E7CB .byte 0xFF +ROM:E7CC .byte 0xFF +ROM:E7CD .byte 0xFF +ROM:E7CE .byte 0xFF +ROM:E7CF .byte 0xFF +ROM:E7D0 .byte 0xFF +ROM:E7D1 .byte 0xFF +ROM:E7D2 .byte 0xFF +ROM:E7D3 .byte 0xFF +ROM:E7D4 .byte 0xFF +ROM:E7D5 .byte 0xFF +ROM:E7D6 .byte 0xFF +ROM:E7D7 .byte 0xFF +ROM:E7D8 .byte 0xFF +ROM:E7D9 .byte 0xFF +ROM:E7DA .byte 0xFF +ROM:E7DB .byte 0xFF +ROM:E7DC .byte 0xFF +ROM:E7DD .byte 0xFF +ROM:E7DE .byte 0xFF +ROM:E7DF .byte 0xFF +ROM:E7E0 .byte 0xFF +ROM:E7E1 .byte 0xFF +ROM:E7E2 .byte 0xFF +ROM:E7E3 .byte 0xFF +ROM:E7E4 .byte 0xFF +ROM:E7E5 .byte 0xFF +ROM:E7E6 .byte 0xFF +ROM:E7E7 .byte 0xFF +ROM:E7E8 .byte 0xFF +ROM:E7E9 .byte 0xFF +ROM:E7EA .byte 0xFF +ROM:E7EB .byte 0xFF +ROM:E7EC .byte 0xFF +ROM:E7ED .byte 0xFF +ROM:E7EE .byte 0xFF +ROM:E7EF .byte 0xFF +ROM:E7F0 .byte 0xFF +ROM:E7F1 .byte 0xFF +ROM:E7F2 .byte 0xFF +ROM:E7F3 .byte 0xFF +ROM:E7F4 .byte 0xFF +ROM:E7F5 .byte 0xFF +ROM:E7F6 .byte 0xFF +ROM:E7F7 .byte 0xFF +ROM:E7F8 .byte 0xFF +ROM:E7F9 .byte 0xFF +ROM:E7FA .byte 0xFF +ROM:E7FB .byte 0xFF +ROM:E7FC .byte 0xFF +ROM:E7FD .byte 0xFF +ROM:E7FE .byte 0xFF +ROM:E7FF .byte 0xFF +ROM:E800 .byte 2 +ROM:E801 .byte 0xE8 +ROM:E802 .byte 6 +ROM:E803 .byte 2 +ROM:E804 .byte 0xF3 +ROM:E805 .byte 0xF8 +ROM:E806 .byte 0x75 ; u +ROM:E807 .byte 0x81 +ROM:E808 .byte 0x20 +ROM:E809 .byte 2 +ROM:E80A .byte 0xF2 +ROM:E80B .byte 0xD5 +ROM:E80C .byte 2 +ROM:E80D .byte 0xF7 +ROM:E80E .byte 0x35 ; 5 +ROM:E80F .byte 0x35 ; 5 +ROM:E810 .byte 0x24 ; $ +ROM:E811 .byte 0x33 ; 3 +ROM:E812 .byte 0x70 ; p +ROM:E813 .byte 0x58 ; X +ROM:E814 .byte 4 +ROM:E815 .byte 0x11 +ROM:E816 .byte 7 +ROM:E817 .byte 0x30 ; 0 +ROM:E818 .byte 0 +ROM:E819 .byte 0x49 ; I +ROM:E81A .byte 6 +ROM:E81B .byte 0x43 ; C +ROM:E81C .byte 8 +ROM:E81D .byte 0xE5 +ROM:E81E .byte 0 +ROM:E81F .byte 0 +ROM:E820 .byte 0xAF +ROM:E821 .byte 0x8F +ROM:E822 .byte 0x22 ; " +ROM:E823 .byte 0xFF +ROM:E824 .byte 0xFF +ROM:E825 .byte 0xFF +ROM:E826 .byte 0xFF +ROM:E827 .byte 0xFF +ROM:E828 .byte 0xFF +ROM:E829 .byte 0xFF +ROM:E82A .byte 0xFF +ROM:E82B .byte 2 +ROM:E82C .byte 0xF3 +ROM:E82D .byte 0xBC +ROM:E82E .byte 0xE7 +ROM:E82F .byte 9 +ROM:E830 .byte 0xF6 +ROM:E831 .byte 8 +ROM:E832 .byte 0xDF +ROM:E833 .byte 0xFA +ROM:E834 .byte 0x80 +ROM:E835 .byte 0x46 ; F +ROM:E836 .byte 0xE7 +ROM:E837 .byte 9 +ROM:E838 .byte 0xF2 +ROM:E839 .byte 8 +ROM:E83A .byte 0xDF +ROM:E83B .byte 0xFA +ROM:E83C .byte 0x80 +ROM:E83D .byte 0x3E ; > +ROM:E83E .byte 0x88 +ROM:E83F .byte 0x82 +ROM:E840 .byte 0x8C +ROM:E841 .byte 0x83 +ROM:E842 .byte 0xE7 +ROM:E843 .byte 9 +ROM:E844 .byte 0xF0 +ROM:E845 .byte 0xA3 +ROM:E846 .byte 0xDF +ROM:E847 .byte 0xFA +ROM:E848 .byte 0x80 +ROM:E849 .byte 0x32 ; 2 +ROM:E84A .byte 0xE3 +ROM:E84B .byte 9 +ROM:E84C .byte 0xF6 +ROM:E84D .byte 8 +ROM:E84E .byte 0xDF +ROM:E84F .byte 0xFA +ROM:E850 .byte 0x80 +ROM:E851 .byte 0x78 ; x +ROM:E852 .byte 0xE3 +ROM:E853 .byte 9 +ROM:E854 .byte 0xF2 +ROM:E855 .byte 8 +ROM:E856 .byte 0xDF +ROM:E857 .byte 0xFA +ROM:E858 .byte 0x80 +ROM:E859 .byte 0x70 ; p +ROM:E85A .byte 0x88 +ROM:E85B .byte 0x82 +ROM:E85C .byte 0x8C +ROM:E85D .byte 0x83 +ROM:E85E .byte 0xE3 +ROM:E85F .byte 9 +ROM:E860 .byte 0xF0 +ROM:E861 .byte 0xA3 +ROM:E862 .byte 0xDF +ROM:E863 .byte 0xFA +ROM:E864 .byte 0x80 +ROM:E865 .byte 0x64 ; d +ROM:E866 .byte 0x89 +ROM:E867 .byte 0x82 +ROM:E868 .byte 0x8A +ROM:E869 .byte 0x83 +ROM:E86A .byte 0xE0 +ROM:E86B .byte 0xA3 +ROM:E86C .byte 0xF6 +ROM:E86D .byte 8 +ROM:E86E .byte 0xDF +ROM:E86F .byte 0xFA +ROM:E870 .byte 0x80 +ROM:E871 .byte 0x58 ; X +ROM:E872 .byte 0x89 +ROM:E873 .byte 0x82 +ROM:E874 .byte 0x8A +ROM:E875 .byte 0x83 +ROM:E876 .byte 0xE0 +ROM:E877 .byte 0xA3 +ROM:E878 .byte 0xF2 +ROM:E879 .byte 8 +ROM:E87A .byte 0xDF +ROM:E87B .byte 0xFA +ROM:E87C .byte 0x80 +ROM:E87D .byte 0x4C ; L +ROM:E87E .byte 0x80 +ROM:E87F .byte 0xD2 +ROM:E880 .byte 0x80 +ROM:E881 .byte 0xFA +ROM:E882 .byte 0x80 +ROM:E883 .byte 0xC6 +ROM:E884 .byte 0x80 +ROM:E885 .byte 0xD4 +ROM:E886 .byte 0x80 +ROM:E887 .byte 0x69 ; i +ROM:E888 .byte 0x80 +ROM:E889 .byte 0xF2 +ROM:E88A .byte 0x80 +ROM:E88B .byte 0x33 ; 3 +ROM:E88C .byte 0x80 +ROM:E88D .byte 0x10 +ROM:E88E .byte 0x80 +ROM:E88F .byte 0xA6 +ROM:E890 .byte 0x80 +ROM:E891 .byte 0xEA +ROM:E892 .byte 0x80 +ROM:E893 .byte 0x9A +ROM:E894 .byte 0x80 +ROM:E895 .byte 0xA8 +ROM:E896 .byte 0x80 +ROM:E897 .byte 0xDA +ROM:E898 .byte 0x80 +ROM:E899 .byte 0xE2 +ROM:E89A .byte 0x80 +ROM:E89B .byte 0xCA +ROM:E89C .byte 0x80 +ROM:E89D .byte 0x33 ; 3 +ROM:E89E .byte 0x89 +ROM:E89F .byte 0x82 +ROM:E8A0 .byte 0x8A +ROM:E8A1 .byte 0x83 +ROM:E8A2 .byte 0xEC +ROM:E8A3 .byte 0xFA +ROM:E8A4 .byte 0xE4 +ROM:E8A5 .byte 0x93 +ROM:E8A6 .byte 0xA3 +ROM:E8A7 .byte 0xC8 +ROM:E8A8 .byte 0xC5 +ROM:E8A9 .byte 0x82 +ROM:E8AA .byte 0xC8 +ROM:E8AB .byte 0xCC +ROM:E8AC .byte 0xC5 +ROM:E8AD .byte 0x83 +ROM:E8AE .byte 0xCC +ROM:E8AF .byte 0xF0 +ROM:E8B0 .byte 0xA3 +ROM:E8B1 .byte 0xC8 +ROM:E8B2 .byte 0xC5 +ROM:E8B3 .byte 0x82 +ROM:E8B4 .byte 0xC8 +ROM:E8B5 .byte 0xCC +ROM:E8B6 .byte 0xC5 +ROM:E8B7 .byte 0x83 +ROM:E8B8 .byte 0xCC +ROM:E8B9 .byte 0xDF +ROM:E8BA .byte 0xE9 +ROM:E8BB .byte 0xDE +ROM:E8BC .byte 0xE7 +ROM:E8BD .byte 0x80 +ROM:E8BE .byte 0xD +ROM:E8BF .byte 0x89 +ROM:E8C0 .byte 0x82 +ROM:E8C1 .byte 0x8A +ROM:E8C2 .byte 0x83 +ROM:E8C3 .byte 0xE4 +ROM:E8C4 .byte 0x93 +ROM:E8C5 .byte 0xA3 +ROM:E8C6 .byte 0xF6 +ROM:E8C7 .byte 8 +ROM:E8C8 .byte 0xDF +ROM:E8C9 .byte 0xF9 +ROM:E8CA .byte 0xEC +ROM:E8CB .byte 0xFA +ROM:E8CC .byte 0xA9 +ROM:E8CD .byte 0xF0 +ROM:E8CE .byte 0xED +ROM:E8CF .byte 0xFB +ROM:E8D0 .byte 0x22 ; " +ROM:E8D1 .byte 0x89 +ROM:E8D2 .byte 0x82 +ROM:E8D3 .byte 0x8A +ROM:E8D4 .byte 0x83 +ROM:E8D5 .byte 0xEC +ROM:E8D6 .byte 0xFA +ROM:E8D7 .byte 0xE0 +ROM:E8D8 .byte 0xA3 +ROM:E8D9 .byte 0xC8 +ROM:E8DA .byte 0xC5 +ROM:E8DB .byte 0x82 +ROM:E8DC .byte 0xC8 +ROM:E8DD .byte 0xCC +ROM:E8DE .byte 0xC5 +ROM:E8DF .byte 0x83 +ROM:E8E0 .byte 0xCC +ROM:E8E1 .byte 0xF0 +ROM:E8E2 .byte 0xA3 +ROM:E8E3 .byte 0xC8 +ROM:E8E4 .byte 0xC5 +ROM:E8E5 .byte 0x82 +ROM:E8E6 .byte 0xC8 +ROM:E8E7 .byte 0xCC +ROM:E8E8 .byte 0xC5 +ROM:E8E9 .byte 0x83 +ROM:E8EA .byte 0xCC +ROM:E8EB .byte 0xDF +ROM:E8EC .byte 0xEA +ROM:E8ED .byte 0xDE +ROM:E8EE .byte 0xE8 +ROM:E8EF .byte 0x80 +ROM:E8F0 .byte 0xDB +ROM:E8F1 .byte 0x89 +ROM:E8F2 .byte 0x82 +ROM:E8F3 .byte 0x8A +ROM:E8F4 .byte 0x83 +ROM:E8F5 .byte 0xE4 +ROM:E8F6 .byte 0x93 +ROM:E8F7 .byte 0xA3 +ROM:E8F8 .byte 0xF2 +ROM:E8F9 .byte 8 +ROM:E8FA .byte 0xDF +ROM:E8FB .byte 0xF9 +ROM:E8FC .byte 0x80 +ROM:E8FD .byte 0xCC +ROM:E8FE .byte 0x88 +ROM:E8FF .byte 0xF0 +ROM:E900 .byte 0xEF +ROM:E901 .byte 0x60 ; ` +ROM:E902 .byte 1 +ROM:E903 .byte 0xE +ROM:E904 .byte 0x4E ; N +ROM:E905 .byte 0x60 ; ` +ROM:E906 .byte 0xC3 +ROM:E907 .byte 0x88 +ROM:E908 .byte 0xF0 +ROM:E909 .byte 0xED +ROM:E90A .byte 0x24 ; $ +ROM:E90B .byte 2 +ROM:E90C .byte 0xB4 +ROM:E90D .byte 4 +ROM:E90E .byte 0 +ROM:E90F .byte 0x50 ; P +ROM:E910 .byte 0xB9 +ROM:E911 .byte 0xF5 +ROM:E912 .byte 0x82 +ROM:E913 .byte 0xEB +ROM:E914 .byte 0x24 ; $ +ROM:E915 .byte 2 +ROM:E916 .byte 0xB4 +ROM:E917 .byte 4 +ROM:E918 .byte 0 +ROM:E919 .byte 0x50 ; P +ROM:E91A .byte 0xAF +ROM:E91B .byte 0x23 ; # +ROM:E91C .byte 0x23 ; # +ROM:E91D .byte 0x45 ; E +ROM:E91E .byte 0x82 +ROM:E91F .byte 0x23 ; # +ROM:E920 .byte 0x90 +ROM:E921 .byte 0xE8 +ROM:E922 .byte 0x7E ; ~ +ROM:E923 .byte 0x73 ; s +ROM:E924 .byte 0xBB +ROM:E925 .byte 1 +ROM:E926 .byte 6 +ROM:E927 .byte 0x89 +ROM:E928 .byte 0x82 +ROM:E929 .byte 0x8A +ROM:E92A .byte 0x83 +ROM:E92B .byte 0xE0 +ROM:E92C .byte 0x22 ; " +ROM:E92D .byte 0x50 ; P +ROM:E92E .byte 2 +ROM:E92F .byte 0xE7 +ROM:E930 .byte 0x22 ; " +ROM:E931 .byte 0xBB +ROM:E932 .byte 0xFE +ROM:E933 .byte 2 +ROM:E934 .byte 0xE3 +ROM:E935 .byte 0x22 ; " +ROM:E936 .byte 0x89 +ROM:E937 .byte 0x82 +ROM:E938 .byte 0x8A +ROM:E939 .byte 0x83 +ROM:E93A .byte 0xE4 +ROM:E93B .byte 0x93 +ROM:E93C .byte 0x22 ; " +ROM:E93D .byte 0xBB +ROM:E93E .byte 1 +ROM:E93F .byte 6 +ROM:E940 .byte 0x89 +ROM:E941 .byte 0x82 +ROM:E942 .byte 0x8A +ROM:E943 .byte 0x83 +ROM:E944 .byte 0xF0 +ROM:E945 .byte 0x22 ; " +ROM:E946 .byte 0x50 ; P +ROM:E947 .byte 2 +ROM:E948 .byte 0xF7 +ROM:E949 .byte 0x22 ; " +ROM:E94A .byte 0xBB +ROM:E94B .byte 0xFE +ROM:E94C .byte 1 +ROM:E94D .byte 0xF3 +ROM:E94E .byte 0x22 ; " +ROM:E94F .byte 0xA3 +ROM:E950 .byte 0xF8 +ROM:E951 .byte 0xE0 +ROM:E952 .byte 0xC5 +ROM:E953 .byte 0xF0 +ROM:E954 .byte 0x25 ; % +ROM:E955 .byte 0xF0 +ROM:E956 .byte 0xF0 +ROM:E957 .byte 0xE5 +ROM:E958 .byte 0x82 +ROM:E959 .byte 0x15 +ROM:E95A .byte 0x82 +ROM:E95B .byte 0x70 ; p +ROM:E95C .byte 2 +ROM:E95D .byte 0x15 +ROM:E95E .byte 0x83 +ROM:E95F .byte 0xE0 +ROM:E960 .byte 0xC8 +ROM:E961 .byte 0x38 ; 8 +ROM:E962 .byte 0xF0 +ROM:E963 .byte 0xE8 +ROM:E964 .byte 0x22 ; " +ROM:E965 .byte 0xE8 +ROM:E966 .byte 0x60 ; ` +ROM:E967 .byte 0xF +ROM:E968 .byte 0xEC +ROM:E969 .byte 0xC3 +ROM:E96A .byte 0x13 +ROM:E96B .byte 0xFC +ROM:E96C .byte 0xED +ROM:E96D .byte 0x13 +ROM:E96E .byte 0xFD +ROM:E96F .byte 0xEE +ROM:E970 .byte 0x13 +ROM:E971 .byte 0xFE +ROM:E972 .byte 0xEF +ROM:E973 .byte 0x13 +ROM:E974 .byte 0xFF +ROM:E975 .byte 0xD8 +ROM:E976 .byte 0xF1 +ROM:E977 .byte 0x22 ; " +ROM:E978 .byte 0xEC +ROM:E979 .byte 0xF0 +ROM:E97A .byte 0xA3 +ROM:E97B .byte 0xED +ROM:E97C .byte 0xF0 +ROM:E97D .byte 0xA3 +ROM:E97E .byte 0xEE +ROM:E97F .byte 0xF0 +ROM:E980 .byte 0xA3 +ROM:E981 .byte 0xEF +ROM:E982 .byte 0xF0 +ROM:E983 .byte 0x22 ; " +ROM:E984 .byte 0xE3 +ROM:E985 .byte 0xF5 +ROM:E986 .byte 0xF0 +ROM:E987 .byte 9 +ROM:E988 .byte 0xE2 +ROM:E989 .byte 8 +ROM:E98A .byte 0xB5 +ROM:E98B .byte 0xF0 +ROM:E98C .byte 0x6B ; k +ROM:E98D .byte 0xDF +ROM:E98E .byte 0xF5 +ROM:E98F .byte 0x80 +ROM:E990 .byte 0x67 ; g +ROM:E991 .byte 0xE3 +ROM:E992 .byte 0xF5 +ROM:E993 .byte 0xF0 +ROM:E994 .byte 9 +ROM:E995 .byte 0xE6 +ROM:E996 .byte 8 +ROM:E997 .byte 0xB5 +ROM:E998 .byte 0xF0 +ROM:E999 .byte 0x5E ; ^ +ROM:E99A .byte 0xDF +ROM:E99B .byte 0xF5 +ROM:E99C .byte 0x80 +ROM:E99D .byte 0x5A ; Z +ROM:E99E .byte 0x87 +ROM:E99F .byte 0xF0 +ROM:E9A0 .byte 9 +ROM:E9A1 .byte 0xE6 +ROM:E9A2 .byte 8 +ROM:E9A3 .byte 0xB5 +ROM:E9A4 .byte 0xF0 +ROM:E9A5 .byte 0x52 ; R +ROM:E9A6 .byte 0xDF +ROM:E9A7 .byte 0xF6 +ROM:E9A8 .byte 0x80 +ROM:E9A9 .byte 0x4E ; N +ROM:E9AA .byte 0x87 +ROM:E9AB .byte 0xF0 +ROM:E9AC .byte 9 +ROM:E9AD .byte 0xE2 +ROM:E9AE .byte 8 +ROM:E9AF .byte 0xB5 +ROM:E9B0 .byte 0xF0 +ROM:E9B1 .byte 0x46 ; F +ROM:E9B2 .byte 0xDF +ROM:E9B3 .byte 0xF6 +ROM:E9B4 .byte 0x80 +ROM:E9B5 .byte 0x42 ; B +ROM:E9B6 .byte 0x88 +ROM:E9B7 .byte 0x82 +ROM:E9B8 .byte 0x8C +ROM:E9B9 .byte 0x83 +ROM:E9BA .byte 0x87 +ROM:E9BB .byte 0xF0 +ROM:E9BC .byte 9 +ROM:E9BD .byte 0xE0 +ROM:E9BE .byte 0xA3 +ROM:E9BF .byte 0xB5 +ROM:E9C0 .byte 0xF0 +ROM:E9C1 .byte 0x36 ; 6 +ROM:E9C2 .byte 0xDF +ROM:E9C3 .byte 0xF6 +ROM:E9C4 .byte 0x80 +ROM:E9C5 .byte 0x32 ; 2 +ROM:E9C6 .byte 0x88 +ROM:E9C7 .byte 0x82 +ROM:E9C8 .byte 0x8C +ROM:E9C9 .byte 0x83 +ROM:E9CA .byte 0x87 +ROM:E9CB .byte 0xF0 +ROM:E9CC .byte 9 +ROM:E9CD .byte 0xE4 +ROM:E9CE .byte 0x93 +ROM:E9CF .byte 0xA3 +ROM:E9D0 .byte 0xB5 +ROM:E9D1 .byte 0xF0 +ROM:E9D2 .byte 0x25 ; % +ROM:E9D3 .byte 0xDF +ROM:E9D4 .byte 0xF5 +ROM:E9D5 .byte 0x80 +ROM:E9D6 .byte 0x21 ; ! +ROM:E9D7 .byte 0x88 +ROM:E9D8 .byte 0x82 +ROM:E9D9 .byte 0x8C +ROM:E9DA .byte 0x83 +ROM:E9DB .byte 0xE3 +ROM:E9DC .byte 0xF5 +ROM:E9DD .byte 0xF0 +ROM:E9DE .byte 9 +ROM:E9DF .byte 0xE0 +ROM:E9E0 .byte 0xA3 +ROM:E9E1 .byte 0xB5 +ROM:E9E2 .byte 0xF0 +ROM:E9E3 .byte 0x14 +ROM:E9E4 .byte 0xDF +ROM:E9E5 .byte 0xF5 +ROM:E9E6 .byte 0x80 +ROM:E9E7 .byte 0x10 +ROM:E9E8 .byte 0x88 +ROM:E9E9 .byte 0x82 +ROM:E9EA .byte 0x8C +ROM:E9EB .byte 0x83 +ROM:E9EC .byte 0xE3 +ROM:E9ED .byte 0xF5 +ROM:E9EE .byte 0xF0 +ROM:E9EF .byte 9 +ROM:E9F0 .byte 0xE4 +ROM:E9F1 .byte 0x93 +ROM:E9F2 .byte 0xA3 +ROM:E9F3 .byte 0xB5 +ROM:E9F4 .byte 0xF0 +ROM:E9F5 .byte 2 +ROM:E9F6 .byte 0xDF +ROM:E9F7 .byte 0xF4 +ROM:E9F8 .byte 2 +ROM:E9F9 .byte 0xEA +ROM:E9FA .byte 0xB3 +ROM:E9FB .byte 0x80 +ROM:E9FC .byte 0x87 +ROM:E9FD .byte 0x80 +ROM:E9FE .byte 0xE9 +ROM:E9FF .byte 0x80 +ROM:EA00 .byte 0x90 +ROM:EA01 .byte 0x80 +ROM:EA02 .byte 0xD4 +ROM:EA03 .byte 0x80 +ROM:EA04 .byte 0x3E ; > +ROM:EA05 .byte 0x80 +ROM:EA06 .byte 0x15 +ROM:EA07 .byte 0x80 +ROM:EA08 .byte 0x6E ; n +ROM:EA09 .byte 0x80 +ROM:EA0A .byte 0x7E ; ~ +ROM:EA0B .byte 0x80 +ROM:EA0C .byte 0x9D +ROM:EA0D .byte 0x80 +ROM:EA0E .byte 0xB7 +ROM:EA0F .byte 0x80 +ROM:EA10 .byte 0x8D +ROM:EA11 .byte 0x80 +ROM:EA12 .byte 0xA3 +ROM:EA13 .byte 0x80 +ROM:EA14 .byte 0x51 ; Q +ROM:EA15 .byte 0x80 +ROM:EA16 .byte 0x74 ; t +ROM:EA17 .byte 0x80 +ROM:EA18 .byte 0x3C ; < +ROM:EA19 .byte 2 +ROM:EA1A .byte 0xEA +ROM:EA1B .byte 0xBF +ROM:EA1C .byte 0x89 +ROM:EA1D .byte 0x82 +ROM:EA1E .byte 0x8A +ROM:EA1F .byte 0x83 +ROM:EA20 .byte 0xEC +ROM:EA21 .byte 0xFA +ROM:EA22 .byte 0xE4 +ROM:EA23 .byte 0x93 +ROM:EA24 .byte 0xF5 +ROM:EA25 .byte 0xF0 +ROM:EA26 .byte 0xA3 +ROM:EA27 .byte 0xC8 +ROM:EA28 .byte 0xC5 +ROM:EA29 .byte 0x82 +ROM:EA2A .byte 0xC8 +ROM:EA2B .byte 0xCC +ROM:EA2C .byte 0xC5 +ROM:EA2D .byte 0x83 +ROM:EA2E .byte 0xCC +ROM:EA2F .byte 0xE4 +ROM:EA30 .byte 0x93 +ROM:EA31 .byte 0xA3 +ROM:EA32 .byte 0xC8 +ROM:EA33 .byte 0xC5 +ROM:EA34 .byte 0x82 +ROM:EA35 .byte 0xC8 +ROM:EA36 .byte 0xCC +ROM:EA37 .byte 0xC5 +ROM:EA38 .byte 0x83 +ROM:EA39 .byte 0xCC +ROM:EA3A .byte 0xB5 +ROM:EA3B .byte 0xF0 +ROM:EA3C .byte 0x76 ; v +ROM:EA3D .byte 0xDF +ROM:EA3E .byte 0xE3 +ROM:EA3F .byte 0xDE +ROM:EA40 .byte 0xE1 +ROM:EA41 .byte 0x80 +ROM:EA42 .byte 0x70 ; p +ROM:EA43 .byte 0x89 +ROM:EA44 .byte 0x82 +ROM:EA45 .byte 0x8A +ROM:EA46 .byte 0x83 +ROM:EA47 .byte 0xE4 +ROM:EA48 .byte 0x93 +ROM:EA49 .byte 0xF5 +ROM:EA4A .byte 0xF0 +ROM:EA4B .byte 0xA3 +ROM:EA4C .byte 0xE2 +ROM:EA4D .byte 8 +ROM:EA4E .byte 0xB5 +ROM:EA4F .byte 0xF0 +ROM:EA50 .byte 0x62 ; b +ROM:EA51 .byte 0xDF +ROM:EA52 .byte 0xF4 +ROM:EA53 .byte 0x80 +ROM:EA54 .byte 0x5E ; ^ +ROM:EA55 .byte 0x89 +ROM:EA56 .byte 0x82 +ROM:EA57 .byte 0x8A +ROM:EA58 .byte 0x83 +ROM:EA59 .byte 0xE0 +ROM:EA5A .byte 0xF5 +ROM:EA5B .byte 0xF0 +ROM:EA5C .byte 0xA3 +ROM:EA5D .byte 0xE6 +ROM:EA5E .byte 8 +ROM:EA5F .byte 0xB5 +ROM:EA60 .byte 0xF0 +ROM:EA61 .byte 0x51 ; Q +ROM:EA62 .byte 0xDF +ROM:EA63 .byte 0xF5 +ROM:EA64 .byte 0x80 +ROM:EA65 .byte 0x4D ; M +ROM:EA66 .byte 0x89 +ROM:EA67 .byte 0x82 +ROM:EA68 .byte 0x8A +ROM:EA69 .byte 0x83 +ROM:EA6A .byte 0xE0 +ROM:EA6B .byte 0xF5 +ROM:EA6C .byte 0xF0 +ROM:EA6D .byte 0xA3 +ROM:EA6E .byte 0xE2 +ROM:EA6F .byte 8 +ROM:EA70 .byte 0xB5 +ROM:EA71 .byte 0xF0 +ROM:EA72 .byte 0x40 ; @ +ROM:EA73 .byte 0xDF +ROM:EA74 .byte 0xF5 +ROM:EA75 .byte 0x80 +ROM:EA76 .byte 0x3C ; < +ROM:EA77 .byte 0x89 +ROM:EA78 .byte 0x82 +ROM:EA79 .byte 0x8A +ROM:EA7A .byte 0x83 +ROM:EA7B .byte 0xE4 +ROM:EA7C .byte 0x93 +ROM:EA7D .byte 0xF5 +ROM:EA7E .byte 0xF0 +ROM:EA7F .byte 0xA3 +ROM:EA80 .byte 0xE6 +ROM:EA81 .byte 8 +ROM:EA82 .byte 0xB5 +ROM:EA83 .byte 0xF0 +ROM:EA84 .byte 0x2E ; . +ROM:EA85 .byte 0xDF +ROM:EA86 .byte 0xF4 +ROM:EA87 .byte 0x80 +ROM:EA88 .byte 0x2A ; * +ROM:EA89 .byte 0x80 +ROM:EA8A .byte 2 +ROM:EA8B .byte 0x80 +ROM:EA8C .byte 0x57 ; W +ROM:EA8D .byte 0x89 +ROM:EA8E .byte 0x82 +ROM:EA8F .byte 0x8A +ROM:EA90 .byte 0x83 +ROM:EA91 .byte 0xEC +ROM:EA92 .byte 0xFA +ROM:EA93 .byte 0xE4 +ROM:EA94 .byte 0x93 +ROM:EA95 .byte 0xF5 +ROM:EA96 .byte 0xF0 +ROM:EA97 .byte 0xA3 +ROM:EA98 .byte 0xC8 +ROM:EA99 .byte 0xC5 +ROM:EA9A .byte 0x82 +ROM:EA9B .byte 0xC8 +ROM:EA9C .byte 0xCC +ROM:EA9D .byte 0xC5 +ROM:EA9E .byte 0x83 +ROM:EA9F .byte 0xCC +ROM:EAA0 .byte 0xE0 +ROM:EAA1 .byte 0xA3 +ROM:EAA2 .byte 0xC8 +ROM:EAA3 .byte 0xC5 +ROM:EAA4 .byte 0x82 +ROM:EAA5 .byte 0xC8 +ROM:EAA6 .byte 0xCC +ROM:EAA7 .byte 0xC5 +ROM:EAA8 .byte 0x83 +ROM:EAA9 .byte 0xCC +ROM:EAAA .byte 0xB5 +ROM:EAAB .byte 0xF0 +ROM:EAAC .byte 6 +ROM:EAAD .byte 0xDF +ROM:EAAE .byte 0xE4 +ROM:EAAF .byte 0xDE +ROM:EAB0 .byte 0xE2 +ROM:EAB1 .byte 0x80 +ROM:EAB2 .byte 0 +ROM:EAB3 .byte 0x7F ;  +ROM:EAB4 .byte 0xFF +ROM:EAB5 .byte 0xB5 +ROM:EAB6 .byte 0xF0 +ROM:EAB7 .byte 2 +ROM:EAB8 .byte 0xF +ROM:EAB9 .byte 0x22 ; " +ROM:EABA .byte 0x40 ; @ +ROM:EABB .byte 2 +ROM:EABC .byte 0x7F ;  +ROM:EABD .byte 1 +ROM:EABE .byte 0x22 ; " +ROM:EABF .byte 0x89 +ROM:EAC0 .byte 0x82 +ROM:EAC1 .byte 0x8A +ROM:EAC2 .byte 0x83 +ROM:EAC3 .byte 0xEC +ROM:EAC4 .byte 0xFA +ROM:EAC5 .byte 0xE0 +ROM:EAC6 .byte 0xF5 +ROM:EAC7 .byte 0xF0 +ROM:EAC8 .byte 0xA3 +ROM:EAC9 .byte 0xC8 +ROM:EACA .byte 0xC5 +ROM:EACB .byte 0x82 +ROM:EACC .byte 0xC8 +ROM:EACD .byte 0xCC +ROM:EACE .byte 0xC5 +ROM:EACF .byte 0x83 +ROM:EAD0 .byte 0xCC +ROM:EAD1 .byte 0xE0 +ROM:EAD2 .byte 0xA3 +ROM:EAD3 .byte 0xC8 +ROM:EAD4 .byte 0xC5 +ROM:EAD5 .byte 0x82 +ROM:EAD6 .byte 0xC8 +ROM:EAD7 .byte 0xCC +ROM:EAD8 .byte 0xC5 +ROM:EAD9 .byte 0x83 +ROM:EADA .byte 0xCC +ROM:EADB .byte 0xB5 +ROM:EADC .byte 0xF0 +ROM:EADD .byte 0xD5 +ROM:EADE .byte 0xDF +ROM:EADF .byte 0xE5 +ROM:EAE0 .byte 0xDE +ROM:EAE1 .byte 0xE3 +ROM:EAE2 .byte 0x80 +ROM:EAE3 .byte 0xCF +ROM:EAE4 .byte 0x89 +ROM:EAE5 .byte 0x82 +ROM:EAE6 .byte 0x8A +ROM:EAE7 .byte 0x83 +ROM:EAE8 .byte 0xEC +ROM:EAE9 .byte 0xFA +ROM:EAEA .byte 0xE0 +ROM:EAEB .byte 0xF5 +ROM:EAEC .byte 0xF0 +ROM:EAED .byte 0xA3 +ROM:EAEE .byte 0xC8 +ROM:EAEF .byte 0xC5 +ROM:EAF0 .byte 0x82 +ROM:EAF1 .byte 0xC8 +ROM:EAF2 .byte 0xCC +ROM:EAF3 .byte 0xC5 +ROM:EAF4 .byte 0x83 +ROM:EAF5 .byte 0xCC +ROM:EAF6 .byte 0xE4 +ROM:EAF7 .byte 0x93 +ROM:EAF8 .byte 0xA3 +ROM:EAF9 .byte 0xC8 +ROM:EAFA .byte 0xC5 +ROM:EAFB .byte 0x82 +ROM:EAFC .byte 0xC8 +ROM:EAFD .byte 0xCC +ROM:EAFE .byte 0xC5 +ROM:EAFF .byte 0x83 +ROM:EB00 .byte 0xCC +ROM:EB01 .byte 0xB5 +ROM:EB02 .byte 0xF0 +ROM:EB03 .byte 0xAF +ROM:EB04 .byte 0xDF +ROM:EB05 .byte 0xE4 +ROM:EB06 .byte 0xDE +ROM:EB07 .byte 0xE2 +ROM:EB08 .byte 0x80 +ROM:EB09 .byte 0xA9 +ROM:EB0A .byte 0x88 +ROM:EB0B .byte 0xF0 +ROM:EB0C .byte 0xEF +ROM:EB0D .byte 0x60 ; ` +ROM:EB0E .byte 1 +ROM:EB0F .byte 0xE +ROM:EB10 .byte 0x4E ; N +ROM:EB11 .byte 0x60 ; ` +ROM:EB12 .byte 0xAB +ROM:EB13 .byte 0xED +ROM:EB14 .byte 0x24 ; $ +ROM:EB15 .byte 2 +ROM:EB16 .byte 0xB4 +ROM:EB17 .byte 4 +ROM:EB18 .byte 0 +ROM:EB19 .byte 0x50 ; P +ROM:EB1A .byte 0x98 +ROM:EB1B .byte 0xF5 +ROM:EB1C .byte 0x82 +ROM:EB1D .byte 0xEB +ROM:EB1E .byte 0x24 ; $ +ROM:EB1F .byte 2 +ROM:EB20 .byte 0xB4 +ROM:EB21 .byte 4 +ROM:EB22 .byte 0 +ROM:EB23 .byte 0x50 ; P +ROM:EB24 .byte 0x8E +ROM:EB25 .byte 0x23 ; # +ROM:EB26 .byte 0x23 ; # +ROM:EB27 .byte 0x45 ; E +ROM:EB28 .byte 0x82 +ROM:EB29 .byte 0x23 ; # +ROM:EB2A .byte 0x90 +ROM:EB2B .byte 0xE9 +ROM:EB2C .byte 0xFB +ROM:EB2D .byte 0x73 ; s +ROM:EB2E .byte 0xEF +ROM:EB2F .byte 0x4E ; N +ROM:EB30 .byte 0x60 ; ` +ROM:EB31 .byte 0x12 +ROM:EB32 .byte 0xEF +ROM:EB33 .byte 0x60 ; ` +ROM:EB34 .byte 1 +ROM:EB35 .byte 0xE +ROM:EB36 .byte 0xED +ROM:EB37 .byte 0xBB +ROM:EB38 .byte 1 +ROM:EB39 .byte 0xB +ROM:EB3A .byte 0x89 +ROM:EB3B .byte 0x82 +ROM:EB3C .byte 0x8A +ROM:EB3D .byte 0x83 +ROM:EB3E .byte 0xF0 +ROM:EB3F .byte 0xA3 +ROM:EB40 .byte 0xDF +ROM:EB41 .byte 0xFC +ROM:EB42 .byte 0xDE +ROM:EB43 .byte 0xFA +ROM:EB44 .byte 0x22 ; " +ROM:EB45 .byte 0x89 +ROM:EB46 .byte 0xF0 +ROM:EB47 .byte 0x50 ; P +ROM:EB48 .byte 7 +ROM:EB49 .byte 0xF7 +ROM:EB4A .byte 9 +ROM:EB4B .byte 0xDF +ROM:EB4C .byte 0xFC +ROM:EB4D .byte 0xA9 +ROM:EB4E .byte 0xF0 +ROM:EB4F .byte 0x22 ; " +ROM:EB50 .byte 0xBB +ROM:EB51 .byte 0xFE +ROM:EB52 .byte 0xFC +ROM:EB53 .byte 0xF3 +ROM:EB54 .byte 9 +ROM:EB55 .byte 0xDF +ROM:EB56 .byte 0xFC +ROM:EB57 .byte 0xA9 +ROM:EB58 .byte 0xF0 +ROM:EB59 .byte 0x22 ; " +ROM:EB5A .byte 0x30 ; 0 +ROM:EB5B .byte 0x31 ; 1 +ROM:EB5C .byte 0x32 ; 2 +ROM:EB5D .byte 0x33 ; 3 +ROM:EB5E .byte 0x34 ; 4 +ROM:EB5F .byte 0x35 ; 5 +ROM:EB60 .byte 0x36 ; 6 +ROM:EB61 .byte 0x37 ; 7 +ROM:EB62 .byte 0x38 ; 8 +ROM:EB63 .byte 0x39 ; 9 +ROM:EB64 .byte 0x41 ; A +ROM:EB65 .byte 0x42 ; B +ROM:EB66 .byte 0x43 ; C +ROM:EB67 .byte 0x44 ; D +ROM:EB68 .byte 0x45 ; E +ROM:EB69 .byte 0x46 ; F +ROM:EB6A .byte 0 +ROM:EB6B .byte 0x90 +ROM:EB6C .byte 0xE5 +ROM:EB6D .byte 0x86 +ROM:EB6E .byte 0xEB +ROM:EB6F .byte 0xF0 +ROM:EB70 .byte 0xA3 +ROM:EB71 .byte 0xEA +ROM:EB72 .byte 0xF0 +ROM:EB73 .byte 0xA3 +ROM:EB74 .byte 0xE9 +ROM:EB75 .byte 0xF0 +ROM:EB76 .byte 0xE4 +ROM:EB77 .byte 0x90 +ROM:EB78 .byte 0xE5 +ROM:EB79 .byte 0xB5 +ROM:EB7A .byte 0xF0 +ROM:EB7B .byte 0x7B ; { +ROM:EB7C .byte 1 +ROM:EB7D .byte 0x90 +ROM:EB7E .byte 0xE5 +ROM:EB7F .byte 0xB1 +ROM:EB80 .byte 4 +ROM:EB81 .byte 0xF0 +ROM:EB82 .byte 0xA3 +ROM:EB83 .byte 0x74 ; t +ROM:EB84 .byte 0xE5 +ROM:EB85 .byte 0xF0 +ROM:EB86 .byte 0xA3 +ROM:EB87 .byte 0x74 ; t +ROM:EB88 .byte 0x89 +ROM:EB89 .byte 0xF0 +ROM:EB8A .byte 0x90 +ROM:EB8B .byte 0xE5 +ROM:EB8C .byte 0x86 +ROM:EB8D .byte 0xE0 +ROM:EB8E .byte 0xFB +ROM:EB8F .byte 0xA3 +ROM:EB90 .byte 0xE0 +ROM:EB91 .byte 0xFA +ROM:EB92 .byte 0xA3 +ROM:EB93 .byte 0xE0 +ROM:EB94 .byte 0xF9 +ROM:EB95 .byte 0x31 ; 1 +ROM:EB96 .byte 0x24 ; $ +ROM:EB97 .byte 0x70 ; p +ROM:EB98 .byte 2 +ROM:EB99 .byte 0xA1 +ROM:EB9A .byte 5 +ROM:EB9B .byte 0x90 +ROM:EB9C .byte 0xE5 +ROM:EB9D .byte 0x86 +ROM:EB9E .byte 0xE0 +ROM:EB9F .byte 0xA3 +ROM:EBA0 .byte 0xE4 +ROM:EBA1 .byte 0x75 ; u +ROM:EBA2 .byte 0xF0 +ROM:EBA3 .byte 1 +ROM:EBA4 .byte 0x31 ; 1 +ROM:EBA5 .byte 0x4F ; O +ROM:EBA6 .byte 0xA9 +ROM:EBA7 .byte 0xF0 +ROM:EBA8 .byte 0xFA +ROM:EBA9 .byte 0x31 ; 1 +ROM:EBAA .byte 0x24 ; $ +ROM:EBAB .byte 0x90 +ROM:EBAC .byte 0xE5 +ROM:EBAD .byte 0xB4 +ROM:EBAE .byte 0xF0 +ROM:EBAF .byte 0xE0 +ROM:EBB0 .byte 0x64 ; d +ROM:EBB1 .byte 0x25 ; % +ROM:EBB2 .byte 0x60 ; ` +ROM:EBB3 .byte 2 +ROM:EBB4 .byte 0x81 +ROM:EBB5 .byte 0xD3 +ROM:EBB6 .byte 0x90 +ROM:EBB7 .byte 0xE5 +ROM:EBB8 .byte 0x86 +ROM:EBB9 .byte 0xE0 +ROM:EBBA .byte 0xFB +ROM:EBBB .byte 0xA3 +ROM:EBBC .byte 0xE4 +ROM:EBBD .byte 0x75 ; u +ROM:EBBE .byte 0xF0 +ROM:EBBF .byte 1 +ROM:EBC0 .byte 0x31 ; 1 +ROM:EBC1 .byte 0x4F ; O +ROM:EBC2 .byte 0xA9 +ROM:EBC3 .byte 0xF0 +ROM:EBC4 .byte 0xFA +ROM:EBC5 .byte 0x31 ; 1 +ROM:EBC6 .byte 0x24 ; $ +ROM:EBC7 .byte 0xFF +ROM:EBC8 .byte 0x24 ; $ +ROM:EBC9 .byte 0x9C +ROM:EBCA .byte 0x60 ; ` +ROM:EBCB .byte 0x63 ; c +ROM:EBCC .byte 0x24 ; $ +ROM:EBCD .byte 0xEC +ROM:EBCE .byte 0x60 ; ` +ROM:EBCF .byte 2 +ROM:EBD0 .byte 0x81 +ROM:EBD1 .byte 0xA8 +ROM:EBD2 .byte 0x90 +ROM:EBD3 .byte 0xE5 +ROM:EBD4 .byte 0xB1 +ROM:EBD5 .byte 0xE0 +ROM:EBD6 .byte 0xFB +ROM:EBD7 .byte 0xA3 +ROM:EBD8 .byte 0xE4 +ROM:EBD9 .byte 0x75 ; u +ROM:EBDA .byte 0xF0 +ROM:EBDB .byte 1 +ROM:EBDC .byte 0x31 ; 1 +ROM:EBDD .byte 0x4F ; O +ROM:EBDE .byte 0xA9 +ROM:EBDF .byte 0xF0 +ROM:EBE0 .byte 0xFA +ROM:EBE1 .byte 0x31 ; 1 +ROM:EBE2 .byte 0x24 ; $ +ROM:EBE3 .byte 0x90 +ROM:EBE4 .byte 0xE5 +ROM:EBE5 .byte 0xB4 +ROM:EBE6 .byte 0xF0 +ROM:EBE7 .byte 0xE0 +ROM:EBE8 .byte 0xFE +ROM:EBE9 .byte 0xC4 +ROM:EBEA .byte 0x54 ; T +ROM:EBEB .byte 0xF +ROM:EBEC .byte 0x7C ; | +ROM:EBED .byte 0 +ROM:EBEE .byte 0x54 ; T +ROM:EBEF .byte 0xF +ROM:EBF0 .byte 0x24 ; $ +ROM:EBF1 .byte 0x5A ; Z +ROM:EBF2 .byte 0xF5 +ROM:EBF3 .byte 0x82 +ROM:EBF4 .byte 0xEC +ROM:EBF5 .byte 0x34 ; 4 +ROM:EBF6 .byte 0xEB +ROM:EBF7 .byte 0xF5 +ROM:EBF8 .byte 0x83 +ROM:EBF9 .byte 0xE4 +ROM:EBFA .byte 0x93 +ROM:EBFB .byte 0xFE +ROM:EBFC .byte 0x90 +ROM:EBFD .byte 0xE5 +ROM:EBFE .byte 0xB5 +ROM:EBFF .byte 0xE0 +ROM:EC00 .byte 0xFD +ROM:EC01 .byte 4 +ROM:EC02 .byte 0xF0 +ROM:EC03 .byte 0x74 ; t +ROM:EC04 .byte 6 +ROM:EC05 .byte 0x2D ; - +ROM:EC06 .byte 0xF5 +ROM:EC07 .byte 0x82 +ROM:EC08 .byte 0xE4 +ROM:EC09 .byte 0x34 ; 4 +ROM:EC0A .byte 0xE5 +ROM:EC0B .byte 0xF5 +ROM:EC0C .byte 0x83 +ROM:EC0D .byte 0xEE +ROM:EC0E .byte 0xF0 +ROM:EC0F .byte 0x90 +ROM:EC10 .byte 0xE5 +ROM:EC11 .byte 0xB4 +ROM:EC12 .byte 0xE0 +ROM:EC13 .byte 0x54 ; T +ROM:EC14 .byte 0xF +ROM:EC15 .byte 0x90 +ROM:EC16 .byte 0xEB +ROM:EC17 .byte 0x5A ; Z +ROM:EC18 .byte 0x93 +ROM:EC19 .byte 0xFE +ROM:EC1A .byte 0x90 +ROM:EC1B .byte 0xE5 +ROM:EC1C .byte 0xB5 +ROM:EC1D .byte 0xE0 +ROM:EC1E .byte 0xFD +ROM:EC1F .byte 4 +ROM:EC20 .byte 0xF0 +ROM:EC21 .byte 0x74 ; t +ROM:EC22 .byte 6 +ROM:EC23 .byte 0x2D ; - +ROM:EC24 .byte 0xF5 +ROM:EC25 .byte 0x82 +ROM:EC26 .byte 0xE4 +ROM:EC27 .byte 0x34 ; 4 +ROM:EC28 .byte 0xE5 +ROM:EC29 .byte 0xF5 +ROM:EC2A .byte 0x83 +ROM:EC2B .byte 0xEE +ROM:EC2C .byte 0xF0 +ROM:EC2D .byte 0x81 +ROM:EC2E .byte 0xE9 +ROM:EC2F .byte 0x90 +ROM:EC30 .byte 0xE5 +ROM:EC31 .byte 0xB1 +ROM:EC32 .byte 0xE0 +ROM:EC33 .byte 0xFB +ROM:EC34 .byte 0xA3 +ROM:EC35 .byte 0xE4 +ROM:EC36 .byte 0x75 ; u +ROM:EC37 .byte 0xF0 +ROM:EC38 .byte 1 +ROM:EC39 .byte 0x31 ; 1 +ROM:EC3A .byte 0x4F ; O +ROM:EC3B .byte 0xA9 +ROM:EC3C .byte 0xF0 +ROM:EC3D .byte 0xFA +ROM:EC3E .byte 0x31 ; 1 +ROM:EC3F .byte 0x24 ; $ +ROM:EC40 .byte 0x90 +ROM:EC41 .byte 0xE5 +ROM:EC42 .byte 0xB4 +ROM:EC43 .byte 0xF0 +ROM:EC44 .byte 0xE0 +ROM:EC45 .byte 0x60 ; ` +ROM:EC46 .byte 0x4B ; K +ROM:EC47 .byte 0xE4 +ROM:EC48 .byte 0xFF +ROM:EC49 .byte 0x90 +ROM:EC4A .byte 0xE5 +ROM:EC4B .byte 0xB4 +ROM:EC4C .byte 0xE0 +ROM:EC4D .byte 0x75 ; u +ROM:EC4E .byte 0xF0 +ROM:EC4F .byte 0xA +ROM:EC50 .byte 0x84 +ROM:EC51 .byte 0x74 ; t +ROM:EC52 .byte 0xB6 +ROM:EC53 .byte 0x2F ; / +ROM:EC54 .byte 0xF5 +ROM:EC55 .byte 0x82 +ROM:EC56 .byte 0xE4 +ROM:EC57 .byte 0x34 ; 4 +ROM:EC58 .byte 0xE5 +ROM:EC59 .byte 0xF5 +ROM:EC5A .byte 0x83 +ROM:EC5B .byte 0xE5 +ROM:EC5C .byte 0xF0 +ROM:EC5D .byte 0xF0 +ROM:EC5E .byte 0x90 +ROM:EC5F .byte 0xE5 +ROM:EC60 .byte 0xB4 +ROM:EC61 .byte 0xE0 +ROM:EC62 .byte 0x75 ; u +ROM:EC63 .byte 0xF0 +ROM:EC64 .byte 0xA +ROM:EC65 .byte 0x84 +ROM:EC66 .byte 0xF0 +ROM:EC67 .byte 0xF +ROM:EC68 .byte 0xE0 +ROM:EC69 .byte 0x70 ; p +ROM:EC6A .byte 0xDE +ROM:EC6B .byte 0x1F +ROM:EC6C .byte 0x74 ; t +ROM:EC6D .byte 0xB6 +ROM:EC6E .byte 0x2F ; / +ROM:EC6F .byte 0xF5 +ROM:EC70 .byte 0x82 +ROM:EC71 .byte 0xE4 +ROM:EC72 .byte 0x34 ; 4 +ROM:EC73 .byte 0xE5 +ROM:EC74 .byte 0xF5 +ROM:EC75 .byte 0x83 +ROM:EC76 .byte 0xE0 +ROM:EC77 .byte 0x24 ; $ +ROM:EC78 .byte 0x30 ; 0 +ROM:EC79 .byte 0xFE +ROM:EC7A .byte 0x90 +ROM:EC7B .byte 0xE5 +ROM:EC7C .byte 0xB5 +ROM:EC7D .byte 0xE0 +ROM:EC7E .byte 0xFD +ROM:EC7F .byte 4 +ROM:EC80 .byte 0xF0 +ROM:EC81 .byte 0x74 ; t +ROM:EC82 .byte 6 +ROM:EC83 .byte 0x2D ; - +ROM:EC84 .byte 0xF5 +ROM:EC85 .byte 0x82 +ROM:EC86 .byte 0xE4 +ROM:EC87 .byte 0x34 ; 4 +ROM:EC88 .byte 0xE5 +ROM:EC89 .byte 0xF5 +ROM:EC8A .byte 0x83 +ROM:EC8B .byte 0xEE +ROM:EC8C .byte 0xF0 +ROM:EC8D .byte 0xEF +ROM:EC8E .byte 0x70 ; p +ROM:EC8F .byte 0xDB +ROM:EC90 .byte 0x80 +ROM:EC91 .byte 0x57 ; W +ROM:EC92 .byte 0x90 +ROM:EC93 .byte 0xE5 +ROM:EC94 .byte 0xB5 +ROM:EC95 .byte 0xE0 +ROM:EC96 .byte 0xFE +ROM:EC97 .byte 4 +ROM:EC98 .byte 0xF0 +ROM:EC99 .byte 0x74 ; t +ROM:EC9A .byte 6 +ROM:EC9B .byte 0x2E ; . +ROM:EC9C .byte 0xF5 +ROM:EC9D .byte 0x82 +ROM:EC9E .byte 0xE4 +ROM:EC9F .byte 0x34 ; 4 +ROM:ECA0 .byte 0xE5 +ROM:ECA1 .byte 0xF5 +ROM:ECA2 .byte 0x83 +ROM:ECA3 .byte 0x74 ; t +ROM:ECA4 .byte 0x30 ; 0 +ROM:ECA5 .byte 0xF0 +ROM:ECA6 .byte 0x80 +ROM:ECA7 .byte 0x41 ; A +ROM:ECA8 .byte 0x90 +ROM:ECA9 .byte 0xE5 +ROM:ECAA .byte 0xB5 +ROM:ECAB .byte 0xE0 +ROM:ECAC .byte 0xFE +ROM:ECAD .byte 4 +ROM:ECAE .byte 0xF0 +ROM:ECAF .byte 0x74 ; t +ROM:ECB0 .byte 6 +ROM:ECB1 .byte 0x2E ; . +ROM:ECB2 .byte 0xF5 +ROM:ECB3 .byte 0x82 +ROM:ECB4 .byte 0xE4 +ROM:ECB5 .byte 0x34 ; 4 +ROM:ECB6 .byte 0xE5 +ROM:ECB7 .byte 0xF5 +ROM:ECB8 .byte 0x83 +ROM:ECB9 .byte 0x74 ; t +ROM:ECBA .byte 0x25 ; % +ROM:ECBB .byte 0xF0 +ROM:ECBC .byte 0x90 +ROM:ECBD .byte 0xE5 +ROM:ECBE .byte 0xB5 +ROM:ECBF .byte 0xE0 +ROM:ECC0 .byte 0xFE +ROM:ECC1 .byte 4 +ROM:ECC2 .byte 0xF0 +ROM:ECC3 .byte 0x74 ; t +ROM:ECC4 .byte 6 +ROM:ECC5 .byte 0x2E ; . +ROM:ECC6 .byte 0xF5 +ROM:ECC7 .byte 0x82 +ROM:ECC8 .byte 0xE4 +ROM:ECC9 .byte 0x34 ; 4 +ROM:ECCA .byte 0xE5 +ROM:ECCB .byte 0xF5 +ROM:ECCC .byte 0x83 +ROM:ECCD .byte 0xEF +ROM:ECCE .byte 0xF0 +ROM:ECCF .byte 0x80 +ROM:ECD0 .byte 0x18 +ROM:ECD1 .byte 0x80 +ROM:ECD2 .byte 0x16 +ROM:ECD3 .byte 0x90 +ROM:ECD4 .byte 0xE5 +ROM:ECD5 .byte 0xB4 +ROM:ECD6 .byte 0xE0 +ROM:ECD7 .byte 0xFF +ROM:ECD8 .byte 0xA3 +ROM:ECD9 .byte 0xE0 +ROM:ECDA .byte 0xFE +ROM:ECDB .byte 4 +ROM:ECDC .byte 0xF0 +ROM:ECDD .byte 0x74 ; t +ROM:ECDE .byte 6 +ROM:ECDF .byte 0x2E ; . +ROM:ECE0 .byte 0xF5 +ROM:ECE1 .byte 0x82 +ROM:ECE2 .byte 0xE4 +ROM:ECE3 .byte 0x34 ; 4 +ROM:ECE4 .byte 0xE5 +ROM:ECE5 .byte 0xF5 +ROM:ECE6 .byte 0x83 +ROM:ECE7 .byte 0xEF +ROM:ECE8 .byte 0xF0 +ROM:ECE9 .byte 0x90 +ROM:ECEA .byte 0xE5 +ROM:ECEB .byte 0xB5 +ROM:ECEC .byte 0xE0 +ROM:ECED .byte 0xD3 +ROM:ECEE .byte 0x94 +ROM:ECEF .byte 0x70 ; p +ROM:ECF0 .byte 0x50 ; P +ROM:ECF1 .byte 2 +ROM:ECF2 .byte 0x61 ; a +ROM:ECF3 .byte 0x8A +ROM:ECF4 .byte 0x7B ; { +ROM:ECF5 .byte 1 +ROM:ECF6 .byte 0x7A ; z +ROM:ECF7 .byte 0xE5 +ROM:ECF8 .byte 0x79 ; y +ROM:ECF9 .byte 6 +ROM:ECFA .byte 0xE0 +ROM:ECFB .byte 0xFD +ROM:ECFC .byte 0xB1 +ROM:ECFD .byte 0x10 +ROM:ECFE .byte 0xE4 +ROM:ECFF .byte 0x90 +ROM:ED00 .byte 0xE5 +ROM:ED01 .byte 0xB5 +ROM:ED02 .byte 0xF0 +ROM:ED03 .byte 0x61 ; a +ROM:ED04 .byte 0x8A +ROM:ED05 .byte 0x7B ; { +ROM:ED06 .byte 1 +ROM:ED07 .byte 0x7A ; z +ROM:ED08 .byte 0xE5 +ROM:ED09 .byte 0x79 ; y +ROM:ED0A .byte 6 +ROM:ED0B .byte 0x90 +ROM:ED0C .byte 0xE5 +ROM:ED0D .byte 0xB5 +ROM:ED0E .byte 0xE0 +ROM:ED0F .byte 0xFD +ROM:ED10 .byte 0x90 +ROM:ED11 .byte 0xE6 +ROM:ED12 .byte 0x1C +ROM:ED13 .byte 0xEB +ROM:ED14 .byte 0xF0 +ROM:ED15 .byte 0xA3 +ROM:ED16 .byte 0xEA +ROM:ED17 .byte 0xF0 +ROM:ED18 .byte 0xA3 +ROM:ED19 .byte 0xE9 +ROM:ED1A .byte 0xF0 +ROM:ED1B .byte 0xAF +ROM:ED1C .byte 5 +ROM:ED1D .byte 0x1D +ROM:ED1E .byte 0xEF +ROM:ED1F .byte 0x60 ; ` +ROM:ED20 .byte 0x16 +ROM:ED21 .byte 0x90 +ROM:ED22 .byte 0xE6 +ROM:ED23 .byte 0x1C +ROM:ED24 .byte 0xE0 +ROM:ED25 .byte 0xFB +ROM:ED26 .byte 0xA3 +ROM:ED27 .byte 0xE4 +ROM:ED28 .byte 0x75 ; u +ROM:ED29 .byte 0xF0 +ROM:ED2A .byte 1 +ROM:ED2B .byte 0x31 ; 1 +ROM:ED2C .byte 0x4F ; O +ROM:ED2D .byte 0xA9 +ROM:ED2E .byte 0xF0 +ROM:ED2F .byte 0xFA +ROM:ED30 .byte 0x31 ; 1 +ROM:ED31 .byte 0x24 ; $ +ROM:ED32 .byte 0xFF +ROM:ED33 .byte 0xB1 +ROM:ED34 .byte 0x38 ; 8 +ROM:ED35 .byte 0x80 +ROM:ED36 .byte 0xE4 +ROM:ED37 .byte 0x22 ; " +ROM:ED38 .byte 0xD3 +ROM:ED39 .byte 0x10 +ROM:ED3A .byte 0xAF +ROM:ED3B .byte 1 +ROM:ED3C .byte 0xC3 +ROM:ED3D .byte 0xE4 +ROM:ED3E .byte 0x33 ; 3 +ROM:ED3F .byte 0xFE +ROM:ED40 .byte 0x90 +ROM:ED41 .byte 0xE4 +ROM:ED42 .byte 5 +ROM:ED43 .byte 0xE0 +ROM:ED44 .byte 0xC3 +ROM:ED45 .byte 0x94 +ROM:ED46 .byte 0x80 +ROM:ED47 .byte 0x50 ; P +ROM:ED48 .byte 0x2B ; + +ROM:ED49 .byte 0xE0 +ROM:ED4A .byte 4 +ROM:ED4B .byte 0xF0 +ROM:ED4C .byte 0x90 +ROM:ED4D .byte 0xE4 +ROM:ED4E .byte 3 +ROM:ED4F .byte 0xE0 +ROM:ED50 .byte 0x24 ; $ +ROM:ED51 .byte 0x86 +ROM:ED52 .byte 0xF5 +ROM:ED53 .byte 0x82 +ROM:ED54 .byte 0xE4 +ROM:ED55 .byte 0x34 ; 4 +ROM:ED56 .byte 0xE4 +ROM:ED57 .byte 0xF5 +ROM:ED58 .byte 0x83 +ROM:ED59 .byte 0xEF +ROM:ED5A .byte 0xF0 +ROM:ED5B .byte 0x90 +ROM:ED5C .byte 0xE4 +ROM:ED5D .byte 3 +ROM:ED5E .byte 0xE0 +ROM:ED5F .byte 4 +ROM:ED60 .byte 0xF0 +ROM:ED61 .byte 0xE0 +ROM:ED62 .byte 0x54 ; T +ROM:ED63 .byte 0x7F ;  +ROM:ED64 .byte 0xF0 +ROM:ED65 .byte 0x30 ; 0 +ROM:ED66 .byte 0 +ROM:ED67 .byte 4 +ROM:ED68 .byte 0xC2 +ROM:ED69 .byte 0 +ROM:ED6A .byte 0xD2 +ROM:ED6B .byte 0x99 +ROM:ED6C .byte 0xEE +ROM:ED6D .byte 0x24 ; $ +ROM:ED6E .byte 0xFF +ROM:ED6F .byte 0x92 +ROM:ED70 .byte 0xAF +ROM:ED71 .byte 0x7F ;  +ROM:ED72 .byte 0 +ROM:ED73 .byte 0x22 ; " +ROM:ED74 .byte 0xAF +ROM:ED75 .byte 6 +ROM:ED76 .byte 0xEE +ROM:ED77 .byte 0x24 ; $ +ROM:ED78 .byte 0xFF +ROM:ED79 .byte 0x92 +ROM:ED7A .byte 0xAF +ROM:ED7B .byte 0x7F ;  +ROM:ED7C .byte 1 +ROM:ED7D .byte 0x22 ; " +ROM:ED7E .byte 0xE4 +ROM:ED7F .byte 0xF5 +ROM:ED80 .byte 0xAD +ROM:ED81 .byte 0xF5 +ROM:ED82 .byte 0xAE +ROM:ED83 .byte 0xF5 +ROM:ED84 .byte 0xAF +ROM:ED85 .byte 0xF5 +ROM:ED86 .byte 0xB9 +ROM:ED87 .byte 0xF5 +ROM:ED88 .byte 0x80 +ROM:ED89 .byte 0xF5 +ROM:ED8A .byte 0xBC +ROM:ED8B .byte 0xF5 +ROM:ED8C .byte 0xBA +ROM:ED8D .byte 0xF5 +ROM:ED8E .byte 0x90 +ROM:ED8F .byte 0xF5 +ROM:ED90 .byte 0xBD +ROM:ED91 .byte 0x75 ; u +ROM:ED92 .byte 0xBB +ROM:ED93 .byte 1 +ROM:ED94 .byte 0x53 ; S +ROM:ED95 .byte 0xA0 +ROM:ED96 .byte 0xC1 +ROM:ED97 .byte 0xF5 +ROM:ED98 .byte 0xBE +ROM:ED99 .byte 0x22 ; " +ROM:ED9A .byte 0xE4 +ROM:ED9B .byte 0xF5 +ROM:ED9C .byte 0xAD +ROM:ED9D .byte 0xF5 +ROM:ED9E .byte 0xAE +ROM:ED9F .byte 0xF5 +ROM:EDA0 .byte 0xAF +ROM:EDA1 .byte 0xF5 +ROM:EDA2 .byte 0xB9 +ROM:EDA3 .byte 0xF5 +ROM:EDA4 .byte 0x80 +ROM:EDA5 .byte 0xF5 +ROM:EDA6 .byte 0xBC +ROM:EDA7 .byte 0x75 ; u +ROM:EDA8 .byte 0xBA +ROM:EDA9 .byte 0xD6 +ROM:EDAA .byte 0xF5 +ROM:EDAB .byte 0x90 +ROM:EDAC .byte 0x75 ; u +ROM:EDAD .byte 0xBD +ROM:EDAE .byte 0xD6 +ROM:EDAF .byte 0x75 ; u +ROM:EDB0 .byte 0xBB +ROM:EDB1 .byte 7 +ROM:EDB2 .byte 0xF5 +ROM:EDB3 .byte 0xA0 +ROM:EDB4 .byte 0x75 ; u +ROM:EDB5 .byte 0xBE +ROM:EDB6 .byte 7 +ROM:EDB7 .byte 0x22 ; " +ROM:EDB8 .byte 0x11 +ROM:EDB9 .byte 0x20 +ROM:EDBA .byte 0x90 +ROM:EDBB .byte 0xE6 +ROM:EDBC .byte 0x16 +ROM:EDBD .byte 0xEF +ROM:EDBE .byte 0xF0 +ROM:EDBF .byte 0xB1 +ROM:EDC0 .byte 0x9A +ROM:EDC1 .byte 0x12 +ROM:EDC2 .byte 0xF0 +ROM:EDC3 .byte 0xE7 +ROM:EDC4 .byte 0xD2 +ROM:EDC5 .byte 0xAF +ROM:EDC6 .byte 0xF1 +ROM:EDC7 .byte 0x9F +ROM:EDC8 .byte 0xC2 +ROM:EDC9 .byte 0x91 +ROM:EDCA .byte 0x7F ;  +ROM:EDCB .byte 0xB9 +ROM:EDCC .byte 0xB1 +ROM:EDCD .byte 0xD9 +ROM:EDCE .byte 0xD2 +ROM:EDCF .byte 0x91 +ROM:EDD0 .byte 0x43 ; C +ROM:EDD1 .byte 0xBA +ROM:EDD2 .byte 2 +ROM:EDD3 .byte 0x43 ; C +ROM:EDD4 .byte 0xBD +ROM:EDD5 .byte 2 +ROM:EDD6 .byte 0x22 ; " +ROM:EDD7 .byte 0x31 ; 1 +ROM:EDD8 .byte 0x65 ; e +ROM:EDD9 .byte 0xAB +ROM:EDDA .byte 0xFF +ROM:EDDB .byte 0x75 ; u +ROM:EDDC .byte 0xFF +ROM:EDDD .byte 4 +ROM:EDDE .byte 0x75 ; u +ROM:EDDF .byte 0xED +ROM:EDE0 .byte 0x81 +ROM:EDE1 .byte 0x8F +ROM:EDE2 .byte 0xEE +ROM:EDE3 .byte 0x75 ; u +ROM:EDE4 .byte 0xEC +ROM:EDE5 .byte 0xA0 +ROM:EDE6 .byte 0x7F ;  +ROM:EDE7 .byte 2 +ROM:EDE8 .byte 0x7E ; ~ +ROM:EDE9 .byte 0 +ROM:EDEA .byte 0x12 +ROM:EDEB .byte 0xF0 +ROM:EDEC .byte 0x35 ; 5 +ROM:EDED .byte 0x43 ; C +ROM:EDEE .byte 0xEB +ROM:EDEF .byte 8 +ROM:EDF0 .byte 0xAF +ROM:EDF1 .byte 0xEF +ROM:EDF2 .byte 0x75 ; u +ROM:EDF3 .byte 0xED +ROM:EDF4 .byte 0x80 +ROM:EDF5 .byte 0xAE +ROM:EDF6 .byte 3 +ROM:EDF7 .byte 0x8E +ROM:EDF8 .byte 0xFF +ROM:EDF9 .byte 0x22 ; " +ROM:EDFA .byte 0xC2 +ROM:EDFB .byte 0x91 +ROM:EDFC .byte 0x7F ;  +ROM:EDFD .byte 0xAB +ROM:EDFE .byte 0xB1 +ROM:EDFF .byte 0xD9 +ROM:EE00 .byte 0xE4 +ROM:EE01 .byte 0xFF +ROM:EE02 .byte 0xB1 +ROM:EE03 .byte 0xD9 +ROM:EE04 .byte 0xE4 +ROM:EE05 .byte 0xFF +ROM:EE06 .byte 0xB1 +ROM:EE07 .byte 0xD9 +ROM:EE08 .byte 0xE4 +ROM:EE09 .byte 0xFF +ROM:EE0A .byte 0xB1 +ROM:EE0B .byte 0xD9 +ROM:EE0C .byte 0xE4 +ROM:EE0D .byte 0xFF +ROM:EE0E .byte 0xB1 +ROM:EE0F .byte 0xD9 +ROM:EE10 .byte 0xD2 +ROM:EE11 .byte 0x91 +ROM:EE12 .byte 0x22 ; " +ROM:EE13 .byte 0x90 +ROM:EE14 .byte 0xE6 +ROM:EE15 .byte 2 +ROM:EE16 .byte 0x31 ; 1 +ROM:EE17 .byte 0x78 ; x +ROM:EE18 .byte 0x90 +ROM:EE19 .byte 0xE6 +ROM:EE1A .byte 6 +ROM:EE1B .byte 0xEB +ROM:EE1C .byte 0xF0 +ROM:EE1D .byte 0xA3 +ROM:EE1E .byte 0xEA +ROM:EE1F .byte 0xF0 +ROM:EE20 .byte 0xA3 +ROM:EE21 .byte 0xE9 +ROM:EE22 .byte 0xF0 +ROM:EE23 .byte 0xC2 +ROM:EE24 .byte 0x91 +ROM:EE25 .byte 0x7F ;  +ROM:EE26 .byte 6 +ROM:EE27 .byte 0xB1 +ROM:EE28 .byte 0xD9 +ROM:EE29 .byte 0xD2 +ROM:EE2A .byte 0x91 +ROM:EE2B .byte 0xC2 +ROM:EE2C .byte 0x91 +ROM:EE2D .byte 0x7F ;  +ROM:EE2E .byte 2 +ROM:EE2F .byte 0xB1 +ROM:EE30 .byte 0xD9 +ROM:EE31 .byte 0x90 +ROM:EE32 .byte 0xE6 +ROM:EE33 .byte 2 +ROM:EE34 .byte 0xE0 +ROM:EE35 .byte 0xFC +ROM:EE36 .byte 0xA3 +ROM:EE37 .byte 0xE0 +ROM:EE38 .byte 0xFD +ROM:EE39 .byte 0xA3 +ROM:EE3A .byte 0xE0 +ROM:EE3B .byte 0xFE +ROM:EE3C .byte 0xA3 +ROM:EE3D .byte 0xE0 +ROM:EE3E .byte 0xFF +ROM:EE3F .byte 0x78 ; x +ROM:EE40 .byte 0x10 +ROM:EE41 .byte 0xB1 +ROM:EE42 .byte 0xD7 +ROM:EE43 .byte 0x90 +ROM:EE44 .byte 0xE6 +ROM:EE45 .byte 2 +ROM:EE46 .byte 0xE0 +ROM:EE47 .byte 0xFC +ROM:EE48 .byte 0xA3 +ROM:EE49 .byte 0xE0 +ROM:EE4A .byte 0xFD +ROM:EE4B .byte 0xA3 +ROM:EE4C .byte 0xE0 +ROM:EE4D .byte 0xFE +ROM:EE4E .byte 0xA3 +ROM:EE4F .byte 0xE0 +ROM:EE50 .byte 0xFF +ROM:EE51 .byte 0x78 ; x +ROM:EE52 .byte 8 +ROM:EE53 .byte 0x31 ; 1 +ROM:EE54 .byte 0x65 ; e +ROM:EE55 .byte 0xB1 +ROM:EE56 .byte 0xD9 +ROM:EE57 .byte 0x90 +ROM:EE58 .byte 0xE6 +ROM:EE59 .byte 2 +ROM:EE5A .byte 0xE0 +ROM:EE5B .byte 0xA3 +ROM:EE5C .byte 0xE0 +ROM:EE5D .byte 0xA3 +ROM:EE5E .byte 0xE0 +ROM:EE5F .byte 0xA3 +ROM:EE60 .byte 0xE0 +ROM:EE61 .byte 0xFF +ROM:EE62 .byte 0xB1 +ROM:EE63 .byte 0xD9 +ROM:EE64 .byte 0x90 +ROM:EE65 .byte 0xE6 +ROM:EE66 .byte 9 +ROM:EE67 .byte 0x74 ; t +ROM:EE68 .byte 0xFF +ROM:EE69 .byte 0xF5 +ROM:EE6A .byte 0xF0 +ROM:EE6B .byte 0x31 ; 1 +ROM:EE6C .byte 0x4F ; O +ROM:EE6D .byte 0x45 ; E +ROM:EE6E .byte 0xF0 +ROM:EE6F .byte 0x60 ; ` +ROM:EE70 .byte 0x16 +ROM:EE71 .byte 0x90 +ROM:EE72 .byte 0xE6 +ROM:EE73 .byte 6 +ROM:EE74 .byte 0xE0 +ROM:EE75 .byte 0xFB +ROM:EE76 .byte 0xA3 +ROM:EE77 .byte 0xE4 +ROM:EE78 .byte 0x75 ; u +ROM:EE79 .byte 0xF0 +ROM:EE7A .byte 1 +ROM:EE7B .byte 0x31 ; 1 +ROM:EE7C .byte 0x4F ; O +ROM:EE7D .byte 0xA9 +ROM:EE7E .byte 0xF0 +ROM:EE7F .byte 0xFA +ROM:EE80 .byte 0x31 ; 1 +ROM:EE81 .byte 0x24 ; $ +ROM:EE82 .byte 0xFF +ROM:EE83 .byte 0xB1 +ROM:EE84 .byte 0xD9 +ROM:EE85 .byte 0x80 +ROM:EE86 .byte 0xDD +ROM:EE87 .byte 0xD2 +ROM:EE88 .byte 0x91 +ROM:EE89 .byte 0x22 ; " +ROM:EE8A .byte 0x90 +ROM:EE8B .byte 0xE6 +ROM:EE8C .byte 0x12 +ROM:EE8D .byte 0x31 ; 1 +ROM:EE8E .byte 0x78 ; x +ROM:EE8F .byte 0xC2 +ROM:EE90 .byte 0x91 +ROM:EE91 .byte 0x7F ;  +ROM:EE92 .byte 6 +ROM:EE93 .byte 0xB1 +ROM:EE94 .byte 0xD9 +ROM:EE95 .byte 0xD2 +ROM:EE96 .byte 0x91 +ROM:EE97 .byte 0xC2 +ROM:EE98 .byte 0x91 +ROM:EE99 .byte 0x7F ;  +ROM:EE9A .byte 0x20 +ROM:EE9B .byte 0xB1 +ROM:EE9C .byte 0xD9 +ROM:EE9D .byte 0x90 +ROM:EE9E .byte 0xE6 +ROM:EE9F .byte 0x12 +ROM:EEA0 .byte 0xE0 +ROM:EEA1 .byte 0xFC +ROM:EEA2 .byte 0xA3 +ROM:EEA3 .byte 0xE0 +ROM:EEA4 .byte 0xFD +ROM:EEA5 .byte 0xA3 +ROM:EEA6 .byte 0xE0 +ROM:EEA7 .byte 0xFE +ROM:EEA8 .byte 0xA3 +ROM:EEA9 .byte 0xE0 +ROM:EEAA .byte 0xFF +ROM:EEAB .byte 0x78 ; x +ROM:EEAC .byte 0x10 +ROM:EEAD .byte 0x31 ; 1 +ROM:EEAE .byte 0x65 ; e +ROM:EEAF .byte 0xB1 +ROM:EEB0 .byte 0xD9 +ROM:EEB1 .byte 0x90 +ROM:EEB2 .byte 0xE6 +ROM:EEB3 .byte 0x12 +ROM:EEB4 .byte 0xE0 +ROM:EEB5 .byte 0xFC +ROM:EEB6 .byte 0xA3 +ROM:EEB7 .byte 0xE0 +ROM:EEB8 .byte 0xFD +ROM:EEB9 .byte 0xA3 +ROM:EEBA .byte 0xE0 +ROM:EEBB .byte 0xFE +ROM:EEBC .byte 0xA3 +ROM:EEBD .byte 0xE0 +ROM:EEBE .byte 0xFF +ROM:EEBF .byte 0x78 ; x +ROM:EEC0 .byte 8 +ROM:EEC1 .byte 0xB1 +ROM:EEC2 .byte 0xD7 +ROM:EEC3 .byte 0x90 +ROM:EEC4 .byte 0xE6 +ROM:EEC5 .byte 0x12 +ROM:EEC6 .byte 0xE0 +ROM:EEC7 .byte 0xA3 +ROM:EEC8 .byte 0xE0 +ROM:EEC9 .byte 0xA3 +ROM:EECA .byte 0xE0 +ROM:EECB .byte 0xA3 +ROM:EECC .byte 0xE0 +ROM:EECD .byte 0xFF +ROM:EECE .byte 0xB1 +ROM:EECF .byte 0xD9 +ROM:EED0 .byte 0xD2 +ROM:EED1 .byte 0x91 +ROM:EED2 .byte 0xF1 +ROM:EED3 .byte 0x77 ; w +ROM:EED4 .byte 0xEF +ROM:EED5 .byte 0x30 ; 0 +ROM:EED6 .byte 0xE0 +ROM:EED7 .byte 4 +ROM:EED8 .byte 0xF1 +ROM:EED9 .byte 0xCB +ROM:EEDA .byte 0x80 +ROM:EEDB .byte 0xF6 +ROM:EEDC .byte 0x22 ; " +ROM:EEDD .byte 0x90 +ROM:EEDE .byte 0xE5 +ROM:EEDF .byte 0xD1 +ROM:EEE0 .byte 0x31 ; 1 +ROM:EEE1 .byte 0x78 ; x +ROM:EEE2 .byte 0x90 +ROM:EEE3 .byte 0xE5 +ROM:EEE4 .byte 0xD5 +ROM:EEE5 .byte 0xEB +ROM:EEE6 .byte 0xF0 +ROM:EEE7 .byte 0xA3 +ROM:EEE8 .byte 0xEA +ROM:EEE9 .byte 0xF0 +ROM:EEEA .byte 0xA3 +ROM:EEEB .byte 0xE9 +ROM:EEEC .byte 0xF0 +ROM:EEED .byte 0xC2 +ROM:EEEE .byte 0x91 +ROM:EEEF .byte 0x7F ;  +ROM:EEF0 .byte 3 +ROM:EEF1 .byte 0xB1 +ROM:EEF2 .byte 0xD9 +ROM:EEF3 .byte 0x90 +ROM:EEF4 .byte 0xE5 +ROM:EEF5 .byte 0xD1 +ROM:EEF6 .byte 0xE0 +ROM:EEF7 .byte 0xFC +ROM:EEF8 .byte 0xA3 +ROM:EEF9 .byte 0xE0 +ROM:EEFA .byte 0xFD +ROM:EEFB .byte 0xA3 +ROM:EEFC .byte 0xE0 +ROM:EEFD .byte 0xFE +ROM:EEFE .byte 0xA3 +ROM:EEFF .byte 0xE0 +ROM:EF00 .byte 0xFF +ROM:EF01 .byte 0x78 ; x +ROM:EF02 .byte 0x10 +ROM:EF03 .byte 0x31 ; 1 +ROM:EF04 .byte 0x65 ; e +ROM:EF05 .byte 0xB1 +ROM:EF06 .byte 0xD9 +ROM:EF07 .byte 0x90 +ROM:EF08 .byte 0xE5 +ROM:EF09 .byte 0xD1 +ROM:EF0A .byte 0xE0 +ROM:EF0B .byte 0xFC +ROM:EF0C .byte 0xA3 +ROM:EF0D .byte 0xE0 +ROM:EF0E .byte 0xFD +ROM:EF0F .byte 0xA3 +ROM:EF10 .byte 0xE0 +ROM:EF11 .byte 0xFE +ROM:EF12 .byte 0xA3 +ROM:EF13 .byte 0xE0 +ROM:EF14 .byte 0xFF +ROM:EF15 .byte 0x78 ; x +ROM:EF16 .byte 8 +ROM:EF17 .byte 0x31 ; 1 +ROM:EF18 .byte 0x65 ; e +ROM:EF19 .byte 0xB1 +ROM:EF1A .byte 0xD9 +ROM:EF1B .byte 0x90 +ROM:EF1C .byte 0xE5 +ROM:EF1D .byte 0xD1 +ROM:EF1E .byte 0xE0 +ROM:EF1F .byte 0xA3 +ROM:EF20 .byte 0xE0 +ROM:EF21 .byte 0xA3 +ROM:EF22 .byte 0xE0 +ROM:EF23 .byte 0xA3 +ROM:EF24 .byte 0xE0 +ROM:EF25 .byte 0xFF +ROM:EF26 .byte 0xB1 +ROM:EF27 .byte 0xD9 +ROM:EF28 .byte 0xE4 +ROM:EF29 .byte 0x90 +ROM:EF2A .byte 0xE5 +ROM:EF2B .byte 0xDA +ROM:EF2C .byte 0xF0 +ROM:EF2D .byte 0xA3 +ROM:EF2E .byte 0xF0 +ROM:EF2F .byte 0x90 +ROM:EF30 .byte 0xE5 +ROM:EF31 .byte 0xD8 +ROM:EF32 .byte 0xE0 +ROM:EF33 .byte 0xFE +ROM:EF34 .byte 0xA3 +ROM:EF35 .byte 0xE0 +ROM:EF36 .byte 0xFF +ROM:EF37 .byte 0xC3 +ROM:EF38 .byte 0x90 +ROM:EF39 .byte 0xE5 +ROM:EF3A .byte 0xDB +ROM:EF3B .byte 0xE0 +ROM:EF3C .byte 0x9F +ROM:EF3D .byte 0x90 +ROM:EF3E .byte 0xE5 +ROM:EF3F .byte 0xDA +ROM:EF40 .byte 0xE0 +ROM:EF41 .byte 0x9E +ROM:EF42 .byte 0x50 ; P +ROM:EF43 .byte 0x30 ; 0 +ROM:EF44 .byte 0xE4 +ROM:EF45 .byte 0xFF +ROM:EF46 .byte 0xB1 +ROM:EF47 .byte 0xD9 +ROM:EF48 .byte 0x90 +ROM:EF49 .byte 0xE5 +ROM:EF4A .byte 0xD5 +ROM:EF4B .byte 0xE0 +ROM:EF4C .byte 0xFB +ROM:EF4D .byte 0xA3 +ROM:EF4E .byte 0xE0 +ROM:EF4F .byte 0xFA +ROM:EF50 .byte 0xA3 +ROM:EF51 .byte 0xE0 +ROM:EF52 .byte 0xF9 +ROM:EF53 .byte 0x90 +ROM:EF54 .byte 0xE5 +ROM:EF55 .byte 0xDA +ROM:EF56 .byte 0xE0 +ROM:EF57 .byte 0xFC +ROM:EF58 .byte 0xA3 +ROM:EF59 .byte 0xE0 +ROM:EF5A .byte 0xFD +ROM:EF5B .byte 0xE9 +ROM:EF5C .byte 0x2D ; - +ROM:EF5D .byte 0xF9 +ROM:EF5E .byte 0xEA +ROM:EF5F .byte 0x3C ; < +ROM:EF60 .byte 0xFA +ROM:EF61 .byte 0xEF +ROM:EF62 .byte 0x31 ; 1 +ROM:EF63 .byte 0x3D ; = +ROM:EF64 .byte 0x90 +ROM:EF65 .byte 0xE5 +ROM:EF66 .byte 0xDB +ROM:EF67 .byte 0xE0 +ROM:EF68 .byte 4 +ROM:EF69 .byte 0xF0 +ROM:EF6A .byte 0x70 ; p +ROM:EF6B .byte 6 +ROM:EF6C .byte 0x90 +ROM:EF6D .byte 0xE5 +ROM:EF6E .byte 0xDA +ROM:EF6F .byte 0xE0 +ROM:EF70 .byte 4 +ROM:EF71 .byte 0xF0 +ROM:EF72 .byte 0x80 +ROM:EF73 .byte 0xBB +ROM:EF74 .byte 0xD2 +ROM:EF75 .byte 0x91 +ROM:EF76 .byte 0x22 ; " +ROM:EF77 .byte 0xC2 +ROM:EF78 .byte 0x91 +ROM:EF79 .byte 0x7F ;  +ROM:EF7A .byte 5 +ROM:EF7B .byte 0xB1 +ROM:EF7C .byte 0xD9 +ROM:EF7D .byte 0xE4 +ROM:EF7E .byte 0xFF +ROM:EF7F .byte 0xB1 +ROM:EF80 .byte 0xD9 +ROM:EF81 .byte 0xD2 +ROM:EF82 .byte 0x91 +ROM:EF83 .byte 0x22 ; " +ROM:EF84 .byte 0xC2 +ROM:EF85 .byte 0x91 +ROM:EF86 .byte 0x7F ;  +ROM:EF87 .byte 6 +ROM:EF88 .byte 0xB1 +ROM:EF89 .byte 0xD9 +ROM:EF8A .byte 0xD2 +ROM:EF8B .byte 0x91 +ROM:EF8C .byte 0xC2 +ROM:EF8D .byte 0x91 +ROM:EF8E .byte 0x7F ;  +ROM:EF8F .byte 0x60 ; ` +ROM:EF90 .byte 0xB1 +ROM:EF91 .byte 0xD9 +ROM:EF92 .byte 0xD2 +ROM:EF93 .byte 0x91 +ROM:EF94 .byte 0xF1 +ROM:EF95 .byte 0x77 ; w +ROM:EF96 .byte 0xEF +ROM:EF97 .byte 0x30 ; 0 +ROM:EF98 .byte 0xE0 +ROM:EF99 .byte 4 +ROM:EF9A .byte 0xF1 +ROM:EF9B .byte 0xCB +ROM:EF9C .byte 0x80 +ROM:EF9D .byte 0xF6 +ROM:EF9E .byte 0x22 ; " +ROM:EF9F .byte 0x43 ; C +ROM:EFA0 .byte 0xAD +ROM:EFA1 .byte 1 +ROM:EFA2 .byte 0x43 ; C +ROM:EFA3 .byte 0xAD +ROM:EFA4 .byte 2 +ROM:EFA5 .byte 0x43 ; C +ROM:EFA6 .byte 0xAD +ROM:EFA7 .byte 4 +ROM:EFA8 .byte 0x43 ; C +ROM:EFA9 .byte 0xBC +ROM:EFAA .byte 7 +ROM:EFAB .byte 0x43 ; C +ROM:EFAC .byte 0xB7 +ROM:EFAD .byte 8 +ROM:EFAE .byte 0x53 ; S +ROM:EFAF .byte 0xBA +ROM:EFB0 .byte 0xFD +ROM:EFB1 .byte 0xD2 +ROM:EFB2 .byte 0x91 +ROM:EFB3 .byte 0xB1 +ROM:EFB4 .byte 0xFA +ROM:EFB5 .byte 0xC2 +ROM:EFB6 .byte 0x91 +ROM:EFB7 .byte 0x7F ;  +ROM:EFB8 .byte 6 +ROM:EFB9 .byte 0xB1 +ROM:EFBA .byte 0xD9 +ROM:EFBB .byte 0xD2 +ROM:EFBC .byte 0x91 +ROM:EFBD .byte 0x22 ; " +ROM:EFBE .byte 0xC2 +ROM:EFBF .byte 0x91 +ROM:EFC0 .byte 0x7F ;  +ROM:EFC1 .byte 0x35 ; 5 +ROM:EFC2 .byte 0xB1 +ROM:EFC3 .byte 0xD9 +ROM:EFC4 .byte 0xE4 +ROM:EFC5 .byte 0xFF +ROM:EFC6 .byte 0xB1 +ROM:EFC7 .byte 0xD9 +ROM:EFC8 .byte 0xD2 +ROM:EFC9 .byte 0x91 +ROM:EFCA .byte 0x22 ; " +ROM:EFCB .byte 0xAF +ROM:EFCC .byte 0xFF +ROM:EFCD .byte 0x75 ; u +ROM:EFCE .byte 0xFF +ROM:EFCF .byte 4 +ROM:EFD0 .byte 0x43 ; C +ROM:EFD1 .byte 0xBF +ROM:EFD2 .byte 0x80 +ROM:EFD3 .byte 0xE4 +ROM:EFD4 .byte 0xF5 +ROM:EFD5 .byte 0xBA +ROM:EFD6 .byte 0xF5 +ROM:EFD7 .byte 0xBB +ROM:EFD8 .byte 0xF5 +ROM:EFD9 .byte 0xBC +ROM:EFDA .byte 0xF5 +ROM:EFDB .byte 0xBD +ROM:EFDC .byte 0x75 ; u +ROM:EFDD .byte 0xBE +ROM:EFDE .byte 0xFF +ROM:EFDF .byte 0x75 ; u +ROM:EFE0 .byte 0xBA +ROM:EFE1 .byte 1 +ROM:EFE2 .byte 0x8F +ROM:EFE3 .byte 0xFF +ROM:EFE4 .byte 0x22 ; " +ROM:EFE5 .byte 0xAF +ROM:EFE6 .byte 0xFF +ROM:EFE7 .byte 0x75 ; u +ROM:EFE8 .byte 0xFF +ROM:EFE9 .byte 4 +ROM:EFEA .byte 0xE4 +ROM:EFEB .byte 0xF5 +ROM:EFEC .byte 0xBA +ROM:EFED .byte 0x53 ; S +ROM:EFEE .byte 0xBF +ROM:EFEF .byte 0x7F ;  +ROM:EFF0 .byte 0x8F +ROM:EFF1 .byte 0xFF +ROM:EFF2 .byte 0x22 ; " +ROM:EFF3 .byte 0xAF +ROM:EFF4 .byte 1 +ROM:EFF5 .byte 0xAE +ROM:EFF6 .byte 2 +ROM:EFF7 .byte 0xAD +ROM:EFF8 .byte 3 +ROM:EFF9 .byte 0x7C ; | +ROM:EFFA .byte 0 +ROM:EFFB .byte 0x90 +ROM:EFFC .byte 0xE5 +ROM:EFFD .byte 0xCD +ROM:EFFE .byte 0x12 +ROM:EFFF .byte 0xE9 +ROM:F000 .byte 0x78 ; x +ROM:F001 .byte 0x12 +ROM:F002 .byte 0xEF +ROM:F003 .byte 0x9F +ROM:F004 .byte 0x90 +ROM:F005 .byte 0xE5 +ROM:F006 .byte 0xCD +ROM:F007 .byte 0xE0 +ROM:F008 .byte 0xFC +ROM:F009 .byte 0xA3 +ROM:F00A .byte 0xE0 +ROM:F00B .byte 0xFD +ROM:F00C .byte 0xA3 +ROM:F00D .byte 0xE0 +ROM:F00E .byte 0xFE +ROM:F00F .byte 0xA3 +ROM:F010 .byte 0xE0 +ROM:F011 .byte 0xFF +ROM:F012 .byte 0xC0 +ROM:F013 .byte 7 +ROM:F014 .byte 0x90 +ROM:F015 .byte 0xE5 +ROM:F016 .byte 0xC8 +ROM:F017 .byte 0xE0 +ROM:F018 .byte 0xFB +ROM:F019 .byte 0xA3 +ROM:F01A .byte 0xE0 +ROM:F01B .byte 0xFA +ROM:F01C .byte 0xA3 +ROM:F01D .byte 0xE0 +ROM:F01E .byte 0xF9 +ROM:F01F .byte 0xA3 +ROM:F020 .byte 0xE0 +ROM:F021 .byte 0xFF +ROM:F022 .byte 0xA3 +ROM:F023 .byte 0xE0 +ROM:F024 .byte 0x90 +ROM:F025 .byte 0xE5 +ROM:F026 .byte 0xD8 +ROM:F027 .byte 0xCF +ROM:F028 .byte 0xF0 +ROM:F029 .byte 0xA3 +ROM:F02A .byte 0xEF +ROM:F02B .byte 0xF0 +ROM:F02C .byte 0xD0 +ROM:F02D .byte 7 +ROM:F02E .byte 0x12 +ROM:F02F .byte 0xEE +ROM:F030 .byte 0xDD +ROM:F031 .byte 0x7F ;  +ROM:F032 .byte 0x88 +ROM:F033 .byte 0x7E ; ~ +ROM:F034 .byte 0x13 +ROM:F035 .byte 0xAD +ROM:F036 .byte 7 +ROM:F037 .byte 0xAC +ROM:F038 .byte 6 +ROM:F039 .byte 0xD3 +ROM:F03A .byte 0xED +ROM:F03B .byte 0x94 +ROM:F03C .byte 0x64 ; d +ROM:F03D .byte 0xEC +ROM:F03E .byte 0x94 +ROM:F03F .byte 0 +ROM:F040 .byte 0x40 ; @ +ROM:F041 .byte 0xF +ROM:F042 .byte 0xED +ROM:F043 .byte 0x78 ; x +ROM:F044 .byte 3 +ROM:F045 .byte 0xCE +ROM:F046 .byte 0xC3 +ROM:F047 .byte 0x13 +ROM:F048 .byte 0xCE +ROM:F049 .byte 0x13 +ROM:F04A .byte 0xD8 +ROM:F04B .byte 0xF9 +ROM:F04C .byte 0x2D ; - +ROM:F04D .byte 0xFD +ROM:F04E .byte 0xEE +ROM:F04F .byte 0x3C ; < +ROM:F050 .byte 0xFC +ROM:F051 .byte 0xED +ROM:F052 .byte 0xAE +ROM:F053 .byte 4 +ROM:F054 .byte 0x78 ; x +ROM:F055 .byte 2 +ROM:F056 .byte 0xCE +ROM:F057 .byte 0xC3 +ROM:F058 .byte 0x13 +ROM:F059 .byte 0xCE +ROM:F05A .byte 0x13 +ROM:F05B .byte 0xD8 +ROM:F05C .byte 0xF9 +ROM:F05D .byte 0xFD +ROM:F05E .byte 0xAC +ROM:F05F .byte 6 +ROM:F060 .byte 0xED +ROM:F061 .byte 0x1D +ROM:F062 .byte 0xAE +ROM:F063 .byte 4 +ROM:F064 .byte 0x70 ; p +ROM:F065 .byte 1 +ROM:F066 .byte 0x1C +ROM:F067 .byte 0x4E ; N +ROM:F068 .byte 0x60 ; ` +ROM:F069 .byte 3 +ROM:F06A .byte 0 +ROM:F06B .byte 0x80 +ROM:F06C .byte 0xF3 +ROM:F06D .byte 0x22 ; " +ROM:F06E .byte 0x90 +ROM:F06F .byte 0xE5 +ROM:F070 .byte 0xC5 +ROM:F071 .byte 0xE5 +ROM:F072 .byte 0xFF +ROM:F073 .byte 0xF0 +ROM:F074 .byte 0x75 ; u +ROM:F075 .byte 0xFF +ROM:F076 .byte 4 +ROM:F077 .byte 0x7B ; { +ROM:F078 .byte 0xFF +ROM:F079 .byte 0x7A ; z +ROM:F07A .byte 4 +ROM:F07B .byte 0x79 ; y +ROM:F07C .byte 0 +ROM:F07D .byte 0x78 ; x +ROM:F07E .byte 0 +ROM:F07F .byte 0x7C ; | +ROM:F080 .byte 0xE8 +ROM:F081 .byte 0x7D ; } +ROM:F082 .byte 1 +ROM:F083 .byte 0x7E ; ~ +ROM:F084 .byte 4 +ROM:F085 .byte 0x7F ;  +ROM:F086 .byte 0 +ROM:F087 .byte 0x12 +ROM:F088 .byte 0xE8 +ROM:F089 .byte 0xFE +ROM:F08A .byte 0x43 ; C +ROM:F08B .byte 0xC7 +ROM:F08C .byte 0x38 ; 8 +ROM:F08D .byte 0x75 ; u +ROM:F08E .byte 0xDF +ROM:F08F .byte 3 +ROM:F090 .byte 0xE4 +ROM:F091 .byte 0xF5 +ROM:F092 .byte 0xD8 +ROM:F093 .byte 0xF5 +ROM:F094 .byte 0xDB +ROM:F095 .byte 0xF5 +ROM:F096 .byte 0xDC +ROM:F097 .byte 0x75 ; u +ROM:F098 .byte 0xDD +ROM:F099 .byte 0xFF +ROM:F09A .byte 0x75 ; u +ROM:F09B .byte 0xDE +ROM:F09C .byte 3 +ROM:F09D .byte 0x75 ; u +ROM:F09E .byte 0xD9 +ROM:F09F .byte 0 +ROM:F0A0 .byte 0x74 ; t +ROM:F0A1 .byte 0xE8 +ROM:F0A2 .byte 0xF5 +ROM:F0A3 .byte 0xDA +ROM:F0A4 .byte 0x43 ; C +ROM:F0A5 .byte 0xD7 +ROM:F0A6 .byte 8 +ROM:F0A7 .byte 0xE5 +ROM:F0A8 .byte 0xCF +ROM:F0A9 .byte 0x30 ; 0 +ROM:F0AA .byte 0xE3 +ROM:F0AB .byte 0xFB +ROM:F0AC .byte 0x53 ; S +ROM:F0AD .byte 0xCF +ROM:F0AE .byte 0xB7 +ROM:F0AF .byte 0x53 ; S +ROM:F0B0 .byte 0xC7 +ROM:F0B1 .byte 0xEF +ROM:F0B2 .byte 0x7B ; { +ROM:F0B3 .byte 0xFF +ROM:F0B4 .byte 0x7A ; z +ROM:F0B5 .byte 4 +ROM:F0B6 .byte 0x79 ; y +ROM:F0B7 .byte 0 +ROM:F0B8 .byte 0x78 ; x +ROM:F0B9 .byte 0 +ROM:F0BA .byte 0x7C ; | +ROM:F0BB .byte 0 +ROM:F0BC .byte 0x7D ; } +ROM:F0BD .byte 0xFF +ROM:F0BE .byte 0x7E ; ~ +ROM:F0BF .byte 4 +ROM:F0C0 .byte 0x7F ;  +ROM:F0C1 .byte 0 +ROM:F0C2 .byte 0x12 +ROM:F0C3 .byte 0xEB +ROM:F0C4 .byte 0xA +ROM:F0C5 .byte 0xEF +ROM:F0C6 .byte 0x70 ; p +ROM:F0C7 .byte 0xAF +ROM:F0C8 .byte 0x75 ; u +ROM:F0C9 .byte 0x99 +ROM:F0CA .byte 0x57 ; W +ROM:F0CB .byte 0x7F ;  +ROM:F0CC .byte 0x32 ; 2 +ROM:F0CD .byte 0xFE +ROM:F0CE .byte 0x11 +ROM:F0CF .byte 0x35 ; 5 +ROM:F0D0 .byte 0x75 ; u +ROM:F0D1 .byte 0x99 +ROM:F0D2 .byte 0xA +ROM:F0D3 .byte 0x7F ;  +ROM:F0D4 .byte 0x32 ; 2 +ROM:F0D5 .byte 0x7E ; ~ +ROM:F0D6 .byte 0 +ROM:F0D7 .byte 0x11 +ROM:F0D8 .byte 0x35 ; 5 +ROM:F0D9 .byte 0x75 ; u +ROM:F0DA .byte 0x99 +ROM:F0DB .byte 0xD +ROM:F0DC .byte 0x7E ; ~ +ROM:F0DD .byte 0 +ROM:F0DE .byte 0x11 +ROM:F0DF .byte 0x35 ; 5 +ROM:F0E0 .byte 0x90 +ROM:F0E1 .byte 0xE5 +ROM:F0E2 .byte 0xC5 +ROM:F0E3 .byte 0xE0 +ROM:F0E4 .byte 0xF5 +ROM:F0E5 .byte 0xFF +ROM:F0E6 .byte 0x22 ; " +ROM:F0E7 .byte 0x51 ; Q +ROM:F0E8 .byte 0xF2 +ROM:F0E9 .byte 0xE4 +ROM:F0EA .byte 0xF5 +ROM:F0EB .byte 0xFF +ROM:F0EC .byte 0x53 ; S +ROM:F0ED .byte 0x8F +ROM:F0EE .byte 0xF7 +ROM:F0EF .byte 0x43 ; C +ROM:F0F0 .byte 0x8F +ROM:F0F1 .byte 8 +ROM:F0F2 .byte 0x53 ; S +ROM:F0F3 .byte 0x8F +ROM:F0F4 .byte 0xF7 +ROM:F0F5 .byte 0x7F ;  +ROM:F0F6 .byte 5 +ROM:F0F7 .byte 0xFE +ROM:F0F8 .byte 0x11 +ROM:F0F9 .byte 0x35 ; 5 +ROM:F0FA .byte 0x75 ; u +ROM:F0FB .byte 0xB7 +ROM:F0FC .byte 0x2F ; / +ROM:F0FD .byte 0x75 ; u +ROM:F0FE .byte 0x8E +ROM:F0FF .byte 0x21 ; ! +ROM:F100 .byte 0x22 ; " +ROM:F101 .byte 0xE4 +ROM:F102 .byte 0x7F ;  +ROM:F103 .byte 0xFE +ROM:F104 .byte 0x7E ; ~ +ROM:F105 .byte 0x6F ; o +ROM:F106 .byte 0xFD +ROM:F107 .byte 0xFC +ROM:F108 .byte 0x90 +ROM:F109 .byte 0xE5 +ROM:F10A .byte 0xB9 +ROM:F10B .byte 0x12 +ROM:F10C .byte 0xE9 +ROM:F10D .byte 0x78 ; x +ROM:F10E .byte 0xE4 +ROM:F10F .byte 0x90 +ROM:F110 .byte 0xE5 +ROM:F111 .byte 0xC1 +ROM:F112 .byte 0xF0 +ROM:F113 .byte 0xA3 +ROM:F114 .byte 0xF0 +ROM:F115 .byte 0x7B ; { +ROM:F116 .byte 0xFF +ROM:F117 .byte 0x7A ; z +ROM:F118 .byte 0xE8 +ROM:F119 .byte 0x79 ; y +ROM:F11A .byte 0x1E +ROM:F11B .byte 0x78 ; x +ROM:F11C .byte 0xC3 +ROM:F11D .byte 0x7C ; | +ROM:F11E .byte 0xE5 +ROM:F11F .byte 0x7D ; } +ROM:F120 .byte 1 +ROM:F121 .byte 0xFE +ROM:F122 .byte 0x7F ;  +ROM:F123 .byte 2 +ROM:F124 .byte 0x12 +ROM:F125 .byte 0xE8 +ROM:F126 .byte 0xFE +ROM:F127 .byte 0x90 +ROM:F128 .byte 0xE5 +ROM:F129 .byte 0xBF +ROM:F12A .byte 0x74 ; t +ROM:F12B .byte 0xE8 +ROM:F12C .byte 0xF0 +ROM:F12D .byte 0xA3 +ROM:F12E .byte 0xE4 +ROM:F12F .byte 0xF0 +ROM:F130 .byte 0x90 +ROM:F131 .byte 0xE5 +ROM:F132 .byte 0xB9 +ROM:F133 .byte 0xE0 +ROM:F134 .byte 0xA3 +ROM:F135 .byte 0xE0 +ROM:F136 .byte 0xFD +ROM:F137 .byte 0xA3 +ROM:F138 .byte 0xE0 +ROM:F139 .byte 0xFE +ROM:F13A .byte 0xA3 +ROM:F13B .byte 0xE0 +ROM:F13C .byte 0xF9 +ROM:F13D .byte 0xAA +ROM:F13E .byte 6 +ROM:F13F .byte 0xAB +ROM:F140 .byte 5 +ROM:F141 .byte 0x90 +ROM:F142 .byte 0xE5 +ROM:F143 .byte 0xC8 +ROM:F144 .byte 0x74 ; t +ROM:F145 .byte 1 +ROM:F146 .byte 0xF0 +ROM:F147 .byte 0xA3 +ROM:F148 .byte 0x74 ; t +ROM:F149 .byte 0xE5 +ROM:F14A .byte 0xF0 +ROM:F14B .byte 0xA3 +ROM:F14C .byte 0x74 ; t +ROM:F14D .byte 0xC3 +ROM:F14E .byte 0xF0 +ROM:F14F .byte 0xA3 +ROM:F150 .byte 0xE4 +ROM:F151 .byte 0xF0 +ROM:F152 .byte 0xA3 +ROM:F153 .byte 0x74 ; t +ROM:F154 .byte 2 +ROM:F155 .byte 0xF0 +ROM:F156 .byte 0x12 +ROM:F157 .byte 0xEF +ROM:F158 .byte 0xF3 +ROM:F159 .byte 0x90 +ROM:F15A .byte 0xE5 +ROM:F15B .byte 0xB9 +ROM:F15C .byte 0xE0 +ROM:F15D .byte 0xFC +ROM:F15E .byte 0xA3 +ROM:F15F .byte 0xE0 +ROM:F160 .byte 0xFD +ROM:F161 .byte 0xA3 +ROM:F162 .byte 0xE0 +ROM:F163 .byte 0xFE +ROM:F164 .byte 0xA3 +ROM:F165 .byte 0xE0 +ROM:F166 .byte 0x24 ; $ +ROM:F167 .byte 2 +ROM:F168 .byte 0xFF +ROM:F169 .byte 0xE4 +ROM:F16A .byte 0x3E ; > +ROM:F16B .byte 0xFE +ROM:F16C .byte 0xE4 +ROM:F16D .byte 0x3D ; = +ROM:F16E .byte 0xFD +ROM:F16F .byte 0xE4 +ROM:F170 .byte 0x3C ; < +ROM:F171 .byte 0xFC +ROM:F172 .byte 0x90 +ROM:F173 .byte 0xE5 +ROM:F174 .byte 0xB9 +ROM:F175 .byte 0x12 +ROM:F176 .byte 0xE9 +ROM:F177 .byte 0x78 ; x +ROM:F178 .byte 0x51 ; Q +ROM:F179 .byte 0x58 ; X +ROM:F17A .byte 0x90 +ROM:F17B .byte 0xE5 +ROM:F17C .byte 0xC3 +ROM:F17D .byte 0xE0 +ROM:F17E .byte 0xFE +ROM:F17F .byte 0xA3 +ROM:F180 .byte 0xE0 +ROM:F181 .byte 0xFD +ROM:F182 .byte 0xEE +ROM:F183 .byte 0xED +ROM:F184 .byte 0xFF +ROM:F185 .byte 0x90 +ROM:F186 .byte 0xE5 +ROM:F187 .byte 0xC1 +ROM:F188 .byte 0xEE +ROM:F189 .byte 0xF0 +ROM:F18A .byte 0xA3 +ROM:F18B .byte 0xEF +ROM:F18C .byte 0xF0 +ROM:F18D .byte 0xE0 +ROM:F18E .byte 0x24 ; $ +ROM:F18F .byte 0xFF +ROM:F190 .byte 0x90 +ROM:F191 .byte 0xE5 +ROM:F192 .byte 0xC1 +ROM:F193 .byte 0xE0 +ROM:F194 .byte 0x34 ; 4 +ROM:F195 .byte 3 +ROM:F196 .byte 0x13 +ROM:F197 .byte 0x13 +ROM:F198 .byte 0x54 ; T +ROM:F199 .byte 0x3F ; ? +ROM:F19A .byte 0xFF +ROM:F19B .byte 0xE4 +ROM:F19C .byte 0xF0 +ROM:F19D .byte 0xA3 +ROM:F19E .byte 0xEF +ROM:F19F .byte 0xF0 +ROM:F1A0 .byte 0x90 +ROM:F1A1 .byte 0xE5 +ROM:F1A2 .byte 0xBD +ROM:F1A3 .byte 0xE4 +ROM:F1A4 .byte 0xF0 +ROM:F1A5 .byte 0xA3 +ROM:F1A6 .byte 4 +ROM:F1A7 .byte 0xF0 +ROM:F1A8 .byte 0x90 +ROM:F1A9 .byte 0xE5 +ROM:F1AA .byte 0xC1 +ROM:F1AB .byte 0xE0 +ROM:F1AC .byte 0xFE +ROM:F1AD .byte 0xA3 +ROM:F1AE .byte 0xE0 +ROM:F1AF .byte 0xFF +ROM:F1B0 .byte 0xD3 +ROM:F1B1 .byte 0x90 +ROM:F1B2 .byte 0xE5 +ROM:F1B3 .byte 0xBE +ROM:F1B4 .byte 0xE0 +ROM:F1B5 .byte 0x9F +ROM:F1B6 .byte 0x90 +ROM:F1B7 .byte 0xE5 +ROM:F1B8 .byte 0xBD +ROM:F1B9 .byte 0xE0 +ROM:F1BA .byte 0x9E +ROM:F1BB .byte 0x40 ; @ +ROM:F1BC .byte 2 +ROM:F1BD .byte 0x41 ; A +ROM:F1BE .byte 0x53 ; S +ROM:F1BF .byte 0x12 +ROM:F1C0 .byte 0xEF +ROM:F1C1 .byte 0xCB +ROM:F1C2 .byte 0x90 +ROM:F1C3 .byte 0xE5 +ROM:F1C4 .byte 0xB9 +ROM:F1C5 .byte 0xE0 +ROM:F1C6 .byte 0xA3 +ROM:F1C7 .byte 0xE0 +ROM:F1C8 .byte 0xFD +ROM:F1C9 .byte 0xA3 +ROM:F1CA .byte 0xE0 +ROM:F1CB .byte 0xFE +ROM:F1CC .byte 0xA3 +ROM:F1CD .byte 0xE0 +ROM:F1CE .byte 0xF9 +ROM:F1CF .byte 0xAA +ROM:F1D0 .byte 6 +ROM:F1D1 .byte 0xAB +ROM:F1D2 .byte 5 +ROM:F1D3 .byte 0xC0 +ROM:F1D4 .byte 2 +ROM:F1D5 .byte 0xC0 +ROM:F1D6 .byte 1 +ROM:F1D7 .byte 0x90 +ROM:F1D8 .byte 0xE5 +ROM:F1D9 .byte 0xBF +ROM:F1DA .byte 0xE0 +ROM:F1DB .byte 0xFE +ROM:F1DC .byte 0xA3 +ROM:F1DD .byte 0xE0 +ROM:F1DE .byte 0xAA +ROM:F1DF .byte 6 +ROM:F1E0 .byte 0xF9 +ROM:F1E1 .byte 0x90 +ROM:F1E2 .byte 0xE5 +ROM:F1E3 .byte 0xC8 +ROM:F1E4 .byte 0x74 ; t +ROM:F1E5 .byte 1 +ROM:F1E6 .byte 0xF0 +ROM:F1E7 .byte 0xA3 +ROM:F1E8 .byte 0xEA +ROM:F1E9 .byte 0xF0 +ROM:F1EA .byte 0xA3 +ROM:F1EB .byte 0xE9 +ROM:F1EC .byte 0xF0 +ROM:F1ED .byte 0xA3 +ROM:F1EE .byte 0x74 ; t +ROM:F1EF .byte 4 +ROM:F1F0 .byte 0xF0 +ROM:F1F1 .byte 0xA3 +ROM:F1F2 .byte 0xE4 +ROM:F1F3 .byte 0xF0 +ROM:F1F4 .byte 0xD0 +ROM:F1F5 .byte 1 +ROM:F1F6 .byte 0xD0 +ROM:F1F7 .byte 2 +ROM:F1F8 .byte 0x12 +ROM:F1F9 .byte 0xEF +ROM:F1FA .byte 0xF3 +ROM:F1FB .byte 0x51 ; Q +ROM:F1FC .byte 0x58 ; X +ROM:F1FD .byte 0xE4 +ROM:F1FE .byte 0xFF +ROM:F1FF .byte 0xFE +ROM:F200 .byte 0xC3 +ROM:F201 .byte 0xEF +ROM:F202 .byte 0x94 +ROM:F203 .byte 0x10 +ROM:F204 .byte 0xEE +ROM:F205 .byte 0x64 ; d +ROM:F206 .byte 0x80 +ROM:F207 .byte 0x94 +ROM:F208 .byte 0x80 +ROM:F209 .byte 0x50 ; P +ROM:F20A .byte 7 +ROM:F20B .byte 0xF +ROM:F20C .byte 0xEF +ROM:F20D .byte 0x70 ; p +ROM:F20E .byte 1 +ROM:F20F .byte 0xE +ROM:F210 .byte 0x80 +ROM:F211 .byte 0xEE +ROM:F212 .byte 0x12 +ROM:F213 .byte 0xEF +ROM:F214 .byte 0xCB +ROM:F215 .byte 0xC2 +ROM:F216 .byte 0xAF +ROM:F217 .byte 0x90 +ROM:F218 .byte 0xE5 +ROM:F219 .byte 0xBD +ROM:F21A .byte 0xE0 +ROM:F21B .byte 0xFE +ROM:F21C .byte 0xA3 +ROM:F21D .byte 0xE0 +ROM:F21E .byte 0xFF +ROM:F21F .byte 0x51 ; Q +ROM:F220 .byte 0x94 +ROM:F221 .byte 0xD2 +ROM:F222 .byte 0xAF +ROM:F223 .byte 0x90 +ROM:F224 .byte 0xE5 +ROM:F225 .byte 0xB9 +ROM:F226 .byte 0xE0 +ROM:F227 .byte 0xFC +ROM:F228 .byte 0xA3 +ROM:F229 .byte 0xE0 +ROM:F22A .byte 0xFD +ROM:F22B .byte 0xA3 +ROM:F22C .byte 0xE0 +ROM:F22D .byte 0xFE +ROM:F22E .byte 0xA3 +ROM:F22F .byte 0xE0 +ROM:F230 .byte 0x24 ; $ +ROM:F231 .byte 0 +ROM:F232 .byte 0xFF +ROM:F233 .byte 0xEE +ROM:F234 .byte 0x34 ; 4 +ROM:F235 .byte 4 +ROM:F236 .byte 0xFE +ROM:F237 .byte 0xE4 +ROM:F238 .byte 0x3D ; = +ROM:F239 .byte 0xFD +ROM:F23A .byte 0xE4 +ROM:F23B .byte 0x3C ; < +ROM:F23C .byte 0xFC +ROM:F23D .byte 0x90 +ROM:F23E .byte 0xE5 +ROM:F23F .byte 0xB9 +ROM:F240 .byte 0x12 +ROM:F241 .byte 0xE9 +ROM:F242 .byte 0x78 ; x +ROM:F243 .byte 0x90 +ROM:F244 .byte 0xE5 +ROM:F245 .byte 0xBE +ROM:F246 .byte 0xE0 +ROM:F247 .byte 4 +ROM:F248 .byte 0xF0 +ROM:F249 .byte 0x70 ; p +ROM:F24A .byte 6 +ROM:F24B .byte 0x90 +ROM:F24C .byte 0xE5 +ROM:F24D .byte 0xBD +ROM:F24E .byte 0xE0 +ROM:F24F .byte 4 +ROM:F250 .byte 0xF0 +ROM:F251 .byte 0x21 ; ! +ROM:F252 .byte 0xA8 +ROM:F253 .byte 0x12 +ROM:F254 .byte 0xEF +ROM:F255 .byte 0xCB +ROM:F256 .byte 1 +ROM:F257 .byte 0x6E ; n +ROM:F258 .byte 0xE4 +ROM:F259 .byte 0x90 +ROM:F25A .byte 0xE4 +ROM:F25B .byte 0 +ROM:F25C .byte 0xF0 +ROM:F25D .byte 0x90 +ROM:F25E .byte 0xE4 +ROM:F25F .byte 2 +ROM:F260 .byte 0xF0 +ROM:F261 .byte 0x90 +ROM:F262 .byte 0xE4 +ROM:F263 .byte 4 +ROM:F264 .byte 0xF0 +ROM:F265 .byte 0x90 +ROM:F266 .byte 0xE4 +ROM:F267 .byte 1 +ROM:F268 .byte 0xF0 +ROM:F269 .byte 0x90 +ROM:F26A .byte 0xE4 +ROM:F26B .byte 3 +ROM:F26C .byte 0xF0 +ROM:F26D .byte 0x90 +ROM:F26E .byte 0xE4 +ROM:F26F .byte 5 +ROM:F270 .byte 0xF0 +ROM:F271 .byte 0xD2 +ROM:F272 .byte 0 +ROM:F273 .byte 0xAF +ROM:F274 .byte 0xFF +ROM:F275 .byte 0xF5 +ROM:F276 .byte 0xFF +ROM:F277 .byte 0x43 ; C +ROM:F278 .byte 0xAD +ROM:F279 .byte 0xC0 +ROM:F27A .byte 0x43 ; C +ROM:F27B .byte 0xB9 +ROM:F27C .byte 0x80 +ROM:F27D .byte 0x53 ; S +ROM:F27E .byte 0xB9 +ROM:F27F .byte 0xBF +ROM:F280 .byte 0xF5 +ROM:F281 .byte 0x9B +ROM:F282 .byte 0x75 ; u +ROM:F283 .byte 0x9A +ROM:F284 .byte 0x89 +ROM:F285 .byte 0x75 ; u +ROM:F286 .byte 0x98 +ROM:F287 .byte 0x10 +ROM:F288 .byte 0xC2 +ROM:F289 .byte 0x99 +ROM:F28A .byte 0xC2 +ROM:F28B .byte 0x98 +ROM:F28C .byte 0x43 ; C +ROM:F28D .byte 0xB7 +ROM:F28E .byte 0x20 +ROM:F28F .byte 0xD2 +ROM:F290 .byte 0xA8 +ROM:F291 .byte 0x8F +ROM:F292 .byte 0xFF +ROM:F293 .byte 0x22 ; " +ROM:F294 .byte 0x90 +ROM:F295 .byte 0xE5 +ROM:F296 .byte 0xC5 +ROM:F297 .byte 0xE5 +ROM:F298 .byte 0xFF +ROM:F299 .byte 0xF0 +ROM:F29A .byte 0x75 ; u +ROM:F29B .byte 0xFF +ROM:F29C .byte 4 +ROM:F29D .byte 0x43 ; C +ROM:F29E .byte 0xC7 +ROM:F29F .byte 0x38 ; 8 +ROM:F2A0 .byte 0x75 ; u +ROM:F2A1 .byte 0xDF +ROM:F2A2 .byte 3 +ROM:F2A3 .byte 0x8F +ROM:F2A4 .byte 0xD8 +ROM:F2A5 .byte 0xE4 +ROM:F2A6 .byte 0xF5 +ROM:F2A7 .byte 0xDB +ROM:F2A8 .byte 0xF5 +ROM:F2A9 .byte 0xDC +ROM:F2AA .byte 0x75 ; u +ROM:F2AB .byte 0xDD +ROM:F2AC .byte 0xFF +ROM:F2AD .byte 0x75 ; u +ROM:F2AE .byte 0xDE +ROM:F2AF .byte 3 +ROM:F2B0 .byte 0x75 ; u +ROM:F2B1 .byte 0xD9 +ROM:F2B2 .byte 0 +ROM:F2B3 .byte 0x74 ; t +ROM:F2B4 .byte 0xE8 +ROM:F2B5 .byte 0xF5 +ROM:F2B6 .byte 0xDA +ROM:F2B7 .byte 0x43 ; C +ROM:F2B8 .byte 0xD7 +ROM:F2B9 .byte 8 +ROM:F2BA .byte 0xE5 +ROM:F2BB .byte 0xCF +ROM:F2BC .byte 0x30 ; 0 +ROM:F2BD .byte 0xE3 +ROM:F2BE .byte 0xFB +ROM:F2BF .byte 0x53 ; S +ROM:F2C0 .byte 0xCF +ROM:F2C1 .byte 0xB7 +ROM:F2C2 .byte 0x53 ; S +ROM:F2C3 .byte 0xC7 +ROM:F2C4 .byte 0xEF +ROM:F2C5 .byte 0x75 ; u +ROM:F2C6 .byte 0x99 +ROM:F2C7 .byte 0x44 ; D +ROM:F2C8 .byte 0x7F ;  +ROM:F2C9 .byte 0x32 ; 2 +ROM:F2CA .byte 0x7E ; ~ +ROM:F2CB .byte 0 +ROM:F2CC .byte 0x11 +ROM:F2CD .byte 0x35 ; 5 +ROM:F2CE .byte 0x90 +ROM:F2CF .byte 0xE5 +ROM:F2D0 .byte 0xC5 +ROM:F2D1 .byte 0xE0 +ROM:F2D2 .byte 0xF5 +ROM:F2D3 .byte 0xFF +ROM:F2D4 .byte 0x22 ; " +ROM:F2D5 .byte 0x12 +ROM:F2D6 .byte 0xED +ROM:F2D7 .byte 0xB8 +ROM:F2D8 .byte 0x31 ; 1 +ROM:F2D9 .byte 1 +ROM:F2DA .byte 0x75 ; u +ROM:F2DB .byte 0xFF +ROM:F2DC .byte 4 +ROM:F2DD .byte 0x75 ; u +ROM:F2DE .byte 0xBF +ROM:F2DF .byte 0x80 +ROM:F2E0 .byte 0x75 ; u +ROM:F2E1 .byte 0xBB +ROM:F2E2 .byte 0xFF +ROM:F2E3 .byte 0x75 ; u +ROM:F2E4 .byte 0xBD +ROM:F2E5 .byte 0xFF +ROM:F2E6 .byte 0x75 ; u +ROM:F2E7 .byte 0xBC +ROM:F2E8 .byte 0xFF +ROM:F2E9 .byte 0x75 ; u +ROM:F2EA .byte 0xBE +ROM:F2EB .byte 0xFF +ROM:F2EC .byte 0x75 ; u +ROM:F2ED .byte 0xBA +ROM:F2EE .byte 1 +ROM:F2EF .byte 0x80 +ROM:F2F0 .byte 0xFE +ROM:F2F1 .byte 0x22 ; " +ROM:F2F2 .byte 0xAF +ROM:F2F3 .byte 0xFF +ROM:F2F4 .byte 0x75 ; u +ROM:F2F5 .byte 0xFF +ROM:F2F6 .byte 4 +ROM:F2F7 .byte 0x43 ; C +ROM:F2F8 .byte 0xBF +ROM:F2F9 .byte 0x80 +ROM:F2FA .byte 0xE4 +ROM:F2FB .byte 0xF5 +ROM:F2FC .byte 0xBA +ROM:F2FD .byte 0xF5 +ROM:F2FE .byte 0xBB +ROM:F2FF .byte 0xF5 +ROM:F300 .byte 0xBC +ROM:F301 .byte 0xF5 +ROM:F302 .byte 0xBD +ROM:F303 .byte 0x75 ; u +ROM:F304 .byte 0xBE +ROM:F305 .byte 0xFF +ROM:F306 .byte 0x75 ; u +ROM:F307 .byte 0xBA +ROM:F308 .byte 1 +ROM:F309 .byte 0x8F +ROM:F30A .byte 0xFF +ROM:F30B .byte 0x22 ; " +ROM:F30C .byte 0x90 +ROM:F30D .byte 0xE6 +ROM:F30E .byte 0xB +ROM:F30F .byte 0xEB +ROM:F310 .byte 0xF0 +ROM:F311 .byte 0xA3 +ROM:F312 .byte 0xEA +ROM:F313 .byte 0xF0 +ROM:F314 .byte 0xA3 +ROM:F315 .byte 0xE9 +ROM:F316 .byte 0xF0 +ROM:F317 .byte 0x90 +ROM:F318 .byte 0xE6 +ROM:F319 .byte 0x10 +ROM:F31A .byte 0xE0 +ROM:F31B .byte 0xFE +ROM:F31C .byte 0xA3 +ROM:F31D .byte 0xE0 +ROM:F31E .byte 0xFF +ROM:F31F .byte 0xAA +ROM:F320 .byte 4 +ROM:F321 .byte 0xA9 +ROM:F322 .byte 5 +ROM:F323 .byte 0x7B ; { +ROM:F324 .byte 0xFF +ROM:F325 .byte 0xC0 +ROM:F326 .byte 3 +ROM:F327 .byte 0xC0 +ROM:F328 .byte 2 +ROM:F329 .byte 0x90 +ROM:F32A .byte 0xE6 +ROM:F32B .byte 0xB +ROM:F32C .byte 0xE0 +ROM:F32D .byte 0xFB +ROM:F32E .byte 0xA3 +ROM:F32F .byte 0xE0 +ROM:F330 .byte 0xFA +ROM:F331 .byte 0xA3 +ROM:F332 .byte 0xE0 +ROM:F333 .byte 0xF8 +ROM:F334 .byte 0xAC +ROM:F335 .byte 2 +ROM:F336 .byte 0xAD +ROM:F337 .byte 3 +ROM:F338 .byte 0xD0 +ROM:F339 .byte 2 +ROM:F33A .byte 0xD0 +ROM:F33B .byte 3 +ROM:F33C .byte 2 +ROM:F33D .byte 0xE8 +ROM:F33E .byte 0xFE +ROM:F33F .byte 0x90 +ROM:F340 .byte 0xE6 +ROM:F341 .byte 0x19 +ROM:F342 .byte 0xEE +ROM:F343 .byte 0xF0 +ROM:F344 .byte 0xA3 +ROM:F345 .byte 0xEF +ROM:F346 .byte 0xF0 +ROM:F347 .byte 0x7E ; ~ +ROM:F348 .byte 4 +ROM:F349 .byte 0x7F ;  +ROM:F34A .byte 0 +ROM:F34B .byte 0x7D ; } +ROM:F34C .byte 0xFF +ROM:F34D .byte 0x7A ; z +ROM:F34E .byte 0xE8 +ROM:F34F .byte 0x79 ; y +ROM:F350 .byte 0 +ROM:F351 .byte 0x7B ; { +ROM:F352 .byte 1 +ROM:F353 .byte 0x12 +ROM:F354 .byte 0xEB +ROM:F355 .byte 0x2E ; . +ROM:F356 .byte 0x90 +ROM:F357 .byte 0xE6 +ROM:F358 .byte 0x19 +ROM:F359 .byte 0xE0 +ROM:F35A .byte 0x54 ; T +ROM:F35B .byte 0xFC +ROM:F35C .byte 0xA3 +ROM:F35D .byte 0xFA +ROM:F35E .byte 0x79 ; y +ROM:F35F .byte 0 +ROM:F360 .byte 0x7B ; { +ROM:F361 .byte 0xFF +ROM:F362 .byte 0x78 ; x +ROM:F363 .byte 0 +ROM:F364 .byte 0x7C ; | +ROM:F365 .byte 0xE8 +ROM:F366 .byte 0x7D ; } +ROM:F367 .byte 1 +ROM:F368 .byte 0x7E ; ~ +ROM:F369 .byte 4 +ROM:F36A .byte 0x7F ;  +ROM:F36B .byte 0 +ROM:F36C .byte 0x12 +ROM:F36D .byte 0xEB +ROM:F36E .byte 0xA +ROM:F36F .byte 0xEF +ROM:F370 .byte 0x60 ; ` +ROM:F371 .byte 0x49 ; I +ROM:F372 .byte 0xAD +ROM:F373 .byte 0xFF +ROM:F374 .byte 0x75 ; u +ROM:F375 .byte 0xFF +ROM:F376 .byte 4 +ROM:F377 .byte 0xD3 +ROM:F378 .byte 0x10 +ROM:F379 .byte 0xAF +ROM:F37A .byte 1 +ROM:F37B .byte 0xC3 +ROM:F37C .byte 0xE4 +ROM:F37D .byte 0x33 ; 3 +ROM:F37E .byte 0x90 +ROM:F37F .byte 0xE6 +ROM:F380 .byte 0x1B +ROM:F381 .byte 0xF0 +ROM:F382 .byte 0x43 ; C +ROM:F383 .byte 0xC7 +ROM:F384 .byte 0x38 ; 8 +ROM:F385 .byte 0x75 ; u +ROM:F386 .byte 0xDF +ROM:F387 .byte 3 +ROM:F388 .byte 0x90 +ROM:F389 .byte 0xE6 +ROM:F38A .byte 0x19 +ROM:F38B .byte 0xE0 +ROM:F38C .byte 0x13 +ROM:F38D .byte 0x13 +ROM:F38E .byte 0x54 ; T +ROM:F38F .byte 0x3F ; ? +ROM:F390 .byte 0xF5 +ROM:F391 .byte 0xD8 +ROM:F392 .byte 0xE4 +ROM:F393 .byte 0xF5 +ROM:F394 .byte 0xDB +ROM:F395 .byte 0xF5 +ROM:F396 .byte 0xDC +ROM:F397 .byte 0x75 ; u +ROM:F398 .byte 0xDD +ROM:F399 .byte 0xFF +ROM:F39A .byte 0x75 ; u +ROM:F39B .byte 0xDE +ROM:F39C .byte 3 +ROM:F39D .byte 0x75 ; u +ROM:F39E .byte 0xD9 +ROM:F39F .byte 0 +ROM:F3A0 .byte 0x74 ; t +ROM:F3A1 .byte 0xE8 +ROM:F3A2 .byte 0xF5 +ROM:F3A3 .byte 0xDA +ROM:F3A4 .byte 0x43 ; C +ROM:F3A5 .byte 0xD7 +ROM:F3A6 .byte 8 +ROM:F3A7 .byte 0xE5 +ROM:F3A8 .byte 0xCF +ROM:F3A9 .byte 0x30 ; 0 +ROM:F3AA .byte 0xE3 +ROM:F3AB .byte 0xFB +ROM:F3AC .byte 0x53 ; S +ROM:F3AD .byte 0xC7 +ROM:F3AE .byte 0xEF +ROM:F3AF .byte 0x90 +ROM:F3B0 .byte 0xE6 +ROM:F3B1 .byte 0x1B +ROM:F3B2 .byte 0xE0 +ROM:F3B3 .byte 0x24 ; $ +ROM:F3B4 .byte 0xFF +ROM:F3B5 .byte 0x92 +ROM:F3B6 .byte 0xAF +ROM:F3B7 .byte 0xAF +ROM:F3B8 .byte 5 +ROM:F3B9 .byte 0x8F +ROM:F3BA .byte 0xFF +ROM:F3BB .byte 0x22 ; " +ROM:F3BC .byte 0xC0 +ROM:F3BD .byte 0xE0 +ROM:F3BE .byte 0xC0 +ROM:F3BF .byte 0xD0 +ROM:F3C0 .byte 0x75 ; u +ROM:F3C1 .byte 0xD0 +ROM:F3C2 .byte 0 +ROM:F3C3 .byte 0xC0 +ROM:F3C4 .byte 7 +ROM:F3C5 .byte 0xAF +ROM:F3C6 .byte 0xFF +ROM:F3C7 .byte 0x75 ; u +ROM:F3C8 .byte 0xFF +ROM:F3C9 .byte 4 +ROM:F3CA .byte 0xE5 +ROM:F3CB .byte 0xCF +ROM:F3CC .byte 0x20 +ROM:F3CD .byte 0xE7 +ROM:F3CE .byte 0x1D +ROM:F3CF .byte 0xE5 +ROM:F3D0 .byte 0xCF +ROM:F3D1 .byte 0x30 ; 0 +ROM:F3D2 .byte 0xE2 +ROM:F3D3 .byte 3 +ROM:F3D4 .byte 0x53 ; S +ROM:F3D5 .byte 0xCF +ROM:F3D6 .byte 0xFB +ROM:F3D7 .byte 0xE5 +ROM:F3D8 .byte 0xCF +ROM:F3D9 .byte 0x30 ; 0 +ROM:F3DA .byte 0xE1 +ROM:F3DB .byte 3 +ROM:F3DC .byte 0x53 ; S +ROM:F3DD .byte 0xCF +ROM:F3DE .byte 0xFD +ROM:F3DF .byte 0xE5 +ROM:F3E0 .byte 0xCF +ROM:F3E1 .byte 0x30 ; 0 +ROM:F3E2 .byte 0xE3 +ROM:F3E3 .byte 0xB +ROM:F3E4 .byte 0x53 ; S +ROM:F3E5 .byte 0xCF +ROM:F3E6 .byte 0xB7 +ROM:F3E7 .byte 0x53 ; S +ROM:F3E8 .byte 0xC7 +ROM:F3E9 .byte 0xEF +ROM:F3EA .byte 0x80 +ROM:F3EB .byte 3 +ROM:F3EC .byte 0x75 ; u +ROM:F3ED .byte 0xCF +ROM:F3EE .byte 0 +ROM:F3EF .byte 0x8F +ROM:F3F0 .byte 0xFF +ROM:F3F1 .byte 0xD0 +ROM:F3F2 .byte 7 +ROM:F3F3 .byte 0xD0 +ROM:F3F4 .byte 0xD0 +ROM:F3F5 .byte 0xD0 +ROM:F3F6 .byte 0xE0 +ROM:F3F7 .byte 0x32 ; 2 +ROM:F3F8 .byte 0xC0 +ROM:F3F9 .byte 0xE0 +ROM:F3FA .byte 0xC0 +ROM:F3FB .byte 0x83 +ROM:F3FC .byte 0xC0 +ROM:F3FD .byte 0x82 +ROM:F3FE .byte 0xC0 +ROM:F3FF .byte 0xD0 +ROM:F400 .byte 0x75 ; u +ROM:F401 .byte 0xD0 +ROM:F402 .byte 0 +ROM:F403 .byte 0xC0 +ROM:F404 .byte 7 +ROM:F405 .byte 0x30 ; 0 +ROM:F406 .byte 0x99 +ROM:F407 .byte 0x2B ; + +ROM:F408 .byte 0xC2 +ROM:F409 .byte 0x99 +ROM:F40A .byte 0x90 +ROM:F40B .byte 0xE4 +ROM:F40C .byte 5 +ROM:F40D .byte 0xE0 +ROM:F40E .byte 0x60 ; ` +ROM:F40F .byte 0x21 ; ! +ROM:F410 .byte 0xE0 +ROM:F411 .byte 0x14 +ROM:F412 .byte 0xF0 +ROM:F413 .byte 0x90 +ROM:F414 .byte 0xE4 +ROM:F415 .byte 1 +ROM:F416 .byte 0xE0 +ROM:F417 .byte 0x24 ; $ +ROM:F418 .byte 0x86 +ROM:F419 .byte 0xF5 +ROM:F41A .byte 0x82 +ROM:F41B .byte 0xE4 +ROM:F41C .byte 0x34 ; 4 +ROM:F41D .byte 0xE4 +ROM:F41E .byte 0xF5 +ROM:F41F .byte 0x83 +ROM:F420 .byte 0xE0 +ROM:F421 .byte 0xF5 +ROM:F422 .byte 0x99 +ROM:F423 .byte 0x90 +ROM:F424 .byte 0xE4 +ROM:F425 .byte 1 +ROM:F426 .byte 0xE0 +ROM:F427 .byte 4 +ROM:F428 .byte 0xF0 +ROM:F429 .byte 0xE0 +ROM:F42A .byte 0x54 ; T +ROM:F42B .byte 0x7F ;  +ROM:F42C .byte 0xF0 +ROM:F42D .byte 0xC2 +ROM:F42E .byte 0 +ROM:F42F .byte 0x80 +ROM:F430 .byte 2 +ROM:F431 .byte 0xD2 +ROM:F432 .byte 0 +ROM:F433 .byte 0x30 ; 0 +ROM:F434 .byte 0x98 +ROM:F435 .byte 0x32 ; 2 +ROM:F436 .byte 0xC2 +ROM:F437 .byte 0x98 +ROM:F438 .byte 0x90 +ROM:F439 .byte 0xE5 +ROM:F43A .byte 0xDC +ROM:F43B .byte 0xE5 +ROM:F43C .byte 0x99 +ROM:F43D .byte 0xF0 +ROM:F43E .byte 0x90 +ROM:F43F .byte 0xE4 +ROM:F440 .byte 4 +ROM:F441 .byte 0xE0 +ROM:F442 .byte 0xC3 +ROM:F443 .byte 0x94 +ROM:F444 .byte 0x80 +ROM:F445 .byte 0x50 ; P +ROM:F446 .byte 0x21 ; ! +ROM:F447 .byte 0xE0 +ROM:F448 .byte 4 +ROM:F449 .byte 0xF0 +ROM:F44A .byte 0x90 +ROM:F44B .byte 0xE5 +ROM:F44C .byte 0xDC +ROM:F44D .byte 0xE0 +ROM:F44E .byte 0xFF +ROM:F44F .byte 0x90 +ROM:F450 .byte 0xE4 +ROM:F451 .byte 2 +ROM:F452 .byte 0xE0 +ROM:F453 .byte 0x24 ; $ +ROM:F454 .byte 6 +ROM:F455 .byte 0xF5 +ROM:F456 .byte 0x82 +ROM:F457 .byte 0xE4 +ROM:F458 .byte 0x34 ; 4 +ROM:F459 .byte 0xE4 +ROM:F45A .byte 0xF5 +ROM:F45B .byte 0x83 +ROM:F45C .byte 0xEF +ROM:F45D .byte 0xF0 +ROM:F45E .byte 0x90 +ROM:F45F .byte 0xE4 +ROM:F460 .byte 2 +ROM:F461 .byte 0xE0 +ROM:F462 .byte 4 +ROM:F463 .byte 0xF0 +ROM:F464 .byte 0xE0 +ROM:F465 .byte 0x54 ; T +ROM:F466 .byte 0x7F ;  +ROM:F467 .byte 0xF0 +ROM:F468 .byte 0xD0 +ROM:F469 .byte 7 +ROM:F46A .byte 0xD0 +ROM:F46B .byte 0xD0 +ROM:F46C .byte 0xD0 +ROM:F46D .byte 0x82 +ROM:F46E .byte 0xD0 +ROM:F46F .byte 0x83 +ROM:F470 .byte 0xD0 +ROM:F471 .byte 0xE0 +ROM:F472 .byte 0x32 ; 2 +ROM:F473 .byte 0x90 +ROM:F474 .byte 0xE5 +ROM:F475 .byte 0xDD +ROM:F476 .byte 0x12 +ROM:F477 .byte 0xE9 +ROM:F478 .byte 0x78 ; x +ROM:F479 .byte 0x90 +ROM:F47A .byte 0xE5 +ROM:F47B .byte 0xE1 +ROM:F47C .byte 0xEB +ROM:F47D .byte 0xF0 +ROM:F47E .byte 0xA3 +ROM:F47F .byte 0xEA +ROM:F480 .byte 0xF0 +ROM:F481 .byte 0xA3 +ROM:F482 .byte 0xE9 +ROM:F483 .byte 0xF0 +ROM:F484 .byte 0xE4 +ROM:F485 .byte 0xFF +ROM:F486 .byte 0xFE +ROM:F487 .byte 0xFD +ROM:F488 .byte 0xFC +ROM:F489 .byte 0x90 +ROM:F48A .byte 0xE5 +ROM:F48B .byte 0xEA +ROM:F48C .byte 0x12 +ROM:F48D .byte 0xE9 +ROM:F48E .byte 0x78 ; x +ROM:F48F .byte 0x90 +ROM:F490 .byte 0xE5 +ROM:F491 .byte 0xE4 +ROM:F492 .byte 0xE0 +ROM:F493 .byte 0xFF +ROM:F494 .byte 0xA3 +ROM:F495 .byte 0xE0 +ROM:F496 .byte 0x90 +ROM:F497 .byte 0xE5 +ROM:F498 .byte 0xF0 +ROM:F499 .byte 0xCF +ROM:F49A .byte 0xF0 +ROM:F49B .byte 0xA3 +ROM:F49C .byte 0xEF +ROM:F49D .byte 0xF0 +ROM:F49E .byte 0x90 +ROM:F49F .byte 0xE5 +ROM:F4A0 .byte 0xE4 +ROM:F4A1 .byte 0xE0 +ROM:F4A2 .byte 0xFF +ROM:F4A3 .byte 0x7E ; ~ +ROM:F4A4 .byte 0 +ROM:F4A5 .byte 0xE4 +ROM:F4A6 .byte 0xFC +ROM:F4A7 .byte 0xFD +ROM:F4A8 .byte 0x90 +ROM:F4A9 .byte 0xE5 +ROM:F4AA .byte 0xE6 +ROM:F4AB .byte 0x12 +ROM:F4AC .byte 0xE9 +ROM:F4AD .byte 0x78 ; x +ROM:F4AE .byte 0x90 +ROM:F4AF .byte 0xE5 +ROM:F4B0 .byte 0xDD +ROM:F4B1 .byte 0xE0 +ROM:F4B2 .byte 0xFC +ROM:F4B3 .byte 0xA3 +ROM:F4B4 .byte 0xE0 +ROM:F4B5 .byte 0xFD +ROM:F4B6 .byte 0xA3 +ROM:F4B7 .byte 0xE0 +ROM:F4B8 .byte 0xFE +ROM:F4B9 .byte 0xA3 +ROM:F4BA .byte 0xE0 +ROM:F4BB .byte 0xFF +ROM:F4BC .byte 0xE4 +ROM:F4BD .byte 0xFE +ROM:F4BE .byte 0xFD +ROM:F4BF .byte 0xFC +ROM:F4C0 .byte 0xEF +ROM:F4C1 .byte 0x70 ; p +ROM:F4C2 .byte 2 +ROM:F4C3 .byte 0xC1 +ROM:F4C4 .byte 0x65 ; e +ROM:F4C5 .byte 0x90 +ROM:F4C6 .byte 0xE5 +ROM:F4C7 .byte 0xDD +ROM:F4C8 .byte 0xE0 +ROM:F4C9 .byte 0xFC +ROM:F4CA .byte 0xA3 +ROM:F4CB .byte 0xE0 +ROM:F4CC .byte 0xFD +ROM:F4CD .byte 0xA3 +ROM:F4CE .byte 0xE0 +ROM:F4CF .byte 0xFE +ROM:F4D0 .byte 0xA3 +ROM:F4D1 .byte 0xE0 +ROM:F4D2 .byte 0xE4 +ROM:F4D3 .byte 0xC3 +ROM:F4D4 .byte 0x9F +ROM:F4D5 .byte 0x90 +ROM:F4D6 .byte 0xE5 +ROM:F4D7 .byte 0xEF +ROM:F4D8 .byte 0xF0 +ROM:F4D9 .byte 0x74 ; t +ROM:F4DA .byte 1 +ROM:F4DB .byte 0x94 +ROM:F4DC .byte 0 +ROM:F4DD .byte 0x90 +ROM:F4DE .byte 0xE5 +ROM:F4DF .byte 0xEE +ROM:F4E0 .byte 0xF0 +ROM:F4E1 .byte 0xE0 +ROM:F4E2 .byte 0xFE +ROM:F4E3 .byte 0xA3 +ROM:F4E4 .byte 0xE0 +ROM:F4E5 .byte 0xFF +ROM:F4E6 .byte 0xD3 +ROM:F4E7 .byte 0x90 +ROM:F4E8 .byte 0xE5 +ROM:F4E9 .byte 0xF1 +ROM:F4EA .byte 0xE0 +ROM:F4EB .byte 0x9F +ROM:F4EC .byte 0x90 +ROM:F4ED .byte 0xE5 +ROM:F4EE .byte 0xF0 +ROM:F4EF .byte 0xE0 +ROM:F4F0 .byte 0x9E +ROM:F4F1 .byte 0x50 ; P +ROM:F4F2 .byte 2 +ROM:F4F3 .byte 0xA1 +ROM:F4F4 .byte 0xAE +ROM:F4F5 .byte 0x12 +ROM:F4F6 .byte 0xED +ROM:F4F7 .byte 0xFA +ROM:F4F8 .byte 0x90 +ROM:F4F9 .byte 0xE5 +ROM:F4FA .byte 0xDD +ROM:F4FB .byte 0xE0 +ROM:F4FC .byte 0xFC +ROM:F4FD .byte 0xA3 +ROM:F4FE .byte 0xE0 +ROM:F4FF .byte 0xFD +ROM:F500 .byte 0xA3 +ROM:F501 .byte 0xE0 +ROM:F502 .byte 0xFE +ROM:F503 .byte 0xA3 +ROM:F504 .byte 0xE0 +ROM:F505 .byte 0xFF +ROM:F506 .byte 0xC0 +ROM:F507 .byte 5 +ROM:F508 .byte 0xC0 +ROM:F509 .byte 6 +ROM:F50A .byte 0xC0 +ROM:F50B .byte 7 +ROM:F50C .byte 0x90 +ROM:F50D .byte 0xE5 +ROM:F50E .byte 0xEA +ROM:F50F .byte 0xE0 +ROM:F510 .byte 0xA3 +ROM:F511 .byte 0xE0 +ROM:F512 .byte 0xFD +ROM:F513 .byte 0xA3 +ROM:F514 .byte 0xE0 +ROM:F515 .byte 0xFE +ROM:F516 .byte 0xA3 +ROM:F517 .byte 0xE0 +ROM:F518 .byte 0xFF +ROM:F519 .byte 0x90 +ROM:F51A .byte 0xE5 +ROM:F51B .byte 0xE1 +ROM:F51C .byte 0xE0 +ROM:F51D .byte 0xFB +ROM:F51E .byte 0xA3 +ROM:F51F .byte 0xE0 +ROM:F520 .byte 0xFA +ROM:F521 .byte 0xA3 +ROM:F522 .byte 0xE0 +ROM:F523 .byte 0x2F ; / +ROM:F524 .byte 0xF9 +ROM:F525 .byte 0xEA +ROM:F526 .byte 0x3E ; > +ROM:F527 .byte 0xFA +ROM:F528 .byte 0xEB +ROM:F529 .byte 0x3D ; = +ROM:F52A .byte 0xFB +ROM:F52B .byte 0x90 +ROM:F52C .byte 0xE5 +ROM:F52D .byte 0xEE +ROM:F52E .byte 0xE0 +ROM:F52F .byte 0xFF +ROM:F530 .byte 0xA3 +ROM:F531 .byte 0xE0 +ROM:F532 .byte 0x90 +ROM:F533 .byte 0xE6 +ROM:F534 .byte 9 +ROM:F535 .byte 0xCF +ROM:F536 .byte 0xF0 +ROM:F537 .byte 0xA3 +ROM:F538 .byte 0xEF +ROM:F539 .byte 0xF0 +ROM:F53A .byte 0xD0 +ROM:F53B .byte 7 +ROM:F53C .byte 0xD0 +ROM:F53D .byte 6 +ROM:F53E .byte 0xD0 +ROM:F53F .byte 5 +ROM:F540 .byte 0x12 +ROM:F541 .byte 0xEE +ROM:F542 .byte 0x13 +ROM:F543 .byte 0x90 +ROM:F544 .byte 0xE5 +ROM:F545 .byte 0xDD +ROM:F546 .byte 0xE0 +ROM:F547 .byte 0xF8 +ROM:F548 .byte 0xA3 +ROM:F549 .byte 0xE0 +ROM:F54A .byte 0xF9 +ROM:F54B .byte 0xA3 +ROM:F54C .byte 0xE0 +ROM:F54D .byte 0xFA +ROM:F54E .byte 0xA3 +ROM:F54F .byte 0xE0 +ROM:F550 .byte 0xFB +ROM:F551 .byte 0x90 +ROM:F552 .byte 0xE5 +ROM:F553 .byte 0xEE +ROM:F554 .byte 0xE0 +ROM:F555 .byte 0xFE +ROM:F556 .byte 0xA3 +ROM:F557 .byte 0xE0 +ROM:F558 .byte 0xFF +ROM:F559 .byte 0xE4 +ROM:F55A .byte 0xFC +ROM:F55B .byte 0xFD +ROM:F55C .byte 0xEB +ROM:F55D .byte 0x2F ; / +ROM:F55E .byte 0xFF +ROM:F55F .byte 0xEA +ROM:F560 .byte 0x3E ; > +ROM:F561 .byte 0xFE +ROM:F562 .byte 0xED +ROM:F563 .byte 0x39 ; 9 +ROM:F564 .byte 0xFD +ROM:F565 .byte 0xEC +ROM:F566 .byte 0x38 ; 8 +ROM:F567 .byte 0xFC +ROM:F568 .byte 0x90 +ROM:F569 .byte 0xE5 +ROM:F56A .byte 0xDD +ROM:F56B .byte 0x12 +ROM:F56C .byte 0xE9 +ROM:F56D .byte 0x78 ; x +ROM:F56E .byte 0x90 +ROM:F56F .byte 0xE5 +ROM:F570 .byte 0xEA +ROM:F571 .byte 0xE0 +ROM:F572 .byte 0xF8 +ROM:F573 .byte 0xA3 +ROM:F574 .byte 0xE0 +ROM:F575 .byte 0xF9 +ROM:F576 .byte 0xA3 +ROM:F577 .byte 0xE0 +ROM:F578 .byte 0xFA +ROM:F579 .byte 0xA3 +ROM:F57A .byte 0xE0 +ROM:F57B .byte 0xFB +ROM:F57C .byte 0xA3 +ROM:F57D .byte 0xE0 +ROM:F57E .byte 0xFE +ROM:F57F .byte 0xA3 +ROM:F580 .byte 0xE0 +ROM:F581 .byte 0xFF +ROM:F582 .byte 0xE4 +ROM:F583 .byte 0xFC +ROM:F584 .byte 0xFD +ROM:F585 .byte 0xEB +ROM:F586 .byte 0x2F ; / +ROM:F587 .byte 0xFF +ROM:F588 .byte 0xEA +ROM:F589 .byte 0x3E ; > +ROM:F58A .byte 0xFE +ROM:F58B .byte 0xED +ROM:F58C .byte 0x39 ; 9 +ROM:F58D .byte 0xFD +ROM:F58E .byte 0xEC +ROM:F58F .byte 0x38 ; 8 +ROM:F590 .byte 0xFC +ROM:F591 .byte 0x90 +ROM:F592 .byte 0xE5 +ROM:F593 .byte 0xEA +ROM:F594 .byte 0x12 +ROM:F595 .byte 0xE9 +ROM:F596 .byte 0x78 ; x +ROM:F597 .byte 0x90 +ROM:F598 .byte 0xE5 +ROM:F599 .byte 0xEE +ROM:F59A .byte 0xE0 +ROM:F59B .byte 0xFE +ROM:F59C .byte 0xA3 +ROM:F59D .byte 0xE0 +ROM:F59E .byte 0xFF +ROM:F59F .byte 0xC3 +ROM:F5A0 .byte 0x90 +ROM:F5A1 .byte 0xE5 +ROM:F5A2 .byte 0xF1 +ROM:F5A3 .byte 0xE0 +ROM:F5A4 .byte 0x9F +ROM:F5A5 .byte 0xF0 +ROM:F5A6 .byte 0x90 +ROM:F5A7 .byte 0xE5 +ROM:F5A8 .byte 0xF0 +ROM:F5A9 .byte 0xE0 +ROM:F5AA .byte 0x9E +ROM:F5AB .byte 0xF0 +ROM:F5AC .byte 0xE1 +ROM:F5AD .byte 0xED +ROM:F5AE .byte 0x12 +ROM:F5AF .byte 0xED +ROM:F5B0 .byte 0xFA +ROM:F5B1 .byte 0x90 +ROM:F5B2 .byte 0xE5 +ROM:F5B3 .byte 0xDD +ROM:F5B4 .byte 0xE0 +ROM:F5B5 .byte 0xFC +ROM:F5B6 .byte 0xA3 +ROM:F5B7 .byte 0xE0 +ROM:F5B8 .byte 0xFD +ROM:F5B9 .byte 0xA3 +ROM:F5BA .byte 0xE0 +ROM:F5BB .byte 0xFE +ROM:F5BC .byte 0xA3 +ROM:F5BD .byte 0xE0 +ROM:F5BE .byte 0xFF +ROM:F5BF .byte 0xC0 +ROM:F5C0 .byte 5 +ROM:F5C1 .byte 0xC0 +ROM:F5C2 .byte 6 +ROM:F5C3 .byte 0xC0 +ROM:F5C4 .byte 7 +ROM:F5C5 .byte 0x90 +ROM:F5C6 .byte 0xE5 +ROM:F5C7 .byte 0xEA +ROM:F5C8 .byte 0xE0 +ROM:F5C9 .byte 0xA3 +ROM:F5CA .byte 0xE0 +ROM:F5CB .byte 0xFD +ROM:F5CC .byte 0xA3 +ROM:F5CD .byte 0xE0 +ROM:F5CE .byte 0xFE +ROM:F5CF .byte 0xA3 +ROM:F5D0 .byte 0xE0 +ROM:F5D1 .byte 0xFF +ROM:F5D2 .byte 0x90 +ROM:F5D3 .byte 0xE5 +ROM:F5D4 .byte 0xE1 +ROM:F5D5 .byte 0xE0 +ROM:F5D6 .byte 0xFB +ROM:F5D7 .byte 0xA3 +ROM:F5D8 .byte 0xE0 +ROM:F5D9 .byte 0xFA +ROM:F5DA .byte 0xA3 +ROM:F5DB .byte 0xE0 +ROM:F5DC .byte 0x2F ; / +ROM:F5DD .byte 0xF9 +ROM:F5DE .byte 0xEA +ROM:F5DF .byte 0x3E ; > +ROM:F5E0 .byte 0xFA +ROM:F5E1 .byte 0xEB +ROM:F5E2 .byte 0x3D ; = +ROM:F5E3 .byte 0xFB +ROM:F5E4 .byte 0x90 +ROM:F5E5 .byte 0xE5 +ROM:F5E6 .byte 0xF0 +ROM:F5E7 .byte 0xE0 +ROM:F5E8 .byte 0xFF +ROM:F5E9 .byte 0xA3 +ROM:F5EA .byte 0xE0 +ROM:F5EB .byte 0x90 +ROM:F5EC .byte 0xE6 +ROM:F5ED .byte 9 +ROM:F5EE .byte 0xCF +ROM:F5EF .byte 0xF0 +ROM:F5F0 .byte 0xA3 +ROM:F5F1 .byte 0xEF +ROM:F5F2 .byte 0xF0 +ROM:F5F3 .byte 0xD0 +ROM:F5F4 .byte 7 +ROM:F5F5 .byte 0xD0 +ROM:F5F6 .byte 6 +ROM:F5F7 .byte 0xD0 +ROM:F5F8 .byte 5 +ROM:F5F9 .byte 0x12 +ROM:F5FA .byte 0xEE +ROM:F5FB .byte 0x13 +ROM:F5FC .byte 0x90 +ROM:F5FD .byte 0xE5 +ROM:F5FE .byte 0xDD +ROM:F5FF .byte 0xE0 +ROM:F600 .byte 0xF8 +ROM:F601 .byte 0xA3 +ROM:F602 .byte 0xE0 +ROM:F603 .byte 0xF9 +ROM:F604 .byte 0xA3 +ROM:F605 .byte 0xE0 +ROM:F606 .byte 0xFA +ROM:F607 .byte 0xA3 +ROM:F608 .byte 0xE0 +ROM:F609 .byte 0xFB +ROM:F60A .byte 0x90 +ROM:F60B .byte 0xE5 +ROM:F60C .byte 0xF0 +ROM:F60D .byte 0xE0 +ROM:F60E .byte 0xFE +ROM:F60F .byte 0xA3 +ROM:F610 .byte 0xE0 +ROM:F611 .byte 0xFF +ROM:F612 .byte 0xE4 +ROM:F613 .byte 0xFC +ROM:F614 .byte 0xFD +ROM:F615 .byte 0xEB +ROM:F616 .byte 0x2F ; / +ROM:F617 .byte 0xFF +ROM:F618 .byte 0xEA +ROM:F619 .byte 0x3E ; > +ROM:F61A .byte 0xFE +ROM:F61B .byte 0xED +ROM:F61C .byte 0x39 ; 9 +ROM:F61D .byte 0xFD +ROM:F61E .byte 0xEC +ROM:F61F .byte 0x38 ; 8 +ROM:F620 .byte 0xFC +ROM:F621 .byte 0x90 +ROM:F622 .byte 0xE5 +ROM:F623 .byte 0xDD +ROM:F624 .byte 0x12 +ROM:F625 .byte 0xE9 +ROM:F626 .byte 0x78 ; x +ROM:F627 .byte 0x90 +ROM:F628 .byte 0xE5 +ROM:F629 .byte 0xEA +ROM:F62A .byte 0xE0 +ROM:F62B .byte 0xF8 +ROM:F62C .byte 0xA3 +ROM:F62D .byte 0xE0 +ROM:F62E .byte 0xF9 +ROM:F62F .byte 0xA3 +ROM:F630 .byte 0xE0 +ROM:F631 .byte 0xFA +ROM:F632 .byte 0xA3 +ROM:F633 .byte 0xE0 +ROM:F634 .byte 0xFB +ROM:F635 .byte 0x90 +ROM:F636 .byte 0xE5 +ROM:F637 .byte 0xF0 +ROM:F638 .byte 0xE0 +ROM:F639 .byte 0xFE +ROM:F63A .byte 0xA3 +ROM:F63B .byte 0xE0 +ROM:F63C .byte 0xFF +ROM:F63D .byte 0xE4 +ROM:F63E .byte 0xFC +ROM:F63F .byte 0xFD +ROM:F640 .byte 0xEB +ROM:F641 .byte 0x2F ; / +ROM:F642 .byte 0xFF +ROM:F643 .byte 0xEA +ROM:F644 .byte 0x3E ; > +ROM:F645 .byte 0xFE +ROM:F646 .byte 0xED +ROM:F647 .byte 0x39 ; 9 +ROM:F648 .byte 0xFD +ROM:F649 .byte 0xEC +ROM:F64A .byte 0x38 ; 8 +ROM:F64B .byte 0xFC +ROM:F64C .byte 0x90 +ROM:F64D .byte 0xE5 +ROM:F64E .byte 0xEA +ROM:F64F .byte 0x12 +ROM:F650 .byte 0xE9 +ROM:F651 .byte 0x78 ; x +ROM:F652 .byte 0x90 +ROM:F653 .byte 0xE5 +ROM:F654 .byte 0xF0 +ROM:F655 .byte 0xE0 +ROM:F656 .byte 0xFE +ROM:F657 .byte 0xA3 +ROM:F658 .byte 0xE0 +ROM:F659 .byte 0xFF +ROM:F65A .byte 0xC3 +ROM:F65B .byte 0x9F +ROM:F65C .byte 0xF0 +ROM:F65D .byte 0x90 +ROM:F65E .byte 0xE5 +ROM:F65F .byte 0xF0 +ROM:F660 .byte 0xE0 +ROM:F661 .byte 0x9E +ROM:F662 .byte 0xF0 +ROM:F663 .byte 0xE1 +ROM:F664 .byte 0xED +ROM:F665 .byte 0xD3 +ROM:F666 .byte 0x90 +ROM:F667 .byte 0xE5 +ROM:F668 .byte 0xF1 +ROM:F669 .byte 0xE0 +ROM:F66A .byte 0x94 +ROM:F66B .byte 0 +ROM:F66C .byte 0x90 +ROM:F66D .byte 0xE5 +ROM:F66E .byte 0xF0 +ROM:F66F .byte 0xE0 +ROM:F670 .byte 0x94 +ROM:F671 .byte 1 +ROM:F672 .byte 0x50 ; P +ROM:F673 .byte 2 +ROM:F674 .byte 0xE1 +ROM:F675 .byte 0x38 ; 8 +ROM:F676 .byte 0x90 +ROM:F677 .byte 0xE5 +ROM:F678 .byte 0xEE +ROM:F679 .byte 0x74 ; t +ROM:F67A .byte 1 +ROM:F67B .byte 0xF0 +ROM:F67C .byte 0xA3 +ROM:F67D .byte 0xE4 +ROM:F67E .byte 0xF0 +ROM:F67F .byte 0x12 +ROM:F680 .byte 0xED +ROM:F681 .byte 0xFA +ROM:F682 .byte 0x90 +ROM:F683 .byte 0xE5 +ROM:F684 .byte 0xDD +ROM:F685 .byte 0xE0 +ROM:F686 .byte 0xFC +ROM:F687 .byte 0xA3 +ROM:F688 .byte 0xE0 +ROM:F689 .byte 0xFD +ROM:F68A .byte 0xA3 +ROM:F68B .byte 0xE0 +ROM:F68C .byte 0xFE +ROM:F68D .byte 0xA3 +ROM:F68E .byte 0xE0 +ROM:F68F .byte 0xFF +ROM:F690 .byte 0xC0 +ROM:F691 .byte 5 +ROM:F692 .byte 0xC0 +ROM:F693 .byte 6 +ROM:F694 .byte 0xC0 +ROM:F695 .byte 7 +ROM:F696 .byte 0x90 +ROM:F697 .byte 0xE5 +ROM:F698 .byte 0xEA +ROM:F699 .byte 0xE0 +ROM:F69A .byte 0xA3 +ROM:F69B .byte 0xE0 +ROM:F69C .byte 0xFD +ROM:F69D .byte 0xA3 +ROM:F69E .byte 0xE0 +ROM:F69F .byte 0xFE +ROM:F6A0 .byte 0xA3 +ROM:F6A1 .byte 0xE0 +ROM:F6A2 .byte 0xFF +ROM:F6A3 .byte 0x90 +ROM:F6A4 .byte 0xE5 +ROM:F6A5 .byte 0xE1 +ROM:F6A6 .byte 0xE0 +ROM:F6A7 .byte 0xFB +ROM:F6A8 .byte 0xA3 +ROM:F6A9 .byte 0xE0 +ROM:F6AA .byte 0xFA +ROM:F6AB .byte 0xA3 +ROM:F6AC .byte 0xE0 +ROM:F6AD .byte 0x2F ; / +ROM:F6AE .byte 0xF9 +ROM:F6AF .byte 0xEA +ROM:F6B0 .byte 0x3E ; > +ROM:F6B1 .byte 0xFA +ROM:F6B2 .byte 0xEB +ROM:F6B3 .byte 0x3D ; = +ROM:F6B4 .byte 0xFB +ROM:F6B5 .byte 0x90 +ROM:F6B6 .byte 0xE5 +ROM:F6B7 .byte 0xEE +ROM:F6B8 .byte 0xE0 +ROM:F6B9 .byte 0xFF +ROM:F6BA .byte 0xA3 +ROM:F6BB .byte 0xE0 +ROM:F6BC .byte 0x90 +ROM:F6BD .byte 0xE6 +ROM:F6BE .byte 9 +ROM:F6BF .byte 0xCF +ROM:F6C0 .byte 0xF0 +ROM:F6C1 .byte 0xA3 +ROM:F6C2 .byte 0xEF +ROM:F6C3 .byte 0xF0 +ROM:F6C4 .byte 0xD0 +ROM:F6C5 .byte 7 +ROM:F6C6 .byte 0xD0 +ROM:F6C7 .byte 6 +ROM:F6C8 .byte 0xD0 +ROM:F6C9 .byte 5 +ROM:F6CA .byte 0x12 +ROM:F6CB .byte 0xEE +ROM:F6CC .byte 0x13 +ROM:F6CD .byte 0x90 +ROM:F6CE .byte 0xE5 +ROM:F6CF .byte 0xDD +ROM:F6D0 .byte 0xE0 +ROM:F6D1 .byte 0xF8 +ROM:F6D2 .byte 0xA3 +ROM:F6D3 .byte 0xE0 +ROM:F6D4 .byte 0xF9 +ROM:F6D5 .byte 0xA3 +ROM:F6D6 .byte 0xE0 +ROM:F6D7 .byte 0xFA +ROM:F6D8 .byte 0xA3 +ROM:F6D9 .byte 0xE0 +ROM:F6DA .byte 0xFB +ROM:F6DB .byte 0x90 +ROM:F6DC .byte 0xE5 +ROM:F6DD .byte 0xEE +ROM:F6DE .byte 0xE0 +ROM:F6DF .byte 0xFE +ROM:F6E0 .byte 0xA3 +ROM:F6E1 .byte 0xE0 +ROM:F6E2 .byte 0xFF +ROM:F6E3 .byte 0xE4 +ROM:F6E4 .byte 0xFC +ROM:F6E5 .byte 0xFD +ROM:F6E6 .byte 0xEB +ROM:F6E7 .byte 0x2F ; / +ROM:F6E8 .byte 0xFF +ROM:F6E9 .byte 0xEA +ROM:F6EA .byte 0x3E ; > +ROM:F6EB .byte 0xFE +ROM:F6EC .byte 0xED +ROM:F6ED .byte 0x39 ; 9 +ROM:F6EE .byte 0xFD +ROM:F6EF .byte 0xEC +ROM:F6F0 .byte 0x38 ; 8 +ROM:F6F1 .byte 0xFC +ROM:F6F2 .byte 0x90 +ROM:F6F3 .byte 0xE5 +ROM:F6F4 .byte 0xDD +ROM:F6F5 .byte 0x12 +ROM:F6F6 .byte 0xE9 +ROM:F6F7 .byte 0x78 ; x +ROM:F6F8 .byte 0x90 +ROM:F6F9 .byte 0xE5 +ROM:F6FA .byte 0xEA +ROM:F6FB .byte 0xE0 +ROM:F6FC .byte 0xF8 +ROM:F6FD .byte 0xA3 +ROM:F6FE .byte 0xE0 +ROM:F6FF .byte 0xF9 +ROM:F700 .byte 0xA3 +ROM:F701 .byte 0xE0 +ROM:F702 .byte 0xFA +ROM:F703 .byte 0xA3 +ROM:F704 .byte 0xE0 +ROM:F705 .byte 0xFB +ROM:F706 .byte 0xA3 +ROM:F707 .byte 0xE0 +ROM:F708 .byte 0xFE +ROM:F709 .byte 0xA3 +ROM:F70A .byte 0xE0 +ROM:F70B .byte 0xFF +ROM:F70C .byte 0xE4 +ROM:F70D .byte 0xFC +ROM:F70E .byte 0xFD +ROM:F70F .byte 0xEB +ROM:F710 .byte 0x2F ; / +ROM:F711 .byte 0xFF +ROM:F712 .byte 0xEA +ROM:F713 .byte 0x3E ; > +ROM:F714 .byte 0xFE +ROM:F715 .byte 0xED +ROM:F716 .byte 0x39 ; 9 +ROM:F717 .byte 0xFD +ROM:F718 .byte 0xEC +ROM:F719 .byte 0x38 ; 8 +ROM:F71A .byte 0xFC +ROM:F71B .byte 0x90 +ROM:F71C .byte 0xE5 +ROM:F71D .byte 0xEA +ROM:F71E .byte 0x12 +ROM:F71F .byte 0xE9 +ROM:F720 .byte 0x78 ; x +ROM:F721 .byte 0x90 +ROM:F722 .byte 0xE5 +ROM:F723 .byte 0xEE +ROM:F724 .byte 0xE0 +ROM:F725 .byte 0xFE +ROM:F726 .byte 0xA3 +ROM:F727 .byte 0xE0 +ROM:F728 .byte 0xFF +ROM:F729 .byte 0xC3 +ROM:F72A .byte 0x90 +ROM:F72B .byte 0xE5 +ROM:F72C .byte 0xF1 +ROM:F72D .byte 0xE0 +ROM:F72E .byte 0x9F +ROM:F72F .byte 0xF0 +ROM:F730 .byte 0x90 +ROM:F731 .byte 0xE5 +ROM:F732 .byte 0xF0 +ROM:F733 .byte 0xE0 +ROM:F734 .byte 0x9E +ROM:F735 .byte 0xF0 +ROM:F736 .byte 0xE1 +ROM:F737 .byte 0xED +ROM:F738 .byte 0x12 +ROM:F739 .byte 0xED +ROM:F73A .byte 0xFA +ROM:F73B .byte 0x90 +ROM:F73C .byte 0xE5 +ROM:F73D .byte 0xDD +ROM:F73E .byte 0xE0 +ROM:F73F .byte 0xFC +ROM:F740 .byte 0xA3 +ROM:F741 .byte 0xE0 +ROM:F742 .byte 0xFD +ROM:F743 .byte 0xA3 +ROM:F744 .byte 0xE0 +ROM:F745 .byte 0xFE +ROM:F746 .byte 0xA3 +ROM:F747 .byte 0xE0 +ROM:F748 .byte 0xFF +ROM:F749 .byte 0xC0 +ROM:F74A .byte 5 +ROM:F74B .byte 0xC0 +ROM:F74C .byte 6 +ROM:F74D .byte 0xC0 +ROM:F74E .byte 7 +ROM:F74F .byte 0x90 +ROM:F750 .byte 0xE5 +ROM:F751 .byte 0xEA +ROM:F752 .byte 0xE0 +ROM:F753 .byte 0xA3 +ROM:F754 .byte 0xE0 +ROM:F755 .byte 0xFD +ROM:F756 .byte 0xA3 +ROM:F757 .byte 0xE0 +ROM:F758 .byte 0xFE +ROM:F759 .byte 0xA3 +ROM:F75A .byte 0xE0 +ROM:F75B .byte 0xFF +ROM:F75C .byte 0x90 +ROM:F75D .byte 0xE5 +ROM:F75E .byte 0xE1 +ROM:F75F .byte 0xE0 +ROM:F760 .byte 0xFB +ROM:F761 .byte 0xA3 +ROM:F762 .byte 0xE0 +ROM:F763 .byte 0xFA +ROM:F764 .byte 0xA3 +ROM:F765 .byte 0xE0 +ROM:F766 .byte 0x2F ; / +ROM:F767 .byte 0xF9 +ROM:F768 .byte 0xEA +ROM:F769 .byte 0x3E ; > +ROM:F76A .byte 0xFA +ROM:F76B .byte 0xEB +ROM:F76C .byte 0x3D ; = +ROM:F76D .byte 0xFB +ROM:F76E .byte 0x90 +ROM:F76F .byte 0xE5 +ROM:F770 .byte 0xF0 +ROM:F771 .byte 0xE0 +ROM:F772 .byte 0xFF +ROM:F773 .byte 0xA3 +ROM:F774 .byte 0xE0 +ROM:F775 .byte 0x90 +ROM:F776 .byte 0xE6 +ROM:F777 .byte 9 +ROM:F778 .byte 0xCF +ROM:F779 .byte 0xF0 +ROM:F77A .byte 0xA3 +ROM:F77B .byte 0xEF +ROM:F77C .byte 0xF0 +ROM:F77D .byte 0xD0 +ROM:F77E .byte 7 +ROM:F77F .byte 0xD0 +ROM:F780 .byte 6 +ROM:F781 .byte 0xD0 +ROM:F782 .byte 5 +ROM:F783 .byte 0x12 +ROM:F784 .byte 0xEE +ROM:F785 .byte 0x13 +ROM:F786 .byte 0x90 +ROM:F787 .byte 0xE5 +ROM:F788 .byte 0xDD +ROM:F789 .byte 0xE0 +ROM:F78A .byte 0xF8 +ROM:F78B .byte 0xA3 +ROM:F78C .byte 0xE0 +ROM:F78D .byte 0xF9 +ROM:F78E .byte 0xA3 +ROM:F78F .byte 0xE0 +ROM:F790 .byte 0xFA +ROM:F791 .byte 0xA3 +ROM:F792 .byte 0xE0 +ROM:F793 .byte 0xFB +ROM:F794 .byte 0x90 +ROM:F795 .byte 0xE5 +ROM:F796 .byte 0xF0 +ROM:F797 .byte 0xE0 +ROM:F798 .byte 0xFE +ROM:F799 .byte 0xA3 +ROM:F79A .byte 0xE0 +ROM:F79B .byte 0xFF +ROM:F79C .byte 0xE4 +ROM:F79D .byte 0xFC +ROM:F79E .byte 0xFD +ROM:F79F .byte 0xEB +ROM:F7A0 .byte 0x2F ; / +ROM:F7A1 .byte 0xFF +ROM:F7A2 .byte 0xEA +ROM:F7A3 .byte 0x3E ; > +ROM:F7A4 .byte 0xFE +ROM:F7A5 .byte 0xED +ROM:F7A6 .byte 0x39 ; 9 +ROM:F7A7 .byte 0xFD +ROM:F7A8 .byte 0xEC +ROM:F7A9 .byte 0x38 ; 8 +ROM:F7AA .byte 0xFC +ROM:F7AB .byte 0x90 +ROM:F7AC .byte 0xE5 +ROM:F7AD .byte 0xDD +ROM:F7AE .byte 0x12 +ROM:F7AF .byte 0xE9 +ROM:F7B0 .byte 0x78 ; x +ROM:F7B1 .byte 0x90 +ROM:F7B2 .byte 0xE5 +ROM:F7B3 .byte 0xEA +ROM:F7B4 .byte 0xE0 +ROM:F7B5 .byte 0xF8 +ROM:F7B6 .byte 0xA3 +ROM:F7B7 .byte 0xE0 +ROM:F7B8 .byte 0xF9 +ROM:F7B9 .byte 0xA3 +ROM:F7BA .byte 0xE0 +ROM:F7BB .byte 0xFA +ROM:F7BC .byte 0xA3 +ROM:F7BD .byte 0xE0 +ROM:F7BE .byte 0xFB +ROM:F7BF .byte 0x90 +ROM:F7C0 .byte 0xE5 +ROM:F7C1 .byte 0xF0 +ROM:F7C2 .byte 0xE0 +ROM:F7C3 .byte 0xFE +ROM:F7C4 .byte 0xA3 +ROM:F7C5 .byte 0xE0 +ROM:F7C6 .byte 0xFF +ROM:F7C7 .byte 0xE4 +ROM:F7C8 .byte 0xFC +ROM:F7C9 .byte 0xFD +ROM:F7CA .byte 0xEB +ROM:F7CB .byte 0x2F ; / +ROM:F7CC .byte 0xFF +ROM:F7CD .byte 0xEA +ROM:F7CE .byte 0x3E ; > +ROM:F7CF .byte 0xFE +ROM:F7D0 .byte 0xED +ROM:F7D1 .byte 0x39 ; 9 +ROM:F7D2 .byte 0xFD +ROM:F7D3 .byte 0xEC +ROM:F7D4 .byte 0x38 ; 8 +ROM:F7D5 .byte 0xFC +ROM:F7D6 .byte 0x90 +ROM:F7D7 .byte 0xE5 +ROM:F7D8 .byte 0xEA +ROM:F7D9 .byte 0x12 +ROM:F7DA .byte 0xE9 +ROM:F7DB .byte 0x78 ; x +ROM:F7DC .byte 0x90 +ROM:F7DD .byte 0xE5 +ROM:F7DE .byte 0xF0 +ROM:F7DF .byte 0xE0 +ROM:F7E0 .byte 0xFE +ROM:F7E1 .byte 0xA3 +ROM:F7E2 .byte 0xE0 +ROM:F7E3 .byte 0xFF +ROM:F7E4 .byte 0xC3 +ROM:F7E5 .byte 0x9F +ROM:F7E6 .byte 0xF0 +ROM:F7E7 .byte 0x90 +ROM:F7E8 .byte 0xE5 +ROM:F7E9 .byte 0xF0 +ROM:F7EA .byte 0xE0 +ROM:F7EB .byte 0x9E +ROM:F7EC .byte 0xF0 +ROM:F7ED .byte 0x12 +ROM:F7EE .byte 0xEF +ROM:F7EF .byte 0x77 ; w +ROM:F7F0 .byte 0xEF +ROM:F7F1 .byte 0x30 ; 0 +ROM:F7F2 .byte 0xE0 +ROM:F7F3 .byte 5 +ROM:F7F4 .byte 0x12 +ROM:F7F5 .byte 0xEF +ROM:F7F6 .byte 0xCB +ROM:F7F7 .byte 0x80 +ROM:F7F8 .byte 0xF4 +ROM:F7F9 .byte 0x90 +ROM:F7FA .byte 0xE5 +ROM:F7FB .byte 0xF0 +ROM:F7FC .byte 0xE0 +ROM:F7FD .byte 0x70 ; p +ROM:F7FE .byte 2 +ROM:F7FF .byte 0xA3 +ROM:F800 .byte 0xE0 +ROM:F801 .byte 0x60 ; ` +ROM:F802 .byte 3 +ROM:F803 .byte 2 +ROM:F804 .byte 0xF4 +ROM:F805 .byte 0xAE +ROM:F806 .byte 0x22 ; " +ROM:F807 .byte 2 +ROM:F808 .byte 0xF4 +ROM:F809 .byte 0xAE +ROM:F80A .byte 0x22 ; " +ROM:F80B .byte 0x43 ; C +ROM:F80C .byte 0xAD +ROM:F80D .byte 1 +ROM:F80E .byte 0x43 ; C +ROM:F80F .byte 0xAD +ROM:F810 .byte 2 +ROM:F811 .byte 0x43 ; C +ROM:F812 .byte 0xAD +ROM:F813 .byte 4 +ROM:F814 .byte 0x53 ; S +ROM:F815 .byte 0xAF +ROM:F816 .byte 0xFD +ROM:F817 .byte 0x53 ; S +ROM:F818 .byte 0xBB +ROM:F819 .byte 0xFD +ROM:F81A .byte 0xD2 +ROM:F81B .byte 0xA1 +ROM:F81C .byte 0x43 ; C +ROM:F81D .byte 0xBC +ROM:F81E .byte 7 +ROM:F81F .byte 0x43 ; C +ROM:F820 .byte 0xB7 +ROM:F821 .byte 8 +ROM:F822 .byte 0x22 ; " +ROM:F823 .byte 0xAE +ROM:F824 .byte 0xFF +ROM:F825 .byte 0x75 ; u +ROM:F826 .byte 0xFF +ROM:F827 .byte 4 +ROM:F828 .byte 0x75 ; u +ROM:F829 .byte 0xED +ROM:F82A .byte 0x81 +ROM:F82B .byte 0x8F +ROM:F82C .byte 0xEE +ROM:F82D .byte 0x75 ; u +ROM:F82E .byte 0xEC +ROM:F82F .byte 0xA0 +ROM:F830 .byte 0x75 ; u +ROM:F831 .byte 0xA +ROM:F832 .byte 0xD0 +ROM:F833 Radio_Channel: .byte 0xAF ; DATA XREF: Radio_Something_Setup_ROM_4B0C+41↑o +ROM:F834 .byte 0xA +ROM:F835 .byte 0x15 +ROM:F836 .byte 0xA +ROM:F837 .byte 0xEF +ROM:F838 .byte 0x60 ; ` +ROM:F839 .byte 9 +ROM:F83A .byte 0xE5 +ROM:F83B .byte 0xEB +ROM:F83C .byte 0x20 +ROM:F83D .byte 0xE3 +ROM:F83E .byte 0xF4 +ROM:F83F .byte 0x80 +ROM:F840 .byte 2 +ROM:F841 .byte 0x80 +ROM:F842 .byte 0xF0 +ROM:F843 .byte 0x43 ; C +ROM:F844 .byte 0xEB +ROM:F845 .byte 8 +ROM:F846 .byte 0x43 ; C +ROM:F847 .byte 0xEB +ROM:F848 .byte 8 +ROM:F849 .byte 0xAF +ROM:F84A .byte 0xEF +ROM:F84B .byte 0x75 ; u +ROM:F84C .byte 0xED +ROM:F84D .byte 0x80 +ROM:F84E .byte 0x8E +ROM:F84F .byte 0xFF +ROM:F850 .byte 0x22 ; " +ROM:F851 .byte 0x90 +ROM:F852 .byte 0xE6 +ROM:F853 .byte 0x1F +ROM:F854 .byte 0xE5 +ROM:F855 .byte 0xFF +ROM:F856 .byte 0xF0 +ROM:F857 .byte 0x75 ; u +ROM:F858 .byte 0xFF +ROM:F859 .byte 4 +ROM:F85A .byte 0x75 ; u +ROM:F85B .byte 0xED +ROM:F85C .byte 0x81 +ROM:F85D .byte 0xAE +ROM:F85E .byte 2 +ROM:F85F .byte 0xAF +ROM:F860 .byte 1 +ROM:F861 .byte 0x8E +ROM:F862 .byte 8 +ROM:F863 .byte 0x8F +ROM:F864 .byte 9 +ROM:F865 .byte 0xED +ROM:F866 .byte 0x1D +ROM:F867 .byte 0xAE +ROM:F868 .byte 4 +ROM:F869 .byte 0x70 ; p +ROM:F86A .byte 1 +ROM:F86B .byte 0x1C +ROM:F86C .byte 0x4E ; N +ROM:F86D .byte 0x60 ; ` +ROM:F86E .byte 0x2C ; , +ROM:F86F .byte 0x85 +ROM:F870 .byte 9 +ROM:F871 .byte 0x82 +ROM:F872 .byte 0x85 +ROM:F873 .byte 8 +ROM:F874 .byte 0x83 +ROM:F875 .byte 0xE0 +ROM:F876 .byte 0xF5 +ROM:F877 .byte 0xEE +ROM:F878 .byte 0x75 ; u +ROM:F879 .byte 0xEC +ROM:F87A .byte 0xA0 +ROM:F87B .byte 5 +ROM:F87C .byte 9 +ROM:F87D .byte 0xE5 +ROM:F87E .byte 9 +ROM:F87F .byte 0x70 ; p +ROM:F880 .byte 2 +ROM:F881 .byte 5 +ROM:F882 .byte 8 +ROM:F883 .byte 0x75 ; u +ROM:F884 .byte 0xA +ROM:F885 .byte 0xD0 +ROM:F886 .byte 0xAF +ROM:F887 .byte 0xA +ROM:F888 .byte 0x15 +ROM:F889 .byte 0xA +ROM:F88A .byte 0xEF +ROM:F88B .byte 0x60 ; ` +ROM:F88C .byte 9 +ROM:F88D .byte 0xE5 +ROM:F88E .byte 0xEB +ROM:F88F .byte 0x20 +ROM:F890 .byte 0xE3 +ROM:F891 .byte 0xF4 +ROM:F892 .byte 0x80 +ROM:F893 .byte 2 +ROM:F894 .byte 0x80 +ROM:F895 .byte 0xF0 +ROM:F896 .byte 0x43 ; C +ROM:F897 .byte 0xEB +ROM:F898 .byte 8 +ROM:F899 .byte 0x80 +ROM:F89A .byte 0xCA +ROM:F89B .byte 0x85 +ROM:F89C .byte 0xEF +ROM:F89D .byte 0xA +ROM:F89E .byte 0x75 ; u +ROM:F89F .byte 0xED +ROM:F8A0 .byte 0x80 +ROM:F8A1 .byte 0x90 +ROM:F8A2 .byte 0xE6 +ROM:F8A3 .byte 0x1F +ROM:F8A4 .byte 0xE0 +ROM:F8A5 .byte 0xF5 +ROM:F8A6 .byte 0xFF +ROM:F8A7 .byte 0x22 ; " +ROM:F8A8 .byte 0xAF +ROM:F8A9 .byte 0xFF +ROM:F8AA .byte 0x75 ; u +ROM:F8AB .byte 0xFF +ROM:F8AC .byte 4 +ROM:F8AD .byte 0x43 ; C +ROM:F8AE .byte 0xBF +ROM:F8AF .byte 0x80 +ROM:F8B0 .byte 0xE4 +ROM:F8B1 .byte 0xF5 +ROM:F8B2 .byte 0xBA +ROM:F8B3 .byte 0xF5 +ROM:F8B4 .byte 0xBB +ROM:F8B5 .byte 0x75 ; u +ROM:F8B6 .byte 0xBC +ROM:F8B7 .byte 0xC8 +ROM:F8B8 .byte 0x75 ; u +ROM:F8B9 .byte 0xBD +ROM:F8BA .byte 0xFE +ROM:F8BB .byte 0x75 ; u +ROM:F8BC .byte 0xBE +ROM:F8BD .byte 0xFF +ROM:F8BE .byte 0x75 ; u +ROM:F8BF .byte 0xBA +ROM:F8C0 .byte 1 +ROM:F8C1 .byte 0x8F +ROM:F8C2 .byte 0xFF +ROM:F8C3 .byte 0x22 ; " +ROM:F8C4 .byte 0xFF +ROM:F8C5 .byte 0xFF +ROM:F8C6 .byte 0xFF +ROM:F8C7 .byte 0xFF +ROM:F8C8 .byte 0xFF +ROM:F8C9 .byte 0xFF +ROM:F8CA .byte 0xFF +ROM:F8CB .byte 0xFF +ROM:F8CC .byte 0xFF +ROM:F8CD .byte 0xFF +ROM:F8CE .byte 0xFF +ROM:F8CF .byte 0xFF +ROM:F8D0 .byte 0xFF +ROM:F8D1 .byte 0xFF +ROM:F8D2 .byte 0xFF +ROM:F8D3 .byte 0xFF +ROM:F8D4 .byte 0xFF +ROM:F8D5 .byte 0xFF +ROM:F8D6 .byte 0xFF +ROM:F8D7 .byte 0xFF +ROM:F8D8 .byte 0xFF +ROM:F8D9 .byte 0xFF +ROM:F8DA .byte 0xFF +ROM:F8DB .byte 0xFF +ROM:F8DC .byte 0xFF +ROM:F8DD .byte 0xFF +ROM:F8DE .byte 0xFF +ROM:F8DF .byte 0xFF +ROM:F8E0 .byte 0xFF +ROM:F8E1 .byte 0xFF +ROM:F8E2 .byte 0xFF +ROM:F8E3 .byte 0xFF +ROM:F8E4 .byte 0xFF +ROM:F8E5 .byte 0xFF +ROM:F8E6 .byte 0xFF +ROM:F8E7 .byte 0xFF +ROM:F8E8 .byte 0xFF +ROM:F8E9 .byte 0xFF +ROM:F8EA .byte 0xFF +ROM:F8EB .byte 0xFF +ROM:F8EC .byte 0xFF +ROM:F8ED .byte 0xFF +ROM:F8EE .byte 0xFF +ROM:F8EF .byte 0xFF +ROM:F8F0 .byte 0xFF +ROM:F8F1 .byte 0xFF +ROM:F8F2 .byte 0xFF +ROM:F8F3 .byte 0xFF +ROM:F8F4 .byte 0xFF +ROM:F8F5 .byte 0xFF +ROM:F8F6 .byte 0xFF +ROM:F8F7 .byte 0xFF +ROM:F8F8 .byte 0xFF +ROM:F8F9 .byte 0xFF +ROM:F8FA .byte 0xFF +ROM:F8FB .byte 0xFF +ROM:F8FC .byte 0xFF +ROM:F8FD .byte 0xFF +ROM:F8FE .byte 0xFF +ROM:F8FF .byte 0xFF +ROM:F900 .byte 0xFF +ROM:F901 .byte 0xFF +ROM:F902 .byte 0xFF +ROM:F903 .byte 0xFF +ROM:F904 .byte 0xFF +ROM:F905 .byte 0xFF +ROM:F906 .byte 0xFF +ROM:F907 .byte 0xFF +ROM:F908 .byte 0xFF +ROM:F909 .byte 0xFF +ROM:F90A .byte 0xFF +ROM:F90B .byte 0xFF +ROM:F90C .byte 0xFF +ROM:F90D .byte 0xFF +ROM:F90E .byte 0xFF +ROM:F90F .byte 0xFF +ROM:F910 .byte 0xFF +ROM:F911 .byte 0xFF +ROM:F912 .byte 0xFF +ROM:F913 .byte 0xFF +ROM:F914 .byte 0xFF +ROM:F915 .byte 0xFF +ROM:F916 .byte 0xFF +ROM:F917 .byte 0xFF +ROM:F918 .byte 0xFF +ROM:F919 .byte 0xFF +ROM:F91A .byte 0xFF +ROM:F91B .byte 0xFF +ROM:F91C .byte 0xFF +ROM:F91D .byte 0xFF +ROM:F91E .byte 0xFF +ROM:F91F .byte 0xFF +ROM:F920 .byte 0xFF +ROM:F921 .byte 0xFF +ROM:F922 .byte 0xFF +ROM:F923 .byte 0xFF +ROM:F924 .byte 0xFF +ROM:F925 .byte 0xFF +ROM:F926 .byte 0xFF +ROM:F927 .byte 0xFF +ROM:F928 .byte 0xFF +ROM:F929 .byte 0xFF +ROM:F92A .byte 0xFF +ROM:F92B .byte 0xFF +ROM:F92C .byte 0xFF +ROM:F92D .byte 0xFF +ROM:F92E .byte 0xFF +ROM:F92F .byte 0xFF +ROM:F930 .byte 0xFF +ROM:F931 .byte 0xFF +ROM:F932 .byte 0xFF +ROM:F933 .byte 0xFF +ROM:F934 .byte 0xFF +ROM:F935 .byte 0xFF +ROM:F936 .byte 0xFF +ROM:F937 .byte 0xFF +ROM:F938 .byte 0xFF +ROM:F939 .byte 0xFF +ROM:F93A .byte 0xFF +ROM:F93B .byte 0xFF +ROM:F93C .byte 0xFF +ROM:F93D .byte 0xFF +ROM:F93E .byte 0xFF +ROM:F93F .byte 0xFF +ROM:F940 .byte 0xFF +ROM:F941 .byte 0xFF +ROM:F942 .byte 0xFF +ROM:F943 .byte 0xFF +ROM:F944 .byte 0xFF +ROM:F945 .byte 0xFF +ROM:F946 .byte 0xFF +ROM:F947 .byte 0xFF +ROM:F948 .byte 0xFF +ROM:F949 .byte 0xFF +ROM:F94A .byte 0xFF +ROM:F94B .byte 0xFF +ROM:F94C .byte 0xFF +ROM:F94D .byte 0xFF +ROM:F94E .byte 0xFF +ROM:F94F .byte 0xFF +ROM:F950 .byte 0xFF +ROM:F951 .byte 0xFF +ROM:F952 .byte 0xFF +ROM:F953 .byte 0xFF +ROM:F954 .byte 0xFF +ROM:F955 .byte 0xFF +ROM:F956 .byte 0xFF +ROM:F957 .byte 0xFF +ROM:F958 .byte 0xFF +ROM:F959 .byte 0xFF +ROM:F95A .byte 0xFF +ROM:F95B .byte 0xFF +ROM:F95C .byte 0xFF +ROM:F95D .byte 0xFF +ROM:F95E .byte 0xFF +ROM:F95F .byte 0xFF +ROM:F960 .byte 0xFF +ROM:F961 .byte 0xFF +ROM:F962 .byte 0xFF +ROM:F963 .byte 0xFF +ROM:F964 .byte 0xFF +ROM:F965 .byte 0xFF +ROM:F966 .byte 0xFF +ROM:F967 .byte 0xFF +ROM:F968 .byte 0xFF +ROM:F969 .byte 0xFF +ROM:F96A .byte 0xFF +ROM:F96B .byte 0xFF +ROM:F96C .byte 0xFF +ROM:F96D .byte 0xFF +ROM:F96E .byte 0xFF +ROM:F96F .byte 0xFF +ROM:F970 .byte 0xFF +ROM:F971 .byte 0xFF +ROM:F972 .byte 0xFF +ROM:F973 .byte 0xFF +ROM:F974 .byte 0xFF +ROM:F975 .byte 0xFF +ROM:F976 .byte 0xFF +ROM:F977 .byte 0xFF +ROM:F978 .byte 0xFF +ROM:F979 .byte 0xFF +ROM:F97A .byte 0xFF +ROM:F97B .byte 0xFF +ROM:F97C .byte 0xFF +ROM:F97D .byte 0xFF +ROM:F97E .byte 0xFF +ROM:F97F .byte 0xFF +ROM:F980 .byte 0xFF +ROM:F981 .byte 0xFF +ROM:F982 .byte 0xFF +ROM:F983 .byte 0xFF +ROM:F984 .byte 0xFF +ROM:F985 .byte 0xFF +ROM:F986 .byte 0xFF +ROM:F987 .byte 0xFF +ROM:F988 .byte 0xFF +ROM:F989 .byte 0xFF +ROM:F98A .byte 0xFF +ROM:F98B .byte 0xFF +ROM:F98C .byte 0xFF +ROM:F98D .byte 0xFF +ROM:F98E .byte 0xFF +ROM:F98F .byte 0xFF +ROM:F990 .byte 0xFF +ROM:F991 .byte 0xFF +ROM:F992 .byte 0xFF +ROM:F993 .byte 0xFF +ROM:F994 .byte 0xFF +ROM:F995 .byte 0xFF +ROM:F996 .byte 0xFF +ROM:F997 .byte 0xFF +ROM:F998 .byte 0xFF +ROM:F999 .byte 0xFF +ROM:F99A .byte 0xFF +ROM:F99B .byte 0xFF +ROM:F99C .byte 0xFF +ROM:F99D .byte 0xFF +ROM:F99E .byte 0xFF +ROM:F99F .byte 0xFF +ROM:F9A0 .byte 0xFF +ROM:F9A1 .byte 0xFF +ROM:F9A2 .byte 0xFF +ROM:F9A3 .byte 0xFF +ROM:F9A4 .byte 0xFF +ROM:F9A5 .byte 0xFF +ROM:F9A6 .byte 0xFF +ROM:F9A7 .byte 0xFF +ROM:F9A8 .byte 0xFF +ROM:F9A9 .byte 0xFF +ROM:F9AA .byte 0xFF +ROM:F9AB .byte 0xFF +ROM:F9AC .byte 0xFF +ROM:F9AD .byte 0xFF +ROM:F9AE .byte 0xFF +ROM:F9AF .byte 0xFF +ROM:F9B0 .byte 0xFF +ROM:F9B1 .byte 0xFF +ROM:F9B2 .byte 0xFF +ROM:F9B3 .byte 0xFF +ROM:F9B4 .byte 0xFF +ROM:F9B5 .byte 0xFF +ROM:F9B6 .byte 0xFF +ROM:F9B7 .byte 0xFF +ROM:F9B8 .byte 0xFF +ROM:F9B9 .byte 0xFF +ROM:F9BA .byte 0xFF +ROM:F9BB .byte 0xFF +ROM:F9BC .byte 0xFF +ROM:F9BD .byte 0xFF +ROM:F9BE .byte 0xFF +ROM:F9BF .byte 0xFF +ROM:F9C0 .byte 0xFF +ROM:F9C1 .byte 0xFF +ROM:F9C2 .byte 0xFF +ROM:F9C3 .byte 0xFF +ROM:F9C4 .byte 0xFF +ROM:F9C5 .byte 0xFF +ROM:F9C6 .byte 0xFF +ROM:F9C7 .byte 0xFF +ROM:F9C8 .byte 0xFF +ROM:F9C9 .byte 0xFF +ROM:F9CA .byte 0xFF +ROM:F9CB .byte 0xFF +ROM:F9CC .byte 0xFF +ROM:F9CD .byte 0xFF +ROM:F9CE .byte 0xFF +ROM:F9CF .byte 0xFF +ROM:F9D0 .byte 0xFF +ROM:F9D1 .byte 0xFF +ROM:F9D2 .byte 0xFF +ROM:F9D3 .byte 0xFF +ROM:F9D4 .byte 0xFF +ROM:F9D5 .byte 0xFF +ROM:F9D6 .byte 0xFF +ROM:F9D7 .byte 0xFF +ROM:F9D8 .byte 0xFF +ROM:F9D9 .byte 0xFF +ROM:F9DA .byte 0xFF +ROM:F9DB .byte 0xFF +ROM:F9DC .byte 0xFF +ROM:F9DD .byte 0xFF +ROM:F9DE .byte 0xFF +ROM:F9DF .byte 0xFF +ROM:F9E0 .byte 0xFF +ROM:F9E1 .byte 0xFF +ROM:F9E2 .byte 0xFF +ROM:F9E3 .byte 0xFF +ROM:F9E4 .byte 0xFF +ROM:F9E5 .byte 0xFF +ROM:F9E6 .byte 0xFF +ROM:F9E7 .byte 0xFF +ROM:F9E8 .byte 0xFF +ROM:F9E9 .byte 0xFF +ROM:F9EA .byte 0xFF +ROM:F9EB .byte 0xFF +ROM:F9EC .byte 0xFF +ROM:F9ED .byte 0xFF +ROM:F9EE .byte 0xFF +ROM:F9EF .byte 0xFF +ROM:F9F0 .byte 0xFF +ROM:F9F1 .byte 0xFF +ROM:F9F2 .byte 0xFF +ROM:F9F3 .byte 0xFF +ROM:F9F4 .byte 0xFF +ROM:F9F5 .byte 0xFF +ROM:F9F6 .byte 0xFF +ROM:F9F7 .byte 0xFF +ROM:F9F8 .byte 0xFF +ROM:F9F9 .byte 0xFF +ROM:F9FA .byte 0xFF +ROM:F9FB .byte 0xFF +ROM:F9FC .byte 0xFF +ROM:F9FD .byte 0xFF +ROM:F9FE .byte 0xFF +ROM:F9FF .byte 0xFF +ROM:FA00 .byte 0xFF +ROM:FA01 .byte 0xFF +ROM:FA02 .byte 0xFF +ROM:FA03 .byte 0xFF +ROM:FA04 .byte 0xFF +ROM:FA05 .byte 0xFF +ROM:FA06 .byte 0xFF +ROM:FA07 .byte 0xFF +ROM:FA08 .byte 0xFF +ROM:FA09 .byte 0xFF +ROM:FA0A .byte 0xFF +ROM:FA0B .byte 0xFF +ROM:FA0C .byte 0xFF +ROM:FA0D .byte 0xFF +ROM:FA0E .byte 0xFF +ROM:FA0F .byte 0xFF +ROM:FA10 .byte 0xFF +ROM:FA11 .byte 0xFF +ROM:FA12 .byte 0xFF +ROM:FA13 .byte 0xFF +ROM:FA14 .byte 0xFF +ROM:FA15 .byte 0xFF +ROM:FA16 .byte 0xFF +ROM:FA17 .byte 0xFF +ROM:FA18 .byte 0xFF +ROM:FA19 .byte 0xFF +ROM:FA1A .byte 0xFF +ROM:FA1B .byte 0xFF +ROM:FA1C .byte 0xFF +ROM:FA1D .byte 0xFF +ROM:FA1E .byte 0xFF +ROM:FA1F .byte 0xFF +ROM:FA20 .byte 0xFF +ROM:FA21 .byte 0xFF +ROM:FA22 .byte 0xFF +ROM:FA23 .byte 0xFF +ROM:FA24 .byte 0xFF +ROM:FA25 .byte 0xFF +ROM:FA26 .byte 0xFF +ROM:FA27 .byte 0xFF +ROM:FA28 .byte 0xFF +ROM:FA29 .byte 0xFF +ROM:FA2A .byte 0xFF +ROM:FA2B .byte 0xFF +ROM:FA2C .byte 0xFF +ROM:FA2D .byte 0xFF +ROM:FA2E .byte 0xFF +ROM:FA2F .byte 0xFF +ROM:FA30 .byte 0xFF +ROM:FA31 .byte 0xFF +ROM:FA32 .byte 0xFF +ROM:FA33 .byte 0xFF +ROM:FA34 .byte 0xFF +ROM:FA35 .byte 0xFF +ROM:FA36 .byte 0xFF +ROM:FA37 .byte 0xFF +ROM:FA38 .byte 0xFF +ROM:FA39 .byte 0xFF +ROM:FA3A .byte 0xFF +ROM:FA3B .byte 0xFF +ROM:FA3C .byte 0xFF +ROM:FA3D .byte 0xFF +ROM:FA3E .byte 0xFF +ROM:FA3F .byte 0xFF +ROM:FA40 .byte 0xFF +ROM:FA41 .byte 0xFF +ROM:FA42 .byte 0xFF +ROM:FA43 .byte 0xFF +ROM:FA44 .byte 0xFF +ROM:FA45 .byte 0xFF +ROM:FA46 .byte 0xFF +ROM:FA47 .byte 0xFF +ROM:FA48 .byte 0xFF +ROM:FA49 .byte 0xFF +ROM:FA4A .byte 0xFF +ROM:FA4B .byte 0xFF +ROM:FA4C .byte 0xFF +ROM:FA4D .byte 0xFF +ROM:FA4E .byte 0xFF +ROM:FA4F .byte 0xFF +ROM:FA50 .byte 0xFF +ROM:FA51 .byte 0xFF +ROM:FA52 .byte 0xFF +ROM:FA53 .byte 0xFF +ROM:FA54 .byte 0xFF +ROM:FA55 .byte 0xFF +ROM:FA56 .byte 0xFF +ROM:FA57 .byte 0xFF +ROM:FA58 .byte 0xFF +ROM:FA59 .byte 0xFF +ROM:FA5A .byte 0xFF +ROM:FA5B .byte 0xFF +ROM:FA5C .byte 0xFF +ROM:FA5D .byte 0xFF +ROM:FA5E .byte 0xFF +ROM:FA5F .byte 0xFF +ROM:FA60 .byte 0xFF +ROM:FA61 .byte 0xFF +ROM:FA62 .byte 0xFF +ROM:FA63 .byte 0xFF +ROM:FA64 .byte 0xFF +ROM:FA65 .byte 0xFF +ROM:FA66 .byte 0xFF +ROM:FA67 .byte 0xFF +ROM:FA68 .byte 0xFF +ROM:FA69 .byte 0xFF +ROM:FA6A .byte 0xFF +ROM:FA6B .byte 0xFF +ROM:FA6C .byte 0xFF +ROM:FA6D .byte 0xFF +ROM:FA6E .byte 0xFF +ROM:FA6F .byte 0xFF +ROM:FA70 .byte 0xFF +ROM:FA71 .byte 0xFF +ROM:FA72 .byte 0xFF +ROM:FA73 .byte 0xFF +ROM:FA74 .byte 0xFF +ROM:FA75 .byte 0xFF +ROM:FA76 .byte 0xFF +ROM:FA77 .byte 0xFF +ROM:FA78 .byte 0xFF +ROM:FA79 .byte 0xFF +ROM:FA7A .byte 0xFF +ROM:FA7B .byte 0xFF +ROM:FA7C .byte 0xFF +ROM:FA7D .byte 0xFF +ROM:FA7E .byte 0xFF +ROM:FA7F .byte 0xFF +ROM:FA80 .byte 0xFF +ROM:FA81 .byte 0xFF +ROM:FA82 .byte 0xFF +ROM:FA83 .byte 0xFF +ROM:FA84 .byte 0xFF +ROM:FA85 .byte 0xFF +ROM:FA86 .byte 0xFF +ROM:FA87 .byte 0xFF +ROM:FA88 .byte 0xFF +ROM:FA89 .byte 0xFF +ROM:FA8A .byte 0xFF +ROM:FA8B .byte 0xFF +ROM:FA8C .byte 0xFF +ROM:FA8D .byte 0xFF +ROM:FA8E .byte 0xFF +ROM:FA8F .byte 0xFF +ROM:FA90 .byte 0xFF +ROM:FA91 .byte 0xFF +ROM:FA92 .byte 0xFF +ROM:FA93 .byte 0xFF +ROM:FA94 .byte 0xFF +ROM:FA95 .byte 0xFF +ROM:FA96 .byte 0xFF +ROM:FA97 .byte 0xFF +ROM:FA98 .byte 0xFF +ROM:FA99 .byte 0xFF +ROM:FA9A .byte 0xFF +ROM:FA9B .byte 0xFF +ROM:FA9C .byte 0xFF +ROM:FA9D .byte 0xFF +ROM:FA9E .byte 0xFF +ROM:FA9F .byte 0xFF +ROM:FAA0 .byte 0xFF +ROM:FAA1 .byte 0xFF +ROM:FAA2 .byte 0xFF +ROM:FAA3 .byte 0xFF +ROM:FAA4 .byte 0xFF +ROM:FAA5 .byte 0xFF +ROM:FAA6 .byte 0xFF +ROM:FAA7 .byte 0xFF +ROM:FAA8 .byte 0xFF +ROM:FAA9 .byte 0xFF +ROM:FAAA .byte 0xFF +ROM:FAAB .byte 0xFF +ROM:FAAC .byte 0xFF +ROM:FAAD .byte 0xFF +ROM:FAAE .byte 0xFF +ROM:FAAF .byte 0xFF +ROM:FAB0 .byte 0xFF +ROM:FAB1 .byte 0xFF +ROM:FAB2 .byte 0xFF +ROM:FAB3 .byte 0xFF +ROM:FAB4 .byte 0xFF +ROM:FAB5 .byte 0xFF +ROM:FAB6 .byte 0xFF +ROM:FAB7 .byte 0xFF +ROM:FAB8 .byte 0xFF +ROM:FAB9 .byte 0xFF +ROM:FABA .byte 0xFF +ROM:FABB .byte 0xFF +ROM:FABC .byte 0xFF +ROM:FABD .byte 0xFF +ROM:FABE .byte 0xFF +ROM:FABF .byte 0xFF +ROM:FAC0 .byte 0xFF +ROM:FAC1 .byte 0xFF +ROM:FAC2 .byte 0xFF +ROM:FAC3 .byte 0xFF +ROM:FAC4 .byte 0xFF +ROM:FAC5 .byte 0xFF +ROM:FAC6 .byte 0xFF +ROM:FAC7 .byte 0xFF +ROM:FAC8 .byte 0xFF +ROM:FAC9 .byte 0xFF +ROM:FACA .byte 0xFF +ROM:FACB .byte 0xFF +ROM:FACC .byte 0xFF +ROM:FACD .byte 0xFF +ROM:FACE .byte 0xFF +ROM:FACF .byte 0xFF +ROM:FAD0 .byte 0xFF +ROM:FAD1 .byte 0xFF +ROM:FAD2 .byte 0xFF +ROM:FAD3 .byte 0xFF +ROM:FAD4 .byte 0xFF +ROM:FAD5 .byte 0xFF +ROM:FAD6 .byte 0xFF +ROM:FAD7 .byte 0xFF +ROM:FAD8 .byte 0xFF +ROM:FAD9 .byte 0xFF +ROM:FADA .byte 0xFF +ROM:FADB .byte 0xFF +ROM:FADC .byte 0xFF +ROM:FADD .byte 0xFF +ROM:FADE .byte 0xFF +ROM:FADF .byte 0xFF +ROM:FAE0 .byte 0xFF +ROM:FAE1 .byte 0xFF +ROM:FAE2 .byte 0xFF +ROM:FAE3 .byte 0xFF +ROM:FAE4 .byte 0xFF +ROM:FAE5 .byte 0xFF +ROM:FAE6 .byte 0xFF +ROM:FAE7 .byte 0xFF +ROM:FAE8 .byte 0xFF +ROM:FAE9 .byte 0xFF +ROM:FAEA .byte 0xFF +ROM:FAEB .byte 0xFF +ROM:FAEC .byte 0xFF +ROM:FAED .byte 0xFF +ROM:FAEE .byte 0xFF +ROM:FAEF .byte 0xFF +ROM:FAF0 .byte 0xFF +ROM:FAF1 .byte 0xFF +ROM:FAF2 .byte 0xFF +ROM:FAF3 .byte 0xFF +ROM:FAF4 .byte 0xFF +ROM:FAF5 .byte 0xFF +ROM:FAF6 .byte 0xFF +ROM:FAF7 .byte 0xFF +ROM:FAF8 .byte 0xFF +ROM:FAF9 .byte 0xFF +ROM:FAFA .byte 0xFF +ROM:FAFB .byte 0xFF +ROM:FAFC .byte 0xFF +ROM:FAFD .byte 0xFF +ROM:FAFE .byte 0xFF +ROM:FAFF .byte 0xFF +ROM:FB00 .byte 0xFF +ROM:FB01 .byte 0xFF +ROM:FB02 .byte 0xFF +ROM:FB03 .byte 0xFF +ROM:FB04 .byte 0xFF +ROM:FB05 .byte 0xFF +ROM:FB06 .byte 0xFF +ROM:FB07 .byte 0xFF +ROM:FB08 .byte 0xFF +ROM:FB09 .byte 0xFF +ROM:FB0A .byte 0xFF +ROM:FB0B .byte 0xFF +ROM:FB0C .byte 0xFF +ROM:FB0D .byte 0xFF +ROM:FB0E .byte 0xFF +ROM:FB0F .byte 0xFF +ROM:FB10 .byte 0xFF +ROM:FB11 .byte 0xFF +ROM:FB12 .byte 0xFF +ROM:FB13 .byte 0xFF +ROM:FB14 .byte 0xFF +ROM:FB15 .byte 0xFF +ROM:FB16 .byte 0xFF +ROM:FB17 .byte 0xFF +ROM:FB18 .byte 0xFF +ROM:FB19 .byte 0xFF +ROM:FB1A .byte 0xFF +ROM:FB1B .byte 0xFF +ROM:FB1C .byte 0xFF +ROM:FB1D .byte 0xFF +ROM:FB1E .byte 0xFF +ROM:FB1F .byte 0xFF +ROM:FB20 .byte 0xFF +ROM:FB21 .byte 0xFF +ROM:FB22 .byte 0xFF +ROM:FB23 .byte 0xFF +ROM:FB24 .byte 0xFF +ROM:FB25 .byte 0xFF +ROM:FB26 .byte 0xFF +ROM:FB27 .byte 0xFF +ROM:FB28 .byte 0xFF +ROM:FB29 .byte 0xFF +ROM:FB2A .byte 0xFF +ROM:FB2B .byte 0xFF +ROM:FB2C .byte 0xFF +ROM:FB2D .byte 0xFF +ROM:FB2E .byte 0xFF +ROM:FB2F .byte 0xFF +ROM:FB30 .byte 0xFF +ROM:FB31 .byte 0xFF +ROM:FB32 .byte 0xFF +ROM:FB33 .byte 0xFF +ROM:FB34 .byte 0xFF +ROM:FB35 .byte 0xFF +ROM:FB36 .byte 0xFF +ROM:FB37 .byte 0xFF +ROM:FB38 .byte 0xFF +ROM:FB39 .byte 0xFF +ROM:FB3A .byte 0xFF +ROM:FB3B .byte 0xFF +ROM:FB3C .byte 0xFF +ROM:FB3D .byte 0xFF +ROM:FB3E .byte 0xFF +ROM:FB3F .byte 0xFF +ROM:FB40 .byte 0xFF +ROM:FB41 .byte 0xFF +ROM:FB42 .byte 0xFF +ROM:FB43 .byte 0xFF +ROM:FB44 .byte 0xFF +ROM:FB45 .byte 0xFF +ROM:FB46 .byte 0xFF +ROM:FB47 .byte 0xFF +ROM:FB48 .byte 0xFF +ROM:FB49 .byte 0xFF +ROM:FB4A .byte 0xFF +ROM:FB4B .byte 0xFF +ROM:FB4C .byte 0xFF +ROM:FB4D .byte 0xFF +ROM:FB4E .byte 0xFF +ROM:FB4F .byte 0xFF +ROM:FB50 .byte 0xFF +ROM:FB51 .byte 0xFF +ROM:FB52 .byte 0xFF +ROM:FB53 .byte 0xFF +ROM:FB54 .byte 0xFF +ROM:FB55 .byte 0xFF +ROM:FB56 .byte 0xFF +ROM:FB57 .byte 0xFF +ROM:FB58 .byte 0xFF +ROM:FB59 .byte 0xFF +ROM:FB5A .byte 0xFF +ROM:FB5B .byte 0xFF +ROM:FB5C .byte 0xFF +ROM:FB5D .byte 0xFF +ROM:FB5E .byte 0xFF +ROM:FB5F .byte 0xFF +ROM:FB60 .byte 0xFF +ROM:FB61 .byte 0xFF +ROM:FB62 .byte 0xFF +ROM:FB63 .byte 0xFF +ROM:FB64 .byte 0xFF +ROM:FB65 .byte 0xFF +ROM:FB66 .byte 0xFF +ROM:FB67 .byte 0xFF +ROM:FB68 .byte 0xFF +ROM:FB69 .byte 0xFF +ROM:FB6A .byte 0xFF +ROM:FB6B .byte 0xFF +ROM:FB6C .byte 0xFF +ROM:FB6D .byte 0xFF +ROM:FB6E .byte 0xFF +ROM:FB6F .byte 0xFF +ROM:FB70 .byte 0xFF +ROM:FB71 .byte 0xFF +ROM:FB72 .byte 0xFF +ROM:FB73 .byte 0xFF +ROM:FB74 .byte 0xFF +ROM:FB75 .byte 0xFF +ROM:FB76 .byte 0xFF +ROM:FB77 .byte 0xFF +ROM:FB78 .byte 0xFF +ROM:FB79 .byte 0xFF +ROM:FB7A .byte 0xFF +ROM:FB7B .byte 0xFF +ROM:FB7C .byte 0xFF +ROM:FB7D .byte 0xFF +ROM:FB7E .byte 0xFF +ROM:FB7F .byte 0xFF +ROM:FB80 .byte 0xFF +ROM:FB81 .byte 0xFF +ROM:FB82 .byte 0xFF +ROM:FB83 .byte 0xFF +ROM:FB84 .byte 0xFF +ROM:FB85 .byte 0xFF +ROM:FB86 .byte 0xFF +ROM:FB87 .byte 0xFF +ROM:FB88 .byte 0xFF +ROM:FB89 .byte 0xFF +ROM:FB8A .byte 0xFF +ROM:FB8B .byte 0xFF +ROM:FB8C .byte 0xFF +ROM:FB8D .byte 0xFF +ROM:FB8E .byte 0xFF +ROM:FB8F .byte 0xFF +ROM:FB90 .byte 0xFF +ROM:FB91 .byte 0xFF +ROM:FB92 .byte 0xFF +ROM:FB93 .byte 0xFF +ROM:FB94 .byte 0xFF +ROM:FB95 .byte 0xFF +ROM:FB96 .byte 0xFF +ROM:FB97 .byte 0xFF +ROM:FB98 .byte 0xFF +ROM:FB99 .byte 0xFF +ROM:FB9A .byte 0xFF +ROM:FB9B .byte 0xFF +ROM:FB9C .byte 0xFF +ROM:FB9D .byte 0xFF +ROM:FB9E .byte 0xFF +ROM:FB9F .byte 0xFF +ROM:FBA0 .byte 0xFF +ROM:FBA1 .byte 0xFF +ROM:FBA2 .byte 0xFF +ROM:FBA3 .byte 0xFF +ROM:FBA4 .byte 0xFF +ROM:FBA5 .byte 0xFF +ROM:FBA6 .byte 0xFF +ROM:FBA7 .byte 0xFF +ROM:FBA8 .byte 0xFF +ROM:FBA9 .byte 0xFF +ROM:FBAA .byte 0xFF +ROM:FBAB .byte 0xFF +ROM:FBAC .byte 0xFF +ROM:FBAD .byte 0xFF +ROM:FBAE .byte 0xFF +ROM:FBAF .byte 0xFF +ROM:FBB0 .byte 0xFF +ROM:FBB1 .byte 0xFF +ROM:FBB2 .byte 0xFF +ROM:FBB3 .byte 0xFF +ROM:FBB4 .byte 0xFF +ROM:FBB5 .byte 0xFF +ROM:FBB6 .byte 0xFF +ROM:FBB7 .byte 0xFF +ROM:FBB8 .byte 0xFF +ROM:FBB9 .byte 0xFF +ROM:FBBA .byte 0xFF +ROM:FBBB .byte 0xFF +ROM:FBBC .byte 0xFF +ROM:FBBD .byte 0xFF +ROM:FBBE .byte 0xFF +ROM:FBBF .byte 0xFF +ROM:FBC0 .byte 0xFF +ROM:FBC1 .byte 0xFF +ROM:FBC2 .byte 0xFF +ROM:FBC3 .byte 0xFF +ROM:FBC4 .byte 0xFF +ROM:FBC5 .byte 0xFF +ROM:FBC6 .byte 0xFF +ROM:FBC7 .byte 0xFF +ROM:FBC8 .byte 0xFF +ROM:FBC9 .byte 0xFF +ROM:FBCA .byte 0xFF +ROM:FBCB .byte 0xFF +ROM:FBCC .byte 0xFF +ROM:FBCD .byte 0xFF +ROM:FBCE .byte 0xFF +ROM:FBCF .byte 0xFF +ROM:FBD0 .byte 0xFF +ROM:FBD1 .byte 0xFF +ROM:FBD2 .byte 0xFF +ROM:FBD3 .byte 0xFF +ROM:FBD4 .byte 0xFF +ROM:FBD5 .byte 0xFF +ROM:FBD6 .byte 0xFF +ROM:FBD7 .byte 0xFF +ROM:FBD8 .byte 0xFF +ROM:FBD9 .byte 0xFF +ROM:FBDA .byte 0xFF +ROM:FBDB .byte 0xFF +ROM:FBDC .byte 0xFF +ROM:FBDD .byte 0xFF +ROM:FBDE .byte 0xFF +ROM:FBDF .byte 0xFF +ROM:FBE0 .byte 0xFF +ROM:FBE1 .byte 0xFF +ROM:FBE2 .byte 0xFF +ROM:FBE3 .byte 0xFF +ROM:FBE4 .byte 0xFF +ROM:FBE5 .byte 0xFF +ROM:FBE6 .byte 0xFF +ROM:FBE7 .byte 0xFF +ROM:FBE8 .byte 0xFF +ROM:FBE9 .byte 0xFF +ROM:FBEA .byte 0xFF +ROM:FBEB .byte 0xFF +ROM:FBEC .byte 0xFF +ROM:FBED .byte 0xFF +ROM:FBEE .byte 0xFF +ROM:FBEF .byte 0xFF +ROM:FBF0 .byte 0xFF +ROM:FBF1 .byte 0xFF +ROM:FBF2 .byte 0xFF +ROM:FBF3 .byte 0xFF +ROM:FBF4 .byte 0xFF +ROM:FBF5 .byte 0xFF +ROM:FBF6 .byte 0xFF +ROM:FBF7 .byte 0xFF +ROM:FBF8 .byte 0xFF +ROM:FBF9 .byte 0xFF +ROM:FBFA .byte 0xFF +ROM:FBFB .byte 0xFF +ROM:FBFC .byte 0xFF +ROM:FBFD .byte 0xFF +ROM:FBFE .byte 0xFF +ROM:FBFF .byte 0xFF +ROM:FC00 .byte 0xAD +ROM:FC01 .byte 0xD2 +ROM:FC02 .byte 0xC8 +ROM:FC03 .byte 0xBA +ROM:FC04 .byte 0x94 +ROM:FC05 .byte 0xFF +ROM:FC06 .byte 2 +ROM:FC07 .byte 0x7C ; | +ROM:FC08 .byte 0x4B ; K +ROM:FC09 .byte 0x63 ; c +ROM:FC0A .byte 1 +ROM:FC0B .byte 2 +ROM:FC0C .byte 0xFF +ROM:FC0D .byte 0xFF +ROM:FC0E .byte 0xFF +ROM:FC0F .byte 0xFF +ROM:FC10 .byte 0xFF +ROM:FC11 .byte 0xFF +ROM:FC12 .byte 0xFF +ROM:FC13 .byte 0xFF +ROM:FC14 .byte 0xFF +ROM:FC15 .byte 0xFF +ROM:FC16 .byte 0xFF +ROM:FC17 .byte 0xFF +ROM:FC18 .byte 0xFF +ROM:FC19 .byte 0xFF +ROM:FC1A .byte 0xFF +ROM:FC1B .byte 0xFF +ROM:FC1C .byte 0xFF +ROM:FC1D .byte 0xFF +ROM:FC1E .byte 0xFF +ROM:FC1F .byte 0xFF +ROM:FC20 .byte 0xFF +ROM:FC21 .byte 0xFF +ROM:FC22 .byte 0xFF +ROM:FC23 .byte 0xFF +ROM:FC24 .byte 0xFF +ROM:FC25 .byte 0xFF +ROM:FC26 .byte 0xFF +ROM:FC27 .byte 0xFF +ROM:FC28 .byte 0xFF +ROM:FC29 .byte 0xFF +ROM:FC2A .byte 0xFF +ROM:FC2B .byte 0xFF +ROM:FC2C .byte 0xFF +ROM:FC2D .byte 0xFF +ROM:FC2E .byte 0xFF +ROM:FC2F .byte 0xFF +ROM:FC30 .byte 0xFF +ROM:FC31 .byte 0xFF +ROM:FC32 .byte 0xFF +ROM:FC33 .byte 0xFF +ROM:FC34 .byte 0xFF +ROM:FC35 .byte 0xFF +ROM:FC36 .byte 0xFF +ROM:FC37 .byte 0xFF +ROM:FC38 .byte 0xFF +ROM:FC39 .byte 0xFF +ROM:FC3A .byte 0xFF +ROM:FC3B .byte 0xFF +ROM:FC3C .byte 0xFF +ROM:FC3D .byte 0xFF +ROM:FC3E .byte 0xFF +ROM:FC3F .byte 0xFF +ROM:FC40 .byte 0xFF +ROM:FC41 .byte 0xFF +ROM:FC42 .byte 0xFF +ROM:FC43 .byte 0xFF +ROM:FC44 .byte 0xFF +ROM:FC45 .byte 0xFF +ROM:FC46 .byte 0xFF +ROM:FC47 .byte 0xFF +ROM:FC48 .byte 0xFF +ROM:FC49 .byte 0xFF +ROM:FC4A .byte 0xFF +ROM:FC4B .byte 0xFF +ROM:FC4C .byte 0xFF +ROM:FC4D .byte 0xFF +ROM:FC4E .byte 0xFF +ROM:FC4F .byte 0xFF +ROM:FC50 .byte 0xFF +ROM:FC51 .byte 0xFF +ROM:FC52 .byte 0xFF +ROM:FC53 .byte 0xFF +ROM:FC54 .byte 0xFF +ROM:FC55 .byte 0xFF +ROM:FC56 .byte 0xFF +ROM:FC57 .byte 0xFF +ROM:FC58 .byte 0xFF +ROM:FC59 .byte 0xFF +ROM:FC5A .byte 0xFF +ROM:FC5B .byte 0xFF +ROM:FC5C .byte 0xFF +ROM:FC5D .byte 0xFF +ROM:FC5E .byte 0xFF +ROM:FC5F .byte 0xFF +ROM:FC60 .byte 0xFF +ROM:FC61 .byte 0xFF +ROM:FC62 .byte 0xFF +ROM:FC63 .byte 0xFF +ROM:FC64 .byte 0xFF +ROM:FC65 .byte 0xFF +ROM:FC66 .byte 0xFF +ROM:FC67 .byte 0xFF +ROM:FC68 .byte 0xFF +ROM:FC69 .byte 0xFF +ROM:FC6A .byte 0xFF +ROM:FC6B .byte 0xFF +ROM:FC6C .byte 0xFF +ROM:FC6D .byte 0xFF +ROM:FC6E .byte 0xFF +ROM:FC6F .byte 0xFF +ROM:FC70 .byte 0xFF +ROM:FC71 .byte 0xFF +ROM:FC72 .byte 0xFF +ROM:FC73 .byte 0xFF +ROM:FC74 .byte 0xFF +ROM:FC75 .byte 0xFF +ROM:FC76 .byte 0xFF +ROM:FC77 .byte 0xFF +ROM:FC78 .byte 0xFF +ROM:FC79 .byte 0xFF +ROM:FC7A .byte 0xFF +ROM:FC7B .byte 0xFF +ROM:FC7C .byte 0xFF +ROM:FC7D .byte 0xFF +ROM:FC7E .byte 0xFF +ROM:FC7F .byte 0xFF +ROM:FC80 .byte 0xFF +ROM:FC81 .byte 0xFF +ROM:FC82 .byte 0xFF +ROM:FC83 .byte 0xFF +ROM:FC84 .byte 0xFF +ROM:FC85 .byte 0xFF +ROM:FC86 .byte 0xFF +ROM:FC87 .byte 0xFF +ROM:FC88 .byte 0xFF +ROM:FC89 .byte 0xFF +ROM:FC8A .byte 0xFF +ROM:FC8B .byte 0xFF +ROM:FC8C .byte 0xFF +ROM:FC8D .byte 0xFF +ROM:FC8E .byte 0xFF +ROM:FC8F .byte 0xFF +ROM:FC90 .byte 0xFF +ROM:FC91 .byte 0xFF +ROM:FC92 .byte 0xFF +ROM:FC93 .byte 0xFF +ROM:FC94 .byte 0xFF +ROM:FC95 .byte 0xFF +ROM:FC96 .byte 0xFF +ROM:FC97 .byte 0xFF +ROM:FC98 .byte 0xFF +ROM:FC99 .byte 0xFF +ROM:FC9A .byte 0xFF +ROM:FC9B .byte 0xFF +ROM:FC9C .byte 0xFF +ROM:FC9D .byte 0xFF +ROM:FC9E .byte 0xFF +ROM:FC9F .byte 0xFF +ROM:FCA0 .byte 0xFF +ROM:FCA1 .byte 0xFF +ROM:FCA2 .byte 0xFF +ROM:FCA3 .byte 0xFF +ROM:FCA4 .byte 0xFF +ROM:FCA5 .byte 0xFF +ROM:FCA6 .byte 0xFF +ROM:FCA7 .byte 0xFF +ROM:FCA8 .byte 0xFF +ROM:FCA9 .byte 0xFF +ROM:FCAA .byte 0xFF +ROM:FCAB .byte 0xFF +ROM:FCAC .byte 0xFF +ROM:FCAD .byte 0xFF +ROM:FCAE .byte 0xFF +ROM:FCAF .byte 0xFF +ROM:FCB0 .byte 0xFF +ROM:FCB1 .byte 0xFF +ROM:FCB2 .byte 0xFF +ROM:FCB3 .byte 0xFF +ROM:FCB4 .byte 0xFF +ROM:FCB5 .byte 0xFF +ROM:FCB6 .byte 0xFF +ROM:FCB7 .byte 0xFF +ROM:FCB8 .byte 0xFF +ROM:FCB9 .byte 0xFF +ROM:FCBA .byte 0xFF +ROM:FCBB .byte 0xFF +ROM:FCBC .byte 0xFF +ROM:FCBD .byte 0xFF +ROM:FCBE .byte 0xFF +ROM:FCBF .byte 0xFF +ROM:FCC0 .byte 0xFF +ROM:FCC1 .byte 0xFF +ROM:FCC2 .byte 0xFF +ROM:FCC3 .byte 0xFF +ROM:FCC4 .byte 0xFF +ROM:FCC5 .byte 0xFF +ROM:FCC6 .byte 0xFF +ROM:FCC7 .byte 0xFF +ROM:FCC8 .byte 0xFF +ROM:FCC9 .byte 0xFF +ROM:FCCA .byte 0xFF +ROM:FCCB .byte 0xFF +ROM:FCCC .byte 0xFF +ROM:FCCD .byte 0xFF +ROM:FCCE .byte 0xFF +ROM:FCCF .byte 0xFF +ROM:FCD0 .byte 0xFF +ROM:FCD1 .byte 0xFF +ROM:FCD2 .byte 0xFF +ROM:FCD3 .byte 0xFF +ROM:FCD4 .byte 0xFF +ROM:FCD5 .byte 0xFF +ROM:FCD6 .byte 0xFF +ROM:FCD7 .byte 0xFF +ROM:FCD8 .byte 0xFF +ROM:FCD9 .byte 0xFF +ROM:FCDA .byte 0xFF +ROM:FCDB .byte 0xFF +ROM:FCDC .byte 0xFF +ROM:FCDD .byte 0xFF +ROM:FCDE .byte 0xFF +ROM:FCDF .byte 0xFF +ROM:FCE0 .byte 0xFF +ROM:FCE1 .byte 0xFF +ROM:FCE2 .byte 0xFF +ROM:FCE3 .byte 0xFF +ROM:FCE4 .byte 0xFF +ROM:FCE5 .byte 0xFF +ROM:FCE6 .byte 0xFF +ROM:FCE7 .byte 0xFF +ROM:FCE8 .byte 0xFF +ROM:FCE9 .byte 0xFF +ROM:FCEA .byte 0xFF +ROM:FCEB .byte 0xFF +ROM:FCEC .byte 0xFF +ROM:FCED .byte 0xFF +ROM:FCEE .byte 0xFF +ROM:FCEF .byte 0xFF +ROM:FCF0 .byte 0xFF +ROM:FCF1 .byte 0xFF +ROM:FCF2 .byte 0xFF +ROM:FCF3 .byte 0xFF +ROM:FCF4 .byte 0xFF +ROM:FCF5 .byte 0xFF +ROM:FCF6 .byte 0xFF +ROM:FCF7 .byte 0xFF +ROM:FCF8 .byte 0xFF +ROM:FCF9 .byte 0xFF +ROM:FCFA .byte 0xFF +ROM:FCFB .byte 0xFF +ROM:FCFC .byte 0xFF +ROM:FCFD .byte 0xFF +ROM:FCFE .byte 0xFF +ROM:FCFF .byte 0xFF +ROM:FD00 .byte 0xFF +ROM:FD01 .byte 0xFF +ROM:FD02 .byte 0xFF +ROM:FD03 .byte 0xFF +ROM:FD04 .byte 0xFF +ROM:FD05 .byte 0xFF +ROM:FD06 .byte 0xFF +ROM:FD07 .byte 0xFF +ROM:FD08 .byte 0xFF +ROM:FD09 .byte 0xFF +ROM:FD0A .byte 0xFF +ROM:FD0B .byte 0xFF +ROM:FD0C .byte 0xFF +ROM:FD0D .byte 0xFF +ROM:FD0E .byte 0xFF +ROM:FD0F .byte 0xFF +ROM:FD10 .byte 0xFF +ROM:FD11 .byte 0xFF +ROM:FD12 .byte 0xFF +ROM:FD13 .byte 0xFF +ROM:FD14 .byte 0xFF +ROM:FD15 .byte 0xFF +ROM:FD16 .byte 0xFF +ROM:FD17 .byte 0xFF +ROM:FD18 .byte 0xFF +ROM:FD19 .byte 0xFF +ROM:FD1A .byte 0xFF +ROM:FD1B .byte 0xFF +ROM:FD1C .byte 0xFF +ROM:FD1D .byte 0xFF +ROM:FD1E .byte 0xFF +ROM:FD1F .byte 0xFF +ROM:FD20 .byte 0xFF +ROM:FD21 .byte 0xFF +ROM:FD22 .byte 0xFF +ROM:FD23 .byte 0xFF +ROM:FD24 .byte 0xFF +ROM:FD25 .byte 0xFF +ROM:FD26 .byte 0xFF +ROM:FD27 .byte 0xFF +ROM:FD28 .byte 0xFF +ROM:FD29 .byte 0xFF +ROM:FD2A .byte 0xFF +ROM:FD2B .byte 0xFF +ROM:FD2C .byte 0xFF +ROM:FD2D .byte 0xFF +ROM:FD2E .byte 0xFF +ROM:FD2F .byte 0xFF +ROM:FD30 .byte 0xFF +ROM:FD31 .byte 0xFF +ROM:FD32 .byte 0xFF +ROM:FD33 .byte 0xFF +ROM:FD34 .byte 0xFF +ROM:FD35 .byte 0xFF +ROM:FD36 .byte 0xFF +ROM:FD37 .byte 0xFF +ROM:FD38 .byte 0xFF +ROM:FD39 .byte 0xFF +ROM:FD3A .byte 0xFF +ROM:FD3B .byte 0xFF +ROM:FD3C .byte 0xFF +ROM:FD3D .byte 0xFF +ROM:FD3E .byte 0xFF +ROM:FD3F .byte 0xFF +ROM:FD40 .byte 0xFF +ROM:FD41 .byte 0xFF +ROM:FD42 .byte 0xFF +ROM:FD43 .byte 0xFF +ROM:FD44 .byte 0xFF +ROM:FD45 .byte 0xFF +ROM:FD46 .byte 0xFF +ROM:FD47 .byte 0xFF +ROM:FD48 .byte 0xFF +ROM:FD49 .byte 0xFF +ROM:FD4A .byte 0xFF +ROM:FD4B .byte 0xFF +ROM:FD4C .byte 0xFF +ROM:FD4D .byte 0xFF +ROM:FD4E .byte 0xFF +ROM:FD4F .byte 0xFF +ROM:FD50 .byte 0xFF +ROM:FD51 .byte 0xFF +ROM:FD52 .byte 0xFF +ROM:FD53 .byte 0xFF +ROM:FD54 .byte 0xFF +ROM:FD55 .byte 0xFF +ROM:FD56 .byte 0xFF +ROM:FD57 .byte 0xFF +ROM:FD58 .byte 0xFF +ROM:FD59 .byte 0xFF +ROM:FD5A .byte 0xFF +ROM:FD5B .byte 0xFF +ROM:FD5C .byte 0xFF +ROM:FD5D .byte 0xFF +ROM:FD5E .byte 0xFF +ROM:FD5F .byte 0xFF +ROM:FD60 .byte 0xFF +ROM:FD61 .byte 0xFF +ROM:FD62 .byte 0xFF +ROM:FD63 .byte 0xFF +ROM:FD64 .byte 0xFF +ROM:FD65 .byte 0xFF +ROM:FD66 .byte 0xFF +ROM:FD67 .byte 0xFF +ROM:FD68 .byte 0xFF +ROM:FD69 .byte 0xFF +ROM:FD6A .byte 0xFF +ROM:FD6B .byte 0xFF +ROM:FD6C .byte 0xFF +ROM:FD6D .byte 0xFF +ROM:FD6E .byte 0xFF +ROM:FD6F .byte 0xFF +ROM:FD70 .byte 0xFF +ROM:FD71 .byte 0xFF +ROM:FD72 .byte 0xFF +ROM:FD73 .byte 0xFF +ROM:FD74 .byte 0xFF +ROM:FD75 .byte 0xFF +ROM:FD76 .byte 0xFF +ROM:FD77 .byte 0xFF +ROM:FD78 .byte 0xFF +ROM:FD79 .byte 0xFF +ROM:FD7A .byte 0xFF +ROM:FD7B .byte 0xFF +ROM:FD7C .byte 0xFF +ROM:FD7D .byte 0xFF +ROM:FD7E .byte 0xFF +ROM:FD7F .byte 0xFF +ROM:FD80 .byte 0xFF +ROM:FD81 .byte 0xFF +ROM:FD82 .byte 0xFF +ROM:FD83 .byte 0xFF +ROM:FD84 .byte 0xFF +ROM:FD85 .byte 0xFF +ROM:FD86 .byte 0xFF +ROM:FD87 .byte 0xFF +ROM:FD88 .byte 0xFF +ROM:FD89 .byte 0xFF +ROM:FD8A .byte 0xFF +ROM:FD8B .byte 0xFF +ROM:FD8C .byte 0xFF +ROM:FD8D .byte 0xFF +ROM:FD8E .byte 0xFF +ROM:FD8F .byte 0xFF +ROM:FD90 .byte 0xFF +ROM:FD91 .byte 0xFF +ROM:FD92 .byte 0xFF +ROM:FD93 .byte 0xFF +ROM:FD94 .byte 0xFF +ROM:FD95 .byte 0xFF +ROM:FD96 .byte 0xFF +ROM:FD97 .byte 0xFF +ROM:FD98 .byte 0xFF +ROM:FD99 .byte 0xFF +ROM:FD9A .byte 0xFF +ROM:FD9B .byte 0xFF +ROM:FD9C .byte 0xFF +ROM:FD9D .byte 0xFF +ROM:FD9E .byte 0xFF +ROM:FD9F .byte 0xFF +ROM:FDA0 .byte 0xFF +ROM:FDA1 .byte 0xFF +ROM:FDA2 .byte 0xFF +ROM:FDA3 .byte 0xFF +ROM:FDA4 .byte 0xFF +ROM:FDA5 .byte 0xFF +ROM:FDA6 .byte 0xFF +ROM:FDA7 .byte 0xFF +ROM:FDA8 .byte 0xFF +ROM:FDA9 .byte 0xFF +ROM:FDAA .byte 0xFF +ROM:FDAB .byte 0xFF +ROM:FDAC .byte 0xFF +ROM:FDAD .byte 0xFF +ROM:FDAE .byte 0xFF +ROM:FDAF .byte 0xFF +ROM:FDB0 .byte 0xFF +ROM:FDB1 .byte 0xFF +ROM:FDB2 .byte 0xFF +ROM:FDB3 .byte 0xFF +ROM:FDB4 .byte 0xFF +ROM:FDB5 .byte 0xFF +ROM:FDB6 .byte 0xFF +ROM:FDB7 .byte 0xFF +ROM:FDB8 .byte 0xFF +ROM:FDB9 .byte 0xFF +ROM:FDBA .byte 0xFF +ROM:FDBB .byte 0xFF +ROM:FDBC .byte 0xFF +ROM:FDBD .byte 0xFF +ROM:FDBE .byte 0xFF +ROM:FDBF .byte 0xFF +ROM:FDC0 .byte 0xFF +ROM:FDC1 .byte 0xFF +ROM:FDC2 .byte 0xFF +ROM:FDC3 .byte 0xFF +ROM:FDC4 .byte 0xFF +ROM:FDC5 .byte 0xFF +ROM:FDC6 .byte 0xFF +ROM:FDC7 .byte 0xFF +ROM:FDC8 .byte 0xFF +ROM:FDC9 .byte 0xFF +ROM:FDCA .byte 0xFF +ROM:FDCB .byte 0xFF +ROM:FDCC .byte 0xFF +ROM:FDCD .byte 0xFF +ROM:FDCE .byte 0xFF +ROM:FDCF .byte 0xFF +ROM:FDD0 .byte 0xFF +ROM:FDD1 .byte 0xFF +ROM:FDD2 .byte 0xFF +ROM:FDD3 .byte 0xFF +ROM:FDD4 .byte 0xFF +ROM:FDD5 .byte 0xFF +ROM:FDD6 .byte 0xFF +ROM:FDD7 .byte 0xFF +ROM:FDD8 .byte 0xFF +ROM:FDD9 .byte 0xFF +ROM:FDDA .byte 0xFF +ROM:FDDB .byte 0xFF +ROM:FDDC .byte 0xFF +ROM:FDDD .byte 0xFF +ROM:FDDE .byte 0xFF +ROM:FDDF .byte 0xFF +ROM:FDE0 .byte 0xFF +ROM:FDE1 .byte 0xFF +ROM:FDE2 .byte 0xFF +ROM:FDE3 .byte 0xFF +ROM:FDE4 .byte 0xFF +ROM:FDE5 .byte 0xFF +ROM:FDE6 .byte 0xFF +ROM:FDE7 .byte 0xFF +ROM:FDE8 .byte 0xFF +ROM:FDE9 .byte 0xFF +ROM:FDEA .byte 0xFF +ROM:FDEB .byte 0xFF +ROM:FDEC .byte 0xFF +ROM:FDED .byte 0xFF +ROM:FDEE .byte 0xFF +ROM:FDEF .byte 0xFF +ROM:FDF0 .byte 0xFF +ROM:FDF1 .byte 0xFF +ROM:FDF2 .byte 0xFF +ROM:FDF3 .byte 0xFF +ROM:FDF4 .byte 0xFF +ROM:FDF5 .byte 0xFF +ROM:FDF6 .byte 0xFF +ROM:FDF7 .byte 0xFF +ROM:FDF8 .byte 0xFF +ROM:FDF9 .byte 0xFF +ROM:FDFA .byte 0xFF +ROM:FDFB .byte 0xFF +ROM:FDFC .byte 0xFF +ROM:FDFD .byte 0xFF +ROM:FDFE .byte 0xFF +ROM:FDFF .byte 0xFF +ROM:FE00 .byte 0xFF +ROM:FE01 .byte 0xFF +ROM:FE02 .byte 0xFF +ROM:FE03 .byte 0xFF +ROM:FE04 .byte 0xFF +ROM:FE05 .byte 0xFF +ROM:FE06 .byte 0xFF +ROM:FE07 .byte 0xFF +ROM:FE08 .byte 0xFF +ROM:FE09 .byte 0xFF +ROM:FE0A .byte 0xFF +ROM:FE0B .byte 0xFF +ROM:FE0C .byte 0xFF +ROM:FE0D .byte 0xFF +ROM:FE0E .byte 0xFF +ROM:FE0F .byte 0xFF +ROM:FE10 .byte 0xFF +ROM:FE11 .byte 0xFF +ROM:FE12 .byte 0xFF +ROM:FE13 .byte 0xFF +ROM:FE14 .byte 0xFF +ROM:FE15 .byte 0xFF +ROM:FE16 .byte 0xFF +ROM:FE17 .byte 0xFF +ROM:FE18 .byte 0xFF +ROM:FE19 .byte 0xFF +ROM:FE1A .byte 0xFF +ROM:FE1B .byte 0xFF +ROM:FE1C .byte 0xFF +ROM:FE1D .byte 0xFF +ROM:FE1E .byte 0xFF +ROM:FE1F .byte 0xFF +ROM:FE20 .byte 0xFF +ROM:FE21 .byte 0xFF +ROM:FE22 .byte 0xFF +ROM:FE23 .byte 0xFF +ROM:FE24 .byte 0xFF +ROM:FE25 .byte 0xFF +ROM:FE26 .byte 0xFF +ROM:FE27 .byte 0xFF +ROM:FE28 .byte 0xFF +ROM:FE29 .byte 0xFF +ROM:FE2A .byte 0xFF +ROM:FE2B .byte 0xFF +ROM:FE2C .byte 0xFF +ROM:FE2D .byte 0xFF +ROM:FE2E .byte 0xFF +ROM:FE2F .byte 0xFF +ROM:FE30 .byte 0xFF +ROM:FE31 .byte 0xFF +ROM:FE32 .byte 0xFF +ROM:FE33 .byte 0xFF +ROM:FE34 .byte 0xFF +ROM:FE35 .byte 0xFF +ROM:FE36 .byte 0xFF +ROM:FE37 .byte 0xFF +ROM:FE38 .byte 0xFF +ROM:FE39 .byte 0xFF +ROM:FE3A .byte 0xFF +ROM:FE3B .byte 0xFF +ROM:FE3C .byte 0xFF +ROM:FE3D .byte 0xFF +ROM:FE3E .byte 0xFF +ROM:FE3F .byte 0xFF +ROM:FE40 .byte 0xFF +ROM:FE41 .byte 0xFF +ROM:FE42 .byte 0xFF +ROM:FE43 .byte 0xFF +ROM:FE44 .byte 0xFF +ROM:FE45 .byte 0xFF +ROM:FE46 .byte 0xFF +ROM:FE47 .byte 0xFF +ROM:FE48 .byte 0xFF +ROM:FE49 .byte 0xFF +ROM:FE4A .byte 0xFF +ROM:FE4B .byte 0xFF +ROM:FE4C .byte 0xFF +ROM:FE4D .byte 0xFF +ROM:FE4E .byte 0xFF +ROM:FE4F .byte 0xFF +ROM:FE50 .byte 0xFF +ROM:FE51 .byte 0xFF +ROM:FE52 .byte 0xFF +ROM:FE53 .byte 0xFF +ROM:FE54 .byte 0xFF +ROM:FE55 .byte 0xFF +ROM:FE56 .byte 0xFF +ROM:FE57 .byte 0xFF +ROM:FE58 .byte 0xFF +ROM:FE59 .byte 0xFF +ROM:FE5A .byte 0xFF +ROM:FE5B .byte 0xFF +ROM:FE5C .byte 0xFF +ROM:FE5D .byte 0xFF +ROM:FE5E .byte 0xFF +ROM:FE5F .byte 0xFF +ROM:FE60 .byte 0xFF +ROM:FE61 .byte 0xFF +ROM:FE62 .byte 0xFF +ROM:FE63 .byte 0xFF +ROM:FE64 .byte 0xFF +ROM:FE65 .byte 0xFF +ROM:FE66 .byte 0xFF +ROM:FE67 .byte 0xFF +ROM:FE68 .byte 0xFF +ROM:FE69 .byte 0xFF +ROM:FE6A .byte 0xFF +ROM:FE6B .byte 0xFF +ROM:FE6C .byte 0xFF +ROM:FE6D .byte 0xFF +ROM:FE6E .byte 0xFF +ROM:FE6F .byte 0xFF +ROM:FE70 .byte 0xFF +ROM:FE71 .byte 0xFF +ROM:FE72 .byte 0xFF +ROM:FE73 .byte 0xFF +ROM:FE74 .byte 0xFF +ROM:FE75 .byte 0xFF +ROM:FE76 .byte 0xFF +ROM:FE77 .byte 0xFF +ROM:FE78 .byte 0xFF +ROM:FE79 .byte 0xFF +ROM:FE7A .byte 0xFF +ROM:FE7B .byte 0xFF +ROM:FE7C .byte 0xFF +ROM:FE7D .byte 0xFF +ROM:FE7E .byte 0xFF +ROM:FE7F .byte 0xFF +ROM:FE80 .byte 0xFF +ROM:FE81 .byte 0xFF +ROM:FE82 .byte 0xFF +ROM:FE83 .byte 0xFF +ROM:FE84 .byte 0xFF +ROM:FE85 .byte 0xFF +ROM:FE86 .byte 0xFF +ROM:FE87 .byte 0xFF +ROM:FE88 .byte 0xFF +ROM:FE89 .byte 0xFF +ROM:FE8A .byte 0xFF +ROM:FE8B .byte 0xFF +ROM:FE8C .byte 0xFF +ROM:FE8D .byte 0xFF +ROM:FE8E .byte 0xFF +ROM:FE8F .byte 0xFF +ROM:FE90 .byte 0xFF +ROM:FE91 .byte 0xFF +ROM:FE92 .byte 0xFF +ROM:FE93 .byte 0xFF +ROM:FE94 .byte 0xFF +ROM:FE95 .byte 0xFF +ROM:FE96 .byte 0xFF +ROM:FE97 .byte 0xFF +ROM:FE98 .byte 0xFF +ROM:FE99 .byte 0xFF +ROM:FE9A .byte 0xFF +ROM:FE9B .byte 0xFF +ROM:FE9C .byte 0xFF +ROM:FE9D .byte 0xFF +ROM:FE9E .byte 0xFF +ROM:FE9F .byte 0xFF +ROM:FEA0 .byte 0xFF +ROM:FEA1 .byte 0xFF +ROM:FEA2 .byte 0xFF +ROM:FEA3 .byte 0xFF +ROM:FEA4 .byte 0xFF +ROM:FEA5 .byte 0xFF +ROM:FEA6 .byte 0xFF +ROM:FEA7 .byte 0xFF +ROM:FEA8 .byte 0xFF +ROM:FEA9 .byte 0xFF +ROM:FEAA .byte 0xFF +ROM:FEAB .byte 0xFF +ROM:FEAC .byte 0xFF +ROM:FEAD .byte 0xFF +ROM:FEAE .byte 0xFF +ROM:FEAF .byte 0xFF +ROM:FEB0 .byte 0xFF +ROM:FEB1 .byte 0xFF +ROM:FEB2 .byte 0xFF +ROM:FEB3 .byte 0xFF +ROM:FEB4 .byte 0xFF +ROM:FEB5 .byte 0xFF +ROM:FEB6 .byte 0xFF +ROM:FEB7 .byte 0xFF +ROM:FEB8 .byte 0xFF +ROM:FEB9 .byte 0xFF +ROM:FEBA .byte 0xFF +ROM:FEBB .byte 0xFF +ROM:FEBC .byte 0xFF +ROM:FEBD .byte 0xFF +ROM:FEBE .byte 0xFF +ROM:FEBF .byte 0xFF +ROM:FEC0 .byte 0xFF +ROM:FEC1 .byte 0xFF +ROM:FEC2 .byte 0xFF +ROM:FEC3 .byte 0xFF +ROM:FEC4 .byte 0xFF +ROM:FEC5 .byte 0xFF +ROM:FEC6 .byte 0xFF +ROM:FEC7 .byte 0xFF +ROM:FEC8 .byte 0xFF +ROM:FEC9 .byte 0xFF +ROM:FECA .byte 0xFF +ROM:FECB .byte 0xFF +ROM:FECC .byte 0xFF +ROM:FECD .byte 0xFF +ROM:FECE .byte 0xFF +ROM:FECF .byte 0xFF +ROM:FED0 .byte 0xFF +ROM:FED1 .byte 0xFF +ROM:FED2 .byte 0xFF +ROM:FED3 .byte 0xFF +ROM:FED4 .byte 0xFF +ROM:FED5 .byte 0xFF +ROM:FED6 .byte 0xFF +ROM:FED7 .byte 0xFF +ROM:FED8 .byte 0xFF +ROM:FED9 .byte 0xFF +ROM:FEDA .byte 0xFF +ROM:FEDB .byte 0xFF +ROM:FEDC .byte 0xFF +ROM:FEDD .byte 0xFF +ROM:FEDE .byte 0xFF +ROM:FEDF .byte 0xFF +ROM:FEE0 .byte 0xFF +ROM:FEE1 .byte 0xFF +ROM:FEE2 .byte 0xFF +ROM:FEE3 .byte 0xFF +ROM:FEE4 .byte 0xFF +ROM:FEE5 .byte 0xFF +ROM:FEE6 .byte 0xFF +ROM:FEE7 .byte 0xFF +ROM:FEE8 .byte 0xFF +ROM:FEE9 .byte 0xFF +ROM:FEEA .byte 0xFF +ROM:FEEB .byte 0xFF +ROM:FEEC .byte 0xFF +ROM:FEED .byte 0xFF +ROM:FEEE .byte 0xFF +ROM:FEEF .byte 0xFF +ROM:FEF0 .byte 0xFF +ROM:FEF1 .byte 0xFF +ROM:FEF2 .byte 0xFF +ROM:FEF3 .byte 0xFF +ROM:FEF4 .byte 0xFF +ROM:FEF5 .byte 0xFF +ROM:FEF6 .byte 0xFF +ROM:FEF7 .byte 0xFF +ROM:FEF8 .byte 0xFF +ROM:FEF9 .byte 0xFF +ROM:FEFA .byte 0xFF +ROM:FEFB .byte 0xFF +ROM:FEFC .byte 0xFF +ROM:FEFD .byte 0xFF +ROM:FEFE .byte 0xFF +ROM:FEFF .byte 0xFF +ROM:FF00 .byte 0xFF +ROM:FF01 .byte 0xFF +ROM:FF02 .byte 0xFF +ROM:FF03 .byte 0xFF +ROM:FF04 .byte 0xFF +ROM:FF05 .byte 0xFF +ROM:FF06 .byte 0xFF +ROM:FF07 .byte 0xFF +ROM:FF08 .byte 0xFF +ROM:FF09 .byte 0xFF +ROM:FF0A .byte 0xFF +ROM:FF0B .byte 0xFF +ROM:FF0C .byte 0xFF +ROM:FF0D .byte 0xFF +ROM:FF0E .byte 0xFF +ROM:FF0F .byte 0xFF +ROM:FF10 .byte 0xFF +ROM:FF11 .byte 0xFF +ROM:FF12 .byte 0xFF +ROM:FF13 .byte 0xFF +ROM:FF14 .byte 0xFF +ROM:FF15 .byte 0xFF +ROM:FF16 .byte 0xFF +ROM:FF17 .byte 0xFF +ROM:FF18 .byte 0xFF +ROM:FF19 .byte 0xFF +ROM:FF1A .byte 0xFF +ROM:FF1B .byte 0xFF +ROM:FF1C .byte 0xFF +ROM:FF1D .byte 0xFF +ROM:FF1E .byte 0xFF +ROM:FF1F .byte 0xFF +ROM:FF20 .byte 0xFF +ROM:FF21 .byte 0xFF +ROM:FF22 .byte 0xFF +ROM:FF23 .byte 0xFF +ROM:FF24 .byte 0xFF +ROM:FF25 .byte 0xFF +ROM:FF26 .byte 0xFF +ROM:FF27 .byte 0xFF +ROM:FF28 .byte 0xFF +ROM:FF29 .byte 0xFF +ROM:FF2A .byte 0xFF +ROM:FF2B .byte 0xFF +ROM:FF2C .byte 0xFF +ROM:FF2D .byte 0xFF +ROM:FF2E .byte 0xFF +ROM:FF2F .byte 0xFF +ROM:FF30 .byte 0xFF +ROM:FF31 .byte 0xFF +ROM:FF32 .byte 0xFF +ROM:FF33 .byte 0xFF +ROM:FF34 .byte 0xFF +ROM:FF35 .byte 0xFF +ROM:FF36 .byte 0xFF +ROM:FF37 .byte 0xFF +ROM:FF38 .byte 0xFF +ROM:FF39 .byte 0xFF +ROM:FF3A .byte 0xFF +ROM:FF3B .byte 0xFF +ROM:FF3C .byte 0xFF +ROM:FF3D .byte 0xFF +ROM:FF3E .byte 0xFF +ROM:FF3F .byte 0xFF +ROM:FF40 .byte 0xFF +ROM:FF41 .byte 0xFF +ROM:FF42 .byte 0xFF +ROM:FF43 .byte 0xFF +ROM:FF44 .byte 0xFF +ROM:FF45 .byte 0xFF +ROM:FF46 .byte 0xFF +ROM:FF47 .byte 0xFF +ROM:FF48 .byte 0xFF +ROM:FF49 .byte 0xFF +ROM:FF4A .byte 0xFF +ROM:FF4B .byte 0xFF +ROM:FF4C .byte 0xFF +ROM:FF4D .byte 0xFF +ROM:FF4E .byte 0xFF +ROM:FF4F .byte 0xFF +ROM:FF50 .byte 0xFF +ROM:FF51 .byte 0xFF +ROM:FF52 .byte 0xFF +ROM:FF53 .byte 0xFF +ROM:FF54 .byte 0xFF +ROM:FF55 .byte 0xFF +ROM:FF56 .byte 0xFF +ROM:FF57 .byte 0xFF +ROM:FF58 .byte 0xFF +ROM:FF59 .byte 0xFF +ROM:FF5A .byte 0xFF +ROM:FF5B .byte 0xFF +ROM:FF5C .byte 0xFF +ROM:FF5D .byte 0xFF +ROM:FF5E .byte 0xFF +ROM:FF5F .byte 0xFF +ROM:FF60 .byte 0xFF +ROM:FF61 .byte 0xFF +ROM:FF62 .byte 0xFF +ROM:FF63 .byte 0xFF +ROM:FF64 .byte 0xFF +ROM:FF65 .byte 0xFF +ROM:FF66 .byte 0xFF +ROM:FF67 .byte 0xFF +ROM:FF68 .byte 0xFF +ROM:FF69 .byte 0xFF +ROM:FF6A .byte 0xFF +ROM:FF6B .byte 0xFF +ROM:FF6C .byte 0xFF +ROM:FF6D .byte 0xFF +ROM:FF6E .byte 0xFF +ROM:FF6F .byte 0xFF +ROM:FF70 .byte 0xFF +ROM:FF71 .byte 0xFF +ROM:FF72 .byte 0xFF +ROM:FF73 .byte 0xFF +ROM:FF74 .byte 0xFF +ROM:FF75 .byte 0xFF +ROM:FF76 .byte 0xFF +ROM:FF77 .byte 0xFF +ROM:FF78 .byte 0xFF +ROM:FF79 .byte 0xFF +ROM:FF7A .byte 0xFF +ROM:FF7B .byte 0xFF +ROM:FF7C .byte 0xFF +ROM:FF7D .byte 0xFF +ROM:FF7E .byte 0xFF +ROM:FF7F .byte 0xFF +ROM:FF80 .byte 0xFF +ROM:FF81 .byte 0xFF +ROM:FF82 .byte 0xFF +ROM:FF83 .byte 0xFF +ROM:FF84 .byte 0xFF +ROM:FF85 .byte 0xFF +ROM:FF86 .byte 0xFF +ROM:FF87 .byte 0xFF +ROM:FF88 .byte 0xFF +ROM:FF89 .byte 0xFF +ROM:FF8A .byte 0xFF +ROM:FF8B .byte 0xFF +ROM:FF8C .byte 0xFF +ROM:FF8D .byte 0xFF +ROM:FF8E .byte 0xFF +ROM:FF8F .byte 0xFF +ROM:FF90 .byte 0xFF +ROM:FF91 .byte 0xFF +ROM:FF92 .byte 0xFF +ROM:FF93 .byte 0xFF +ROM:FF94 .byte 0xFF +ROM:FF95 .byte 0xFF +ROM:FF96 .byte 0xFF +ROM:FF97 .byte 0xFF +ROM:FF98 .byte 0xFF +ROM:FF99 .byte 0xFF +ROM:FF9A .byte 0xFF +ROM:FF9B .byte 0xFF +ROM:FF9C .byte 0xFF +ROM:FF9D .byte 0xFF +ROM:FF9E .byte 0xFF +ROM:FF9F .byte 0xFF +ROM:FFA0 .byte 0xFF +ROM:FFA1 .byte 0xFF +ROM:FFA2 .byte 0xFF +ROM:FFA3 .byte 0xFF +ROM:FFA4 .byte 0xFF +ROM:FFA5 .byte 0xFF +ROM:FFA6 .byte 0xFF +ROM:FFA7 .byte 0xFF +ROM:FFA8 .byte 0xFF +ROM:FFA9 .byte 0xFF +ROM:FFAA .byte 0xFF +ROM:FFAB .byte 0xFF +ROM:FFAC .byte 0xFF +ROM:FFAD .byte 0xFF +ROM:FFAE .byte 0xFF +ROM:FFAF .byte 0xFF +ROM:FFB0 .byte 0xFF +ROM:FFB1 .byte 0xFF +ROM:FFB2 .byte 0xFF +ROM:FFB3 .byte 0xFF +ROM:FFB4 .byte 0xFF +ROM:FFB5 .byte 0xFF +ROM:FFB6 .byte 0xFF +ROM:FFB7 .byte 0xFF +ROM:FFB8 .byte 0xFF +ROM:FFB9 .byte 0xFF +ROM:FFBA .byte 0xFF +ROM:FFBB .byte 0xFF +ROM:FFBC .byte 0xFF +ROM:FFBD .byte 0xFF +ROM:FFBE .byte 0xFF +ROM:FFBF .byte 0xFF +ROM:FFC0 .byte 0xFF +ROM:FFC1 .byte 0xFF +ROM:FFC2 .byte 0xFF +ROM:FFC3 .byte 0xFF +ROM:FFC4 .byte 0xFF +ROM:FFC5 .byte 0xFF +ROM:FFC6 .byte 0xFF +ROM:FFC7 .byte 0xFF +ROM:FFC8 .byte 0xFF +ROM:FFC9 .byte 0xFF +ROM:FFCA .byte 0xFF +ROM:FFCB .byte 0xFF +ROM:FFCC .byte 0xFF +ROM:FFCD .byte 0xFF +ROM:FFCE .byte 0xFF +ROM:FFCF .byte 0xFF +ROM:FFD0 .byte 0xFF +ROM:FFD1 .byte 0xFF +ROM:FFD2 .byte 0xFF +ROM:FFD3 .byte 0xFF +ROM:FFD4 .byte 0xFF +ROM:FFD5 .byte 0xFF +ROM:FFD6 .byte 0xFF +ROM:FFD7 .byte 0xFF +ROM:FFD8 .byte 0xFF +ROM:FFD9 .byte 0xFF +ROM:FFDA .byte 0xFF +ROM:FFDB .byte 0xFF +ROM:FFDC .byte 0xFF +ROM:FFDD .byte 0xFF +ROM:FFDE .byte 0xFF +ROM:FFDF .byte 0xFF +ROM:FFE0 .byte 0xFF +ROM:FFE1 .byte 0xFF +ROM:FFE2 .byte 0xFF +ROM:FFE3 .byte 0xFF +ROM:FFE4 .byte 0xFF +ROM:FFE5 .byte 0xFF +ROM:FFE6 .byte 0xFF +ROM:FFE7 .byte 0xFF +ROM:FFE8 .byte 0xFF +ROM:FFE9 .byte 0xFF +ROM:FFEA .byte 0xFF +ROM:FFEB .byte 0xFF +ROM:FFEC .byte 0xFF +ROM:FFED .byte 0xFF +ROM:FFEE .byte 0xFF +ROM:FFEF .byte 0xFF +ROM:FFF0 .byte 0xFF +ROM:FFF1 .byte 0xFF +ROM:FFF2 .byte 0xFF +ROM:FFF3 .byte 0xFF +ROM:FFF4 .byte 0xFF +ROM:FFF5 .byte 0xFF +ROM:FFF6 .byte 0xFF +ROM:FFF7 .byte 0xFF +ROM:FFF8 .byte 0xFF +ROM:FFF9 .byte 0xFF +ROM:FFFA .byte 0xFF +ROM:FFFB .byte 0xFF +ROM:FFFC .byte 0xFF +ROM:FFFD .byte 0xFF +ROM:FFFE .byte 0xFF +ROM:FFFF .byte 0xFF +ROM:FFFF ; end of 'ROM' +ROM:FFFF +RAM:0000 ; =========================================================================== +RAM:0000 +RAM:0000 ; Segment type: Internal processor memory & SFR +RAM:0000 ;.segment RAM +RAM:0000 .equ RAM_0,0 ; DATA XREF: ROM_2638+4B↑w +RAM:0000 ; ROM_3588+2B↑r ... +RAM:0001 .equ RAM_1,1 ; DATA XREF: ROM_2638+49↑w +RAM:0001 ; ROM_3588+2D↑r ... +RAM:0002 .equ RAM_2,2 ; DATA XREF: ROM_2638+47↑w +RAM:0002 ; ROM_3588+2F↑r ... +RAM:0003 .equ RAM_3,3 ; DATA XREF: DO_SPI_TRANSACTION_ALT+F↑r +RAM:0003 ; ROM_27D4:ROM_27E9↑r ... +RAM:0004 .equ RAM_4,4 ; DATA XREF: ROM_2638+28↑r +RAM:0004 ; ROM_2916+10A↑r ... +RAM:0005 .equ RAM_5,5 ; DATA XREF: ROM_2638+2A↑r +RAM:0005 ; ROM_2916+10C↑r ... +RAM:0006 .equ RAM_6,6 ; DATA XREF: ROM_4816-2540↑r +RAM:0006 ; ROM_2638+2C↑r ... +RAM:0007 .equ RAM_7,7 ; DATA XREF: ROM_4816-2530↑r +RAM:0007 ; ROM_2638+2E↑r ... +RAM:0008 .equ RAM_8,8 ; DATA XREF: setup_panID_ROM_6737↑w +RAM:0009 .equ RAM_9,9 ; DATA XREF: setup_panID_ROM_6737+2↑w +RAM:000A +RAM:000B +RAM:000C +RAM:000D +RAM:000E +RAM:000F +RAM:0010 +RAM:0011 +RAM:0012 +RAM:0013 +RAM:0014 +RAM:0015 +RAM:0016 +RAM:0017 +RAM:0018 +RAM:0019 +RAM:001A .equ RAM_1A,0x1A ; DATA XREF: ROM_7A07+25↑w +RAM:001A ; ROM_7A07+28↑r ... +RAM:001B +RAM:001C +RAM:001D .equ SPI_ATTEMPTS_RAM_1D,0x1D ; DATA XREF: DO_SPI_TRANSACTION+4↑w +RAM:001D ; DO_SPI_TRANSACTION:SPI_WAIT↑r ... +RAM:001E +RAM:001F +RAM:0020 .equ RAM_20,0x20 ; DATA XREF: start_0+14↑o +RAM:0020 ; ROM_9CCA-7D3F↑w ... +RAM:0021 +RAM:0022 +RAM:0023 +RAM:0024 +RAM:0025 +RAM:0026 +RAM:0027 +RAM:0028 +RAM:0029 +RAM:002A +RAM:002B +RAM:002C +RAM:002D +RAM:002E +RAM:002F +RAM:0030 +RAM:0031 +RAM:0032 +RAM:0033 +RAM:0034 +RAM:0035 +RAM:0036 +RAM:0037 +RAM:0038 +RAM:0039 +RAM:003A +RAM:003B +RAM:003C +RAM:003D +RAM:003E +RAM:003F +RAM:0040 +RAM:0041 .equ RAM_41,0x41 ; DATA XREF: ROM_6E68+F↑r +RAM:0042 +RAM:0043 +RAM:0044 +RAM:0045 +RAM:0046 +RAM:0047 .equ RAM_47,0x47 ; DATA XREF: ROM_ABBC+133↑r +RAM:0048 +RAM:0049 .equ RAM_49,0x49 ; DATA XREF: ROM_6E68+18↑r +RAM:004A +RAM:004B +RAM:004C +RAM:004D +RAM:004E +RAM:004F +RAM:0050 +RAM:0051 +RAM:0052 +RAM:0053 +RAM:0054 +RAM:0055 +RAM:0056 +RAM:0057 +RAM:0058 +RAM:0059 +RAM:005A +RAM:005B +RAM:005C +RAM:005D +RAM:005E +RAM:005F +RAM:0060 +RAM:0061 +RAM:0062 +RAM:0063 +RAM:0064 +RAM:0065 +RAM:0066 +RAM:0067 +RAM:0068 +RAM:0069 +RAM:006A +RAM:006B +RAM:006C +RAM:006D +RAM:006E .equ RAM_6E,0x6E ; DATA XREF: ROM_6E68+13↑w +RAM:006E ; ROM_6E68+1C↑w ... +RAM:006F +RAM:0070 +RAM:0071 +RAM:0072 +RAM:0073 +RAM:0074 +RAM:0075 +RAM:0076 +RAM:0077 +RAM:0078 +RAM:0079 +RAM:007A +RAM:007B +RAM:007C +RAM:007D +RAM:007E +RAM:007F +RAM:0080 +RAM:0081 +RAM:0082 +RAM:0083 +RAM:0084 +RAM:0085 +RAM:0086 +RAM:0087 +RAM:0088 +RAM:0089 +RAM:008A +RAM:008B +RAM:008C +RAM:008D +RAM:008E +RAM:008F +RAM:0090 +RAM:0091 +RAM:0092 +RAM:0093 +RAM:0094 +RAM:0095 +RAM:0096 +RAM:0097 +RAM:0098 +RAM:0099 +RAM:009A +RAM:009B +RAM:009C +RAM:009D +RAM:009E +RAM:009F +RAM:00A0 +RAM:00A1 +RAM:00A2 +RAM:00A3 +RAM:00A4 +RAM:00A5 +RAM:00A6 +RAM:00A7 +RAM:00A8 +RAM:00A9 +RAM:00AA +RAM:00AB +RAM:00AC +RAM:00AD +RAM:00AE +RAM:00AF +RAM:00B0 +RAM:00B1 +RAM:00B2 +RAM:00B3 +RAM:00B4 +RAM:00B5 +RAM:00B6 +RAM:00B7 +RAM:00B8 +RAM:00B9 +RAM:00BA +RAM:00BB +RAM:00BC +RAM:00BD +RAM:00BE +RAM:00BF +RAM:00C0 +RAM:00C1 +RAM:00C2 +RAM:00C3 +RAM:00C4 +RAM:00C5 +RAM:00C6 +RAM:00C7 +RAM:00C8 +RAM:00C9 +RAM:00CA +RAM:00CB +RAM:00CC +RAM:00CD +RAM:00CE +RAM:00CF +RAM:00D0 +RAM:00D1 +RAM:00D2 +RAM:00D3 +RAM:00D4 +RAM:00D5 +RAM:00D6 +RAM:00D7 +RAM:00D8 +RAM:00D9 +RAM:00DA +RAM:00DB +RAM:00DC +RAM:00DD +RAM:00DE +RAM:00DF +RAM:00E0 +RAM:00E1 +RAM:00E2 +RAM:00E3 +RAM:00E4 +RAM:00E5 +RAM:00E6 +RAM:00E7 +RAM:00E8 +RAM:00E9 +RAM:00EA +RAM:00EB +RAM:00EC +RAM:00ED +RAM:00EE +RAM:00EF +RAM:00F0 +RAM:00F1 +RAM:00F2 +RAM:00F3 +RAM:00F4 +RAM:00F5 +RAM:00F6 +RAM:00F7 +RAM:00F8 +RAM:00F9 +RAM:00FA +RAM:00FB +RAM:00FC +RAM:00FD +RAM:00FE +RAM:00FF +RAM:00FF ; end of 'RAM' +RAM:00FF +FSR:0080 ; =========================================================================== +FSR:0080 +FSR:0080 ; Segment type: Internal processor memory & SFR +FSR:0080 ;.segment FSR +FSR:0080 ; .equ $, 0x80 +FSR:0080 .equ P0,0x80 ; DATA XREF: ROM_4EB5+17↑w +FSR:0080 ; ROM_4EB5+19↑w ... +FSR:0080 ; Port 0 +FSR:0081 .equ SP,0x81 ; DATA XREF: start_0+14↑w +FSR:0081 ; Stack Pointer +FSR:0082 .equ DP0L,0x82 ; DATA XREF: start_0+83↑w +FSR:0082 ; start_0+8D↑w ... +FSR:0082 ; Data Pointer Low Byte +FSR:0083 .equ DP0H,0x83 ; DATA XREF: start_0+87↑w +FSR:0083 ; start_0+91↑w ... +FSR:0083 ; Data Pointer High Byte +FSR:0084 .equ DP1L,0x84 ; Data Pointer 1 Low Byte +FSR:0085 .equ DP1H,0x85 ; Data Pointer 1 High Byte +FSR:0086 .equ SPDR,0x86 ; SPI Data Register +FSR:0087 .equ PCON,0x87 ; Power Control Register +FSR:0088 .equ TCON,0x88 ; DATA XREF: ROM_27D4+A↑w +FSR:0088 ; ROM_27D4+D↑w ... +FSR:0088 ; Timer Control Register +FSR:0089 .equ TMOD,0x89 ; DATA XREF: Timer0_Reset_ROM_9F84+5↑w +FSR:0089 ; Timer Mode Control Register +FSR:008A .equ TL0,0x8A ; DATA XREF: Timer0_Reset_ROM_9F84+1↑w +FSR:008A ; Timer 0 Low Byte +FSR:008B .equ TL1,0x8B ; Timer 1 Low Byte +FSR:008C .equ TH0,0x8C ; DATA XREF: Timer0_Reset_ROM_9F84+3↑w +FSR:008C ; Timer 0 High Byte +FSR:008D .equ TH1,0x8D ; Timer 1 High Byte +FSR:008E .equ FSR_8E,0x8E ; DATA XREF: wdt_radioreset_clk_ROM_9692+21↑w +FSR:008F .equ FSR_8F,0x8F ; DATA XREF: reset_radio↑w +FSR:008F ; reset_radio+3↑w ... +FSR:0090 .equ P1,0x90 ; DATA XREF: timint1+3↑w +FSR:0090 ; EEPROM_SPI_TRANSACTION↑w ... +FSR:0090 ; Port 1 +FSR:0091 +FSR:0092 +FSR:0093 +FSR:0094 +FSR:0095 +FSR:0096 .equ WMCON,0x96 ; Watchdog and Memory Control Register +FSR:0097 +FSR:0098 .equ SCON,0x98 ; DATA XREF: UART_SETUP_ROM_6C20+29↑w +FSR:0098 ; UART_SETUP_ROM_6C20+2C↑w ... +FSR:0098 ; Serial Port Control +FSR:0099 .equ SBUF,0x99 ; DATA XREF: extint0_0+21↑w +FSR:0099 ; extint0_0+36↑r +FSR:0099 ; Serial Port Buffer +FSR:009A .equ FSR_9A,0x9A ; DATA XREF: UART_SETUP_ROM_6C20+26↑w +FSR:009B .equ FSR_9B,0x9B ; DATA XREF: UART_SETUP_ROM_6C20+24↑w +FSR:009C +FSR:009D +FSR:009E +FSR:009F +FSR:00A0 .equ P2,0xA0 ; DATA XREF: code_42E↑w +FSR:00A0 ; ROM_3671+6F↑r ... +FSR:00A0 ; Port 2 +FSR:00A1 .equ FSR_A1,0xA1 ; DATA XREF: magic_ROM_35F3+8↑w +FSR:00A1 ; ROM_3745+3↑w ... +FSR:00A2 +FSR:00A3 +FSR:00A4 +FSR:00A5 .equ P2LVLSEL,0xA5 ; DATA XREF: ROM_3671+1D↑w +FSR:00A5 ; ROM_3671+2B↑w +FSR:00A6 +FSR:00A7 +FSR:00A8 .equ IE,0xA8 ; DATA XREF: pretty_early_init_code_1DFD+19↑w +FSR:00A8 ; ROM_2E76+1↑r ... +FSR:00A8 ; Interrupt Enable Register 0 +FSR:00A9 .equ P2INTEN,0xA9 ; DATA XREF: ROM_3671+31↑w +FSR:00A9 ; ROM_3671+59↑w +FSR:00AA .equ SPSR,0xAA ; SPI Status Register , different to AT89C52 +FSR:00AB +FSR:00AC .equ P2CHSTA,0xAC ; DATA XREF: ROM_3671:Enable_P2_1_pinchange_interrupt_ROM_369F↑w +FSR:00AC ; ROM_3671+34↑w ... +FSR:00AD .equ P0FUNC,0xAD ; DATA XREF: ROM_4EB5:ROM_4EC2↑w +FSR:00AD ; ROM_506B+7↑w ... +FSR:00AE .equ P1FUNC,0xAE ; DATA XREF: ROM_506B:ROM_507C↑w +FSR:00AE ; ROM_6C02↑w ... +FSR:00AF .equ P2FUNC,0xAF ; DATA XREF: ROM_3671+14↑w +FSR:00AF ; ROM_3671:Set_P2_1_Rising_int↑w ... +FSR:00B0 .equ P3,0xB0 ; Port 3 +FSR:00B1 +FSR:00B2 +FSR:00B3 +FSR:00B4 +FSR:00B5 +FSR:00B6 +FSR:00B7 .equ FSR_B7,0xB7 ; DATA XREF: SetupPinsForEEProm+6↑w +FSR:00B7 ; ROM_506B+1C↑w ... +FSR:00B8 .equ IP,0xB8 ; Interrupt Priority Register +FSR:00B9 .equ FSR_B9,0xB9 ; DATA XREF: ROM_4EB5+10↑w +FSR:00B9 ; ROM_4EB5+25↑w ... +FSR:00BA .equ FSR_BA,0xBA ; DATA XREF: eeprom_spi_transaction_code_436+9↑w +FSR:00BA ; SetupPinsForEEProm+9↑w ... +FSR:00BB .equ FSR_BB,0xBB ; DATA XREF: ROM_3671+17↑w +FSR:00BB ; ROM_3671+25↑w ... +FSR:00BC .equ FSR_BC,0xBC ; DATA XREF: SetupPinsForEEProm+3↑w +FSR:00BC ; gpio_setup_magic_ROM_5004+8↑w ... +FSR:00BD .equ FSR_BD,0xBD ; DATA XREF: eeprom_spi_transaction_code_436+C↑w +FSR:00BD ; gpio_setup_magic_ROM_5004+19↑w ... +FSR:00BE .equ FSR_BE,0xBE ; DATA XREF: ROM_3671+1A↑w +FSR:00BE ; ROM_3671+28↑w ... +FSR:00BF .equ FSR_BF,0xBF ; DATA XREF: EnableWatchdog+5↑w +FSR:00BF ; ROM_614C+3↑w ... +FSR:00C0 +FSR:00C1 .equ FSR_C1,0xC1 ; DATA XREF: ROM_2FD1+3↑w +FSR:00C1 ; ROM_30A0+39↑w ... +FSR:00C2 .equ FSR_C2,0xC2 ; DATA XREF: unknown_registers_ROM_9F8D+B↑w +FSR:00C3 .equ FSR_C3,0xC3 ; DATA XREF: magic_ROM_35F3+B↑w +FSR:00C3 ; ROM_3742↑w ... +FSR:00C4 +FSR:00C5 +FSR:00C6 +FSR:00C7 .equ FSR_C7,0xC7 ; DATA XREF: ROM_375F+E↑w +FSR:00C7 ; More_OTA_ROM_8562+17↑w ... +FSR:00C8 .equ T2CON,0xC8 ; Timer 2 Control +FSR:00C9 .equ T2MOD,0xC9 ; DATA XREF: ROM_49FD+5CE5↑w +FSR:00C9 ; Timer 2 Mode +FSR:00CA .equ RCAP2L,0xCA ; DATA XREF: ROM_49FD+5CE8↑w +FSR:00CA ; Timer 2 Capture Low Byte +FSR:00CB .equ RCAP2H,0xCB ; DATA XREF: ROM_375F+11↑w +FSR:00CB ; Setup_Radio_Regs_ROM_A6FD+9↑w +FSR:00CB ; Timer 2 Capture High Byte +FSR:00CC .equ TL2,0xCC ; DATA XREF: Setup_Radio_Regs_ROM_A6FD+C↑w +FSR:00CC ; Timer 2 Low Byte +FSR:00CD .equ TH2,0xCD ; DATA XREF: ROM_49FD+5CE3↑w +FSR:00CD ; Timer 2 High Byte +FSR:00CE .equ FSR_CE,0xCE ; DATA XREF: Setup_Radio_Regs_ROM_A6FD+6↑w +FSR:00CF .equ FSR_CF,0xCF ; DATA XREF: ROM_375F+14↑w +FSR:00CF ; SleepSub+3E↑w ... +FSR:00D0 .equ PSW,0xD0 ; DATA XREF: code_54B+3C↑r +FSR:00D0 ; code_54B+43↑r ... +FSR:00D0 ; Program Status Word +FSR:00D1 .equ FSR_D1,0xD1 ; DATA XREF: Setup_Radio_Regs_ROM_A6FD+15↑w +FSR:00D2 .equ FSR_D2,0xD2 ; DATA XREF: Setup_Radio_Regs_ROM_A6FD+18↑w +FSR:00D3 .equ FSR_D3,0xD3 ; DATA XREF: Radio_init_something_ROM_A332+28↑w +FSR:00D4 .equ FSR_D4,0xD4 ; DATA XREF: Radio_init_something_ROM_A332+2B↑w +FSR:00D4 ; ROM_DA44+1↑w +FSR:00D5 .equ SPCR,0xD5 ; DATA XREF: Radio_init_something_ROM_A332+26↑w +FSR:00D5 ; ROM_DA44+3↑w +FSR:00D5 ; SPI Control Register +FSR:00D6 .equ FSR_D6,0xD6 ; DATA XREF: Setup_Radio_Regs_ROM_A6FD+12↑w +FSR:00D6 ; ROM_DA44+5↑w +FSR:00D7 .equ FSR_D7,0xD7 ; DATA XREF: ROM_874D+7↑w +FSR:00D7 ; Radio_init_something_ROM_A332+2E↑w ... +FSR:00D8 .equ FSR_D8,0xD8 ; DATA XREF: Load_temperature_calibration_ROM_A5CA+14↑w +FSR:00D8 ; Load_temperature_calibration_ROM_A5CA:ROM_A609↑w +FSR:00D9 .equ FSR_D9,0xD9 ; DATA XREF: More_OTA_ROM_8562+12↑w +FSR:00D9 ; ROM_8722+B↑w ... +FSR:00DA .equ FSR_DA,0xDA ; DATA XREF: More_OTA_ROM_8562+15↑w +FSR:00DA ; ROM_8722+E↑w ... +FSR:00DB .equ FSR_DB,0xDB ; DATA XREF: More_OTA_ROM_8562+C↑w +FSR:00DB ; ROM_8722+6↑w ... +FSR:00DC .equ FSR_DC,0xDC ; DATA XREF: More_OTA_ROM_8562+E↑w +FSR:00DC ; ROM_8722+9↑w ... +FSR:00DD .equ FSR_DD,0xDD ; DATA XREF: Load_temperature_calibration_ROM_A5CA+1D↑w +FSR:00DD ; ROM_D249+14↑w +FSR:00DE .equ FSR_DE,0xDE ; DATA XREF: Load_temperature_calibration_ROM_A5CA+1B↑w +FSR:00DE ; ROM_D249+18↑w +FSR:00DF .equ FSR_DF,0xDF ; DATA XREF: More_OTA_ROM_8562+1A↑w +FSR:00DF ; ROM_8722+14↑w ... +FSR:00E0 .equ ACC,0xE0 ; DATA XREF: start_0+62↑r +FSR:00E0 ; start_0+71↑r ... +FSR:00E0 ; Accumulator +FSR:00E1 +FSR:00E2 +FSR:00E3 +FSR:00E4 +FSR:00E5 +FSR:00E6 .equ FSR_E6,0xE6 ; DATA XREF: Temperature_something_ROM_9B9B+B↑w +FSR:00E7 .equ FSR_E7,0xE7 ; DATA XREF: Temperature_something_ROM_9B9B+8↑w +FSR:00E8 +FSR:00E9 +FSR:00EA +FSR:00EB .equ FSR_EB,0xEB ; DATA XREF: DO_SPI_TRANSACTION+E↑r +FSR:00EB ; DO_SPI_TRANSACTION:SPI_DONE↑w ... +FSR:00EC .equ FSR_EC,0xEC ; DATA XREF: START_SPI_FROM_R7_ROM_A63B+8↑w +FSR:00ED .equ FSR_ED,0xED ; DATA XREF: SPI_GET_RESULT+5↑w +FSR:00ED ; START_SPI_FROM_R7_ROM_A63B+3↑w +FSR:00EE .equ FSR_EE,0xEE ; DATA XREF: START_SPI_FROM_R7_ROM_A63B+6↑w +FSR:00EF .equ FSR_EF,0xEF ; DATA XREF: SPI_GET_RESULT+3↑r +FSR:00F0 .equ B,0xF0 ; DATA XREF: code_54B+25↑w +FSR:00F0 ; code_54B+27↑w ... +FSR:00F0 ; B Register +FSR:00F1 +FSR:00F2 +FSR:00F3 +FSR:00F4 +FSR:00F5 +FSR:00F6 +FSR:00F7 .equ FSR_F7,0xF7 ; DATA XREF: Temperature_something_ROM_9B9B+5↑w +FSR:00F7 ; Temperature_something_ROM_9B9B+19↑w +FSR:00F8 .equ FSR_F8,0xF8 ; DATA XREF: ROM_D239+5↑w +FSR:00F8 ; ROM_D239:ROM_D241↑r ... +FSR:00F9 .equ FSR_F9,0xF9 ; DATA XREF: ROM_D249+B↑w +FSR:00FA .equ FSR_FA,0xFA ; DATA XREF: Radio_init_something_ROM_A332↑r +FSR:00FB .equ FSR_FB,0xFB ; DATA XREF: Temperature_something_ROM_9B9B+11↑w +FSR:00FC .equ FSR_FC,0xFC ; DATA XREF: Temperature_something_ROM_9B9B+F↑w +FSR:00FD .equ FSR_FD,0xFD ; DATA XREF: Temperature_something_ROM_9B9B+16↑w +FSR:00FE .equ FSR_FE,0xFE ; DATA XREF: Temperature_something_ROM_9B9B+13↑w +FSR:00FF .equ FSR_FF,0xFF ; DATA XREF: DO_SPI_TRANSACTION_ALT↑r +FSR:00FF ; DO_SPI_TRANSACTION_ALT+11↑w ... +FSR:00FF ; end of 'FSR' +FSR:00FF +FSR:00FF +FSR:00FF .end ;start + From 01a3b13b5ad931aebd36680798bc02ae116fd463 Mon Sep 17 00:00:00 2001 From: Jelmer Date: Wed, 15 Feb 2023 22:01:05 +0100 Subject: [PATCH 3/7] blaat --- crap/027C4B633B1A.bin.html | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/crap/027C4B633B1A.bin.html b/crap/027C4B633B1A.bin.html index 0f8821c3..9f663fcb 100644 --- a/crap/027C4B633B1A.bin.html +++ b/crap/027C4B633B1A.bin.html @@ -2,7 +2,7 @@ -IDA - 027C4B633B1A.bin.i64 (027C4B633B1A.bin) \\utility.opus.lan\wwwdir\027C4B633B1A.bin.i64 +IDA - 027C4B633B1A.bin.i64 (027C4B633B1A.bin) 027C4B633B1A.bin.i64 @@ -11,7 +11,7 @@ code:0000 ; +-------------------------------------------------------------------------+ code:0000 ; | This file was generated by The Interactive Disassembler (IDA) | code:0000 ; | Copyright (c) 2019 Hex-Rays, <support@hex-rays.com> | -code:0000 ; | License info: 48-256C-4840-25 | +code:0000 ; | License info: | code:0000 ; | Team-IRA Release [PUBLIC] ,v1.0 | code:0000 ; +-------------------------------------------------------------------------+ code:0000 ; @@ -19,7 +19,6 @@ code:0000 ; Input MD5 : 3DF1A99EBA92423B6117D7291E03DCA9 code:0000 ; Input CRC32 : 53292AA9 code:0000 -code:0000 ; File Name : \\utility.opus.lan\wwwdir\027C4B633B1A.bin code:0000 ; Format : Binary file code:0000 ; Base Address: 0000h Range: 0000h - 10000h Loaded length: 10000h code:0000 From a375e8ff60fa42812de56da757076871b1f8166a Mon Sep 17 00:00:00 2001 From: Jelmer Date: Wed, 15 Feb 2023 22:01:57 +0100 Subject: [PATCH 4/7] blaat2 --- crap/027C4B633B1A.bin.html | 1 - 1 file changed, 1 deletion(-) diff --git a/crap/027C4B633B1A.bin.html b/crap/027C4B633B1A.bin.html index 9f663fcb..44d31fcf 100644 --- a/crap/027C4B633B1A.bin.html +++ b/crap/027C4B633B1A.bin.html @@ -12,7 +12,6 @@ code:0000 ; | This file was generated by The Interactive Disassembler (IDA) | code:0000 ; | Copyright (c) 2019 Hex-Rays, <support@hex-rays.com> | code:0000 ; | License info: | -code:0000 ; | Team-IRA Release [PUBLIC] ,v1.0 | code:0000 ; +-------------------------------------------------------------------------+ code:0000 ; code:0000 ; Input SHA256 : 70C25228315B81666DE14A5CACEEF570D5E8A918429043F10D1CA03DA4EE52E5 From 6c5031ad4c14763a654037ba60a2f90def711d6b Mon Sep 17 00:00:00 2001 From: Jelmer Date: Fri, 17 Feb 2023 00:15:01 +0100 Subject: [PATCH 5/7] fixed the epd-reset-wake issue --- tag_fw/epd.c | 27 +++++++ tag_fw/epd.h | 3 + tag_fw/main.c | 45 +++++------- tag_fw/powermgt.c | 168 +++++++++++++++++++++++++++++++++---------- tag_fw/powermgt.h | 2 + tag_fw/syncedproto.c | 10 ++- 6 files changed, 187 insertions(+), 68 deletions(-) diff --git a/tag_fw/epd.c b/tag_fw/epd.c index 717fdb24..3b8835e7 100644 --- a/tag_fw/epd.c +++ b/tag_fw/epd.c @@ -79,6 +79,8 @@ static uint8_t __xdata dispLutSize = 0; static bool __xdata isInited = false; +bool __xdata epdGPIOActive = false; + #define LUT_BUFFER_SIZE 128 uint8_t waveformbuffer[LUT_BUFFER_SIZE]; struct waveform10* __xdata waveform10 = (struct waveform10*)waveformbuffer; // holds the LUT/waveform @@ -193,6 +195,31 @@ static void epdReset() { shortCommand(CMD_SOFT_RESET2); timerDelay(TIMER_TICKS_PER_SECOND / 1000); } +void epdConfigGPIO(bool setup) { + // data / _command: 2.2 + // busy 2.1 + // reset 2.0 + // _select 1.7 + // bs1 1.2 + + // GENERIC SPI BUS PINS + // spi.clk 0.0 + // spi.mosi 0.1 + if(epdGPIOActive==setup)return; + if (setup) { + P2DIR |= (1 << 1); // busy as input + P2DIR &= ~((1 << 2) | (1 << 0)); // D/C and Reset as output + P1DIR &= ~((1 << 7) | (1 << 2)); // select and bs1 as output + P1_2 = 0; // select 4-wire SPI / BS1 = low + P1_7 = 1; // deselect EPD + } else { + P2DIR |= ((1 << 2) | (1 << 0)); // DC and Reset as input + P2 &= ~((1 << 2) | (1 << 0)); + P1DIR |= ((1 << 7) | (1 << 2)); // Select and BS1 as input + P2 &= ~((1 << 7)); + } + epdGPIOActive = setup; +} void epdEnterSleep() { P2_0 = 0; timerDelay(10); diff --git a/tag_fw/epd.h b/tag_fw/epd.h index d7aa94b5..0197f3bb 100644 --- a/tag_fw/epd.h +++ b/tag_fw/epd.h @@ -36,6 +36,9 @@ void epdSetup(); void epdEnterSleep(); uint16_t epdGetBattery(); +void epdConfigGPIO(bool setup); + +extern bool __xdata epdGPIOActive; void setWindowX(uint16_t start, uint16_t end); void setWindowY(uint16_t start, uint16_t end); diff --git a/tag_fw/main.c b/tag_fw/main.c index 313081e3..bb19ad8a 100644 --- a/tag_fw/main.c +++ b/tag_fw/main.c @@ -143,7 +143,8 @@ uint8_t channelSelect() { // returns 0 if no accesspoints were found void mainProtocolLoop(void) { // displayLoop(); // remove me - powerUp(INIT_BASE | INIT_UART | INIT_GPIO); + setupPortsInitial(); + powerUp(INIT_BASE | INIT_UART); if (RESET & 0x01) { wakeUpReason = WAKEUP_REASON_WDT_RESET; @@ -169,7 +170,7 @@ void mainProtocolLoop(void) { pr("Mac can't be all FF's.\n"); powerUp(INIT_EPD); showNoMAC(); - powerDown(INIT_EPD | INIT_GPIO | INIT_EEPROM); + powerDown(INIT_EPD | INIT_UART | INIT_EEPROM); doSleep(-1); wdtDeviceReset(); } @@ -196,23 +197,22 @@ void mainProtocolLoop(void) { wdt30s(); currentChannel = showChannelSelect(); - powerUp(INIT_GPIO | INIT_EPD); - wdt10s(); if (currentChannel) { showAPFound(); initPowerSaving(INTERVAL_BASE); - powerDown(INIT_EPD | INIT_GPIO); + powerDown(INIT_EPD | INIT_UART); doSleep(5000UL); } else { showNoAP(); initPowerSaving(INTERVAL_AT_MAX_ATTEMPTS); - powerDown(INIT_EPD | INIT_GPIO); + powerDown(INIT_EPD | INIT_UART); doSleep(120000UL); } while (1) { + powerUp(INIT_UART); wdt10s(); if (currentChannel) { // associated @@ -222,28 +222,30 @@ void mainProtocolLoop(void) { if ((longDataReqCounter > LONG_DATAREQ_INTERVAL) || wakeUpReason != WAKEUP_REASON_TIMED) { // check if we should do a voltage measurement (those are pretty expensive) if (voltageCheckCounter == VOLTAGE_CHECK_INTERVAL) { - powerUp(INIT_BASE | INIT_TEMPREADING | INIT_EPD_VOLTREADING | INIT_RADIO); + powerUp(INIT_TEMPREADING | INIT_EPD_VOLTREADING); voltageCheckCounter = 0; } else { - powerUp(INIT_BASE | INIT_TEMPREADING | INIT_RADIO); + powerUp(INIT_TEMPREADING); } voltageCheckCounter++; // check if the battery level is below minimum, and force a redraw of the screen if ((lowBattery && !lowBatteryShown) || (noAPShown)) { - powerUp(INIT_EPD); // Check if we were already displaying an image if (curImgSlot != 0xFF) { - powerUp(INIT_EEPROM); + powerUp(INIT_EEPROM | INIT_EPD); drawImageFromEeprom(curImgSlot); - powerDown(INIT_EEPROM); + powerDown(INIT_EEPROM | INIT_EPD); } else { + powerUp(INIT_EPD); showAPFound(); powerDown(INIT_EPD); } } - + powerUp(INIT_RADIO); avail = getAvailDataInfo(); + powerDown(INIT_RADIO); + if (avail != NULL) { // we got some data! longDataReqCounter = 0; @@ -251,10 +253,10 @@ void mainProtocolLoop(void) { wakeUpReason = WAKEUP_REASON_TIMED; } } else { - powerUp(INIT_BASE | INIT_RADIO); //| INIT_GPIO | INIT_UART + powerUp(INIT_RADIO); avail = getShortAvailDataInfo(); + powerDown(INIT_RADIO); } - powerDown(INIT_RADIO); addAverageValue(); @@ -266,22 +268,17 @@ void mainProtocolLoop(void) { // got some data from the AP! if (avail->dataType != DATATYPE_NOUPDATE) { // data transfer - powerUp(INIT_GPIO | INIT_UART); if (processAvailDataInfo(avail)) { // succesful transfer, next wake time is determined by the NextCheckin; } else { // failed transfer, let the algorithm determine next sleep interval (not the AP) nextCheckInFromAP = 0; } - powerUp(INIT_GPIO); - powerDown(INIT_EEPROM | INIT_RADIO); } else { // no data transfer, just sleep. } } - powerDown(INIT_GPIO); - uint16_t nextCheckin = getNextSleep(); longDataReqCounter += nextCheckin; if (nextCheckin == INTERVAL_AT_MAX_ATTEMPTS) { @@ -299,14 +296,13 @@ void mainProtocolLoop(void) { } else { // not associated if (((scanAttempts != 0) && (scanAttempts % VOLTAGEREADING_DURING_SCAN_INTERVAL == 0)) || (scanAttempts > (INTERVAL_1_ATTEMPTS + INTERVAL_2_ATTEMPTS))) { - powerUp(INIT_BASE | INIT_EPD_VOLTREADING | INIT_RADIO); - } else { - powerUp(INIT_BASE | INIT_RADIO); // || INIT_GPIO | INIT_UART + powerUp(INIT_EPD_VOLTREADING); } // try to find a working channel powerUp(INIT_RADIO); currentChannel = channelSelect(); powerDown(INIT_RADIO); + if ((!currentChannel && !noAPShown) || (lowBattery && !lowBatteryShown) || (scanAttempts == (INTERVAL_1_ATTEMPTS + INTERVAL_2_ATTEMPTS - 1))) { powerUp(INIT_EPD); if (curImgSlot != 0xFF) { @@ -315,15 +311,12 @@ void mainProtocolLoop(void) { powerDown(INIT_EEPROM); } else if ((scanAttempts >= (INTERVAL_1_ATTEMPTS + INTERVAL_2_ATTEMPTS - 1))) { showLongTermSleep(); - powerDown(INIT_EPD); } else { showNoAP(); - powerDown(INIT_EPD); } + powerDown(INIT_EPD); } - powerDown(INIT_GPIO); - // did we find a working channel? if (currentChannel) { // now associated! diff --git a/tag_fw/powermgt.c b/tag_fw/powermgt.c index 653883d8..a2a38a4e 100644 --- a/tag_fw/powermgt.c +++ b/tag_fw/powermgt.c @@ -38,54 +38,75 @@ bool __xdata lowBattery = false; uint16_t __xdata longDataReqCounter = 0; uint16_t __xdata voltageCheckCounter = 0; +bool __xdata spiActive = false; +bool __xdata uartActive = false; +bool __xdata eepromActive = false; + extern int8_t adcSampleTemperature(void); // in degrees C +void setupPortsInitial() { + P0INTEN = 0; + P1INTEN = 0; + P2INTEN = 0; + P0FUNC = 0; + P1FUNC = 0; + P2FUNC = 0; + P0DIR = 0xFF; + P1DIR = 0xFF; + P2DIR = 0xFF; + P0PULL = 0x00; + P1PULL = 0x00; + P2PULL = 0x00; +} + void initPowerSaving(uint16_t initialValue) { for (uint8_t c = 0; c < POWER_SAVING_SMOOTHING; c++) { dataReqAttemptArr[c] = initialValue; } } -void powerUp(uint8_t parts) { - if (parts & INIT_BASE) { - clockingAndIntsInit(); - timerInit(); - irqsOn(); - } - if (parts & INIT_GPIO){ - boardInit(); +void configSPI(bool setup) { + if (setup == spiActive) return; + if (setup) { + P0FUNC |= (1 << 0) | (1 << 1) | (1 << 2); + P0DIR |= (1 << 2); // MISO as input + P0DIR &= ~((1 << 0) | (1 << 1)); // CLK and MOSI as output + P0PULL |= (1 << 2); + spiInit(); wdtOn(); + } else { + P0FUNC &= ~((1 << 0) | (1 << 1) | (1 << 2)); + P0DIR |= (1 << 0) | (1 << 1) | (1 << 2); + P0PULL &= ~(1 << 2); + uint8_t bcp; + CLKEN &= ~(0x08); + bcp = CFGPAGE; + CFGPAGE = 4; + SPIENA &= ~(0x81); + CFGPAGE = bcp; } + spiActive = setup; +} - if (parts & INIT_EPD) - epdSetup(); - - if ((parts & INIT_BASE) && !(parts & INIT_EPD_VOLTREADING) && !(parts & INIT_EPD)) { - if (!(parts & INIT_GPIO)){ - boardInit(); - wdtOn(); - } - epdEnterSleep(); // this required fixing! halp halp fix me - } - - if (parts & INIT_EPD_VOLTREADING) { - if (!(parts & INIT_GPIO)){ - boardInit(); - wdtOn(); - } - batteryVoltage = epdGetBattery(); - if (batteryVoltage < BATTERY_VOLTAGE_MINIMUM) { - lowBattery = true; - } else { - lowBattery = false; - } - } - - if (parts & INIT_UART) { +void configUART(bool setup) { + if (uartActive == setup) return; + if (setup) { + P0FUNC |= (1 << 6); + P0DIR &= ~(1 << 6); uartInit(); + } else { + P0DIR |= (1 << 6); + P0FUNC &= ~(1 << 6); + CLKEN &= ~(0x20); } + uartActive = setup; +} - if (parts & INIT_EEPROM) { +void configEEPROM(bool setup) { + if (setup == eepromActive) return; + if (setup) { + P1FUNC &= ~(1 << 1); + P1DIR &= ~(1 << 1); if (!eepromInit()) { powerDown(INIT_RADIO); powerUp(INIT_EPD); @@ -94,6 +115,46 @@ void powerUp(uint8_t parts) { doSleep(-1); wdtDeviceReset(); } + } else { + P1DIR |= (1 << 1); + } + setup == eepromActive; +} + +void powerUp(uint8_t parts) { + if (parts & INIT_BASE) { + clockingAndIntsInit(); + timerInit(); + irqsOn(); + wdtOn(); + } + + if (parts & INIT_EPD) { + configSPI(true); + epdConfigGPIO(true); + epdSetup(); + } + + if (parts & INIT_EPD_VOLTREADING) { + epdConfigGPIO(true); + configSPI(true); + batteryVoltage = epdGetBattery(); + if (batteryVoltage < BATTERY_VOLTAGE_MINIMUM) { + lowBattery = true; + } else { + lowBattery = false; + } + configSPI(false); + epdConfigGPIO(false); + } + + if (parts & INIT_UART) { + configUART(true); + } + + if (parts & INIT_EEPROM) { + configSPI(true); + configEEPROM(true); } if (parts & INIT_TEMPREADING) { @@ -113,6 +174,9 @@ void powerUp(uint8_t parts) { } void powerDown(uint8_t parts) { + if (parts & INIT_UART) { + configUART(false); + } if (parts & INIT_RADIO) { radioRxEnable(false, true); RADIO_IRQ4_pending = 0; @@ -127,18 +191,45 @@ void powerDown(uint8_t parts) { if (parts & INIT_EEPROM) { eepromDeepPowerDown(); eepromPrvDeselect(); + configEEPROM(false); } - if (parts & INIT_EPD) + if (parts & INIT_EPD) { + epdConfigGPIO(true); epdEnterSleep(); - - if (parts & INIT_GPIO) - powerPortsDownForSleep(); + epdConfigGPIO(false); + } + if (!eepromActive && !epdGPIOActive) { + configSPI(false); + } } void doSleep(uint32_t __xdata t) { // if (t > 1000) pr("s=%lu\n ", t / 1000); // powerPortsDownForSleep(); + // set up pins for spi(0.0,0.1,0.2), UART (0.6) + // setup 1.1(eeprom_nCS), 1.2(eink_BS1), 1.7(eink_nCS) + // setup 2.0(eink_nRST), 2.1(eink_BUSY), 2.2(eink_D/nC) + + P0FUNC = 0; + P1FUNC = 0; + P2FUNC = 0; + + P0DIR = 1; + P0 = 0; + P0PULL = 1; + + P1DIR = 0x86; + P1PULL = 0x86; + + P2DIR = 7; + P2 = 0; + P2PULL = 5; + + spiActive = false; + uartActive = false; + eepromActive = false; + #ifdef HAS_BUTTON // Button setup on TEST pin 1.0 (input pullup) P1FUNC &= ~(1 << 0); @@ -148,7 +239,6 @@ void doSleep(uint32_t __xdata t) { P1INTEN = (1 << 0); P1CHSTA &= ~(1 << 0); #endif - // sleepy sleepForMsec(t); #ifdef HAS_BUTTON diff --git a/tag_fw/powermgt.h b/tag_fw/powermgt.h index 6644ff4b..806a63ba 100644 --- a/tag_fw/powermgt.h +++ b/tag_fw/powermgt.h @@ -59,6 +59,8 @@ #define INTERVAL_2_ATTEMPTS 12 // for 12 attempts (an additional day) #define INTERVAL_3_TIME 86400UL // Finally, try every day +extern void setupPortsInitial(); + extern void powerUp(uint8_t parts); extern void powerDown(uint8_t parts); diff --git a/tag_fw/syncedproto.c b/tag_fw/syncedproto.c index 44098843..a5656ee0 100644 --- a/tag_fw/syncedproto.c +++ b/tag_fw/syncedproto.c @@ -451,7 +451,6 @@ void saveImgBlockData(uint8_t imgSlot, uint8_t blockId) { void drawImageFromEeprom(uint8_t imgSlot) { drawImageAtAddress(getAddressForSlot(imgSlot), drawWithLut); drawWithLut = 0; // default back to the regular ol' stock/OTP LUT - powerDown(INIT_EPD); } uint32_t getHighSlotId() { uint32_t temp = 0; @@ -670,7 +669,6 @@ bool downloadImageData(struct AvailDataInfo *__xdata avail) { } bool processAvailDataInfo(struct AvailDataInfo *__xdata avail) { - powerUp(INIT_EEPROM | INIT_UART | INIT_GPIO); switch (avail->dataType) { case DATATYPE_IMG_BMP: case DATATYPE_IMG_DIFF: @@ -689,6 +687,7 @@ bool processAvailDataInfo(struct AvailDataInfo *__xdata avail) { // check if we've seen this version before powerUp(INIT_EEPROM); curImgSlot = findSlot(&(avail->dataVer)); + powerDown(INIT_EEPROM); if (curImgSlot != 0xFF) { // found a (complete)valid image slot for this version powerUp(INIT_RADIO); @@ -703,13 +702,18 @@ bool processAvailDataInfo(struct AvailDataInfo *__xdata avail) { drawWithLut = avail->dataTypeArgument; wdt60s(); + powerUp(INIT_EPD | INIT_EEPROM); drawImageFromEeprom(curImgSlot); + powerDown(INIT_EPD | INIT_EEPROM); return true; } else { - drawWithLut = avail->dataTypeArgument; // not found in cache, prepare to download + drawWithLut = avail->dataTypeArgument; + powerUp(INIT_EEPROM); downloadImageData(avail); + powerUp(INIT_EPD); drawImageFromEeprom(curImgSlot); + powerDown(INIT_EPD | INIT_EEPROM); return true; } break; From fb271fb22e45466065a5eacf4876935b303a1ec3 Mon Sep 17 00:00:00 2001 From: Jelmer Date: Fri, 17 Feb 2023 14:27:47 +0100 Subject: [PATCH 6/7] refactored some stuff, better low power sleep --- fw_dumps/0000026619db3438.bin | Bin 0 -> 1024 bytes {crap => fw_dumps}/027C4B633B1A.bin | Bin {crap => fw_dumps}/027C4B633B1A.bin.html | 11 --- fw_dumps/027C4D453B18.bin | Bin 0 -> 65536 bytes fw_dumps/02A901443416.bin | Bin 0 -> 65536 bytes fw_dumps/02BE4D273B12.bin | Bin 0 -> 65536 bytes tag_fw/drawing.c | 8 +- tag_fw/fw154.bin | Bin 54068 -> 54367 bytes tag_fw/fw29.bin | Bin 54524 -> 54821 bytes tag_fw/fw42.bin | Bin 54538 -> 54835 bytes tag_fw/powermgt.c | 17 ++-- tag_fw/powermgt.h | 10 +-- tag_fw/proto.h | 1 + tag_fw/syncedproto.c | 98 +++++++++++------------ tag_fw/syncedproto.h | 6 +- 15 files changed, 70 insertions(+), 81 deletions(-) create mode 100644 fw_dumps/0000026619db3438.bin rename {crap => fw_dumps}/027C4B633B1A.bin (100%) rename {crap => fw_dumps}/027C4B633B1A.bin.html (99%) create mode 100644 fw_dumps/027C4D453B18.bin create mode 100644 fw_dumps/02A901443416.bin create mode 100644 fw_dumps/02BE4D273B12.bin diff --git a/fw_dumps/0000026619db3438.bin b/fw_dumps/0000026619db3438.bin new file mode 100644 index 0000000000000000000000000000000000000000..24f558b9c58225fbe34548e47fb7431efc3ef617 GIT binary patch literal 1024 qcmd;)6l7#%V_;z9*JAw4)FoqKa$7QuiGkt&C>RZa(GVE+Apig%PUs>4 literal 0 HcmV?d00001 diff --git a/crap/027C4B633B1A.bin b/fw_dumps/027C4B633B1A.bin similarity index 100% rename from crap/027C4B633B1A.bin rename to fw_dumps/027C4B633B1A.bin diff --git a/crap/027C4B633B1A.bin.html b/fw_dumps/027C4B633B1A.bin.html similarity index 99% rename from crap/027C4B633B1A.bin.html rename to fw_dumps/027C4B633B1A.bin.html index 44d31fcf..a167eff9 100644 --- a/crap/027C4B633B1A.bin.html +++ b/fw_dumps/027C4B633B1A.bin.html @@ -6,17 +6,6 @@ - -code:0000 ; -code:0000 ; +-------------------------------------------------------------------------+ -code:0000 ; | This file was generated by The Interactive Disassembler (IDA) | -code:0000 ; | Copyright (c) 2019 Hex-Rays, <support@hex-rays.com> | -code:0000 ; | License info: | -code:0000 ; +-------------------------------------------------------------------------+ -code:0000 ; -code:0000 ; Input SHA256 : 70C25228315B81666DE14A5CACEEF570D5E8A918429043F10D1CA03DA4EE52E5 -code:0000 ; Input MD5 : 3DF1A99EBA92423B6117D7291E03DCA9 -code:0000 ; Input CRC32 : 53292AA9 code:0000 code:0000 ; Format : Binary file code:0000 ; Base Address: 0000h Range: 0000h - 10000h Loaded length: 10000h diff --git a/fw_dumps/027C4D453B18.bin b/fw_dumps/027C4D453B18.bin new file mode 100644 index 0000000000000000000000000000000000000000..c1200db8ef4016a06882694f633d880f24eea711 GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/fw_dumps/02BE4D273B12.bin b/fw_dumps/02BE4D273B12.bin new file mode 100644 index 0000000000000000000000000000000000000000..7ebc303526d1d8f988b619072b50ffb538d8cf67 GIT binary patch literal 65536 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

*8s9i;=#ct_$ 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 diff --git a/tag_fw/fw29.bin b/tag_fw/fw29.bin index d4fd320dd8e90d8f453dfddb1fde749b6c4f4a92..c9b502784f59b53231afbac91b34d1b49520a9d2 100644 GIT binary patch literal 54821 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

a&3nSDsitWcz+BQ(B{ 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 IK7Y0R03K}h7XSbN diff --git a/tag_fw/fw42.bin b/tag_fw/fw42.bin index 9ca220f556499a7dd658c2235f9d4212fb8a5d2a..b7abdcd9caac21737a5b6e60594f224deede024a 100644 GIT binary patch literal 54835 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 J;qTv;KLK3`ljZ;b literal 54538 zcmdqK34Bylwl93@R3%jjkSYq0ph$`kG$KNn6q!;Ga2_Iw-P+xD2O$cI5aCpdGUQMZ z4D-1vtt|*%V&5xH-1}bp>=uNQh|=0>#HQOhhfWolQ>WF!N>!5j{%h}ZYDnU6@7LdZ z-|tl=XV`n~z1LoQ?X}ikdni%3eX_tm;=P6J!FV_B;_|CmxOiWF|M43Jq=bvo-^Gmg zJR1w0+nx=0%gmzilLzaX=R3sd*+jGKK;t`Ow7L~ zcJAZuHA2&Tp)B)3!Sjsj|2pI2t~DPv&9{{ed@w^%1;1AFan~mi#h>Qa6n{GY9SG8p zy~jJrxpeA}c>#T$1ze=B^Wb3m!udA%H+U4I%{*;I$wD$eVqcz0QI-3Hf zSM-kK-wChv2fxVqo$x*V!oTyK@WTMVy*J_S9Qt2`e?9>(F3V7wUPCiC9hMxLzeYpz zdo;nhWs36`i#=X98kSMsZ5GYm4Fir|AQV5elTq3^c7DK1bS^93nbw{c>YB1!jke_p zA#dwcHB_Z`DJ{d*Xl>h`;-QG`Mr>C*#kNswtERMMt1OU#JtXWD9u$0OK8w%n6Mcfu zB)Q^M4Q$K{hc;%3;t4e1^|^J{4Z=}kft_j6fXli&C{sTx5`3WT;K+dqfLfOPS8DUU zXme3Ktf*jPMIEf6Mo52AFp;tcacXz%zT&K1X@Ee!0CaR{cKI|BVaW!ROCUg&a!^Cw z+}>n!aNp($cQcX=JmGgT^g;d~aaIGL#{%jp!{r72r;JlZ*<8z_+y=VsJD&rgNh zgyNCGyb>xrf_CmX8WUw3A|;b1o9%Kv9@UCVrR!5N*1OJ~&wIS%K~5zWlVTywx#VLf z81PuV|FPHxL22?ynZ$#;ygRF?Gds8Z=0)#IRn(FcwgA zmT-w~BUK}(d%Q*bRn0SLHR@DBQ=-*s8TfNKyWXdk73g(~%vEE@z=Xr8>c|4`A+K}l z6ix{_19c%tbmEKu_>%YKszc~TW81Zk8ZB6(wck{BF;JvJftV(r@A1w>CeHj%`he<^ zpnMgQtKBsW_x77AP@#TS<||xF6D0%4-<8}YSeDrJH~6l*)`hH z+ib_gG_)?HMRX%WlI|f8ae-DgQfYd#gX)cLh8nk&QL}F8LGy{}XN){kK+H|aAWHOM zHKvwXf(0t-jpw}2iftb68^Dg*j7Z0|hSOYU@EFNY;G-@;EkT!H;Xo zQ98Kb9^hQ`4sTSn?;k`I&rzo-S=;+D1s8ufqp7jyU_R?QF)k-=7n5eQsm+=5*U;E0X;qyxC&goVH!u zVIFxTX1cKD`m$jjuK=JIygR+Spo43OgXAxf=_x{w6hNI&XENj>$=zHuqB>qP%Ehx9 zL+85ZgpnxMi1K*T5X=h*cwK79fB;o<524$=q;)Ckq#zL#WNjl;<1)sc9xsF~qrY%(THh$Ym&x$&cQ9rqsPO2S}Q0*A0P+0Pxcz~iZ zQD+thekeT=R{+#*$5DvEWJ(-Ej%V`qkoVZ}nWvy?Ka^Y$|HKUlN)zR@W6sgC9n4Ik z%);b@?9^W+8-EvBDU4SR2(SkVfs{#<^AvTC+OuAON+d3}LM0xGBL_x=N~{I6Ta78| zJndL4Jvfve@K1_OviVdHRlbRse%MCIHonV0ySq1isAK5_!Z^o%5mBc5brjBDX5%G8 zDCRG7xI_en|Ds7voWgmUkwep8)b41B*}P6TY)U&Kh_X|9H;yflQnXKOcm3Tdecn4% zY5J?$U7B9zl+N{yI<0n>nO~1Nr2&Y8a@NO2$PBb@hkgB-+Evi#l=AyTtMl8mwlar7 zYZs^WwMx^cu%XrY@i>XcKsjEfG<{;kQInx5nK(z3Q<~FH0cw|8HW`3wxJK=)VI8U| zKioW}vt>%8bxIU5O1=Ss;zbiD_4F?QH!LJXs05zE3#I|d`&P7XvzBvS*=Yl z{Gw$=hoN=nv{8_s1$7-6D9V{f?4msKh-0igs{IwSC|@Z3GzBH_Ler^MO-@sqKEgNv zx#x*m*O5HIz5AowtlHo{j5P*jORIY&GWseTAV5a?yuK$cGfojCZo~z8|t0KSqN!Qh+9ag zc9K+(st`11HQU)54G_`rX0L5?m2EQu`k*z&nb{ri){W^cNh>TNuk0rIEZR1k{XH?3 zQOiZ=T5Xq~>%e~y|A;<&S-0)%tgbjBwNIRb-v# z?+)9b+E^@qOMcmG*-puTA`?)3D1sV&{GIJ`jnAw&1gE@M*Sy0>?{K zLr|+=wDk7cJ>4Dqdsx7~rP=;1U3Bc=?bFpy`*^(n$&}6;NlM3HWJ5Qexjk7op1D0? zRm7Atw@bsuYkrt_{yF$BgiuQXkS_PB#!x9~(VHplHs_|-;iDRaCpDI%oVhuu$rmVRZc|I`v0Yjk63XIO z^|Th%Bb76&SqgMypoCl*N-I-Ql488HM6h1kO0JmCEMT@S%j=!uD-3Yt{9H=KRx|Kg z|Gpmoeh~X=Jr$4xmJ^I*33}+I@MOvG^BriIwMi}4cH>PqLt&6UOi~I&kW!eZXKuCN zLNv(hDYhwReju#OXbK&bT(y4DI_9 zwcD3Qc26=7OF2xJ`seic3uEL^G5DhDORj9&#&@+(>E>7E%#F<6rMyyGWT45U8BFR;TUVNkk%E zPH3jK{I2#ZyE|s|1ZM)iIN1n4lbot8Kiqz0XUB|4aAp+zM7D(em|)5ZPKETy+ zow~c4YWIhm_jR^B9ckSgt@duI+N#OJqz_V>1ojt(IX@^@<9+q9q`q1yC}$qiO;j2d zN*3N3$wEVC+~(b0wL|NOcSgx_Y1BW9j2tu!Qnr$Y;R6lj%x~4mYcceTC+Uv<*iw&?e(qCCCdo?YwT--BFZ$hF&-E-e6kAS`x~Y3F^GI%GfNkKS^eGA{5B2fs0f z8g(>g%267|Gp>@Ycw!^@h641ihDrFJOvBuUsoHT749;*S@DX4WWSIQIn0RR$tgW#=4X1(fNN2PRtX~c4NhdtbF-+?}ni9e#4ch z^>p~S#;WiT4OKl_`m=d8J<^V8@QO5Csdm3vYM+2MFAP=r9~-N7m899%3hfAKWg+t{ zl==oF9Y!^Z9kUF`R@ z2VZ?pZ{R-p-LT1d9h`}R^M-eN!xANCCTTorSboUizcMt~KO^My&kPOmhX#fQZ5o)h zX^_1(koEYJ0sG^T;$H-^Dy}^B#B&1=4)RB$O=BI9N`pIFra2?6(}qMr7pNVBG+fKI z#^uuSC!Qa;R%oHF%4cVy{B~AaYVPwMMV# z-Zhjarc|#_DYtEKUiWhEM7`g0XI&z$ z+MOpCBNO=RjCtNl@)ju#g%Fm!a+vMqQxC`=#*Nb8j@x5{pp^^ZzG^5G@B5I~;sh_@ z1S^4Xp&0FDa-lZ7ZMe%D-d001;WC|t|Jl#ad|}p$v$qP{Oxvv_nJ~Mtt-912{)6dP zl4)GGe`e2iHlAVOW^<{z`*m?a-XlUkoY z*;Wm@_W~`o!e_X+Z_d0-^R<0r^fD*LXLJx?io9kTg}NGZK+>>22a#z|0n$zc&K35vtAAwn7Hb0zDBs_&vx-}&q zyWFfad|*&bX?TzIf(M0%gxcmkEqjaar0%dqXd=f}ou$q!kD#m1wgq){lC(X~$Mxps5*;MiW7ejXPh!eD3LFup_&p2O62PP zA5w`XMVKF3X?g{-8zgTcjRabKOo@D{mWJn#Mo7I{`t|&ic=)**v*4x%aXBN!Xvh|6 zVAp_jwIb&><7rZZG0;)&4=hCQ@X$-y*eeeBz)Eld9+S9zZ<>}zQIx9v%7yV3$+>wy{ z&YbS&y?n6%O;OcK8@FnUHF>vId<1ZDIZ6hi)AdC%=xZHM^??}u5BMS3$^*&_nsV%8 zM6-MPq1m+t&C2LuTXi?hC-*3kTiEoq((nZ+kZZ?1sEK2jGbtZ$iH0B15)x|$>A%tj zaSmXU4rmv`Y|9klfKh0spcMEK<^H!g;2cVlL?@UKD+ppr=mza_ldLf!82eYM;_1#~#SphB$Ie zD`6~uO1ewqel8s&tk82Z7Nhl3Y^fz=*rnx?`LeKoPG?Krh)C8UjhfaIE-{hURPjE1|h&;D08_ zkv0u(;Y3UHaBUHVZNMttG`_2Oc6ZC1p4P%xT$e;^oAx$8-LkKBfANweUWO8R!D}Rh z3fZQskhfD61QbXD>~Pb;)ZXp9q!WGHSlrgotcjPN(e)wJpwiGx3PFiTz?wuGNk=9f z64w8?K8kxB`gfsPW`mHF8fpFkci0Wzp~hR$=Shtt`r3XpRs)Y-|0T)OICnzfn@Gy` z3jMa9FeZ(A!PWPLo9||ItEb|&RnH%o{8suw^4okLdoyedBw$J-a*M79&LAYA2fkr? z0F}EixpISvXnJj`kFDoGP!@xYz+TD%Z2^mR6sd~w_d*no$Fk#u6|&3p5My|@*pWQz z27|$T*mmAQZ=foSiHis=L6WSOX#VLsL(;S#V@Ryn(#;mbj%d0xl-E2fG`3}S=%V19 z(8YCD#(Chmm%Yqj*{O5ea)aBzXB2g`NtE-CHe&(E(YA5&XzK3fxJKdK+*)>p&P1q; zF7$ilvYsvdke0`7VBXOaRjzH_o!7Q|Z2RtuI(AllPG|d&<2XprEIn9sf zv^*|guD#A${42%|T%mx=zSEw4*=X1}XfJ!VmAudew@T~dP0fZocClcVv^h0QX=tIz zm<ys$F1$y8+^KWN=M#>(csjUuJr<+977L|u7~y2LQ7M+TE|7&XJKljrG;k3 zvW^OG*yW>2%LTlv_mBw;KXePru;UerHTX&z9|c+1D2N6LZCcFV{a&f*fcoALe7l0R zLvHL2noH%LNXLny#%FEd5JL<>j6&>6HR}^XEzbmJ*>vuEw%!i0G@E zwD^F{Sd6MPXt2notFct{M*Lq(`ncUN7S>_m@zpA=s0S}h{ww#@JTzi$%XTlB3ACKR zIcXWm1*~2)*6`^rb6V0&_1LK;76nMOSpkkErDe2p(*x9sk3!jENRn2Nmbb&SQ(S|* zX>}Hjr)kLS^iC%zf-5#}_vQ{1Cl`@-N^VxRZz2wQ?X?JDz?ZS3FE6hyO~y`wfI<*Plf7@iiXB^5bls`=blx+ znfWCB>6ju{{AQ-uj|zFm9HX&^NrHXT^cuVhw8tf#E1GiTAH7`HfHZ_9Tv{Wm%n^;BdnU_ZQcI-%b4%QmXGk>}o8>$6idSAI+A=@9m zHlR;SWu#qff`<19XpeDZhg^{rEE^guwW5P$#6hU5{z&9#I|}xD=;*CCZ4l)2c5J_y z(sNq-7H%bBVOs0LbS$SIEDcP_U$#qGDFJrz@`qS2=4cWQ`kL{}&hka~SXDnn8j_NT zd>g4Fo+v4TuItN|!>ugVHa|WF%C7hV*i4MUV6P=vOV~gr&&Tp`ZfIeVIH!5sKIMLu z_Plf59aCeFIO}xNwG9j7J>L7Vs@)jnnzBg9UAl}gMwd$>{6%qmQwcx)k^gOkpAbiZ zhzi1|wuD{0;_F_7SNvA;m?e1i_J1}zq@f5u*!F4M)v|TYg0HX)3?ougZc?fLU-S^E zAcY#@%HwJ z8I@Z9Udi#af1iIp){grJaJ7cj8~y=&v6g>8d=kew?Wbs$pBr0fE`sKBPGLK0bS}4} zM&zGO&L0^uc}-J0n2&6$eX^_lx7{62^#u38<#t8V(k*euT%s~HyY3J14~kQIkYVEd z0I6-o7p0c3ude%LN^6R15Nk67^*SG$K1LN!(oHEtwS4*VrxnInx!>yRJageY+xB5@z0L-Zh98D(@Khr zO?*Y-Z4Z5y-1bywws_8u9f>r9n9>INZ0qd7Kb{es2}W@0jNt6W2){HK0aYU*2lEL; zaZY)VUSj?8g7e4n!mR6v7mV(Nv4P$lV2Sp!T9nAV_^KGT35@RqLny6_;j2Pmdn7TM z;&-sB&~^l+Wh^6@zTG4;6SnRp+J+I8Eqsp{Q}>gWk$3Gyt(%^!XxhX z-=mh**XLs#)O_9bH&k2`pPfq9ZZFG-&!Bda$kkPGEwQuY%3kCRMe zG3hkzlFk>$aSxw!^3WHtGjML3b|eObF7H)oA{#V44K}31@d7!0p3i^b5+=ErgiA;+ z)XA_)rL3{}5fm4FaU7?v-rG|5g7dav`}a(_-<4!jzIW3lRh!0X&Y2l02~bU4$@kh% zcjbP_w<76m9Bob~wsrj%gL_vrWp}#5M>ZMXI5)q>y{pvv&Ph)>r`~CJ5+n1Hm@vM$ z$yn6ne>K?`=|3F69z_39T&IISO3wy6Wz@B;}E;)$wht<#_6sCp_qcAme6osjw-wFCUdBc|&N14Wv zlxZCGV@asP+hA1Ke@qQs3MLwl|I6?{A?}HYHr4J8H$UCkvMqnzHe=XLO9Y26O zDXV)18S1Gz;nne~NcivLZToH!+;+W6oVi`#m%f{j*sgsM0$ zvk0spwh8W!DKNwa0j!)8dO0UpIkb3e zA>TD1b9F!8y}{$p#2-&39z9slJNMOijK@19{wlIGLMEB1_Xd$hn9Lt_pqsF=NOQWM z0k-h;dAtti-1n4dxnIk5&YM7ir3jQL5YIF5yn#KRlrYlq{|SR3kM~mN+zyX-pmScf z$GZ#5$WpI`2s!lxdI*cZl*OCa6}!z4L;3oU%PhSN8PD1J^MB$w7tgel6ZN|d3;Kro z3E5~lEH@>(7-)LD6P5#5fR>bRqG1foyBU{t zOI8g3{eNa2205Lv*B`#GCH#LT^|jL*szROKlCFsp=Oi23{)qv zWY8Ywb##dupHIpJ)?0o}h=E|({Z`xhblVcya0?F&=3PO{c>T1apL$cLUG{;|J>DrG zHo5TFwvV>Q<#vp+&hN;(qANJn-;Gvy!AnA^mHc#{+vQKhxvLfb`{-=zf_cH>!sKk% zn_jmF#g|awJKzCtzBJl0tE-jDZDZwjy^=0s3Ag`!Y`RDvB%jKWkKhH?2HKZ8+y`KQ zCD^)Ryuf%Y%U40sz*zEmcJMy^0b88Uc?l2^sacS$v-+3mHeSm^38Z=<-`bQ+vWTHetQiGCmn(dV>L=DhyOJl&_v__(`E@&84Q!o&11 z526(&{h;t)%YiWZD==CN)7Af1wI}#Wx+yn^t?%E}WtcR?avCIoLj{_B{{JFQtC;4T z-*U*yT{rQADcIo=i0*(s@sYBkL3dnP(Pk@@$@ax&9fPg6WXiUd5;3&^UZ;gvV)Wi&E?J)=XUU1 zzMxz@-USe8ivJ5fPQiLdh^SrZv>Urq@qea=UdV#k(sn%#B8=y9hU0RkKV07GK>jx| zwR1BorM{n1bgl2#;M@gYHK<^xn~`p`IQKo`xPVrMG4@;3tXCmOf4o|cJ*$-sB>uZA z5zU?{9>kCoOlys zoF%G*9N1B+za^0j^{3*(DDE4*xN~}OiR=uM+ez7e#Rs|*w-rdXu@fF%SM7(y@6QpR))jWN-jY*flXjWr(EK4=)?z(g%W-?}JXeR|`?8imu zEp+Th9`4AUIvZbt=#RynJ26A&#)bY5EcZ|XVjHDyFSVja1w^(x2fJPse>|&HM{pN_ zSc|~cX(NrFL|JNzEx+bIdn{K`0v0VmeaRo8fp*u{Nv&_1OT#B7y=gu%seICjN%UMk zDKvSDu-zP(lphXE#^yq5TWpNq0tY;XC?>Qm4#_aqVEDUO*(tU2f7WuD){5zRh6$UR zL$Yh97-wsMoa{gt%F)@oPxoLcMk;BOYK}*&o?*Ly$rF?y32Me>V8|JM!Qq%`Wb<`p zqvJ?LYRK>dxG~d6hi7!kr;@9lRmgn3V!L zv09NmNHdZ|r#O{3&r_6MVbV1u#5ngTflPx>l)xYZOC{i7k}u%Yl)w=DV~uHG82$%2 z@5*;)v-@py{!EN&(?ooYyNarSM+3uQ1JJ%_wpp?G9wquKs!d6{RkG4fxj?qI)2al{ zV`dxPj}I7ymh9vnB2g&Se%W3$&H<4tS+>)EHt-WUv^P@9(IaM^>?vpnaD2F z7V35;ee-hXJdwg%v_bNVC;%o!V7QV0?LR920vv3IBQW@3YQwu)r~0GYAyd?TN}_No z=>XLXV_4=J6K{DrsiNtuq9al&in*X$GJX^;x9ota-g;@YZ3@iv;h3H3RcmwaTJNxc zXan2&B0tYW$Tn+(#Ny3LU_>%q2%RT>6gtH$`#eXK7RL}mEmQrGZJ41{J9i1y)C>kf z;dv$sZ-y(qKT^&U2%9EgbIUNDSm;#~XqPlzxsR1IO9x~So2URI_4uLr-+vR<3vMgA z`50;+#!x%-r8O8s4evdMdMiFV$d}9dhhyduV-e!d^U;67A~--Qa6Sh9B3Uxv7JBQZ zE%EKTET4yo#^D|4d|+;D^4!mMXCsnr21OLI0Y&Y&!awgnpBcPEC@a3#4o@@_F+yXV z0_SRoU)7P|6 zY+h)_c|zw)=3k5@`#p*FQ6+GpdcD?GYAzGyQS_47hUr|GRcA;9DrThoVHmCR!CHhOXY%nq<^A9rt&V?9d<2aqbc}Bp^E9l_KQ@KjO zh1Spu>N%w44aPuP=|->`Wit^px8Q%Q!qt&CxDzpvR?8)w{uvQH7`)<=#7i~#eI+oO zmfZJ~(`Yq1G&!r$@vQQCQu1oe1GA0RKZ8iAi9o7&B33ZYhY?F( zXGOyx;4~H&RvFY4Z(hM{{6Idl@dIONB=<{H<|4Hx3*3$ljal-aJfQ@}5$W?u(O??8 zQfR-q4DB(Fj$h(^BpbUI{38H_E<(BZ&!=N*{MnRj3?)O5t_tJpRH4n+3Aap}ic?i#O|;bDyi!;bSm;V_T+)=h%48k3Q#B|W zno=%K$KBLps1 z>9CuNL~>H*;Y#dNajhZlNwCi%57~cLuEWLvFEH!Gl+Q*5f73U*=wrBg@<-}pI&R__ zR7VStRG7<*pNqLKGs(j?w*7Ha@dX`uBOn-B$io)!&UcXEL@u_^?DEI(d2*vEDN#Np z8jeIEFH*sY$9#B5P;Zw%CtT_Ly=!3hN^3Y){w{qjjK4=yUU=GrqoZy(OYyQch78Lt zX%Jf~gT--A8UDPxkr7>sUVX)1xS_`e8c2QEeqg4ucN9qiCvoYU!Ce+A9mIDaaGfuw=F zpukvw1ui0Z9sK{d$BK5qVZ^I}nKK+Ks#ip(SW-n$dscBJaywfc75Q1p5uj$|<74DN zKA0s@B0uF|x21qN`+(tK8923YN@?;brhUOmI9TcTf)Vomh@Xy(Bc@?)GKF~R+1Ux6 zvc-AsyaZGI4r{j=)Ae6FTH=S=Ntfb3K(%}ZwZy`&@2I5#PMddA!TYVP0Y0SNz4CvA=9Y%7)g+q+~;-Vh=>T2U3S3K4j2y`#?irxZ{nx zUT<7Yc@Dd;sBLlHHhC1U#^7rO`aBt1vvDHC07wwLM@pnP1^Z3$EDVuwBk#mFrGWMA>(_Iz8-4)nS`K#I_k!v2tl~Q`$HsUPKk@Uw zp_!r&(dwD_5vc5JOHMZ4=k**#ZD^b?N!mlwn^u5w-yt6l^&!UpA^G_I0*(%BOqE#u zqG^brd40gYSHNA>2mE^l+;zRdQv_T$Z_+va$hTfmkPAx~Fm%H6`~f;4E*5Uv00F3X zpd^FV2)*zlbfN?5xP{jbxK5 z-Y!2DE0)d3-q{c(|G8N4A>Pe=h<7s^g|K)Pg{|b5jVD66~eH?3{Oio?->+u%N4PaM0B-DCja^ob&GG zk&P3R0*ii0r|!Z0WhG&gWq$DSOdQ`At=5g>Y7$N;%5Qewdm(%J`^C^TaGl{Wa1% znsfq%mZ%{p&xLBi-v>AcRAXrjJ5!T|5XnFl#0AXarn>mi&HC2Ho!yOl3Xh!UhC$ z0pQ+#sn#*826Hc`D6r2gC`f#}ZlADNw(5fvA?NjB<8>)rcbI?<7QWpnlLpDX z)@|{Wckq-L+rnibrLo#kebq9vxD*3)JtC21UKD%smgWQ}PE_uCVYPVIYvNt!#JfKi zmkvOv0Z%#9)YM4V8|1?aUI%D#+`#{mRmW3WswI`hsJ$ug5W3y3f?BW)90Z@W3R|#D zaHr!%$^qNycv&ZO`3t)xTLSOs0LlQT1tS%msE8#t)NsQ#5+{-QFrlXfM_k@bM@i!h z%uP9mygUv|NyfzUHR?;eW}r#l&tD~qHnXCs7}l~gAXMHUq2hlmQsaLNuJ|2rxnnL! zrvUqL(9d5fAmeCX^hj z#48WIQx82X(7R!t8LI*Vi<5f061Y1KtOOP(`uWbIJ6_*@1kuRCaQx;%(s&pGo})3( z>oL!fnA{W3c4<ydYj1(kuN zY_!9FmV!z-4{Vv7L#-6sE5)9c?6jWWsnmZ)dz$J$#s4RgU6Y3(1RIv>KW*1`LY5=! z7n*>4RHgoFjaE0}j>EQPJS+9zNb~6)xDPGk*(!Lp~@s&*Y1@aUo3 zqE~H7V1?eY?f3}^Vgnk&tps8fI;8_E)li40?U_KED*!j~N^H7EBw+CjClvn$fx!I; zTxF!VKPAN~%D3oMmuHXQd1|ZYNhcHftF^$B1!tlqPr@_4S`Ga+7h59eOluk?)OqRz zrne*}-;{tPnI^D9k?ZP+!SU?E``Bz~|S2t+=i+@?cGc?WA?s zP6~(k11jk8CZG~c$hB6Sk2h`g0&i1EHQfBzFJGgDwuZKQwoEFjcAPqxP>T;Gadgu1 z*}y|;Xe5@+UWoru_|HjM6PvVrHZbzZz=gjJjCv}Nv#0n|qJtKvgud;QQADYKNsaln zV8L1Yse#xyY3ljCNq98te?Cg~j9FZMPH9XFM6{lxX2E^QQCTR?Q|h0jaU4yi58Nr@ z2*+1MN82mrfl8wQ->K4QrekMe6TGG2Jl94M5>b9OZ$p<9!04N3fwek~>AX=phK5eF zB^cX3+VPj7zgbE?h$0Rx8!Ye-SL*kuu7CsH*7}E4Ene}%@P10?kMAl7Ia zHCyirQgbVfR$frxgMz>REP+f9Arqt07@i~p)ow#k;=KKd>jXM4d1U*9o;FPGo$XQc zPIeO%P#2-kW7;uu8XjS=p}IpgWPiq7@h5JjUNK(;rcOw~5pn5u2$ z6XnMT9v`G@22?bry%dA6gBY_PKg3YW>j}Mwpa1yNu6GFEceSFwi3jYD9@-Jx5UY$a zGBswf)k_^WS7_KgY%LhrjZqTpMj`k3ASQ$ha3b5;7>%IGTOynBOG-@4b8H+Oo6H2$ z#*PR>UKbokg+a$0nQLMX#vT&Z3bJiGmSFA_cbQ>GQU_4#6-bVML5tQu+KkI%O(2M| zk)l1X8Z+MYT{KB+(3YkrZ~_SyOP|Sg4Ia$)CSY);|LTF<10Fiy@K4bg&X5_6PAyiu zM1H&+b~1hiApq}CtyH~BB)96(5F3@6jyPYq(W9v7WSIFRWTJ281-juu^ zT&e$4hn8duQE@}a%OtpG96Mhqo~G3MAeBJz<61B;6vOl}jv@Y2$lEdXe$wpSN_{sX zK8XjQDc;p|^$EVfXpAo+Ys}{4HR)Y}b023q;-9V~W(#eIrn6A#bW|LTYN=Ejhw|k@ zm~w`AZaj|}hqM58#2;g(^P2(NLa>aYN@F&QhU4C3rw}HwF2uUFT&2;JU|16lGjTc& ziN~E(u0=cGguK@I81tA6=lJSyrCwulKOW$T2_?ItMY}AxD#9i|TPY5m04SK&jpy^O zR`j;$d0+Ir8}a=4i=wwJp1+zrA4WWV>W@p$?p8JvssksMcdevr_+oRDf$8J${H|MU?ten4M7S z|0WgT`gdZD`YJkDs{W)@iR(rQhY{Dyz?Wh^rese`g}DAJtx~UloB_Qr-HPXrSk8Zu z{*33-(m7l=!(*w`?`E0)M#6I0`U=>sO8xyT{NE_EYj7ggP<)m8LsFSmq&l=yFB;|L z4(6X+e5TOH!arvA5k=9^JG2apHc~KYt@%{AviNThm{ zh{J-(g40tf(hkcbW%@}90G`ERfQ3Es;2?*dzCo5*vWYC3{nAfKni(%BV|I95qc7C$!)1trGNHj+c(L9FuurW^!?L08_(L*04D-aUad>MvswpPwf;!eDnqq~QMD!*)w+yV%k#Dk)!BmTjAdKjt3TWF z`PNT(Z9Yw|P4609#%h4$t9Kq4Mm6aD`%4Bl#T#W}3ieaT25jWNfy9Q^*l3z^%)b9BEIFl@hiIsNm@_d%9yK-+l`Kp0rXZ`d3HbUtRuauj=_dFtA5OMHFbxofZEUOE7n;_-KXf@^O2b0QLaXjD zexY#-#xOY;$iV8F$;PJ!P;JLk!9B$fwAAhkx9;zheiJ{@#7U>#U$Lob`X=ql5ZjFW z;t?9QeC%@ck7yUU)hVzP}O&-_PjwP4ivOw+Xg8tNuaUjHfd9nlwwJ;qRx)%FE*9+_{n&^(C;avQ;7ic+U;~cdQ@b2#b z?%PuZDb4wypl(u6V_P3k(WwJ@0DfJje*@ZpC~G^qzE z5U$nSv6`}>zaKkr9h#D!ZNDFTo^##Ja${06 zcu}Y|_xFp_vd?DAe~-?0{r4CA{1E`*9hs36Dyq8@l9&e_vpIO|VGm@>kKkx?*SE zId@iGCXN){sy%yYM6$@A9bP`Dt<+X#ksR^|l1+a1@aiJGQ^6H!&b5D&t;bIv{}9Nu zm0Bt?oojt%RIq&RH9?fO(CYxaetJ%P@I`TLhUB7`PQ0|DGHcpdJ=U4%7SP6Yn)70b zsyNqvQ>s-A8G(Dnpb^8o0q^f);;^dI+F6`so6%P4DjR^SSe7PThD=dyLGFhV40w&171lE~LwYAUm$zz0n-yNOX8e>0BIBZ5*2 z^Rq_X?K9t`*by_}AaN6b*09hyGs<~~Y zri#(0(DQ}1((JOVQb$?(sjsr}IrR_xYuVM_>@*GeQLKYv(fh@J)EI~Ol0zsoQ)V#hMEYHE=4-f`H+c<;D`Za1c9QRGW>z*JYrYov)Ax?`Lr zPt=V`>XFO?$=>5Of|ZblnHs^*(%{w^KI>EQD{6EyluuRG?Q=eOA%dg&Z)h?1_V*?@ z+D`&wBH8q!H@4lh%koHi#v|4da1vo1XZOFGGya|ZQc{}+Pifr$VCW8B*g5)jwlMbh zF(g9yBJEZPkOZ6?Wwg7s3pz1*5kPwd99|B7Ust#Hf zu0Yj?kY_{QO&a<;b*%32+3+T>hM=bBv`tmov-wD)LECA5dV?FpQ9t=Uwp+h1inn5Xo$tlzt9`m!Lm|lsV`tGQjr(mr0 zmtD<071q;Q$47{(#s5hk+(b6~sw`;~)aN6=xbYwG;p0lJz*^vJNV9D=U0XKHwpnP> zYNXg$Ed-nF%8&`u934p{mpX|&AC-*^X&H|Q8IPE1)sRT_W;D5{!a@b>gkx*0cFr%nMDp1~lg!;j3VvQWZq3m_qZk$pV07v5vHZ&X` z6;x-NH$s?LPW&t~Y4t(n#TH7=QEHfpf)$-pVP4mi4ewG@#;Q5V6Es$1t zZX;dk`@%-5Tdk+cg3KC6?AA_Kog*T-FHH{Lt$jP8eijysmM{0d>M@?~|_6HnLy9_RJ6sZGX4xw+L)*mDY+yw{9D#^l4)HAYLUTfF;MW>`M zNYHfmfCHWkRQ=XHm>!4^ejBQ4xv{(Trk>j7A)QS_!nLhKqAf!rpa0c$+Cp2>4Ek~F zf~ffLK~VAGgP;W#+R>TOH0n@6e=n^5vP?3f{$3|Q?zuDkkKqO}3Q@)^D?Bk#VEKsn zG=hXJhCJvnda0$B#qs{aI!lmxDbm%dHBYKFzg24<7wA78I9;u|QmvVaz^N1nBTTKZ zP)9~_7|*Fway>5zo|gsBA;I%U!6OTvBLXH+J&NdgUGN+hJr;=Dg zf5iO=?ng>qez4@V2TKlxrO2&^aa_saQ~z@6iQ|uo_xum0R+{!QwbHa#S1bGkBl0rX zxR=49dl?=bo~vyBrSw|uZZFn6z{Q5ChBbns3J+Qy5E#5`Y`L!Wp)RZ|^Owm%de;j^<+EOa#VdgzD@??f_7I5(H@5j>dzJFV+~ zv7vF7rLF9IvH`Feq=rsYqDF4k*q+0YaswQA(l2yp$%R3x#i=1mmq2dkRr}m_X*8t& z@%Y>U+*62Kjh>n`JH-9(P0w)J93bBj4sK*5TJKPrp5ZQ^rf2apB^uwbhCp@>pwe`J zMH-<8^w4MNz-z=6sqp>kFtx4w+V;DL;I$RM{?1TQ38qG9;rnhqxW z;+n9cMn8SC>32yJFl${n@~!D$;zZ1-()6E%Xv$A8Hyup!Gbl|jC4r~Hy_5u3hm8M| zRpceTA}=NV>`sjuno}E?xi>KD>A>uLfjRr#ImkFLvv#kBpc)NcfOxuIt;u1?Ps)n9LQ*IQLwYr%K3`d%lvr>pyMU12GnE6xSw zi;Irq#QTEAfqDiEJ2E?S`ElLRYLxP(`fS%r+7_UK^EakxJ=KKHW!(V{KhruTM&T2B z0$O2=h4V*DR8unkvJDUuV_PZJM1Zp!gPpij+fjvcdAS^Uhu7)Pn9pc>hgAS4EH|BG zodMhzskq$e5-0U8!Q*N>_5}A955}*6zdPhz{2T#~m2HERCY)k}BUzgM3=0=ok~7uF zu(o|q$6ogU1mky+wT`_+&65OCOUEx07<0DnO3&%2sMYb|T?y8!()0nx^@AijC)58u z7Cyy4C0a&J)9K$IK@;F7b07oQ?>`cqv5ShY=AusV0h$5u_m=f-3D>tn3(gJY%wokD zo|xtD^0)rSFhr+$){=_li&igntzNvUynIEbaBIbqMN)bEwPf+46)TplxLXf!UFH&2 zl`mPf=z$3nCb)!5VQ#VOs+FD_N7w^Y9BKG*8y<>eLe>~6Z*wO~Q< z!kcf*6pEH2=knzQI7fY@? z%Uz3>FLzya)y1nPWD4_czPWV4{5dWpn85zVt`=^bTQp~E!Q|WMU+D9YDU@6_zj%gg zY5Afh<*QsPR!XkBIQl&N*X65LFI&07^}s6N4}?6(*GRKsrEBW-t_2H!mK3mj(W<-4 z0lf?)yVG-*5wmE?l2sFym#=V*p6!}q1oFhLl@*IuE-7~{Tk-2f%a_G7UsC?-WsA#Q z(#n;tJD1&UB+)}xuXL@x5A`ktEmCt?vTXIDyU}p>m9LPDM8Na91@jjaxuivRE-!bj zyvtR-rlNeYRKCPzR8Oz72_J!fOp90ER{?sn+AmwpD6`sAQL%CrrJI>Al&)Ha2Wh3N zV$rJAKy)c8d|!o5$nmZv%a&04Jg{=rz2FRC{z~E*u!(EZofQ?CN$-={`|9!)O9%q_ zEhwH(T;(DJmX}NAXxB`a{t;ZP88a`_KLYMTX2F`V1ygTxt#h&VB`&PE7e!B$9;_&5 z2{MJ-t}1fPExMjR+=M4k4t%(3<$W$xj;PEC+B*=WAMaYd@;)@_GO!uA&9lO@x*V;< zxmIuKyA~~5PJxV!uBFTFUg}!5WHx?}2(1c+2U8K(EL?C4?mrjq__?r9_?2)6Sboup z#pTP96r6p(r+hVdff0eW9(H%RBoW2#T)uMgy_x8Q ztEEM&Sje*b7J&zstbAa_@|BC02rJ4Th`)?y2SLYIu?>g*k#r zHv8;qPPkIbQSCmfY-S-=m~VyQ%0E>43h{(cKv{iuUrx9XVL5mr$ba%jH916^g?;lJ z6V&^K3LzUsjB<^B#vOJ)<9=qYFj^SZf1&9@7QS6MLUw_pqM*X1RszlhJS}cpS+?8e zw)h761_-9GU9)Od)l6S_5lphczx2#QDL!ncQfv;3tEbZ9vN;lEeoXla{Hlje$0X4P z9RKVV+_>tW%`=bRFmL{yS52Px`CL87Dx`i{@L)%VtGhD8H8`mZ!6Ber!G(MLV-qX_ za1m_r5Cd~rct)gp&_~8V_Zcw}Lt$a74XF~}R5&B84WwQpgiT>{*p7c;I+bJ-1`2kc zUA2etFWW)jMDdhOuTKh9C~l1opxF>xxy+)!YwJn(v!0Tv;Jj53F`nyDHqO;4s-{*siKxaPo%f)3b%8f^10LL^(V=Tvcm!_P_#* zOLU8F0Ux?sTmuWTvsEj-vyTH+whOE9pUo+a24vr`)p#;MNAzL41dU|_2={D!lRqK| zSRnWW!OR}q6z8)S6xhI!Hg`dRkMS95?4obDlD85;A+NH0_ciWnx2?!Fi-*t^>E_W_ zo6W;~g4^u2xU=0zO;{Tr+dA8P+kD47)!;rswL2zL7z;IMhlHwIC=zZEiiI+sR-0~H zz{*&lEGV0<=QqkWx*E7ty9-A9a*Q&7V|sRa;*CFzNFUWJ%m)g%OfK|p>fZ!KZ^>T- z2{sGGQz*gfp9-9-=@#Y+^MoZ}Nqj)P>}=P`tMji}TKw@XYM~3=#0Ej(Gr6-+nSpMz z4-_Xh4d>Vf^KZ4YVjxRvE*R*r*&O;;Zz{m)Ar70t9pM~so&Gg?e>g{W7+<4j`rQSsX!c3K4Rknde`kG!!}%N#O<6{_&(5+riKf*K z#ZkfO=Rk4zqD1|PGE{T2b$lIoW<@xJfwH-b^$?Z!2lPLmb-JJl0(40Qn%8F)vZ>lG zi(8a+IuQQI88w6K76g+Z3M2#}8M7Vvj%z@5;N!Fnwdt)XKuS_?r?0?2ZZO0^f$_ya zB&Ux7k&xHmN#Z)IFcQp^Vq|Sx{uCY|(t60KjgI3{6Lz_9$RlUC@ zX*lRPo{?(G*0r8P3|AUqib(mfuc2pwOt?_U6Xxq*fU2euVuppjPO(duY{-LCiQtpc z3QNLw^W6E>g!N+hF6l`M4Ohy%uf}^SgLR{>ZUZ;)pA}@}xf^$YA=J#n6XhoA>kthZ z#H{_%B|(FjUJsU|Q4>8Z+e{R>2HygmdMFr}XgRvwpoeO@&O=Wya0Yp$fiC=+>6vUOE&DSYk-d}&6aMori}P? zg(>`pf`}{GEq>t;>k0{;K0e}YeCZv;##aWHbzE2&hl;}q7Vx(Pb#M_)^bdv24`1CY%!06s4G@y0&;c8D z9Z=_sWeG!|*hUL)q?-hz^P}tL z3U>&%;y)M9{KNVi?{$KSS_u}}1~>J)birnuG<|Nq>10w^neCYZ*W9qlr6;Fb4D!PG zpx>HYqQhd`DcnIODEhQ<7lg|{yZp1%s~{lg^24`(ya1Z8Z_F+DlCbvKU5)}5dP1cGS5_Oh;Bt*{rG?F|G*<>XgiCP8>&5_5FLKO? zO}h6J7K>9zj%N_-2QDd>c#32=fpk2{&OFG;BCg{Zo#(oD!bH8nUBzk23-O`8?wDS8 zofe>psghG8aZQ0s&@TbU^CKEp#`81s?R&3GffEFm!)J%cVPB#-<)+ScEX2todA3qV zmdg8^Nw<|D4-M%8-9t7oNlB%;IAH^m)MQ^JDU3n@Wyn($!sS7{`%$@EeuaN!LrNnp z3o8!qM_9ZJgaLxt%D7X?c-tg#5QWnxxqYe6^!Wgy_m`&>ggG0GC%Q9S6yOK!bo_cJ zq<4%hnN5u?DG6%9E<=OcuCAVb4fuqA7#u;NZU$9Z7^`a{t;%&u9`wgNl0x(W+%-s7 z2dc#7J?thX?US`dtREXQoa3_auNyWG%g(UJ-8MOHkMl5uAk1y(4`#Q^U>9^i9u~KK zT-ok2w1hzV$gs!V!bZWc$K#EZXf9qhnKJs5eoF@BK{gZrp0x72Af)y4was%Zbp6b? zTric1&kS@84v%)Zk^V>eU(i7K-j;q_I)BoU!OeuSbV3<{=3VByM&xX z?lHmIB~-?fn_>hENh=ik)|lmyrkHFGQ~$yCxiwbb9K7d*O+8?!SUAkz=iuGkV?Was zw#)0xL3usJSK8(HyM{!C`-OGb8^6xn=csIq?36*%)thH~~;@!;NN15;*d<5_Iu606GonzAMRl!Gm$S%Cj z6a}`by((tKdkp8ie(RfK#(NLmtufyQYol)te4`tC>^`9|CKT>}J9ccpFUQnnmrb!A zAt&}oY(FXs*Q1<+*0A?jW4jP+(sJaA=|a*cK}!luZJ5-zL@N+vD!Zk=6%s)F)9X!+ zM-X9>-g3;zd{FpEOie&mK2n>6XzYuiZZTHX9QGz#`J0`*!|+OU zu{gU)1(HUK*f(~er^*7asC8qPo!-_7^s&la_H|a@npynK*Ja;eR(1NAYrC@Mn7=mO z>btTE(G?gVxUeTHM>eQzj_tGO$d$4l*EPzXqw;51H+l3=*1>+PBx+9CFvhKcg_{N_<8o9`U4mHuW&OoE(`N zCniTtpPu~oeb2l;ItlHZl9lXcim{vCmN}fUbwS5z4BG%?K-wyI!vy4g{jh6xvy-H;9Xf?UWLKt>k_Q|mWmq~c8g zSJEwP?=q`}`VEF%58je*kY!pB5RT&&+UVn4Eds z|4#1AoPWM1==Teq97#W3EI}8FmDfl>r3t|ZC`*qSE1`E;jLAOmpaj*c4)#yVqLEPIBvA%a&w?xzD^lVQ8mmg*)l-mWa0=3<&V?J`<)9Wpjl$XmH4SPVC=kBy$gZ24DPiIq z-+*yrye-j2ZMEdwBu%2V*RG{h&e`tdQq8dLiq%AeJb(DlAPq$vbETo8ZXT(dCs#%Z zuEu>+!aNvdow|8Mk~>v5Pu;w|jZ5xU+;rsY zI(75l<&~puC7LIe*(-$mQ}7kaKXCIJcc1B}WXK@2(D*=R|GukxJ33(B)w4KYXaM4L z`51>^28%T?$H$F87qn1~G#d8O@!nIJ2oM4sa(WD?Og2xu26yioq;u{?pL>uvuu87* zCO(7YLn*`FrAwaAEA*b~5Ol}Ap>LCESMu7zY(nDEZJwpA+|Dz!iFfiFe$TV^9zWv)He=rLj6KL1 zeroUVBW|^wJi;U918uV@`;y+$20KlUsohM`L)vM+(zJbSKhh3+#pdjkeQ2N4LG#?s z(`I|bKBZ3c%KS8&%uO>y*ZCr?vk$n%9;fwup0*m7UDIch^v(3~ck`LQ@N3)6dCr?X ze3DO^5B8e%><@Zr-`W?{ZRTi?`DkC*c{^v_F+e_U3UG^;P62(9X1na=YG4a~4fv@5 z6iKfPibU76&Q$?bKow90Q~^~$6;K6K0aZX1Pz6*0RX`O`1y-$q|Bd9TxB5>uU=AzV K`H3+7)$kkLCgd9c diff --git a/tag_fw/powermgt.c b/tag_fw/powermgt.c index a2a38a4e..b0a0b6ba 100644 --- a/tag_fw/powermgt.c +++ b/tag_fw/powermgt.c @@ -59,13 +59,13 @@ void setupPortsInitial() { P2PULL = 0x00; } -void initPowerSaving(uint16_t initialValue) { +void initPowerSaving(const uint16_t initialValue) { for (uint8_t c = 0; c < POWER_SAVING_SMOOTHING; c++) { dataReqAttemptArr[c] = initialValue; } } -void configSPI(bool setup) { +static void configSPI(const bool setup) { if (setup == spiActive) return; if (setup) { P0FUNC |= (1 << 0) | (1 << 1) | (1 << 2); @@ -88,7 +88,7 @@ void configSPI(bool setup) { spiActive = setup; } -void configUART(bool setup) { +static void configUART(const bool setup) { if (uartActive == setup) return; if (setup) { P0FUNC |= (1 << 6); @@ -102,7 +102,7 @@ void configUART(bool setup) { uartActive = setup; } -void configEEPROM(bool setup) { +static void configEEPROM(const bool setup) { if (setup == eepromActive) return; if (setup) { P1FUNC &= ~(1 << 1); @@ -121,7 +121,7 @@ void configEEPROM(bool setup) { setup == eepromActive; } -void powerUp(uint8_t parts) { +void powerUp(const uint8_t parts) { if (parts & INIT_BASE) { clockingAndIntsInit(); timerInit(); @@ -173,7 +173,7 @@ void powerUp(uint8_t parts) { } } -void powerDown(uint8_t parts) { +void powerDown(const uint8_t parts) { if (parts & INIT_UART) { configUART(false); } @@ -203,7 +203,7 @@ void powerDown(uint8_t parts) { } } -void doSleep(uint32_t __xdata t) { +void doSleep(const uint32_t __xdata t) { // if (t > 1000) pr("s=%lu\n ", t / 1000); // powerPortsDownForSleep(); @@ -245,13 +245,12 @@ void doSleep(uint32_t __xdata t) { P1INTEN = 0; if (P1CHSTA && (1 << 0)) { wakeUpReason = WAKEUP_REASON_GPIO; - pr("button pressed\n"); P1CHSTA &= ~(1 << 0); } #endif } -uint32_t getNextScanSleep(bool increment) { +uint32_t getNextScanSleep(const bool increment) { if (increment) { if (scanAttempts < 255) scanAttempts++; diff --git a/tag_fw/powermgt.h b/tag_fw/powermgt.h index 806a63ba..e65d0bcc 100644 --- a/tag_fw/powermgt.h +++ b/tag_fw/powermgt.h @@ -61,17 +61,17 @@ extern void setupPortsInitial(); -extern void powerUp(uint8_t parts); -extern void powerDown(uint8_t parts); +extern void powerUp(const uint8_t parts); +extern void powerDown(const uint8_t parts); extern void initAfterWake(); -extern void doSleep(uint32_t __xdata t); +extern void doSleep(const uint32_t __xdata t); extern void addAverageValue(); extern uint16_t getNextSleep(); -extern uint32_t getNextScanSleep(bool increment); -extern void initPowerSaving(uint16_t initialValue); +extern uint32_t getNextScanSleep(const bool increment); +extern void initPowerSaving(const uint16_t initialValue); extern uint8_t __xdata wakeUpReason; diff --git a/tag_fw/proto.h b/tag_fw/proto.h index bc6f4f45..2ee3da03 100644 --- a/tag_fw/proto.h +++ b/tag_fw/proto.h @@ -121,6 +121,7 @@ struct AvailDataReq { #define DATATYPE_IMG_DIFF 0x10 // always 1BPP #define DATATYPE_IMG_RAW_1BPP 0x20 // 2888 bytes for 1.54" / 4736 2.9" / 15000 4.2" #define DATATYPE_IMG_RAW_2BPP 0x21 // 5776 bytes for 1.54" / 9472 2.9" / 30000 4.2" +#define DATATYPE_IMG_RAW_1BPP_DIRECT 0x3F // only for 1.54", don't write to EEPROM, but straightaway to the EPD struct AvailDataInfo { uint8_t checksum; diff --git a/tag_fw/syncedproto.c b/tag_fw/syncedproto.c index a5656ee0..755437f2 100644 --- a/tag_fw/syncedproto.c +++ b/tag_fw/syncedproto.c @@ -26,33 +26,32 @@ // download-stuff uint8_t __xdata blockXferBuffer[BLOCK_XFER_BUFFER_SIZE] = {0}; -struct blockRequest __xdata curBlock = {0}; // used by the block-requester, contains the next request that we'll send -struct AvailDataInfo __xdata curDataInfo = {0}; // last 'AvailDataInfo' we received from the AP -bool __xdata requestPartialBlock = false; +static struct blockRequest __xdata curBlock = {0}; // used by the block-requester, contains the next request that we'll send +static struct AvailDataInfo __xdata curDataInfo = {0}; // last 'AvailDataInfo' we received from the AP +static bool __xdata requestPartialBlock = false; // if we should ask the AP to get this block from the host or not #define BLOCK_TRANSFER_ATTEMPTS 5 uint8_t __xdata prevImgSlot = 0xFF; uint8_t __xdata curImgSlot = 0xFF; -uint32_t __xdata curHighSlotId = 0; -uint8_t __xdata nextImgSlot = 0; -uint8_t __xdata imgSlots = 0; +static uint32_t __xdata curHighSlotId = 0; +static uint8_t __xdata nextImgSlot = 0; +static uint8_t __xdata imgSlots = 0; uint8_t __xdata drawWithLut = 0; // stuff we need to keep track of related to the network/AP uint8_t __xdata APmac[8] = {0}; uint16_t __xdata APsrcPan = 0; uint8_t __xdata mSelfMac[8] = {0}; -uint8_t __xdata seq = 0; +static uint8_t __xdata seq = 0; uint8_t __xdata currentChannel = 0; // buffer we use to prepare/read packets -// static uint8_t __xdata mRxBuf[130]; static uint8_t __xdata inBuffer[128] = {0}; static uint8_t __xdata outBuffer[128] = {0}; // tools -uint8_t __xdata getPacketType(void *__xdata buffer) { - struct MacFcs *__xdata fcs = buffer; +static uint8_t __xdata getPacketType(const void *__xdata buffer) { + const struct MacFcs *__xdata fcs = buffer; if ((fcs->frameType == 1) && (fcs->destAddrType == 2) && (fcs->srcAddrType == 3) && (fcs->panIdCompressed == 0)) { // broadcast frame uint8_t __xdata type = ((uint8_t *)buffer)[sizeof(struct MacFrameBcast)]; @@ -64,8 +63,8 @@ uint8_t __xdata getPacketType(void *__xdata buffer) { } return 0; } -bool pktIsUnicast(void *__xdata buffer) { - struct MacFcs *__xdata fcs = buffer; +static bool pktIsUnicast(const void *__xdata buffer) { + const struct MacFcs *__xdata fcs = buffer; if ((fcs->frameType == 1) && (fcs->destAddrType == 2) && (fcs->srcAddrType == 3) && (fcs->panIdCompressed == 0)) { return false; } else if ((fcs->frameType == 1) && (fcs->destAddrType == 3) && (fcs->srcAddrType == 3) && (fcs->panIdCompressed == 1)) { @@ -75,7 +74,7 @@ bool pktIsUnicast(void *__xdata buffer) { // unknown type... return false; } -void dump(uint8_t *__xdata a, uint16_t __xdata l) { +void dump(const uint8_t *__xdata a, const uint16_t __xdata l) { pr("\n "); #define ROWS 16 for (uint8_t c = 0; c < ROWS; c++) { @@ -97,7 +96,7 @@ void dump(uint8_t *__xdata a, uint16_t __xdata l) { } pr("\n"); } -bool checkCRC(void *p, uint8_t len) { +static bool checkCRC(const void *p, const uint8_t len) { uint8_t total = 0; for (uint8_t c = 1; c < len; c++) { total += ((uint8_t *)p)[c]; @@ -105,7 +104,7 @@ bool checkCRC(void *p, uint8_t len) { // pr("CRC: rx %d, calc %d\n", ((uint8_t *)p)[0], total); return ((uint8_t *)p)[0] == total; } -void addCRC(void *p, uint8_t len) { +static void addCRC(void *p, const uint8_t len) { uint8_t total = 0; for (uint8_t c = 1; c < len; c++) { total += ((uint8_t *)p)[c]; @@ -114,7 +113,7 @@ void addCRC(void *p, uint8_t len) { } // radio stuff -void sendPing() { +static void sendPing() { struct MacFrameBcast __xdata *txframe = (struct MacFrameBcast *)(outBuffer + 1); memset(outBuffer, 0, sizeof(struct MacFrameBcast) + 2 + 4); outBuffer[0] = sizeof(struct MacFrameBcast) + 1 + 2; @@ -130,7 +129,7 @@ void sendPing() { txframe->srcPan = PROTO_PAN_ID; commsTxNoCpy(outBuffer); } -uint8_t detectAP(uint8_t channel) { +uint8_t detectAP(const uint8_t channel) { uint32_t __xdata t; radioRxEnable(false, true); radioSetChannel(channel); @@ -157,7 +156,7 @@ uint8_t detectAP(uint8_t channel) { } // data xfer stuff -void sendShortAvailDataReq() { +static void sendShortAvailDataReq() { struct MacFrameBcast __xdata *txframe = (struct MacFrameBcast *)(outBuffer + 1); outBuffer[0] = sizeof(struct MacFrameBcast) + 1 + 2; outBuffer[sizeof(struct MacFrameBcast) + 1] = PKT_AVAIL_DATA_SHORTREQ; @@ -165,12 +164,12 @@ void sendShortAvailDataReq() { outBuffer[1] = 0x21; outBuffer[2] = 0xC8; // quickly set txframe fcs structure for broadcast packet txframe->seq = seq++; - txframe->dstPan = 0xFFFF; + txframe->dstPan = PROTO_PAN_ID; txframe->dstAddr = 0xFFFF; txframe->srcPan = PROTO_PAN_ID; commsTxNoCpy(outBuffer); } -void sendAvailDataReq() { +static void sendAvailDataReq() { struct MacFrameBcast __xdata *txframe = (struct MacFrameBcast *)(outBuffer + 1); memset(outBuffer, 0, sizeof(struct MacFrameBcast) + sizeof(struct AvailDataReq) + 2 + 4); struct AvailDataReq *__xdata availreq = (struct AvailDataReq *)(outBuffer + 2 + sizeof(struct MacFrameBcast)); @@ -182,7 +181,7 @@ void sendAvailDataReq() { txframe->fcs.destAddrType = 2; txframe->fcs.srcAddrType = 3; txframe->seq = seq++; - txframe->dstPan = 0xFFFF; + txframe->dstPan = PROTO_PAN_ID; txframe->dstAddr = 0xFFFF; txframe->srcPan = PROTO_PAN_ID; // TODO: send some (more) meaningful data @@ -244,7 +243,7 @@ struct AvailDataInfo *__xdata getShortAvailDataInfo() { dataReqLastAttempt = DATA_REQ_MAX_ATTEMPTS; return NULL; } -bool processBlockPart(struct blockPart *bp) { +static bool processBlockPart(const struct blockPart *bp) { uint16_t __xdata start = bp->blockPart * BLOCK_PART_DATA_SIZE; uint16_t __xdata size = BLOCK_PART_DATA_SIZE; // validate if it's okay to copy data @@ -267,7 +266,7 @@ bool processBlockPart(struct blockPart *bp) { return false; } } -bool blockRxLoop(uint32_t timeout) { +static bool blockRxLoop(const uint32_t timeout) { uint32_t __xdata t; bool success = false; radioRxEnable(true, true); @@ -285,12 +284,12 @@ bool blockRxLoop(uint32_t timeout) { radioRxFlush(); return success; } -struct blockRequestAck *__xdata continueToRX() { +static struct blockRequestAck *__xdata continueToRX() { struct blockRequestAck *ack = (struct blockRequestAck *)(inBuffer + sizeof(struct MacFrameNormal) + 1); ack->pleaseWaitMs = 0; return ack; } -void sendBlockRequest() { +static void sendBlockRequest() { memset(outBuffer, 0, sizeof(struct MacFrameNormal) + sizeof(struct blockRequest) + 2 + 2); struct MacFrameNormal *__xdata f = (struct MacFrameNormal *)(outBuffer + 1); struct blockRequest *__xdata blockreq = (struct blockRequest *)(outBuffer + 2 + sizeof(struct MacFrameNormal)); @@ -318,7 +317,7 @@ void sendBlockRequest() { addCRC(blockreq, sizeof(struct blockRequest)); commsTxNoCpy(outBuffer); } -struct blockRequestAck *__xdata performBlockRequest() { +static struct blockRequestAck *__xdata performBlockRequest() { uint32_t __xdata t; radioRxEnable(true, true); radioRxFlush(); @@ -352,7 +351,7 @@ struct blockRequestAck *__xdata performBlockRequest() { return continueToRX(); // return NULL; } -void sendXferCompletePacket() { +static void sendXferCompletePacket() { memset(outBuffer, 0, sizeof(struct MacFrameNormal) + 2 + 4); struct MacFrameNormal *__xdata f = (struct MacFrameNormal *)(outBuffer + 1); outBuffer[0] = sizeof(struct MacFrameNormal) + 2 + 2; @@ -371,7 +370,7 @@ void sendXferCompletePacket() { f->seq = seq++; commsTxNoCpy(outBuffer); } -void sendXferComplete() { +static void sendXferComplete() { radioRxEnable(true, true); for (uint8_t c = 0; c < 8; c++) { @@ -390,7 +389,7 @@ void sendXferComplete() { pr("XFC NACK!\n"); return; } -bool validateBlockData() { +static bool validateBlockData() { struct blockData *bd = (struct blockData *)blockXferBuffer; // pr("expected len = %04X, checksum=%04X\n", bd->size, bd->checksum); uint16_t t = 0; @@ -401,10 +400,10 @@ bool validateBlockData() { } // EEprom related stuff -uint32_t getAddressForSlot(uint8_t s) { +static uint32_t getAddressForSlot(const uint8_t s) { return EEPROM_IMG_START + (EEPROM_IMG_EACH * s); } -void getNumSlots() { +static void getNumSlots() { uint32_t eeSize = eepromGetSize(); uint16_t nSlots = mathPrvDiv32x16(eeSize - EEPROM_IMG_START, EEPROM_IMG_EACH >> 8) >> 8; if (eeSize < EEPROM_IMG_START || !nSlots) { @@ -417,7 +416,7 @@ void getNumSlots() { } else imgSlots = nSlots; } -uint8_t findSlot(uint8_t *__xdata ver) { +static uint8_t findSlot(const uint8_t *__xdata ver) { // return 0xFF; // remove me! This forces the tag to re-download each and every upload without checking if it's already in the eeprom somewhere uint32_t __xdata markerValid = EEPROM_IMG_VALID; for (uint8_t __xdata c = 0; c < imgSlots; c++) { @@ -431,28 +430,28 @@ uint8_t findSlot(uint8_t *__xdata ver) { } return 0xFF; } -void eraseUpdateBlock() { +static void eraseUpdateBlock() { eepromErase(EEPROM_UPDATA_AREA_START, EEPROM_UPDATE_AREA_LEN / EEPROM_ERZ_SECTOR_SZ); } -void eraseImageBlock(uint8_t c) { +static void eraseImageBlock(const uint8_t c) { eepromErase(getAddressForSlot(c), EEPROM_IMG_EACH / EEPROM_ERZ_SECTOR_SZ); } -void saveUpdateBlockData(uint8_t blockId) { +static void saveUpdateBlockData(uint8_t blockId) { if (!eepromWrite(EEPROM_UPDATA_AREA_START + (blockId * BLOCK_DATA_SIZE), blockXferBuffer + sizeof(struct blockData), BLOCK_DATA_SIZE)) pr("EEPROM write failed\n"); } -void saveImgBlockData(uint8_t imgSlot, uint8_t blockId) { +static void saveImgBlockData(const uint8_t imgSlot, const uint8_t blockId) { uint16_t length = EEPROM_IMG_EACH - (sizeof(struct EepromImageHeader) + (blockId * BLOCK_DATA_SIZE)); if (length > 4096) length = 4096; if (!eepromWrite(getAddressForSlot(imgSlot) + sizeof(struct EepromImageHeader) + (blockId * BLOCK_DATA_SIZE), blockXferBuffer + sizeof(struct blockData), length)) pr("EEPROM write failed\n"); } -void drawImageFromEeprom(uint8_t imgSlot) { +void drawImageFromEeprom(const uint8_t imgSlot) { drawImageAtAddress(getAddressForSlot(imgSlot), drawWithLut); drawWithLut = 0; // default back to the regular ol' stock/OTP LUT } -uint32_t getHighSlotId() { +static uint32_t getHighSlotId() { uint32_t temp = 0; uint32_t __xdata markerValid = EEPROM_IMG_VALID; for (uint8_t __xdata c = 0; c < imgSlots; c++) { @@ -469,11 +468,12 @@ uint32_t getHighSlotId() { return temp; } -bool getDataBlock(uint16_t blockSize) { - static uint8_t __xdata partsThisBlock = 0; - static uint8_t __xdata blockAttempts = 0; - blockAttempts = BLOCK_TRANSFER_ATTEMPTS; +static uint8_t __xdata partsThisBlock = 0; +static uint8_t __xdata blockAttempts = 0; // these CAN be local to the function, but for some reason, they won't survive sleep? + // they get overwritten with 7F 32 44 20 00 00 00 00 11, I don't know why. +static bool getDataBlock(const uint16_t blockSize) { + blockAttempts = BLOCK_TRANSFER_ATTEMPTS; if (blockSize == BLOCK_DATA_SIZE) { partsThisBlock = BLOCK_MAX_PARTS; memset(curBlock.requestedParts, 0xFF, BLOCK_REQ_PARTS_BYTES); @@ -505,6 +505,7 @@ bool getDataBlock(uint16_t blockSize) { #endif powerUp(INIT_RADIO); struct blockRequestAck *__xdata ack = performBlockRequest(); + if (ack == NULL) { pr("Cancelled request\n"); return false; @@ -513,15 +514,13 @@ bool getDataBlock(uint16_t blockSize) { if (ack->pleaseWaitMs < 35) { timerDelay(ack->pleaseWaitMs * TIMER_TICKS_PER_MS); } else { - powerDown(INIT_GPIO); doSleep(ack->pleaseWaitMs - 10); - powerUp(INIT_BASE | INIT_GPIO | INIT_UART | INIT_RADIO); + powerUp(INIT_UART | INIT_RADIO); radioRxEnable(true, true); } } else { // immediately start with the reception of the block data } - blockRxLoop(270); // BLOCK RX LOOP - receive a block, until the timeout has passed powerDown(INIT_RADIO); @@ -569,7 +568,7 @@ bool getDataBlock(uint16_t blockSize) { return false; } -bool downloadFWUpdate(struct AvailDataInfo *__xdata avail) { +static bool downloadFWUpdate(const struct AvailDataInfo *__xdata avail) { // check if we already started the transfer of this information & haven't completed it if (xMemEqual((const void *__xdata) & avail->dataVer, (const void *__xdata) & curDataInfo.dataVer, 8) && curDataInfo.dataSize) { // looks like we did. We'll carry on where we left off. @@ -607,7 +606,7 @@ bool downloadFWUpdate(struct AvailDataInfo *__xdata avail) { // no more data, download complete return true; } -bool downloadImageData(struct AvailDataInfo *__xdata avail) { +static bool downloadImageDataToEEPROM(const struct AvailDataInfo *__xdata avail) { static uint16_t __xdata imageSize = 0; // check if we already started the transfer of this information & haven't completed it if (xMemEqual((const void *__xdata) & avail->dataVer, (const void *__xdata) & curDataInfo.dataVer, 8) && curDataInfo.dataSize) { @@ -668,7 +667,7 @@ bool downloadImageData(struct AvailDataInfo *__xdata avail) { return true; } -bool processAvailDataInfo(struct AvailDataInfo *__xdata avail) { +bool processAvailDataInfo(const struct AvailDataInfo *__xdata avail) { switch (avail->dataType) { case DATATYPE_IMG_BMP: case DATATYPE_IMG_DIFF: @@ -710,7 +709,8 @@ bool processAvailDataInfo(struct AvailDataInfo *__xdata avail) { // not found in cache, prepare to download drawWithLut = avail->dataTypeArgument; powerUp(INIT_EEPROM); - downloadImageData(avail); + downloadImageDataToEEPROM(avail); + wdt60s(); powerUp(INIT_EPD); drawImageFromEeprom(curImgSlot); powerDown(INIT_EPD | INIT_EEPROM); diff --git a/tag_fw/syncedproto.h b/tag_fw/syncedproto.h index 6b6fdb07..b5bd6139 100644 --- a/tag_fw/syncedproto.h +++ b/tag_fw/syncedproto.h @@ -16,9 +16,9 @@ extern void killRadio(void); extern struct AvailDataInfo *__xdata getAvailDataInfo(); extern struct AvailDataInfo *__xdata getShortAvailDataInfo(); -extern void drawImageFromEeprom(uint8_t imgSlot); -extern bool processAvailDataInfo(struct AvailDataInfo *__xdata avail); +extern void drawImageFromEeprom(const uint8_t imgSlot); +extern bool processAvailDataInfo(const struct AvailDataInfo *__xdata avail); extern void initializeProto(); -extern uint8_t detectAP(uint8_t channel); +extern uint8_t detectAP(const uint8_t channel); #endif \ No newline at end of file From 10fbc00965622a02b1d4025d3b2c20b4148c26ca Mon Sep 17 00:00:00 2001 From: Jelmer Date: Fri, 17 Feb 2023 14:37:32 +0100 Subject: [PATCH 7/7] fixed sending to the correct PAN --- tag_fw/syncedproto.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tag_fw/syncedproto.c b/tag_fw/syncedproto.c index 755437f2..09af79e2 100644 --- a/tag_fw/syncedproto.c +++ b/tag_fw/syncedproto.c @@ -124,7 +124,7 @@ static void sendPing() { txframe->fcs.destAddrType = 2; txframe->fcs.srcAddrType = 3; txframe->seq = seq++; - txframe->dstPan = 0xFFFF; + txframe->dstPan = PROTO_PAN_ID; txframe->dstAddr = 0xFFFF; txframe->srcPan = PROTO_PAN_ID; commsTxNoCpy(outBuffer);