From 4cf64375f8b6acbdb6ec68afe293c8f23b469a4c Mon Sep 17 00:00:00 2001 From: kieron Date: Tue, 1 May 2018 19:14:26 +0000 Subject: [PATCH] git-svn-id: https://spexeah.com:8443/svn/Asuro@644 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5230592 -> 5230592 bytes bin/kernel.bin | Bin 176356 -> 176356 bytes iso/boot/asuro.bin | Bin 176356 -> 176356 bytes lib/asuro.ppu | Bin 1130 -> 1130 bytes lib/console.o | Bin 63900 -> 63904 bytes lib/console.ppu | Bin 59729 -> 59729 bytes lib/kernel.ppu | Bin 4932 -> 4932 bytes lib/libpconsole.a | Bin 263570 -> 263570 bytes lib/libpmultiboot.a | Bin 29980 -> 29980 bytes lib/libpsystem.a | Bin 184472 -> 184472 bytes lib/shell.ppu | Bin 2062 -> 2773 bytes lib/terminal.ppu | Bin 10624 -> 10624 bytes src/console.pas | 35 ++++++++++++++++-- src/prog/shell.pas | 88 ++++++++++++++++++++++++++++++-------------- 14 files changed, 92 insertions(+), 31 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index 05b933ceb0705fa7a9b6141473b03fc182ebcea6..fad1c91d91889669f193ac10ace56e2f79b2f362 100644 GIT binary patch delta 16380 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 F`9CShj?n-B diff --git a/bin/kernel.bin b/bin/kernel.bin index 2431e279e3f2f27b3a6aa527ac80d6e9d6e89f92..9db5c5117ebcb00563ea809a9169f881b2d0af3d 100755 GIT binary patch delta 6569 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 diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index 2431e279e3f2f27b3a6aa527ac80d6e9d6e89f92..9db5c5117ebcb00563ea809a9169f881b2d0af3d 100755 GIT binary patch delta 6569 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 diff --git a/lib/asuro.ppu b/lib/asuro.ppu index 93ea42f1a1c30aae25c30a79f705acc650f2cdb0..9e433b7bb0a3fb9c333d086a1143169595a87c37 100644 GIT binary patch delta 13 UcmaFG@rq-DA5;6DjR8_D04V(hCjbBd delta 13 UcmaFG@rq-DA5+=pjR8_D04Qn&4FCWD diff --git a/lib/console.o b/lib/console.o index ac55a24e1438cb329d98bf865eed854705574ba6..7ef7d00b93145b9a1dea58fb4c64c4e22ba5c7cd 100644 GIT binary patch delta 3647 zcmY+{4NO#5761=fP=$`JBpyCtF;BuP(`79t2m^oZPRw!ZB6SYrHSk& zjHy)07L0N<7DN0fX(GB-bV^+DW3i>J(rVGx?WXA3t-Ge|ilVrRD=T~Myg$%2;r{M9 z_uP*+^WFm+`@?qkhi&#q&!NP9_Hj#+QeJIu4-?|O{G_BcXTm?Pilo2VJ^z=VV&#J_ zb8na{SqZT|Q|Nz=D!&wh4!DvYne*P5R-JmM-BC4-lL*)UabsVo(80NyzMlq%hK72= zFe%DDoVh^BF*BUaT=}zQcF>Tsin?8~K~KyrscP;9$B)0{lY_xq8NP_(*<)3rG1XLK zjC4~ujD@E17_%Ilo2GLUOl3FHbjf5>O){pKD$ZDHDwmOLDz~ZPjl@vep<)dVBMkd& zdU^40rH%f!c!vBZMJ;(#)kaWYNxIq|LC2P)8%+^XMbbyvaa5dbCr`G^XyJ?<8Miz^ zZ)9i4PTI%q_jE10QTEe@rH!gKk`kBgl)I^YS%UnKt}IKIhbby&zC1-w=Hzkdrkpf+ zjoNcEq^@Y*u+L7wbR`qw3m=`a*DKjruUZ?83*Hmp3_2)H}wMLCx>G8zj z1GRIH57fqEhN%qegZOe}xXT)DADwz>Wb6k$Cc`@DM*bW=S3-eDUZh0@bLCYkFL*{i zr1J$!Rb4d27P=Kh)8kA-H2DkN3wA~Se7F76h7Z%iJ!4YXhdk`GPI78wtV@r{up`t` zI8h#>FAC?#4q96jOU@#3X44QNA6|F+qAzZTh-XfN-fEhH)svF1JqpNk^iO65|4V@r0XS9Rkcaxa<8g0DUBhMN|^?eDwa=`JE>v0 zM>bI#w+E=3+ru=-?GbXX@W|t|klR!A9Jim-dTzg@Ju5ukE>kLHgqy>6+QV7Hmn>33 zmvxb@uE^!PGj-+5YU5biwz5fnL{F4@WRRXNoyPY_CHGI#uF{#j?itQ}O}(Xac%b87ND=Phc#{xLR0yg?)4R`>}#3ooJ!Fk`CvZy zC|nGeLqDqz_$=bJuw3Wsh4>xft?&bFsuayypA@Yz0q)F{;v@<_W%a~!h`-S>Z}7d2 z`K!93<@%p6-iz_uI-ViLJ>&;6jPHN4`Yo zc|kw&&m;dUohKn)Lw+stZ1@H~H4(@{=!)vh5G9WfYSqs%cPqY;$ z!** zd*MB8fIoWMSZm{Pa5|g=vtS-v4PSv3a0A>1cfmvO7(5HVV*~oT??Iv;8V>6~4wwjM z!A!UeR>LjuHXMZ8_4|$Y*#m>{gj2sZc;EsOm*5RJ02B24hU;d)MKBkZ!%BD_cEid1 z6zln3I3H$(UK>2H3W?|8TQC4a?;Wn&iMR!}!7t!>77;R9$)uvY3r~cP zz;w70J`2~uw_yWpf^C)o(Sbxa{0AI_;ghV5-OvXY!W{Sa$I=8>3ZQORyi2@eim#<({ew8!DFC9Z4^Iq8#h$zf2m(-~rhez$X<#Wh(8QJyaJ zKbNmaQm#8G;xGqWhaJ+njm<7!J^9?eDK202P`bQnQ#VI0-v(~CbbodG&Ye3QYxVfP z-^5X#J0Wp(d~k);(dc58s2d`5A4TU!wvxN?5Sl z*bpjJnBG)6g;iCL;R8y^y;|;BrDZc+SujObkt1uSe4R3~vU!aiS<~fdYRO8Mf3NhU z%m2_ro)~pClpghrDectDnQQHjy}Q;y?pZ@D*SThODyvz3KUi)y%QwGQZVi^(%<{LP z)b5Fu8z|t3k(()OVa%)-hX*%vjJvy81owEeO0Hq2k-?f_)~e~Tg)y>*p64~{hStal zj>|X4{b{IH8muihYj4syUgIEL<24QqjoTI+x5FIw-cYS3SgX}FX*ou7vOV$~ZOQ(X z3Jj;-?7ea)y_ypb6tNqFB{ur&Q*)oqn_^R{oCGE*dvubC^^S=2!DULU2Rw@uIJV z>06>bn7*vj$(G%8deJmlPtW9yrpUZl>F1t7`FVys!M!y3DILhmRGndTBkyUsjh@KQ z=6k4-+avUC{&e{vO)E&3?erA4|Drbw40)N(78vSF2Xz&US6@5GRT!_j9rOUx=b&Qd zwu7E894{;AkA()`@_*rW2VLa0iUzoSjm9rF6o znR|S;xBhQHS8zbLIlxcHd9^0`a4Ee`(o`iT3`Bli5={%4BE%NKN`~iHZ zzl?bLP9*A)*w3mhLNp>itYiMpk0JiZKkLMtNN;E;ugAZxBjGx@2{yqNcmoc=`-hwJ zQ{k`S8n_R>1HXV>re0BDHy79n$Ay{kBzO#-f*0Xc80x?Q;9R&6ZiBDDWAN0VeB0bc zBE*T4zzkRfm&0e_I`|UY2@k*{@GSfcUW2__FJF3FxVf<#Ccvq14)nlB;S+Eztbhb} z!MEYNuoZsFdi8gI6^ZN6;xa#w6OM~Hm zf=%!QJO_K>9eA&P=y<&c;Ztz!;A?{m4M_N50N#QtqRa(W!UOOKyag>I%yG#u1wIMO zU_JCUqH_v<0y|(2w2w3wj)M2WAHqUd3fI7LSPko7lc`s|PY6t07t;4WAXKho;w zza5EduooKq9|C>TOo8j+@8L<<2ET?kV0er*~>`)`swLmqCA(=*&YPOoy?OdoLjGwK-3xNjxN f9Gb;#C#|@ZH0ta{A@ccx@UI(Th)h zjF^2Bk#wHZjQ#9pYDF3y=ib0s^;+kNc}CXHJ*_RX=i4MVo{M-5GGpFvWHB|;j3S22 zuRuH<7qn?d?KwQbh2tC~*B(vPsp)n$G_rhHrO4+O}N zI8R`TM64JJT;}eTOx&&_Q10{d-CSR!jb2r7xM3xs1{6E3eCJ0M7Gq zRu!(O=+4r;#mW|O*^f}Eq6Z`Q72`AQa_(vl_EMFT4AjW9151FfQgkp9*qfKzh@ZOp0%DjJ^ot@`>-{+j?Jmz+Tx!q6^sTs~+jkZk32zvR~ zz@7K}PoR7DxOT0Dn1#U~ttkFQKG|YAe#`D3PukdEmT&u%Lo1udT z4IIsx=|Q8|9@vP>ESvWnev%yI2xLh1d>uHWKGIpgpb^&?w@7Dh@GS(fVYbf55G%4J zY~e_tPC-v_lRlvxh!?vsRmzjGixu@l`YyQ(Cw^XHh6h`gHf!BBQnG9q;L79SzpNbkiYn`<#ZP^udRtvG=n=BXBMZZEO3s?TcHs;4P zqnshDS`bD1)xWhI8%|DlVpHJ|daZedTH3FzK(U-$YY$vtM4TI2VoM<^y9f(S@g8)E zKaBe-yP|auW^BS~4B?N2W~J+!ZKG&j_W>1rou$)~_!j3>O{aPNdo;?84gSCu>Dd?n zxQl0!7vL$;$rFJp=56ZJOhz8abmG1sBWpHyI(Xaumm5Ax?$J`U#SvPnEz=7IF3E$f zO6wDf;2Rp)k3>(=S@anw zV_Qipj;rX##zXbW7D=U#VN%h9F=h35L__&~t;-;-<+;Fh2|b($w2A3R43KiPvKPCh zuW}reDO~vrN5tirCvb|vRo`Kf!0H8a5z2#4kHU^)EOD@totAK0luL7`qk}>^y4)4g M-!(z`!lT>!4-!T}WdHyG diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 66ea48be4812c9d4269b0074f0a6d3aede63a57c..9b1fcf8d75f0c9976ece353c7b0118d88d966d61 100644 GIT binary patch delta 21 ccmX@2c0_H10yBr?JLYixePV%|HJD`t08t?ZZvX%Q delta 21 dcmX@2c0_H10y9U@g?$MoJ1*?otidcJ003g52y_4d diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 07eb8ca33771cce8ed5cd57c7afeca2447154bf9..6be13aab7677563d9554760135a4754e99052354 100644 GIT binary patch delta 6860 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
e?drR zzJlOkzKXDp*#}`KvoFHe%zg;P%s7P8#8lBA;TjtTAlzccBghcqK)PKs6A+p*Uqfik z9E9)!b1=fI%pnL1m?IEYFh?R(FsC9^F{dG{3MH;W*uY$k@Fi0r>TJf+>daUS%A=hPU*y9 zglOgwgf7ft8rd*D7(0gWIvb87yu~a*n8rMTFqe4}A(MFuA)9#`VF&XJLO%0HgoDig zrG}YjX>OSp5gs#tMtGJ^`$QQ+SLQDW6Pdr!)bYWnxQUR0?=$O3*v@PsK{K0@A2UXRr1MA7MnW5A2MJx69VNWS>?UCvv%7??%vcGjUviwgeX)`-#yKqL^bPJk5MZLQm#6 z34NIFN*Ki)FJT<>eF-Vdi4qnwCrQ}AoGc-iIYmMtb6To|qg+UmaG5zn!VTt38bUe_ z6lpYs%ybEvOeGo=PHIJj z3xb#pUGNe!+68gUW-eI3jB&vVW*ZmWWA=1;#H?2Q{Bf(aM>0pPALD)gsJt<RO)`QDf5J0=HR=68&yZ>B5wZ(7m!#tCvPre>z58sgvRP3U?ke%kTUE5-Jh9Ec)Q`b=5}WU63!(5d87Hqb=btRYBD7gecON64DbNWB z7i?BA(ts-$+ni*&3KA5X1+1aQ09l3*BdVCVHW%2RfVwKcPhxY3BL_tD<^-1=P-8$o z_w$xyoSZK&usPQADpWZ{_#Y%dHV62rAlcd%cnXPE6#9rC;_(C*@y+?E$xt~E?`=je Yl1gyMdFR7JPHb~QK5}&V7M*7T0BVkj5C8xG delta 490 zcmbR9igC^>#tCvP#>U1b8sgvRP3U?ke%kTUE5-Jh9Ec)Q`b=5}WU63!(5d87Hqb=btRYBD7gecON64DbNWB z7i?BA(ts-$+ni*&3KA5X1+1aQ09l3*BdVCVHW%2RfVwKcPhxY3BL_tD<^-1=P-8$o z_w$xyoSZK&usPQADpWZ{_#Y%dHV62rAlcd%cnXPE6#9rC;_(C*@y+?E$xt~E?`=je Yl1gyMdFR7JPHb~QK5}&V7M*7T0DYB+7ytkO diff --git a/lib/libpsystem.a b/lib/libpsystem.a index 0e724d2496b9ebbea5c79b3100343bd1a4ea0790..58ba1d90ededf0242027a5e3d931ffffbca9bb32 100644 GIT binary patch delta 3978 zcmZu!dr(wW7@zNo-~({i2jL4h(=yU+wGdN>&vkQS!Jfnntx^MkPBdPp}(BS%>lZ5X#Vg!G1Se%-b*nqEow z%N1yI*ljY|=JxBpO)>N*cLms!g-a%nYBExQHcqaSA*jjdA)=-8z1-7HLb`jp*lWOy z(_kMQrsT*$rPSF<$&sU!YBI8QU*1jbnf_H&dwOWz3D957ixGLiS?bFxlRnjCjHV|S z+z284n01OB+L- z4qJ1k6`yoG4j#Zk3)UaA9Lb>hAkt zROFU0>dCEPRND41Dwjx#rWRrNGe1?~Pc1TszrI+6zi0dQ^y*#=e_pXE{Po45@bgqf z=#B%mMj_tWUn9#(Br$?I4jdMdF#Mr`k_b^R0>+j~NF8NPQOoWlvNDm1l(kipkwrHj zmnX*{XX%@d*BN!Z!hx35 zqslNU+8;*sx*A3e{635tdEG?OxLfk}4y&sI{oYN}(c*4BY61=YMv*o_EKb>eBxX2`3}eY+rs_2~ez%@K|X z;wn|kn)$jgi~ylyE*x#=^a?WDII zzSe7|dP!wZm`^%&2ayVH)i>lM!=V2ia*!?PqagG22T{Gu`vl1H<)o}%?nM@>8vtL( zh;vL38!=`_o(3%9R$XBSooW;A8LJqqAoC@wJsXpPdm^d!v>k?Q<{SZgRF)AF#MS)X zu-F&X8m?=+O3X3Jlr71*#wd0KHy(B?r&ejR$*$SZL$~#B%SzK> zgP7p2Ds#IbD^#A$KM@iljDAkI3_+PHqcR3e37!j=5nPtercHxxp|u7_ko$An@6qha zEJzUBu*NsQ5i(j-csiIKplqXRK*bGkn}HQT;let*zvZM!*HTl z6%>!tloG3lh^v^ZG`Jm>xvY4GLre(I?W8hQMa)&MvNZF!+KH1YOE{cEO3%PWqx_bg zRyKrBFr4tp^2+>H32nKcj2My@q58{GXx}AeBZP252^C&bLKWXBBZj0!$aYf-)&8h# zgb+?BA>S`bDDbl~Vn|wqQtwKk$UDkL2;qbjDr=CyhQx$ND);E;#| zhXmnu9%%ixJ&Mh5gmSQn?>p1=@H|wipEW5}hNM~c!9NyRgoZ4ueFSI2OPUizGrJS=Nn9if=iS`ct|k`hfB6%<9%BKlF9RTQxhT{gDW zM6H{kL=UD1MUk|Kww-7dMJ(c)(lv_Ro5X(d oU0>|e0;WfI)p>1$fW}{6;;+`ke_sLjU6v5P;U8mHFKboW|20D^`v3p{ delta 3978 zcmZu!dr(wW7@zNo-~({i2jL4h(=yU+6%kX1&`i@}+!>9*H}NnXe5{Ud9aAc`G()d> ztcF}4X&EVblp~_JJ}|%)Dbq~JXvVRrkZ>j$hivLQ_nfnPFAIO&-|u|q_nq%?zO(G! z+i~~aj`?w62?+^9zv-LT&-l>2&KO$Ouc?iJsMlGc>Fb}17Hgj7Op>1pCu!lpMoIL!ClT;-(>YipvtsfyNVp|DW`k9o= zdShB7-JD!4oEbDdlk$0RBh4Qd1BR7%><_|<>ml7FjU2_9w0^>YAkyn6_;uT=NLroh zmpjnrnA>Es!|m67TcYSs?lQ0^iI7YY)ubl_ZA`0`DX2;BA+n`&U+x(uA>BPg_!=RaDJ4rOIdYUzO?tNO%e}=T)4z&nPmj(&1^TPGQKAmGN`1M-GNzjJG4%Ap zn?awx<_#w;M{?+!H`HQUyU-PRr@@}kG8x3t9b)x{!q@1fO>$?Dy7ztv z6}~NmdU|^ZHEw4JHHS!wrW9cMGd@-6Pbn~`ziz)sf6w;q>D2?6{@neh^w;eVrk|H8 zOm`f;j*`C(lhDS z5_xh=a;Cnuq}J%;rKc{mRtMu6oHuTVox~m1B52u#QqbQ#FQX9aO|nMv5>BM`<%e5R zk1Il`NPh^`>uLx!@cR&I)O8a@V{XgaJG{0M^!v9=M~k`rsO349-ZAavQ)D82=T}AX zx%JB3IWk)uRs1FqpBtIFx4};{>SbFS6!kV7l!f6IwD5r$>V*%)-OYa}=MVKXJAvju zQvKp-?jYUC?8Q^xzg5;#$DgQyAeBvQ5m3e3gxw4S)hC|jY=*pY?%M-7tWO7!V~%i4 z5Lc4?Ef7UMo&#>`ni2+N(mq(wIVog5@c~%e1w>|<%?_r)h`g*g!|Rr8w3|LN(oTBY z;cLBSnwM1cgaxEicMzrER(*p(GEDm4!2sF9J_<5Ve-Pcvyib8_Urx&Yk(N<{Sz8RFx4E#8v#> zu;>@n9Hpu%G_?q47MlpPlmWKW1bT(Lr|vD=!^kV1LwkR1h=KK>C>TGaIe7;(AUIg;-GB810Wi%ao#slZT z_JT39gD)Y&Ya@%Eyd2~$;bc4ERkZGh>ttYQYlH51kK=;5$63J!3nqw-p0~3Vd2kkN zi7nh4@~mW&br<4FhBrmtQs((U9fyB9fz%a%ot18fN-?In$~^MlE+{u%+k#H*Sk+Fb zFfB4%3{)76S=1*MOc0kdlvOTKQBDSipUP#_0k|wxF-18f^-GzTm_sUed@SWKT-dJ~ zisxx+p*2FpmCRKXaEEO!JD%Yu7KGP!O0nu9<|^o(|khBQdZb_jVKPnp` zgbPZ@_lpv0_*oe-BrQTI_oPtxU1cMLa6t+c*UMqZoPQ`AH4Ow>MF`N%=c~%#uiK)$^ z+i2>>A!(M(X{VV_icm<7Yp$^p~z=+mk2hfuZH;)&w)wS6|ZDx4G730DP;+M&SNJADP02-#Nw>G zocydIMe+_)qSZqKqDWdq`;V}SA{L_IBe`hH$;50gDbeK70Z}9^q92X3iXs-G%g47` zsP&VS=#kWbD3TV@wv(-*h(%tLyGF44lX+f4%GEes3CB$f2qUS4Gv;Dmm(30cb4(D6 z)23zc(}olajbx{8n-dU4Qi|f6o5}9vYV!90hXkScIZ!-by9i|SVl7hq!^3Tx7h7x* z`o-IHZHacFm7wrNlW$YQ%7A|))o3tYJl8tS^5P+uFJ8o38oqcfqcR@y=C`$3qr}1Z pyS~JyHJBdV)fcsm0viAN5`UEzZ5Ru9@QQ@^8~zD)^@>)h{SPIpC8GcU diff --git a/lib/shell.ppu b/lib/shell.ppu index 18f1e463fceccc872d06dedfd5818012fb5dd99d..37eb5c08cde2b200dc935aeb7f81fc2fbfd50f09 100644 GIT binary patch literal 2773 zcmcImO>7%g5Pq}%&7YgpO(;kSRqBGM`L9|ePS|UgnEDU@s4A6kH;HMjICkW9)ds|c zazzL(ATAt$3REG)3DE=M&XEcZNT`AXl|a1#A)$o%=IyTSC=hetN$+pwn|br*&CG7G zSbgl+asL%kKJ{gBUVS{O)ZMpzryu!Z=Ghsg)GT+jAa|mGeWBiL`mwHp8o|mK5$eNh zmi@-{ThE;X%@?%S?QVVbC-a#%YfoOihiNLb)Na}BWQ=$uN&7t0d1T+1w#7dw!yne zP=aI4#^Rc$TCfw1LNbPB9FdW4$@FCz$7C!W1SRU@F<3rRuB3C}O1hNG}u#AY+fM=F4Gg8}TA(PJHOF(Z3ZSxryS=L$aFqxCJvf$ebyM0YJ{=*D^LoV(m{!!LwM)Y6J8$+$j!Pf0HB#A@(Ky`&s?#?QLU%_xnJj zvtt3xqtWt0I-9L!@|g-08Qzh`hDI>$58-Tj`z@?UsI-aHi()T@MAr{aT#^G02m`h| z<-+4k3kT^HGIiD9+zyD)l&~ZNIWL(U5i*Ju&B7F~hA=NGJgp5&x0EnzR#=kt)2MF# zMyt_P6xMeq1tB!rf`PPOZ*-{K!8znPgEpXR4YWAGUvqccw^$hL`$?%hE_vtdI2tx= zZ_`a?{{RSa%Iju~;Spjrd5}Kz@Xw;-13taw=*093hN0r)R|ftLG(~sDN2-)KJ-i_= zK}Q_;J5c8|!cB)V1U`NUXgc8;@}LgXLOxfhmeXc7W1fnciBbynySGRd3fXibzn7_a z+^phn?m;9l-DjcPR((^lznFs>^VsS7NA6rdT@ z(TR#>uOzL`g4J4X))h_Y+QjUZ9OqY;JUsG#B2~9ny6rU=AMx<(4*nGn4|7=m%A(b& zneAq~!`Ip8;a?TJQm^rhVox*pe~F|ouQ9Uj2~2tduR8*7djj}(iZ}*&0#lyAJC4A6 zJnQm^FM~hTu`YS3PwE5a9%4F8qacqLTDkT`yKXicODkSplDfty4rxZAoQ}3zNz1Nl zO-@vj`jj#E2?jNMzu8`0Wv|wf*3!!PPWxhOnO{?f45`l;i$+`WyI0n`!I8HA1|ZcE A@&Et; delta 739 zcmX|;O=uHQ5XWbB_wDAxY|@X7)j~C?0U-#AtrrhflR^=TF=-F>U>h`w7?aW{wg>4! zk)ERI9E)B&c$0#cic&p@S0m!VgGWnGg5XU=|8F{_QKd!cRNl*=}zXDYP{N=yU?jz>TH#VlPL0l0dH3>S7s)s&GJm) z3ZvL3Yz*2;ndnKz9F@16kT#!|gb`s|H#sJGW1L-`JN-V$@|Z`YYk2a+JYch)B{>WE z(!9Y%Nn7VJTD2ZJLujz4#8GE*7V<@{^Ej7Q@C)s}PK*dqDk{Is{p*&JHRY;DsIJL| znseJBiMWoFB1hvJNT2F5{=q4G%6+c$p1lZ=&yZhqiO1xfy|C&pVHs*j`5@D#ABkQg z#)!-;qLEF(^9r~lA@`=oeLx%pm-D$kc&lE!eh29B5dGLgKOv3))zbJg4=>Lg+x@0> z&%OuO+=1NHC7zHUPEls8lygW+&z5BL;ObB0qgto&%4APf8`tVJ;)Dv0B>s&uZbEF_8!tcA-m~P%})e7~SS8ri8AvFvN8v)f1A8R(wRa>>-OA{fJk;M1& delta 13 UcmZn&ZU~+b!gOWv#xN~S04G-kUH||9 diff --git a/src/console.pas b/src/console.pas index 409fa063..ddff69ff 100644 --- a/src/console.pas +++ b/src/console.pas @@ -759,7 +759,34 @@ begin { Handle any Clicks that have happened since last redraw } if UnhandledClick then begin if UnhandledClickLeft then begin - SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + + SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if SelectedWindow <> 0 then begin + if WindowManager.Windows[SelectedWindow] <> nil then begin + if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow); + end; + end else begin + SelectedWindow:= ExitMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if SelectedWindow <> 0 then begin + closeWindow(SelectedWindow); + end else begin + SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin + if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin + if WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick <> nil then begin + deltax:= MouseXToTile(WindowManager.MousePrev.X) - WindowManager.Windows[SelectedWindow]^.WND_X; + deltay:= MouseYToTile(WindowManager.MousePrev.Y) - WindowManager.Windows[SelectedWindow]^.WND_Y; + WindowManager.Windows[SelectedWindow]^.Hooks.OnMouseClick(deltax, deltay, true); + end; + end; + if (WindowManager.Z_Order[0] <> SelectedWindow) and (WindowManager.Windows[SelectedWindow]^.ShellWND) then begin + FocusZOrder(SelectedWindow); + end; + end; + end; + end; + + {SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; if (SelectedWindow <> 0) and (WindowManager.Windows[SelectedWindow] <> nil) then begin //OnClickHandler(Left) if (WindowManager.Z_Order[0] = SelectedWindow) or (WindowManager.Windows[SelectedWindow]^.ShellWND = false) then begin @@ -773,7 +800,7 @@ begin FocusZOrder(SelectedWindow); end; end else begin - if SelectedWindow = 0 then SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; + SelectedWindow:= WindowTitleMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; if SelectedWindow <> 0 then begin if WindowManager.Windows[SelectedWindow] <> nil then begin if WindowManager.Windows[SelectedWindow]^.ShellWND then FocusZOrder(SelectedWindow); @@ -783,7 +810,9 @@ begin if SelectedWindow <> 0 then begin closeWindow(SelectedWindow); end; - end; + end;} + + end; if not UnhandledClickLeft then begin SelectedWindow:= WindowMask[MouseYToTile(WindowManager.MousePrev.Y)][MouseXToTile(WindowManager.MousePrev.X)]; diff --git a/src/prog/shell.pas b/src/prog/shell.pas index f98a4760..00ba82ef 100644 --- a/src/prog/shell.pas +++ b/src/prog/shell.pas @@ -3,16 +3,18 @@ unit shell; interface uses - Console, RTC, terminal; + Console, RTC, terminal, strings; procedure init(); implementation var - Handle : HWND = 0; - Colors : uint32; + TaskBarHandle : HWND = 0; + DesktopHandle : HWND = 0; + Takbar_Colors : uint32; Explore_Colors : uint32; + Desktop_Colors : uint32; procedure Draw(); var @@ -23,30 +25,30 @@ var begin DateTime:= getDateTime; - console.clearWNDEx(Handle, colors); + console.clearWNDEx(TaskBarHandle, Takbar_Colors); - console.setCursorPosWND(0, 0, Handle); - console.writeStringExWND(' TERMINAL ', Explore_Colors, Handle); - console.writeCharExWND(#6, Colors, Handle); + console.setCursorPosWND(0, 0, TaskBarHandle); + console.writeStringExWND(' TERMINAL ', Explore_Colors, TaskBarHandle); + console.writeCharExWND(#6, Takbar_Colors, TaskBarHandle); for i:=0 to 9 do begin s:= getWindowName(i); if s <> nil then begin - console.writeStringExWND(s, Colors, Handle); - console.writeCharExWND(' ', Colors, Handle); - console.writeCharExWND(#6, Colors, Handle); + console.writeStringExWND(s, Takbar_Colors, TaskBarHandle); + console.writeCharExWND(' ', Takbar_Colors, TaskBarHandle); + console.writeCharExWND(#6, Takbar_Colors, TaskBarHandle); end; end; - console.setCursorPosWND(150, 0, Handle); - if DateTime.Hours < 10 then writeIntExWND(0, Colors, Handle); - writeIntExWND(DateTime.Hours, Colors, Handle); - writeStringExWND(':', Colors, Handle); - if DateTime.Minutes < 10 then writeIntExWND(0, Colors, Handle); - writeIntExWND(DateTime.Minutes, Colors, Handle); - writeStringExWND(':', Colors, Handle); - if DateTime.Seconds < 10 then writeIntExWND(0, Colors, Handle); - writeIntExWND(DateTime.Seconds, Colors, Handle); + console.setCursorPosWND(150, 0, TaskBarHandle); + if DateTime.Hours < 10 then writeIntExWND(0, Takbar_Colors, TaskBarHandle); + writeIntExWND(DateTime.Hours, Takbar_Colors, TaskBarHandle); + writeStringExWND(':', Takbar_Colors, TaskBarHandle); + if DateTime.Minutes < 10 then writeIntExWND(0, Takbar_Colors, TaskBarHandle); + writeIntExWND(DateTime.Minutes, Takbar_Colors, TaskBarHandle); + writeStringExWND(':', Takbar_Colors, TaskBarHandle); + if DateTime.Seconds < 10 then writeIntExWND(0, Takbar_Colors, TaskBarHandle); + writeIntExWND(DateTime.Seconds, Takbar_Colors, TaskBarHandle); end; procedure OnMouseClick(x : uint32; y : uint32; left : boolean); @@ -62,20 +64,50 @@ end; procedure onBaseDraw(); begin - clearWNDEx(0, console.combinecolors($01C3, $A55F)); + clearWNDEx(DesktopHandle, Desktop_Colors); +end; + +procedure Command_Background(Params : PParamList); +var + p1 : PChar; + +begin + if ParamCount(Params) > 0 then begin + p1:= GetParam(0, Params); + if StringEquals(p1, 'show') then begin + console.setWNDVisible(DesktopHandle, true); + console.writestringlnWND('Background enabled.', getTerminalHWND); + end else if StringEquals(p1, 'hide') then begin + console.setWNDVisible(DesktopHandle, false); + console.writestringlnWND('Background disabled.', getTerminalHWND); + end else begin + console.writestringlnWND('Invalid option.', getTerminalHWND); + end; + end else begin + console.writestringlnWND('Invalid number of parameters.', getTerminalHWND); + end; end; procedure init(); begin - colors:= console.combinecolors($0000, $FFFF); + Takbar_Colors:= console.combinecolors($0000, $FFFF); Explore_Colors:= console.combinecolors($01C3, $07EE); - Handle:= Console.newWindow(0, 63, 159, 1, 'SHELL'); - console.bordersEnabled(Handle, false); - //console.clearWNDEx(Handle, colors); - console.setShellWindow(Handle, false); - console.registerEventHandler(Handle, EVENT_DRAW, void(@Draw)); - console.registerEventHandler(Handle, EVENT_MOUSE_CLICK, void(@OnMouseClick)); - console.registerEventHandler(0, EVENT_DRAW, void(@onBaseDraw)); + Desktop_Colors:= console.combinecolors($01C3, $A55F); + + DesktopHandle:= Console.newWindow(0, 0, 159, 63, 'DESKTOP'); + TaskBarHandle:= Console.newWindow(0, 63, 159, 1, 'SHELL'); + + console.bordersEnabled(TaskBarHandle, false); + console.setShellWindow(TaskBarHandle, false); + + console.bordersEnabled(DesktopHandle, false); + console.setShellWindow(DesktopHandle, false); + + console.registerEventHandler(TaskBarHandle, EVENT_DRAW, void(@Draw)); + console.registerEventHandler(TaskBarHandle, EVENT_MOUSE_CLICK, void(@OnMouseClick)); + console.registerEventHandler(DesktopHandle, EVENT_DRAW, void(@onBaseDraw)); + + terminal.registerCommand('BACKGROUND', @Command_Background, 'Hide/Show background - usage: BACKGROUND '); end; end. \ No newline at end of file