From 9c2a5c976eb7c5c2c204b143d9b73f6739f6741d Mon Sep 17 00:00:00 2001 From: kieron Date: Mon, 23 Oct 2017 18:41:10 +0000 Subject: [PATCH] Param parsing within the terminal implemented. git-svn-id: https://spexeah.com:8443/svn/Asuro@232 6dbc8c32-bb84-406f-8558-d1cf31a0ab0c --- Asuro.iso | Bin 5099520 -> 5099520 bytes bin/kernel.bin | Bin 45284 -> 45284 bytes iso/boot/asuro.bin | Bin 45284 -> 45284 bytes lib/PCI.ppu | Bin 15196 -> 15196 bytes lib/console.ppu | Bin 20005 -> 20005 bytes lib/idt.ppu | Bin 2969 -> 2969 bytes lib/irq.ppu | Bin 930 -> 930 bytes lib/isr0.ppu | Bin 1981 -> 1981 bytes lib/isr1.ppu | Bin 1981 -> 1981 bytes lib/isr10.ppu | Bin 1994 -> 1994 bytes lib/isr11.ppu | Bin 1994 -> 1994 bytes lib/isr12.ppu | Bin 1994 -> 1994 bytes lib/isr13.ppu | Bin 2093 -> 2093 bytes lib/isr14.ppu | Bin 1994 -> 1994 bytes lib/isr15.ppu | Bin 1994 -> 1994 bytes lib/isr16.ppu | Bin 1994 -> 1994 bytes lib/isr17.ppu | Bin 1994 -> 1994 bytes lib/isr18.ppu | Bin 1994 -> 1994 bytes lib/isr2.ppu | Bin 1981 -> 1981 bytes lib/isr3.ppu | Bin 1981 -> 1981 bytes lib/isr32.ppu | Bin 1983 -> 1983 bytes lib/isr33.ppu | Bin 1983 -> 1983 bytes lib/isr4.ppu | Bin 1981 -> 1981 bytes lib/isr40.ppu | Bin 1972 -> 1972 bytes lib/isr5.ppu | Bin 1981 -> 1981 bytes lib/isr6.ppu | Bin 1981 -> 1981 bytes lib/isr7.ppu | Bin 1981 -> 1981 bytes lib/isr8.ppu | Bin 1981 -> 1981 bytes lib/isr9.ppu | Bin 1981 -> 1981 bytes lib/kernel.ppu | Bin 3288 -> 3288 bytes lib/keyboard.ppu | Bin 3916 -> 3916 bytes lib/libpconsole.a | Bin 81668 -> 81668 bytes lib/libpmultiboot.a | Bin 29040 -> 29040 bytes lib/libpsystem.a | Bin 147760 -> 147760 bytes lib/lmemorymanager.ppu | Bin 3669 -> 3669 bytes lib/mouse.ppu | Bin 1236 -> 1236 bytes lib/pmemorymanager.ppu | Bin 3990 -> 3990 bytes lib/scheduler.ppu | Bin 3249 -> 3249 bytes lib/util.ppu | Bin 6729 -> 7150 bytes lib/vmemorymanager.ppu | Bin 5430 -> 5430 bytes src/terminal.pas | 77 +++++++++++++++++++++++++++++++++++++++-- src/util.pas | 14 ++++++++ 42 files changed, 89 insertions(+), 2 deletions(-) diff --git a/Asuro.iso b/Asuro.iso index 05548f2b3dfdae4aad92615e797d2b419f651806..bcee89bd1f778c1584a2a49691ecb0ac6c5ab77b 100644 GIT binary patch delta 15325 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 Rj>q5_1V@ft4Ib>W{~sGQRxJPk diff --git a/bin/kernel.bin b/bin/kernel.bin index fabe44bfb094a051e0b14a63dc5563332778fbda..196b8a04aa159d9a8248938e3ae8d3c5b254c64a 100755 GIT binary patch delta 5490 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 L_&^kw&VKwaU`jR^ delta 4773 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 diff --git a/iso/boot/asuro.bin b/iso/boot/asuro.bin index fabe44bfb094a051e0b14a63dc5563332778fbda..196b8a04aa159d9a8248938e3ae8d3c5b254c64a 100755 GIT binary patch delta 5490 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 L_&^kw&VKwaU`jR^ delta 4773 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 diff --git a/lib/PCI.ppu b/lib/PCI.ppu index 88fe6ba470089d2f6f493fe4d4eeb2a401cebbbb..a81ed3b3fc3b14e36430dae306d6006fb047f4dd 100644 GIT binary patch delta 19 acmcapcBgDY4hIh_Lr07LH~)<#FRTDn;0S>L delta 19 bcmcapcBgDY4#!oUT{kV5!cT21d0_IO9wdjBI-&nKK7XWNk3L^jj delta 21 dcmZ2FhjHl~#t9`H;dS*lEttYjZLC@83jkux2|NG* diff --git a/lib/idt.ppu b/lib/idt.ppu index 6466255521c3de8bb5aa3c6950e4b4e40c9d5747..5f7a15e4607558fc6c3b3718816963876cd5bb80 100644 GIT binary patch delta 19 acmbO!K2v-`4hIh_Lr07LH~)<#s@woRAqGnT delta 19 bcmbO!K2v-`4#!oUT{kV5!cT21QRM~zPH6|J diff --git a/lib/irq.ppu b/lib/irq.ppu index 73994ff5ad9c7ca7af2b2dcf138d4adc847ba8ca..1b3f02c1ce1d4466f10a185214acafe3b7f62f89 100644 GIT binary patch delta 19 acmZ3)zKDH74hIh_Lr07LH~)<#ddvVlPX;~! delta 19 bcmZ3)zKDH74#!oUT{kV5!cT21(PIVxO_v9p diff --git a/lib/isr0.ppu b/lib/isr0.ppu index 2e42f2e364907141acfa24dd9cbd49110806d0fa..5f758c18c26b6042b08849720aef31aa4a243670 100644 GIT binary patch delta 19 acmdnXzn6bP9tRIALr07LH~)=g?(6_Ug9fDl delta 19 bcmdnXzn6bP9>-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/isr1.ppu b/lib/isr1.ppu index 8a1c698a677f2b1d4e6cef900810d7bb110aefaf..616fe89ea7c2859158c07dd4c811d4fb346a7481 100644 GIT binary patch delta 19 acmdnXzn6bP9tRIALr07LH~)=g?(6_Ug9fDl delta 19 bcmdnXzn6bP9>-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/isr10.ppu b/lib/isr10.ppu index feec528caf1d0ba26d251a53273a3b1755104d61..d1d7eba321495834f57b3d822a8987b139507f59 100644 GIT binary patch delta 19 acmX@be~N!X0S6B&Lr07LH~)F delta 19 bcmX@be~N!X0moIHT{kV5!cT3i2x12SRM!YB diff --git a/lib/isr11.ppu b/lib/isr11.ppu index 61e70ab88442972f6474c15a893b625ac883a434..4740ef3115317dcc20989afc74d22d2d0a6be96c 100644 GIT binary patch delta 19 acmX@be~N!X0S6B&Lr07LH~)F delta 19 bcmX@be~N!X0moIHT{kV5!cT3i2x12SRM!YB diff --git a/lib/isr12.ppu b/lib/isr12.ppu index 6069a03a146c26a65f630aaca8cb68f1c799e04d..68187739bf0a9fd3697dadcb42b0714346164777 100644 GIT binary patch delta 19 acmX@be~N!X0S6B&Lr07LH~)F delta 19 bcmX@be~N!X0moIHT{kV5!cT3i2x12SRM!YB diff --git a/lib/isr13.ppu b/lib/isr13.ppu index 5504373a3ba8336a69a0956c9d63c333260f4332..bf28ce9254c5ab6e83f5246148fc8c9fd1e50356 100644 GIT binary patch delta 19 acmZ20uvTC~0S6B&Lr07LH~)F delta 19 bcmX@be~N!X0moIHT{kV5!cT3i2x12SRM!YB diff --git a/lib/isr15.ppu b/lib/isr15.ppu index 397fe8b35fc71f4f591b7517045cdc28a3906ece..80751d4312ba6e9207b5ee0b8e72b083668e4063 100644 GIT binary patch delta 19 acmX@be~N!X0S6B&Lr07LH~)F delta 19 bcmX@be~N!X0moIHT{kV5!cT3i2x12SRM!YB diff --git a/lib/isr16.ppu b/lib/isr16.ppu index 5be6088f74ce1ee406768210477a5c2d1aa74276..e328e95f6f82aa297d288da73653cc9aff8bc28d 100644 GIT binary patch delta 19 acmX@be~N!X0S6B&Lr07LH~)F delta 19 bcmX@be~N!X0moIHT{kV5!cT3i2x12SRM!YB diff --git a/lib/isr17.ppu b/lib/isr17.ppu index 42e1396d6730e7b8ece0457d0dc3d7801b86bdb4..f6068802daf998978ab31daa2a286685fcc10c6c 100644 GIT binary patch delta 19 acmX@be~N!X0S6B&Lr07LH~)F delta 19 bcmX@be~N!X0moIHT{kV5!cT3i2x12SRM!YB diff --git a/lib/isr18.ppu b/lib/isr18.ppu index 8771d06cb69488b6ed9dee3a455f0ff103bab892..a961a149af1ddbe1d1716c0426c503d8a35386c1 100644 GIT binary patch delta 19 acmX@be~N!X0S6B&Lr07LH~)F delta 19 bcmX@be~N!X0moIHT{kV5!cT3i2x12SRM!YB diff --git a/lib/isr2.ppu b/lib/isr2.ppu index de57e011dd7995ba3c0361c9157e1672840483fe..791cdf79b249b512b545ee5e5f5c4a386f455800 100644 GIT binary patch delta 19 acmdnXzn6bP9tRIALr07LH~)=g?(6_Ug9fDl delta 19 bcmdnXzn6bP9>-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/isr3.ppu b/lib/isr3.ppu index 581acd46f7166728054cc07c68f945080c355a7e..12d2f7e7a89bc3eff624f6e19fc51bc7f5de4675 100644 GIT binary patch delta 19 acmdnXzn6bP9tRIALr07LH~)=g?(6_Ug9fDl delta 19 bcmdnXzn6bP9>-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/isr32.ppu b/lib/isr32.ppu index efb97d27373682ed25f41be3d2eea54479ffc4b3..ed8146d395d4153eb02b9c2a5e77d94a31d4cf9b 100644 GIT binary patch delta 19 acmdnbzn_0X0S6B&Lr07LH~)-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/isr40.ppu b/lib/isr40.ppu index 344f6fc6bff05fb2e76b851813b7ef0964cd91b0..66b82e4e3c55b90f1724908651bdc41fb0d0458f 100644 GIT binary patch delta 19 acmdnOzlDE70S6B&Lr07LH~)-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/isr6.ppu b/lib/isr6.ppu index 14e3150a38ad303ebbaa77910d1946ba1d3962b2..b5e0290e9bccfa9addf781c5cb3dfb19d6f0f6c8 100644 GIT binary patch delta 19 acmdnXzn6bP9tRIALr07LH~)=g?(6_Ug9fDl delta 19 bcmdnXzn6bP9>-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/isr7.ppu b/lib/isr7.ppu index 3a86bcb8b519f450ed09472bc7c7028393f48b9b..346a2023b7ea987dbcc56ec81828e13840093438 100644 GIT binary patch delta 19 acmdnXzn6bP9tRIALr07LH~)=g?(6_Ug9fDl delta 19 bcmdnXzn6bP9>-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/isr8.ppu b/lib/isr8.ppu index 17045606c29b780f807c1365b0624da84df5b3de..64a4fab89704e975b73df469e0502f43be255e84 100644 GIT binary patch delta 19 acmdnXzn6bP9tRIALr07LH~)=g?(6_Ug9fDl delta 19 bcmdnXzn6bP9>-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/isr9.ppu b/lib/isr9.ppu index 8e2b1c4777bca53da246160660730deaa59f1553..6b533b597cf2e0d7c7bc166ca8302d4f3910edd0 100644 GIT binary patch delta 19 acmdnXzn6bP9tRIALr07LH~)=g?(6_Ug9fDl delta 19 bcmdnXzn6bP9>-OkT{kV5!cT21b7uztQp*Sf diff --git a/lib/kernel.ppu b/lib/kernel.ppu index 4419a11fe22d95e441563ea3bc5663adcc93c9b5..1a260355889773f3a5e24e1dfab86e6d5a06eb79 100644 GIT binary patch delta 52 zcmV-40L%Z_8Q2++hzJY?0EmPy_D`{pJOKz^1 delta 52 zcmV-40L%Z_8Q2++hzQjzy4g4aSIV)FJOKy-e=>C;a`pd{)B*hi0097#-~*7eWCP&= K0RXc`1(F9tq7*6s diff --git a/lib/keyboard.ppu b/lib/keyboard.ppu index 8378cb0dbe59374f4a20eef49fc45e7cba61e529..340fee533656aea80143dcc9413eb0f6635647e6 100644 GIT binary patch delta 19 bcmX>jcSdeP7Y7e3Lr07LH~)>3cJToKNoEI= delta 19 bcmX>jcSdeP7spkdT{kV5!cT3Sw2Kb_S*{52 diff --git a/lib/libpconsole.a b/lib/libpconsole.a index 1128a6b49204b6c5ca78053fa124fe50e1959722..d35881f21a6a3e886b564c2c98cc383b21db3578 100644 GIT binary patch delta 1065 zcmZuwUr1A76z98LE2q@0#_n~ZZPJM5up4RHV9-cHav`@F1S2Fa>|qZg6oCZRf;NW&mPsM%TUVNe;!9-KrF3zAm&V3C9)G=xI>zTJE7CiHfH=l46m^XHx~wJoN$ z#fi3tfWOBdnCn<*G`?uqt$=9T++{%rNbf;7aI$OUxXa}_(W3_Z)f}djVO{!;N;RRt zhJ8@95@i~kiNLd#+o<3Pk+zBnA?$84#h`g+&FG6`_yrjsV5a6#AgQJiW_&u_?7o1I z`>y#PBjn;Mr)`9mW6kug!%oZ2_H;-fd*N@WPcYjvM0Jh|*n6jH7CJcl&LQLlZuMso zN>K&0fxHPpioV;)*a+;tG>4T8HH(#F7y~WdLFkRKW;&X+Luu%NrA_K|sP_%r*I$|; zCSArtYGMSpt0rW~4~u)uX^a|90>7_6La&TZf$S)b#I|{vq@NP9pSE^+;pbR87Lbx3 zv3>RnsduFx22%4F;-hztTmQ^;&k}2Kwz7!=Hush8U_PWRW_t20y73zkrdn|dZXTQ| zBFi8SYq$>%f4%yKaC%aP z&G`+4VK=|?tRSh?JFh!)F8os1LZJbD1P&LA#8^L6mKv}n!{;@s(Uv|eHCdM@!$L{N z1kJ!9h6muHa*-veDJTQS^&n%w63_?w}#Ng`DFc89ZY0Mhol( VpE90s-Dowc`#)3Xf+4af`~!m~NYelS delta 1065 zcmZuwUr1A76z98LOQ+P$#_n~ZZPJL=uq!RsV9-cHav`@V1S2Fa>|qZg6oCZRf;NW&mPsM%TUVNe;!9-KrF3zSy)P?1ClKySd`v(UBFWPH)ETLICwwabDIkluo@|9JP(5b3Cx5W?}2Jxh3^xcSU^g? z$M)GTq~7%b7)&iw1B()wqvJC<0Bvz1L1u(?lk2lFm%F|*TW(2d`SFw>4xaP#0? z5m^S=$()1HN6ESnG|h{(1O>cL{~*ilPQw9Y)kGUy$;A*>RuuS_-@tuv`18dVgtOB! zY%Ojg47>TAX9Y>E-g(`bbK%FrZxkBPN8n(wNR0JEWu*aIGJIa58g1$QQnPh=GAxyJ zOwc?WP7+vNTQ&VCpX>F92oA!bcO4%~m5qKb97ezRaPIP6atjUFE#w@nWayB|8!fOG V+-p4Hy3uNs|36dbf+4aj`~w}$Mo9nw diff --git a/lib/libpmultiboot.a b/lib/libpmultiboot.a index 95709fcada3f1bef2ed41b7d97bb106bf9a97d79..77a953c2fb51e063c46401713cc04d58a8e23267 100644 GIT binary patch delta 539 zcmezHi1EWC#tE{l7Urhr78{j(Ss|>+3Pxg^yI6lSBXJjS9%O=Z#W&aTyg}x+^8Y|^ z#WpYC+|D%FUz7_;L#gN=bQSy-dinYahNcD<=3obatp#h9mqXTCtEk1eIbZ%0Ba(5o ziZTe-iErMjqJ`j!ZT_Wx6v36)d`DXlm8;1(`L7xOWEmEr&1$;)82L%mlxRl*6ISXlWyAlLikX8^Lu*^WJ83U7b3Xgo6o!bLsop= z4QM9FNq3m|HY<1^M>dz)mj|I!Y_nFtNn|cx$Uv^-C)^D2%?tC+GXVfCU6^kG delta 539 zcmezHi1EWC#tE{l=4R$5h8vZ9Ss|>+3Pxg^yI6lSBXJjS9%O=Z#W&aTyg}x+^8Y|^ z#WpYC+|D%FUz7_;L#gN=bQSy-dinYahNcD<=3obatp#h9mqXTCtEk1eIbZ%0Ba(5o ziZTe-iErMjqJ`j!ZT_Wx6v36)d`DXlm8;1(`L7xOWEmEr&1$;)82L%mlxRl*6ISXlWyAlLikX8^Lu*^WJ83U7b3Xgo6o!bLsop= z4QM9FNq3m|HY<1^M>dz)mj|I!Y_nFtNn|cx$Uv^-C)^D2%?tC+GXVhO8<#l% diff --git a/lib/libpsystem.a b/lib/libpsystem.a index f36f6b9df367cf1a5760d987fc0ae04db0a05467..029a72afc092592994f3ffafa228cfd1ff172271 100644 GIT binary patch delta 3337 zcmZu!eN2^A7~gY);m5rRYWHf6xVbeKC0wR_Xo8F)$A?HR7v&g=mkBH2_F+2Bg&!+* z6|B=beUOmF%w>t3*{RULskjR$G!qpu@5~ixBAc3NDm~}C?|DBi-M`NBJJ0!@=RD{4 zJmXv5Aru_)ALmrKQS6 z)H?_(=!8U=MtX16v%n))A#4$OJl+)sO-vcZqwmq?&|L!~Q^-(XJe%zchC@%yQV`AD z3M<&ElrMD`X_HkcUBoxrNva~FSjpTD6%R79XXm?tc$1vu<47k9q#w1<-B3Gu{T^1G z?UAl*%adKoO~Z#QZlpRppY-H)vAUd77B2y_p1d8Vr=Rr~?6a7pzo4J^23_p@;^Scp zNnBAE3oRMN7guECi(hKvi(jhoC6*{Y=JjU)%Pc*s^P@f0ywNOHv+|S~P!_3Kc}Jv; zZ7Dwlq@vQPT?B1D3t1$3wU-T4s{IU%3{(!tHKCV}>6@szJ8by1Gggd6uRdwt&dc)G z@-T?xua%6XZgUiSV%>g-(Isap4wd3z=`|7NQ9P`8lg(WJmd*TZtIa&{j?Fw*Ycc&S zm#AanMt+h@Fs+!C0@|a}m|2f$UG|BQ*35cKTFY5S!(Q`H<)ovbPZE69h-uy0q^DIJ zf~40hWcQjZDbS#YcG;ln>^wGa_ZKFo2i28F=I!n#HMd4yUSW=)oY=BQ6xDqIf?~-u-8ND4Yj9MjJd4&r(NMt`@vCA@8MBU=;$bD zxHBATIc`N*{|PNVHu&>NbwUw$|B0KHAlOjfHLH2=jA4o<<~&zs>cq|72`N*wic(f| zu}NPnZBlfxoB0L}-AbRpCA&}HQaAN302j--+zv5wv`%J`XJEw7whgN_1WmGSxKnDN z>bepU!didZ{CCh2zHE6P+)@w=j3fZ7yK6`-Ffvv@4h_8uW&Ae>7`;yb6oDXZuLl<` zE`dT8dO8AV_3Kbcw~PVRg>h?scs%I0e|emXPK}0dc%utkKtCN17Lf=)Lj@>V{%;J- z&^l=B_!vHa68s1;zELUAJ;$lk>-ym@Jpk4##?$8VH>Q{vuA?JaP{3=aL8D5G0x5z) zkw#t>2dX8DG?enjhhe9>M*&a-x~1!y>2L^W&J63JEM_nMMj%fTHasoTmV;8v7r8G!E>;XFVBI=>M9WAb@>n*VLZtmLFWM;dIl^{j+^7s zG@!qhgOgl#j^o}XFv*NTPA@k}J-q7$7-QOQK2!`FOxw>-F9&O5rD*r_-ZD_y=6H}O zeSsJ!fYdR+`66`dClWPU#%ET6dIu#y5zsWxC%j_#a@2vU6){$HkFEjrJ__wr@Updr z)FeO=IHGNxx(>w?oh;>T7P#hBy9thnFA2VQ1E`|b2ysSfmt(*QvRru8+n}CEfvS^= zC1td&7L_eNON#Fw!{2)sR3DbJ9A|As&X2us2PgtE12KFjfi{TN-b{PQW&F>N!j>Tr zxyOo;<=+(9SeEd*YLS1BMqbo z$_B}&>@h0)Lk{JQV}>JN)?-rPSf|=~!tfB^Nfq?&X*ek_J~ldv z2m3&MtjbxAv)}5c=jiS+s^ctVXvg$~Y=oGw3$RCDA~-N(7obmOWYO=2E5~nkqc(7i z_Z&*co>lReSsMuZdE*eMcT9Ze`zZpQvNlLh^ceo;RcQSmv0?H0`Tpxh-xMv%PZ8+U zwrTjsj3jW|%oC24;`lwo1*PNOx83o)&uCa~J~7F0#q2F^{$R3Wy~Sqoze-X{Qds2* SDmh0pG93DA$O|(ZA;*8+;&ep- delta 3337 zcmZu!eN2^A7~gY+fqHL(8dr0~&8@j8;W81>1Q|t+50P9h$}to#6IQ_O!*rSpKUV52 zSf_RRAR&vH%Mv-WQ=x%VaTic%CMsgynJdynHZ{{!dd_*@^L|{qf1T%dp7T4;dCu>7 z&U>3Tj&0sJwk|e2H6=AUY2Wm0eMCII7`8F?<``{4nh7&o91~|HR401ymo(d(mMRxf z&mgRz6B1z>>AhXg{EuFPkVWK)cvlECF=Z5wzDJuwclD1CaY4qh&S0us=^~!$=nVV4>Gdn=Enf>Bss~);ZEjHKW3l1sdn=C+^jm= zEnV4`r@EAzh7VcXNOg8T>B;M2bvdUkUIJ!4c{@!{AL}pJZ!t-KK|k>hy4Z!qCqfpI zxS}o=Tr!F;uE@q0ztqMTzf|K(EKz*SsDQwX$ zD2?InQ@>Zc%UWpFYoUEnI5{{ug86^2*F)<~wWn5$xvcr8-JwwXp;1upkx@|a*eGbY zGZbn$VMSQ~Ni9A$`12`sLJ@cW$y=5n*iheft9k#dVTvZ^JYQz&B!+DdDpRzIQdV@S zNnb2&Qgo@Cc?S*MN+17ayN~~JH}xz47t6WQ4$*V8PG*s(f5gYO4XZT-O|oscQ)-~< zh7u9NT7TR8cfb<9Y<9TQ%nrk(UB}D;I-4BQKdzJ6v2Q< zBd>}B)sjUTN_pcWuuI*e04M_8(sj*rI1DsrhV@W#+XFMqZB=;P@g|15iZbH^GaZX+*_>FlcCQgnCf1HP9!Uan@ zIOa%^(dLzw_m?{tz*SW&sDE1UJS^nPb71lq^9km4`4Ags*lt1R1|EDCEKg1h$E9gN ze=P?mx#AqhJxgGc8H1c&Zj!or*NYHo+A(~n7&e%;kDpl%*2YTF?&rN_ptQ~LAQAck zF-`!fV}9!;=+;jpYP5{ctOE58N`NAuX`WAb)$rx01636I4Zs*_~H$qidrMY8Kqs00Vl|E;Z^T|dLjj?PAZm^ z(Y9Jtw)iY5ejt*+_b#YDEN3~++KQYXf8P#J1Y`!H`7Q!&5T(7D_K?f?pC5%RLmcx6N3l8<^0cqvb5lkdND-6` zl26%dRQ87)%6Z{FXwbcdP0{Wk!@szA;(jBf@3;{(4l&(genG1-FNtan+KJHCh)NC_ zj@*0LU=m}UYV|S0LsB&d>{MuLRJF$qN4~7bq{6XIwdZmF<}>Buf9ZZV8$*&pUlXj-wjue-|R+h;27^Y zn2tTG;xDr{5ccuLAyDs__|ErH1UhAHke;YW{?;{U{U5Pm@%s3I8%Ez0Ey_m`=+w4p z_{WUIf5*%dj+Ns0eZvK%6SIGZ;{~tLuwwYcB*#^=x5V&=W;@nfY$pG!B&8&URIZ?s Rb2KBvp}&T_FvAga{0H%5ZRY?0 diff --git a/lib/lmemorymanager.ppu b/lib/lmemorymanager.ppu index dae11634669c71d1f83c7d9cf311746fb4c28be9..91b1c7bde78eff9253bee835051128fca20633ca 100644 GIT binary patch delta 53 zcmcaAb5&+Sg4PzZcagyi3=E9SY{iwuC8@d79()xo3z=9B6k}j1Ey>K`VP)uO(f{VZ IvFkK1001Zw=l}o! delta 53 zcmcaAb5&+Sf|k{Ng~(tA1_nlEw&Kd-lGNO3559_)g-k35iZQU1mSpB!)!B8^f+_se I#;()60QABWrvLx| diff --git a/lib/mouse.ppu b/lib/mouse.ppu index 7b1ab0fe479350559cdfcefdb371f30f641e5add..0135a8593718e817ec20f1dbb150f2798726f180 100644 GIT binary patch delta 19 acmcb@d4+RA3kMG?Lr07LH~)=29xMPxXa?~B delta 19 bcmcb@d4+RA3&&NRT{kV5!cT4N@n8V}R0NMYs8L=6Vy$D|9rzGY3{N;NES9#RUC2lX z__Yv2RQ4u>sKJY8RLc~ z1O<4%7XIwtRpJYZmtR-C)XS@i#ka^;M?zPS)4`-#?AI-hsI!KyBIM^IYKjuPsz#~D zMr47H^54K=ZqlNjLF8iwcyZf4BZFy}*||cWIj6_uiuue8zW?PV(aq zd`%xM)&E5A@MYi|e5&CpeZhPD*J+;n0zg+4ARuB@DqVe-Xua> zWthhKSYY(YPD!zVcx|n5Cnc0d2R@`&_PZB^E?)cwwB?rkVR%4P{|bpMLhO4NgU;uLLE51^P$%5 zi|{qtz6PLHm@gj@)Lc0x5~pgaT!B<`f}&M*i7A|*vz!d4=p4_6Tj&Em2E4#;126Gc z;SI;XM1^L%ejCs@ls%LwE}-Sr8sFA*d4fiwH z^~#Y6aRmkif7dYUGcz#s*!E38z0_3RpLtQx#+rS_v0vv&^SNjUrWN}p5ja`8TuPdjqlGWgL&Zh`;FA6r9K1j;`yMZx3uYW#^cXth8J@k-z3O->gaVUFS%0BRnt;iA lFBNilZi&ia;CbP8b^$%@_K(3_eh$wjNzN_(mD`&;{saGw;!gko delta 1085 zcmYk4T}V@57{}jdJ7<1O)483qbRV|Oi66^yR%+UopqbjoEUmz5q>U71E*%Ae7+8y_ zD0}GhN{Q&M5(BAjyvPfKf}o(HE~<;Dix|{}*@r#v@hIm#oag;N@9)q1KJUl(%DD}$ zP^i7UVxuq$OwVRQZsy8k?6vRl+bZ4uXJw4B#xYl^o~3%mc3(4$3XFm23Ror=KZ4N! z449}Rj|*M;3;0Io#5BPSMF@foN|jiq#I0B@*c@9@fzcw2`GIMqGQ(y(E;#Xl;D$o1 z6Hnu!5Os*$n?pZ?KeRA|4z3k7pM#&ooluGE4GE~lX^M3iNJ+q2oK2YlKPFOVU>i23 zy@CO>rzatTnZ_g>z<hbnwwu|WX8QLIOU&MA*_}2M^2HE9s(7{ zcWQ_Y_C+Ew2JYqB62yx+mpzY^RqDlXm<;O_J3ldTFn*+~ zmqFo*`?~5Lr#_>lVGl0IArrs)6Z{RRZ3sK86~<8-Im1Wku5Vg*$rh65HLgpfZ|Jdg zbwHL0O=!>^()SePuo0TppeLlCs(Ch!nJZ-{Ii71AFG;`C<3w&iUPI`!27Mu&RFLE* z^h<;Ok~ZLYZqUIup2crjZD!JTHMjB=9fd@^8b>i{zna^*LnC%Ppt%JnNNiS$`YuXX+iT1?l Nyg_|M!#HR2{s(6Ju=@Z2 diff --git a/lib/vmemorymanager.ppu b/lib/vmemorymanager.ppu index d8495500816d3ed852334db6f836972f55058230..e86570f742fdf761677c0c04c2868d40f5aacbd2 100644 GIT binary patch delta 19 acmdm{wM}b669*3~Lr07LH~)=YYeWD?NC#&C delta 19 bcmdm{wM}b66USAZT{kV5!cT4NS|b7gSC9zB diff --git a/src/terminal.pas b/src/terminal.pas index c5fe210a..9aba1d2d 100644 --- a/src/terminal.pas +++ b/src/terminal.pas @@ -14,9 +14,15 @@ interface uses console, keyboard, - util; + util, + lmemorymanager; type + PParamList = ^TParamList; + TParamList = record + Param : pchar; + Next : PParamList; + end; TCommandBuffer = array[0..1023] of byte; TCommandMethod = procedure(buf : TCommandBuffer); TCommand = record @@ -34,9 +40,74 @@ var procedure run; procedure init; procedure registerCommand(command : pchar; method : TCommandMethod; description : pchar); +function getParams(buf : TCommandBuffer) : PParamList; implementation +function getParams(buf : TCommandBuffer) : PParamList; +var + start, finish : uint32; + size : uint32; + ptr : uint32; + root : PParamList; + current : PParamList; + +begin + root:= PParamList(kalloc(sizeof(TParamList))); + current:= root; + current^.next:= nil; + current^.Param:= nil; + start:= 0; + finish:= 0; + while (char(buf[finish]) <> ' ') and (buf[finish] <> 0) do begin + inc(finish); + end; + while buf[start] <> 0 do begin + start:=finish+1; + inc(finish); + while (char(buf[finish]) <> ' ') and (buf[finish] <> 0) do begin + inc(finish); + end; + size:= finish - start; + if size > 0 then begin + ptr:= uint32(@buf[start]); + current^.Param:= pchar(kalloc(size+2)); + memset(uint32(current^.Param), 0, size+2); + memcpy(uint32(ptr), uint32(current^.Param), size); + current^.next:= PParamList(kalloc(sizeof(TParamList))); + current:= current^.next; + current^.next:= nil; + current^.Param:= nil; + end; + end; + getParams:= root; +end; + +procedure testParams(buffer : TCommandBuffer); +var + params : PParamList; + +begin + params:= getParams(buffer); + while params^.Param <> nil do begin + writestringln(params^.Param); + params:= params^.next; + end; +end; + +procedure echo(buffer : TCommandBuffer); +var + idx : uint32; + +begin + idx:= 5; + while buffer[idx] <> 0 do begin + console.writechar(char(buffer[idx])); + inc(idx); + end; + console.writestringln(''); +end; + procedure clear(buffer : TCommandBuffer); begin console.clear(); @@ -158,7 +229,9 @@ begin memset(uint32(@buffer[0]), 0, 1024); registerCommand('VERSION', @version, 'Display the running version of Asuro.'); registerCommand('CLEAR', @clear, 'Clear the Screen.'); - registerCommand('HELP', @help, 'Lists all registered commands and their description.') + registerCommand('HELP', @help, 'Lists all registered commands and their description.'); + registerCommand('ECHO', @echo, 'Echo''s text to the terminal.'); + registerCommand('TESTPARAMS', @testParams, 'Tests param parsing.'); end; procedure run; diff --git a/src/util.pas b/src/util.pas index 2b3df0cb..dff19e6c 100644 --- a/src/util.pas +++ b/src/util.pas @@ -31,6 +31,7 @@ function inb(port : uint16) : uint8; function inw(port : uint16) : uint16; function inl(port : uint16) : uint32; procedure memset(location : uint32; value : uint8; size : uint32); +procedure memcpy(source : uint32; dest : uint32; size : uint32); procedure psleep(t : uint16); var @@ -189,4 +190,17 @@ begin end; end; +procedure memcpy(source : uint32; dest : uint32; size : uint32); +var + src, dst : puint8; + i : uint32; + +begin + for i:=0 to size-1 do begin + src:= puint8(source + i); + dst:= puint8(dest + i); + dst^:= src^; + end; +end; + end.