From 94d7b621ec2653baf673f9b3c1e47e202f05bf4b Mon Sep 17 00:00:00 2001 From: kieron Date: Mon, 23 Oct 2017 18:59:57 +0000 Subject: [PATCH] Started work on string utilities (strings.pas) git-svn-id: https://spexeah.com:8443/svn/Asuro@233 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5099520 -> 5099520 bytes lib/isr44.ppu | Bin 0 -> 3069 bytes lib/libpconsole.a | Bin 81668 -> 81668 bytes lib/libpmultiboot.a | Bin 29040 -> 29040 bytes lib/libpsystem.a | Bin 147760 -> 147760 bytes lib/terminal.ppu | Bin 0 -> 6419 bytes src/strings.pas | 92 ++++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 92 insertions(+) create mode 100644 lib/isr44.ppu create mode 100644 lib/terminal.ppu create mode 100644 src/strings.pas diff --git a/Asuro.iso b/Asuro.iso index bcee89bd1f778c1584a2a49691ecb0ac6c5ab77b..35a709e7b5a275c4036cd37a037cd6ac7e808bbc 100644 GIT binary patch delta 9100 zcma)?3rtjZ7RJ3OFyKH3kcWUgL_|ac99wEf34 zZbLe?7p-fw*=@DiZhdUiHpaCGsMIPTTCjkMiYN*cABcjw+;c_?na{LFW8%;6JKs6y zfA8E2Y~KB?&E~#8`{Unrk4=b*j*J{MAu=jHDsn<})I{wc4rRUjA9tHXCv$Icq9M^~ z&{{`N*XMtk)3yg{?Dg$ND|YDc_IzgzdhLz3g60K#*K4e9?{i_uXp6TwbYHN>a`ssl zJoM?ljdm|K-JfG!>F9n>s>(xE6R`$@9hhw(YM>Sq|!TmWOHe{Eh>*`Z#6T zbsTuM9VbuM6F|4*M5s&Obo+j3$4EadBQM*SV>Xt>SdXdsM3h$E>m;x#JV`6tiCE`J zisoAZ##C5AWBRxP#J*ZVv2{NJ-P|8Zw;8c&X5Bvm&$LtIx#AS?JaQ^nyP_w& zm5T=v`x6zP_Y>Id*FVv2>ktb&O)T#;(0#$I>NE%zc!uhwp8U%^`NT;p7X2ee11?3dZ@3a9&FA6&)H|mbJJO%t2|4( zF2vGmh^?#vo+UNp*@{@wIbw^?fgTQ@qaJRY1D=WJL;4?(>Bc-0J|N$mr(g}|L4l~B zX({u52J8T{hM&P8!fVMhuNLU`)fUn+>i{dPqk6@4!1HDuc^WPNUBLy?6eN+!*x%DJ_s~(g)T_5cH+lA?1%1Slwu86k2L8Ua%xn0@-+Bwod z?c8Vp{t1oL&TEZ;9bi`12t30tlBc)`bo(xnXVpc}YtSX?HR}?%_CCF|kyd#bcrLq4 zo<)c?G1E1HdihPfk|t2Erio_OjdYn;NVnz+=)K}fgqHIWVl%GNhry<+Kv%=e<{Dsg zu8~e6R)3AIOI4t-VRTe}>qDo0Mf_E6}ZPCH5I&4_Yb9=vzRy@fPVmN37=-Wf^lD=-$3f>`TO+ zG8@+hbnmoLmi>s?w$nL_YX@id{dPLLU$%p5rKg>)m609bdRW`Bhj#QUV9S4{GygGS zEzAs^CimwLq|aVPUdi@R)OS90bThx*>7%*t=med1bW*2&cR=M;cc}7?JD{6eclzG} z9n+0j=BZ_|)_1@~cd6?S?gIbDyX0?o53srSLNqhWqtDQEQ&!dte2=ZUM-?9311U4_ z6Z`9ZP@()jRd2r!_L$T~d;D`3(0$WIx{F<4n$ZvFyuJ1SWI6DlfOgysJePM5_#Dre zF>4O~9B=NXhV&1C$%2OzY|BH?Q0+r%sP`cVmi>r4*E|9ZRXn1Gx)96kp^I`|52#n( zL-ksFfM;?q>0a*z>}YSSHl(gzkTdNuX}JvcAaMycFxm+mB?KU=Zc&&+?3G%?~yaoQ!?P^ zk6P}=Rc^bX-jj!M?@NcFDo2KK{u_`cxiekr4z=#Q>sCmUJ(#ZWK-v-uZHF|)lk2YZ zMA}kMC6{*Xg=nD{Yl|Umvrw<$P&=G6?|`&pI6HfLBkddBOm{%q;myvzK1jRDhqXH) z?etM1`k#axW1bP8gw?)$5_b5alhEeNC&6O`%CLL{CoCR;&T7jDKC5~^KleatP10+ zYgZW3c80OD_c(MBEE~s%?89-$`Rcd%7!F{Jj#jIhr%*W6)&sV|eeIV^IF;7}j<}ZCWgA zSHvRik=TK6GI_IRyjh>(Wu^&LQiMw}UWy1QBBh9uVuBRWQp89RD@B|X@ls5bB0-8tQY1<- uS&Aenrbv-2#Z)PbQcRN~MT+TCn50ORB29{PDKeyZS&B?4vOX8t8~zU!I)+pL delta 9096 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 m6w{^tp6{lW1D9H diff --git a/lib/isr44.ppu b/lib/isr44.ppu new file mode 100644 index 0000000000000000000000000000000000000000..0b7ab5329463512042dcbbf6eedf43cea20b6e37 GIT binary patch literal 3069 zcmbVOUuc_E6u;+7zNBep*R@MFXIp0sDrQ={wh#VckgmaonKmXV5@m+0&1_iOlqOxN z%qJCn5fwp(APC}~eDg)$lsyc5Q3SyU5qN6en9$=2V&SBTR6ig*5B`E=7jjrndpwB{R`lQ+k+?Pp-DjIB}u&?GETD2tMc;g zwsjYe4?{-zu&s48#F;lUQ_7{DPIDsWV9autwe~cMWw%6g+a0$qFiQ!zi)=P@H<-Sh zd4z$JKvT_iW>h<~u(Wh8em0q#PcJ5)Imjb;aEhB1L-^sfdi_#qz0zE(uPTZR>o7^h zSO>!H@r9I|V6|3xLl@-@qb2va?u?{bi_n42hW(! zaqC0@3Ca1;ZIql*jK?9>6;#m>iG`!0z=k;m)76ZK1{)!DQ_*2tW=NqL$8MSOsc2ZM zP(W!Mr_-sTT)DLJh$vygm!2;u8qwl0h$E=(16!4ss$8?T6dl!DM{1en#|42R>c>ek z+GvrKcq1r+7z5iIS|2s~GD|_!LV$#b_#+2Rf5T03)0+0Mz$Rn~0IqX0bOVgVsWdFr z+lYI=gZh-K8`WmJP2aNmJ3#0J76)13^kTXYFA2_rJ}8~_Y@XkWGfNKx|AP_o_eXBO za>F`!hCsd1X(?lzq;SWMO`OZ`M#$ekxV4-yasbr7%~eKI0*A^4&m|PJ{w~oNBPW2S zlf9QHv$UK~m7YuTM$Q!rDfskX#R*0p1SW?33+%|#uIOY`a+$Y`-&G-;Qs@3uSVjq? zMBLE>^bq*Is=!l>JOeaMy8%RXemDW-(uGvt5j?<_tQhX9eYsrQuCUo-CV(l&!6*3J z8vx4RyrXAUEr1_@6zyM$--TxxnFpGl9Mmf*>Ixv2O3ugo3cxI5wTiHpz$GeroH`Fa z=;tbOkW&{Kxh75}-CcF=Q6`yQJSZ1Bj({^a0q)$3aRmRw!tu^6#?_VBNp0||F@U1@ z=Vvc)9cn1LN0%@bH{li2%PtNNt9^ENrN)Of=Hjjh&aYnQFVd2t_y;?fsc$zbrMcZE zgU4O)8;;Sp_tc1MTxGCxk4SyM7#%L& zgs_9zs$yv;S4n;38bY;q3~g1){C+y=K literal 0 HcmV?d00001 diff --git a/lib/libpconsole.a b/lib/libpconsole.a index d35881f21a6a3e886b564c2c98cc383b21db3578..2eec537e5f367b57804e12e456a3a54cbb9751d6 100644 GIT binary patch delta 979 zcmZ8gU1$?Q5N6M7wIS*$NA4Q6O^QK`p`O^91Og2fRMJw85D==A63IgzilPWbs7A>{ z5FZK)Ml5Ksh=`)G6OB-jTF?|~KtX~~O{EXwFIKSyp%m}3bC=V%{l59;+nL$f^eUfT ziW#DbgYYgN7;WcoyB&;_W34RElF|H(K_$|hGGe(2sJ#er2 zf|)Nt&$gcoLD+3)N>Dv_88@*L50Lj2FiG{ukW#K7%KPGQwj+ut?3UoG|E5Jb*kvQM z+Ha>99U`qdTe2aJtb>)%A&wQLyA5{L-DD8Eb7p=VoChNo?{krdh=iyNYTpxvK#0Ej zhqn=EJUoF{FsVjW`;h`Q(MIT*5j!0&h)@~0YA922I?z1@m*bBZqY2;P6-x31&QVE9 zFget)mNmfKodlLo-$0wZPlm!UcA-t~D9PR?WFy_u?uG9ot!OQz-eS$#Gg0qC1p3m` z$mnz2l`$U1b;(ew32i>3Gg#6GYUST#4L&z^pzaLZ^{w>^%QC46V6oh2mZv9A{cm-xf>x?Wg6EZEsAecbV0LbfSyBBvOuz3n zd(iq@z?HAXq912=;8rGL#giLI2EDX5E;=@o*mf3WT>zK$2Z{Ob*iYQFucQ6=ZkKCM TrxNf7^uJ5B4vWDMndSZhSnfA8 delta 979 zcmZ8gU1$?Q5N6M7wIS*$NA4Q6O^QK`p+;!E1Og2fRMJw85GYhBC6b3c6h#q=P>qs@ zAU+fpj9AcM5fMdWCmNw5wV)}~fPw^}no1wUU#wyaLMh&5=Psvj`+f7xw==V|=`}vR z#*ek|N~aQd(DtIKcA#Om47_b+oq-%6yatYzgpCFx!4Kgx#{Eedev2{QjM3mk58P|M zVCGBEv*Ra25O&*{5>(G!#!c?V1LS=LOj12Er2JP9<$ZBD+Yv<+c1!S8xoJ@jb=e55 z4%q2Mhe)f=mTZV48(=kbm}5ohZbMylHyOn4oS7d7=b?zj`&{H9A|Wb++V_MZ5TdXC z;cWyO`zP@VCe^6w08*eP+6X-}YNsOw5h{aM4P`1$2fL@?a{LivG~qkE!k;{WbMz-A zm>O;0Sa$~Q`u6$)Kyad5ze8JxUKqZ0zRp0? zod#1agZKWb#pwWu<_MbMRPhL+rLqiProLhKI{NkW6QbO>1k2Bs5ry6Q!WKCCxMXMJ z)8h-JKNj^u$w#2|Wtr3juvBg|%hQvm|F^nUK`YfG!Sl*7R5O$zFgHKXtf>ASX5ROj zJ!t(c;>y=z(T}sca4QqB;>k@UgI?Mj7adzkY$uDdE`ZA_L1O+p_7k`4?`S{1*X7#R S=?^FY{qIt(!(uQ*=D5F8TR1oX diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 77a953c2fb51e063c46401713cc04d58a8e23267..da5df31a9017c9daa7064be926b47767abc984ca 100644 GIT binary patch delta 510 zcmezHi1EWC#tCvP7UrhL8idu}D^W{G?BFw5) zl!d!WeDhWnZ8%SC^Dp&daGu2GJK91hJWa;Qf6e$O%diM-R@2?b$Y%<40>TBG6^u0C z%EdM(nYytcEWK$X#W*=%USRWEtBXi(xoPto?l1Ap@9jB}3=nc&1m}rwKJWG)N#%Jr zpm89#++pI|tl)hD$w+2jUbr@~%~}Dcka&C{i+Evf65D(#F$GD^Bee~Q2M)>k+3=7A VMamAQ$u)UgF#Y127v`O30szJhk(&Sj delta 510 zcmezHi1EWC#tCvP=BDNr8idu}D^W{G?BFw5) zl!d!WeDhWnZ8%SC^Dp&daGu2GJK91hJWa;Qf6e$O%diM-R@2?b$Y%<40>TBG6^u0C z%EdM(nYytcEWK$X#W*=%USRWEtBXi(xoPto?l1Ap@9jB}3=nc&1m}rwKJWG)N#%Jr zpm89#++pI|tl)hD$w+2jUbr@~%~}Dcka&C{i+Evf65D(#F$GD^Bee~Q2M)>k+3=7A VMamAQ$u)UgF#Y127v`O30sul?k{18~ diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 029a72afc092592994f3ffafa228cfd1ff172271..20c958e9fad951a7ddf55d40ec1ef19440e93ae1 100644 GIT binary patch delta 3160 zcmZWreN2^A7~gY)K)F{hruU)_xw$nL1ze^gnjoW;_z=nEVmgN6C1C~JK1`>55V}%l z!8)ze2Ps*kmCY+>dMq??e#M7Evlt=Pow*`y$QC0tmCon;zW4V2b$-wDoZoZKbAIPJ zZ=h~mpl)2ljEMAkb7vo%xg=f;kjLjDb@8M3m?$}^#Wrbna!rbdeW`Q3>GRV06zmy< zwRmC*Oh-L88;SpcVF;ar9!{JPX1O;h#L{Mye*ah;8tP3XbG#j4md9o*3(ndOYsvbw zW*HzLTA$X5ymRcRIx>osE;y_5GdA+%A{QV}svUh0X(#@S??YUpDv8JECN+!QB9Lr* zw98mOH(xh{P|e~3)Scf+8gl#07;Yuq`JWnbKGI)!*hHwmupfB`9pu;L-J!EkLUAVv zt_bH!D7JDXuCj6^u993SrHYGqe3?M9$_6AggVT&7%OB7(1yzXLk3B$@`jE6}LCbD)NP+jM}B-ZnL>- zX_@hb)l#!KpDf(}nZf5~^2tXF_jjS%TMm*C=#&d$d}XAl#hh7&idy7Zq!X5R>JgP! zh`d#aylq(|IyO0q_`eAedh4i4C+}At34Hfun5FGRxTWV*xFvWt+%nt|W@$NZF_8WX za$RKbhhDWUzTEx`H_Ys0sCUGI?*6P1??3iSPa8^bk)1(>_@yr+#aBL;69q)YSGtII zP-{{|_^*aU_^)A$fsOZLC`m{_{#KKK@5 zz5m;|ii}aURw|*-P65klvQ6gEm*Wf*n}o-*p^(;3hfh>3v<)*`JFgtAP5{+T`R>bT z)BUhdof^lO;Vu!laVDGuoIA_18IkemEF+^{S68B8VhQ>Ep#w<}cBL>gi91D)r-FH@ z-1I;ixB>Sp00(WK6YkN?UL7;NG9SXunT{+pOnken!Vl4iEC`wGV9c=CZ!F!5;5aztvu1V{$@1s>p|conr|jbES~u;|OQLM33-rex zT|vnb-yF)qu&VXn&8$F9+1AY5{9(dO^Gj*^SFp#BiL_y66CIAm9nkmmJqi`H=pZ!7 zSPn6RXVCDE4w`aEujVk-t7RirU+&Fm)m}kTdn|;6K}k}2LWfcBNzKBCie|%E?H4qG z_7EBdB~AS~9Y$Ao8#HXFX!c&ve*V)^iSP8mPvVH+HLIma#KAf3plMfax%CrS-{{f8V BOhNzv delta 3160 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 stringSize(str2) then begin + stringEquals:= false; + exit; + end else begin + for i:=0 to stringSize(str1)-1 do begin + if str1[i] <> str2[i] then begin + stringEquals:= false; + exit; + end; + end; + end; +end; + +function stringCopy(str : pchar) : pchar; +var + result : pchar; + size : uint32; + +begin + size:= stringSize(str); + result:= stringNew(size); + memcpy(str, result, size); +end; + +function stringNew(size : uint32) : pchar; +var + result : pchar; + +begin + result:= pchar(kalloc(size + 1)); + memset(uint32(result), 0, size + 1); + stringNew:= result; +end; + +function stringSize(str : pchar) : uint32; +var + i : uint32; + +begin + i:=0; + while byte(str[i]) <> 0 do begin + inc(i); + end; + stringSize:=i; +end; + +function stringConcat(str1, str2 : pchar) : pchar; +begin + +end; + +function stringContains(str : pchar; sub : pchar) : boolean; +begin + +end; + +end. \ No newline at end of file