From a01ad16f28ebd39a0a5a26ffcc6f7c95bc152ed3 Mon Sep 17 00:00:00 2001 From: Cole Deck Date: Sat, 29 Feb 2020 17:01:04 -0600 Subject: [PATCH] go to competition --- 38535A-4.v5code | 2 +- build/38535A4.bin | Bin 21580 -> 22204 bytes build/38535A4.elf | Bin 269327 -> 270064 bytes build/38535A4.map | 1515 +++++++++++++++++++++++---------------------- build/src/main.o | Bin 21900 -> 24388 bytes src/main.cpp | 1322 ++++++++++++++++++++------------------- 6 files changed, 1454 insertions(+), 1385 deletions(-) diff --git a/38535A-4.v5code b/38535A-4.v5code index e294d85..f0f34dd 100644 --- a/38535A-4.v5code +++ b/38535A-4.v5code @@ -1 +1 @@ -{"title":"38535A-4","description":"Empty V5 C++ Project","icon":"USER921x.bmp","version":"19.10.1015","sdk":"20200203_11_00_00","language":"cpp","competition":false,"files":[{"name":"include/robot-config.h","type":"File","specialType":"device_config"},{"name":"include/vex.h","type":"File","specialType":""},{"name":"makefile","type":"File","specialType":""},{"name":"src/main.cpp","type":"File","specialType":""},{"name":"src/robot-config.cpp","type":"File","specialType":"device_config"},{"name":"vex/mkenv.mk","type":"File","specialType":""},{"name":"vex/mkrules.mk","type":"File","specialType":""},{"name":"include","type":"Directory"},{"name":"src","type":"Directory"},{"name":"vex","type":"Directory"}],"device":{"slot":2,"uid":"276-4810","options":{}},"isExpertMode":true,"isExpertModeRC":true,"isVexFileImport":false,"robotconfig":[],"neverUpdate":null} \ No newline at end of file +{"title":"38535A-4","description":"Empty V5 C++ Project","icon":"USER921x.bmp","version":"19.10.1015","sdk":"20200203_11_00_00","language":"cpp","competition":false,"files":[{"name":"include/robot-config.h","type":"File","specialType":"device_config"},{"name":"include/vex.h","type":"File","specialType":""},{"name":"makefile","type":"File","specialType":""},{"name":"src/main.cpp","type":"File","specialType":""},{"name":"src/robot-config.cpp","type":"File","specialType":"device_config"},{"name":"vex/mkenv.mk","type":"File","specialType":""},{"name":"vex/mkrules.mk","type":"File","specialType":""},{"name":"include","type":"Directory"},{"name":"src","type":"Directory"},{"name":"vex","type":"Directory"}],"device":{"slot":3,"uid":"276-4810","options":{}},"isExpertMode":true,"isExpertModeRC":true,"isVexFileImport":false,"robotconfig":[],"neverUpdate":null} \ No newline at end of file diff --git a/build/38535A4.bin b/build/38535A4.bin index 0a3cae459ef4321332de2e1cdccebc34c386176d..06ba5cf17cba50cfc826ea7b9038e49da40151a2 100644 GIT binary patch literal 22204 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 HsYm-?WOeW3 diff --git a/build/38535A4.elf b/build/38535A4.elf index e0bec610f411ec3eda8449cc62b9653c9d6b2658..143404fdcfc194c968d579d683df3c6962a59166 100644 GIT binary patch delta 73648 zcmagH3!F_=|Mpt+H-!s&%ft2&&+$Rwb%8tKA+FJ?Cqt^{&U;> zbCc>+KWZ2rkKt=&BpH^`z_`vRYnX;HZpC54SkXVrTG4-Ar#hv!_BV{AMH?PG6$n&_ zHBK8wMt&*7sG3lQzteI;WhBg>6Y?54p=$i?H;hvs#)Z?F#<&WSCdM%0wh-2!m62~5 z8KgC;CZ#MZFw&kaFj8{zjg;vHpAi3E1>^GPF~;fT{5Fi7e1F!q6FF35YxpPD+Rh)< zGqbFD^XdhJ||RVfA2hhH(!2M=d^sO!@tz4?Lhd>w0s|Y8P1G>t+f2V`Fnj_ z`0w-lJxBdr#NX#ig~JQ^yGrTs->3QeE;IbMkvX?O@-IbOuTa;3WG-+C80GQhn`u4s zq>xETJ{mN)KpJ2gJqxnxhAZar=j6|zVKEs!^U5Y==XrTn^7ytw=<-v3U%odfCqJt~ zTK=kp(B*?YeEB}&rBN}2OTmMSk6&IZ4IwS%1nk5QUYC{EKHfO(HL~-b^&6+3;>R%N z7nC*pRABn?Db(69`sX)i1X|G&)EvY8(&y8;| zh`S-_a6xHCvJ?fsmVTVkSXdB81F9s=Es(Gl#leNs%LRsI66K#;P}ZMNU>b9eSLV@* z#@qs*;m@=9yF6JWmg#%Omqc6Wr_ww+hAO6%>3HU=GUp5Zmx~JjDlYCJ;XMeCH?Cd% zL&e2a?~9>d)POBDLzl;TjKFE*TvC2Z`@auvJ=dq{$?EIrSR}&pLesOIe(9Zeq^B=G zm_Ucok6Dn(T%q#t7T7H}n$O!E+jjB?Jne<#v=+JYaY2HEO>7|EPHr zr{+}rDOcCZFgU$3*WCc-in~W;zEo2UV15Kbi=tXEOS<%K)um_v8FP8a>C#tS6_W|( zbZIG9#rj3{=#>AnLV@FU=6^F|WsD`m2~icA$it#q1}g2~_h;pO8#nyCpCS4-uG9HZ zwGqy`%<`;f^2(+xEr?CZ37L)epH1@bM^5Gz49qH1(90-etDd(0o&}W}_dI*RlnI{` z+7dwD+Pdl*nag;&Gm^qek$DywPEZ+Ul3^_}L=f!^SCZfVnlU}4_cHa22{=>cBYMD@ zGNoi(Gs06wq}LhOo9%9VE>8rf)i}l#xv{01nIiN5E%FfQFHJAjjq1f#Je$Ha?jp*V zAr%#7WX=l|c#{~zadQhCt?r}McBV*aGZc)BJ zOs`^ZMM3>vUEj@Bq1>nn{l&9>bi&L`ECs!&1^BtVfOKcHkV!Ys%*rm9Z)Dr1VwHbi zLEXmt&elW7WPIZhvbJQHd5sMJulzE}Z;Z+>i~JJFk6sSg8D7F;_+MkW%++OHSC5r( z_1Iu~>{>$m+5hahKu+kgUrX&1QC+v0hyRy;uhKL9%p|ECz3A5Q1?1_>rdClyxrRK& zooOq*7l;~<|Ev4j(tTZ2_YI``uA}>QVrpeL-l6xpl_@HmNv8Jrre){J82iUf&r4~1 z=NVB}C5QO7^M3NHPJRK=LMdeEBg1#ePMtuMs~^#V;X#>^0)2+VO#&dGkr|vPvQ;b(5ETqyKgxb6G|vYBU7R?L_qK7Z{@hB)OAn7_Sc{w&1*4Hhp;4E$W$IDMG{$MtG@(vQCwgTE+-$~G<(U}d0H zF}-jB&6<)QR5X=N_hPOCV#BJ9b8J3g}?p&vJA+ldrs#eichY3%S`+fFQt zF-{qV5ilYxrQo$Q@%-_I#0h_}&&)jAA>pCcYE?1G<%$_N-;&`i#O0Rx<*ZcLzbf1- zDR=ijll3N65n~uf8ZmOdB#a@t;9ffRo`9r14XLJTC>!oJ3lTmBfp&ipk6gJ*@Kki{6&7^Zd5gSfaFw0B4a^$lqQP z+(fJ7x47NX3m32x!rcg;BkLpn7TcecmR;~KaWQzs=`4ME(F?{4;bqOhJNTQS`{@N= zep!Z2mOQrU|N4VM3717-YtdXkl_lcYup=??wPk0GaXI-D*YJBTzdu=ac1wAKbx_vv z7}92#3k!A!PiEH$%qYkxFBO@AGRvVNOADkzhOxt5D>y^9Lsh&Y6<^}2cqJA?-N(s2oGk?trSRmB+Xgzb*Er?MwXE@xT<9C?osK@aN&p*h2KFL zZc(}ijx;KBd%@aK^!$Bk`Dv7Yi{0?!Xn^NKrs2=OmHb7112Qy+UGn=M{&w`#e*Sj! z)IR=p)X^UPcGS_A{Ozc$UHt8ALhRu07-MO{JBUq8PR~4Pcr6+(dkeASB6|z{Bby7c zY%a*ml8psfLio~hLib!}T&|wcGtZyYGq1ECw~_c&*OlC0n8vy{hHzP~`016-{~W(u zJ=lDHg+M!;Pj5z8C-i5H$I2I%dtreuCnxkb)w4b8%$!hLb6&xpuv8JLjvLjSU#q?}M^Dp6|gtPmdbY16nqpB&>V&dn}}Va4S^ zBCDv)ja1T!f~rTa$>zq_uFVYzw+Q!V^~{s8`426Z{+E_Z866lOKazVc@Hpc47_A|a z7KGN5={M{qoip}@>;WdcEG_e7=7d7!jLR~(YujR;lVpo6JfNi+Tv?Ty2Aee~FDXRg zOc{opoKP_fo3adxlo3lA57VoXzvLB=%u6NZg!ZV+7er-#j)x^Pc7p5-WkaLN6Se^h zITe4FN;?@k`E649O^eF!r;_;v@{bVU)U2DUW==*cR7Q_PWwfVcM)_aBGRLGBMLzDi zMy2MdyoN;b!kw2n@ljM}AHaSroSm5(o*vi8aH`6%TO`A9es4zQw+wa~d7ZnFvYjK{ z|B%Y4O;kqnqB6>cGovb&e2t0?Q2Et~%5Q2^eu2rZnw`8xM(HXee^f>f@!SEIRC^G% z`w8>2*(Ih}EUm~*S(X8fmmI%b5dk!fMD~IW+>M;jiYv0im=mxiRvsGos4u_z4Te1% z?CrL?X;`O>kSLilC}L66RhZ{l_c2>=UaPBVILL?2AWqD=#Kn=m`0D@bycXhnR`>VJ zdzsbO>4 zNLXCpk24Clzp%NGsc2iF3c&;D*d~eL1-zt0zuGaeJYnR}4}?i>KA0U{`)@m)#HZzi zF?n$JpRImws*Vzg^h*YEatdjbQarcW*Be!4FB;4bp58_mIc*% zZ>aXm+3k%l7JgN2eBm3_h8Mm^DQ{HUQ5dSWt=Do3ATeEg1!$$7Ss zH6pJZ=~e`5FRWOW;-n~!76va0c3fB`gMe(;6UfSJsh^iVlZ15*;~g;ta<=e1^$*u( zoL!roGCK;TZT>iap)oEqPipf_aP`9KBgT!$yAF85m2n(Z3unBvKr+Tln*ESuSnXnA zQkhAG%gbaIjwb!`GTRIDMOKhIr<0$NPNxzglg{8w4K{owDVf?!O`U|}uaR&}aO^8d zemX%ckdrVoxb&53l^SD+rF$fcC2G*`3hsO5`oIXRo@g}3r;DZejyG}CtG$WC{4GN} z0*BRcQpK@+aM&z+8%LZ5BXfU&=zW9f`n_Gj{`ob??;ulI!sWRT;qtdwRMOSU-$#I$ z-spviBsxqSE(?CzqPBtKu3SDZnM?kA|09#l#O=B+CzN#E^y6tA8SE#G!hx#Q+sj-; zyo^Gl+WxcB6Ef)18#!f$+XH|6g>8kQ*F>oIH?kcC|AUEz)oGHyhfyfYrS-GJ-6t7| zR+8mXOfX?_g}^!KFxE12o+JfY-kTI&%lJ}qLMMrftm@KuBHSS%>2T5HVi}~v{XMD_ zdi~GkF(;ABz9O5m?^RWI225&WuY;)eP$`qN_m=mCk8@-x;q_0?lZQDAnSEa;D$|*2 z`VZ2azWK;*oU?AaorfiJTm6uk;on7?{aAM6)O~gE02ndx8Vvu=0&!KOp#RD`TSgL@ zO(3t`bVGRAi|=!;Yk2Ww7l`%|zeRR{-l3pK>(!d}HNx(5TE7w-f&A!}d~KC%$(OJQ)?UVNcvMEes*ExRhQ(XfxssonxuMNG>-@b@ z<#SMEfu26_Z*kmr|8~$DFuOz!5-`39o~QtkgUa~C+iMv1-x5|AK7mghi=vc$l{HHe z&6dI3CAA*d-k&N^ycCzp$>E|tzWmxg%g)VYK*YoHCgp^ltQWex%a!&GY@FZlhL1f- zCuzo$CYgagw@@`JDB?V~U<4)hT$)&C08KeJ$CEFPtjuP4M&{-{JlCG*syq<9<@KuN zyOB(SW%(jW`qm4+zqFYr?TKLC()z83C`l?sjI1BTYnDkpg2iE$*PAcPD3K(2GKGxW zlHMO2zpPqf)u?>y5<8ICw!~gvgI(SH_^1?>Ns&Z~%t#6j-b>UimK04$G1D&LPfy9% zE6JhDX~eE2wnEKU5V^S?tHc4vIZ|{Z#heF&w=An#^@peo@`=tQdOgvvR}Jioiat#A z!NGa}yZm+h^2#zsc+gZI>?2L}(nkJ~YOJ9M6LBbOFYu-noMoV;pS*;BPP(5sigScv z6nSlkE0I@qPVal>o$I;n#BF6zP-+9vwO2R%E-EN{bxxf4Txk_NC`SfGop%wVVG^*#TX!3USOGfxCp zF8|#8C^-6!M?A#*@Ww)O;s@j3{MPg=8TLV^l~0?&D{m#4^MbYCst`2vWW%$#Yo2rE-v&dqh3eR^>MCj^N>UYQ{Gu zNeqkriT>Yz8y+;*G&U21P1iK`TrCwGyrzwr9-OykfEfy&T+_#_7EE3HiMcR%VeRMU z^x&3t)f#rW8m@`tk7I6UB$KgpN>1oG#!l4t#k6fF+6Aw!s~i0F-DLCeVC;L<;%oC< zl7DG|k1_r_*!;cg<0h!om9GZxc&|ll=!#^vprA!C`@QSq>you3t?pk?@J(>Tdjsm7 zAYKGS3VvA?EW#q)V`hjp$jSdD*mV8%X8&ON`Wu>^YmsGLIt!41l^)GuC^bI!KP}7ssH+cJo2g_A&m1QOK(}bT^t%6@{xW)5Vv-1m{h-nNZ+Ys+t1A5>m8Jb&KX*CUEg5J0{@YE&NdwN_82szQ`xB~NDL$3u8qn6k zu^Vsj#9s+6+*sf9pN!zA8*jP&{eQxbh_@G?loPrUmKIm!TqcDf%o&zty-OYlHa8Z+ z`cG^EYPwy;M@7!J4VM4tt+-prTn?ogTnX;{sD7sr z?Xs*1{A}ju1V7PS<>oAF6hC4XEt*J|obJQ?6qY7memu|k% zEDY}3+^60T)K&zRq0i4^pSMY+{7D5-wpk1UqiIA)y8_6&VFDF*VEObiymrmQs&(XfY*SB<@uAeq)eh}R& z<0G2kB2{)Yhs;q4Us|oC=J++Z{L`1r&B5lM<+pIsS4mrD`;p7rhtrnzFGHS}6^Nuv zw2V_5sAlcfrnP8Tui^Sx=?QNURRk5vu6xV@@pOx55! z+pE?XNy@E;D`iSfB;`H9(DrKPfZ$dBKO>m9qgsvbq#or?ed~3R)SZHTchtJ&1}d|p z6Y8G|ZRO_*KWF&a%g?X;?Ba)GFylk{y|UOi$nRpK*!YRx=Z6K~-BH>6C78RTR-i39 z)K(s8IiZ6Wi%*v|=AW=qIvqERe)+y?zu?tBdwgzO>B0x_lvz@iOJVCmw5jNABkiR$ zanH|U@nnuUJ>DxN>(}e;(U_iB$u%l|Y=V>KkMO8ip;c9bHFs97luA08%8Xu>UdHr1 z>G4*+bz}ZE?b9eDn6tBe<)b`Y7MHSr zO#Hl>nICNZ`OW5<;P}t0#qs26$?<|2T=;qYN{e__3PPmgI80*CB|Y!8;DOJBtsf&{ zjEp40GMT^Scdv};dEAMy|9*(y;$2Djcop_=aPh8>N=d^gzklw7X1m~y+)vD5!Kq)| zXx3W?ABU3^MxSD(MbRWYeb4DEeBXns|pMpqRY zleI0z4kfkpn#l;=D$mEybcNhxhrHklxluwozDUS8p7QXNm5~#wuX06u#dwowL<*XW zGG8K{)TL%rT^0s&zpB-+yz41{CTlF$lXG2V#z>igS5#hRR1206?#P+c=h9!{b|XhI zV$3Ahw$#OYFj z?g*aTbEo-2u*26kdCFZ3KK}LXo{ATPUwqxhToSzc^_%AQ;PSmUm)bfq{g18p1@rbc zN?m(@`X6gYZvP{z4L_|PueQlwCyobN2R*@_qbsCzFMA~ z`-1oH>+0!#KKSmwWKWy(!Grr!N|(M+e5&3EBbe~b%HZa28kpsR$G)k>#l!G_=bA7j znqp%4NxCsu`P(ONUy_z(9pvX6KS{kr^@jh;>Vlf&XF_)@Ot&oSt{z#|bpGB&n3G0+ zSLc}q{4C)osaNplZ|he_z>F5IG$Z<BdiM7To;vieXHrJ+)Zv=3;`~k8 zZx{!I3E$U>6&En$JHxmunEHLKQuYnq!@+yLuTyF*#jZUZe2zcutFniK?|xq=RxZnK zJ!}|5f=79{dS;lsLGwthQc0O}i3`?0Qr~m&aPW41E&4wAIKP%03BG=$e*AXve_uYT-17VH%u38MenEu`nlvc0bE6 z;oAIv6-%eD5AQ0gxiQ=gGs!RhGYvd^L(Ha)aBKcZOVHd-&hXb?uLC$5G*-DPln!64 zrQ>_TepdxD;3QXu{a_J{G>XJ)GRA_^DIzeYQQDXy@#;UXQB<5QcL>suqHvhWF|uKd zbMectNSPD=isDxMmI6KsN7(-_8Sde)^KG*%883-H8x?O-6OmZy8HrC0%W^oCWYC5L zIV2dtZ%Hs%s;>T%_~CH3KDt7Z&hI2J$`}t^BmJbP^j%!(0}o&0f&EbrjB`DJ`HB1| z6_N_bybK3g#xsf=&;_Pp84{nPh!9k4z!Okv*Z5`1|e$#A;Nw9`*XF3Izwcu^F~MnHHB!VQ#7 z0%7K0xJE`)0ZXDXSQW)bqWDAyC!#p%hLZVb3ftwY3M`3AusMnkM)AccPHs@L zfJITfD~eCR;qp}l$~G*SLE9)E5yf+(cvlpkh~nf%CG*c{#N|&J0A~m$L?u`h#apBJ zcodgyT(W?aD84I-r!)?fd|*XXg5yzKrAf*3nNhqXiq}T*_9#vY*sEyif$%g;j^YMU z+$4%qqPSHQw~gZVQ5;B%3g{BW-J-Zx6o9&AUrB+2*yPjkGWCl=ST69C?3I9qI-y@ zYYy1fY=sW6`AigdVXM)dL1q+ZMe*7wUf-tV^V=g#|4WOFn@T2_5XGCLxFUY0yFyt} zJ+>fiQ@HvsDQ7c z_(T-P^ekCmgDB33;t5f_B8mgMq5^)3VsEdK1yTy7hDm;s1kI5b1K8nYbySEAT|d&%e1qBzIJU0AGU zW^nLE3uTL8NI(U+TRegU4i6)Kl=}h2PP`beF|PEJi68GuFMAf_T=7GQpWx!a90Gb@ zwyaX*Scm2JcDP=BuO<5q!au{uj(V&{ifdD~P*v0Fq_{KeYhqfQ=Gy6J!ec`o>!R~K zeCdS8l8q0^?*cseNw0M(%z@&|1Ptx(v#P2DvVSxBxYsI0&E@+Y?RJ@#kzRNt8Y&l4Q+>{OmrxVPA7r$v({iQ(0{AGAcQ`73EGF%B?+NNg#yMM;&VN{5& zm;5Tg4Vzk4j!NGWo?5IcbUVD^u-Cdr?5{k~j{sTQA$vvws$nF2@{re({dtLh1djd7 z6Pc!O!RaHtkrw_4_g-a6m)hyCz!z`JvbMuAOInsSj0Cyhy;=xI!HaLSBF{e! z@9yul_+>X>4S$TE?X!MU`~mFShLFg-mM%U+z|~P6tBT?qxTl!j!L;{_B|a4%)W*w8 z5aIOQVKGKhVd;^_;R8G`Ln!H|!1H>W)=tH<;iGY;B^p=a55gw{5BaR~FWI$UGhlcevTII;r$8!LtxryUP*Uw_q_|X~atfcf;#UGcu&- z;6UrXUMpE;a6Pvv#X}L62b#mv&;#vNd@6h)#b-UKxHEidpEr`>0C;L6GcrU=;eK~& z)w>t2z0HWo$iE59zeBDr6BV{G*BenR^68DmK|Sq~;q-Z?)yk;=JTX!8KzLRaD>Bbt zg~#^rMikj*c;!w#ZLh1q{Hu4^vf8LI=~jU;e$f+ABzM5eXL};ka5g-0qZX>U@Ya~p z_L$dZ2p3BFTg-^i<-oE5Au=I7x(A+|qK(zyKt;poe$}#GRV|tcFQ&%Mm@a^~P4Ps` z>l*mjAG(77h3A#>TAS7L4LL`e{IVI5k?!!y!-myP#XkvW5Aa#{Dh@nDz~VE8wN~}O zPPie{#L;xS;SDi9D~{hHq=)(4FM%FY8I;EC4MGNxB|F{^i_0dnNEBHeSX?wQX3_&U z!=YC^7R5>WK=GplY|HjpT~!8C;l3yyM=^!qj)y$f92K8ZgO zKMFS=?~Uk<6>w`D7NHx2P-md8&#zT-q4EbX*l)=kCmmK-w!vx*|erBuEN>k#uvjLl5PLn6EN+# zY2B|9%!NA+H6sqixA2T6zDR*5;o6lfYp+V5$l$K4tbNFIxGDaGV>@QU6EV+@ZCDSd z=iB9l?Z1}``_13gQr!w(`kG~N70wo__h7kT^QbEDOSoSLZ=^?#!~6VRYo?07j*_;m zwX8Jt{A{>kb8Q=z!5f&Se0(QdzZ98xgPg7I<2cPM-<) zt*3p!H{or`mNigS=qorEO~`Du8}v7P099TypaP5}G*_HuJ*c=5JmYj=n2sGK1=0(ZR4Yb{anXW-^LEo-Zi>Idqxu*g%21U>QyEN4PZ zR2OH#y&v>MRQXOg)ny&68?gVfy`H2Vs6@c-*9{A_z22t64Ykk=f_vBUMlzfUn@MJ5 z>Gdf*zPZmjBF|Hyui#^!Y7fgq<)uI2jd(<*8ZiH4AFjO_7K&OV*jB@5y-uG>22J6S zu9Z-4iN8Vj(0I5bnyi^Ba0$E-8F^CiZg^#P(^{|i2z;`-wvLw@F#oPj)@!+cNw9m5 zR>h?n>ceC|9a9m$G(!7;?cs}OOW8s!_WudE#yi@fuY&<&C=ykZ#aP4Fkz_~cBw8Jj2LSu~4KrM7# z;Xy@~wL--QCJ+$6&xi=!99Xtw#GcDMeFLuahc>UfB?Fgr>xHz9PxV?oRE7`0JB}zP zloo#j%ekK;l>gPVwT%oC9B)RN$9e8PPZ)C%uE!_NRPsI3if@2R@Ru9Bf zy7UFO2pRCI3T%SgveB3ZO9PI=a*~S8vAGalIm4sY0oeay0#b1z+p7%9BTd`l_0lR0 zUXbsNXu8|r#46f44u<==hHNH08P)Ak`Mn3PDy4nITsZWlGS6cF%iTze@M@h3w1j=# zwI&=1%jUGSP+IgfJQU4$yDH#IxG5gd3B@rfh9Re5{Ib)x;g5u6TBaU_xBX>Whl#iC z|8E3z+^daEa&ye-zn+LO=?I@>X@!QiyL>d9`InaZEV!P_IDHPsBGhpz{Q-FR<6e8q zMuzNrIF-dL4GP=;GA*b8e!gQK8^SYO>-)}d`sarAqRMbE>^q?={0cnERiPi@ODlAX zV_PDmI56ea^OfPy7cvc*|5Bp~1Wc{qjVOxEaO!yNb{~QlxyG<+D>B?`MEr%8aEO%+ zo|c{8{qR)RmdjjtIC|k_r3Ze82lZfx9sA$4H9p`fUE>LGhZj87IQ2j_ywBC5Pv8SJ zy^)pBNqBUoH{$olw?SxK)-na&{jh0$tSUGLZq788{YSgT9}!U9)xrWedyU>=sc;i5 zuAx1i2CzvNI@2x_u8ogZPUZIkT)>u1jN&bD=(J9M0vRQ~T~a?99$ihZ zY}UXBUe+0Igm+BwT3@LGK86?L>_As0rpv%+9K#a%h z1jH`Wdo&-yeO+Gb*KkveM@1GG z`(IPV{{>HD&*xJHRVvUVjTUy(73=_Cs)oa%(vN`qKIO6AS9}mYG}RN)gn?58gx>Q- zYWN2%HxyRzfC$MA9ohM0sU^3CrNEov8Z1Vg7EFL+G0zQ1FY(Vwe0NV|f8bR(i`{dH zm)-ME;gK5+XE`4z{)Pa#28s=`3%mdqeW0cGDm?scZ5w)YBBKm5vSacrT*PMc1XY2p z@an31_xw047nNG6{4c`?`efM^C~t87Z*@kuCu{Q>3-4R3H=UZpqd72;X(KJ{0Xr8C z#U~s9Pd#QtDl`Y)I9hMj?txdYHX{{01$Y0^vi_3%#QrCBVP%6;=}38hcq0pkZmPhi z;Se(7Sg*D4KFf?8KwN-3rgcNf!V%z_R30O*jRaAmk z;Pi>wgUN?Yc0fET{%<&TzILN)cV${t*A>1QUfft~(mUae+w~B=0RMD%7O(a&{}Z?y z{1O5Ee$Y3A=h^8eFfn?$U*@59=mU zEziFLSE7Z^5Ej64#3=tI5&st)!mD=Tuj@&L$7BD?l0Y&TNPygek!d9J{wa8AJu9-M z@&??IF+Zi!?}PjOW>}jkL!SQ^meX?SF?l`(Y4)*Hb1Jw1?tNaLFMJJesAq=P|B}Ha z0+znuv%XUW6vKlOEoY%n+_X1ciWBNc@ltrlCXXeTp6%!1<*bICSz@446Psvp$psvceu_Qu?_KkS=*7mqROB#Jo#CDwAvm% zd4gRs)gvEB{A-+=sr0Ae)jRdZ=AUq&9@8X6C1`R7snIJ=_9;>)`B5Y_5e((CO6*T$i#s2VsJUOmBUtyO$azW|D5rD1)nG8jpM zK^1g{`(e4MG+(voH&|}9;>g%7EY-iHy>AKors&P-`{1ig%QRJBEs_mXa4hS97V3ey@bYAB4Y$C#Ncp`g{tSExpRbAHtMDP$4$5riGh=gW-+X z|3-so@mM`;?uO@RRUIgPl7OYycW2rxfU{pSBbw?{xFKh^PK^uTLo76yo%Wdf2jfAp z@ff4{4tT*=rnR3Y$h7?!PA^v5cJNPd@5pkU^?%&mblFfn@7uvg@o>tk42QsrU0&@h z*h`OyZkHZ;4Q_~P?WWSd1Ltt{O5zjf!AHfu)V*@VtH693O)h&|?xWJyL2YGW9MMLg;P# zUzvdPPqcj=0PkbrF+n}>1f2S@Wo0VPhqGOa%To7Hp;4ywvx@HkS8_QZong7o?{|_Ueqib#UBs`<7b}&}M&O04^Uc>kZmWxYOREB%tEiNf9JB(R{=BueH z)DGVGyH@oR;LtsCFv}EUJG>!;lSzh>emd+vq}l}cYiwD8EcL)40%o}itaTq_{--Chua^nO zmNTv6D#Lf+-Oaq#BK7>Qun#ZSnZ}pk;ph>Qc$o$DM<64v&F8N0v?Hwl-%uI!CLqzZ zoPGw5=SZcTieC%+e$d(A;@Ai9F9KMnThs%c38?h9UYorHXH$Vp6~7#w;X3<00;+d^B~5CwVb2rZh)8LvN=2u zZpuPM#@v>2VOBy;{L64I&pWf?5S)lH>Za0rA7cJZW*$~n0qGB+`Suu*Yc+Sll{V?K z-|_H<2fdM<(N*x&Y3%E%S@9>_!SY(?RDP|;Amug9$SK+&c==6Q6+aLlV2bN>dIo%f z8ag%J056{BwfKyI-NNl~?;rK@`vRPuqtA9Lk3|UaADmg!5#GQKisJ!21ZTSzvw>#` zC}K;+t7<$8zQAJB$zT(l#Cbpr@iK<{;B{;~Cad(taO^|c{&##BnRrag#657|D|(hZ z0goLJX<(rEO#)`&u{hJ_eRy7i_KNf2?zQzcTKPxV6Z%D8BpL*F7^zP*UWG4k9zciL zJ+>K6eA{dFrvQG_dqX0; z|9|^q7z>y2c^E$Ssn=SiGMEZaMd~{#J_hgTrO){i@KlbudZ;BlkIQM#sPygN)=b0t ziig0v(Ug@P`#*z#eoUjbD!~eP@_IC*74Cs|;Hi7`mCA47cA`{$hE33FO zykni7cK5*(XZa%AaAV++vUarXKN|wi6VUg7o;JB~w(G9fH*iDOYWNB~+@fQ5#mh{`@e3o*a_ zRr*eF2d?QjQoSB_-usn1o}a*}cj`l_@8Kfu3pje_7r4p*&i_S`$h7*MfQha{r?Qiz zKy7X_VEImoGYv<;J6tQJx$tP0b=(7wWRECPAnd+7_AlJji~WCDwJ2>eiUJp^s^X#W z1%$G);uqjb9=(BZ5RPY>F+1&P`ZGN5X?-A(4-ds>Y^LJNJ;_1`Y-(b&X%xac*o^L?;^Uvf>#e0XDm%kdxq#pd>Ak{z^~z{5+>i~7 zs_Oawz<~~&-8zcpcLE9~`67qI7vYJlUMs2xZk~cQJE@0c09=U;2}cHIz^N7WO6qI4 zsFQABo2husu601?smT9$m$AqsfxJlMr$CX~C*dvM>n?o;cHiS&4IlebkMTZu!)^LN z!}~O|=s9iNu7{U*p#e&@H+h=*x6yTXyAKIEupD>h@k{W&z52X=5ga?%ikyi24rg+M zqP?oHkNj#sXIft#+W-M3s~vS=|2i@Q_?t>EQr z*z-{ZJPOC3G$Q`NN;vj}R=vkzw~SPthAMu=jJWlI)&z9Km^fqj5PX4cGH1-+g`2we za=(VpoxyxL$d^rLzjY^pvF* ztJweQ)7iC3=c6QKAT{g^Z``b})%1Wbtkga73Vey>wKJ~|!h_HwmsJIhz`5-4%u(!_ zf$<5ScH0fS39cQdoKRW+-%r3UHVnj^iY9y%o{FMKQW>m(-9BC}T!e9nQ}I8+!~gbL z3l;wg_vV7ai;7D=6)fzXOE;X!(kky7axcvH?;au!{ zTa|x5xFcuB9$|*`epucu3nURBEqI!Mue_!0c`3{1{jmFP_}}pO3rr)G;f*iouUN<} z*v@bVw%_ki@fq;&`&r5{(Pc=sz%_7c>#O+FFdr-kL=GGb=8JswV!f(R3_R!&t-HIz z3;yO9Ehe1dPIxL;F3PG5&%mkdauID8STUPgeP z>VXji)MiV>Y2hpI>btcE^C7$&sdoza5pK$u$EoKpz&_4?9cx;K`8U+HJ3a{RaFbS=$wNhPPDK#%mH>>1G|ja31q-k}JcbBpCi1r&vm8n!U`OPFH+Sc=3L1-JXX} zV&9z>eh!<1bpijtS6yy+xgcvvmU?Jty9YZ2nSaxZO4)BJ$?5bE5{zZj$eA`XVE38M zYp{Gk0N>G`HS6H1U+E*3LU=hc;q+kZ`OKmvdaXDZKH}N~S`Z*$C5uOUUNWZZ;0r~1 znuXvFyw~H5dHe!qh0D6tfG4_qyu0At+qL2e!1Y>cz48jYbdug@4E&b>-;eq-c@?Zk zi}9p_}xH${~0V z+j1#({@DLN2^fkO>l9dX5nZ-PcUfb2@d&-aFa{pJMW2|ghP!j2Kr$3f`iaD2?;XAH zJ3OnS_WSEDW>#FX!aXSV{~iJ=p*Wl|o&2W9rDjhp@R) zzmE3@ysIqVol_Mk^%};=H6+RK@kZKO-URoqWS=30?f+8*9QsiE@j*cYp;i32F z#b@#oT9D|qkL5%YJ^-huYt6Y69_!MqKf}3H$dQ@qOF4wHFCsDj#o7%cpa?1bRdvxs zxB!``qIeNSI*Ek8b62SV>5ozix3`!ci`d37)uYC%SeCJ ziU?&FIQxu8-~XRLz(}^$=BNj@!3S`uN+~`k@lWZa(+jZadZn^e4n4x=a&?tH9d4>N znWO^u!7E!bifC1i!b!rPY$J{y8{r)fM=^DS>-`(hdo(i$n8J3tjJb5-Yp{HDN?Ihm3f{p&WQ3~l z*Kl)gMmZHc3CCXIhJ&h5gEuMAwX=F7ysfTIe=j^Oz#R_f4M+BGjH$nBd%g{p4-R!x z75ERlh4=Ryp}Yt;|3Y82YPEue%gtuwtoS~-JM-L8L@&Y9xT=+;8n6ux9H_0k_&fpf zy&f+K#L4uoM6tMTG?s(MyWV){4k!MgceDGz@vV^|x@JwunkU&1MoIfvq-rV@Em->b#nSP+;@i8+OFc)!l|xz!;ir6 zuFLGjZv`+eE4`8Xde^;;`K+oJ3U|Q!4rwR!CAe>j?$USRr0M$2=3VgQ&x}YHAA>J& z8{TnHZdrw9be)`z3J{RXtJTi5d0G;<=It6-zGBgq7Ksq%!3$h6Phgo|)grwg5W5C*JI1umtN1=}I&anV4|AY+9Rc#KHkp^w!kzG0-e3sZ=c3|^uzYmN z5z5%LNHNCaJC$J%c*9n`HoOxa!^$Q}<@W%*WuGVFq^^gZ?+5w~{=vRa3D|Z>za+X3 z9?7nkqdLp3V-}zn%Bl?O!b4wE#tNUY9X#B{ec|pdzdr|-PdYVF&wmMzuBKMcV*m39 zkk9FiQwjcpFJ0Bfq|Uo&GBzB8e9-TEBw zEWDe=rDI-WHefAXLof%9M@Xdyq=CEO@aulee+eiiAeWQQIx4{p?_-QU&=nd1k5928 z8w@kx0}N4pm3|YvqY~HknFf+y^A8YW*KYaBAZ8Oof+lo& zYyv!Q2>1VDREAjuWDnPGyRC)K?$erUJ6yyqSttD!IG2mdj^?yJLh88>=nP>Re25E( zj_nu$cNnBMyO+V^*RgN6Syf;y0eyJ|v%KP5I0hdMd9{7GpJ3;;Ss7!42i>=1d%?>w zW{iN{qgikw#^wvvBk#g)2j&y_Y=C(vLLnLE5-{9#q|$H;L%=cIU=`mS-o~w#E{gAm zP5k^M#q;5fe|jSK34VvOS${=g1_M5(=gXoxPh19l~ll)hV?(e{=2PT`%gGr zW;1%N%J5P>_7?$sT$@4PL|A1?JrECR5 zTxARX*i;HWJGzz7^ha zLZ6P$faME`PKB1icd^qthxDRZ1FH$B*I!>4{14pFb%bJmhH*KhTTlz$fDh;NP(Aq4 zG5s$1-EfTzJ;o2isl3`9rz-d|?7Ea1DBeTBycYW1ZF4)S*LA#J1x|ELs~h0>PxOvS zd$`72b!>+@?hWsEIW!N#^0_`4A{mkw;e^pX^@arN|5pi!=g#I-WGNTrUn^fKP5UA_tN6ce-~lii*3yu^gv6^ZYruIs1f8mwx~^Vayv)plot|4^QRV zj|jbO|NkXmC`&I#h?;!Pv|FVQnI44ai@^lWFxD?892+s0=@WYkz7)&i4-ryX<}STpGjy zL@Sm47I^(&M{$)ly24W*^pSrcJf=M)fRE2OienhO;Ca0xvI_1O%ekEyPJjIu^hiH_ zQz{8g*stE{U|J1;w-soa7zW2)F|6aNLP2;2s=6HI+q!=@0VdymaTJa9C7O_F=2h`= zuza&oSfscfypkT6qT+|cNptl=7RgO**SF_oNwT!NA*hU@HfoA^fB5v)cKYkIB7*Z zm)`Qa_$o)KP7m#d8}eQc4Yz02Id}&1yuRW~@Zx{1$eB=w{mj3S zd7j7%1&{AXYH!oJe+e97Vc`_;F5GvoUap7WX|9XMbq`R%9eT{4g58_b3*eC`DrZ`+ z4-hbs(`#p*o`(~-1L}-ngYTH=dvWUh3MZJOsPH-%|+hb)8_;J%}yfy`DQ%g$BY`I8kW; zi?Nvsr~0*%y9Vy~jbX__92E`}H#vm0%FsI&55N;yTy|3#E`g^pE0Ps|E9sAGm+gD_ z5c_=PRJ?f@^U6{y36^PE8E)e)^?S@QKAp5s;s?S9Tw6A?;R|OhYm=H4zrgkQGMY1_r(yX}iO4`gz$j&0Bw+2p zEbBNAh_&+`LHA>P-r)%;;12iz>wxD}fy3Zzrdf*OXW@<@ejFJ7y? z<^s4OSG(HtylwvzkFq1tUQeTDaC6S-+NuJ22($g}2;Fk{5Sz)(RQzH1Y?5|B%Km`n zmzvIle|0T*#Cr|ka}J?bSlsd-p%*>Dyj<2 zhMT{y_kLf8=eE%1c#}MTQR|Jva6_zPb@lwe@c3U%>t7`klaJ9L_xk@=0y^SE#;6C% z{Y-)#UQ7Oo5RrjIc!6u)ronwV-*+lF4IcfV711L{;A2(v9nwqi7T4Kt&0kn2yy3F~ zQ&fQs2$;um*%`AmcqtnQLsa||!acP4eFNU$GCpVExh}WcdmJx1+pwphG@uSVjeW!Q zD!(k4f1n^>7bx@eRRTJ)3Drp@_!Dl>zB}CUIbY<~OCNY8?|3*u zHUn>UwVO5F>ma<}VA6~6~A_?DedRbWcKVPw_Ucf~rx9Rp`fYej6hM!N_Y&Lt6N z2!4X)pJWi09=Zf4&Ot^z;qPX$<9`MrT`pxI};W@5#z{md$Fi$zdai-m25*+wdpYt7qFR|8pRMq$lT#tLgj^-i4}BIOAa|L5G59}l`m0(7%ALfTb+C_b87AT8zce0UQc+`iFv08N$O9s4} z6N?ztqJZ!&BjTb3;iIlD{s$h)J0T)dGR758qX%3U4l-fa+j4>8M+m6oTDxt6CvsX{ zR%P%Ve2De>D#gFSBlqe1faaN!GH@MSn}tYymA(Z$nwL(UY56LAFyg>q|Gy=muSdVt z;y=rYNVhEeBN8Izec;4VTD86f4|lb=Tp>NuRSR7`_-r>bvai?zp2sDXUaCT4;RW0k zw>7Wq|IZ_!p6f36ckncNpuKwF1l-T{8I8KXGeoXKrRU*&xaBe}rOSix#C5*NEte&5 znxz%n8aNiAk0ZTp|Gyx>{RO0>a3U9x9iQ$ZJoGJn-rwdNU5bB@qzdc-59O@4f#PBC zO0IBpQ~W%fj?gwyyb{jFe3zqqyT(5f(Dao4)?4)=6cT$vUDX3?;nClCB7XfPc*`0i z@@7-=AGqn~4QrRujQ!xE(|R#F6VC3gjn{E_Qoc>XG8TQRxtYAzbJQSnD4KBz94 zvd}1mFTAVP`#j(LA_cP9?Bq8T-iQ-BSUtZ1?kng2PJ&Ye9AG!QkxGzsi7~?obsUhU zaKDM#RqOoep1hb@@#Ad|6rc!Vn@+5faPC2@~iZz@Vr)9)h>toqUp-39{Ch5;w6+JivRqF`MC8Lt@M?P z@o@K-tjHnNX}E?w`pGD|MZf`7>^O(j3?hRwj>>f;mJ2uh>8bjc7d=(>wc#)y!B_6N2 zlcX2>zmji3)vwNO({DhHQ^bzvuUN`TfzrE z*0<#+z=_aI1MMJ<5jB)Uxt_3_X7jrF)Po%HZjz-ciRtM%^MHS zyqydW_vueCybF)P`Xy0-jOh-zA6qt#%#kil6Y*;;L zfhewf;8}dM!ik>-U&5!%QTZK!N3v0wq&S9acPj_5{(oEr+(JOerKvLD(Oj?VrG#dV zJmA`h{0xp~@#@%$pWzt{iBsW9@yLv8n%04H`TUO4qp@Q z=ys>ZYvD^DYfbned|{rxmixD)cfC2?v>ZctSYJMW4$kJT_+6^O-@t*6`0dURoFSki z-}@JPE?xR3oV#AX4PW^>)A*G)r5yht11{j>^&hJAPs3APi`hl+#9|||F4zhW`bV#p zPhE%qeSrIZnJR-8em<4KXELM!sX#Z_eeyXOUeJ{ms3Cb5b~Kr2%1puSmxOtk- z%2f7#8yupGogVa+H;n{7STscCe;d4U7DL7uOL?yaBmvj!=Bfmj;H%hwM@Wj{q0Cc< zTU9{Fm}ZU_JPf|da@>i346d74IZR_R}YbJ@glRPQ=CWa{sT<-%Lo z`K%aDA1IEgWEzLibWVZQVfR0)(H$Pk-mVxQ>9Q<%5VPiX#UH?Z=>ez9_rUJ2=lmC* z!S1&zu(%xeb4TxV82jIr0Jjs_72Y>lzpLE`c7M5iI6V9b**p$c=o5GYyWNh=`~%0b zmFwt%y4RzsU3b9-z_}dt7D|tb{r`@D@wN1FIR^K19WGarDxe?Skjv@GitmRfqbHm( zUjQ%0csVk$19pFS|FRdpS}K{L_mo5b{y5Y0(O5ce+xYFHN!f> z7|BuUZg>lBxid}whDY<=5T`=La6Pu^ny3QXRW;ce)mOFB;K_H|4Gi1=Ndz=?y(+yN zUhA?}`Eb4awbc5nAtSEKWp~0uUAN)p!}0O@K;v`R{SxbOICp@UYi0lcCEx-(5?xh| z+sfxIjj(;M&Ajgn7vZ9{SF_+Lc*|7o10t0olz+p6UggL}J)c?w!>^_kRjpg2F8N^R^-DY zkHTk{I$yaiDt;TzuMlwPcYS~F4|wBP%Npeg7w~v8UGDm4Hderun8*Fq^Hx2^xJcjqN`>9u z0~iRep@D_H>4Ap?|;HJFn?g;q_#^0#KDONl6K;Iki^Ih|LAv}ZSv!lCrz$dx$k)+ap z4NrBsTvh`VmCNO-03Ur_uYPZbCvvyk(WFxv1h8Hl4m)G`6A65LRKnqyhFCw&YQs{@ zw_o7Z-iY-oZU`Tvz%*5%5pciC+ADqwmVby;%)3nUeUhHH>5^3X=7C1k=u!Q};s@aZ z?7brsufsL?rh_BJTjA!k*cp-vjcK9lo=_sZ(RFP%4er1!aE5pc{HrJ)RiQvO0qa;i zIzq7r&T*;UlkiG56tYx}lbhgF;xjs9*bW|v&^cZDFkIqYGI+7;(#p$lIu$Ax&M#2> z83FE(Mi;>QHfi1cJDkfcSE;c~vsz8j17q|?WDj^U7ZjZyn*y&KuZ40kJn?q3i`W<#T+_5WEPxKh3%fo-x3R?1)^3dy7-+tp8iJ z#sP`9toce+-VblYA8>?hBD@1BciilG@JVjH)KL}K2TyQK+h5_c>>WQB8?N9#@W?q@ zu~lmm-T{f+|8Gfv`(G@)6YkCig44p!B)%V~U}}~m-h>oS(W>=Ecy%2;ZHL0{?+LyQ z7x8b$IWn{f<~DpFvdi@)0b@7nx8H7Pi(Adzu3oBz{bBh>swD%NB@^L<@FtQy1ha)P zW{$&BB+nxwZPoLoQ;BEo*F|v>Jh^4S7m?b=1PuTGsyhGp9IN+%KR>pZh+&^7%O;am zlVLI$8zz&{%F0AGOom~Ytms~4vc8BSQ7c3U6-fH~JgiTZPrj6ICO-<}PG?h6%^-3cE2t z#N_G)FF0kUaOS~nEra6)IN=c!ptuosvKVaU>o0hZgi!Wql5VpbPO~8;1Bo;-6%{KVWR{-fWRVY6R~h9?)4q|dM^Ak`oE#(r{N3+ zBE#$0sog?C1cAk`=o=2e=|k(3i^|YvaP(!|=~xV^7nH*ZNHVFizv1P>%|IogH=^8% zBTj*X85_#|Q{Yv8Cl&g?fP@IE-G$`; zl}tiOn|TqgVw@l^+zY2ZVMO&Y_$ADERpm~wr=IH!3A6jSy+?Hheu8tJF>>H{IOHia zx^0rEB%k@>E^r|8`)&2_?}vZtVXWRq;hd8gp}Ln;z?pR>n)d&baD}N+k$gAeuCkBW z>H{A*W0q3Qg##_wzZ^bKBa>dTUj5#Rpx6!DTR2~Uqp=D5ivGXhZbm9m#sw1vmonIt zZn*%iM0C;yeRcW*ytc#y7_NYA8}BH5{tWy3=r6vrKW!+0vtRY^^WjWpMw^TNUqOO> zdfjF?nbm4ir{BX7to<6IAJ9Ardx196UUQt{B4Y#Q!$U0D|00~n3*`g0!RJ}8*x!{q_};3`(h+^c^-47SgJDuV6feBX!d z{eQoLBfls9f3B9@jqgFS)pvVe(M6U9@3+Q+kHM+d=yfBUMYokYKLls9b!)oL(3kLX zY&;P>Hw>i6A2KVYli-L<$26LJ5~65SBFPrPiFC`3`hi>31MrMWo7fK*F;6H}^aUJd zX}>>VdlQN#$uwGPVzMV(fsyL>{XRf~y$f~@9LFAz^1|70I%andGNfep|G|s#ipfCb zT{!oYnK7w?Lm3-}=?}O7XAut=uS@th*a_`!wp?g3h&pOxqF{%@IcH5Aa0VP-&zxj7 z4UT4`5-H*j;YfBm@1$RN2;OVC^S^`bRkQ(v)%f2k@}`3+k{C0;e-oTujjn>fVEa((PWLf*{m?|uIU`62#!OzRe=rwLVSgUc zZVO@i2!%J`EaraY`ulJaRyDtM{oioNB243bieR^82?fGei>qimeo4J5pSHsZR^ z0QpM&fPsQ^!|&kY7g?*NAMh)jhbSJWGkgh-VR~Mw#5Dx|%;UYRuP4Jhcbl2f`{4>k zQr&&m(f?CPIEP83M60TT&9E9QD#4<5GA)J!twy#Vw!><@saQDphD8u{f!(M$Rr|MN&#Z^d{nhOZF6r$n)`c$UFg*mUy6Kfs%_i|NoE>Y*|3@4G7`O#XOg1t4RnO}UCu1LoBpnP_`otA8Ei15#5*Bj<`H6+eg%<8tV@u&p4y2JKn^r`RxR$TTL{r`U?*hem| zhu^Uz-;eO}3nnC^^+U{fJZc6i>9D;Pd?B2MeSoO<75N^xnQ(QUV9yP-m#u`;+b#x24nSiT26YKNtreph`p%E{5&1 zU)RD3mZ<$6-qSVT8_)067hjt}l`&fGsGrvtZg`uil80bt3^pF`_s!9aC85lUWO@N! zd(oT^R06lOmf!ylr`%z*UF%Ui$xV^d>Qn~qfbEgdEI5t8JhzRe z$QYk13r97QzVHzyi@VAX;FdU#r9{4l?cMSlj6prOGNa%2a1GsBs-zQauL~YB#zB%1 z&#wfJdf_x~h{I$OQTrIYp{3iKuCKoYhhc)n!|DsyzzI)!{6n{ca0pAaL>(W7jah$< z>jWGVW{zkKbTVn>mZWPBhqp5EeiPu^F}aj3P-gi$IHJVsk7jR-%q^eq@=r?L1XmIx zA|-SS>}GVW1e5x}UT}`JMT3(^Ld4Cc$hN{eKQjIP3>@PhE;G{!r&zio{SitC8!=43 zU>v;j10#x8!S+t*d*LDz;_1|WO+p4XpXB(aapd?rv-~a+4moPV@jAl^c>(@4oOiWY2k;e3m1e-P*!{Qa3@(JtQ7!2I?IdJkgvt$j;I-G9M)@loh`JT!acdT$7!Qav zs=jdKGSh9x!n3UjheCMOL zewPdkhO5PazyqI#?c?@dhFfA0iHWumPGi~aP+bD=!r>Wp*M0iG-UNz}O{VKiA|{jJ zorKLy(LczAquH-#j^=f68BQl@<=??qt!TLGCL)Nep<8=6kbW=rKz}&S7k;Px|LG*y zyHdUbZzh01L}eMg#(Lm?vZ>?!ZvPoiPrw_j<@+zg#a8tDN3hwPzP_sjc5kD~kw3mV zIZ8q3=0i#*fupkA-mmln9)Le(zhHG;38vTJUH33q zt*_U>HJbwc8yW>o#p>;5G87IMjc5EnM*kp}gi{m1Q)V$N*ZaiTwcglZZZ<;3a5-Q2FDn<=v}iz@>Dq1!GAAdvX7Gxc)Qnc zv#o<`P_L5XgRmWRS`OQL$NvHsSkrbvGpMo=rp*k7*D`r6&l?XrrTvU!aTW>5P4?IgI0;rO$h}U z2f?$fFB}U;62zLW?|0xp&W5QoLec;8NJy~M>wefYqHA1Vzy~Y~=q$Y8AO;IlmrC$d z!^5rk{$@|m=#HD+Z*GEHT64n_;0^1r2UMe1>58FA8+|z2U#YdHDCG z+cl@rZa#){S%1+4_{b^K&Gx~|ttFS&~>DcL^#Ka7MCKeE+|?uN(UQi@oL zEbvKQIMoa``@!};ALHRAR*~n!M^IiZbOuktWvJ&N`uYFDE$gQ1>&E}Xo}!g6a@Ea# zGtD*{PQJ%jEGytH)|}3IxaLz6>GVCkNzZ7gIisde^ZUMT?|*d$TElstx&8iuR5;R0l197A?f#5;c`a5WAp<%&A~pfmShfr1Mf23a2nj+@&(U@E27QH z=T-&i3Z*+_{6Ce1BUV_=eE3{D;}Ka3zr)y08I4LX?SWG!n6MkqT#QcSfGD44a10@u zVjtWF+gmax!NtrGIikI$lkkpZFf4+r%Sy@csW*ae_iA)=b_ywA>qz&9PW7e{ZM!x z6PdIzpC2&;wl}F<3MVrqBMyt7;L6t>qm5b=lEbSm|F+u$;R8fOPS+W5V0$z9=iw_v zKrYeOPr>0tKu*>C2YiIsa_I#(J&W>U$)=d)J>bPoXF?+Q1SLq4NQh=AmaiX>4hLF0 znHR$LArr5`X~YW-(D$E#vtHNZ1bWe5ur0^}{*MyrWR_+%gq^$}%oYiKN!W9{S*er( zm-IJ{Xf7OF=eP4^xCFKj9{WQvQ#A8*h9c(kL3>RQD*-63G;4L;lk?I4cC=eDH@IIh z%Vw^^vn(%I`~n)??g=Onhb^j9hK)i{1c^i&~$GAsYjvzJ9;~coz{2(rS;x1=hA4L5q?7XiJfdJ>ZVW{`UMn zoJN-pFMr=yK!@Pe#7m_B`s4SuVMu6@0|n%Y6`R&sgNaKQUvX zMzcy1u7IP8O$n@rYqpvaYW4!M-_m~l;W#EN>g)yO|0ls-CR+>#F~=iccn;3Bf>e4h zLH}rTJcvqyEvRMv4`DuW^o34gOh<9A+|C1yX>@hAE_fj4}HxYe*J-iv& zE>#o>Pr+@cGN?kU2f`VM=5D%(pNEsn*gHn^3OF;znC)lbD%OywD)8z5;1_YRVDm|% zh=uKKI7Y)sG`h$10}sPNSh@1TuFJ3y4;fwsC+~In7prZB!+V=Gq@Tn3M5Q|YANmsA z$Xaff2)k)S@`88Zh`-Hxz$!Q&->+&jstwe@G3X4UUV-GoN23~kyAffPY6N-Hr-o-YWJ9GwGyrKk?$TIe7Ar-(*mjf6tsEX&K)1x~c8XgD0nRI3auCaUYB zOgDTP{?roPJK!{{#D0N$)T`(CTCs8<{7ph39uDbt(XYDk*+@`oeOGt5@9#EDneg z67sO&Xp_EH{~KIr>HAKrkrNSSEmsBL^vcQ5g;ga91BNr!qGTg1ykW-D-h`nocODWgu3|+WcgAy9@m1UCtQQq zOWMd&@Bu4SYbAU<-Z(6rZ6w%hwSI+D1I;$v(d%H#5jha9Aw%El4DN(G-e!8ur*QZX z(+f_*UH&w6eg+QQ?Gm}+)HYpDky^7@!(n>|q-Bb&35O~;giR@B;1acgq0|Wz)jAap zX@1Ll@=mj`ppmCvGhJz(rr(S5Sq@hdNu|`UZ~Xr;2{{Z5q|Qz$eo>oPNUk4Y zq9Xl^$uGk8S@4ZFVISb->ZU&+3C^BjhU?G5LF3)t6Z-mxaByl}75Vi4CnT)>%N!#4 zH(Z2gROG<5o6*;p<(KpW?t0V>t?1keKeGwOq zPtsM9u*-`7Z}1j3Sl#GGc*K_srF0bxfUB_?B?E)u-?(3iX0@~FDA?ZEWGP&N(@E}s z70!K5`2n^5KSP4OR_hP-141U->Msa?n?^&c7r`+X9)bE4Iq*Il@wJKfyZIdqj%IG} z8H!NZ583cuYi{{tIO|3-Amjh9Nw5zJ^=@&y-ms!#B4PU+@B86QM6I-$nQ+8%&UVu! z^c@_Dw_E0nQnsQitU#wH;2hMkU;l3-A(gON(dWnE3W7-Fi_gNdF;Ik?zsn2yn7v+R z!C4E9AX*CB^M-H1*#sU*oB9z>=!E~jw=Uw4ZS>={X6|%XYxOMLFi+k<%n>X=oxGn!QJnT7oGWPH1PocsYC# z^(^+lH*gGQyEL-Puzgfp{p~bbtJgGxE1ZGGB@#wLIS%@GU58QdVziso@nG2AjD8eM zV2b~R*>LzFvo+hZaB-Pw1DoLTZDvo2-LPZtUQVA+&4a3y<4iNSNt2k8G2^tmXL=ns(9hmC=8A6$7^lm%l& zIE}HKe8FRI;df@BL|2jD4xY=udxh^{bSLvKdohIon+c9!K#2uYcNZ6TCOl>-PsZ&39vPWSP(? z&i47AT`LB_s~$3qEETqQHhTn4lhG_Md>OXa2Nc6S7#S(;r!sgLjy&$4GjeLL|A5|C*1v z9|LEI{(T%=F}lv|_v!!DB<#e6BFbVTTtz>X7wm^Oqy0qNwck%SjWwHA$HO&Nm8^$T zA2n5a5)Pha4z)N9ml9D)H>?}~SCdd+Js|A>Ic#NOzg~vptSY+hApEMHA;CflgF^|Y zi`QS645vItc)nJ@55Z+@!y#3$60Qr+L;tGNYu_cIkVzudja0Weq#l6B;w8;r!NFFT zPW?~N4NRX)ql$)$iT#ppJPa;PGJ>rTZpeIqvI)a^{)ccfCD=;z|49<;6^dWOK^ToP zF1Q4@wJf5*L#Wf`X2nDYI1sD2iO%q&@N&kA!fW7iSTcAF&Uz=n>s+UQaGHcNidb&= z3*ImiSxu#@5@}F^!7wMldq&^i7@o;|z7kZbUx&fnBF$#CJ>df#O%zQjTxhxVZvQVC zc*aw=|F3$%WD>H8?GnlNGJJqWDQ5I)IDz>9$>1J1n5|Za=nQ=ZGZyfVhQEh%7zy2~ zulG4j6@B9I^K5ukTm1j>z&A)3)6v8MpMW>x(GdN96+VKt69c5-r}SecAjG1Hfm2>G zgV_h+Ol-t3oq>gL!fi%SZG>~2X-0V*BB6*yry@vPN2o)L#B}|Do8WLBAl}cVn1K~gC%hJgC4&ZY%QE@ zO}QL}OM;A`a(#w{vj#b#eowb-00*+NI$nRkKsej#HIIFU{t}ok~X}K6Uaiz<9$x~MX1K=WDFn#s&)8P`7 zo3x?n4hd_SS{0-5bvT{#9GH}*mBF${`3^L<68im)48e%Lr5a^S?7CW9;CNap`Vlzt7{n^s?f zSE220*I(S?I2pnLAtlxqwl*$zY70mRwlL( z;4GX&goI?MaT$$}84)Rw{&0vjzc3UoV|49PZXV_TC!wXKT;7LAoHko1{sX5HMk9jh zjuX_Wk3ID`Y@KeU7@$6pm_hKK=hX3B_2k zhx7w4z}6m3wH?Z_iYa0#fhXWp%jSC*E@2>YPXGQhIA)6RE8g-I0S%puuIL4))kRdG z{}B}Tl2E{c!$G=EAA-x~1$tNN2abi$(altwP(?ah-H*rQO?~|pcms~cFwO75wgt2w z4xU4as%}Y%wm3x#{U^A0bj2S4A#T;aeDjUM2b|Dk^3|wo$rk7Zx5Fw8PR+v z9D=TpB2R*IkzCTvXTniU1H3Cl|Gz;(={eJ_eu3kOc2DPv)ED1a!580wBPgMG!pc8R5)>P}HO0*^2bfA9z8n~)5z`tG3W_Z7YYqUK# zgwqQ?Ct+6)vkBGra2B4*F#Q0}w=^;u%{I*);ck{q7!T)8Frxbn*xtOh6h1_VhkBlB zQ|DkO*^+$seMb>mr`b$_?dbP~@P}5E%o}h4+jdHo?Sd0`c>KQM(6h*aw~clk0NdSi z*je;{c)Iay7IMS+yWD>5v;(%!fcg~92z2|~fV+yV*$BN-b*#SVKd`;o{3tla@~qB; zLmoHXa9x!{D?VpD8vD7yicYVsg#BYRy4}C<(rM-aQQyN8Ot%{eM=-dYqN`{LT*fq< zDst6re}FG8Goe}m&JW};&pfa*9DX6d`|Y)LKj;B3#YAhaAE55vyTIiguDT^{rV!3( zWGtRNa13_7wDJpZCF+;keHjQkM~PZ47^f`>Q#i$9CO4=?*c)C&jAtwTgR!tWC|uO( zi?Ds><8HY4TO;WXtNW3JqP|bT$A=;N5$!58>l=9S0{;<>PVG-5lw#vakp-Nm+q5yO z-3G#`RyRz8%X*qcsgvOvEFu}K&V>_*@svin6>fzCLMboRMh?JkjM%yoLI0PN5Q2-O zxBlXeKVsqFP!Pc}7ET>x8tFXvyyX}C0G&X@>V2-5T7rNrW;(tP)v$+ESy6Cf*2Ij;R#B9Z}1; zKuRD5-i0$-0+&98?IRc};R+h1R9UM(2*a_I*9dqv29F~~pg7Hr{ zjkV%p(KP>)A||3y8s!_XZTBC7cQBe(azu5zt8j@`CGLyLY{&oqr7p6`Boyv2W^x`} zW6h4Qf=ds${N2iR2}y{DL^2Qp7ZH{toB-RWVm=KQtPb>7*&=x73C3d5D9T8%1I-HoQNa^S#?ULy2Ol>{B@UOB3JM=5k&5oyt%!$9zS>ZOK za}!(>ZUPdI!;KK#(yb$%8pd)~$i@BeAxjRt2-`N`R=A4Yaz(oxgp z2~or`a7*k1(H+@v_(Ep8wd9)x2hr%_^$UN1EvJ@K8;AnB$QDcw=o`ksTUs+x;fbma zzkzcZtx6R%aeG{`gied-&4UYYw@a&D3ENw(m&4YE1GNDjkL9LA|F;c$lA{M;u8 zK87Q&uRHL_H~tR@^tjF->lblDIA72hE<5J-rmG*oqu~vOm}pwkO@)`xs8o@w49=@IaM6cm5^5-%$GAb1(QI}94JMB0BRJ4< z&mV_t<^(!^K~q7(+Ix)lYub<(utGruOFW!N*o?I5vGDRt<6u~%IL^4=55iS!;UIG3 z6705SR>K;3IP$^L|D#DrLy(B%n*&#H2BZj@Z{RXUHUo7DRjd2yR&5khMXu}UX06el zx{hyy?c@0p;7ZJV-~F_?hu~m`v6zU`=_JIAF<-b6-kD?ehAoG)t;y#~xOgqWYg$qc zZ%h#%rI+XoEQeDpIj{x(nE(Y5<)6V$IOsxMsiit&(4fR9`g=eY>n)P>GHj3k1A{$|tH?5&!-6TI=gc@D7LH=9CON(jws%5V zt$2``C3_D(A8Y&vd*Dj6rDQ0uDJ6)q67JTN_}ePH)uN9_b3@H3^MLK}0V1D&^VCVU zHqGd_wMO*zg4vMhtlq}r(_p^%M7$IA;sP{$Yu zqK@x{tKTv{oM++ad)(gB`u-Jg1!lV_uT^j=;|R%MDO}mgL`wY%uQ3LWQycIfGGI-u zwu1wSh*+s#&<|eP+H|{I_z109Ua$aOj$^TjzJIm4-ova9+ysxlPu2x_UB}@F|8zb2 zzxnkvA|@cZ>IV#h6L7<|*PH>bA{I<|8GMBJzTx`%e%M~`{{uYK8fpcx9mY-q9MEK|N&?cHzM;S|o;iJ+m? zDSba2j>Cy1Uswc};stAa_KCs>I)8PujZY6``;Vf(O`5Ef>uNh^u2HrKxbkjHCa15H;MgN~7A&tl; zd0@az^jp42s-!!d%}}h1{=#H9VUOvSb6|VJ!m}`APQPHg4BMi-b!)mgg36h$ANU{% z$rO=fAOpUPji=mls)Tak#UGmUd)|Yy8knisDmcL!D-I2#+qN@qy%}&UR^-sY? zjCSSzYuaI=p*?B)z6{?0C;aL4uGBmp-qR@G`;*=m?D2LEf`@az)AbFw)LiGufP~#t zs0Xl+Xq>*@;1-n4ShJ^7EPNaNMk~^F*So2Ajj{TEdYm$&_yB zJU~Jkqt!6|zykPZj@_7}c^jM=W#;(~!$|>VC)4J)(#oxf$5hx}Q85MHK$VD9{Uw}K z&%eQuQ+wlWNUk!|Z61I_a4bp=&%yQ?5Y28!a#=B>ad3&H|L=!aSZ0%h<|_9_-Q5-*u_!?4aC z*Ow3F`(CJKxuW1BSkZEQHar3|e4v zWauSrVi3IQ88en!2=B6{?Y6@9(Q7B*JQh01EZfg;;9rdYrB(h(LVA~cU!5vR);g2^SKwkv$rQZC7G=1s=P%!f0ulBEg`!Xv2jw)%Nrz*!fG|C4@Rzbh}m zE!Ilk&;~BT2c%l5YNYY-0*33-iU+`5tPDH=+YXFL@RO)-xj!F{ZDN+;yah)bb9jMn z)u%{!g&mF5&`XWY+T4lJ$O^|fXl#{%E^xkO*XO};xa~wVm%z49s9`rGU%44ero#si zO!C1K;27sCqs>;4FfQ2yAbtl&S?aQFEX)kY!@5LLV0$^b;sNkVt3<}YTbQ1o zkM>d}_7)tHYJA5h;80vN(ksq%r~MzXyw!ns(XE&q9;b8M2#&I1Hu}IJ9ZZJvV0)*N z1Mpg0EYeHP!Ktqr&!@Ww>OI3mzoqs-|K|-ie!ma6A$E+pp>Z4~a?<0E5lM#ah{%WG zQjF4-I>SrgIh{=}DuEg9`!jSFPG+DZCf>D9Pac5FWt)CLUpR9#?=hGkPOjfG8fSU+^G&*_wWz3IAy_05#S+Dh5~yRg-*2a{H-{q_n22aih8r>EB64E}Ty9Cmop9P`(uUOdzc;PA zv$5Ga!Yagq=leu)Pk6aCv6uxfCbX)d&cGD-B4+p!-Rf7vHLQjcNx2)&IAluL(}y;O zThCWTO8>VeA*s9BUXNu}u5jvHUJwTtTUPEkxMZIZJd@y*y=E-9U;Q3YE0XjJIOL$2 zm~7vd5GiGX|F(D2jaXtK$|42M_}x690FGrAOeEi1 za3Yh@!*mH%!!>_-y-#T#&>y*h`33jGJF(+s>{bpJhnfI{8aNSqK)hgyNfhz7CjS3k*xtJ31$Y4#mH+&o?IfIk zhAoqH5nq6rvhineH^ev(-*$v_#L%CwrafzZJo zS9@z5&;ho`|6^b$iO^^%fk`9;5&0y_=5;u_i^rR;Gtl^6zQ9^7*Bx#$v~KOUvU>Z% z3+Ofd_5FEpL3cCSeNnL$|G(p2^nY>>k9Q4{L^Yz$DHOTouYUk8K{rU9kB1|VnhfT` zF_`Tl>)(bqOf%;JZG$uKG_&DH;PZG^<8=mqOF^3jB5LV%z6=E2M;)K>_;)TD36CJe zVurpx9!{|Y%k*WrCGK19jPB%Wo6#YdW)9)T>w5-_^o~GMhJn6o_!S*Ya?ja#`X_Z#*7RwK+Xw#TeydXxb5qQWjET9K%eI{H^xhtGtLN=6{&VLelZQ;c zck;ABzMHZqPoF$Bam<+Ql~+CMu4|~$y52kZz9G>uiOVYEJU4EC?ON}KdiBO;P0XB> zo4xGGWA3nJBhPy3Z=c-E`{#8*-KI>;$QzY0dcyXRZM>@*EQ{&l3Elp1l=s8iws%kS fj(xph)}(3Er{<2Ho;7*WG~chce{|J*Z|naDjjU@J delta 72899 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 CG8;$$ diff --git a/build/38535A4.map b/build/38535A4.map index b9bc7da..c0a2d2a 100644 --- a/build/38535A4.map +++ b/build/38535A4.map @@ -75,7 +75,7 @@ Discarded input sections 0x00000000 0x8 build/src/main.o .data.Controller1RightShoulderControlMotorsStopped 0x00000000 0x1 build/src/main.o - .llvm_addrsig 0x00000000 0x17 build/src/main.o + .llvm_addrsig 0x00000000 0x19 build/src/main.o .text 0x00000000 0x0 build/src/robot-config.o .llvm_addrsig 0x00000000 0x4 build/src/robot-config.o .text 0x00000000 0x0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) @@ -367,6 +367,8 @@ Discarded input sections 0x00000000 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) .text.vexDeviceMotorServoTargetSet 0x00000000 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + .text.vexDeviceMotorAbsoluteTargetSet + 0x00000000 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) .text.vexDeviceVisionModeSet 0x00000000 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) .text.vexDeviceVisionModeGet @@ -939,8 +941,6 @@ Discarded input sections 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) .rodata._ZN3vex10range10bitE 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - .rodata._ZN3vex6PORT15E - 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) .data._ZN3vex10rumbleLongE 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) .rodata._ZN3vex17__sdk_cpp_versionE @@ -1017,6 +1017,8 @@ Discarded input sections 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) .rodata._ZN3vex5rightE 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + .rodata._ZN3vex6PORT17E + 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) .rodata._ZN3vex6inchesE 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) .rodata._ZN3vex7secondsE @@ -1084,6 +1086,8 @@ Discarded input sections 0x00000000 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) .text._ZN3vex5motor11setPositionEdNS_13rotationUnitsE 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + .text._ZN3vex5motor8rotateToEdNS_13rotationUnitsEdNS_13velocityUnitsEb + 0x00000000 0xc4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) .text._ZN3vex5motor6spinToEdNS_13rotationUnitsEdNS_13velocityUnitsEb 0x00000000 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) .text._ZN3vex5motor14spinToPositionEdNS_13rotationUnitsEdNS_13velocityUnitsEb @@ -1829,10 +1833,6 @@ Discarded input sections 0x00000000 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) .text._ZNK3vex5timercvmEv 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) - .text._ZNK3vex5timer4timeENS_9timeUnitsE - 0x00000000 0x40 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) - .text._ZNK3vex5timer5valueEv - 0x00000000 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) .text._ZN3vex5timer6systemEv 0x00000000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) .text._ZN3vex5timer20systemHighResolutionEv @@ -1991,6 +1991,8 @@ Discarded input sections 0x00000000 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) .text.vexMotorServoTargetSet 0x00000000 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + .text.vexMotorAbsoluteTargetSet + 0x00000000 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) .text.vexVisionModeSet 0x00000000 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) .text.vexVisionModeGet @@ -2383,7 +2385,7 @@ Linker script and memory map 0x00000400 _FIQ_STACK_SIZE = DEFINED (_FIQ_STACK_SIZE)?_FIQ_STACK_SIZE:0x400 0x00000400 _UNDEF_STACK_SIZE = DEFINED (_UNDEF_STACK_SIZE)?_UNDEF_STACK_SIZE:0x400 -.text 0x03800000 0x4e08 +.text 0x03800000 0x5078 *(.vectors) *(.boot_data) .boot_data 0x03800000 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) @@ -2398,623 +2400,629 @@ Linker script and memory map *(.text) *(.text.*) .text._Z10autonomousv - 0x03800100 0xb34 build/src/main.o + 0x03800100 0x218 build/src/main.o 0x03800100 autonomous() + .text._Z8playbackv + 0x03800318 0x9ac build/src/main.o + 0x03800318 playback() .text._Z14STOPCODE_DEBUGv - 0x03800c34 0x84 build/src/main.o - 0x03800c34 STOPCODE_DEBUG() + 0x03800cc4 0x84 build/src/main.o + 0x03800cc4 STOPCODE_DEBUG() + .text._Z7goToPosN3vex5motorEdd + 0x03800d48 0x74 build/src/main.o + 0x03800d48 goToPos(vex::motor, double, double) + *fill* 0x03800dbc 0x4 .text._Z11usercontrolv - 0x03800cb8 0x7d4 build/src/main.o - 0x03800cb8 usercontrol() - *fill* 0x0380148c 0x4 + 0x03800dc0 0x9ec build/src/main.o + 0x03800dc0 usercontrol() + *fill* 0x038017ac 0x4 .text._Z19controllerBaseInputv - 0x03801490 0x7e0 build/src/main.o - 0x03801490 controllerBaseInput() - .text.main 0x03801c70 0x68 build/src/main.o - 0x03801c70 main + 0x038017b0 0x7e8 build/src/main.o + 0x038017b0 controllerBaseInput() + .text.main 0x03801f98 0x68 build/src/main.o + 0x03801f98 main .text._GLOBAL__sub_I_main.cpp - 0x03801cd8 0x318 build/src/main.o + 0x03802000 0x340 build/src/main.o .text._Z33rc_auto_loop_callback_Controller1v - 0x03801ff0 0x30 build/src/robot-config.o - 0x03801ff0 rc_auto_loop_callback_Controller1() + 0x03802340 0x30 build/src/robot-config.o + 0x03802340 rc_auto_loop_callback_Controller1() .text._Z11vexcodeInitv - 0x03802020 0x28 build/src/robot-config.o - 0x03802020 vexcodeInit() + 0x03802370 0x28 build/src/robot-config.o + 0x03802370 vexcodeInit() .text._GLOBAL__sub_I_robot_config.cpp - 0x03802048 0x34 build/src/robot-config.o - .text.vexMain 0x0380207c 0xb0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) - 0x0380207c vexMain + 0x03802398 0x34 build/src/robot-config.o + .text.vexMain 0x038023cc 0xb0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) + 0x038023cc vexMain .text.__vex_function_prolog - 0x0380212c 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) - 0x0380212c __vex_function_prolog - .text._init 0x03802144 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) - 0x03802144 _init - .text._fini 0x03802148 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) - 0x03802148 _fini + 0x0380247c 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) + 0x0380247c __vex_function_prolog + .text._init 0x03802494 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) + 0x03802494 _init + .text._fini 0x03802498 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) + 0x03802498 _fini .text.vexStdlibVersionLinked - 0x0380214c 0xc C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_util.c.obj) - 0x0380214c vexStdlibVersionLinked + 0x0380249c 0xc C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_util.c.obj) + 0x0380249c vexStdlibVersionLinked .text.vexStdlibVersionVerify - 0x03802158 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_util.c.obj) - 0x03802158 vexStdlibVersionVerify + 0x038024a8 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_util.c.obj) + 0x038024a8 vexStdlibVersionVerify .text.vexPrivateApiEnable - 0x03802188 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802188 vexPrivateApiEnable + 0x038024d8 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038024d8 vexPrivateApiEnable .text.vexStdlibMismatchError - 0x03802198 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802198 vexStdlibMismatchError + 0x038024e8 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038024e8 vexStdlibMismatchError .text.vexTaskAdd - 0x038021d4 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038021d4 vexTaskAdd + 0x03802524 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802524 vexTaskAdd .text.vexTasksRun - 0x038021e4 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038021e4 vexTasksRun + 0x03802534 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802534 vexTasksRun .text.vexTaskYield - 0x038021f4 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038021f4 vexTaskYield + 0x03802544 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802544 vexTaskYield .text.vexTaskCheckTimeslice - 0x03802204 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802204 vexTaskCheckTimeslice + 0x03802554 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802554 vexTaskCheckTimeslice .text.vexTaskSleep - 0x03802214 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802214 vexTaskSleep + 0x03802564 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802564 vexTaskSleep .text.vexTasksDump - 0x03802224 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802224 vexTasksDump + 0x03802574 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802574 vexTasksDump .text.vexTaskGetTaskIndex - 0x03802240 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802240 vexTaskGetTaskIndex + 0x03802590 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802590 vexTaskGetTaskIndex .text.vexTaskStopAll - 0x03802250 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802250 vexTaskStopAll + 0x038025a0 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038025a0 vexTaskStopAll .text.vexTaskRemoveAllUser - 0x03802260 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802260 vexTaskRemoveAllUser + 0x038025b0 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038025b0 vexTaskRemoveAllUser .text.vexTaskCompletionIdSet - 0x03802294 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802294 vexTaskCompletionIdSet + 0x038025e4 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038025e4 vexTaskCompletionIdSet .text.vexTaskStopWithId - 0x038022a4 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038022a4 vexTaskStopWithId + 0x038025f4 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038025f4 vexTaskStopWithId .text.vexCriticalSection - 0x038022b4 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038022b4 vexCriticalSection + 0x03802604 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802604 vexCriticalSection .text.vexEventAdd - 0x038022e0 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038022e0 vexEventAdd + 0x03802630 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802630 vexEventAdd .text.vexEventUserIndexGet - 0x03802314 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802314 vexEventUserIndexGet + 0x03802664 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802664 vexEventUserIndexGet .text.vexEventAddWithArg - 0x03802330 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802330 vexEventAddWithArg + 0x03802680 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802680 vexEventAddWithArg .text.vexEventsCleanup - 0x0380236c 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x0380236c vexEventsCleanup + 0x038026bc 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038026bc vexEventsCleanup .text.vexDebug - 0x03802398 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802398 vexDebug + 0x038026e8 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038026e8 vexDebug .text.vex_sprintf - 0x038023d0 0x40 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038023d0 vex_sprintf + 0x03802720 0x40 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802720 vex_sprintf .text.vex_vsnprintf - 0x03802410 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802410 vex_vsnprintf + 0x03802760 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802760 vex_vsnprintf .text.vexSystemTimeGet - 0x0380244c 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x0380244c vexSystemTimeGet + 0x0380279c 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x0380279c vexSystemTimeGet .text.vexSystemExitRequest - 0x03802468 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802468 vexSystemExitRequest + 0x038027b8 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038027b8 vexSystemExitRequest .text.vexDeviceGetByIndex - 0x03802484 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802484 vexDeviceGetByIndex + 0x038027d4 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038027d4 vexDeviceGetByIndex .text.vexControllerGet - 0x038024a8 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038024a8 vexControllerGet + 0x038027f8 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038027f8 vexControllerGet .text.vexControllerTextSet - 0x038024d4 0x74 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038024d4 vexControllerTextSet + 0x03802824 0x74 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802824 vexControllerTextSet .text.vexDeviceMotorVelocitySet - 0x03802548 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802548 vexDeviceMotorVelocitySet + 0x03802898 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802898 vexDeviceMotorVelocitySet .text.vexDeviceMotorActualVelocityGet - 0x03802574 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802574 vexDeviceMotorActualVelocityGet + 0x038028c4 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038028c4 vexDeviceMotorActualVelocityGet .text.vexDeviceMotorZeroPositionFlagGet - 0x03802598 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802598 vexDeviceMotorZeroPositionFlagGet + 0x038028e8 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038028e8 vexDeviceMotorZeroPositionFlagGet .text.vexDeviceMotorReverseFlagSet - 0x038025bc 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038025bc vexDeviceMotorReverseFlagSet + 0x0380290c 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x0380290c vexDeviceMotorReverseFlagSet .text.vexDeviceMotorEncoderUnitsSet - 0x038025e8 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038025e8 vexDeviceMotorEncoderUnitsSet + 0x03802938 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802938 vexDeviceMotorEncoderUnitsSet .text.vexDeviceMotorBrakeModeSet - 0x03802614 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802614 vexDeviceMotorBrakeModeSet + 0x03802964 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802964 vexDeviceMotorBrakeModeSet .text.vexDeviceMotorPositionSet - 0x03802640 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802640 vexDeviceMotorPositionSet + 0x03802990 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802990 vexDeviceMotorPositionSet .text.vexDeviceMotorPositionGet - 0x03802674 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802674 vexDeviceMotorPositionGet - .text.vexDeviceMotorAbsoluteTargetSet - 0x03802698 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802698 vexDeviceMotorAbsoluteTargetSet + 0x038029c4 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038029c4 vexDeviceMotorPositionGet .text.vexDeviceMotorRelativeTargetSet - 0x038026d4 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038026d4 vexDeviceMotorRelativeTargetSet + 0x038029e8 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x038029e8 vexDeviceMotorRelativeTargetSet .text.vexDeviceMotorGearingSet - 0x03802710 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802710 vexDeviceMotorGearingSet + 0x03802a24 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802a24 vexDeviceMotorGearingSet .text.vexDeviceMotorGearingGet - 0x0380273c 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x0380273c vexDeviceMotorGearingGet + 0x03802a50 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802a50 vexDeviceMotorGearingGet .text.vexDisplayForegroundColor - 0x03802760 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802760 vexDisplayForegroundColor + 0x03802a74 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802a74 vexDisplayForegroundColor .text.vexDisplayBackgroundColor - 0x03802784 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802784 vexDisplayBackgroundColor + 0x03802a98 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802a98 vexDisplayBackgroundColor .text.vexDisplayTextReference - 0x038027a8 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038027a8 vexDisplayTextReference + 0x03802abc 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802abc vexDisplayTextReference .text.vexDisplayTextSize - 0x038027cc 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038027cc vexDisplayTextSize + 0x03802ae0 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802ae0 vexDisplayTextSize .text.vexDisplayFontNamedSet - 0x038027f8 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038027f8 vexDisplayFontNamedSet + 0x03802b0c 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802b0c vexDisplayFontNamedSet .text.vexFileDriveStatus - 0x0380281c 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x0380281c vexFileDriveStatus + 0x03802b30 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802b30 vexFileDriveStatus .text.vexSystemStdlibImpureDataAddr - 0x03802840 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802840 vexSystemStdlibImpureDataAddr + 0x03802b54 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802b54 vexSystemStdlibImpureDataAddr .text.vexSystemStdlibImpureDataSize - 0x03802868 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802868 vexSystemStdlibImpureDataSize + 0x03802b7c 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802b7c vexSystemStdlibImpureDataSize .text.vexSystemSaveUserData - 0x03802890 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802890 vexSystemSaveUserData + 0x03802ba4 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802ba4 vexSystemSaveUserData .text.vexDisplayThemeIdGet - 0x038028cc 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x038028cc vexDisplayThemeIdGet + 0x03802be0 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802be0 vexDisplayThemeIdGet .text.vexDeviceEventMaskSet - 0x03802904 0x48 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x03802904 vexDeviceEventMaskSet + 0x03802c18 0x48 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802c18 vexDeviceEventMaskSet .text.vexDeviceEventMaskGet - 0x0380294c 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) - 0x0380294c vexDeviceEventMaskGet + 0x03802c60 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03802c60 vexDeviceEventMaskGet .text.vexSystemVersion - 0x03802988 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiversions.c.obj) - 0x03802988 vexSystemVersion + 0x03802c9c 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiversions.c.obj) + 0x03802c9c vexSystemVersion .text.vexStdlibVersion - 0x03802998 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiversions.c.obj) - 0x03802998 vexStdlibVersion + 0x03802cac 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiversions.c.obj) + 0x03802cac vexStdlibVersion + *fill* 0x03802cbc 0x4 .text._ZN3vex4waitEdNS_9timeUnitsE - 0x038029a8 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x038029a8 vex::wait(double, vex::timeUnits) + 0x03802cc0 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03802cc0 vex::wait(double, vex::timeUnits) .text._ZN3vex5motorD2Ev - 0x038029d8 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x038029d8 vex::motor::~motor() - 0x038029d8 vex::motor::~motor() + 0x03802cf0 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802cf0 vex::motor::~motor() + 0x03802cf0 vex::motor::~motor() .text._ZN3vex5motorD0Ev - 0x038029f8 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x038029f8 vex::motor::~motor() + 0x03802d10 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802d10 vex::motor::~motor() .text._ZN3vex5motor9installedEv - 0x03802a14 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802a14 vex::motor::installed() + 0x03802d2c 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802d2c vex::motor::installed() .text._ZN3vex5motor15defaultStoppingENS_9brakeTypeE - 0x03802a2c 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802a2c vex::motor::defaultStopping(vex::brakeType) + 0x03802d44 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802d44 vex::motor::defaultStopping(vex::brakeType) .text._ZN3vex5motor11setStoppingENS_9brakeTypeE - 0x03802a5c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802a5c vex::motor::setStopping(vex::brakeType) + 0x03802d74 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802d74 vex::motor::setStopping(vex::brakeType) .text._ZN3vex5motorC2El - 0x03802a60 0x78 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802a60 vex::motor::motor(long) - 0x03802a60 vex::motor::motor(long) + 0x03802d78 0x78 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802d78 vex::motor::motor(long) + 0x03802d78 vex::motor::motor(long) .text._ZN3vex5motorC2ElNS_11gearSettingEb - 0x03802ad8 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802ad8 vex::motor::motor(long, vex::gearSetting, bool) - 0x03802ad8 vex::motor::motor(long, vex::gearSetting, bool) + 0x03802df0 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802df0 vex::motor::motor(long, vex::gearSetting, bool) + 0x03802df0 vex::motor::motor(long, vex::gearSetting, bool) .text._ZN3vex5motor10isSpinningEv - 0x03802b0c 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802b0c vex::motor::isSpinning() + 0x03802e24 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802e24 vex::motor::isSpinning() .text._ZN3vex5motor4stopENS_9brakeTypeE - 0x03802b44 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802b44 vex::motor::stop(vex::brakeType) + 0x03802e5c 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802e5c vex::motor::stop(vex::brakeType) .text._ZN3vex5motor4stopEv - 0x03802b74 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802b74 vex::motor::stop() + 0x03802e8c 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802e8c vex::motor::stop() .text._ZN3vex5motor16velocityToScaledEdNS_13velocityUnitsE - 0x03802b7c 0x5c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802b7c vex::motor::velocityToScaled(double, vex::velocityUnits) + 0x03802e94 0x5c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802e94 vex::motor::velocityToScaled(double, vex::velocityUnits) .text._ZN3vex5motor8velocityENS_13velocityUnitsE - 0x03802bd8 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802bd8 vex::motor::velocity(vex::velocityUnits) + 0x03802ef0 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802ef0 vex::motor::velocity(vex::velocityUnits) .text._ZN3vex5motor5valueEv - 0x03802c08 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802c08 vex::motor::value() + 0x03802f20 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802f20 vex::motor::value() .text._ZN3vex5motor16scaledToVelocityEdNS_13velocityUnitsE - 0x03802c24 0xa4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802c24 vex::motor::scaledToVelocity(double, vex::velocityUnits) + 0x03802f3c 0xa4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802f3c vex::motor::scaledToVelocity(double, vex::velocityUnits) .text._ZN3vex5motor4spinENS_13directionTypeEdNS_13velocityUnitsE - 0x03802cc8 0x5c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802cc8 vex::motor::spin(vex::directionType, double, vex::velocityUnits) + 0x03802fe0 0x5c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03802fe0 vex::motor::spin(vex::directionType, double, vex::velocityUnits) .text._ZN3vex5motor4spinENS_13directionTypeE - 0x03802d24 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802d24 vex::motor::spin(vex::directionType) + 0x0380303c 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x0380303c vex::motor::spin(vex::directionType) .text._ZN3vex5motor11setVelocityEdNS_13velocityUnitsE - 0x03802d4c 0x54 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802d4c vex::motor::setVelocity(double, vex::velocityUnits) + 0x03803064 0x54 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03803064 vex::motor::setVelocity(double, vex::velocityUnits) .text._ZN3vex5motor16setRotationUnitsENS_13rotationUnitsE - 0x03802da0 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802da0 vex::motor::setRotationUnits(vex::rotationUnits) + 0x038030b8 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x038030b8 vex::motor::setRotationUnits(vex::rotationUnits) .text._ZN3vex5motor11setRotationEdNS_13rotationUnitsE - 0x03802dbc 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802dbc vex::motor::setRotation(double, vex::rotationUnits) + 0x038030d4 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x038030d4 vex::motor::setRotation(double, vex::rotationUnits) .text._ZN3vex5motor13resetRotationEv - 0x03802e00 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802e00 vex::motor::resetRotation() - .text._ZN3vex5motor8rotateToEdNS_13rotationUnitsEdNS_13velocityUnitsEb - 0x03802e20 0xc4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802e20 vex::motor::rotateTo(double, vex::rotationUnits, double, vex::velocityUnits, bool) + 0x03803118 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03803118 vex::motor::resetRotation() .text._ZN3vex5motor9rotateForEdNS_13rotationUnitsEdNS_13velocityUnitsEb - 0x03802ee4 0xe0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802ee4 vex::motor::rotateFor(double, vex::rotationUnits, double, vex::velocityUnits, bool) + 0x03803138 0xe0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03803138 vex::motor::rotateFor(double, vex::rotationUnits, double, vex::velocityUnits, bool) .text._ZN3vex5motor9rotateForENS_13directionTypeEdNS_13rotationUnitsEdNS_13velocityUnitsEb - 0x03802fc4 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802fc4 vex::motor::rotateFor(vex::directionType, double, vex::rotationUnits, double, vex::velocityUnits, bool) + 0x03803218 0x34 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03803218 vex::motor::rotateFor(vex::directionType, double, vex::rotationUnits, double, vex::velocityUnits, bool) .text._ZN3vex5motor8rotationENS_13rotationUnitsE - 0x03802ff8 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03802ff8 vex::motor::rotation(vex::rotationUnits) + 0x0380324c 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x0380324c vex::motor::rotation(vex::rotationUnits) .text._ZN3vex10controllerD2Ev - 0x0380303c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x0380303c vex::controller::~controller() - 0x0380303c vex::controller::~controller() + 0x03803290 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803290 vex::controller::~controller() + 0x03803290 vex::controller::~controller() .text._ZN3vex10controller5valueE19_V5_ControllerIndex - 0x03803040 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x03803040 vex::controller::value(_V5_ControllerIndex) + 0x03803294 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803294 vex::controller::value(_V5_ControllerIndex) .text._ZN3vex10controller6button8pressingEv - 0x03803048 0xc8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x03803048 vex::controller::button::pressing() + 0x0380329c 0xc8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x0380329c vex::controller::button::pressing() .text._ZN3vex10controller6button21_buttonToPressedEventEv - 0x03803110 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x03803110 vex::controller::button::_buttonToPressedEvent() + 0x03803364 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803364 vex::controller::button::_buttonToPressedEvent() .text._ZN3vex10controller6button22_buttonToReleasedEventEv - 0x03803130 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x03803130 vex::controller::button::_buttonToReleasedEvent() + 0x03803384 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803384 vex::controller::button::_buttonToReleasedEvent() .text._ZN3vex10controller6buttonC2ENS0_11tButtonTypeEPS0_ - 0x03803150 0x48 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x03803150 vex::controller::button::button(vex::controller::tButtonType, vex::controller*) - 0x03803150 vex::controller::button::button(vex::controller::tButtonType, vex::controller*) + 0x038033a4 0x48 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x038033a4 vex::controller::button::button(vex::controller::tButtonType, vex::controller*) + 0x038033a4 vex::controller::button::button(vex::controller::tButtonType, vex::controller*) .text._ZN3vex10controller4axis5valueEv - 0x03803198 0x58 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x03803198 vex::controller::axis::value() + 0x038033ec 0x58 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x038033ec vex::controller::axis::value() .text._ZN3vex10controller4axis8positionENS_12percentUnitsE - 0x038031f0 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x038031f0 vex::controller::axis::position(vex::percentUnits) + 0x03803444 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803444 vex::controller::axis::position(vex::percentUnits) .text._ZN3vex10controller4axis23_joystickToChangedEventEv - 0x0380320c 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x0380320c vex::controller::axis::_joystickToChangedEvent() + 0x03803460 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803460 vex::controller::axis::_joystickToChangedEvent() .text._ZN3vex10controller4axisC2ENS0_9tAxisTypeEPS0_ - 0x0380322c 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x0380322c vex::controller::axis::axis(vex::controller::tAxisType, vex::controller*) - 0x0380322c vex::controller::axis::axis(vex::controller::tAxisType, vex::controller*) + 0x03803480 0x2c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803480 vex::controller::axis::axis(vex::controller::tAxisType, vex::controller*) + 0x03803480 vex::controller::axis::axis(vex::controller::tAxisType, vex::controller*) .text._ZN3vex10controllerC2ENS_14controllerTypeE - 0x03803258 0x204 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x03803258 vex::controller::controller(vex::controllerType) - 0x03803258 vex::controller::controller(vex::controllerType) + 0x038034ac 0x204 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x038034ac vex::controller::controller(vex::controllerType) + 0x038034ac vex::controller::controller(vex::controllerType) .text._ZN3vex10controller3lcd15getControllerIdEv - 0x0380345c 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x0380345c vex::controller::lcd::getControllerId() + 0x038036b0 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x038036b0 vex::controller::lcd::getControllerId() .text._ZN3vex10controller3lcd9setCursorEll - 0x0380346c 0x40 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x0380346c vex::controller::lcd::setCursor(long, long) + 0x038036c0 0x40 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x038036c0 vex::controller::lcd::setCursor(long, long) .text._ZN3vex10controller3lcd5printEPKcz - 0x038034ac 0x74 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x038034ac vex::controller::lcd::print(char const*, ...) + 0x03803700 0x74 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803700 vex::controller::lcd::print(char const*, ...) .text._ZN3vex10controller3lcd9clearLineEi - 0x03803520 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x03803520 vex::controller::lcd::clearLine(int) + 0x03803774 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803774 vex::controller::lcd::clearLine(int) .text._ZN3vex10controller3lcd11clearScreenEv - 0x03803564 0x5c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x03803564 vex::controller::lcd::clearScreen() + 0x038037b8 0x5c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x038037b8 vex::controller::lcd::clearScreen() .text._ZN3vex10controller3lcd9clearLineEv - 0x038035c0 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) - 0x038035c0 vex::controller::lcd::clearLine() + 0x03803814 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03803814 vex::controller::lcd::clearLine() .text._ZN3vex4taskC2EPFivE - 0x038035c8 0x5c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) - 0x038035c8 vex::task::task(int (*)()) - 0x038035c8 vex::task::task(int (*)()) + 0x0380381c 0x5c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) + 0x0380381c vex::task::task(int (*)()) + 0x0380381c vex::task::task(int (*)()) .text._ZN3vex4taskD2Ev - 0x03803624 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) - 0x03803624 vex::task::~task() - 0x03803624 vex::task::~task() + 0x03803878 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) + 0x03803878 vex::task::~task() + 0x03803878 vex::task::~task() .text._ZN3vex4task4stopERKS0_ - 0x03803628 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) - 0x03803628 vex::task::stop(vex::task const&) + 0x0380387c 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) + 0x0380387c vex::task::stop(vex::task const&) .text._ZN3vex4task6_indexEPFivE - 0x03803640 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) - 0x03803640 vex::task::_index(int (*)()) + 0x03803894 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) + 0x03803894 vex::task::_index(int (*)()) .text._ZN3vex4task8_stopAllEv - 0x03803654 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) - 0x03803654 vex::task::_stopAll() + 0x038038a8 0x3c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) + 0x038038a8 vex::task::_stopAll() .text._ZN3vex11this_thread9sleep_forEm - 0x03803690 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_thread.cpp.obj) - 0x03803690 vex::this_thread::sleep_for(unsigned long) + 0x038038e4 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_thread.cpp.obj) + 0x038038e4 vex::this_thread::sleep_for(unsigned long) .text._ZN3vex5event4initEmmPFvvE - 0x03803694 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_event.cpp.obj) - 0x03803694 vex::event::init(unsigned long, unsigned long, void (*)()) + 0x038038e8 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_event.cpp.obj) + 0x038038e8 vex::event::init(unsigned long, unsigned long, void (*)()) .text._ZN3vex5event4initEmmPFvPvES1_ - 0x03803698 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_event.cpp.obj) - 0x03803698 vex::event::init(unsigned long, unsigned long, void (*)(void*), void*) + 0x038038ec 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_event.cpp.obj) + 0x038038ec vex::event::init(unsigned long, unsigned long, void (*)(void*), void*) .text._ZN3vex5event9userindexEv - 0x0380369c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_event.cpp.obj) - 0x0380369c vex::event::userindex() + 0x038038f0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_event.cpp.obj) + 0x038038f0 vex::event::userindex() .text._ZZN3vex6meventC4EmmENUlvE_4_FUNEv - 0x038036a0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_mevent.cpp.obj) + 0x038038f4 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_mevent.cpp.obj) .text._ZN3vex6meventC2Emm - 0x038036a4 0x70 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_mevent.cpp.obj) - 0x038036a4 vex::mevent::mevent(unsigned long, unsigned long) - 0x038036a4 vex::mevent::mevent(unsigned long, unsigned long) + 0x038038f8 0x70 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_mevent.cpp.obj) + 0x038038f8 vex::mevent::mevent(unsigned long, unsigned long) + 0x038038f8 vex::mevent::mevent(unsigned long, unsigned long) .text._ZN3vex5brain9_getIndexEv - 0x03803714 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) - 0x03803714 vex::brain::_getIndex() + 0x03803968 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) + 0x03803968 vex::brain::_getIndex() .text._ZN3vex5brain3lcd9setCursorEll - 0x03803724 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) - 0x03803724 vex::brain::lcd::setCursor(long, long) + 0x03803978 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) + 0x03803978 vex::brain::lcd::setCursor(long, long) .text._ZN3vex5brain3lcd7setFontENS_8fontTypeE - 0x03803768 0x23c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) - 0x03803768 vex::brain::lcd::setFont(vex::fontType) + 0x038039bc 0x23c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) + 0x038039bc vex::brain::lcd::setFont(vex::fontType) .text._ZN3vex5brain3lcdC2Ev - 0x038039a4 0x94 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) - 0x038039a4 vex::brain::lcd::lcd() - 0x038039a4 vex::brain::lcd::lcd() + 0x03803bf8 0x94 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) + 0x03803bf8 vex::brain::lcd::lcd() + 0x03803bf8 vex::brain::lcd::lcd() .text._ZN3vex5brainC2Ev - 0x03803a38 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) - 0x03803a38 vex::brain::brain() - 0x03803a38 vex::brain::brain() + 0x03803c8c 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) + 0x03803c8c vex::brain::brain() + 0x03803c8c vex::brain::brain() .text._ZN3vex5brain6sdcard10isInsertedEv - 0x03803a70 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) - 0x03803a70 vex::brain::sdcard::isInserted() + 0x03803cc4 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) + 0x03803cc4 vex::brain::sdcard::isInserted() .text._ZN3vex5brainD2Ev - 0x03803a78 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) - 0x03803a78 vex::brain::~brain() - 0x03803a78 vex::brain::~brain() + 0x03803ccc 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) + 0x03803ccc vex::brain::~brain() + 0x03803ccc vex::brain::~brain() .text._ZN3vex11competition11_autonomousEv - 0x03803a98 0x90 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03803a98 vex::competition::_autonomous() + 0x03803cec 0x90 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03803cec vex::competition::_autonomous() .text._ZN3vex11competition14_drivercontrolEv - 0x03803b28 0x90 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03803b28 vex::competition::_drivercontrol() + 0x03803d7c 0x90 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03803d7c vex::competition::_drivercontrol() .text._ZN3vex11competition8_disableEPv - 0x03803bb8 0xc8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03803bb8 vex::competition::_disable(void*) + 0x03803e0c 0xc8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03803e0c vex::competition::_disable(void*) .text._ZN3vex11competitionC2Ev - 0x03803c80 0x13c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03803c80 vex::competition::competition() - 0x03803c80 vex::competition::competition() + 0x03803ed4 0x13c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03803ed4 vex::competition::competition() + 0x03803ed4 vex::competition::competition() .text._ZN3vex11competitionD2Ev - 0x03803dbc 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03803dbc vex::competition::~competition() - 0x03803dbc vex::competition::~competition() + 0x03804010 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03804010 vex::competition::~competition() + 0x03804010 vex::competition::~competition() .text._ZN3vex11competition10autonomousEPFvvE - 0x03803dc0 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03803dc0 vex::competition::autonomous(void (*)()) + 0x03804014 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03804014 vex::competition::autonomous(void (*)()) .text._ZN3vex11competition13drivercontrolEPFvvE - 0x03803e04 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03803e04 vex::competition::drivercontrol(void (*)()) + 0x03804058 0x44 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03804058 vex::competition::drivercontrol(void (*)()) .text._ZN3vex7triportD2Ev - 0x03803e48 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) - 0x03803e48 vex::triport::~triport() - 0x03803e48 vex::triport::~triport() + 0x0380409c 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + 0x0380409c vex::triport::~triport() + 0x0380409c vex::triport::~triport() .text._ZN3vex7triportD0Ev - 0x03803e80 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) - 0x03803e80 vex::triport::~triport() + 0x038040d4 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + 0x038040d4 vex::triport::~triport() .text._ZN3vex7triport9installedEv - 0x03803e9c 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) - 0x03803e9c vex::triport::installed() + 0x038040f0 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + 0x038040f0 vex::triport::installed() .text._ZN3vex7triport4portC2ElPS0_ - 0x03803eb4 0x74 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) - 0x03803eb4 vex::triport::port::port(long, vex::triport*) - 0x03803eb4 vex::triport::port::port(long, vex::triport*) + 0x03804108 0x74 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + 0x03804108 vex::triport::port::port(long, vex::triport*) + 0x03804108 vex::triport::port::port(long, vex::triport*) .text._ZN3vex7triportC2El - 0x03803f28 0xf0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) - 0x03803f28 vex::triport::triport(long) - 0x03803f28 vex::triport::triport(long) + 0x0380417c 0xf0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + 0x0380417c vex::triport::triport(long) + 0x0380417c vex::triport::triport(long) .text.startup._GLOBAL__sub_I__ZN3vex7triportC2El - 0x03804018 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + 0x0380426c 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) .text._ZN3vex5colorD2Ev - 0x03804048 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03804048 vex::color::~color() - 0x03804048 vex::color::~color() + 0x0380429c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x0380429c vex::color::~color() + 0x0380429c vex::color::~color() .text.startup._GLOBAL__sub_I__ZN3vex5color5blackE - 0x0380404c 0x164 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x038042a0 0x164 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) .text._ZN3vex5timerD2Ev - 0x038041b0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) - 0x038041b0 vex::timer::~timer() - 0x038041b0 vex::timer::~timer() + 0x03804404 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) + 0x03804404 vex::timer::~timer() + 0x03804404 vex::timer::~timer() .text._ZN3vex5timer5clearEv - 0x038041b4 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) - 0x038041b4 vex::timer::clear() + 0x03804408 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) + 0x03804408 vex::timer::clear() .text._ZN3vex5timerC2Ev - 0x038041d0 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) - 0x038041d0 vex::timer::timer() - 0x038041d0 vex::timer::timer() + 0x03804424 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) + 0x03804424 vex::timer::timer() + 0x03804424 vex::timer::timer() + .text._ZNK3vex5timer4timeENS_9timeUnitsE + 0x03804438 0x40 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) + 0x03804438 vex::timer::time(vex::timeUnits) const + .text._ZNK3vex5timer5valueEv + 0x03804478 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) + 0x03804478 vex::timer::value() const .text._ZN3vex10drivetrainD2Ev - 0x038041e4 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x038041e4 vex::drivetrain::~drivetrain() - 0x038041e4 vex::drivetrain::~drivetrain() + 0x03804480 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03804480 vex::drivetrain::~drivetrain() + 0x03804480 vex::drivetrain::~drivetrain() .text._ZN3vex10drivetrainD0Ev - 0x0380420c 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x0380420c vex::drivetrain::~drivetrain() + 0x038044a8 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x038044a8 vex::drivetrain::~drivetrain() .text._ZN3vex10drivetrain8isMovingEv - 0x03804228 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x03804228 vex::drivetrain::isMoving() + 0x038044c4 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x038044c4 vex::drivetrain::isMoving() .text._ZN3vex10drivetrain16setDriveVelocityEdNS_13velocityUnitsE - 0x0380424c 0x54 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x0380424c vex::drivetrain::setDriveVelocity(double, vex::velocityUnits) + 0x038044e8 0x54 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x038044e8 vex::drivetrain::setDriveVelocity(double, vex::velocityUnits) + *fill* 0x0380453c 0x4 .text._ZN3vex10drivetrain12setGearRatioEd - 0x038042a0 0x54 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x038042a0 vex::drivetrain::setGearRatio(double) + 0x03804540 0x54 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03804540 vex::drivetrain::setGearRatio(double) .text._ZN3vex10drivetrain4turnENS_8turnTypeE - 0x038042f4 0x50 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x038042f4 vex::drivetrain::turn(vex::turnType) + 0x03804594 0x50 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03804594 vex::drivetrain::turn(vex::turnType) .text._ZN3vex10drivetrain15setTurnVelocityEdNS_13velocityUnitsE - 0x03804344 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x03804344 vex::drivetrain::setTurnVelocity(double, vex::velocityUnits) + 0x038045e4 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x038045e4 vex::drivetrain::setTurnVelocity(double, vex::velocityUnits) .text._ZN3vex10drivetrain6isDoneEv - 0x0380436c 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x0380436c vex::drivetrain::isDone() + 0x0380460c 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x0380460c vex::drivetrain::isDone() .text._ZN3vex10drivetrain4stopEv - 0x03804380 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x03804380 vex::drivetrain::stop() + 0x03804620 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03804620 vex::drivetrain::stop() .text._ZN3vex10drivetrain21_waitForCompletionAllEv - 0x038043a4 0x60 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x038043a4 vex::drivetrain::_waitForCompletionAll() - *fill* 0x03804404 0x4 + 0x03804644 0x60 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03804644 vex::drivetrain::_waitForCompletionAll() + *fill* 0x038046a4 0x4 .text._ZN3vex10drivetrain12distanceToMmEdNS_13distanceUnitsE - 0x03804408 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x03804408 vex::drivetrain::distanceToMm(double, vex::distanceUnits) + 0x038046a8 0x38 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x038046a8 vex::drivetrain::distanceToMm(double, vex::distanceUnits) .text._ZN3vex10drivetrainC2ERNS_5motorES2_dddNS_13distanceUnitsEd - 0x03804440 0x118 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x03804440 vex::drivetrain::drivetrain(vex::motor&, vex::motor&, double, double, double, vex::distanceUnits, double) - 0x03804440 vex::drivetrain::drivetrain(vex::motor&, vex::motor&, double, double, double, vex::distanceUnits, double) + 0x038046e0 0x118 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x038046e0 vex::drivetrain::drivetrain(vex::motor&, vex::motor&, double, double, double, vex::distanceUnits, double) + 0x038046e0 vex::drivetrain::drivetrain(vex::motor&, vex::motor&, double, double, double, vex::distanceUnits, double) .text._ZN3vex10drivetrain12_angleToRevsEdNS_13rotationUnitsE - 0x03804558 0xc0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x03804558 vex::drivetrain::_angleToRevs(double, vex::rotationUnits) + 0x038047f8 0xc0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x038047f8 vex::drivetrain::_angleToRevs(double, vex::rotationUnits) .text._ZN3vex10drivetrain7turnForENS_8turnTypeEdNS_13rotationUnitsEb - 0x03804618 0xbc C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x03804618 vex::drivetrain::turnFor(vex::turnType, double, vex::rotationUnits, bool) + 0x038048b8 0xbc C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x038048b8 vex::drivetrain::turnFor(vex::turnType, double, vex::rotationUnits, bool) .text._ZN3vex10drivetrain7turnForEdNS_13rotationUnitsEb - 0x038046d4 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x038046d4 vex::drivetrain::turnFor(double, vex::rotationUnits, bool) + 0x03804974 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03804974 vex::drivetrain::turnFor(double, vex::rotationUnits, bool) .text._ZN3vex10drivetrain7turnForENS_8turnTypeEdNS_13rotationUnitsEdNS_13velocityUnitsEb - 0x038046e4 0xd0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x038046e4 vex::drivetrain::turnFor(vex::turnType, double, vex::rotationUnits, double, vex::velocityUnits, bool) + 0x03804984 0xd0 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03804984 vex::drivetrain::turnFor(vex::turnType, double, vex::rotationUnits, double, vex::velocityUnits, bool) .text._ZN3vex10drivetrain7turnForEdNS_13rotationUnitsEdNS_13velocityUnitsEb - 0x038047b4 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x038047b4 vex::drivetrain::turnFor(double, vex::rotationUnits, double, vex::velocityUnits, bool) + 0x03804a54 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03804a54 vex::drivetrain::turnFor(double, vex::rotationUnits, double, vex::velocityUnits, bool) .text.vexMotorVelocitySet - 0x038047cc 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x038047cc vexMotorVelocitySet + 0x03804a6c 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804a6c vexMotorVelocitySet .text.vexMotorActualVelocityGet - 0x038047ec 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x038047ec vexMotorActualVelocityGet + 0x03804a8c 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804a8c vexMotorActualVelocityGet .text.vexMotorZeroPositionFlagGet - 0x03804810 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x03804810 vexMotorZeroPositionFlagGet + 0x03804ab0 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804ab0 vexMotorZeroPositionFlagGet .text.vexMotorReverseFlagSet - 0x03804828 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x03804828 vexMotorReverseFlagSet + 0x03804ac8 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804ac8 vexMotorReverseFlagSet .text.vexMotorEncoderUnitsSet - 0x03804848 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x03804848 vexMotorEncoderUnitsSet + 0x03804ae8 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804ae8 vexMotorEncoderUnitsSet .text.vexMotorBrakeModeSet - 0x03804868 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x03804868 vexMotorBrakeModeSet + 0x03804b08 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804b08 vexMotorBrakeModeSet .text.vexMotorPositionSet - 0x03804888 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x03804888 vexMotorPositionSet + 0x03804b28 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804b28 vexMotorPositionSet .text.vexMotorPositionGet - 0x038048b0 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x038048b0 vexMotorPositionGet - .text.vexMotorAbsoluteTargetSet - 0x038048d4 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x038048d4 vexMotorAbsoluteTargetSet + 0x03804b50 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804b50 vexMotorPositionGet .text.vexMotorRelativeTargetSet - 0x03804904 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x03804904 vexMotorRelativeTargetSet + 0x03804b74 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804b74 vexMotorRelativeTargetSet .text.vexMotorGearingSet - 0x03804934 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x03804934 vexMotorGearingSet + 0x03804ba4 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804ba4 vexMotorGearingSet .text.vexMotorGearingGet - 0x03804954 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x03804954 vexMotorGearingGet + 0x03804bc4 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804bc4 vexMotorGearingGet .text.vexEventMaskSet - 0x0380496c 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x0380496c vexEventMaskSet + 0x03804bdc 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804bdc vexEventMaskSet .text.vexEventMaskGet - 0x03804994 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) - 0x03804994 vexEventMaskGet + 0x03804c04 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03804c04 vexEventMaskGet .text._ZN3vex6deviceD2Ev - 0x038049ac 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) - 0x038049ac vex::device::~device() - 0x038049ac vex::device::~device() + 0x03804c1c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) + 0x03804c1c vex::device::~device() + 0x03804c1c vex::device::~device() .text._ZN3vex6device5valueEv - 0x038049b0 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) - 0x038049b0 vex::device::value() + 0x03804c20 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) + 0x03804c20 vex::device::value() .text._ZN3vex6deviceD0Ev - 0x038049b8 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) - 0x038049b8 vex::device::~device() + 0x03804c28 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) + 0x03804c28 vex::device::~device() .text._ZN3vex6device4initEl - 0x038049cc 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) - 0x038049cc vex::device::init(long) + 0x03804c3c 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) + 0x03804c3c vex::device::init(long) .text._ZN3vex6deviceC2El - 0x038049fc 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) - 0x038049fc vex::device::device(long) - 0x038049fc vex::device::device(long) + 0x03804c6c 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) + 0x03804c6c vex::device::device(long) + 0x03804c6c vex::device::device(long) .text._ZN3vex6device4typeEv - 0x03804a1c 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) - 0x03804a1c vex::device::type() + 0x03804c8c 0x10 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) + 0x03804c8c vex::device::type() .text._ZN3vex6device9installedEv - 0x03804a2c 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) - 0x03804a2c vex::device::installed() + 0x03804c9c 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) + 0x03804c9c vex::device::installed() .text._ZN3vex11motor_group18motor_group_motorsC2Ev - 0x03804a40 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804a40 vex::motor_group::motor_group_motors::motor_group_motors() - 0x03804a40 vex::motor_group::motor_group_motors::motor_group_motors() + 0x03804cb0 0x28 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804cb0 vex::motor_group::motor_group_motors::motor_group_motors() + 0x03804cb0 vex::motor_group::motor_group_motors::motor_group_motors() .text._ZN3vex11motor_groupC2Ev - 0x03804a68 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804a68 vex::motor_group::motor_group() - 0x03804a68 vex::motor_group::motor_group() + 0x03804cd8 0x1c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804cd8 vex::motor_group::motor_group() + 0x03804cd8 vex::motor_group::motor_group() .text._ZN3vex11motor_groupD2Ev - 0x03804a84 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804a84 vex::motor_group::~motor_group() - 0x03804a84 vex::motor_group::~motor_group() + 0x03804cf4 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804cf4 vex::motor_group::~motor_group() + 0x03804cf4 vex::motor_group::~motor_group() .text._ZN3vex11motor_group9_addMotorEv - 0x03804a88 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804a88 vex::motor_group::_addMotor() + 0x03804cf8 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804cf8 vex::motor_group::_addMotor() .text._ZN3vex11motor_group9_addMotorERNS_5motorE - 0x03804a8c 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804a8c vex::motor_group::_addMotor(vex::motor&) + 0x03804cfc 0x20 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804cfc vex::motor_group::_addMotor(vex::motor&) .text._ZN3vex11motor_group11setVelocityEdNS_13velocityUnitsE - 0x03804aac 0x4c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804aac vex::motor_group::setVelocity(double, vex::velocityUnits) + 0x03804d1c 0x4c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804d1c vex::motor_group::setVelocity(double, vex::velocityUnits) .text._ZN3vex11motor_group4spinENS_13directionTypeEdNS_13velocityUnitsE - 0x03804af8 0x54 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804af8 vex::motor_group::spin(vex::directionType, double, vex::velocityUnits) + 0x03804d68 0x54 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804d68 vex::motor_group::spin(vex::directionType, double, vex::velocityUnits) .text._ZN3vex11motor_group10isSpinningEv - 0x03804b4c 0x40 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804b4c vex::motor_group::isSpinning() + 0x03804dbc 0x40 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804dbc vex::motor_group::isSpinning() .text._ZN3vex11motor_group6isDoneEv - 0x03804b8c 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804b8c vex::motor_group::isDone() + 0x03804dfc 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804dfc vex::motor_group::isDone() .text._ZN3vex11motor_group4stopEv - 0x03804ba0 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804ba0 vex::motor_group::stop() + 0x03804e10 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804e10 vex::motor_group::stop() .text._ZN3vex11motor_group20waitForCompletionAllEv - 0x03804bd0 0x60 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804bd0 vex::motor_group::waitForCompletionAll() + 0x03804e40 0x60 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804e40 vex::motor_group::waitForCompletionAll() .text._ZN3vex11motor_group9rotateForENS_13directionTypeEdNS_13rotationUnitsEdNS_13velocityUnitsEb - 0x03804c30 0xa8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) - 0x03804c30 vex::motor_group::rotateFor(vex::directionType, double, vex::rotationUnits, double, vex::velocityUnits, bool) + 0x03804ea0 0xa8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03804ea0 vex::motor_group::rotateFor(vex::directionType, double, vex::rotationUnits, double, vex::velocityUnits, bool) .text.__libc_fini_array - 0x03804cd8 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-fini.o) - 0x03804cd8 __libc_fini_array + 0x03804f48 0x30 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-fini.o) + 0x03804f48 __libc_fini_array .text.__libc_init_array - 0x03804d08 0x58 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-init.o) - 0x03804d08 __libc_init_array + 0x03804f78 0x58 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-init.o) + 0x03804f78 __libc_init_array .text.snprintf - 0x03804d60 0x8c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-snprintf.o) - 0x03804d60 snprintf - *fill* 0x03804dec 0x4 + 0x03804fd0 0x8c C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-snprintf.o) + 0x03804fd0 snprintf + *fill* 0x0380505c 0x4 .text.snprintf.__stub - 0x03804df0 0x18 linker stubs + 0x03805060 0x18 linker stubs *(.gnu.linkonce.t.*) *(.plt) *(.gnu_warning) @@ -3028,10 +3036,10 @@ Linker script and memory map *(.ARM.extab) *(.gnu.linkonce.armextab.*) -.v4_bx 0x03804e08 0x0 +.v4_bx 0x03805078 0x0 .v4_bx 0x00000000 0x0 linker stubs -.iplt 0x03804e08 0x0 +.iplt 0x03805078 0x0 .iplt 0x00000000 0x0 build/src/main.o .init @@ -3040,210 +3048,213 @@ Linker script and memory map .fini *(.fini) -.rodata 0x03804e08 0x1dc - 0x03804e08 __rodata_start = . +.rodata 0x03805078 0x1d4 + 0x03805078 __rodata_start = . *(.rodata) *(.rodata.*) .rodata.str1.1 - 0x03804e08 0x7f build/src/main.o - 0x82 (size before relaxing) + 0x03805078 0x79 build/src/main.o + 0x7c (size before relaxing) .rodata.str1.1 - 0x03804e87 0x2e C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) - *fill* 0x03804eb5 0x3 + 0x038050f1 0x2e C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) + *fill* 0x0380511f 0x1 .rodata._ZN3vex5PORT3E - 0x03804eb8 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804eb8 vex::PORT3 + 0x03805120 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805120 vex::PORT3 .rodata._ZN3vex5PORT1E - 0x03804ebc 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ebc vex::PORT1 + 0x03805124 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805124 vex::PORT1 .rodata._ZN3vex7reverseE - 0x03804ec0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ec0 vex::reverse + 0x03805128 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805128 vex::reverse .rodata._ZN3vex6PORT10E - 0x03804ec4 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ec4 vex::PORT10 + 0x0380512c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x0380512c vex::PORT10 .rodata._ZN3vex7forwardE - 0x03804ec8 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ec8 vex::forward + 0x03805130 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805130 vex::forward .rodata._ZN3vex4msecE - 0x03804ecc 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ecc vex::msec + 0x03805134 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805134 vex::msec .rodata._ZN3vex6PORT18E - 0x03804ed0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ed0 vex::PORT18 + 0x03805138 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805138 vex::PORT18 .rodata._ZN3vex5PORT2E - 0x03804ed4 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ed4 vex::PORT2 + 0x0380513c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x0380513c vex::PORT2 .rodata._ZN3vex7primaryE - 0x03804ed8 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ed8 vex::primary + 0x03805140 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805140 vex::primary .rodata._ZN3vex7percentE - 0x03804edc 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804edc vex::percent + 0x03805144 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805144 vex::percent + .rodata._ZN3vex6PORT15E + 0x03805148 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805148 vex::PORT15 .rodata._ZN3vex7degreesE - 0x03804ee0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ee0 vex::degrees + 0x0380514c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x0380514c vex::degrees .rodata._ZN3vex6PORT22E - 0x03804ee4 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ee4 vex::PORT22 + 0x03805150 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805150 vex::PORT22 .rodata._ZN3vex4holdE - 0x03804ee8 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ee8 vex::hold + 0x03805154 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805154 vex::hold .rodata._ZN3vex6PORT12E - 0x03804eec 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804eec vex::PORT12 + 0x03805158 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805158 vex::PORT12 .rodata._ZN3vex2mmE - 0x03804ef0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ef0 vex::mm + 0x0380515c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x0380515c vex::mm .rodata._ZN3vex5PORT8E - 0x03804ef4 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ef4 vex::PORT8 + 0x03805160 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805160 vex::PORT8 .rodata._ZN3vex9ratio18_1E - 0x03804ef8 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804ef8 vex::ratio18_1 - .rodata._ZN3vex6PORT17E - 0x03804efc 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) - 0x03804efc vex::PORT17 + 0x03805164 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805164 vex::ratio18_1 .rodata._ZTVN3vex5motorE - 0x03804f00 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03804f00 vtable for vex::motor + 0x03805168 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03805168 vtable for vex::motor .rodata.str1.1 - 0x03804f18 0x15 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03805180 0x15 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) 0x16 (size before relaxing) .rodata.CSWTCH.15 - 0x03804f2d 0xb C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x03805195 0xb C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) .rodata.CSWTCH.17 - 0x03804f38 0xb C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x038051a0 0xb C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) .rodata.CSWTCH.23 - 0x03804f43 0x3 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x038051ab 0x3 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) .rodata.str1.1 - 0x03804f46 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) + 0x038051ae 0x14 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) .rodata.str1.1 - 0x03804f5a 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) - *fill* 0x03804f85 0x3 + 0x038051c2 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) + *fill* 0x038051ed 0x3 .rodata._ZTVN3vex7triportE - 0x03804f88 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) - 0x03804f88 vtable for vex::triport + 0x038051f0 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + 0x038051f0 vtable for vex::triport .rodata._ZTVN3vex10drivetrainE - 0x03804fa0 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) - 0x03804fa0 vtable for vex::drivetrain - *fill* 0x03804fc4 0x4 + 0x03805208 0x24 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03805208 vtable for vex::drivetrain + *fill* 0x0380522c 0x4 .rodata._ZTVN3vex6deviceE - 0x03804fc8 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) - 0x03804fc8 vtable for vex::device + 0x03805230 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) + 0x03805230 vtable for vex::device .rodata.str1.4 - 0x03804fe0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-impure.o) + 0x03805248 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-impure.o) 0x2 (size before relaxing) *(.gnu.linkonce.r.*) - 0x03804fe4 __rodata_end = . + 0x0380524c __rodata_end = . -.rodata1 0x03804fe4 0x0 - 0x03804fe4 __rodata1_start = . +.rodata1 0x0380524c 0x0 + 0x0380524c __rodata1_start = . *(.rodata1) *(.rodata1.*) - 0x03804fe4 __rodata1_end = . + 0x0380524c __rodata1_end = . -.sdata2 0x03804fe4 0x0 - 0x03804fe4 __sdata2_start = . +.sdata2 0x0380524c 0x0 + 0x0380524c __sdata2_start = . *(.sdata2) *(.sdata2.*) *(.gnu.linkonce.s2.*) - 0x03804fe4 __sdata2_end = . + 0x0380524c __sdata2_end = . -.sbss2 0x03804fe4 0x0 - 0x03804fe4 __sbss2_start = . +.sbss2 0x0380524c 0x0 + 0x0380524c __sbss2_start = . *(.sbss2) *(.sbss2.*) *(.gnu.linkonce.sb2.*) - 0x03804fe4 __sbss2_end = . + 0x0380524c __sbss2_end = . -.data 0x03804fe8 0x44c - 0x03804fe8 __data_start = . +.data 0x03805250 0x454 + 0x03805250 __data_start = . *(.data) *(.data.*) - .data.speedin 0x03804fe8 0x1 build/src/main.o - 0x03804fe8 speedin - *fill* 0x03804fe9 0x7 + .data.speedin 0x03805250 0x1 build/src/main.o + 0x03805250 speedin + *fill* 0x03805251 0x7 .data.driveMultiplier - 0x03804ff0 0x8 build/src/main.o - 0x03804ff0 driveMultiplier + 0x03805258 0x8 build/src/main.o + 0x03805258 driveMultiplier .data.Controller1LeftShoulderControlMotorsStopped - 0x03804ff8 0x1 build/src/main.o - 0x03804ff8 Controller1LeftShoulderControlMotorsStopped + 0x03805260 0x1 build/src/main.o + 0x03805260 Controller1LeftShoulderControlMotorsStopped .data.Controller1UpDownButtonsControlMotorsStopped - 0x03804ff9 0x1 build/src/main.o - 0x03804ff9 Controller1UpDownButtonsControlMotorsStopped + 0x03805261 0x1 build/src/main.o + 0x03805261 Controller1UpDownButtonsControlMotorsStopped .data.DrivetrainLNeedsToBeStopped_Controller1 - 0x03804ffa 0x1 build/src/main.o - 0x03804ffa DrivetrainLNeedsToBeStopped_Controller1 + 0x03805262 0x1 build/src/main.o + 0x03805262 DrivetrainLNeedsToBeStopped_Controller1 .data.DrivetrainRNeedsToBeStopped_Controller1 - 0x03804ffb 0x1 build/src/main.o - 0x03804ffb DrivetrainRNeedsToBeStopped_Controller1 + 0x03805263 0x1 build/src/main.o + 0x03805263 DrivetrainRNeedsToBeStopped_Controller1 .data.IntakeStop - 0x03804ffc 0x1 build/src/main.o - 0x03804ffc IntakeStop - *fill* 0x03804ffd 0x3 + 0x03805264 0x1 build/src/main.o + 0x03805264 IntakeStop + *fill* 0x03805265 0x3 + .data.filenum 0x03805268 0x4 build/src/main.o + 0x03805268 filenum .data.appRunning - 0x03805000 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) - 0x03805000 appRunning + 0x0380526c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) + 0x0380526c appRunning .data._ZN3vex24__default_motor_velocityE - 0x03805004 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) - 0x03805004 vex::__default_motor_velocity + 0x03805270 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03805270 vex::__default_motor_velocity + *fill* 0x03805274 0x4 .data.impure_data - 0x03805008 0x428 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-impure.o) + 0x03805278 0x428 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-impure.o) .data._impure_ptr - 0x03805430 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-impure.o) - 0x03805430 _impure_ptr + 0x038056a0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-impure.o) + 0x038056a0 _impure_ptr *(.gnu.linkonce.d.*) *(.jcr) *(.got) *(.got.plt) - 0x03805434 __data_end = . + 0x038056a4 __data_end = . -.igot.plt 0x03805434 0x0 +.igot.plt 0x038056a4 0x0 .igot.plt 0x00000000 0x0 build/src/main.o -.data1 0x03805434 0x0 - 0x03805434 __data1_start = . +.data1 0x038056a4 0x0 + 0x038056a4 __data1_start = . *(.data1) *(.data1.*) - 0x03805434 __data1_end = . + 0x038056a4 __data1_end = . .got *(.got) -.ctors 0x03805434 0x0 - 0x03805434 __CTOR_LIST__ = . - 0x03805434 ___CTORS_LIST___ = . +.ctors 0x038056a4 0x0 + 0x038056a4 __CTOR_LIST__ = . + 0x038056a4 ___CTORS_LIST___ = . *crtbegin.o(.ctors) *(EXCLUDE_FILE(*crtend.o) .ctors) *(SORT(.ctors.*)) *(.ctors) - 0x03805434 __CTOR_END__ = . - 0x03805434 ___CTORS_END___ = . + 0x038056a4 __CTOR_END__ = . + 0x038056a4 ___CTORS_END___ = . -.dtors 0x03805434 0x0 - 0x03805434 __DTOR_LIST__ = . - 0x03805434 ___DTORS_LIST___ = . +.dtors 0x038056a4 0x0 + 0x038056a4 __DTOR_LIST__ = . + 0x038056a4 ___DTORS_LIST___ = . *crtbegin.o(.dtors) *(EXCLUDE_FILE(*crtend.o) .dtors) *(SORT(.dtors.*)) *(.dtors) - 0x03805434 __DTOR_END__ = . - 0x03805434 ___DTORS_END___ = . + 0x038056a4 __DTOR_END__ = . + 0x038056a4 ___DTORS_END___ = . -.fixup 0x03805434 0x0 - 0x03805434 __fixup_start = . +.fixup 0x038056a4 0x0 + 0x038056a4 __fixup_start = . *(.fixup) - 0x03805434 __fixup_end = . + 0x038056a4 __fixup_end = . .eh_frame *(.eh_frame) -.eh_framehdr 0x03805434 0x0 - 0x03805434 __eh_framehdr_start = . +.eh_framehdr 0x038056a4 0x0 + 0x038056a4 __eh_framehdr_start = . *(.eh_framehdr) - 0x03805434 __eh_framehdr_end = . + 0x038056a4 __eh_framehdr_end = . .gcc_except_table *(.gcc_except_table) @@ -3253,312 +3264,326 @@ Linker script and memory map *(.mmu_tbl) 0x03808000 __mmu_tbl_end = . -.ARM.exidx 0x03805434 0x8 - 0x03805434 __exidx_start = . +.ARM.exidx 0x038056a4 0x8 + 0x038056a4 __exidx_start = . *(.ARM.exidx*) .ARM.exidx.text._Z10autonomousv - 0x03805434 0x8 build/src/main.o + 0x038056a4 0x8 build/src/main.o + .ARM.exidx.text._Z8playbackv + 0x038056ac 0x0 build/src/main.o + 0x8 (size before relaxing) .ARM.exidx.text._Z14STOPCODE_DEBUGv - 0x0380543c 0x0 build/src/main.o + 0x038056ac 0x0 build/src/main.o + 0x8 (size before relaxing) + .ARM.exidx.text._Z7goToPosN3vex5motorEdd + 0x038056ac 0x0 build/src/main.o 0x8 (size before relaxing) .ARM.exidx.text._Z11usercontrolv - 0x0380543c 0x0 build/src/main.o + 0x038056ac 0x0 build/src/main.o 0x8 (size before relaxing) .ARM.exidx.text._Z19controllerBaseInputv - 0x0380543c 0x0 build/src/main.o + 0x038056ac 0x0 build/src/main.o 0x8 (size before relaxing) .ARM.exidx.text.main - 0x0380543c 0x0 build/src/main.o + 0x038056ac 0x0 build/src/main.o 0x8 (size before relaxing) .ARM.exidx.text._GLOBAL__sub_I_main.cpp - 0x0380543c 0x0 build/src/main.o + 0x038056ac 0x0 build/src/main.o 0x8 (size before relaxing) .ARM.exidx.text._Z33rc_auto_loop_callback_Controller1v - 0x0380543c 0x0 build/src/robot-config.o + 0x038056ac 0x0 build/src/robot-config.o 0x8 (size before relaxing) .ARM.exidx.text._Z11vexcodeInitv - 0x0380543c 0x0 build/src/robot-config.o + 0x038056ac 0x0 build/src/robot-config.o 0x8 (size before relaxing) .ARM.exidx.text._GLOBAL__sub_I_robot_config.cpp - 0x0380543c 0x0 build/src/robot-config.o + 0x038056ac 0x0 build/src/robot-config.o 0x8 (size before relaxing) *(.gnu.linkonce.armexidix.*.*) - 0x0380543c __exidx_end = . + 0x038056ac __exidx_end = . -.rel.dyn 0x0380543c 0x0 +.rel.dyn 0x038056ac 0x0 .rel.iplt 0x00000000 0x0 build/src/main.o -.preinit_array 0x0380543c 0x0 - 0x0380543c __preinit_array_start = . +.preinit_array 0x038056ac 0x0 + 0x038056ac __preinit_array_start = . *(SORT(.preinit_array.*)) *(.preinit_array) - 0x0380543c __preinit_array_end = . + 0x038056ac __preinit_array_end = . -.init_array 0x0380543c 0x10 - 0x0380543c __init_array_start = . +.init_array 0x038056ac 0x10 + 0x038056ac __init_array_start = . *(SORT(.init_array.*)) *(.init_array) - .init_array 0x0380543c 0x4 build/src/main.o - .init_array 0x03805440 0x4 build/src/robot-config.o - .init_array 0x03805444 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) - .init_array 0x03805448 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x0380544c __init_array_end = . + .init_array 0x038056ac 0x4 build/src/main.o + .init_array 0x038056b0 0x4 build/src/robot-config.o + .init_array 0x038056b4 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + .init_array 0x038056b8 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x038056bc __init_array_end = . -.fini_array 0x0380544c 0x0 - 0x0380544c __fini_array_start = . +.fini_array 0x038056bc 0x0 + 0x038056bc __fini_array_start = . *(SORT(.fini_array.*)) *(.fini_array) - 0x0380544c __fini_array_end = . + 0x038056bc __fini_array_end = . .ARM.attributes - 0x0380544c 0x3c - 0x0380544c __ARM.attributes_start = . + 0x038056bc 0x3c + 0x038056bc __ARM.attributes_start = . *(.ARM.attributes) .ARM.attributes - 0x0380544c 0x3a build/src/main.o + 0x038056bc 0x3a build/src/main.o .ARM.attributes - 0x03805486 0x3a build/src/robot-config.o + 0x038056f6 0x3a build/src/robot-config.o .ARM.attributes - 0x038054c0 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) + 0x03805730 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) .ARM.attributes - 0x038054f5 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_util.c.obj) + 0x03805765 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_util.c.obj) .ARM.attributes - 0x0380552a 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x0380579a 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) .ARM.attributes - 0x0380555f 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiversions.c.obj) + 0x038057cf 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiversions.c.obj) .ARM.attributes - 0x03805594 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) + 0x03805804 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_global.cpp.obj) .ARM.attributes - 0x038055c9 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) + 0x03805839 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motor.cpp.obj) .ARM.attributes - 0x038055fe 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) + 0x0380586e 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_controller.cpp.obj) .ARM.attributes - 0x03805633 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) + 0x038058a3 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) .ARM.attributes - 0x03805668 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_thread.cpp.obj) + 0x038058d8 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_thread.cpp.obj) .ARM.attributes - 0x0380569d 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_event.cpp.obj) + 0x0380590d 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_event.cpp.obj) .ARM.attributes - 0x038056d2 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_mevent.cpp.obj) + 0x03805942 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_mevent.cpp.obj) .ARM.attributes - 0x03805707 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) + 0x03805977 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_brain.cpp.obj) .ARM.attributes - 0x0380573c 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x038059ac 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) .ARM.attributes - 0x03805771 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + 0x038059e1 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) .ARM.attributes - 0x038057a6 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805a16 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) .ARM.attributes - 0x038057db 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) + 0x03805a4b 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_timer.cpp.obj) .ARM.attributes - 0x03805810 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) + 0x03805a80 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_drivetrain.cpp.obj) .ARM.attributes - 0x03805845 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) + 0x03805ab5 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apiuser.c.obj) .ARM.attributes - 0x0380587a 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) + 0x03805aea 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_device.cpp.obj) .ARM.attributes - 0x038058af 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) + 0x03805b1f 0x35 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_motorgroup.cpp.obj) .ARM.attributes - 0x038058e4 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-fini.o) + 0x03805b54 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-fini.o) .ARM.attributes - 0x0380590f 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-impure.o) + 0x03805b7f 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-impure.o) .ARM.attributes - 0x0380593a 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-init.o) + 0x03805baa 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-init.o) .ARM.attributes - 0x03805965 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-snprintf.o) - 0x03805990 __ARM.attributes_end = . + 0x03805bd5 0x2b C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/gcc/libs\libc.a(lib_a-snprintf.o) + 0x03805c00 __ARM.attributes_end = . -.sdata 0x0380544c 0x0 - 0x0380544c __sdata_start = . +.sdata 0x038056bc 0x0 + 0x038056bc __sdata_start = . *(.sdata) *(.sdata.*) *(.gnu.linkonce.s.*) - 0x0380544c __sdata_end = . + 0x038056bc __sdata_end = . -.sbss 0x0380544c 0x0 - 0x0380544c __sbss_start = . +.sbss 0x038056bc 0x0 + 0x038056bc __sbss_start = . *(.sbss) *(.sbss.*) *(.gnu.linkonce.sb.*) - 0x0380544c __sbss_end = . + 0x038056bc __sbss_end = . -.tdata 0x0380544c 0x0 - 0x0380544c __tdata_start = . +.tdata 0x038056bc 0x0 + 0x038056bc __tdata_start = . *(.tdata) *(.tdata.*) *(.gnu.linkonce.td.*) - 0x0380544c __tdata_end = . + 0x038056bc __tdata_end = . -.tbss 0x0380544c 0x0 - 0x0380544c __tbss_start = . +.tbss 0x038056bc 0x0 + 0x038056bc __tbss_start = . *(.tbss) *(.tbss.*) *(.gnu.linkonce.tb.*) - 0x0380544c __tbss_end = . + 0x038056bc __tbss_end = . -.bss 0x03805450 0x944 - 0x03805450 __bss_start = . +.bss 0x038056c0 0x95c + 0x038056c0 __bss_start = . *(.bss) *(.bss.*) .bss._ZStL8__ioinit - 0x03805450 0x1 build/src/main.o - .bss.apressed 0x03805451 0x1 build/src/main.o - 0x03805451 apressed - .bss.bpressed 0x03805452 0x1 build/src/main.o - 0x03805452 bpressed - *fill* 0x03805453 0x1 + 0x038056c0 0x1 build/src/main.o + .bss.apressed 0x038056c1 0x1 build/src/main.o + 0x038056c1 apressed + .bss.bpressed 0x038056c2 0x1 build/src/main.o + 0x038056c2 bpressed + *fill* 0x038056c3 0x1 .bss.Competition - 0x03805454 0x28 build/src/main.o - 0x03805454 Competition + 0x038056c4 0x28 build/src/main.o + 0x038056c4 Competition + *fill* 0x038056ec 0x4 .bss.LeftDriveSmart - 0x0380547c 0x24 build/src/main.o - 0x0380547c LeftDriveSmart + 0x038056f0 0x24 build/src/main.o + 0x038056f0 LeftDriveSmart + *fill* 0x03805714 0x4 .bss.RightDriveSmart - 0x038054a0 0x24 build/src/main.o - 0x038054a0 RightDriveSmart - *fill* 0x038054c4 0x4 + 0x03805718 0x24 build/src/main.o + 0x03805718 RightDriveSmart + *fill* 0x0380573c 0x4 .bss.Drivetrain - 0x038054c8 0xd0 build/src/main.o - 0x038054c8 Drivetrain + 0x03805740 0xd0 build/src/main.o + 0x03805740 Drivetrain .bss.LiftMotor - 0x03805598 0x24 build/src/main.o - 0x03805598 LiftMotor + 0x03805810 0x24 build/src/main.o + 0x03805810 LiftMotor + *fill* 0x03805834 0x4 .bss.LiftMotor2 - 0x038055bc 0x24 build/src/main.o - 0x038055bc LiftMotor2 + 0x03805838 0x24 build/src/main.o + 0x03805838 LiftMotor2 + *fill* 0x0380585c 0x4 .bss.TiltMotor - 0x038055e0 0x24 build/src/main.o - 0x038055e0 TiltMotor + 0x03805860 0x24 build/src/main.o + 0x03805860 TiltMotor + *fill* 0x03805884 0x4 .bss.TiltMotor2 - 0x03805604 0x24 build/src/main.o - 0x03805604 TiltMotor2 + 0x03805888 0x24 build/src/main.o + 0x03805888 TiltMotor2 .bss.Controller1 - 0x03805628 0x1e0 build/src/main.o - 0x03805628 Controller1 - .bss.IntakeR 0x03805808 0x24 build/src/main.o - 0x03805808 IntakeR - .bss.IntakeL 0x0380582c 0x24 build/src/main.o - 0x0380582c IntakeL - .bss.ifs 0x03805850 0x104 build/src/main.o - 0x03805850 ifs - .bss.ofs 0x03805954 0x100 build/src/main.o - 0x03805954 ofs - .bss.Brain 0x03805a54 0x2bc build/src/robot-config.o - 0x03805a54 Brain + 0x038058ac 0x1e0 build/src/main.o + 0x038058ac Controller1 + .bss.IntakeR 0x03805a8c 0x24 build/src/main.o + 0x03805a8c IntakeR + .bss.IntakeL 0x03805ab0 0x24 build/src/main.o + 0x03805ab0 IntakeL + .bss.ifs 0x03805ad4 0x104 build/src/main.o + 0x03805ad4 ifs + .bss.instructions + 0x03805bd8 0x4 build/src/main.o + 0x03805bd8 instructions + .bss.ofs 0x03805bdc 0x100 build/src/main.o + 0x03805bdc ofs + .bss.Brain 0x03805cdc 0x2bc build/src/robot-config.o + 0x03805cdc Brain .bss.__dso_handle - 0x03805d10 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) - 0x03805d10 __dso_handle + 0x03805f98 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) + 0x03805f98 __dso_handle .bss.lastTime.8978 - 0x03805d14 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) + 0x03805f9c 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_apijump.c.obj) .bss._ZN3vex4task8_labelIdE - 0x03805d18 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) - 0x03805d18 vex::task::_labelId + 0x03805fa0 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_task.cpp.obj) + 0x03805fa0 vex::task::_labelId .bss._ZN3vex11competition22bStopTasksBetweenModesE - 0x03805d1c 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03805d1c vex::competition::bStopTasksBetweenModes + 0x03805fa4 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03805fa4 vex::competition::bStopTasksBetweenModes .bss._ZN3vex11competition15_driver_pendingE - 0x03805d1d 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03805d1d vex::competition::_driver_pending + 0x03805fa5 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03805fa5 vex::competition::_driver_pending .bss._ZN3vex11competition14_auton_pendingE - 0x03805d1e 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03805d1e vex::competition::_auton_pending - *fill* 0x03805d1f 0x1 + 0x03805fa6 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03805fa6 vex::competition::_auton_pending + *fill* 0x03805fa7 0x1 .bss._ZN3vex11competition23_drivercontrol_callbackE - 0x03805d20 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03805d20 vex::competition::_drivercontrol_callback + 0x03805fa8 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03805fa8 vex::competition::_drivercontrol_callback .bss._ZN3vex11competition20_autonomous_callbackE - 0x03805d24 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03805d24 vex::competition::_autonomous_callback + 0x03805fac 0x4 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03805fac vex::competition::_autonomous_callback .bss._ZN3vex11competition25bStopAllTasksBetweenModesE - 0x03805d28 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) - 0x03805d28 vex::competition::bStopAllTasksBetweenModes + 0x03805fb0 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_competition.cpp.obj) + 0x03805fb0 vex::competition::bStopAllTasksBetweenModes .bss._ZStL8__ioinit - 0x03805d29 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) - *fill* 0x03805d2a 0x2 + 0x03805fb1 0x1 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_triport.cpp.obj) + *fill* 0x03805fb2 0x2 .bss._ZN3vex5color6orangeE - 0x03805d2c 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d2c vex::color::orange + 0x03805fb4 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805fb4 vex::color::orange .bss._ZN3vex5color5blackE - 0x03805d34 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d34 vex::color::black + 0x03805fbc 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805fbc vex::color::black .bss._ZN3vex5color6yellowE - 0x03805d3c 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d3c vex::color::yellow + 0x03805fc4 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805fc4 vex::color::yellow .bss._ZN3vex5color5greenE - 0x03805d44 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d44 vex::color::green + 0x03805fcc 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805fcc vex::color::green .bss._ZN3vex5color6purpleE - 0x03805d4c 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d4c vex::color::purple + 0x03805fd4 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805fd4 vex::color::purple .bss._ZN3vex5color4cyanE - 0x03805d54 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d54 vex::color::cyan + 0x03805fdc 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805fdc vex::color::cyan .bss._ZN3vex5color4blueE - 0x03805d5c 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d5c vex::color::blue + 0x03805fe4 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805fe4 vex::color::blue .bss._ZN3vex5color3redE - 0x03805d64 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d64 vex::color::red + 0x03805fec 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805fec vex::color::red .bss._ZN3vex5color11transparentE - 0x03805d6c 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d6c vex::color::transparent + 0x03805ff4 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805ff4 vex::color::transparent .bss._ZN3vex5color5whiteE - 0x03805d74 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) - 0x03805d74 vex::color::white + 0x03805ffc 0x8 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(vex_color.cpp.obj) + 0x03805ffc vex::color::white *(.gnu.linkonce.b.*) *(COMMON) - COMMON 0x03805d7c 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) - 0x03805d80 __vex_critical_section - 0x03805d94 __bss_end = . - 0x0380544c _SDA_BASE_ = (__sdata_start + ((__sbss_end - __sdata_start) / 0x2)) - 0x03804fe4 _SDA2_BASE_ = (__sdata2_start + ((__sbss2_end - __sdata2_start) / 0x2)) + COMMON 0x03806004 0x18 C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5\libv5rt.a(v5_startup.c.obj) + 0x03806008 __vex_critical_section + 0x0380601c __bss_end = . + 0x038056bc _SDA_BASE_ = (__sdata_start + ((__sbss_end - __sdata_start) / 0x2)) + 0x0380524c _SDA2_BASE_ = (__sdata2_start + ((__sbss2_end - __sdata2_start) / 0x2)) -.heap 0x03805d94 0x10000c - 0x03805da0 . = ALIGN (0x10) - *fill* 0x03805d94 0xc - 0x03805da0 _heap = . - 0x03805da0 HeapBase = . - 0x03805da0 _heap_start = . - 0x03905da0 . = (. + _HEAP_SIZE) - *fill* 0x03805da0 0x100000 - 0x03905da0 _heap_end = . - 0x03905da0 HeapLimit = . +.heap 0x0380601c 0x100004 + 0x03806020 . = ALIGN (0x10) + *fill* 0x0380601c 0x4 + 0x03806020 _heap = . + 0x03806020 HeapBase = . + 0x03806020 _heap_start = . + 0x03906020 . = (. + _HEAP_SIZE) + *fill* 0x03806020 0x100000 + 0x03906020 _heap_end = . + 0x03906020 HeapLimit = . -.stack 0x03905da0 0x3800 - 0x03905da0 . = ALIGN (0x10) - 0x03905da0 _stack_end = . - 0x03907da0 . = (. + _STACK_SIZE) - *fill* 0x03905da0 0x2000 - 0x03907da0 . = ALIGN (0x10) - 0x03907da0 _stack = . - 0x03907da0 __stack = _stack - 0x03907da0 . = ALIGN (0x10) - 0x03907da0 _irq_stack_end = . - 0x039081a0 . = (. + _IRQ_STACK_SIZE) - *fill* 0x03907da0 0x400 - 0x039081a0 . = ALIGN (0x10) - 0x039081a0 __irq_stack = . - 0x039081a0 _supervisor_stack_end = . - 0x039089a0 . = (. + _SUPERVISOR_STACK_SIZE) - *fill* 0x039081a0 0x800 - 0x039089a0 . = ALIGN (0x10) - 0x039089a0 __supervisor_stack = . - 0x039089a0 _abort_stack_end = . - 0x03908da0 . = (. + _ABORT_STACK_SIZE) - *fill* 0x039089a0 0x400 - 0x03908da0 . = ALIGN (0x10) - 0x03908da0 __abort_stack = . - 0x03908da0 _fiq_stack_end = . - 0x039091a0 . = (. + _FIQ_STACK_SIZE) - *fill* 0x03908da0 0x400 - 0x039091a0 . = ALIGN (0x10) - 0x039091a0 __fiq_stack = . - 0x039091a0 _undef_stack_end = . - 0x039095a0 . = (. + _UNDEF_STACK_SIZE) - *fill* 0x039091a0 0x400 - 0x039095a0 . = ALIGN (0x10) - 0x039095a0 __undef_stack = . - 0x039095a0 _end = . +.stack 0x03906020 0x3800 + 0x03906020 . = ALIGN (0x10) + 0x03906020 _stack_end = . + 0x03908020 . = (. + _STACK_SIZE) + *fill* 0x03906020 0x2000 + 0x03908020 . = ALIGN (0x10) + 0x03908020 _stack = . + 0x03908020 __stack = _stack + 0x03908020 . = ALIGN (0x10) + 0x03908020 _irq_stack_end = . + 0x03908420 . = (. + _IRQ_STACK_SIZE) + *fill* 0x03908020 0x400 + 0x03908420 . = ALIGN (0x10) + 0x03908420 __irq_stack = . + 0x03908420 _supervisor_stack_end = . + 0x03908c20 . = (. + _SUPERVISOR_STACK_SIZE) + *fill* 0x03908420 0x800 + 0x03908c20 . = ALIGN (0x10) + 0x03908c20 __supervisor_stack = . + 0x03908c20 _abort_stack_end = . + 0x03909020 . = (. + _ABORT_STACK_SIZE) + *fill* 0x03908c20 0x400 + 0x03909020 . = ALIGN (0x10) + 0x03909020 __abort_stack = . + 0x03909020 _fiq_stack_end = . + 0x03909420 . = (. + _FIQ_STACK_SIZE) + *fill* 0x03909020 0x400 + 0x03909420 . = ALIGN (0x10) + 0x03909420 __fiq_stack = . + 0x03909420 _undef_stack_end = . + 0x03909820 . = (. + _UNDEF_STACK_SIZE) + *fill* 0x03909420 0x400 + 0x03909820 . = ALIGN (0x10) + 0x03909820 __undef_stack = . + 0x03909820 _end = . LOAD C:\Program Files (x86)\VEX Robotics\VEXcode V5 Text\sdk/vexv5/stdlib_0.lib LOAD build/src/main.o LOAD build/src/robot-config.o diff --git a/build/src/main.o b/build/src/main.o index f60b7e39676e0861bea669cc03ec42b415968f8d..499c236dddfb0c7f5d663168cbd36a9d3a0ea1d9 100644 GIT binary patch literal 24388 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 a>+OJ(NT0>4$A#}rz_ENGK4?yUzx97E6>sJM diff --git a/src/main.cpp b/src/main.cpp index dbefd00..d39f078 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,639 +1,683 @@ -/*----------------------------------------------------------------------------*/ -/* */ -/* Module: main.cpp */ -/* Author: VEX */ -/* Created: Thu Sep 26 2019 */ -/* Description: Competition Template */ -/* */ -/*----------------------------------------------------------------------------*/ - -// ---- START VEXCODE CONFIGURED DEVICES ---- -// Robot Configuration: -// [Name] [Type] [Port(s)] -// Drivetrain drivetrain 1, 2 -// LiftMotor motor 18 -// LiftMotor2 motor 12 -// TiltMotor motor 3 -// Controller1 controller -// IntakeR motor 17 -// IntakeL motor 8 -// ---- END VEXCODE CONFIGURED DEVICES ---- - -#include "vex.h" -#include -#include -#include -#include -#include - - -using namespace vex; -bool speedin = true; -double driveMultiplier = 1.0; - -bool apressed = false; -bool bpressed = false; -// A global instance of competition -competition Competition; - -motor LeftDriveSmart = motor(PORT1, ratio18_1, false); -motor RightDriveSmart = motor(PORT2, ratio18_1, true); -drivetrain Drivetrain = - drivetrain(LeftDriveSmart, RightDriveSmart, 319.19, 295, 130, mm, 1); -motor LiftMotor = motor(PORT18, ratio18_1, true); -motor LiftMotor2 = motor(PORT12, ratio18_1, false); -motor TiltMotor = motor(PORT3, ratio18_1, false); -controller Controller1 = controller(primary); -motor IntakeR = motor(PORT17, ratio18_1, false); -motor IntakeL = motor(PORT8, ratio18_1, true); - -bool Controller1LeftShoulderControlMotorsStopped = true; -bool Controller1RightShoulderControlMotorsStopped = true; -bool Controller1UpDownButtonsControlMotorsStopped = true; -bool DrivetrainLNeedsToBeStopped_Controller1 = true; -bool DrivetrainRNeedsToBeStopped_Controller1 = true; -bool IntakeStop = true; -void controllerBaseInput(); -void STOPCODE_DEBUG(); -// define your global instances of motors and other devices here - -/*---------------------------------------------------------------------------*/ -/* Pre-Autonomous Functions */ -/* */ -/* You may want to perform some actions before the competition starts. */ -/* Do them in the following function. You must return from this function */ -/* or the autonomous and usercontrol tasks will not be started. This */ -/* function is only called once after the V5 has been powered on and */ -/* not every time that the robot is disabled. */ -/*---------------------------------------------------------------------------*/ - -void pre_auton(void) { - // Initializing Robot Configuration. DO NOT REMOVE! - vexcodeInit(); - - // All activities that occur before the competition starts - // Example: clearing encoders, setting servo positions, ... -} - -/*---------------------------------------------------------------------------*/ -/* */ -/* Autonomous Task */ -/* */ -/* This task is used to control your robot during the autonomous phase of */ -/* a VEX Competition. */ -/* */ -/* You must modify the code to add your own robot specific commands here. */ -/*---------------------------------------------------------------------------*/ -std::ifstream ifs; -void goToPos(motor m, double vel, double pos); -void playback(); -std::string instructions; -void autonomous(void) { - // .......................................................................... - // Insert autonomous user code here. - // .......................................................................... - /*STOPCODE_DEBUG(); - LiftMotor.setVelocity(100, percent); - LiftMotor2.setVelocity(100, percent); - TiltMotor.setVelocity(30, percent); - //Drivetrain.driveFor(6, inches);*/ - LiftMotor.resetRotation(); - LiftMotor2.resetRotation(); - TiltMotor.resetRotation(); - IntakeL.resetRotation(); - IntakeR.resetRotation(); - LeftDriveSmart.resetRotation(); - RightDriveSmart.resetRotation(); - - LiftMotor.setStopping(hold); - LiftMotor2.setStopping(hold); - // STOPCODE_DEBUG(); - // uint8_t * instructions = nullptr; - // Brain.SDcard.loadfile("recording.bin", instructions, 2500); // size in - // bytes - ifs.open("recording.txt", std::ofstream::in); - Controller1.Screen.print("File opened"); - timer tim; - tim.clear(); - while (std::getline(ifs, instructions)) { - while (tim.value() < 0.075) { - wait(1, msec); - } - tim.clear(); - playback(); - } - ifs.close(); - STOPCODE_DEBUG(); - Drivetrain.setDriveVelocity(40, percent); - Drivetrain.setTurnVelocity(50, percent); - // Drivetrain.turnFor(5, degrees); - Drivetrain.driveFor(15, inches, false); - wait(2, sec); - Drivetrain.setDriveVelocity(80, percent); - Drivetrain.driveFor(reverse, 16, inches); - wait(1, sec); - // Drivetrain.turnFor(-45, degrees); - STOPCODE_DEBUG(); - LiftMotor.startSpinTo(40 * 7, degrees); // unlock everything - LiftMotor2.startSpinTo(40 * 7, degrees); - waitUntil(LiftMotor.isDone() && LiftMotor2.isDone()); - TiltMotor.startSpinTo(45 * 7, degrees); - LiftMotor.startSpinTo(10 * 7, degrees); - LiftMotor2.startSpinTo(10 * 7, degrees); - waitUntil(LiftMotor.isDone() && LiftMotor2.isDone() && TiltMotor.isDone()); - IntakeL.setVelocity(100, percent); - IntakeR.setVelocity(100, percent); - IntakeL.startSpinTo(-5, rev); - IntakeR.startSpinTo(-5, rev); - TiltMotor.startSpinTo(5, degrees); - waitUntil(TiltMotor.isDone()); - // STOPCODE_DEBUG(); - STOPCODE_DEBUG(); - IntakeL.setVelocity(100, percent); - IntakeR.setVelocity(100, percent); - // IntakeL.startSpinTo(5, rev); // grab preload - // IntakeR.startSpinTo(5, rev); - Drivetrain.setDriveVelocity(80, percent); - Drivetrain.setTurnVelocity(100, percent); - - // Drivetrain.driveFor(24 * 3.5, inches); // drive to the row of 4 (if on that - // tile) - waitUntil(IntakeL.isDone() && IntakeR.isDone()); - // Drivetrain.turnFor(-90, degrees); // turn LEFT - IntakeL.spin(forward); - IntakeR.spin(forward); - Drivetrain.setDriveVelocity(50, percent); - Drivetrain.driveFor(24 * 0.8, inches); // grab 4 cubes - wait(1000, msec); - IntakeL.stop(hold); - IntakeR.stop(hold); // hold the cubes - STOPCODE_DEBUG(); - Drivetrain.driveFor(reverse, 24 * 1.6, inches); // go back - Drivetrain.setTurnVelocity(50, percent); - Drivetrain.turnFor(130, degrees); // turn RIGHT towards corner - Drivetrain.setDriveVelocity(33, percent); - Drivetrain.driveFor(24 * 0.8, inches); // go to corner - TiltMotor.spinTo(50 * 7, degrees); // tilt cubes - IntakeL.setVelocity(20, percent); - IntakeR.setVelocity(20, percent); - IntakeL.startSpinFor(-3, rev); - IntakeR.startSpinFor(-3, rev); // start pushing out cubes - Drivetrain.setDriveVelocity(25, percent); - Drivetrain.driveFor(reverse, 24 * 0.8, inches); // back away slowly -} -void playback() { - int y = 0; - y = instructions.find(" ", 5); - double vel = strtod(instructions.substr(0, y).c_str(), NULL); - instructions = instructions.substr(y + 1); - y = instructions.find(" ", 5); - double pos = strtod(instructions.substr(0, y).c_str(), NULL); - instructions = instructions.substr(y + 1); - Controller1.Screen.print(vel); - - // LeftDriveSmart.setVelocity(vel, percent); - // LeftDriveSmart.startSpinTo(pos, degrees); - - y = instructions.find(" ", 5); - double vel2 = strtod(instructions.substr(0, y).c_str(), NULL); - instructions = instructions.substr(y + 1); - y = instructions.find(" ", 5); - double pos2 = strtod(instructions.substr(0, y).c_str(), NULL); - instructions = instructions.substr(y + 1); - //Controller1.Screen.print(vel); - goToPos(LeftDriveSmart, vel, pos); - goToPos(RightDriveSmart, vel2, pos2); - - y = instructions.find(" ", 5); - vel = strtod(instructions.substr(0, y).c_str(), NULL); - instructions = instructions.substr(y + 1); - IntakeL.spin(forward, vel, percent); - IntakeR.spin(forward, vel, percent); - - y = instructions.find(" ", 5); - vel = strtod(instructions.substr(0, y).c_str(), NULL); - instructions = instructions.substr(y + 1); - y = instructions.find(" ", 5); - pos = strtod(instructions.substr(0, y).c_str(), NULL); - instructions = instructions.substr(y + 1); - goToPos(LiftMotor, vel, pos); - goToPos(LiftMotor2, vel, pos); - //LiftMotor2.rotateTo(pos, degrees, vel, velocityUnits::pct, false); - - y = instructions.find(" ", 5); - vel = strtod(instructions.substr(0, y).c_str(), NULL); - instructions = instructions.substr(y + 1); - y = instructions.find(" ", 5); - pos = strtod(instructions.substr(0, y).c_str(), NULL); - goToPos(TiltMotor, vel, pos); - //TiltMotor.rotateTo(pos, degrees, vel, velocityUnits::pct, false); - //wait(10, msec); -} -/*---------------------------------------------------------------------------*/ -/* */ -/* User Control Task */ -/* */ -/* This task is used to control your robot during the user control phase of */ -/* a VEX Competition. */ -/* */ -/* You must modify the code to add your own robot specific commands here. */ -/*---------------------------------------------------------------------------*/ -std::ofstream ofs; - -void usercontrol(void) { - LiftMotor.setVelocity(100, percent); - LiftMotor2.setVelocity(100, percent); - TiltMotor.setVelocity(30, percent); - Controller1.Screen.clearScreen(); - Controller1.Screen.setCursor(0, 0); - Controller1.Screen.clearLine(); - Controller1.Screen.print("Normal Driving "); - bool recording = false; - bool donerecording = false; - timer tim2; - // User control code here, inside the loop - while (1) { - // This is the main execution loop for the user control program. - // Each time through the loop your program should update motor + servo - // values based on feedback from the joysticks. - - // ........................................................................ - // Insert user code here. This is where you use the joystick values to - // update your motors, etc. - // ........................................................................ - if (Controller1.ButtonY.pressing()) { - speedin = false; - driveMultiplier = 0.33; - Controller1.Screen.setCursor(0, 0); - Controller1.Screen.clearLine(); - Controller1.Screen.print("Precise Driving "); - } else if (Controller1.ButtonX.pressing()) { - speedin = true; - driveMultiplier = 1; - Controller1.Screen.setCursor(0, 0); - Controller1.Screen.clearLine(); - Controller1.Screen.print("Normal Driving "); - } - if (Controller1.ButtonA.pressing() && !apressed) { - speedin = !speedin; - apressed = true; - } else if (!Controller1.ButtonA.pressing()) - apressed = false; - - if (Controller1.ButtonB.pressing() && !bpressed) { - if (driveMultiplier == 1.0) { - driveMultiplier = 0.33; - Controller1.Screen.setCursor(0, 0); - // Controller1.Screen.clearLine(); - Controller1.Screen.print("Precise Driving"); - } else if (driveMultiplier == 0.33) { - driveMultiplier = 1; - Controller1.Screen.setCursor(0, 0); - // Controller1.Screen.clearLine(); - Controller1.Screen.print("Normal Driving "); - } - bpressed = true; - } else if (!Controller1.ButtonB.pressing()) - bpressed = false; - // uint8_t * data = (uint8_t*)malloc(sizeof(uint8_t) * 5); - if (Controller1.ButtonLeft.pressing() && !recording) { - recording = true; - - LeftDriveSmart.resetRotation(); - RightDriveSmart.resetRotation(); - LiftMotor.resetRotation(); - LiftMotor2.resetRotation(); - TiltMotor.resetRotation(); - IntakeL.resetRotation(); - IntakeR.resetRotation(); - if (Brain.SDcard.isInserted()) { - // create a file with long filename - ofs.open("recording.txt", std::ofstream::out); - } - tim2.clear(); - } - if (Controller1.ButtonRight.pressing()) { - donerecording = true; - } - controllerBaseInput(); - if (recording) { - while (tim2.value() < 0.075) { - wait(1, msec); - } - tim2.clear(); - // count ++; - std::string thisReading = ""; - char output[12]; - snprintf(output, 12, "%f", LeftDriveSmart.velocity(percent)); - thisReading += output; - thisReading += " "; - // output[12] = ""; - snprintf(output, 12, "%f", LeftDriveSmart.rotation(degrees)); - thisReading += output; - thisReading += " "; - - // output[12] = ""; - snprintf(output, 12, "%f", RightDriveSmart.velocity(percent)); - thisReading += output; - thisReading += " "; - // output[12] = ""; - snprintf(output, 12, "%f", RightDriveSmart.rotation(degrees)); - thisReading += output; - thisReading += " "; - - // char output[12]; - snprintf(output, 12, "%f", IntakeL.velocity(percent)); - thisReading += output; - thisReading += " "; - - // output[12] = ""; - snprintf(output, 12, "%f", LiftMotor.velocity(percent)); - thisReading += output; - thisReading += " "; - // output[12] = ""; - snprintf(output, 12, "%f", LiftMotor.rotation(degrees)); - thisReading += output; - thisReading += " "; - - // output[12] = ""; - snprintf(output, 12, "%f", TiltMotor.velocity(percent)); - thisReading += output; - thisReading += " "; - // output[12] = ""; - snprintf(output, 12, "%f", TiltMotor.rotation(degrees)); - thisReading += output; - thisReading += " \n"; - ofs << thisReading; - - // data = (uint8_t*)realloc(data, sizeof(uint8_t) * 5 * count + 5); - // uint8_t* thisReading; - // thisReading = new uint8_t[5]; - /*thisReading = {(uint8_t) (LeftDriveSmart.velocity(percent)+100), - (uint8_t) - (RightDriveSmart.velocity(percent)+100), (uint8_t) - (IntakeL.velocity(percent)+100), (uint8_t) - (LiftMotor.velocity(percent)+100), (uint8_t) - (TiltMotor.velocity(percent)+100) - };*/ - //*(thisReading) = (uint8_t) (LeftDriveSmart.velocity(percent)+100); - //*(thisReading+1) = (uint8_t) (RightDriveSmart.velocity(percent)+100); - //*(thisReading+2) = (uint8_t) (IntakeL.velocity(percent)+100); - //*(thisReading+3) = (uint8_t) (LiftMotor.velocity(percent)+100); - //*(thisReading+4) = (uint8_t) (TiltMotor.velocity(percent)+100); - // int startIndex = count * 5; - // for(int i = 0; i < 5; i++) { - // data[startIndex + i] = thisReading[i]; - //} - if (donerecording) { - // Brain.SDcard.savefile("recording.bin", data, sizeof(data)); - recording = false; - ofs.close(); - } - } else { - wait(20, msec); // Sleep the task for a short amount of time to - // prevent wasted resources. - } - // controllerBaseInput(); - } -} - -// -// Main will set up the competition functions and callbacks. -// -int main() { - // Set up callbacks for autonomous and driver control periods. - Competition.autonomous(autonomous); - Competition.drivercontrol(usercontrol); - - // Run the pre-autonomous function. - pre_auton(); - - // Prevent main from exiting with an infinite loop. - while (true) { - wait(100, msec); - } -} -void STOPCODE_DEBUG() { - Drivetrain.stop(); - LiftMotor.stop(); - LiftMotor2.stop(); - IntakeR.stop(); - IntakeL.stop(); - TiltMotor.stop(); - while (true) - wait(20, msec); -} - -/*void goToPos(motor m, double vel, double pos) { - m.setVelocity(vel, percent); - if (true || pos > m.rotation(degrees)) { - if (vel > 0 && !m.isSpinning()) { - m.spin(forward); - } - } else { - m.stop(); - } - - if (true || pos < m.rotation(degrees)) { - if (vel < 0 && !m.isSpinning()) { - m.spin(forward); - } - } else { - m.stop(); - } -}*/ -void goToPos(motor m, double vel, double pos) { - m.setVelocity(vel, percent); - if (vel != 0 && !m.isSpinning()) { - m.spin(forward); - } -} -void controllerBaseInput() { - - // int drivetrainLeftSideSpeed = Controller1.Axis3.position(); - // int drivetrainRightSideSpeed = Controller1.Axis2.position(); - double axisAngle = - atan2(Controller1.Axis3.position(), Controller1.Axis4.position()); - axisAngle *= 180 / 3.1415926; - - // if(Controller1.Axis4.position() < 0) axisAngle += 180; - // Controller1.Screen.setCursor(0, 50); - // Controller1.Screen.clearLine(); - // Controller1.Screen.print(axisAngle); - int drivetrainLeftSideSpeed = Controller1.Axis3.position(); - int drivetrainRightSideSpeed = Controller1.Axis4.position(); - int powerLevel = - sqrt(Controller1.Axis3.position() * Controller1.Axis3.position() + - Controller1.Axis4.position() * Controller1.Axis4.position()); - // left side - if (axisAngle < 90 && axisAngle >= 0) - drivetrainLeftSideSpeed = powerLevel; - else if (axisAngle <= 181 && axisAngle >= 90) - drivetrainLeftSideSpeed = int(powerLevel * (135 - axisAngle) / 45); - else if (axisAngle >= -181 && axisAngle <= -90) - drivetrainLeftSideSpeed = -powerLevel; - else if (axisAngle > -90 && axisAngle < 0) - drivetrainLeftSideSpeed = int(powerLevel * (45 + axisAngle) / 45); - - if (axisAngle <= 181 && axisAngle >= 90) - drivetrainRightSideSpeed = powerLevel; - else if (axisAngle < 90 && axisAngle >= 0) - drivetrainRightSideSpeed = -int(powerLevel * (45 - axisAngle) / 45); - else if (axisAngle > -90 && axisAngle < 0) - drivetrainRightSideSpeed = -powerLevel; - else if (axisAngle >= -181 && axisAngle <= -90) - drivetrainRightSideSpeed = -int(powerLevel * (135 + axisAngle) / 45); - - if (Controller1.Axis4.position() == 0 && Controller1.Axis3.position() > 0 && - (int(axisAngle) == 90 || int(axisAngle) == 0)) { - drivetrainLeftSideSpeed = powerLevel; - drivetrainRightSideSpeed = powerLevel; - } - if (Controller1.Axis4.position() == 0 && Controller1.Axis3.position() < 0 && - (int(axisAngle) == -90 || int(axisAngle) == 0)) { - drivetrainLeftSideSpeed = -powerLevel; - drivetrainRightSideSpeed = -powerLevel; - } - if (Controller1.Axis4.position() < 0 && - (int(axisAngle) == 180 || int(axisAngle) == -180 || - int(axisAngle) == 0)) { - drivetrainLeftSideSpeed = -powerLevel; - drivetrainRightSideSpeed = powerLevel; - } - int IntakeSpeed = Controller1.Axis2.position(); - if (IntakeSpeed < 5 && IntakeSpeed > -5) { - // check if the left motor has already been stopped - if (IntakeStop) { - // stop the left drive motor - IntakeL.stop(); - IntakeR.stop(); - // tell the code that the left motor has been stopped - IntakeStop = false; - } - } else { - // reset the toggle so that the deadband code knows to stop the left motor - // next time the input is in the deadband range - IntakeStop = true; - } - // only tell the left drive motor to spin if the values are not in the - // deadband range - if (speedin) { - Controller1.Screen.setCursor(2, 0); - // Controller1.Screen.clearLine(); - Controller1.Screen.print("Fast intake"); - } else { - Controller1.Screen.setCursor(2, 0); - // Controller1.Screen.clearLine(); - Controller1.Screen.print("Slow intake"); - IntakeSpeed /= 4; - } - - if (Controller1.ButtonDown.pressing()) { - drivetrainLeftSideSpeed = -20; - drivetrainRightSideSpeed = -20; - IntakeStop = true; - IntakeSpeed = -20; - } else if (Controller1.ButtonUp.pressing()) { - drivetrainLeftSideSpeed = 20; - drivetrainRightSideSpeed = 20; - IntakeStop = true; - IntakeSpeed = 20; - } else { - drivetrainLeftSideSpeed *= driveMultiplier; - drivetrainRightSideSpeed *= driveMultiplier; - } - if (IntakeStop) { - IntakeL.setVelocity(IntakeSpeed, percent); - IntakeR.setVelocity(IntakeSpeed, percent); - IntakeL.spin(forward); - IntakeR.spin(forward); - } - // check if the value is inside of the deadband range - if (drivetrainLeftSideSpeed < 5 && drivetrainLeftSideSpeed > -5) { - // check if the left motor has already been stopped - if (DrivetrainLNeedsToBeStopped_Controller1) { - // stop the left drive motor - LeftDriveSmart.stop(); - // tell the code that the left motor has been stopped - DrivetrainLNeedsToBeStopped_Controller1 = false; - } - } else { - // reset the toggle so that the deadband code knows to stop the left motor - // next time the input is in the deadband range - DrivetrainLNeedsToBeStopped_Controller1 = true; - } - // check if the value is inside of the deadband range - if (drivetrainRightSideSpeed < 5 && drivetrainRightSideSpeed > -5) { - // check if the right motor has already been stopped - if (DrivetrainRNeedsToBeStopped_Controller1) { - // stop the right drive motor - RightDriveSmart.stop(); - // tell the code that the right motor has been stopped - DrivetrainRNeedsToBeStopped_Controller1 = false; - } - } else { - // reset the toggle so that the deadband code knows to stop the right motor - // next time the input is in the deadband range - DrivetrainRNeedsToBeStopped_Controller1 = true; - } - // only tell the left drive motor to spin if the values are not in the - // deadband range - if (DrivetrainLNeedsToBeStopped_Controller1) { - LeftDriveSmart.setVelocity(drivetrainLeftSideSpeed, percent); - LeftDriveSmart.spin(forward); - } - // only tell the right drive motor to spin if the values are not in the - // deadband range - if (DrivetrainRNeedsToBeStopped_Controller1) { - RightDriveSmart.setVelocity(drivetrainRightSideSpeed, percent); - RightDriveSmart.spin(forward); - } - // check the ButtonL1/ButtonL2 status to control LiftMotor - if (Controller1.ButtonL1.pressing()) { - LiftMotor.spin(forward); - LiftMotor2.spin(forward); - Controller1LeftShoulderControlMotorsStopped = false; - } else if (Controller1.ButtonL2.pressing()) { - LiftMotor.spin(reverse); - LiftMotor2.spin(reverse); - Controller1LeftShoulderControlMotorsStopped = false; - } else if (!Controller1LeftShoulderControlMotorsStopped) { - LiftMotor.stop(hold); - LiftMotor2.stop(hold); - // set the toggle so that we don't constantly tell the motor to stop when - // the buttons are released - Controller1LeftShoulderControlMotorsStopped = true; - } - - // only tell the right drive motor to spin if the values are not in the - // deadband range - - // check the ButtonR1/ButtonR2 status to control Intake - /*if (Controller1.ButtonR1.pressing()) { - IntakeR.spin(forward); - IntakeL.spin(forward); - Controller1RightShoulderControlMotorsStopped = false; - } else if (Controller1.ButtonR2.pressing()) { - IntakeR.spin(reverse); - IntakeL.spin(reverse); - Controller1RightShoulderControlMotorsStopped = false; - } else if (!Controller1RightShoulderControlMotorsStopped) { - IntakeR.stop(hold); - IntakeL.stop(hold); - // set the toggle so that we don't constantly tell the motor to stop when - the buttons are released Controller1RightShoulderControlMotorsStopped = true; - }*/ - // check the Right Shoulder Buttons status to control TiltMotor - if (Controller1.ButtonR1.pressing()) { - TiltMotor.spin(forward); - Controller1UpDownButtonsControlMotorsStopped = false; - } else if (Controller1.ButtonR2.pressing()) { - TiltMotor.spin(reverse); - Controller1UpDownButtonsControlMotorsStopped = false; - } else if (!Controller1UpDownButtonsControlMotorsStopped) { - TiltMotor.stop(hold); - // set the toggle so that we don't constantly tell the motor to stop when - // the buttons are released - Controller1UpDownButtonsControlMotorsStopped = true; - } -} \ No newline at end of file +/*----------------------------------------------------------------------------*/ +/* */ +/* Module: main.cpp */ +/* Author: VEX */ +/* Created: Thu Sep 26 2019 */ +/* Description: Competition Template */ +/* */ +/*----------------------------------------------------------------------------*/ + +// ---- START VEXCODE CONFIGURED DEVICES ---- +// Robot Configuration: +// [Name] [Type] [Port(s)] +// Drivetrain drivetrain 1, 2 +// LiftMotor motor 18 +// LiftMotor2 motor 12 +// TiltMotor motor 3 +// Controller1 controller +// IntakeR motor 17 +// IntakeL motor 8 +// ---- END VEXCODE CONFIGURED DEVICES ---- + +#include "vex.h" +#include +#include +#include +#include +#include + + +using namespace vex; +bool speedin = true; +double driveMultiplier = 1.0; + +bool apressed = false; +bool bpressed = false; +// A global instance of competition +competition Competition; + +motor LeftDriveSmart = motor(PORT1, ratio18_1, false); +motor RightDriveSmart = motor(PORT2, ratio18_1, true); +drivetrain Drivetrain = + drivetrain(LeftDriveSmart, RightDriveSmart, 319.19, 295, 130, mm, 1); +motor LiftMotor = motor(PORT18, ratio18_1, true); +motor LiftMotor2 = motor(PORT12, ratio18_1, false); +motor TiltMotor = motor(PORT3, ratio18_1, false); +motor TiltMotor2 = motor(PORT10, ratio18_1, true); +controller Controller1 = controller(primary); +motor IntakeR = motor(PORT15, ratio18_1, false); +motor IntakeL = motor(PORT8, ratio18_1, true); + +bool Controller1LeftShoulderControlMotorsStopped = true; +bool Controller1RightShoulderControlMotorsStopped = true; +bool Controller1UpDownButtonsControlMotorsStopped = true; +bool DrivetrainLNeedsToBeStopped_Controller1 = true; +bool DrivetrainRNeedsToBeStopped_Controller1 = true; +bool IntakeStop = true; +void controllerBaseInput(); +void STOPCODE_DEBUG(); +// define your global instances of motors and other devices here + +/*---------------------------------------------------------------------------*/ +/* Pre-Autonomous Functions */ +/* */ +/* You may want to perform some actions before the competition starts. */ +/* Do them in the following function. You must return from this function */ +/* or the autonomous and usercontrol tasks will not be started. This */ +/* function is only called once after the V5 has been powered on and */ +/* not every time that the robot is disabled. */ +/*---------------------------------------------------------------------------*/ + +void pre_auton(void) { + // Initializing Robot Configuration. DO NOT REMOVE! + vexcodeInit(); + + // All activities that occur before the competition starts + // Example: clearing encoders, setting servo positions, ... +} + +/*---------------------------------------------------------------------------*/ +/* */ +/* Autonomous Task */ +/* */ +/* This task is used to control your robot during the autonomous phase of */ +/* a VEX Competition. */ +/* */ +/* You must modify the code to add your own robot specific commands here. */ +/*---------------------------------------------------------------------------*/ +std::ifstream ifs; +void goToPos(motor m, double vel, double pos); +void playback(); +int filenum = 1; +std::string instructions; +void autonomous(void) { + // .......................................................................... + // Insert autonomous user code here. + // .......................................................................... + /*STOPCODE_DEBUG(); + LiftMotor.setVelocity(100, percent); + LiftMotor2.setVelocity(100, percent); + TiltMotor.setVelocity(30, percent); + //Drivetrain.driveFor(6, inches);*/ + LiftMotor.resetRotation(); + LiftMotor2.resetRotation(); + TiltMotor.resetRotation(); + IntakeL.resetRotation(); + IntakeR.resetRotation(); + LeftDriveSmart.resetRotation(); + RightDriveSmart.resetRotation(); + + LiftMotor.setStopping(hold); + LiftMotor2.setStopping(hold); + // STOPCODE_DEBUG(); + // uint8_t * instructions = nullptr; + // Brain.SDcard.loadfile("recording.bin", instructions, 2500); // size in + // bytes + char filename[1] = ""; + snprintf(filename, 2, "%d", filenum); + std::string fn = filename; + fn += ".txt"; + ifs.open(fn, std::ofstream::in); + Controller1.Screen.print("File opened"); + timer tim; + tim.clear(); + while (std::getline(ifs, instructions)) { + while (tim.value() < 0.075) { + wait(1, msec); + } + tim.clear(); + playback(); + } + ifs.close(); + STOPCODE_DEBUG(); + Drivetrain.setDriveVelocity(40, percent); + Drivetrain.setTurnVelocity(50, percent); + // Drivetrain.turnFor(5, degrees); + Drivetrain.driveFor(15, inches, false); + wait(2, sec); + Drivetrain.setDriveVelocity(80, percent); + Drivetrain.driveFor(reverse, 16, inches); + wait(1, sec); + // Drivetrain.turnFor(-45, degrees); + STOPCODE_DEBUG(); + LiftMotor.startSpinTo(40 * 7, degrees); // unlock everything + LiftMotor2.startSpinTo(40 * 7, degrees); + waitUntil(LiftMotor.isDone() && LiftMotor2.isDone()); + TiltMotor.startSpinTo(45 * 7, degrees); + LiftMotor.startSpinTo(10 * 7, degrees); + LiftMotor2.startSpinTo(10 * 7, degrees); + waitUntil(LiftMotor.isDone() && LiftMotor2.isDone() && TiltMotor.isDone()); + IntakeL.setVelocity(100, percent); + IntakeR.setVelocity(100, percent); + IntakeL.startSpinTo(-5, rev); + IntakeR.startSpinTo(-5, rev); + TiltMotor.startSpinTo(5, degrees); + waitUntil(TiltMotor.isDone()); + // STOPCODE_DEBUG(); + STOPCODE_DEBUG(); + IntakeL.setVelocity(100, percent); + IntakeR.setVelocity(100, percent); + // IntakeL.startSpinTo(5, rev); // grab preload + // IntakeR.startSpinTo(5, rev); + Drivetrain.setDriveVelocity(80, percent); + Drivetrain.setTurnVelocity(100, percent); + + // Drivetrain.driveFor(24 * 3.5, inches); // drive to the row of 4 (if on that + // tile) + waitUntil(IntakeL.isDone() && IntakeR.isDone()); + // Drivetrain.turnFor(-90, degrees); // turn LEFT + IntakeL.spin(forward); + IntakeR.spin(forward); + Drivetrain.setDriveVelocity(50, percent); + Drivetrain.driveFor(24 * 0.8, inches); // grab 4 cubes + wait(1000, msec); + IntakeL.stop(hold); + IntakeR.stop(hold); // hold the cubes + STOPCODE_DEBUG(); + Drivetrain.driveFor(reverse, 24 * 1.6, inches); // go back + Drivetrain.setTurnVelocity(50, percent); + Drivetrain.turnFor(130, degrees); // turn RIGHT towards corner + Drivetrain.setDriveVelocity(33, percent); + Drivetrain.driveFor(24 * 0.8, inches); // go to corner + TiltMotor.spinTo(50 * 7, degrees); // tilt cubes + IntakeL.setVelocity(20, percent); + IntakeR.setVelocity(20, percent); + IntakeL.startSpinFor(-3, rev); + IntakeR.startSpinFor(-3, rev); // start pushing out cubes + Drivetrain.setDriveVelocity(25, percent); + Drivetrain.driveFor(reverse, 24 * 0.8, inches); // back away slowly +} +void playback() { + int y = 0; + y = instructions.find(" ", 5); + double vel = strtod(instructions.substr(0, y).c_str(), NULL); + instructions = instructions.substr(y + 1); + y = instructions.find(" ", 5); + double pos = strtod(instructions.substr(0, y).c_str(), NULL); + instructions = instructions.substr(y + 1); + Controller1.Screen.print(vel); + + // LeftDriveSmart.setVelocity(vel, percent); + // LeftDriveSmart.startSpinTo(pos, degrees); + + y = instructions.find(" ", 5); + double vel2 = strtod(instructions.substr(0, y).c_str(), NULL); + instructions = instructions.substr(y + 1); + y = instructions.find(" ", 5); + double pos2 = strtod(instructions.substr(0, y).c_str(), NULL); + instructions = instructions.substr(y + 1); + //Controller1.Screen.print(vel); + goToPos(LeftDriveSmart, vel, pos); + goToPos(RightDriveSmart, vel2, pos2); + + y = instructions.find(" ", 5); + vel = strtod(instructions.substr(0, y).c_str(), NULL); + instructions = instructions.substr(y + 1); + IntakeL.spin(forward, vel, percent); + IntakeR.spin(forward, vel, percent); + + y = instructions.find(" ", 5); + vel = strtod(instructions.substr(0, y).c_str(), NULL); + instructions = instructions.substr(y + 1); + y = instructions.find(" ", 5); + pos = strtod(instructions.substr(0, y).c_str(), NULL); + instructions = instructions.substr(y + 1); + goToPos(LiftMotor, vel, pos); + goToPos(LiftMotor2, vel, pos); + //LiftMotor2.rotateTo(pos, degrees, vel, velocityUnits::pct, false); + + y = instructions.find(" ", 5); + vel = strtod(instructions.substr(0, y).c_str(), NULL); + instructions = instructions.substr(y + 1); + y = instructions.find(" ", 5); + pos = strtod(instructions.substr(0, y).c_str(), NULL); + goToPos(TiltMotor, vel, pos); + goToPos(TiltMotor2, -vel, pos); + //TiltMotor.rotateTo(pos, degrees, vel, velocityUnits::pct, false); + //wait(10, msec); +} +/*---------------------------------------------------------------------------*/ +/* */ +/* User Control Task */ +/* */ +/* This task is used to control your robot during the user control phase of */ +/* a VEX Competition. */ +/* */ +/* You must modify the code to add your own robot specific commands here. */ +/*---------------------------------------------------------------------------*/ +std::ofstream ofs; + +void usercontrol(void) { + Controller1.Screen.setCursor(4, 0); + // Controller1.Screen.clearLine(); + Controller1.Screen.print(filenum); + LiftMotor.setVelocity(100, percent); + LiftMotor.stop(); + LiftMotor2.setVelocity(100, percent); + LiftMotor2.stop(); + TiltMotor.setVelocity(30, percent); + TiltMotor2.setVelocity(30, percent); + TiltMotor.stop(); + TiltMotor2.stop(); + LeftDriveSmart.stop(); + RightDriveSmart.stop(); + Controller1.Screen.clearScreen(); + Controller1.Screen.setCursor(0, 0); + Controller1.Screen.clearLine(); + Controller1.Screen.print("Normal Driving "); + bool recording = false; + bool donerecording = false; + timer tim2; + // User control code here, inside the loop + while (1) { + // This is the main execution loop for the user control program. + // Each time through the loop your program should update motor + servo + // values based on feedback from the joysticks. + + // ........................................................................ + // Insert user code here. This is where you use the joystick values to + // update your motors, etc. + // ........................................................................ + if (Controller1.ButtonY.pressing()) { + speedin = false; + driveMultiplier = 0.33; + Controller1.Screen.setCursor(0, 0); + Controller1.Screen.clearLine(); + Controller1.Screen.print("Precise Driving "); + } else if (Controller1.ButtonX.pressing()) { + speedin = true; + driveMultiplier = 1; + Controller1.Screen.setCursor(0, 0); + Controller1.Screen.clearLine(); + Controller1.Screen.print("Normal Driving "); + } + if (Controller1.ButtonA.pressing() && !apressed) { + speedin = !speedin; + apressed = true; + } else if (!Controller1.ButtonA.pressing()) + apressed = false; + + if (Controller1.ButtonB.pressing() && !bpressed) { + if (driveMultiplier == 1.0) { + driveMultiplier = 0.33; + Controller1.Screen.setCursor(0, 0); + // Controller1.Screen.clearLine(); + Controller1.Screen.print("Precise Driving"); + } else if (driveMultiplier == 0.33) { + driveMultiplier = 1; + Controller1.Screen.setCursor(0, 0); + // Controller1.Screen.clearLine(); + Controller1.Screen.print("Normal Driving "); + } + bpressed = true; + } else if (!Controller1.ButtonB.pressing()) + bpressed = false; + // uint8_t * data = (uint8_t*)malloc(sizeof(uint8_t) * 5); + if (Controller1.ButtonLeft.pressing() && !recording) { + recording = true; + + LeftDriveSmart.resetRotation(); + RightDriveSmart.resetRotation(); + LiftMotor.resetRotation(); + LiftMotor2.resetRotation(); + TiltMotor.resetRotation(); + TiltMotor2.resetRotation(); + IntakeL.resetRotation(); + IntakeR.resetRotation(); + if (Brain.SDcard.isInserted()) { + // create a file with long filename + char filename[1] = ""; + snprintf(filename, 2, "%d", filenum); + std::string fn = filename; + fn += ".txt"; + ofs.open(fn, std::ofstream::out); + } + tim2.clear(); + } + if (Controller1.ButtonRight.pressing()) { + donerecording = true; + } + if (Controller1.ButtonUp.pressing()) { + filenum ++; + Controller1.Screen.setCursor(4, 0); + // Controller1.Screen.clearLine(); + Controller1.Screen.print(filenum); + wait(250, msec); + } + if (Controller1.ButtonDown.pressing()) { + filenum --; + Controller1.Screen.setCursor(4, 0); + // Controller1.Screen.clearLine(); + Controller1.Screen.print(filenum); + wait(250, msec); + } + controllerBaseInput(); + if (recording) { + while (tim2.value() < 0.075) { + wait(1, msec); + } + tim2.clear(); + // count ++; + std::string thisReading = ""; + char output[12]; + snprintf(output, 12, "%f", LeftDriveSmart.velocity(percent)); + thisReading += output; + thisReading += " "; + // output[12] = ""; + snprintf(output, 12, "%f", LeftDriveSmart.rotation(degrees)); + thisReading += output; + thisReading += " "; + + // output[12] = ""; + snprintf(output, 12, "%f", RightDriveSmart.velocity(percent)); + thisReading += output; + thisReading += " "; + // output[12] = ""; + snprintf(output, 12, "%f", RightDriveSmart.rotation(degrees)); + thisReading += output; + thisReading += " "; + + // char output[12]; + snprintf(output, 12, "%f", IntakeL.velocity(percent)); + thisReading += output; + thisReading += " "; + + // output[12] = ""; + snprintf(output, 12, "%f", LiftMotor.velocity(percent)); + thisReading += output; + thisReading += " "; + // output[12] = ""; + snprintf(output, 12, "%f", LiftMotor.rotation(degrees)); + thisReading += output; + thisReading += " "; + + // output[12] = ""; + snprintf(output, 12, "%f", TiltMotor.velocity(percent)); + thisReading += output; + thisReading += " "; + // output[12] = ""; + snprintf(output, 12, "%f", TiltMotor.rotation(degrees)); + thisReading += output; + thisReading += " \n"; + ofs << thisReading; + + // data = (uint8_t*)realloc(data, sizeof(uint8_t) * 5 * count + 5); + // uint8_t* thisReading; + // thisReading = new uint8_t[5]; + /*thisReading = {(uint8_t) (LeftDriveSmart.velocity(percent)+100), + (uint8_t) + (RightDriveSmart.velocity(percent)+100), (uint8_t) + (IntakeL.velocity(percent)+100), (uint8_t) + (LiftMotor.velocity(percent)+100), (uint8_t) + (TiltMotor.velocity(percent)+100) + };*/ + //*(thisReading) = (uint8_t) (LeftDriveSmart.velocity(percent)+100); + //*(thisReading+1) = (uint8_t) (RightDriveSmart.velocity(percent)+100); + //*(thisReading+2) = (uint8_t) (IntakeL.velocity(percent)+100); + //*(thisReading+3) = (uint8_t) (LiftMotor.velocity(percent)+100); + //*(thisReading+4) = (uint8_t) (TiltMotor.velocity(percent)+100); + // int startIndex = count * 5; + // for(int i = 0; i < 5; i++) { + // data[startIndex + i] = thisReading[i]; + //} + if (donerecording) { + // Brain.SDcard.savefile("recording.bin", data, sizeof(data)); + recording = false; + ofs.close(); + } + } else { + wait(20, msec); // Sleep the task for a short amount of time to + // prevent wasted resources. + } + // controllerBaseInput(); + } +} + +// +// Main will set up the competition functions and callbacks. +// +int main() { + // Set up callbacks for autonomous and driver control periods. + Competition.autonomous(autonomous); + Competition.drivercontrol(usercontrol); + + // Run the pre-autonomous function. + pre_auton(); + + // Prevent main from exiting with an infinite loop. + while (true) { + wait(100, msec); + } +} +void STOPCODE_DEBUG() { + Drivetrain.stop(); + LiftMotor.stop(); + LiftMotor2.stop(); + IntakeR.stop(); + IntakeL.stop(); + TiltMotor.stop(); + TiltMotor2.stop(); + while (true) + wait(20, msec); +} + +/*void goToPos(motor m, double vel, double pos) { + m.setVelocity(vel, percent); + if (true || pos > m.rotation(degrees)) { + if (vel > 0 && !m.isSpinning()) { + m.spin(forward); + } + } else { + m.stop(); + } + + if (true || pos < m.rotation(degrees)) { + if (vel < 0 && !m.isSpinning()) { + m.spin(forward); + } + } else { + m.stop(); + } +}*/ +void goToPos(motor m, double vel, double pos) { + m.setVelocity(vel, percent); + if (vel != 0 && !m.isSpinning()) { + m.spin(forward); + } +} +void controllerBaseInput() { + + // int drivetrainLeftSideSpeed = Controller1.Axis3.position(); + // int drivetrainRightSideSpeed = Controller1.Axis2.position(); + double axisAngle = + atan2(Controller1.Axis3.position(), Controller1.Axis4.position()); + axisAngle *= 180 / 3.1415926; + + // if(Controller1.Axis4.position() < 0) axisAngle += 180; + // Controller1.Screen.setCursor(0, 50); + // Controller1.Screen.clearLine(); + // Controller1.Screen.print(axisAngle); + int drivetrainLeftSideSpeed = Controller1.Axis3.position(); + int drivetrainRightSideSpeed = Controller1.Axis4.position(); + int powerLevel = + sqrt(Controller1.Axis3.position() * Controller1.Axis3.position() + + Controller1.Axis4.position() * Controller1.Axis4.position()); + // left side + if (axisAngle < 90 && axisAngle >= 0) + drivetrainLeftSideSpeed = powerLevel; + else if (axisAngle <= 181 && axisAngle >= 90) + drivetrainLeftSideSpeed = int(powerLevel * (135 - axisAngle) / 45); + else if (axisAngle >= -181 && axisAngle <= -90) + drivetrainLeftSideSpeed = -powerLevel; + else if (axisAngle > -90 && axisAngle < 0) + drivetrainLeftSideSpeed = int(powerLevel * (45 + axisAngle) / 45); + + if (axisAngle <= 181 && axisAngle >= 90) + drivetrainRightSideSpeed = powerLevel; + else if (axisAngle < 90 && axisAngle >= 0) + drivetrainRightSideSpeed = -int(powerLevel * (45 - axisAngle) / 45); + else if (axisAngle > -90 && axisAngle < 0) + drivetrainRightSideSpeed = -powerLevel; + else if (axisAngle >= -181 && axisAngle <= -90) + drivetrainRightSideSpeed = -int(powerLevel * (135 + axisAngle) / 45); + + if (Controller1.Axis4.position() == 0 && Controller1.Axis3.position() > 0 && + (int(axisAngle) == 90 || int(axisAngle) == 0)) { + drivetrainLeftSideSpeed = powerLevel; + drivetrainRightSideSpeed = powerLevel; + } + if (Controller1.Axis4.position() == 0 && Controller1.Axis3.position() < 0 && + (int(axisAngle) == -90 || int(axisAngle) == 0)) { + drivetrainLeftSideSpeed = -powerLevel; + drivetrainRightSideSpeed = -powerLevel; + } + if (Controller1.Axis4.position() < 0 && + (int(axisAngle) == 180 || int(axisAngle) == -180 || + int(axisAngle) == 0)) { + drivetrainLeftSideSpeed = -powerLevel; + drivetrainRightSideSpeed = powerLevel; + } + int IntakeSpeed = Controller1.Axis2.position(); + if (IntakeSpeed < 5 && IntakeSpeed > -5) { + // check if the left motor has already been stopped + if (IntakeStop) { + // stop the left drive motor + IntakeL.stop(); + IntakeR.stop(); + // tell the code that the left motor has been stopped + IntakeStop = false; + } + } else { + // reset the toggle so that the deadband code knows to stop the left motor + // next time the input is in the deadband range + IntakeStop = true; + } + // only tell the left drive motor to spin if the values are not in the + // deadband range + if (speedin) { + Controller1.Screen.setCursor(2, 0); + // Controller1.Screen.clearLine(); + Controller1.Screen.print("Fast intake"); + Controller1.Screen.setCursor(4, 0); + Controller1.Screen.print(filenum); + } else { + Controller1.Screen.setCursor(2, 0); + // Controller1.Screen.clearLine(); + Controller1.Screen.print("Slow intake"); + Controller1.Screen.setCursor(4, 0); + Controller1.Screen.print(filenum); + IntakeSpeed /= 4; + } + + /*if (Controller1.ButtonDown.pressing()) { + drivetrainLeftSideSpeed = -20; + drivetrainRightSideSpeed = -20; + IntakeStop = true; + IntakeSpeed = -20; + } else if (Controller1.ButtonUp.pressing()) { + drivetrainLeftSideSpeed = 20; + drivetrainRightSideSpeed = 20; + IntakeStop = true; + IntakeSpeed = 20; + } else {*/ + drivetrainLeftSideSpeed *= driveMultiplier; + drivetrainRightSideSpeed *= driveMultiplier; + //} + if (IntakeStop) { + IntakeL.setVelocity(IntakeSpeed, percent); + IntakeR.setVelocity(IntakeSpeed, percent); + IntakeL.spin(forward); + IntakeR.spin(forward); + } + // check if the value is inside of the deadband range + if (drivetrainLeftSideSpeed < 5 && drivetrainLeftSideSpeed > -5) { + // check if the left motor has already been stopped + if (DrivetrainLNeedsToBeStopped_Controller1) { + // stop the left drive motor + LeftDriveSmart.stop(); + // tell the code that the left motor has been stopped + DrivetrainLNeedsToBeStopped_Controller1 = false; + } + } else { + // reset the toggle so that the deadband code knows to stop the left motor + // next time the input is in the deadband range + DrivetrainLNeedsToBeStopped_Controller1 = true; + } + // check if the value is inside of the deadband range + if (drivetrainRightSideSpeed < 5 && drivetrainRightSideSpeed > -5) { + // check if the right motor has already been stopped + if (DrivetrainRNeedsToBeStopped_Controller1) { + // stop the right drive motor + RightDriveSmart.stop(); + // tell the code that the right motor has been stopped + DrivetrainRNeedsToBeStopped_Controller1 = false; + } + } else { + // reset the toggle so that the deadband code knows to stop the right motor + // next time the input is in the deadband range + DrivetrainRNeedsToBeStopped_Controller1 = true; + } + // only tell the left drive motor to spin if the values are not in the + // deadband range + if (DrivetrainLNeedsToBeStopped_Controller1) { + LeftDriveSmart.setVelocity(drivetrainLeftSideSpeed, percent); + LeftDriveSmart.spin(forward); + } + // only tell the right drive motor to spin if the values are not in the + // deadband range + if (DrivetrainRNeedsToBeStopped_Controller1) { + RightDriveSmart.setVelocity(drivetrainRightSideSpeed, percent); + RightDriveSmart.spin(forward); + } + // check the ButtonL1/ButtonL2 status to control LiftMotor + if (Controller1.ButtonL1.pressing()) { + LiftMotor.spin(forward); + LiftMotor2.spin(forward); + Controller1LeftShoulderControlMotorsStopped = false; + } else if (Controller1.ButtonL2.pressing()) { + LiftMotor.spin(reverse); + LiftMotor2.spin(reverse); + Controller1LeftShoulderControlMotorsStopped = false; + } else if (!Controller1LeftShoulderControlMotorsStopped) { + LiftMotor.stop(hold); + LiftMotor2.stop(hold); + // set the toggle so that we don't constantly tell the motor to stop when + // the buttons are released + Controller1LeftShoulderControlMotorsStopped = true; + } + + // only tell the right drive motor to spin if the values are not in the + // deadband range + + // check the ButtonR1/ButtonR2 status to control Intake + /*if (Controller1.ButtonR1.pressing()) { + IntakeR.spin(forward); + IntakeL.spin(forward); + Controller1RightShoulderControlMotorsStopped = false; + } else if (Controller1.ButtonR2.pressing()) { + IntakeR.spin(reverse); + IntakeL.spin(reverse); + Controller1RightShoulderControlMotorsStopped = false; + } else if (!Controller1RightShoulderControlMotorsStopped) { + IntakeR.stop(hold); + IntakeL.stop(hold); + // set the toggle so that we don't constantly tell the motor to stop when + the buttons are released Controller1RightShoulderControlMotorsStopped = true; + }*/ + // check the Right Shoulder Buttons status to control TiltMotor + if (Controller1.ButtonR1.pressing()) { + TiltMotor.spin(forward); + TiltMotor2.spin(forward); + Controller1UpDownButtonsControlMotorsStopped = false; + } else if (Controller1.ButtonR2.pressing()) { + TiltMotor.spin(reverse); + TiltMotor2.spin(reverse); + Controller1UpDownButtonsControlMotorsStopped = false; + } else if (!Controller1UpDownButtonsControlMotorsStopped) { + TiltMotor.stop(hold); + TiltMotor.stop(hold); + // set the toggle so that we don't constantly tell the motor to stop when + // the buttons are released + Controller1UpDownButtonsControlMotorsStopped = true; + } +}